Implemented Plague City quest
Added dwellberries spawns to McGrubor's Wood
This commit is contained in:
@@ -193,7 +193,7 @@
|
||||
},
|
||||
{
|
||||
"item_id": "952",
|
||||
"loc_data": "{1,3120,3359,0,8519790}-{1,2981,3370,0,9830490}-{1,3572,3312,0,3276830}-{1,3571,3310,0,3276830}-{1,3218,3412,1,5898270}-{1,1951,4964,0,5898270}"
|
||||
"loc_data": "{1,2566,3330,0,100}-{1,3120,3359,0,8519790}-{1,2981,3370,0,9830490}-{1,3572,3312,0,3276830}-{1,3571,3310,0,3276830}-{1,3218,3412,1,5898270}-{1,1951,4964,0,5898270}"
|
||||
},
|
||||
{
|
||||
"item_id": "954",
|
||||
@@ -295,6 +295,10 @@
|
||||
"item_id": "1422",
|
||||
"loc_data": "{1,3320,3137,0,11141270}"
|
||||
},
|
||||
{
|
||||
"item_id": "1510",
|
||||
"loc_data": "{1,2576,3334,0,100}"
|
||||
},
|
||||
{
|
||||
"item_id": "1511",
|
||||
"loc_data": "{1,3205,3226,2,11796640}-{1,3205,3224,2,11796640}-{1,3208,3225,2,11796640}-{1,3209,3224,2,11796640}-{1,3106,3160,0,11796640}-{1,3106,3159,0,11796640}-{1,3105,3159,0,11796640}-{1,2958,3205,0,5898270}-{1,2959,3205,0,5898270}"
|
||||
@@ -385,7 +389,7 @@
|
||||
},
|
||||
{
|
||||
"item_id": "1925",
|
||||
"loc_data": "{1,2428,3079,0,6553680}-{1,2428,3080,0,6553680}-{1,2371,3128,0,6553680}-{1,2371,3127,0,6553680}-{1,3225,3294,0,6553680}-{1,3121,3359,0,6553660}-{1,3216,9625,0,6553680}-{1,3026,3289,0,6553680}-{1,2958,3510,0,6553680}-{1,3221,3497,1,6553680}-{1,2958,3510,0,6553680}-{1,3222,3491,1,6553680}-{1,3307,3195,0,5898270}-{1,1941,4956,0,5898270}"
|
||||
"loc_data": "{1,2564,3332,0,100}-{1,2428,3079,0,6553680}-{1,2428,3080,0,6553680}-{1,2371,3128,0,6553680}-{1,2371,3127,0,6553680}-{1,3225,3294,0,6553680}-{1,3121,3359,0,6553660}-{1,3216,9625,0,6553680}-{1,3026,3289,0,6553680}-{1,2958,3510,0,6553680}-{1,3221,3497,1,6553680}-{1,2958,3510,0,6553680}-{1,3222,3491,1,6553680}-{1,3307,3195,0,5898270}-{1,1941,4956,0,5898270}"
|
||||
},
|
||||
{
|
||||
"item_id": "1927",
|
||||
@@ -454,7 +458,11 @@
|
||||
{
|
||||
"item_id": "2026",
|
||||
"loc_data": "{1,2483,3482,1,7864410}-{1,2489,3489,1,7864410}"
|
||||
},
|
||||
},
|
||||
{
|
||||
"item_id": "2126",
|
||||
"loc_data": "{1,2661,3478,0,100}-{1,2638,3480,0,100}-{1,2632,3492,0,100}-{1,2648,3498,0,100}-{1,2669,3497,0,100}"
|
||||
},
|
||||
{
|
||||
"item_id": "2140",
|
||||
"loc_data": "{1,2971,3382,1,5898270}"
|
||||
|
||||
@@ -16072,6 +16072,13 @@
|
||||
"archery_ticket_price": "0",
|
||||
"id": "1508"
|
||||
},
|
||||
{
|
||||
"examine": "Turnip growing for beginners.",
|
||||
"durability": null,
|
||||
"name": "Book",
|
||||
"archery_ticket_price": "0",
|
||||
"id": "1509"
|
||||
},
|
||||
{
|
||||
"examine": "A picture of a lady called Elena.",
|
||||
"durability": null,
|
||||
@@ -107012,7 +107019,7 @@
|
||||
"id": "12650"
|
||||
},
|
||||
{
|
||||
"examine": "Common bucket: It's a bucket of water.2008 Easter event: It's a bucket of water from the Easter Bunny's warren. Regular bucket filled from Braindeath Island: It's a bucket of... water?",
|
||||
"examine": "It's a bucket of water.",
|
||||
"grand_exchange_price": "74",
|
||||
"durability": null,
|
||||
"name": "Bucket of water",
|
||||
|
||||
@@ -4803,7 +4803,7 @@
|
||||
},
|
||||
{
|
||||
"examine": "A mourner, or plague healer.",
|
||||
"melee_animation": "414",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"defence_animation": "0",
|
||||
"weakness": "9",
|
||||
@@ -4847,7 +4847,7 @@
|
||||
"name": "Man",
|
||||
"defence_level": "2",
|
||||
"safespot": null,
|
||||
"lifepoints": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "2",
|
||||
"id": "351",
|
||||
"clue_level": "0",
|
||||
@@ -4866,7 +4866,7 @@
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"safespot": null,
|
||||
"lifepoints": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "2",
|
||||
"id": "352",
|
||||
"clue_level": "0",
|
||||
@@ -4885,7 +4885,7 @@
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"safespot": null,
|
||||
"lifepoints": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "2",
|
||||
"id": "353",
|
||||
"clue_level": "0",
|
||||
@@ -4904,7 +4904,7 @@
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"safespot": null,
|
||||
"lifepoints": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "2",
|
||||
"id": "354",
|
||||
"clue_level": "0",
|
||||
@@ -4944,93 +4944,103 @@
|
||||
"attack_level": "1"
|
||||
},
|
||||
{
|
||||
"examine": "Man...",
|
||||
"name": "Man",
|
||||
"defence_level": "1",
|
||||
"safespot": null,
|
||||
"lifepoints": "10",
|
||||
"examine": "One of Gielinor's many citizens.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "422",
|
||||
"combat_audio": "511,513,512",
|
||||
"strength_level": "1",
|
||||
"attack_speed": "4",
|
||||
"magic_level": "6",
|
||||
"respawn_delay": "18",
|
||||
"defence_animation": "404",
|
||||
"weakness": "9",
|
||||
"magic_animation": "422",
|
||||
"death_animation": "9055",
|
||||
"name": "Man",
|
||||
"defence_level": "5",
|
||||
"safespot": null,
|
||||
"lifepoints": "7",
|
||||
"strength_level": "2",
|
||||
"id": "359",
|
||||
"clue_level": "0",
|
||||
"range_level": "1",
|
||||
"attack_level": "1"
|
||||
"attack_level": "5"
|
||||
},
|
||||
{
|
||||
"examine": "One of Gielinor's many citizens.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"range_animation": "422",
|
||||
"combat_audio": "511,506,505",
|
||||
"defence_animation": "0",
|
||||
"attack_speed": "4",
|
||||
"defence_animation": "404",
|
||||
"weakness": "9",
|
||||
"magic_animation": "0",
|
||||
"magic_animation": "422",
|
||||
"death_animation": "836",
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"defence_level": "3",
|
||||
"safespot": null,
|
||||
"lifepoints": "2",
|
||||
"strength_level": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "1",
|
||||
"id": "360",
|
||||
"clue_level": "0",
|
||||
"range_level": "1",
|
||||
"attack_level": "2"
|
||||
"attack_level": "3"
|
||||
},
|
||||
{
|
||||
"examine": "One of Gielinor's many citizens.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"range_animation": "422",
|
||||
"combat_audio": "511,506,505",
|
||||
"defence_animation": "0",
|
||||
"attack_speed": "4",
|
||||
"defence_animation": "404",
|
||||
"weakness": "9",
|
||||
"magic_animation": "0",
|
||||
"magic_animation": "422",
|
||||
"death_animation": "836",
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"defence_level": "3",
|
||||
"safespot": null,
|
||||
"lifepoints": "100",
|
||||
"strength_level": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "1",
|
||||
"id": "361",
|
||||
"clue_level": "0",
|
||||
"range_level": "1",
|
||||
"attack_level": "2"
|
||||
"attack_level": "3"
|
||||
},
|
||||
{
|
||||
"examine": "One of Gielinor's many citizens.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"range_animation": "422",
|
||||
"combat_audio": "511,506,505",
|
||||
"defence_animation": "0",
|
||||
"attack_speed": "4",
|
||||
"defence_animation": "404",
|
||||
"weakness": "9",
|
||||
"magic_animation": "0",
|
||||
"magic_animation": "422",
|
||||
"death_animation": "836",
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"defence_level": "3",
|
||||
"safespot": null,
|
||||
"lifepoints": "2",
|
||||
"strength_level": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "1",
|
||||
"id": "362",
|
||||
"clue_level": "0",
|
||||
"range_level": "1",
|
||||
"attack_level": "2"
|
||||
"attack_level": "3"
|
||||
},
|
||||
{
|
||||
"examine": "One of Gielinor's many citizens.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"range_animation": "422",
|
||||
"combat_audio": "511,506,505",
|
||||
"defence_animation": "0",
|
||||
"attack_speed": "4",
|
||||
"defence_animation": "404",
|
||||
"weakness": "9",
|
||||
"magic_animation": "0",
|
||||
"magic_animation": "422",
|
||||
"death_animation": "836",
|
||||
"name": "Woman",
|
||||
"defence_level": "2",
|
||||
"defence_level": "3",
|
||||
"safespot": null,
|
||||
"lifepoints": "100",
|
||||
"strength_level": "2",
|
||||
"lifepoints": "7",
|
||||
"strength_level": "1",
|
||||
"id": "363",
|
||||
"clue_level": "0",
|
||||
"range_level": "1",
|
||||
"attack_level": "2"
|
||||
"attack_level": "3"
|
||||
},
|
||||
{
|
||||
"examine": "King Lathas of East Ardougne.",
|
||||
@@ -5095,7 +5105,7 @@
|
||||
"attack_level": "1"
|
||||
},
|
||||
{
|
||||
"examine": "A mourner",
|
||||
"examine": "A mourner, or plague healer.",
|
||||
"melee_animation": "422",
|
||||
"range_animation": "0",
|
||||
"defence_animation": "0",
|
||||
@@ -23733,7 +23743,7 @@
|
||||
"attack_level": "1"
|
||||
},
|
||||
{
|
||||
"examine": "A Mourner",
|
||||
"examine": "A mourner, or plague healer.",
|
||||
"slayer_task": "31",
|
||||
"melee_animation": "428",
|
||||
"range_animation": "0",
|
||||
@@ -29873,7 +29883,7 @@
|
||||
"attack_level": "1"
|
||||
},
|
||||
{
|
||||
"examine": "A mourner",
|
||||
"examine": "A mourner, or plague healer.",
|
||||
"melee_animation": "0",
|
||||
"range_animation": "0",
|
||||
"defence_animation": "0",
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "47",
|
||||
"loc_data": "{3108, 9754, 0, 1, 5}-{3110, 9754, 0, 1, 5}-{3108, 9750, 0, 1, 5}-{2930,9699,0,1,0}-{2933,9697,0,1,0}-{2932,9685,0,1,0}-{2930,9693,0,1,0}-{3097,3364,0,1,3}-{3102,3363,0,1,5}-{3341,3267,0,1,5}-{3235,3224,0,1,3}-{3229,3220,0,1,4}-{3211,3211,0,1,3}-{3225,3220,0,1,1}-{3237,3215,0,1,5}-{3211,3210,0,1,7}-{3227,3220,0,1,7}-{3233,3227,0,1,5}-{3227,3210,0,1,6}-{3228,3222,0,1,4}-{3229,3226,0,1,0}-{3127,3487,0,1,4}-{3125,3486,0,1,6}-{3127,3486,0,1,4}-{3019,3292,0,1,7}-{3018,3295,0,1,7}-{3001,3202,0,1,5}-{3021,3205,0,1,6}-{3026,3174,0,1,5}-{3019,3176,0,1,7}-{3076,3282,0,1,5}-{3089,3266,0,1,4}-{3091,3266,0,1,4}-{3243,3687,0,1,5}-{3249,3669,0,1,3}-{3252,3675,0,1,4}-{3252,3680,0,1,3}-{3259,3683,0,1,0}-{3276,9871,0,1,1}-{3277,9871,0,1,3}-{3225,9862,0,1,4}-{3222,9861,0,1,6}-{3220,9860,0,1,6}-{3219,9865,0,1,6}-{3237,9862,0,1,4}-{3236,3217,0,1,4}-{3259,3230,0,1,4}-{3158,3226,0,1,5}-{3160,3202,0,1,4}-{3233,3237,0,1,7}-{2821,3170,0,1,1}-{2801,3158,0,1,2}-{2852,9642,0,1,6}-{2858,9632,0,1,3}-{2536,2982,0,1,3}-{2531,2980,0,1,0}-{2522,2981,0,1,4}-{2545,2989,0,1,4}-{2523,2970,0,1,2}-{2603,9480,0,1,1}-{2600,9477,0,1,0}-{2579,9496,0,1,4}-{2580,9508,0,1,0}-{2571,9522,0,1,4}-{2654,9640,0,1,6}-{2655,9637,0,1,4}-{2656,9639,0,1,7}-{2651,9636,0,1,5}-{2648,9637,0,1,4}-{2651,9642,0,1,1}-{2654,9640,0,1,0}-{2654,9635,0,1,6}-{2655,9635,0,1,3}-{2664,9626,0,1,6}-{2664,9624,0,1,1}-{2661,9623,0,1,1}-{2663,9623,0,1,3}-{2664,9626,0,1,6}-{2592,9831,0,1,3}-{2588,9825,0,1,6}-{2583,9829,0,1,4}-{2581,9841,0,1,0}-{2597,9823,0,1,2}-{2579,9805,0,1,3}-{2576,9804,0,1,0}-{2573,9805,0,1,5}-{2571,9808,0,1,3}-{2576,9810,0,1,2}-{2587,9802,0,1,2}-{2592,9800,0,1,4}-{2596,9805,0,1,6}-{2601,9802,0,1,5}-{2585,9801,0,1,7}-{2594,9803,0,1,0}-{2590,9806,0,1,3}-{2612,9808,0,1,6}-{2604,9810,0,1,6}-{2579,9821,0,1,2}-{2576,9812,0,1,6}-{2580,9813,0,1,6}-{2600,9813,0,1,4}-{2599,9809,0,1,4}-{2514,3193,0,1,6}-{2518,3192,0,1,3}-{2507,3181,0,1,3}-{2508,3178,0,1,6}-{2511,3183,0,1,3}-{2515,3182,0,1,1}-{2565,9505,0,1,1}-{2566,9510,0,1,6}-{2594,9497,0,1,4}-{3475,9840,0,1,6}-{3481,9842,0,1,1}-{3486,9843,0,1,7}-{3483,9824,0,1,4}-{3496,9808,0,0,5}-{3490,9815,0,1,1}-{3478,9834,0,0,3}-{3490,9824,0,1,4}-{3192,3203,0,1,0}-{3194,3204,0,1,0}-{3196,3206,0,1,0}-{3197,3204,0,1,0}-{3205,3204,0,1,0}-{3206,3204,0,1,0}-{3205,3203,0,1,0}-{3206,3202,0,1,0}-{3207,3202,0,1,0}-{3208,3203,0,1,0}"
|
||||
"loc_data": "{2521,3331,0,1,3}-{2531,3325,0,1,3}-{2526,3328,0,1,3}-{2523,3331,0,1,4}-{2523,3334,0,1,1}-{2530,3327,0,1,5}-{2531,3329,0,1,5}-{2532,3333,0,1,5}-{3108,9754,0,1,5}-{3110,9754,0,1,5}-{3108,9750,0,1,5}-{2930,9699,0,1,0}-{2933,9697,0,1,0}-{2932,9685,0,1,0}-{2930,9693,0,1,0}-{3097,3364,0,1,3}-{3102,3363,0,1,5}-{3341,3267,0,1,5}-{3235,3224,0,1,3}-{3229,3220,0,1,4}-{3211,3211,0,1,3}-{3225,3220,0,1,1}-{3237,3215,0,1,5}-{3211,3210,0,1,7}-{3227,3220,0,1,7}-{3233,3227,0,1,5}-{3227,3210,0,1,6}-{3228,3222,0,1,4}-{3229,3226,0,1,0}-{3127,3487,0,1,4}-{3125,3486,0,1,6}-{3127,3486,0,1,4}-{3019,3292,0,1,7}-{3018,3295,0,1,7}-{3001,3202,0,1,5}-{3021,3205,0,1,6}-{3026,3174,0,1,5}-{3019,3176,0,1,7}-{3076,3282,0,1,5}-{3089,3266,0,1,4}-{3091,3266,0,1,4}-{3243,3687,0,1,5}-{3249,3669,0,1,3}-{3252,3675,0,1,4}-{3252,3680,0,1,3}-{3259,3683,0,1,0}-{3276,9871,0,1,1}-{3277,9871,0,1,3}-{3225,9862,0,1,4}-{3222,9861,0,1,6}-{3220,9860,0,1,6}-{3219,9865,0,1,6}-{3237,9862,0,1,4}-{3236,3217,0,1,4}-{3259,3230,0,1,4}-{3158,3226,0,1,5}-{3160,3202,0,1,4}-{3233,3237,0,1,7}-{2821,3170,0,1,1}-{2801,3158,0,1,2}-{2852,9642,0,1,6}-{2858,9632,0,1,3}-{2536,2982,0,1,3}-{2531,2980,0,1,0}-{2522,2981,0,1,4}-{2545,2989,0,1,4}-{2523,2970,0,1,2}-{2603,9480,0,1,1}-{2600,9477,0,1,0}-{2579,9496,0,1,4}-{2580,9508,0,1,0}-{2571,9522,0,1,4}-{2654,9640,0,1,6}-{2655,9637,0,1,4}-{2656,9639,0,1,7}-{2651,9636,0,1,5}-{2648,9637,0,1,4}-{2651,9642,0,1,1}-{2654,9640,0,1,0}-{2654,9635,0,1,6}-{2655,9635,0,1,3}-{2664,9626,0,1,6}-{2664,9624,0,1,1}-{2661,9623,0,1,1}-{2663,9623,0,1,3}-{2664,9626,0,1,6}-{2592,9831,0,1,3}-{2588,9825,0,1,6}-{2583,9829,0,1,4}-{2581,9841,0,1,0}-{2597,9823,0,1,2}-{2579,9805,0,1,3}-{2576,9804,0,1,0}-{2573,9805,0,1,5}-{2571,9808,0,1,3}-{2576,9810,0,1,2}-{2587,9802,0,1,2}-{2592,9800,0,1,4}-{2596,9805,0,1,6}-{2601,9802,0,1,5}-{2585,9801,0,1,7}-{2594,9803,0,1,0}-{2590,9806,0,1,3}-{2612,9808,0,1,6}-{2604,9810,0,1,6}-{2579,9821,0,1,2}-{2576,9812,0,1,6}-{2580,9813,0,1,6}-{2600,9813,0,1,4}-{2599,9809,0,1,4}-{2514,3193,0,1,6}-{2518,3192,0,1,3}-{2507,3181,0,1,3}-{2508,3178,0,1,6}-{2511,3183,0,1,3}-{2515,3182,0,1,1}-{2565,9505,0,1,1}-{2566,9510,0,1,6}-{2594,9497,0,1,4}-{3475,9840,0,1,6}-{3481,9842,0,1,1}-{3486,9843,0,1,7}-{3483,9824,0,1,4}-{3496,9808,0,0,5}-{3490,9815,0,1,1}-{3478,9834,0,0,3}-{3490,9824,0,1,4}-{3192,3203,0,1,0}-{3194,3204,0,1,0}-{3196,3206,0,1,0}-{3197,3204,0,1,0}-{3205,3204,0,1,0}-{3206,3204,0,1,0}-{3205,3203,0,1,0}-{3206,3202,0,1,0}-{3207,3202,0,1,0}-{3208,3203,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "48",
|
||||
@@ -949,11 +949,11 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "347",
|
||||
"loc_data": "{2523,3292,0,0,0}-{2536,3294,0,0,0}-{2538,3321,0,0,0}"
|
||||
"loc_data": "{2523,3292,0,1,0}-{2536,3294,0,1,0}-{2538,3321,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "348",
|
||||
"loc_data": "{2501,3315,0,0,0}-{2513,3325,0,0,0}-{2526,3279,0,0,0}-{2528,3297,0,0,0}-{2535,3288,0,0,0}-{2548,3287,0,0,0}"
|
||||
"loc_data": "{2501,3315,0,1,0}-{2513,3325,0,1,0}-{2526,3279,0,1,0}-{2528,3297,0,1,0}-{2535,3288,0,1,0}-{2548,3287,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "349",
|
||||
@@ -981,19 +981,19 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "355",
|
||||
"loc_data": "{2504,3318,0,0,0}"
|
||||
"loc_data": "{2504,3318,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "356",
|
||||
"loc_data": "{2523,3307,0,0,0}"
|
||||
"loc_data": "{2523,3307,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "357",
|
||||
"loc_data": "{2518,3309,0,0,0}-{2526,3303,0,0,0}-{2543,3309,0,0,0}-{2550,3319,0,0,0}-{2552,3319,0,0,0}"
|
||||
"loc_data": "{2518,3309,0,1,0}-{2526,3303,0,1,0}-{2543,3309,0,1,0}-{2550,3319,0,1,0}-{2552,3319,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "358",
|
||||
"loc_data": "{2529,3285,0,0,0}"
|
||||
"loc_data": "{2529,3285,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "360",
|
||||
@@ -1029,23 +1029,23 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "369",
|
||||
"loc_data": "{2542,3326,0,0,0}-{2545,3324,0,0,0}-{2545,3327,0,0,0}-{2552,3326,0,0,0}-{2553,3322,0,0,0}-{2553,3324,0,0,0}"
|
||||
"loc_data": "{2542,3326,0,1,0}-{2545,3324,0,1,0}-{2545,3327,0,1,0}-{2552,3326,0,1,0}-{2553,3322,0,1,0}-{2553,3324,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "370",
|
||||
"loc_data": "{2551,3324,1,0,0}-{2551,3327,1,0,0}"
|
||||
"loc_data": "{2551,3324,1,1,0}-{2551,3327,1,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "371",
|
||||
"loc_data": "{2547,3326,0,0,0}-{2549,3322,0,0,0}-{2550,3326,0,0,0}-{2552,3323,0,0,0}"
|
||||
"loc_data": "{2547,3326,0,1,0}-{2549,3322,0,1,0}-{2550,3326,0,1,0}-{2552,3323,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "372",
|
||||
"loc_data": "{2559,3303,0,0,6}-{2561,3303,0,0,6}-{2561,3305,0,0,4}-{2559,3305,0,0,1}"
|
||||
"loc_data": "{2559,3303,0,1,6}-{2561,3303,0,1,6}-{2561,3305,0,1,4}-{2559,3305,0,1,1}"
|
||||
},
|
||||
{
|
||||
"npc_id": "373",
|
||||
"loc_data": "{2516,3274,0,0,0}"
|
||||
"loc_data": "{2516,3274,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "375",
|
||||
@@ -1935,21 +1935,29 @@
|
||||
"npc_id": "708",
|
||||
"loc_data": "{3215,3282,0,1,1}-{3242,3306,0,1,1}-{3208,3357,0,1,3}-{3240,3393,0,1,3}-{3219,3221,0,1,4}-{3162,3410,0,1,2}-{2962,3424,0,1,6}-{3011,3513,0,1,1}-{2980,3337,0,1,6}-{2997,3300,0,1,3}-{3031,3322,0,1,1}-{2957,3308,0,1,0}-{2935,3343,0,1,1}-{2942,3247,0,1,7}-{3239,3523,0,1,4}-{3262,3523,0,1,2}-{2865,3175,0,1,0}-{2855,3188,0,1,1}-{2838,3194,0,1,3}-{2806,3181,0,1,3}-{2827,3170,0,1,5}-{2788,3179,0,1,3}-{2753,3178,0,1,3}-{2759,3155,0,1,0}-{2603,3221,0,1,7}-{2604,3212,0,1,3}-{2612,3230,0,1,0}-{2611,3204,0,1,7}-{2544,3184,0,1,3}-{2627,3231,0,1,4}-{2595,3125,0,1,1}-{2598,3145,0,1,1}-{2588,3145,0,1,7}-{2601,3135,0,1,3}-{2598,3120,0,1,6}-{2615,3120,0,1,4}-{2598,3108,0,1,4}-{2733,3459,0,1,3}-{2732,3457,0,1,6}-{2715,3451,0,1,4}-{2715,3436,0,1,3}-{2977,3377,0,0,3}-{2941,3356,0,0,7}-{2932,3322,0,0,5}-{2934,3301,0,1,5}-{2934,3301,0,1,3}-{2973,3274,0,1,3}-{2994,3270,0,1,0}-{3010,3271,0,1,6}-{2977,3202,0,1,7}-{3068,3251,0,1,6}-{3189,3503,0,1,6}"
|
||||
},
|
||||
{
|
||||
"npc_id": "710",
|
||||
"loc_data": "{2575,3333,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "711",
|
||||
"loc_data": "{2536,3314,1,0,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "713",
|
||||
"loc_data": "{2526,3319,0,0,0}"
|
||||
"loc_data": "{2526,3319,0,0,6}"
|
||||
},
|
||||
{
|
||||
"npc_id": "714",
|
||||
"loc_data": "{2569,3333,0,1,0}-{2517,9755,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "716",
|
||||
"loc_data": "{2540,3286,0,0,0}"
|
||||
"loc_data": "{2540,3286,0,0,1}"
|
||||
},
|
||||
{
|
||||
"npc_id": "717",
|
||||
"loc_data": "{2513,3294,0,0,0}-{2518,3320,0,0,0}-{2530,3274,0,0,0}-{2535,3296,0,0,0}"
|
||||
"loc_data": "{2513,3294,0,1,0}-{2518,3320,0,1,0}-{2539,3273,0,0,1}-{2535,3296,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "719",
|
||||
@@ -1957,11 +1965,27 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "720",
|
||||
"loc_data": "{2542,3306,0,0,0}"
|
||||
"loc_data": "{2542,3306,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "721",
|
||||
"loc_data": "{2531,3331,0,1,3}"
|
||||
},
|
||||
{
|
||||
"npc_id": "722",
|
||||
"loc_data": "{2532,3331,0,1,3}"
|
||||
},
|
||||
{
|
||||
"npc_id": "723",
|
||||
"loc_data": "{2530,3331,0,1,3}"
|
||||
},
|
||||
{
|
||||
"npc_id": "724",
|
||||
"loc_data": "{2531,3331,1,1,6}"
|
||||
},
|
||||
{
|
||||
"npc_id": "725",
|
||||
"loc_data": "{2540,3305,0,0,0}"
|
||||
"loc_data": "{2540,3305,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "728",
|
||||
@@ -5575,9 +5599,13 @@
|
||||
"npc_id": "3205",
|
||||
"loc_data": "{3139,3448,0,1,3}"
|
||||
},
|
||||
{
|
||||
"npc_id": "3215",
|
||||
"loc_data": "{2541,9672,0,1,3}"
|
||||
},
|
||||
{
|
||||
"npc_id": "3216",
|
||||
"loc_data": "{2534,3273,0,0,0}-{2539,3273,0,0,0}"
|
||||
"loc_data": "{2534,3273,0,0,1}-{2581,3332,0,1,3}"
|
||||
},
|
||||
{
|
||||
"npc_id": "3217",
|
||||
@@ -9117,7 +9145,7 @@
|
||||
},
|
||||
{
|
||||
"npc_id": "6345",
|
||||
"loc_data": "{2518,3275,0,0,0}"
|
||||
"loc_data": "{2518,3275,0,1,0}"
|
||||
},
|
||||
{
|
||||
"npc_id": "6346",
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class CarlaDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.SAD, "Oh, hello.").also { stage++ }
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "You seem upset... What's wrong?").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "That's awful, I'm sorry.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "It would be easier to cope with if I could have spent his last few days with him.").also { stage = 4 }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "Why didn't you?").also { stage++ }
|
||||
5 -> npcl(FacialExpression.SAD, "Those mourners came and whisked him away. He didn't even seem that ill, I thought it was a common cold. But the mourners said he was infected and had to be taken away. Two days later the mourners returned and told me he had died.").also { stage++ }
|
||||
6 -> playerl(FacialExpression.FRIENDLY, "Again, I'm sorry. Life can be harsh.").also { stage++ }
|
||||
7 -> options("Where did the plague come from?", "Have there been many victims of the plague?", "I hope things get easier for you.").also { stage++ }
|
||||
8 -> when(buttonId) {
|
||||
1 -> playerl(FacialExpression.ASKING, "Where did the plague come from?").also { stage = 9 }
|
||||
2 -> playerl(FacialExpression.ASKING, "Have there been many victims of the plague?").also { stage = 10 }
|
||||
3 -> playerl(FacialExpression.ASKING, "I hope things get easier for you.").also { stage = 13 }
|
||||
}
|
||||
9 -> npcl(FacialExpression.SAD, "It's down to King Tyras. He and his men brought the plague here from the darklands, and then left us to suffer. One day he'll pay for what he's done!").also { stage = 8 }
|
||||
10 -> npcl(FacialExpression.SAD, "You could say that... I've heard reports that half of West Ardougne is infected! Many have lost friends and family...").also { stage++ }
|
||||
11 -> playerl(FacialExpression.FRIENDLY, "It sounds an awful way to live.").also { stage++ }
|
||||
12 -> npcl(FacialExpression.FRIENDLY, "People are very depressed and scared. I've never met anyone fully infected though. I suppose we should be grateful to the mourners for that.").also { stage = END_DIALOGUE }
|
||||
13 -> npcl(FacialExpression.SAD, "Me too...").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return CarlaDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.CARLA_712)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class ChildDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "I'm not allowed to speak with strangers.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return ChildDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.CHILD_6339, NPCs.CHILD_6345, NPCs.CHILD_356)
|
||||
}
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.api.inEquipment
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class CivilianDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if(inEquipment(player, Items.GAS_MASK_1506)) {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage = 4 }
|
||||
} else {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "I'm a bit busy to talk right now, sorry.").also { stage++ }
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Why? What are you doing?").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "Trying to kill these mice! What I really need is a cat!").also { stage++ }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "No, you're right, you don't see many around.").also { stage = END_DIALOGUE }
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "If you Mourners really wanna help, why don't you do something about these mice?!").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return CivilianDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.CIVILIAN_785, NPCs.CIVILIAN_786, NPCs.CIVILIAN_787)
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class KilronDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getQuest("Plague City").isCompleted(player)){
|
||||
npcl(FacialExpression.FRIENDLY, "Looks like you won't be needing the rope ladder any more, adventurer. I heard it was you who started the revolution and freed West Ardougne!").also { stage = END_DIALOGUE }
|
||||
} else {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.")
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "Hello.").also { stage++ }
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "How are you?").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "Busy.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
/* After Biohazard and before Plague's End
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello Kilron.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hello traveller. Do you need to go back over?").also { stage++ }
|
||||
2 -> options("Not yet Kilron", "Yes I do").also { stage++ }
|
||||
3 -> when(buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Not yet Kilron.").also { stage = 4 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Yes I do.").also { stage = 5 }
|
||||
}
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "Okay, just give me the word.").also { stage = END_DIALOGUE }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "Okay, quickly now!").also { stage = END_DIALOGUE }
|
||||
*/
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return KilronDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.KILRON_349)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialogueFile
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
|
||||
@Initializable
|
||||
class ManDialogue : DialogueFile() {
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.HALF_GUILTY, "We don't have good days here anymore. Curse King Tyras.").also { stage++ }
|
||||
1 -> options("Oh okay, bad day then.", "Why, what has he done?", "I'm looking for a woman called Elena.").also { stage++ }
|
||||
2 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Oh okay, bad day then.").also { stage = END_DIALOGUE }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Why, what has he done?").also { stage = 3 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I'm looking for a woman called Elena.").also { stage = 4 }
|
||||
}
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "His army curses our city with this plague then wanders off again, leaving us to clear up the pieces.").also { stage = END_DIALOGUE }
|
||||
4 -> npcl(FacialExpression.THINKING, "Not heard of her.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class MournersDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
playerl(FacialExpression.FRIENDLY, "Hi.").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.SAD, "What are you up to?").also { stage++ }
|
||||
1 -> playerl(FacialExpression.NEUTRAL,"Just sight-seeing.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "This is no place for sight-seeing. Don't you know there's been a plague outbreak?").also { stage++ }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "Yes, I had heard.").also { stage++ }
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "Then I suggest you leave as soon as you can.").also { stage++ }
|
||||
5 -> playerl(FacialExpression.FRIENDLY, "Thanks for the advice.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return MournersDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(
|
||||
NPCs.MOURNER_347, NPCs.MOURNER_348, NPCs.MOURNER_357, NPCs.MOURNER_369, NPCs.MOURNER_371, NPCs.MOURNER_370)
|
||||
}
|
||||
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class NurseSarahDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "Hello my dear, how are you feeling?").also { stage++ }
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Hello my dear, how are you feeling?").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "Well in that case I'd better get back to work. Take care.").also { stage++ }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "You too.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return NurseSarahDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.NURSE_SARAH_373)
|
||||
}
|
||||
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class PriestDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "I wish there was more I could do for these people.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return PriestDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.PRIEST_358)
|
||||
}
|
||||
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.api.sendNPCDialogue
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class RecruiterDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
npcl(FacialExpression.FRIENDLY, "Citizens of West Ardougne. Who will join the Royal Army of Ardougne? It is a very noble cause. Fight alongside King Tyras, crusading in the darklands of the west!").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(interfaceId: Int, buttonId: Int): Boolean {
|
||||
when (stage) {
|
||||
0 -> sendNPCDialogue(player, NPCs.MAN_726, "Plague bringer!").also { stage++ }
|
||||
1 -> sendNPCDialogue(player, NPCs.MAN_726, "King Tyras is scum!").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "Tyras will be informed of these words of treason!").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun newInstance(player: Player?): DialoguePlugin {
|
||||
return RecruiterDialogue(player)
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray {
|
||||
return intArrayOf(NPCs.RECRUITER_720)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.dialogue
|
||||
|
||||
import core.game.dialogue.DialogueFile
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import core.tools.RandomFunction
|
||||
|
||||
@Initializable
|
||||
class WomanDialogue : DialogueFile() {
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
when (RandomFunction.random(1,4)) {
|
||||
1 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello, how's it going?").also { stage++ }
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Bah, those mourners... they're meant to be helping us, but I think they're doing more harm here than good. They won't even let me send a letter out to my family.").also { stage++ }
|
||||
2 -> options("Have you seen a lady called Elena around here?", "You should stand up to them more.").also { stage++ }
|
||||
3 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Have you seen a lady called Elena around here?").also { stage = 4 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "You should stand up to them more.").also { stage = 6 }
|
||||
}
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "Yes, I've seen her. Very helpful person.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "Not for the last few days though... I thought maybe she'd gone home.").also { stage = END_DIALOGUE }
|
||||
6 -> npcl(FacialExpression.FRIENDLY, "Oh I'm not one to cause a fuss.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
2 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello, how's it going?").also { stage++ }
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Life is tough.").also { stage++ }
|
||||
2 -> options("Yes, living in a plague city must be hard.", "I'm sorry to hear that.", "I'm looking for a lady called Elena.").also { stage++ }
|
||||
3 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Yes, living in a plague city must be hard.").also { stage = 4 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I'm sorry to hear that.").also { stage = 6 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I'm looking for a lady called Elena.").also { stage = 7 }
|
||||
}
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "Plague? Pah, that's no excuse for the treatment we've received. It's obvious pretty quickly if someone has the plague.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "I'm thinking about making a break for it. I'm perfectly healthy, not gonna infect anyone.").also { stage = END_DIALOGUE }
|
||||
6 -> npcl(FacialExpression.FRIENDLY, "Well, ain't much either you or me can do about it.").also { stage = END_DIALOGUE }
|
||||
7 -> npcl(FacialExpression.FRIENDLY, "I've not heard of her. Old Jethick knows a lot of people, maybe he'll know where you can find her.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
3 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello, how's it going?").also { stage++ }
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "We don't have good days here anymore. Curse King Tyras.").also { stage++ }
|
||||
2 -> options("Oh okay, bad day then.", "Why, what has he done?", "I'm looking for a woman called Elena.").also { stage++ }
|
||||
3 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Oh okay, bad day then.").also { stage = END_DIALOGUE }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Why, what has he done?").also { stage = 4 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I'm looking for a lady called Elena.").also { stage = 5 }
|
||||
}
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "His army curses our city with this plague then wanders off again, leaving us to clear up the pieces.").also { stage = END_DIALOGUE }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "Not heard of her.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
4 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello, how's it going?").also { stage++ }
|
||||
1 -> npcl(FacialExpression.HALF_ASKING, "An outsider! Can you get me out of this hell hole?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.HALF_GUILTY, "Sorry, that's not what I'm here to do.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class AlrenaDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") == 1) {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello, Edmond has asked me to help find your daughter.").also { stage++ }
|
||||
} else {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello Madam.").also { stage++ }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
0 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Oh, hello there.").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Are you ok?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "Not too bad... I've just got some troubles on my mind…").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
1 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Yes he told me. I've begun making your special gas mask, but I need some dwellberries to finish it.").also { stage++ }
|
||||
2 -> if (inInventory(player!!, Items.DWELLBERRIES_2126)) {
|
||||
playerl(FacialExpression.NEUTRAL, "Yes I've got some here.").also { stage++ }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "The place to look is in McGrubor's Wood to the west of Seers village.").also { stage = 8 }
|
||||
}
|
||||
3 -> {
|
||||
sendItemDialogue(player!!, Items.DWELLBERRIES_2126, "You give the dwellberries to Alrena.").also { stage++ }
|
||||
removeItem(player!!, Items.DWELLBERRIES_2126)
|
||||
}
|
||||
4 -> sendDialogue(player!!, "Alrena crushes the berries into a smooth paste. She then smears the paste over a strange mask.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "There we go, all done. While in West Ardougne you must wear this at all times, or you could catch the plague. I'll make a spare mask. I'll hide it in the wardrobe in case the mourners come in.").also { stage++ }
|
||||
6 -> sendItemDialogue(player!!, Items.GAS_MASK_1506, "Alrena gives you the mask.").also { stage++ }
|
||||
7 -> {
|
||||
end()
|
||||
addItem(player!!, Items.GAS_MASK_1506)
|
||||
setQuestStage(player!!, "Plague City", 2)
|
||||
setAttribute(player!!, PlagueCityListeners.BUCKET_USES_ATTRIBUTE, 0)
|
||||
sendNPCDialogue(player!!, NPCs.ALRENA_710, "I'll make a spare mask. I'll hide it in the wardrobe in case the mourners come in.")
|
||||
}
|
||||
8 -> playerl(FacialExpression.NEUTRAL, "Ok, I'll go and get some.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
2 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hello darling, I think Edmond had a good idea of how to get into West Ardougne, you should hear his idea.").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Alright I'll go and see him now.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
3 -> when (stage) {
|
||||
1 -> if (player.getAttribute(PlagueCityListeners.BUCKET_USES_ATTRIBUTE, 0) == 1) {
|
||||
npcl(FacialExpression.FRIENDLY, "Hello darling, how's that tunnel coming along?").also { stage = 5 }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "How's the tunnel going?").also { stage++ }
|
||||
}
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I'm getting there.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "One of the mourners has been sniffing around asking questions about you and Edmond, you should keep an eye out for him.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "Ok, thanks for the warning.").also { stage = END_DIALOGUE }
|
||||
5 -> playerl(FacialExpression.FRIENDLY, "I just need to soften the soil a little more and then we'll start digging.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
4 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hi, have you managed to get through to West Ardougne?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Not yet, but I should be going soon.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Make sure you wear your mask while you're over there! I can't think of a worse way to die.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "Ok, thanks for the warning.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
5 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hello, any word on Elena?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Not yet I'm afraid.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Is there anything else I can do to help?").also { stage++ }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "It's alright, I'll get her back soon.").also { stage++ }
|
||||
5 -> if(inEquipment(player, Items.GAS_MASK_1506)) {
|
||||
npcl(FacialExpression.FRIENDLY, "That's the spirit, dear.").also { stage = END_DIALOGUE }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "That's the spirit, dear. Don't forget that there's a spare gas mask in the wardrobe if you need one.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
|
||||
in 6..7 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hi, have you managed to get through to West Ardougne?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Not yet, but I should be going soon.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Make sure you wear your mask while you're over there! I can't think of a worse way to die.").also { stage++ }
|
||||
4 -> if(inEquipment(player, Items.GAS_MASK_1506)) {
|
||||
playerl(FacialExpression.FRIENDLY, "Okay, thanks for the warning.").also { stage = END_DIALOGUE }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Don't forget, I've got a spare one hidden in the wardrobe if you need it.").also { stage++ }
|
||||
}
|
||||
5 -> playerl(FacialExpression.FRIENDLY, "Great, thanks Alrena!").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 8..14 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hello, any word on Elena?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Not yet I'm afraid.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Is there anything else I can do to help?").also { stage++ }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "Do you have a picture of Elena?").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, " Yes. There should be one in the house somewhere. Let me know if you need anything else.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 15..98 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Hello, any word on Elena?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Not yet I'm afraid, I need to find some Snape grass first, any idea where I'd find some?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "It's not common round here, though I hear it's easy to find by the coast south west of Falador.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "Thanks, I'll go take a look.").also { stage++ }
|
||||
5 -> playerl(FacialExpression.FRIENDLY, "I also need to get some chocolate powder for a hangover cure for the city warder.").also { stage++ }
|
||||
6 -> npcl(FacialExpression.FRIENDLY, "Well I don't have any chocolate, but this may help.").also { stage++ }
|
||||
7 -> sendItemDialogue(player!!, Items.PESTLE_AND_MORTAR_233, "Alrena hands you a pestle and mortar.").also { stage++ }
|
||||
8 -> playerl(FacialExpression.FRIENDLY, "Thanks.").also { stage++ }
|
||||
9 -> {
|
||||
end()
|
||||
addItem(player!!, Items.PESTLE_AND_MORTAR_233)
|
||||
}
|
||||
}
|
||||
|
||||
99 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Thank you, thank you! Elena beat you back by minutes.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
100 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Thank you for rescuing my daughter! Elena has told me of your bravery in entering a house that could have been plague infected. I can't thank you enough!").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.ALRENA_710)
|
||||
}
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class BravekDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") == 0) {
|
||||
npcl(FacialExpression.ANGRY, "Go away, I'm busy! I'm... Um... In a meeting!").also { stage = END_DIALOGUE }
|
||||
} else if (player.questRepository.getStage("Plague City") == 13) {
|
||||
npcl(FacialExpression.NEUTRAL, "My head hurts! I'll speak to you another day...").also { stage = 1 }
|
||||
} else if (player.questRepository.getStage("Plague City") == 14) {
|
||||
npcl(FacialExpression.NEUTRAL, "Uurgh! My head still hurts too much to think straight. Oh for one of Trudi's hangover cures!").also { stage = 1 }
|
||||
} else if (player.questRepository.getStage("Plague City") >= 16) {
|
||||
npcl(FacialExpression.NEUTRAL, "Thanks again for the hangover cure.").also { stage = 1 }
|
||||
} else {
|
||||
npcl(FacialExpression.ANGRY, "Go away, I'm busy! I'm... Um... In a meeting!").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
13 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "This is really important though!").also { stage = 2 }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "I can't possibly speak to you with my head spinning like this... I went a bit heavy on the drink last night.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Curse my herbalist, she made the best hangover cures. Darn inconvenient of her catching the plague.").also { stage++ }
|
||||
4 -> options("You shouldn't drink so much then!", "Do you know what's in the cure?", "Okay, goodbye.").also { stage++ }
|
||||
5 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "You shouldn't drink so much then!").also { stage = 7 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Do you know what's in the cure?").also { stage = 20 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "Okay, goodbye.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
7 -> npcl(FacialExpression.FRIENDLY, "Well positions of responsibility are hard, I need something to take my mind off things... Especially with the problems this place has..").also { stage++ }
|
||||
8 -> playerl(FacialExpression.FRIENDLY, "I don't think drink is the solution.").also { stage++ }
|
||||
9 -> npcl(FacialExpression.FRIENDLY, "Uurgh! My head still hurts too much to think straight. Oh for one of Trudi's hangover cures!").also { stage++ }
|
||||
10 -> npcl(FacialExpression.FRIENDLY, "I'll see what I can do I suppose. Mr. Bravek, there's someone here who really needs to speak to you.").also { stage++ }
|
||||
11 -> sendNPCDialogue(player!!, NPCs.BRAVEK_711, "I suppose they can come in then. If they keep it short.").also { stage = END_DIALOGUE }
|
||||
20 -> npcl(FacialExpression.FRIENDLY, "Hmmm let me think... Ouch! Thinking isn't clever. Ah here, she did scribble it down for me.").also { stage++ }
|
||||
21 -> if (freeSlots(player!!) == 0) {
|
||||
end()
|
||||
sendItemDialogue(player!!, Items.A_SCRUFFY_NOTE_1508, "Bravek waves a tatty piece of paper at you, but you don't have room to take it.").also { stage = END_DIALOGUE }
|
||||
} else {
|
||||
end()
|
||||
sendItemDialogue(player!!, Items.A_SCRUFFY_NOTE_1508, "Bravek hands you a tatty piece of paper.").also { stage++ }
|
||||
addItem(player!!, Items.A_SCRUFFY_NOTE_1508)
|
||||
setQuestStage(player!!, "Plague City", 14)
|
||||
}
|
||||
}
|
||||
|
||||
14 -> when (stage) {
|
||||
1 -> if(removeItem(player!!, Items.HANGOVER_CURE_1504)) {
|
||||
playerl(FacialExpression.FRIENDLY, "Try this.").also { stage++ }
|
||||
} else {
|
||||
end()
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
2 -> {
|
||||
animate(npc, 1330) // Drink hangover cure.
|
||||
findLocalNPC(player!!, NPCs.BRAVEK_711)!!.sendChat("Grruurgh!")
|
||||
sendItemDialogue(player!!, Items.HANGOVER_CURE_1504, "You give Bravek the hangover cure.").also { stage++ }
|
||||
}
|
||||
3 -> sendDialogue(player!!, "Bravek gulps down the foul-looking liquid.").also { stage++ }
|
||||
4 -> npcl(FacialExpression.NEUTRAL, "Ooh that's much better! Thanks, that's the clearest my head has felt in a month. Ah now, what was it you wanted me to do for you?").also { stage++ }
|
||||
5 -> playerl(FacialExpression.FRIENDLY, "I need to rescue a kidnap victim named Elena. She's being held in a plague house, I need permission to enter.").also { stage++ }
|
||||
6 -> options("Ok, I'll go speak to them.", "Is that all anyone says around here?", "They won't listen to me!").also { stage++ }
|
||||
7 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Ok, I'll go speak to them.").also { stage = 6 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Is that all anyone says around here?").also { stage = 11 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "They won't listen to me! They say I'm not properly equipped to go in the house, though I do have a very effective gasmask.").also { stage++ }
|
||||
}
|
||||
8 -> npcl(FacialExpression.FRIENDLY, "Hmmm, well I guess they're not taking the issue of a kidnapping seriously enough. They do go a bit far sometimes.").also { stage++ }
|
||||
9 -> npcl(FacialExpression.FRIENDLY, "I've heard of Elena, she has helped us a lot... Ok, I'll give you this warrant to enter the house.").also { stage = 17 }
|
||||
11 -> npcl(FacialExpression.FRIENDLY, "Well, they know best about plague issues.").also { stage++ }
|
||||
12 -> playerl(FacialExpression.FRIENDLY, "Don't you want to take an interest in it at all?").also { stage++ }
|
||||
13 -> npcl(FacialExpression.FRIENDLY, "Nope, I don't wish to take a deep interest in plagues. That stuff is too scary for me!").also { stage++ }
|
||||
14 -> playerl(FacialExpression.FRIENDLY, "I can see why people say you're a weak leader.").also { stage++ }
|
||||
15 -> npcl(FacialExpression.FRIENDLY, "Bah, people always criticise their leaders but delegating is the only way to lead. I delegate all plague issues to the mourners.").also { stage++ }
|
||||
16 -> playerl(FacialExpression.FRIENDLY, "This whole city is a plague issue!").also { stage = 6 }
|
||||
17 -> if (freeSlots(player!!) == 0) {
|
||||
end()
|
||||
sendItemDialogue(player!!, Items.WARRANT_1503, "Bravek waves a warrant at you, but you don't have room to take it.").also { stage = END_DIALOGUE }
|
||||
} else {
|
||||
end()
|
||||
sendItemDialogue(player!!, Items.WARRANT_1503, "Bravek hands you a warrant.").also { stage = END_DIALOGUE }
|
||||
addItem(player!!, Items.WARRANT_1503)
|
||||
setQuestStage(player!!, "Plague City", 16)
|
||||
}
|
||||
}
|
||||
|
||||
16 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.NEUTRAL, "Not a problem, happy to help out.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "I'm just having a little drop of whisky, then I'll feel really good.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 17..100 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Not a problem, happy to help out.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "I'm just having a little drop of whisky, then I'll feel really good.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.BRAVEK_711)
|
||||
}
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.questStage
|
||||
import core.api.sendNPCDialogue
|
||||
import core.api.setQuestStage
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class ClerkDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
npcl(FacialExpression.NEUTRAL, "Hello, welcome to the Civic Office of West Ardougne. How can I help you?").also { stage = 0 }
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
11 -> when (stage) {
|
||||
0 -> options("Who is through that door?", "I'm just looking thanks.").also { stage++ }
|
||||
1 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Who is through that door?").also { stage = 2 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I'm just looking thanks.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "The city warder Bravek is in there.").also { stage++ }
|
||||
3 -> playerl(FacialExpression.FRIENDLY,"Can I go in?").also { stage++ }
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "He has asked not to be disturbed.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
12 -> when (stage) {
|
||||
0 -> options("I need permission to enter a plague house.", "Who is through that door?", "I'm just looking thanks.").also { stage++ }
|
||||
1 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "I need permission to enter a plague house.").also { stage = 2 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Who is through that door?").also { stage = 12 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I'm just looking thanks.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "Rather you than me! The mourners usually deal with that stuff, you should speak to them. Their headquarters are right near the city gate.").also { stage++ }
|
||||
3 -> options("I'll try asking them then.", "Surely you don't let them run everything for you?").also { stage++ }
|
||||
4 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.HALF_GUILTY, "I'll try asking them then.").also { stage = END_DIALOGUE }
|
||||
2 -> playerl(FacialExpression.HALF_GUILTY, "Surely you don't let them run everything for you?").also { stage = 5 }
|
||||
}
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "Well, they do know what they're doing here. If they did start doing something badly Bravek, the city warder, would have the power to override them. I can't see that happening though.").also { stage++ }
|
||||
6 -> options("I'll try asking them then.", "Can I speak to Bravek anyway?", "This is urgent though! Someone's been kidnapped!").also { stage++ }
|
||||
7 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.HALF_GUILTY, "I'll try asking them then.").also { stage = END_DIALOGUE }
|
||||
2 -> playerl(FacialExpression.HALF_GUILTY, "Can I speak to Bravek anyway?").also { stage = 8 }
|
||||
3 -> playerl(FacialExpression.HALF_GUILTY, "This is urgent though! Someone's been kidnapped!").also { stage = 11 }
|
||||
}
|
||||
8 -> npcl(FacialExpression.FRIENDLY, "He has asked not to be disturbed.").also { stage++ }
|
||||
9 -> options("This is urgent though! Someone's been kidnapped!", "Okay, I'll leave him alone.", "Do you know when he will be available?").also { stage++ }
|
||||
10 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.HALF_GUILTY, "This is urgent though! Someone's been kidnapped!").also { stage = 11 }
|
||||
2 -> playerl(FacialExpression.HALF_GUILTY, "Okay, I'll leave him alone.").also { stage = END_DIALOGUE }
|
||||
3 -> playerl(FacialExpression.HALF_GUILTY, "Do you know when he will be available?").also { stage = 14 }
|
||||
}
|
||||
11 -> npcl(FacialExpression.HALF_GUILTY, "I'll see what I can do I suppose.").also { stage++ }
|
||||
12 -> npcl(FacialExpression.HALF_GUILTY, "Mr Bravek, there's a man here who really needs to speak to you.").also { stage++ }
|
||||
13 -> {
|
||||
end()
|
||||
setQuestStage(player!!, "Plague City", 13)
|
||||
sendNPCDialogue(player!!, NPCs.BRAVEK_711, "I suppose they can come in then. If they keep it short.").also { stage++ }
|
||||
}
|
||||
14 -> npcl(FacialExpression.HALF_GUILTY, "Oh I don't know, an hour or so maybe.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 13..15 -> when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "Bravek will see you now but keep it short!").also { stage++ }
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Thanks, I won't take much of his time.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 16..100 -> when (stage) {
|
||||
0 -> options("Who is through that door?", "I'm just looking thanks.").also { stage++ }
|
||||
1 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Who is through that door?").also { stage = 2 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I'm just looking thanks.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "The city warder Bravek is in there.").also { stage++ }
|
||||
3 -> playerl(FacialExpression.FRIENDLY,"Can I go in?").also { stage++ }
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "I suppose so.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.CLERK_713)
|
||||
}
|
||||
+167
@@ -0,0 +1,167 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class EdmondDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if(inEquipmentOrInventory(player, Items.GAS_MASK_1506) && (player.questRepository.getStage("Plague City") == 2)) {
|
||||
playerl(FacialExpression.FRIENDLY, "Hi Edmond, I've got the gas mask now.").also { stage++ }
|
||||
} else if(player.questRepository.getStage("Plague City") > 2) {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello Edmond.").also { stage++ }
|
||||
} else {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello old man.").also { stage++ }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
0 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Sorry, I can't stop to talk...").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Why, what's wrong?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "I've got to find my daughter. I pray that she is still alive...").also { stage++ }
|
||||
4 -> options("What's happened to her?", "Well, good luck finding her.").also { stage++ }
|
||||
5 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "What's happened to her?").also { stage = 6 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Well, good luck finding her.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
6 -> npcl(FacialExpression.NEUTRAL, "Elena's a missionary and a healer. Three weeks ago she managed to cross the Ardougne wall...").also { stage++ }
|
||||
7 -> npcl(FacialExpression.NEUTRAL, "No-one's allowed to cross the wall in case they spread the plague. But after hearing the screams of suffering she felt she had to help.").also { stage++ }
|
||||
8 -> npcl(FacialExpression.NEUTRAL, "She said she'd be gone for a few days but we've heard nothing since.").also { stage++ }
|
||||
9 -> options("Tell me more about the plague.", "Can I help find her?", "I'm sorry, I have to go.").also { stage++ }
|
||||
10 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Tell me more about the plague.").also { stage = 12 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Can I help find her?").also { stage = 13 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I'm sorry, I have to go.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
12 -> npcl(FacialExpression.FRIENDLY, "The mourners can tell you more than me. They're the only ones allowed to cross the border. I do know the plague is a horrible way to go... That's why Elena felt she had to go help.").also { stage = 9 }
|
||||
13 -> npcl(FacialExpression.FRIENDLY, "Really, would you? I've been working on a plan to get into West Ardougne, but I'm too old and tired to carry it through.").also { stage++ }
|
||||
14 -> npcl(FacialExpression.FRIENDLY, "If you're going into West Ardougne you'll need protection from the plague. My wife made a special gas mask for Elena with dwellberries rubbed into it.").also { stage++ }
|
||||
15 -> npcl(FacialExpression.FRIENDLY, "Dwellberries help repel the virus! We need some more though...").also { stage++ }
|
||||
16 -> playerl(FacialExpression.ASKING, "Where can I find these dwellberries?").also { stage++ }
|
||||
17 -> npcl(FacialExpression.FRIENDLY, "The only place I know of is McGrubor's Wood just north of the Rangers' Guild.").also { stage++ }
|
||||
18 -> playerl(FacialExpression.FRIENDLY, "Ok, I'll go and get some.").also { stage++ }
|
||||
19 -> npcl(FacialExpression.NEUTRAL, "The foresters keep a close eye on it, but there is a back way in.").also { stage++ }
|
||||
20 -> {
|
||||
end()
|
||||
setQuestStage(player!!, PlagueCity.PlagueCityQuest, 1)
|
||||
}
|
||||
}
|
||||
|
||||
1 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Have you got the dwellberries yet?").also { stage++ }
|
||||
2 -> if (!inInventory(player, Items.DWELLBERRIES_2126)) {
|
||||
playerl(FacialExpression.FRIENDLY, "Sorry, I'm afraid not.").also { stage = 3 }
|
||||
} else {
|
||||
playerl(FacialExpression.FRIENDLY, "Yes I've got some here.").also { stage = 6 }
|
||||
}
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "You'll probably find them in McGrubor's Wood it's just west of Seers village.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.NEUTRAL, "Ok, I'll go and get some.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.NEUTRAL, "The foresters keep a close eye on it, but there is a back way in.").also { stage = END_DIALOGUE }
|
||||
6 -> npcl(FacialExpression.NEUTRAL, "Take them to my wife Alrena, she's inside.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
2 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Good stuff, now for the digging. Beneath us are the Ardougne sewers, there you'll find the access to West Ardougne.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.NEUTRAL, "The problem is the soil is rock hard. You'll need to pour on several buckets of water to soften it up. I'll keep an eye out for the mourners.").also { stage++ }
|
||||
3 -> {
|
||||
end()
|
||||
setQuestStage(player!!, "Plague City", 3)
|
||||
}
|
||||
}
|
||||
|
||||
3 -> when (stage) {
|
||||
1 -> if (player!!.getAttribute("/save:elena:dig", false) == true) {
|
||||
playerl(FacialExpression.NEUTRAL, "I've soaked the soil with water.").also { stage = 3 }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "How's it going?").also { stage = 2 }
|
||||
}
|
||||
2 -> if (player.getAttribute(PlagueCityListeners.BUCKET_USES_ATTRIBUTE, 0) == 1) {
|
||||
playerl(FacialExpression.NEUTRAL, "I still need to pour three more buckets of water on the soil.").also { stage = END_DIALOGUE }
|
||||
} else if (player.getAttribute(PlagueCityListeners.BUCKET_USES_ATTRIBUTE, 0) == 2){
|
||||
playerl(FacialExpression.NEUTRAL, "I still need to pour two more buckets of water on the soil.").also { stage = END_DIALOGUE }
|
||||
} else if (player.getAttribute(PlagueCityListeners.BUCKET_USES_ATTRIBUTE, 0) == 3) {
|
||||
playerl(FacialExpression.NEUTRAL, "I still need to pour one more bucket of water on the soil.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "That's great, it should be soft enough to dig through now.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
4 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "I think it's the pipe to the south that comes up in West Ardougne.").also { stage++ }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "Alright I'll check it out.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "Once you're in the city look for a man called Jethick, he's an old friend and should help you. Send him my regards, I haven't seen him since before Elena was born.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.NEUTRAL, "Alright, thanks I will.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
5 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.NEUTRAL, "Edmond, I can't get through to West Ardougne! There's an iron grill blocking my way, I can't pull it off alone.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.NEUTRAL, "If you get some rope you could tie to the grill, then we could both pull it at the same time.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
6 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.NEUTRAL, "I've tied a rope to the grill over there, will you help me pull it off?").also { stage++ }
|
||||
2 -> npcl(FacialExpression.NEUTRAL, "Alright, let's get to it...").also { stage++ }
|
||||
3 -> {
|
||||
end()
|
||||
UndergroundCutscene(player!!).start()
|
||||
}
|
||||
}
|
||||
|
||||
7 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Have you found Elena yet?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "Not yet, it's a big city over there.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Don't forget to look for my friend Jethick. He may be able to help.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
8 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Have you found Elena yet?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "Not yet, it's a big city over there. Do you have a picture of Elena?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "There should be a picture of Elena in the house. Please find her quickly, I hope it's not too late.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
99 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Thank you, thank you! Elena beat you back by minutes.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.NEUTRAL, "Now I said I'd give you a reward. What can I give you as a reward I wonder?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "Here take this magic scroll, I have little use for it but it may help you.").also { stage++ }
|
||||
4 -> {
|
||||
end()
|
||||
player!!.questRepository.getQuest("Plague City").finish(player)
|
||||
}
|
||||
}
|
||||
|
||||
100 -> when (stage) {
|
||||
1 -> if (!inInventory(player!!, Items.ARDOUGNE_TELEPORT_8011)) {
|
||||
npcl(FacialExpression.FRIENDLY, "Ah hello again, and thank you again for rescuing my daughter.").also { stage = 2 }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Ah hello again, and thank you again for rescuing my daughter.").also { stage = 5 }
|
||||
}
|
||||
2 -> options("Do you have any more of those scrolls?", "No problem.").also { stage++ }
|
||||
3 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.NEUTRAL, "Do you have any more of those scrolls?").also { stage = 4 }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "No problem.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
4 -> npcl(FacialExpression.FRIENDLY, "Here take this magic scroll, I have little use for it but it may help you.").also { stage = 6 }
|
||||
5 -> playerl(FacialExpression.NEUTRAL, "No problem.").also { stage = END_DIALOGUE }
|
||||
6 -> {
|
||||
end()
|
||||
addItemOrDrop(player!!, Items.A_MAGIC_SCROLL_1505)
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.EDMOND_714)
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.setQuestStage
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class ElenaDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") >= 16) {
|
||||
playerl(FacialExpression.FRIENDLY, "Hi, you're free to go! Your kidnappers don't seem to be about right now.").also { stage = 1 }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Go and see my father, I'll make sure he adequately rewards you. Now I'd better leave while I still can.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Thank you, being kidnapped was so inconvenient. I was on my way back to East Ardougne with some samples, I want to see if I can diagnose a cure for this plague.").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Well you can leave via the manhole near the gate.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "Go and see my father, I'll make sure he adequately rewards you. Now I'd better leave while I still can.").also { stage++ }
|
||||
4 -> {
|
||||
end()
|
||||
setQuestStage(player!!, "Plague City", 99)
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.ELENA_3215)
|
||||
}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.questStage
|
||||
import core.api.setQuestStage
|
||||
import core.game.dialogue.DialogueFile
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class HeadMournerDialogue : DialogueFile() {
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
npc = NPC(NPCs.HEAD_MOURNER_716)
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
in 8..10 -> when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "Hmmm, how did you get over here? You're not one of this rabble. Ah well, you'll have to stay. Can't risk you going back now.").also { stage++ }
|
||||
1 -> options("So what's a mourner?", "I haven't got the plague though...", "I'm looking for a woman named Elena.").also { stage++ }
|
||||
2 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "So what's a mourner?").also { stage = 3 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I haven't got the plague though...").also { stage = 6 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I'm looking for a woman named Elena.").also { stage = 7 }
|
||||
}
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "We're working for King Lathas of East Ardougne. He has tasked us with containing the accursed plague sweeping West Ardougne.").also { stage++ }
|
||||
4 -> npcl(FacialExpression.NEUTRAL, "We also do our best to ease these people's suffering. We're nicknamed mourners because we spend a lot of time at plague victim funerals, no one else is allowed to risk attending.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.NEUTRAL, "It's a demanding job, and we get little thanks from the people here.").also { stage = 1 }
|
||||
6 -> npcl(FacialExpression.NEUTRAL, "Can't risk you being a carrier. That protective clothing you have isn't regulation issue. It won't meet safety standards.").also { stage = 1 }
|
||||
7 -> npcl(FacialExpression.NEUTRAL, "Ah yes, I've heard of her. A healer I believe. She must be mad coming over here voluntarily.").also { stage++ }
|
||||
8 -> npcl(FacialExpression.NEUTRAL, "I hear rumours she has probably caught the plague now. Very tragic, a stupid waste of life.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
11 -> when (stage) {
|
||||
0 -> player!!.dialogueInterpreter.sendDialogue("The door won't open.", "You notice a black cross on the door.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "I'd stand away from there. That black cross means that house has been touched by the plague.").also { stage++ }
|
||||
2 -> options("But I think a kidnap victim is in here.", "I fear not a mere plague.", "Thanks for the warning.").also { stage++ }
|
||||
3 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "But I think a kidnap victim is in here.").also { stage = 5 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I fear not a mere plague.").also { stage = 4 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "Thanks for the warning.").also { stage = END_DIALOGUE }
|
||||
|
||||
}
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "Thanks for the warning.").also { stage = END_DIALOGUE }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "That's irrelevant. You don't have clearance to go in there.").also { stage++ }
|
||||
6 -> playerl(FacialExpression.NEUTRAL, "How do I get clearance?").also { stage++ }
|
||||
7 -> npcl(FacialExpression.NEUTRAL, "Well you'd need to apply to the head mourner, or I suppose Bravek the city warder.").also { stage++ }
|
||||
8 -> npcl(FacialExpression.NEUTRAL, "I wouldn't get your hopes up though.").also { stage++ }
|
||||
9 -> {
|
||||
end()
|
||||
setQuestStage(player!!, "Plague City", 12)
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
}
|
||||
|
||||
in 13..15 -> when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "Hmmm, how did you get over here? You're not one of this rabble. Ah well, you'll have to stay. Can't risk you going back now.").also { stage++ }
|
||||
1 -> options("I need clearance to enter a plague house.", "So what's a mourner?", "I haven't got the plague though...", "I'm looking for a woman named Elena.").also { stage++ }
|
||||
2 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "I need clearance to enter a plague house. It's in the south east corner of West Ardougne.").also { stage = 9 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "So what's a mourner?").also { stage = 3 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "I haven't got the plague though...").also { stage = 6 }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "I'm looking for a woman named Elena.").also { stage = 7 }
|
||||
}
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "We're working for King Lathas of East Ardougne. He has tasked us with containing the accursed plague sweeping West Ardougne.").also { stage++ }
|
||||
4 -> npcl(FacialExpression.NEUTRAL, "We also do our best to ease these people's suffering. We're nicknamed mourners because we spend a lot of time at plague victim funerals, no one else is allowed to risk attending.").also { stage++ }
|
||||
5 -> npcl(FacialExpression.NEUTRAL, "It's a demanding job, and we get little thanks from the people here.").also { stage = 1 }
|
||||
6 -> npcl(FacialExpression.NEUTRAL, "Can't risk you being a carrier. That protective clothing you have isn't regulation issue. It won't meet safety standards.").also { stage = 1 }
|
||||
7 -> npcl(FacialExpression.NEUTRAL, "Ah yes, I've heard of her. A healer I believe. She must be mad coming over here voluntarily.").also { stage++ }
|
||||
8 -> npcl(FacialExpression.NEUTRAL, "I hear rumours she has probably caught the plague now. Very tragic, a stupid waste of life.").also { stage = END_DIALOGUE }
|
||||
9 -> npcl(FacialExpression.DISGUSTED, "You must be nuts, absolutely not!").also { stage++ }
|
||||
10 -> options("There's a kidnap victim inside!", "I've got a gas mask though...", "Yes, I'm utterly crazy.").also { stage++ }
|
||||
11 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "There's a kidnap victim inside!").also { stage = 12 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I've got a gas mask though...").also { stage = 13 }
|
||||
3 -> playerl(FacialExpression.FRIENDLY, "Yes, I'm utterly crazy.").also { stage = 17 }
|
||||
}
|
||||
12 -> npcl(FacialExpression.FRIENDLY, "Well they're as good as dead then, no point in trying to save them.").also { stage = END_DIALOGUE }
|
||||
13 -> npcl(FacialExpression.FRIENDLY, "It's not regulation. Anyway you're not properly trained to deal with the plague.").also { stage++ }
|
||||
14 -> playerl(FacialExpression.FRIENDLY, "How do I get trained?").also { stage++ }
|
||||
15 -> npcl(FacialExpression.FRIENDLY, "It requires a strict 18 months of training.").also { stage++ }
|
||||
16 -> playerl(FacialExpression.FRIENDLY, "I don't have that sort of time.").also { stage = END_DIALOGUE }
|
||||
17 -> playerl(FacialExpression.FRIENDLY, "Yes, I'm utterly crazy.").also { stage++ }
|
||||
18 -> npcl(FacialExpression.FRIENDLY, "You're wasting my time, I have a lot of work to do!").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 16..100 -> when (stage) {
|
||||
0 -> npcl(FacialExpression.FRIENDLY, "I'd stand away from there. That black cross means that house has been touched by the plague.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class JethickDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") in 0..11) {
|
||||
npcl(FacialExpression.FRIENDLY, "Hello I don't recognise you. We don't get many newcomers around here.").also { stage++ }
|
||||
} else if (player.questRepository.getStage("Plague City") >= 12) {
|
||||
npcl(FacialExpression.FRIENDLY,"Hello. We don't get many newcomers around here.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
in 0..1 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Well King Tyras has wandered off into the west kingdom. He doesn't care about the mess he's left here. The city warder Bravek is in charge at the moment... He's not much better.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 7..9 -> when (stage) {
|
||||
1 -> options("Hi, I'm looking for a woman from East Ardougne called Elena.", "So who's in charge here?").also { stage++ }
|
||||
2 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Hi, I'm looking for a woman from East Ardougne called Elena.").also { stage = 3 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "So who's in charge here?").also { stage = END_DIALOGUE }
|
||||
}
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "East Ardougnian women are easier to find in East Ardougne. Not many would come to West Ardougne to find one. Although the name is familiar, what does she look like?").also { stage++ }
|
||||
4 -> playerl(FacialExpression.NEUTRAL, "Um... brown hair... in her twenties...").also { stage++ }
|
||||
5 -> npcl(FacialExpression.NEUTRAL, "Hmm, that doesn't narrow it down a huge amount... I'll need to know more than that, or see a picture?").also { stage++ }
|
||||
6 -> if (inInventory(player!!, Items.PICTURE_1510)) {
|
||||
sendItemDialogue(player!!, Items.PICTURE_1510, "You show Jethick the picture.").also { stage++ }
|
||||
} else {
|
||||
end()
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
7 -> npcl(FacialExpression.FRIENDLY, "She came over here to help to aid plague victims. I think she is staying over with the Rehnison family. They live in the small timbered building at the far north side of town.").also { stage++ }
|
||||
8 -> npcl(FacialExpression.FRIENDLY, "I've not seen her around here for a while, mind. I don't suppose you could run me a little errand while you're over there? I borrowed this book from them, could you return it?").also { stage++ }
|
||||
9 -> options("Yes, I'll return it for you.", "No, I don't have time for that.").also { stage++ }
|
||||
10 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.NEUTRAL, "Yes, I'll return it for you.").also { stage = 11 }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "No, I don't have time for that.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
11 -> if(freeSlots(player) == 0) {
|
||||
end()
|
||||
sendItemDialogue(player!!, Items.BOOK_1509, "Jethick shows you the book, but you don't have room to take it.")
|
||||
stage = END_DIALOGUE
|
||||
} else {
|
||||
end()
|
||||
sendItemDialogue(player!!, Items.BOOK_1509, "Jethick gives you a book.")
|
||||
addItem(player!!, Items.BOOK_1509)
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
}
|
||||
|
||||
in 10..11 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "I'm looking for a woman from East Ardougne called Elena.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY,"Ah yes. She came over here to help the plague victims. I think she is staying over with the Rehnison family.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.FRIENDLY, "They live in the small timbered building at the far north side of town. I've not seen her around here in a while, mind.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.JETHICK_725)
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.questStage
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class MarthaRehnisonDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") == 9) {
|
||||
playerl(FacialExpression.NEUTRAL, "Hi, I hear a woman called Elena is staying here.").also { stage++ }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Any luck finding Elena yet?").also { stage++ }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
9 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Yes she was staying here, but slightly over a week ago she was getting ready to go back.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "However she never managed to leave. My daughter Milli was playing near the west wall when she saw some shadowy figures jump out and grab her. Milli is upstairs if you wish to speak to her.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 10..98 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Not yet...").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "I wish you luck, she did a lot for us.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 99..100 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Yes, she is safe at home now.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "That's good to hear, she helped us a lot.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.MARTHA_REHNISON_722)
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.questStage
|
||||
import core.api.setQuestStage
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class MilliRehnisonDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") == 9) {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello. Your parents say you saw what happened to Elena...").also { stage++ }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Any luck finding Elena yet?").also { stage++ }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
9 -> when(stage) {
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "*sniff* Yes I was near the south east corner when I saw Elena walking by. I was about to run to greet her when some men jumped out. They shoved a sack over her head and dragged her into a building.").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Which building?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "It was the boarded up building with no windows in the south east corner of West Ardougne.").also { stage++ }
|
||||
4 -> {
|
||||
end()
|
||||
setQuestStage(player!!, "Plague City", 11)
|
||||
stage = END_DIALOGUE
|
||||
}
|
||||
}
|
||||
|
||||
in 10..98 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Not yet...").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "I wish you luck, she did a lot for us.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 99..100 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Yes, she is safe at home now.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "That's good to hear, she helped us a lot.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.MILLI_REHNISON_724)
|
||||
}
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialogueFile
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.global.action.DoorActionHandler
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.world.map.RegionManager.getObject
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class MournerDialogue : DialogueFile() {
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
npc = NPC(NPCs.MOURNER_3216)
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
in 0..6 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "What are you up to with old man Edmond?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Nothing, we've just been chatting.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "What about his daughter?").also { stage++ }
|
||||
4 -> playerl(FacialExpression.FRIENDLY, "you know about that then?").also { stage++ }
|
||||
5 -> npcl(FacialExpression.NEUTRAL, "We know about everything that goes on in Ardougne. We have to if we are to contain the plague.").also { stage++ }
|
||||
6 -> playerl(FacialExpression.FRIENDLY, "Have you see his daughter recently?").also { stage++ }
|
||||
7 -> npcl(FacialExpression.NEUTRAL, "I imagine she's caught the plague. Either way she won't be allowed out of West Ardougne, the risk is too great.").also { stage == END_DIALOGUE }
|
||||
}
|
||||
|
||||
7 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Been digging have we?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "What do you mean?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "Your hands are covered in mud.Player: Oh that...").also { stage++ }
|
||||
4 -> npcl(FacialExpression.NEUTRAL, "Funny, you don't look like the gardening type.").also { stage++ }
|
||||
5 -> playerl(FacialExpression.FRIENDLY, "Oh no, I love gardening! It's my favorite pastime.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
8 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Do you have a problem traveller?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "No, I just wondered why you're wearing that outfit... Is it fancy dress?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "No! It's for protection.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.NEUTRAL, "Protection from what?").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "The plague of course...").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 9..15 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.NEUTRAL, "Can I help you?").also { stage++ }
|
||||
2 -> playerl(FacialExpression.NEUTRAL, "What are you doing?").also { stage++ }
|
||||
3 -> npcl(FacialExpression.NEUTRAL, "I'm guarding the border to West Ardougne. No-one except we mourners can pass through.").also { stage++ }
|
||||
4 -> playerl(FacialExpression.NEUTRAL, "Why?").also { stage++ }
|
||||
5 -> npcl(FacialExpression.FRIENDLY, "The plague of course. We can't risk cross contamination.").also { stage++ }
|
||||
6 -> playerl(FacialExpression.FRIENDLY, "Ok then, see you around.").also { stage++ }
|
||||
7 -> npcl(FacialExpression.FRIENDLY, "Maybe...").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
16 -> when (stage) {
|
||||
0 -> if (inBorders(player!!, 2532, 3272, 2534, 3273)) {
|
||||
player!!.dialogueInterpreter.sendDialogue("The door won't open.", "You notice a black cross on the door.").also { stage = END_DIALOGUE }
|
||||
} else {
|
||||
playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage++ }
|
||||
}
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "I have a warrant from Bravek to enter here.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.NEUTRAL, "This is highly irregular. Please wait...").also { stage++ }
|
||||
3 -> {
|
||||
runTask(player!!, 0) {
|
||||
findLocalNPC(player!!, NPCs.MOURNER_717)!!.sendChat("Hay... I got someone here with a warrant from Bravek, what should we do?")
|
||||
findLocalNPC(player!!, NPCs.MOURNER_3216)!!.sendChat("Well you can't let them in...", 1)
|
||||
}.also {
|
||||
end()
|
||||
setQuestStage(player!!, "Plague City", 17)
|
||||
DoorActionHandler.handleAutowalkDoor(player, getObject(location(2540, 3273, 0))!!.asScenery())
|
||||
sendDialogue(player!!, "You wait until the mourner's back is turned and sneak into the building.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
in 17..100 -> when (stage) {
|
||||
0 -> playerl(FacialExpression.FRIENDLY, "Hello there.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "I'd stand away from there. That black cross means that house has been touched by the plague.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.addItem
|
||||
import core.api.addItemOrDrop
|
||||
import core.api.removeAttributes
|
||||
import core.api.rewardXP
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.node.entity.player.link.quest.Quest
|
||||
import core.game.node.entity.skill.Skills
|
||||
import core.plugin.Initializable
|
||||
import org.rs09.consts.Items
|
||||
|
||||
@Initializable
|
||||
class PlagueCity : Quest("Plague City", 98, 97, 1, 165, 0, 1, 29) {
|
||||
override fun newInstance(`object`: Any?): Quest { return this }
|
||||
companion object { const val PlagueCityQuest = "Plague City" }
|
||||
override fun drawJournal(player: Player?, stage: Int) {
|
||||
super.drawJournal(player, stage)
|
||||
var line = 11
|
||||
player ?: return
|
||||
|
||||
if (stage == 0) {
|
||||
line++
|
||||
line(player, "I can start this quest by speaking to !!Edmond?? who is in !!East??", line++, false)
|
||||
line(player, "!!Ardougne??",line++, false)
|
||||
line++
|
||||
line(player, "There aren't any requirements for this quest.", line++, false)
|
||||
}
|
||||
|
||||
if (stage >= 1) {
|
||||
line++
|
||||
line(player, "I've spoken to Edmond, he's asked me to", line++, stage >= 2)
|
||||
line(player, "help find his daughter Elena.", line++, stage >= 2)
|
||||
line++
|
||||
}
|
||||
|
||||
if (stage >= 2) {
|
||||
line++
|
||||
line(player, "Alrena has given me a Gasmask to protect me", line++, stage >= 3)
|
||||
line(player, "from the plague while in West Ardougne.", line++, stage >= 3)
|
||||
line++
|
||||
}
|
||||
|
||||
if (stage >= 3) {
|
||||
line++
|
||||
line(player, "She's making a spare which will be in the wardrobe.", line++, stage >= 4)
|
||||
line(player, "I've spoken to Edmond about getting into West Ardougne.", line++, stage >= 4)
|
||||
}
|
||||
|
||||
if (stage >= 4) {
|
||||
line++
|
||||
line(player, "I've softened the ground in Edmond's garden enough to dig.", line++, stage >= 5)
|
||||
}
|
||||
|
||||
if (stage >= 5) {
|
||||
line++
|
||||
line(player, "I've dug a tunnel into the sewers.", line++, stage >= 6)
|
||||
}
|
||||
|
||||
if (stage >= 6) {
|
||||
line++
|
||||
line(player, "I've managed to clear the way into West Ardougne.", line++, stage >= 7)
|
||||
}
|
||||
|
||||
if (stage >= 9) {
|
||||
line++
|
||||
line(player, "I've spoken to Jethick, he thinks Elena was staying with the", line++, stage >= 11)
|
||||
line(player, "Rehnison Family, in a timber house to the north of the city.", line++, stage >= 11)
|
||||
}
|
||||
|
||||
if (stage >= 11) {
|
||||
line++
|
||||
line(player, "I've spoken to Milli about Elena,", line++, stage >= 12)
|
||||
line(player, "she says Elena was taken into one of the Plague Houses.", line++, stage >= 12)
|
||||
}
|
||||
|
||||
if (stage >= 15) {
|
||||
line++
|
||||
line(player, "Bravek might give me clearance if I make his Hangover Cure.", line++, stage >= 16)
|
||||
}
|
||||
|
||||
if (stage >= 16) {
|
||||
line++
|
||||
line(player, "I've given Bravek the Hangover Cure and he has", line++, stage >= 17)
|
||||
line(player, "given me a warrant to enter the plague House.", line++, stage >= 17)
|
||||
}
|
||||
|
||||
if (stage >= 99) {
|
||||
line++
|
||||
line(player, "I've freed Elena from the Plague House.", line++, stage == 100)
|
||||
}
|
||||
|
||||
if (stage == 100) {
|
||||
line++
|
||||
line(player, "I've spoken to Edmond and he thanked me", line++, true)
|
||||
line(player, "for rescuing his daughter Elena.", line++, true)
|
||||
line++
|
||||
line(player, "<col=FF0000>QUEST COMPLETE!</col>", line, false)
|
||||
}
|
||||
}
|
||||
|
||||
override fun finish(player: Player?) {
|
||||
super.finish(player)
|
||||
player ?: return
|
||||
var ln = 10
|
||||
|
||||
player.packetDispatch.sendItemZoomOnInterface(Items.GAS_MASK_1506, 230, 277, 5)
|
||||
drawReward(player, "1 Quest Point", ln++)
|
||||
drawReward(player, "2,425 Mining XP", ln++)
|
||||
drawReward(player, "An Ardougne Teleport Scroll", ln)
|
||||
rewardXP(player, Skills.MINING, 2425.0)
|
||||
addItemOrDrop(player, Items.A_MAGIC_SCROLL_1505)
|
||||
removeAttributes(player, "/save:elena:dig", "/save:elena:bucket")
|
||||
}
|
||||
}
|
||||
+457
@@ -0,0 +1,457 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import content.region.kandarin.ardougne.plaguecity.dialogue.ManDialogue
|
||||
import content.region.kandarin.ardougne.plaguecity.dialogue.WomanDialogue
|
||||
import core.api.*
|
||||
import core.game.dialogue.DialogueFile
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.global.action.DoorActionHandler
|
||||
import core.game.interaction.IntType
|
||||
import core.game.interaction.InteractionListener
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.system.task.Pulse
|
||||
import core.game.world.map.Direction
|
||||
import core.game.world.map.Location
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.Items
|
||||
import org.rs09.consts.NPCs
|
||||
import org.rs09.consts.Scenery
|
||||
|
||||
class PlagueCityListeners : InteractionListener {
|
||||
companion object {
|
||||
|
||||
const val BUCKET_USES_ATTRIBUTE = "/save:elena:bucket"
|
||||
|
||||
const val BRAVEK = NPCs.BRAVEK_711
|
||||
const val HEAD_MOURNER = NPCs.HEAD_MOURNER_716
|
||||
const val BILLI = 723
|
||||
|
||||
val MANS = intArrayOf(NPCs.MAN_728,NPCs.MAN_729, NPCs.MAN_351)
|
||||
val WOMANS = intArrayOf(NPCs.WOMAN_352, NPCs.WOMAN_353, NPCs.WOMAN_354, NPCs.WOMAN_360, NPCs.WOMAN_362, NPCs.WOMAN_363)
|
||||
|
||||
const val MUD_PILE = Scenery.MUD_PILE_2533
|
||||
const val GRILL = Scenery.GRILL_11423
|
||||
const val MUD_PATCH = Scenery.MUD_PATCH_11418
|
||||
const val PIPE = Scenery.PIPE_2542
|
||||
const val WARDROBE = Scenery.WARDROBE_2525
|
||||
const val LEFT_DOOR = Scenery.ARDOUGNE_WALL_DOOR_9738
|
||||
const val RIGHT_DOOR = Scenery.ARDOUGNE_WALL_DOOR_9330
|
||||
const val PLAGUE_TED_DOORS = Scenery.DOOR_2537
|
||||
const val HEAD_DOORS = Scenery.DOOR_35991
|
||||
const val BARREL = Scenery.BARREL_2530
|
||||
const val SPOOKY_STAIRS_DOWN = Scenery.SPOOKY_STAIRS_2522
|
||||
const val SPOOKY_STAIRS_UP = Scenery.SPOOKY_STAIRS_2523
|
||||
const val PRISON_DOORS = Scenery.DOOR_2526
|
||||
const val BRAVEK_DOORS = Scenery.DOOR_2528
|
||||
const val MANHOLE_CLOSED = Scenery.MANHOLE_2543
|
||||
const val MANHOLE_OPEN = Scenery.MANHOLE_2544
|
||||
const val MANHOLE_COVER = Scenery.MANHOLE_COVER_2545
|
||||
|
||||
private const val SNAPE_GRASS = Items.SNAPE_GRASS_231
|
||||
private const val SPADE = Items.SPADE_952
|
||||
private const val ROPE = Items.ROPE_954
|
||||
private const val HANGOVER_CURE = Items.HANGOVER_CURE_1504
|
||||
private const val MAGIC_SCROLL = Items.A_MAGIC_SCROLL_1505
|
||||
private const val GAS_MASK = Items.GAS_MASK_1506
|
||||
private const val SMALL_KEY = Items.A_SMALL_KEY_1507
|
||||
private const val SCRUFFY_NOTE = Items.A_SCRUFFY_NOTE_1508
|
||||
private const val BOOK = Items.BOOK_1509
|
||||
private const val EMPTY_BUCKET = Items.BUCKET_1925
|
||||
private const val BUCKET_OF_MILK = Items.BUCKET_OF_MILK_1927
|
||||
private const val BUCKET_OF_WATER = Items.BUCKET_OF_WATER_1929
|
||||
private const val CHOCOLATE_DUST = Items.CHOCOLATE_DUST_1975
|
||||
private const val CHOCOLATE_MILK = Items.CHOCOLATEY_MILK_1977
|
||||
|
||||
private const val TRYING_TO_OPEN_GRILL = 3192
|
||||
private const val POUR_THE_WATER = 2283
|
||||
private const val CLIMB_LADDER = 828
|
||||
private const val GO_INTO_PIPE = 10580
|
||||
private const val TIE_THE_ROPE = 3191
|
||||
private const val DIG_WITH_SPADE = 830
|
||||
|
||||
}
|
||||
|
||||
override fun defineListeners() {
|
||||
|
||||
on(BILLI, IntType.NPC, "talk-to") { player, _ ->
|
||||
sendMessage(player, "Billy isn't interested in talking.")
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(HEAD_MOURNER, IntType.NPC, "talk-to") { player, _ ->
|
||||
openDialogue(player, HeadMournerDialogue())
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(MANS, IntType.NPC, "talk-to") { player, _ ->
|
||||
if(inBorders(player, 2496, 3280,2557, 3336)) {
|
||||
openDialogue(player, ManDialogue())
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(WOMANS, IntType.NPC, "talk-to") { player, _ ->
|
||||
if(inBorders(player, 2496, 3280,2557, 3336)) {
|
||||
openDialogue(player, WomanDialogue())
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(LEFT_DOOR, IntType.SCENERY, "open") { player, node ->
|
||||
if (player.questRepository.getQuest("Plague City").isCompleted(player)) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
|
||||
} else if(inBorders(player, 2556, 3298, 2557, 3301)){
|
||||
lock(player,2)
|
||||
sendMessage(player, "You pull on the large wooden doors...")
|
||||
runTask(player,2){
|
||||
sendMessage(player, "...But they will not open.")
|
||||
}
|
||||
} else {
|
||||
face(player, Location.create(2559, 3302, 0))
|
||||
sendNPCDialogue(player, NPCs.MOURNER_2349, "Oi! What are you doing? Get away from there!")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(RIGHT_DOOR, IntType.SCENERY, "open") { player, node ->
|
||||
if (player.questRepository.getQuest("Plague City").isCompleted(player)) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
|
||||
} else if(inBorders(player, 2556, 3298, 2557, 3301)){
|
||||
lock(player,2)
|
||||
sendMessage(player, "You pull on the large wooden doors...")
|
||||
runTask(player,2){
|
||||
sendMessage(player, "...But they will not open.")
|
||||
}
|
||||
} else {
|
||||
face(player, Location.create(2559, 3302, 0))
|
||||
sendNPCDialogue(player, NPCs.MOURNER_2349, "Oi! What are you doing? Get away from there!")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(MANHOLE_CLOSED, IntType.SCENERY, "open") { player, node ->
|
||||
replaceScenery(node.asScenery(), MANHOLE_OPEN, -1)
|
||||
addScenery(MANHOLE_COVER, Location(2529, 3302, 0),0,10)
|
||||
sendMessage(player, "You pull back the manhole cover.")
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(MANHOLE_COVER, IntType.SCENERY, "close") { player, node ->
|
||||
removeScenery(node.asScenery())
|
||||
getScenery(location(2529, 3303, 0))?.let { replaceScenery(it, MANHOLE_CLOSED, -1) }
|
||||
sendMessage(player, "You close the manhole cover.")
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(MANHOLE_OPEN, IntType.SCENERY, "climb-down") { player, _ ->
|
||||
teleport(player, Location(2514, 9739, 0))
|
||||
sendMessage(player, "You climb down through the manhole.")
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(BRAVEK_DOORS, IntType.SCENERY, "open") { player, node ->
|
||||
if (player.questRepository.getStage("Plague City") >= 13) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
|
||||
} else {
|
||||
sendNPCDialogue(player,BRAVEK,"Go away, I'm busy! I'm... Umm... In a meeting!")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(MUD_PILE, IntType.SCENERY, "climb") { player, _ ->
|
||||
animate(player, CLIMB_LADDER)
|
||||
runTask(player, 2){
|
||||
teleport(player, Location(2566, 3332))
|
||||
sendDialogue(player, "You climb up the mud pile.")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(MAGIC_SCROLL, IntType.ITEM, "read") { player, _ ->
|
||||
sendItemDialogue(player, MAGIC_SCROLL, "You memorise what is written on the scroll.")
|
||||
removeItem(player, MAGIC_SCROLL)
|
||||
sendDialogue(player, "You can now cast the Ardougne Teleport spell provided you have the required runes and magic level.")
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(SCRUFFY_NOTE, IntType.ITEM, "read") { player, _ ->
|
||||
sendMessage(player, "You guess it really says something slightly different.")
|
||||
openInterface(player, 222).also { scruffyNote(player) }
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(HEAD_DOORS, IntType.SCENERY, "open") { player, node ->
|
||||
if (player.questRepository.getStage("Plague City") == 11) {
|
||||
openDialogue(player, HeadMournerDialogue())
|
||||
} else if (player.questRepository.getStage("Plague City") == 16) {
|
||||
openDialogue(player, MournerDialogue())
|
||||
} else if (player.questRepository.getStage("Plague City") > 16) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
|
||||
} else {
|
||||
openDialogue(player, MournerDialogue())
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(WARDROBE, IntType.SCENERY, "search") { player, _ ->
|
||||
if (freeSlots(player) == 0 && !inEquipmentOrInventory(player, GAS_MASK)) {
|
||||
sendItemDialogue(player, GAS_MASK, "You find a protective mask but you don't have enough room to take it.")
|
||||
} else if (inEquipmentOrInventory(player, GAS_MASK)) {
|
||||
sendMessage(player, "You search the wardrobe but you find nothing.")
|
||||
} else if (player.questRepository.getStage("Plague City") >= 2) {
|
||||
sendItemDialogue(player, GAS_MASK, "You find a protective mask.")
|
||||
addItem(player, GAS_MASK)
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
onUseWith(IntType.SCENERY, BUCKET_OF_WATER, MUD_PATCH) { player, _, _ ->
|
||||
if (player.getAttribute(BUCKET_USES_ATTRIBUTE, 0) in 0..2 && removeItem(player, BUCKET_OF_WATER)) {
|
||||
animate(player, POUR_THE_WATER)
|
||||
player.dialogueInterpreter.sendDialogue(
|
||||
"You pour water onto the soil.",
|
||||
"The soil softens slightly."
|
||||
)
|
||||
player.incrementAttribute(BUCKET_USES_ATTRIBUTE, 1)
|
||||
addItem(player, EMPTY_BUCKET)
|
||||
return@onUseWith true
|
||||
} else if (player.getAttribute(BUCKET_USES_ATTRIBUTE, 0) == 3 && removeItem(player, BUCKET_OF_WATER)) {
|
||||
animate(player, POUR_THE_WATER)
|
||||
player.dialogueInterpreter.sendDialogue(
|
||||
"You pour water onto the soil.",
|
||||
"The soil is now soft enough to dig into."
|
||||
)
|
||||
player.setAttribute("/save:elena:dig", true)
|
||||
addItem(player, EMPTY_BUCKET)
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
onUseWith(IntType.SCENERY, SPADE, MUD_PATCH) { player, _, _ ->
|
||||
if (player.getAttribute("/save:elena:dig", false) == true) {
|
||||
player.pulseManager.run(object : Pulse() {
|
||||
var counter = 0
|
||||
override fun pulse(): Boolean {
|
||||
when (counter++) {
|
||||
0 -> sendItemDialogue(player, SPADE,"You dig deep into the soft soil... Suddenly it crumbles away!")
|
||||
1 -> animate(player, DIG_WITH_SPADE)
|
||||
3 -> {
|
||||
teleport(player, Location(2518, 9759))
|
||||
setQuestStage(player, "Plague City", 4)
|
||||
player.dialogueInterpreter.sendDialogue(
|
||||
"You fall through...",
|
||||
"...you land in the sewer.",
|
||||
"Edmond follows you down the hole."
|
||||
)
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
on(GRILL, IntType.SCENERY, "open") { player, _ ->
|
||||
if (player.questRepository.getStage("Plague City") == 4) {
|
||||
sendDialogue(player, "The grill is too secure. You can't pull it off alone.")
|
||||
animate(player, TRYING_TO_OPEN_GRILL)
|
||||
setQuestStage(player, "Plague City", 5)
|
||||
} else {
|
||||
sendDialogue(player, "There is a grill blocking your way")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(PIPE, IntType.SCENERY, "climb-up") { player, _ ->
|
||||
if (player.questRepository.getStage("Plague City") >= 7 && inEquipment(player, GAS_MASK)) {
|
||||
animate(player, GO_INTO_PIPE,true)
|
||||
forceMove(player, Location(2514, 9739, 0), Location(2514, 9734, 0), 0, 4,Direction.SOUTH)
|
||||
runTask(player, 3) {
|
||||
teleport(player, Location(2529, 3304, 0))
|
||||
sendDialogue(player, "You climb up through the sewer pipe.")
|
||||
}
|
||||
} else if (player.questRepository.getStage("Plague City") >= 7 && !inEquipment(player, GAS_MASK)) {
|
||||
sendNPCDialogue(player, NPCs.EDMOND_714, "I can't let you enter the city without your gasmask on.")
|
||||
} else {
|
||||
sendDialogue(player, "There is a grill blocking your way")
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
onUseWith(IntType.SCENERY, ROPE, PIPE) { player, _, _ ->
|
||||
sendPlayerDialogue(player, "Maybe I should try opening it first.")
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
onUseWith(IntType.SCENERY, ROPE, GRILL) { player, _, _ ->
|
||||
if(removeItem(player, ROPE)) {
|
||||
player.pulseManager.run(object : Pulse() {
|
||||
var counter = 0
|
||||
override fun pulse(): Boolean {
|
||||
when (counter++) {
|
||||
0 -> forceWalk(player, Location.create(2514, 9740, 0), "SMART")
|
||||
2 -> face(player, Location.create(2514, 9739, 0), -1)
|
||||
3 -> {
|
||||
animate(player, TIE_THE_ROPE)
|
||||
setVarbit(player, 1787, 5, true) // Tied rope to the grill.
|
||||
}
|
||||
4 -> {
|
||||
setQuestStage(player, "Plague City", 6)
|
||||
sendItemDialogue(player, ROPE, "You tie the end of the rope to the sewer pipe's grill.")
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
class TedRehnisonDoors : DialogueFile() {
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
npc = NPC(NPCs.TED_REHNISON_721)
|
||||
when (stage) {
|
||||
0 -> if(removeItem(player!!, BOOK)){
|
||||
playerl(FacialExpression.NEUTRAL, "I'm a friend of Jethick's, I have come to return a book he borrowed.").also { stage++ }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Go away. We don't want any.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Oh... why didn't you say, come in then.").also { stage++ }
|
||||
2 -> DoorActionHandler.handleAutowalkDoor(player, getScenery(2531, 3328, 0)).also { stage++ }
|
||||
3 -> sendItemDialogue(player!!, BOOK, "You hand the book to Ted as you enter.").also { stage++ }
|
||||
4 -> {
|
||||
end()
|
||||
npcl(FacialExpression.NEUTRAL, "Thanks, I've been missing that.")
|
||||
DoorActionHandler.handleAutowalkDoor(player, getScenery(2531, 3328, 0))
|
||||
setQuestStage(player!!, "Plague City", 9)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on(PLAGUE_TED_DOORS, IntType.SCENERY, "open") { player, node ->
|
||||
if (player.questRepository.getStage("Plague City") >= 9) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
|
||||
} else {
|
||||
openDialogue(player, TedRehnisonDoors())
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(BARREL, IntType.SCENERY, "search") { player, _ ->
|
||||
if (inInventory(player, SMALL_KEY)) {
|
||||
sendMessage(player, "You don't find anything interesting.")
|
||||
return@on true
|
||||
} else {
|
||||
sendItemDialogue(player, SMALL_KEY, "You find a small key in the barrel.")
|
||||
addItem(player, SMALL_KEY)
|
||||
}
|
||||
}
|
||||
|
||||
onUseWith(IntType.ITEM, CHOCOLATE_DUST, BUCKET_OF_MILK) { player, _, _ ->
|
||||
if (player.questRepository.hasStarted("Plague City") && removeItem(player, CHOCOLATE_DUST) && removeItem(player, BUCKET_OF_MILK)) {
|
||||
sendItemDialogue(player, CHOCOLATE_MILK, "You mix the chocolate into the bucket.")
|
||||
addItem(player, CHOCOLATE_MILK)
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
onUseWith(IntType.ITEM, SNAPE_GRASS, CHOCOLATE_MILK) { player, _, _ ->
|
||||
if (player.questRepository.hasStarted("Plague City") && removeItem(player, SNAPE_GRASS) && removeItem(player, CHOCOLATE_MILK)) {
|
||||
sendItemDialogue(player, HANGOVER_CURE, "You mix the snape grass into the bucket.")
|
||||
addItem(player, HANGOVER_CURE)
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
on(SPOOKY_STAIRS_DOWN, IntType.SCENERY, "walk-down") { player, _ ->
|
||||
sendMessage(player, "You walk down the stairs...")
|
||||
teleport(player, Location.create(2537, 9671))
|
||||
return@on true
|
||||
}
|
||||
|
||||
on(SPOOKY_STAIRS_UP, IntType.SCENERY, "walk-up") { player, _ ->
|
||||
teleport(player, Location.create(2536, 3271, 0))
|
||||
sendMessage(player, "You walk up the stairs...")
|
||||
return@on true
|
||||
}
|
||||
|
||||
class ElenaDoorDialogue : DialogueFile() {
|
||||
override fun handle(componentID: Int, buttonID: Int) {
|
||||
npc = NPC(NPCs.ELENA_3215)
|
||||
when (stage) {
|
||||
0 -> sendDialogue(player!!, "The door is locked.").also { stage++ }
|
||||
1 -> npcl(FacialExpression.CRYING, "Hey get me out of here please!").also { stage++ }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "I would do but I don't have a key.").also { stage++ }
|
||||
3 -> npcl(FacialExpression.SAD, "I think there may be one around somewhere. I'm sure I heard them stashing it somewhere.").also { stage++ }
|
||||
4 -> options("Have you caught the plague?", "Okay, I'll look for it.").also { stage++ }
|
||||
5 -> when (buttonID) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Have you caught the plague?").also { stage = 6 }
|
||||
2 -> playerl(FacialExpression.FRIENDLY, "Okay, I'll look for it.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
6 -> npcl(FacialExpression.HALF_WORRIED, "No, I have none of the symptoms.").also { stage++ }
|
||||
7 -> playerl(FacialExpression.THINKING, "Strange, I was told this house was plague infected.").also { stage++ }
|
||||
8 -> playerl(FacialExpression.THINKING, "I suppose that was a cover up by the kidnappers.").also { stage = 4 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onUseWith(IntType.SCENERY, SMALL_KEY, PRISON_DOORS) { player, _, _ ->
|
||||
if (player.questRepository.getStage("Plague City") >= 16) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, core.game.world.map.RegionManager.getObject(Location(2539, 9672, 0))!!.asScenery())
|
||||
sendDialogue(player, "You unlock the door.")
|
||||
} else {
|
||||
sendMessage(player, "Nothing interesting happens.")
|
||||
}
|
||||
return@onUseWith true
|
||||
}
|
||||
|
||||
on(PRISON_DOORS, IntType.SCENERY, "open") { player, node ->
|
||||
if (player.questRepository.getStage("Plague City") >= 99) {
|
||||
DoorActionHandler.handleAutowalkDoor(player, node.asScenery())
|
||||
} else {
|
||||
openDialogue(player, ElenaDoorDialogue())
|
||||
}
|
||||
return@on true
|
||||
}
|
||||
}
|
||||
|
||||
private fun scruffyNote(player: Player) {
|
||||
val scruffynotes =
|
||||
arrayOf(
|
||||
"Got a bncket of nnilk",
|
||||
"Tlen grind sorne lhoculate",
|
||||
"vnith a pestal and rnortar",
|
||||
"ald the grourd dlocolate to tho milt",
|
||||
"finales add 5cme snape gras5",
|
||||
)
|
||||
setInterfaceText(player, scruffynotes.joinToString("<br>"), 222, 5)
|
||||
}
|
||||
|
||||
override fun defineDestinationOverrides() {
|
||||
setDest(IntType.SCENERY, intArrayOf(GRILL), "open") { _, _ ->
|
||||
return@setDest Location.create(2514, 9739, 0)
|
||||
}
|
||||
|
||||
setDest(IntType.SCENERY, intArrayOf(PIPE), "climb-up") { _, _ ->
|
||||
return@setDest Location.create(2514, 9739, 0)
|
||||
}
|
||||
|
||||
setDest(IntType.SCENERY, intArrayOf(MANHOLE_OPEN), "climb-down") { _, _ ->
|
||||
return@setDest Location.create(2529, 3304, 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.questStage
|
||||
import core.game.dialogue.DialoguePlugin
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.npc.NPC
|
||||
import core.game.node.entity.player.Player
|
||||
import core.plugin.Initializable
|
||||
import core.tools.END_DIALOGUE
|
||||
import org.rs09.consts.NPCs
|
||||
|
||||
@Initializable
|
||||
class TedRehnisonDialogue(player: Player? = null) : DialoguePlugin(player) {
|
||||
|
||||
override fun open(vararg args: Any?): Boolean {
|
||||
npc = args[0] as NPC
|
||||
if (player.questRepository.getStage("Plague City") == 9) {
|
||||
playerl(FacialExpression.NEUTRAL, "Hi, I hear a woman called Elena is staying here.").also { stage++ }
|
||||
} else if (player.questRepository.getStage("Plague City") > 9) {
|
||||
npcl(FacialExpression.FRIENDLY, "Any luck finding Elena yet?").also { stage++ }
|
||||
} else {
|
||||
npcl(FacialExpression.FRIENDLY, "Go away. We don't want any.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun handle(componentID: Int, buttonID: Int): Boolean {
|
||||
when (questStage(player!!, PlagueCity.PlagueCityQuest)) {
|
||||
|
||||
9 -> when (stage) {
|
||||
1 -> npcl(FacialExpression.FRIENDLY, "Yes she was staying here, but slightly over a week ago she was getting ready to go back. However she never managed to leave. My daughter Milli was playing near the west wall when she saw some shadowy figures jump").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "out and grab her. Milli is upstairs if you wish to speak to her.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 10..98 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Not yet...").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "I wish you luck, she did a lot for us.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
|
||||
in 99..100 -> when (stage) {
|
||||
1 -> playerl(FacialExpression.FRIENDLY, "Yes, she is safe at home now.").also { stage++ }
|
||||
2 -> npcl(FacialExpression.FRIENDLY, "That's good to hear, she helped us a lot.").also { stage = END_DIALOGUE }
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getIds(): IntArray = intArrayOf(NPCs.TED_REHNISON_721)
|
||||
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
package content.region.kandarin.ardougne.plaguecity.quest.elena
|
||||
|
||||
import core.api.*
|
||||
import core.game.activity.Cutscene
|
||||
import core.game.dialogue.FacialExpression
|
||||
import core.game.node.entity.player.Player
|
||||
import core.game.world.map.Direction
|
||||
import core.game.world.map.Location
|
||||
|
||||
class UndergroundCutscene(player: Player) : Cutscene(player) {
|
||||
|
||||
override fun setup() {
|
||||
setExit(Location.create(2514, 9740,0))
|
||||
if (player.settings.isRunToggled) {
|
||||
player.settings.toggleRun()
|
||||
}
|
||||
loadRegion(10136)
|
||||
addNPC(EDMOND, 18, 13, Direction.SOUTH)
|
||||
}
|
||||
|
||||
|
||||
override fun runStage(stage: Int) {
|
||||
when (stage) {
|
||||
|
||||
0 -> {
|
||||
fadeToBlack()
|
||||
timedUpdate(5)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
teleport(player, 18, 13)
|
||||
timedUpdate(1)
|
||||
}
|
||||
|
||||
2 -> {
|
||||
move(player, 18, 12)
|
||||
fadeFromBlack()
|
||||
moveCamera(21, 16)
|
||||
rotateCamera(18, 13)
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
3 -> {
|
||||
visualize(getNPC(EDMOND)!!, ROPE_PULL, 2270)
|
||||
visualize(player, ROPE_PULL, 2270)
|
||||
sendChat(player, "1... 2... 3... Pull!")
|
||||
timedUpdate(6)
|
||||
}
|
||||
|
||||
4 -> {
|
||||
setVarbit(player, 1787, 6, true) // Grill removal.
|
||||
face(player, getNPC(EDMOND)!!.location)
|
||||
timedUpdate(2)
|
||||
}
|
||||
|
||||
5 -> {
|
||||
dialogueUpdate(EDMOND, FacialExpression.FRIENDLY, "Once you're in the city look for a man called Jethick, he's an old friend and should help you. Send")
|
||||
sendChat(getNPC(EDMOND)!!, "Once you're in the city")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
6 -> {
|
||||
sendChat(getNPC(EDMOND)!!, "look for a man called")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
7 -> {
|
||||
sendChat(getNPC(EDMOND)!!, "Jethick, he's an old friend")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
8 -> {
|
||||
sendChat(getNPC(EDMOND)!!, "and should help you. Send")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
9 -> {
|
||||
dialogueUpdate(EDMOND, FacialExpression.FRIENDLY, "him my regards, I Haven't seen him since before Elena was born.")
|
||||
sendChat(getNPC(EDMOND)!!, "him my regards, I haven't")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
10 -> {
|
||||
sendChat(getNPC(EDMOND)!!, "seen him since before")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
11 -> {
|
||||
sendChat(getNPC(EDMOND)!!, "Elena was born.")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
12 -> {
|
||||
sendChat(player, "Alright, thanks I will.")
|
||||
timedUpdate(3)
|
||||
}
|
||||
|
||||
13 -> {
|
||||
sendPlayerDialogue(player,"Alright, thanks I will.")
|
||||
timedUpdate(4)
|
||||
}
|
||||
|
||||
14 -> {
|
||||
end {
|
||||
setQuestStage(player, "Plague City", 7)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val EDMOND = 714
|
||||
private val ROPE_PULL = 3187
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user