From 384704bbdfc64ac3cafa6072b59dc22642167d4a Mon Sep 17 00:00:00 2001 From: skelsoft <9147770-skelsoft@users.noreply.gitlab.com> Date: Fri, 27 Aug 2021 21:37:07 +0000 Subject: [PATCH 01/12] Fix: Taverley Dungeon QA Pass 2 --- Server/data/configs/npc_configs.json | 6717 +------------------------- Server/data/configs/npc_spawns.json | 10 +- 2 files changed, 226 insertions(+), 6501 deletions(-) diff --git a/Server/data/configs/npc_configs.json b/Server/data/configs/npc_configs.json index dd4f6a9b7..db6b5a0ad 100644 --- a/Server/data/configs/npc_configs.json +++ b/Server/data/configs/npc_configs.json @@ -894,6 +894,7 @@ "range_animation": "6562", "combat_audio": "3717,3719,3718", "attack_speed": "4", + "respawn_delay": "50", "defence_animation": "6563", "weakness": "1", "slayer_exp": "116", @@ -905,7 +906,9 @@ "lifepoints": "116", "strength_level": "104", "id": "49", + "aggressive": "true", "clue_level": "2", + "bonuses": "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "range_level": "1", "attack_level": "105" }, @@ -956,15 +959,22 @@ "examine": "Young but still dangerous.", "slayer_task": "11", "combat_audio": "408,410,409", + "melee_animation": "25", + "attack_speed": "4", "magic_level": "1", + "respawn_delay": "30", + "defence_animation": "26", "weakness": "3", "slayer_exp": "50", + "magic_animation": "25", + "death_animation": "28", "name": "Baby blue dragon", "defence_level": "40", "safespot": null, "lifepoints": "50", "strength_level": "40", "id": "52", + "aggressive": "true", "bonuses": "0,0,0,0,0,30,50,50,40,30,0,0,0,0,0", "range_level": "1", "attack_level": "40" @@ -1470,9 +1480,10 @@ "range_animation": "4915", "attack_speed": "4", "magic_level": "1", + "respawn_delay": "35", "defence_animation": "4916", "weakness": "4", - "slayer_exp": "8", + "slayer_exp": "32", "magic_animation": "4915", "death_animation": "4917", "name": "Giant bat", @@ -1553,7 +1564,7 @@ "combat_audio": "400,404,403", "attack_speed": "4", "magic_level": "1", - "respawn_delay": "20", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "79", @@ -1562,7 +1573,7 @@ "name": "Lesser demon", "defence_level": "71", "safespot": null, - "lifepoints": "81", + "lifepoints": "79", "strength_level": "70", "id": "82", "aggressive": "true", @@ -1604,10 +1615,11 @@ "combat_audio": "400,404,403", "attack_speed": "4", "magic_level": "1", - "respawn_delay": "38", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "157", + "facing_booth": "", "magic_animation": "64", "death_animation": "67", "name": "Black demon", @@ -1993,39 +2005,41 @@ "attack_level": "1" }, { + "agg_radius": "", "examine": "Eeek a ghost!", "slayer_task": "36", "melee_animation": "5540", "range_animation": "5540", "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "20", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "40", "defence_animation": "5541", "weakness": "5", "slayer_exp": "25", "magic_animation": "5540", "death_animation": "5542", "name": "Ghost", - "defence_level": "6", + "defence_level": "18", "safespot": null, - "lifepoints": "13", - "strength_level": "7", + "lifepoints": "25", + "strength_level": "13", "id": "103", - "bonuses": "2,2,2,2,2,2,2,2,2,2,2,2,90,2,2", + "aggressive": "true", + "bonuses": "0,0,0,0,0,5,5,5,-5,5,0,0,0,0,0", "range_level": "1", - "attack_level": "6" + "attack_level": "13" }, { "examine": "Eeek! A ghost!", "slayer_task": "36", - "melee_animation": "5532", + "melee_animation": "5540", "range_animation": "0", "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "40", + "defence_animation": "5541", "weakness": "5", "slayer_exp": "25", "magic_animation": "0", @@ -2034,11 +2048,12 @@ "defence_level": "18", "safespot": null, "lifepoints": "25", - "strength_level": "1", + "strength_level": "13", "id": "104", "aggressive": "true", + "bonuses": "0,0,0,0,0,5,5,5,-5,5,0,0,0,0,0", "range_level": "1", - "attack_level": "1" + "attack_level": "13" }, { "examine": "Eek! A bear!", @@ -2108,7 +2123,7 @@ "combat_audio": "3611,3612,3610", "attack_speed": "4", "poisonous": "true", - "respawn_delay": "15", + "respawn_delay": "25", "defence_animation": "6255", "weakness": "0", "slayer_exp": "23", @@ -2358,22 +2373,24 @@ "slayer_task": "29", "melee_animation": "99", "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "150", "defence_animation": "0", "weakness": "6", - "slayer_exp": "16", + "slayer_exp": "61", "magic_animation": "0", "death_animation": "102", "name": "Chaos dwarf", - "defence_level": "34", + "defence_level": "28", "safespot": null, - "lifepoints": "48", - "strength_level": "34", + "lifepoints": "61", + "strength_level": "42", "id": "119", "aggressive": "true", + "bonuses": "13,13,13,0,0,40,34,25,10,35,0,9,0,0,0", "range_level": "1", - "attack_level": "34" + "attack_level": "38" }, { "examine": "A mountain dwelling short angry guy.", @@ -2513,7 +2530,7 @@ "melee_animation": "185", "range_animation": "0", "attack_speed": "4", - "respawn_delay": "18", + "respawn_delay": "30", "defence_animation": "0", "weakness": "6", "magic_animation": "0", @@ -2610,14 +2627,14 @@ "attack_level": "15" }, { - "examine": "I think this spider has been magically modified.", + "examine": "A nasty, poisonous arachnid.", "slayer_task": "76", "melee_animation": "5327", "range_animation": "0", "combat_audio": "537,539,538", - "attack_speed": "5", + "attack_speed": "4", "poisonous": "true", - "respawn_delay": "60", + "respawn_delay": "30", "defence_animation": "5328", "weakness": "2", "poison_amount": "6", @@ -2625,13 +2642,13 @@ "death_animation": "5329", "name": "Poison spider", "safespot": null, - "defence_level": "70", + "defence_level": "52", "lifepoints": "64", "strength_level": "65", "id": "134", "aggressive": "true", - "range_level": "45", - "attack_level": "60" + "range_level": "1", + "attack_level": "50" }, { "examine": "Aaw", @@ -3236,7 +3253,7 @@ "attack_speed": "4", "magic_level": "10", "end_gfx": "107", - "respawn_delay": "15", + "respawn_delay": "25", "defence_animation": "404", "weakness": "3", "slayer_exp": "0", @@ -3557,20 +3574,23 @@ "examine": "Guards prisoners for the black knights.", "melee_animation": "422", "range_animation": "0", - "respawn_delay": "60", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "50", "defence_animation": "0", "weakness": "8", "magic_animation": "0", "death_animation": "836", "name": "Jailer", - "defence_level": "28", + "defence_level": "40", "safespot": null, - "lifepoints": "40", - "strength_level": "28", + "lifepoints": "47", + "strength_level": "40", "id": "201", - "aggressive": "true", + "aggressive": "false", + "bonuses": "0,0,0,0,0,79,63,47,0,0,0,0,0,0,0", "range_level": "1", - "attack_level": "28" + "attack_level": "40" }, { "examine": "Has a fearsome scowl.", @@ -5409,6 +5429,7 @@ "examine": "Dead but not gone.", "melee_animation": "390", "range_animation": "0", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "magic_animation": "0", @@ -5426,6 +5447,7 @@ "examine": "Dead but not gone.", "melee_animation": "390", "range_animation": "0", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "magic_animation": "0", @@ -5443,6 +5465,7 @@ "examine": "Dead but not gone.", "melee_animation": "390", "range_animation": "0", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "magic_animation": "0", @@ -5461,7 +5484,7 @@ "slayer_task": "73", "melee_animation": "390", "range_animation": "0", - "respawn_delay": "60", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "4.2", @@ -5482,7 +5505,7 @@ "melee_animation": "390", "range_animation": "0", "magic_level": "1", - "respawn_delay": "60", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "4.2", @@ -5502,6 +5525,7 @@ "examine": "Dead but not gone.", "melee_animation": "390", "range_animation": "0", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "magic_animation": "0", @@ -5792,18 +5816,20 @@ "examine": "Aargh! It's alive!", "melee_animation": "390", "range_animation": "0", + "attack_speed": "5", "defence_animation": "0", "weakness": "6", "magic_animation": "0", "death_animation": "836", "name": "Suit of armour", - "defence_level": "5", + "defence_level": "9", "safespot": null, - "lifepoints": "7", - "strength_level": "5", + "lifepoints": "29", + "strength_level": "14", "id": "453", + "bonuses": "8,8,8,0,0,46,50,46,-12,45,0,10,0,0,0", "range_level": "1", - "attack_level": "5" + "attack_level": "16" }, { "examine": "He seems to be very devout.", @@ -7581,23 +7607,24 @@ "melee_animation": "64", "range_animation": "64", "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", - "weakness": "7", + "weakness": "4", "slayer_exp": "157", "magic_animation": "64", "death_animation": "67", "name": "Black demon", - "defence_level": "70", + "defence_level": "152", "safespot": null, - "lifepoints": "165", - "strength_level": "70", + "lifepoints": "157", + "strength_level": "148", "id": "677", "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", + "range_level": "1", + "attack_level": "145" }, { "examine": "Keeps order in the ranging guild.", @@ -10319,14 +10346,14 @@ "attack_level": "50" }, { - "examine": "I think this spider has been magically modified.", + "examine": "A nasty, poisonous arachnid.", "slayer_task": "76", "melee_animation": "5327", "range_animation": "0", "combat_audio": "537,539,538", - "attack_speed": "5", + "attack_speed": "4", "poisonous": "true", - "respawn_delay": "60", + "respawn_delay": "30", "defence_animation": "5328", "weakness": "2", "poison_amount": "6", @@ -10334,13 +10361,13 @@ "death_animation": "5329", "name": "Poison spider", "safespot": null, - "defence_level": "70", + "defence_level": "52", "lifepoints": "64", "strength_level": "65", "id": "1009", "aggressive": "true", - "range_level": "45", - "attack_level": "60" + "range_level": "1", + "attack_level": "50" }, { "examine": "A green skinned croaker", @@ -12555,7 +12582,7 @@ "range_animation": "422", "attack_speed": "4", "magic_level": "1", - "respawn_delay": "21", + "respawn_delay": "35", "defence_animation": "404", "weakness": "9", "slayer_exp": "50", @@ -12636,7 +12663,7 @@ "range_animation": "0", "attack_speed": "4", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12660,7 +12687,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12684,7 +12711,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12708,7 +12735,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12733,7 +12760,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12757,7 +12784,7 @@ "range_animation": "0", "attack_speed": "4", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12781,7 +12808,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12805,7 +12832,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -12829,7 +12856,7 @@ "range_animation": "0", "attack_speed": "6", "magic_level": "1", - "respawn_delay": "30", + "respawn_delay": "50", "defence_animation": "0", "weakness": "9", "slayer_exp": "0", @@ -23489,7 +23516,11 @@ "attack_level": "1" }, { - "slayer_exp": "16", + "slayer_task": "29", + "examine": "A dwarf gone bad.", + "respawn_delay": "150", + "slayer_exp": "61", + "weakness": "6", "name": "Chaos dwarf", "defence_level": "1", "safespot": null, @@ -25229,21 +25260,22 @@ "examine": "A dark-hearted knight.", "melee_animation": "422", "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", + "attack_speed": "5", + "magic_level": "1", + "respawn_delay": "25", "defence_animation": "0", "weakness": "7", "magic_animation": "0", "death_animation": "836", "name": "Black knight", - "defence_level": "24", + "defence_level": "25", "safespot": null, - "lifepoints": "34", + "lifepoints": "42", "strength_level": "24", "id": "2698", "aggressive": "true", "range_level": "1", - "attack_level": "24" + "attack_level": "25" }, { "examine": "He's guarding the prison.", @@ -32598,26 +32630,28 @@ }, { "examine": "Good doggy...", + "slayer_task": "43", "melee_animation": "6562", "range_animation": "0", "combat_audio": "3717,3719,3718", - "attack_speed": "5", - "respawn_delay": "60", + "attack_speed": "4", + "respawn_delay": "50", "defence_animation": "0", "weakness": "7", "slayer_exp": "116", "magic_animation": "0", "death_animation": "6576", "name": "Hellhound", - "defence_level": "60", + "defence_level": "102", "safespot": null, - "lifepoints": "134", - "strength_level": "60", + "lifepoints": "116", + "strength_level": "104", "id": "3586", "aggressive": "true", "clue_level": "2", + "bonuses": "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "range_level": "1", - "attack_level": "60" + "attack_level": "105" }, { "examine": "Big, ugly, and smelly.", @@ -39339,42 +39373,51 @@ }, { "examine": "Young but still dangerous.", - "slayer_task": "68", + "slayer_task": "11", "melee_animation": "25", "range_animation": "25", "combat_audio": "408,410,409", - "attack_speed": "5", - "magic_level": "40", - "respawn_delay": "32", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "26", "weakness": "3", - "slayer_exp": "0", + "slayer_exp": "50", "magic_animation": "25", "death_animation": "28", "name": "Baby blue dragon", - "defence_level": "42", + "defence_level": "40", "safespot": null, "lifepoints": "50", "strength_level": "40", "id": "4665", "aggressive": "true", - "bonuses": "50,40,64,60,30,45,40,40,20,40,40,20,0,0,0", + "bonuses": "0,0,0,0,0,30,50,50,40,30,0,0,0,0,0", "range_level": "1", "attack_level": "40" }, { "examine": "Young but still dangerous.", + "slayer_task": "11", "combat_audio": "408,410,409", - "magic_level": "45", - "slayer_exp": "108", + "melee_animation": "25", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", + "defence_animation": "26", + "slayer_exp": "50", + "weakness": "3", + "magic_animation": "25", + "death_animation": "28", "name": "Baby blue dragon", - "defence_level": "48", + "defence_level": "40", "safespot": null, - "lifepoints": "51", - "strength_level": "45", + "lifepoints": "50", + "strength_level": "40", "id": "4666", - "bonuses": "49,45,43,50,73,71,56,78,68,0,0,0,0,0,0", - "range_level": "45", + "aggressive": "true", + "bonuses": "0,0,0,0,0,30,50,50,40,30,0,0,0,0,0", + "range_level": "1", "attack_level": "45" }, { @@ -40045,24 +40088,24 @@ "melee_animation": "4630", "range_animation": "4630", "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "79", "magic_animation": "4630", "death_animation": "67", "name": "Lesser demon", - "defence_level": "50", + "defence_level": "71", "safespot": null, "lifepoints": "79", - "strength_level": "50", + "strength_level": "70", "id": "4694", "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", "range_level": "1", - "attack_level": "50" + "attack_level": "68" }, { "examine": "Lesser, but still pretty big.", @@ -40070,24 +40113,24 @@ "melee_animation": "4630", "range_animation": "4630", "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "79", "magic_animation": "4630", "death_animation": "67", "name": "Lesser demon", - "defence_level": "50", + "defence_level": "71", "safespot": null, "lifepoints": "79", - "strength_level": "50", + "strength_level": "70", "id": "4695", "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", "range_level": "1", - "attack_level": "50" + "attack_level": "68" }, { "examine": "Lesser, but still pretty big.", @@ -40095,24 +40138,24 @@ "melee_animation": "4630", "range_animation": "4630", "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "79", "magic_animation": "4630", "death_animation": "67", "name": "Lesser demon", - "defence_level": "50", + "defence_level": "71", "safespot": null, "lifepoints": "79", - "strength_level": "50", + "strength_level": "70", "id": "4696", "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", "range_level": "1", - "attack_level": "50" + "attack_level": "68" }, { "examine": "Lesser, but still pretty big.", @@ -40120,24 +40163,24 @@ "melee_animation": "4630", "range_animation": "4630", "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "79", "magic_animation": "4630", "death_animation": "67", "name": "Lesser demon", - "defence_level": "50", + "defence_level": "71", "safespot": null, "lifepoints": "79", - "strength_level": "50", + "strength_level": "70", "id": "4697", "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", "range_level": "1", - "attack_level": "50" + "attack_level": "68" }, { "examine": "Big, red, and incredibly evil.", @@ -40249,23 +40292,24 @@ "melee_animation": "64", "range_animation": "64", "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "157", "magic_animation": "64", "death_animation": "67", "name": "Black demon", - "defence_level": "70", + "defence_level": "152", "safespot": null, - "lifepoints": "165", - "strength_level": "70", + "lifepoints": "157", + "strength_level": "148", "id": "4702", "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", + "range_level": "1", + "attack_level": "145" }, { "examine": "A big, scary, jet-black demon.", @@ -40273,23 +40317,24 @@ "melee_animation": "64", "range_animation": "64", "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "157", "magic_animation": "64", "death_animation": "67", "name": "Black demon", - "defence_level": "70", + "defence_level": "152", "safespot": null, - "lifepoints": "165", - "strength_level": "70", + "lifepoints": "157", + "strength_level": "148", "id": "4703", "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", + "range_level": "1", + "attack_level": "145" }, { "examine": "A big, scary, jet-black demon.", @@ -40297,23 +40342,24 @@ "melee_animation": "64", "range_animation": "64", "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "157", "magic_animation": "64", "death_animation": "67", "name": "Black demon", - "defence_level": "70", + "defence_level": "152", "safespot": null, - "lifepoints": "165", - "strength_level": "70", + "lifepoints": "157", + "strength_level": "148", "id": "4704", "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", + "range_level": "1", + "attack_level": "145" }, { "examine": "A big, scary, jet-black demon.", @@ -40321,23 +40367,24 @@ "melee_animation": "64", "range_animation": "64", "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", "weakness": "4", "slayer_exp": "157", "magic_animation": "64", "death_animation": "67", "name": "Black demon", - "defence_level": "70", + "defence_level": "152", "safespot": null, - "lifepoints": "165", - "strength_level": "70", + "lifepoints": "157", + "strength_level": "148", "id": "4705", "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", + "range_level": "1", + "attack_level": "145" }, { "examine": "His beard seems to have a life of its own.", @@ -52387,24 +52434,24 @@ "melee_animation": "4630", "range_animation": "4630", "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "40", - "respawn_delay": "20", + "attack_speed": "4", + "magic_level": "1", + "respawn_delay": "30", "defence_animation": "65", - "weakness": "3", + "weakness": "4", "slayer_exp": "79", "magic_animation": "4630", "death_animation": "67", "name": "Lesser demon", - "defence_level": "50", + "defence_level": "71", "safespot": null, "lifepoints": "79", - "strength_level": "50", + "strength_level": "70", "id": "6101", "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", + "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", "range_level": "1", - "attack_level": "50" + "attack_level": "68" }, { "examine": "His face is expressionless.", @@ -53482,23 +53529,24 @@ "melee_animation": "6579", "range_animation": "6579", "combat_audio": "3717,3719,3718", - "respawn_delay": "25", + "attack_speed": "4", + "respawn_delay": "50", "defence_animation": "6578", "weakness": "7", "slayer_exp": "116", "magic_animation": "6579", "death_animation": "6576", "name": "Hellhound", - "defence_level": "66", + "defence_level": "102", "safespot": null, "lifepoints": "116", - "strength_level": "66", + "strength_level": "104", "id": "6210", "aggressive": "true", - "bonuses": "50,70,30,30,60,30,60,60,50,60,0,0,0,0,0", + "bonuses": "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", "clue_level": "2", "range_level": "1", - "attack_level": "66" + "attack_level": "105" }, { "examine": "Have you checked your pockets lately?", @@ -64138,17 +64186,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -64522,23 +64559,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -65954,26 +65974,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -66262,18 +66262,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -68288,18 +68276,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", @@ -75223,28 +75199,6 @@ "range_level": "1", "attack_level": "40" }, - { - "examine": "Hello, nice doggy...", - "slayer_task": "43", - "melee_animation": "6562", - "range_animation": "6562", - "combat_audio": "3717,3719,3718", - "attack_speed": "4", - "defence_animation": "6563", - "weakness": "1", - "slayer_exp": "116", - "magic_animation": "6562", - "death_animation": "6564", - "name": "Hellhound", - "defence_level": "102", - "safespot": null, - "lifepoints": "116", - "strength_level": "104", - "id": "49", - "clue_level": "2", - "range_level": "1", - "attack_level": "105" - }, { "agg_radius": "64", "examine": "The biggest, meanest dragon around.", @@ -75288,23 +75242,6 @@ "range_level": "80", "attack_level": "102" }, - { - "examine": "Young but still dangerous.", - "slayer_task": "11", - "combat_audio": "408,410,409", - "magic_level": "1", - "weakness": "3", - "slayer_exp": "50", - "name": "Baby blue dragon", - "defence_level": "40", - "safespot": null, - "lifepoints": "50", - "strength_level": "40", - "id": "52", - "bonuses": "0,0,0,0,0,30,50,50,40,30,0,0,0,0,0", - "range_level": "1", - "attack_level": "40" - }, { "examine": "A big powerful dragon.", "slayer_task": "68", @@ -75331,32 +75268,6 @@ "range_level": "1", "attack_level": "130" }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "54", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, { "examine": "A mother dragon.", "slayer_task": "11", @@ -75415,29 +75326,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Is it a spider or is it a shadow?", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "4", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "2", - "slayer_exp": "55", - "magic_animation": "0", - "death_animation": "5329", - "name": "Shadow spider", - "defence_level": "44", - "safespot": null, - "lifepoints": "55", - "strength_level": "42", - "id": "58", - "aggressive": "true", - "range_level": "1", - "attack_level": "44" - }, { "examine": "I think this spider has been genetically modified.", "slayer_task": "76", @@ -75799,28 +75687,6 @@ "range_level": "1", "attack_level": "8" }, - { - "examine": "An annoying flappy thing.", - "slayer_task": "5", - "melee_animation": "4915", - "range_animation": "4915", - "attack_speed": "4", - "magic_level": "1", - "defence_animation": "4916", - "weakness": "4", - "slayer_exp": "8", - "magic_animation": "4915", - "death_animation": "4917", - "name": "Giant bat", - "defence_level": "22", - "safespot": null, - "lifepoints": "32", - "strength_level": "22", - "id": "78", - "aggressive": "true", - "range_level": "1", - "attack_level": "22" - }, { "examine": "A shadowy, barely visible flying entity from some evil place.", "slayer_task": "5", @@ -75881,31 +75747,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "4", - "magic_level": "1", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "71", - "safespot": null, - "lifepoints": "81", - "strength_level": "70", - "id": "82", - "aggressive": "true", - "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", - "range_level": "1", - "attack_level": "68" - }, { "examine": "Big, red, and incredibly evil.", "slayer_task": "40", @@ -75932,31 +75773,6 @@ "range_level": "1", "attack_level": "76" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "attack_speed": "4", - "magic_level": "1", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "152", - "safespot": null, - "lifepoints": "157", - "strength_level": "148", - "id": "84", - "aggressive": "true", - "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", - "range_level": "1", - "attack_level": "145" - }, { "examine": "A creature made from clay.", "melee_animation": "422", @@ -76328,54 +76144,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Eeek a ghost!", - "slayer_task": "36", - "melee_animation": "5540", - "range_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "20", - "defence_animation": "5541", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "5540", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "6", - "safespot": null, - "lifepoints": "13", - "strength_level": "7", - "id": "103", - "bonuses": "2,2,2,2,2,2,2,2,2,2,2,2,90,2,2", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "104", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Eek! A bear!", "slayer_task": "6", @@ -76663,28 +76431,6 @@ "range_level": "1", "attack_level": "7" }, - { - "examine": "A dwarf gone bad.", - "slayer_task": "29", - "melee_animation": "99", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "slayer_exp": "16", - "magic_animation": "0", - "death_animation": "102", - "name": "Chaos dwarf", - "defence_level": "34", - "safespot": null, - "lifepoints": "48", - "strength_level": "34", - "id": "119", - "aggressive": "true", - "range_level": "1", - "attack_level": "34" - }, { "examine": "A mountain dwelling short angry guy.", "slayer_task": "29", @@ -76898,30 +76644,6 @@ "range_level": "1", "attack_level": "15" }, - { - "examine": "I think this spider has been magically modified.", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "5", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "5328", - "weakness": "2", - "poison_amount": "6", - "magic_animation": "0", - "death_animation": "5329", - "name": "Poison spider", - "safespot": null, - "defence_level": "70", - "lifepoints": "64", - "strength_level": "65", - "id": "134", - "aggressive": "true", - "range_level": "45", - "attack_level": "60" - }, { "examine": "Aaw", "melee_animation": "0", @@ -77175,27 +76897,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A fighter from the supernatural world. He's a shadow of his former self.", - "slayer_task": "74", - "melee_animation": "394", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "843", - "name": "Shadow warrior", - "defence_level": "47", - "safespot": null, - "lifepoints": "67", - "strength_level": "47", - "id": "158", - "aggressive": "true", - "range_level": "1", - "attack_level": "47" - }, { "examine": "Small", "melee_animation": "191", @@ -77816,25 +77517,6 @@ "range_level": "1", "attack_level": "29" }, - { - "examine": "Guards prisoners for the black knights.", - "melee_animation": "422", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "magic_animation": "0", - "death_animation": "836", - "name": "Jailer", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "201", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, { "examine": "Has a fearsome scowl.", "melee_animation": "390", @@ -79668,108 +79350,6 @@ "range_level": "45", "attack_level": "45" }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "7", - "safespot": null, - "lifepoints": "8", - "strength_level": "6", - "id": "425", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "30", - "safespot": null, - "lifepoints": "17", - "strength_level": "20", - "id": "426", - "range_level": "1", - "attack_level": "20" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "45", - "safespot": null, - "lifepoints": "28", - "strength_level": "43", - "id": "427", - "range_level": "1", - "attack_level": "43" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "80", - "safespot": null, - "lifepoints": "42", - "strength_level": "74", - "id": "428", - "range_level": "1", - "attack_level": "74" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "90", - "safespot": null, - "lifepoints": "71", - "strength_level": "90", - "id": "429", - "range_level": "1", - "attack_level": "90" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "105", - "safespot": null, - "lifepoints": "100", - "strength_level": "150", - "id": "430", - "range_level": "1", - "attack_level": "150" - }, { "examine": "I hope he's not dead!", "melee_animation": "0", @@ -80043,23 +79623,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Aargh! It's alive!", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "836", - "name": "Suit of armour", - "defence_level": "5", - "safespot": null, - "lifepoints": "7", - "strength_level": "5", - "id": "453", - "range_level": "1", - "attack_level": "5" - }, { "examine": "He seems to be very devout.", "melee_animation": "0", @@ -80410,24 +79973,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "20", - "strength_level": "1", - "id": "491", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "The essence of evil.", "melee_animation": "0", @@ -81830,30 +81375,6 @@ "range_level": "1", "attack_level": "20" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "7", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "677", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, { "examine": "Keeps order in the ranging guild.", "melee_animation": "0", @@ -84539,17 +84060,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "8", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1005", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A servant of Zamorak.", "combat_style": "2", @@ -84573,30 +84083,6 @@ "range_level": "50", "attack_level": "50" }, - { - "examine": "I think this spider has been magically modified.", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "5", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "5328", - "weakness": "2", - "poison_amount": "6", - "magic_animation": "0", - "death_animation": "5329", - "name": "Poison spider", - "safespot": null, - "defence_level": "70", - "lifepoints": "64", - "strength_level": "65", - "id": "1009", - "aggressive": "true", - "range_level": "45", - "attack_level": "60" - }, { "examine": "A green skinned croaker", "melee_animation": "0", @@ -86837,216 +86323,6 @@ "range_level": "1", "attack_level": "30" }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Loar Shadow", - "defence_level": "26", - "safespot": null, - "lifepoints": "38", - "strength_level": "30", - "id": "1240", - "aggressive": "true", - "range_level": "1", - "attack_level": "45" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "1284", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1308", - "name": "Loar Shade", - "defence_level": "26", - "safespot": null, - "lifepoints": "38", - "strength_level": "30", - "id": "1241", - "aggressive": "true", - "range_level": "1", - "attack_level": "45" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Phrin Shadow", - "defence_level": "42", - "safespot": null, - "lifepoints": "56", - "strength_level": "47", - "id": "1243", - "aggressive": "true", - "range_level": "1", - "attack_level": "64" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Phrin Shade", - "defence_level": "42", - "safespot": null, - "lifepoints": "56", - "strength_level": "47", - "id": "1244", - "aggressive": "true", - "range_level": "1", - "attack_level": "64" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Riyl Shadow", - "defence_level": "60", - "safespot": null, - "lifepoints": "76", - "strength_level": "55", - "id": "1245", - "aggressive": "true", - "range_level": "1", - "attack_level": "88" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Riyl Shade", - "defence_level": "60", - "safespot": null, - "lifepoints": "76", - "strength_level": "55", - "id": "1246", - "aggressive": "true", - "range_level": "1", - "attack_level": "88" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Asyn Shadow", - "defence_level": "70", - "safespot": null, - "lifepoints": "90", - "strength_level": "84", - "id": "1247", - "aggressive": "true", - "range_level": "1", - "attack_level": "102" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Asyn Shade", - "defence_level": "70", - "safespot": null, - "lifepoints": "90", - "strength_level": "84", - "id": "1248", - "aggressive": "true", - "range_level": "1", - "attack_level": "102" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Fiyr Shadow", - "defence_level": "85", - "safespot": null, - "lifepoints": "110", - "strength_level": "100", - "id": "1249", - "aggressive": "true", - "range_level": "1", - "attack_level": "120" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Fiyr Shade", - "defence_level": "85", - "safespot": null, - "lifepoints": "110", - "strength_level": "100", - "id": "1250", - "aggressive": "true", - "range_level": "1", - "attack_level": "120" - }, { "examine": "A local villager of Mort'ton.", "melee_animation": "422", @@ -89555,36 +88831,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1541", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "30", - "strength_level": "1", - "id": "1549", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A large boisterous bird", "slayer_task": "7", @@ -89805,26 +89051,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A creature summoned by Vanstrom to kill the remaining Myreque.", - "melee_animation": "6579", - "range_animation": "0", - "combat_audio": "774,775,777", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "magic_animation": "0", - "death_animation": "6558", - "name": "Skeleton Hellhound", - "defence_level": "32", - "safespot": null, - "lifepoints": "57", - "strength_level": "32", - "id": "1575", - "aggressive": "true", - "range_level": "1", - "attack_level": "32" - }, { "examine": "A very large elemental adversary.", "slayer_task": "33", @@ -91352,17 +90578,6 @@ "range_level": "1", "attack_level": "1" }, - { - "name": "Gardener Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1675", - "range_level": "1", - "attack_level": "1" - }, { "examine": "His beard seems to have a life of its own.", "melee_animation": "4666", @@ -91384,23 +90599,6 @@ "range_level": "1", "attack_level": "60" }, - { - "examine": "A ghost disciple.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost disciple", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1686", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A trader from across the eastern sea.", "start_gfx": "0", @@ -91511,23 +90709,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A spooky ghost villager.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost villager", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1697", - "range_level": "1", - "attack_level": "1" - }, { "examine": "This poor soul cannot understand why it has not passed to the next world.", "slayer_task": "36", @@ -91551,153 +90732,6 @@ "range_level": "1", "attack_level": "28" }, - { - "examine": "Beware the ghostly shopkeeper's wares!", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost shopkeeper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1699", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Doesn't look like the bar's open anymore.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost innkeeper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1700", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost farmer", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1701", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghost banker.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost banker", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1702", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghost sailor.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost sailor", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1703", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghostship captain.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost captain", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1704", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost captain", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1705", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "This ghost guards the gates of Port Phasmatys.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost guard", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1706", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost (?)", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1707", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost (?)", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1708", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A guard for the humans against monster group.", "melee_animation": "390", @@ -94065,25 +93099,6 @@ "range_level": "1", "attack_level": "60" }, - { - "examine": "Looks hungry!", - "slayer_task": "27", - "melee_animation": "6565", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "6564", - "name": "Shadow Hound", - "defence_level": "48", - "safespot": null, - "lifepoints": "68", - "strength_level": "48", - "id": "1976", - "range_level": "1", - "attack_level": "48" - }, { "melee_animation": "799", "respawn_delay": "60", @@ -97308,17 +96323,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -97693,23 +96697,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -99045,26 +98032,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -99353,18 +98320,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -99787,26 +98742,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A shadow.", - "melee_animation": "2738", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "2739", - "name": "Shadow", - "defence_level": "68", - "safespot": null, - "lifepoints": "100", - "strength_level": "68", - "id": "2782", - "aggressive": "true", - "range_level": "1", - "attack_level": "68" - }, { "examine": "From a darker dimension.", "slayer_task": "25", @@ -101069,18 +100004,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", @@ -106377,29 +105300,6 @@ "range_level": "72", "attack_level": "1" }, - { - "examine": "Good doggy...", - "melee_animation": "6562", - "range_animation": "0", - "combat_audio": "3717,3719,3718", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "slayer_exp": "116", - "magic_animation": "0", - "death_animation": "6576", - "name": "Hellhound", - "defence_level": "60", - "safespot": null, - "lifepoints": "134", - "strength_level": "60", - "id": "3586", - "aggressive": "true", - "clue_level": "2", - "range_level": "1", - "attack_level": "60" - }, { "examine": "Big, ugly, and smelly.", "melee_animation": "359", @@ -107174,28 +106074,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "An annoying flappy thing.", - "slayer_task": "5", - "melee_animation": "4915", - "range_animation": "4915", - "attack_speed": "6", - "magic_level": "32", - "defence_animation": "4916", - "weakness": "4", - "slayer_exp": "8", - "magic_animation": "4915", - "death_animation": "4917", - "name": "Giant bat", - "defence_level": "32", - "safespot": null, - "lifepoints": "32", - "strength_level": "12", - "id": "3711", - "aggressive": "true", - "range_level": "1", - "attack_level": "12" - }, { "melee_animation": "395", "combat_audio": "511,513,512", @@ -110646,47 +109524,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "4387", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "30", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "30", - "safespot": null, - "lifepoints": "42", - "strength_level": "1", - "id": "4388", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "I don't think insect repellent will work…", "slayer_task": "34", @@ -113119,46 +111956,6 @@ "projectile": "98", "attack_level": "1" }, - { - "examine": "Young but still dangerous.", - "slayer_task": "68", - "melee_animation": "25", - "range_animation": "25", - "combat_audio": "408,410,409", - "attack_speed": "5", - "magic_level": "40", - "respawn_delay": "32", - "defence_animation": "26", - "weakness": "3", - "slayer_exp": "0", - "magic_animation": "25", - "death_animation": "28", - "name": "Baby blue dragon", - "defence_level": "42", - "safespot": null, - "lifepoints": "50", - "strength_level": "40", - "id": "4665", - "aggressive": "true", - "bonuses": "50,40,64,60,30,45,40,40,20,40,40,20,0,0,0", - "range_level": "1", - "attack_level": "40" - }, - { - "examine": "Young but still dangerous.", - "combat_audio": "408,410,409", - "magic_level": "45", - "slayer_exp": "108", - "name": "Baby blue dragon", - "defence_level": "48", - "safespot": null, - "lifepoints": "51", - "strength_level": "45", - "id": "4666", - "bonuses": "49,45,43,50,73,71,56,78,68,0,0,0,0,0,0", - "range_level": "45", - "attack_level": "45" - }, { "name": "Baby red dragon", "defence_level": "1", @@ -113289,110 +112086,6 @@ "range_level": "1", "attack_level": "130" }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4673", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4674", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4675", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4676", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, { "examine": "Must be related to Elvarg.", "slayer_task": "41", @@ -113821,106 +112514,6 @@ "range_level": "1", "attack_level": "18" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4694", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4695", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4696", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4697", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, { "examine": "Big, red, and incredibly evil.", "slayer_task": "40", @@ -114025,102 +112618,6 @@ "range_level": "59", "attack_level": "59" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4702", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4703", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4704", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4705", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, { "examine": "His beard seems to have a life of its own.", "slayer_task": "62", @@ -119410,234 +117907,6 @@ "range_level": "1", "attack_level": "42" }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5342", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5343", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5344", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5345", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5346", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5347", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5348", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5349", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5350", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5351", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5352", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A minion of Rashiliyia.", "slayer_task": "75", @@ -119936,123 +118205,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5369", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5370", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5371", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Why does it attack with twigs? Swords and axes much better.", - "melee_animation": "5532", - "range_animation": "426", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "40", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5372", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, - { - "examine": "Are these twigs meant to hurt Thok?", - "melee_animation": "5532", - "range_animation": "426", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "40", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5373", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, - { - "examine": "It thinks it scary. Thok show it scary.", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "70", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5374", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, { "examine": "Examine not added", "melee_animation": "5568", @@ -121761,24 +119913,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A Shadow Realm guardian.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "5572", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Is it male or female?", "melee_animation": "0", @@ -126281,96 +124415,6 @@ "range_level": "1", "attack_level": "9" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6094", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6095", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6096", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6097", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6098", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "melee_animation": "5571", "combat_audio": "931,923,922", @@ -126405,31 +124449,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "40", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "3", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "6101", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, { "examine": "His face is expressionless.", "melee_animation": "422", @@ -127500,30 +125519,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "From the maws of hell.", - "slayer_task": "43", - "melee_animation": "6579", - "range_animation": "6579", - "combat_audio": "3717,3719,3718", - "respawn_delay": "25", - "defence_animation": "6578", - "weakness": "7", - "slayer_exp": "116", - "magic_animation": "6579", - "death_animation": "6576", - "name": "Hellhound", - "defence_level": "66", - "safespot": null, - "lifepoints": "116", - "strength_level": "66", - "id": "6210", - "aggressive": "true", - "bonuses": "50,70,30,30,60,30,60,60,50,60,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "66" - }, { "examine": "Have you checked your pockets lately?", "melee_animation": "169", @@ -131473,18 +129468,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "6504", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A very noble spider and attendant to the Queen.", "melee_animation": "0", @@ -138113,17 +136096,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -138497,23 +136469,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -139929,26 +137884,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -140237,18 +138172,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -140671,26 +138594,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A shadow.", - "melee_animation": "2738", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "2739", - "name": "Shadow", - "defence_level": "68", - "safespot": null, - "lifepoints": "100", - "strength_level": "68", - "id": "2782", - "aggressive": "true", - "range_level": "1", - "attack_level": "68" - }, { "examine": "From a darker dimension.", "slayer_task": "25", @@ -142263,18 +140166,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", @@ -149206,28 +147097,6 @@ "range_level": "1", "attack_level": "40" }, - { - "examine": "Hello, nice doggy...", - "slayer_task": "43", - "melee_animation": "6562", - "range_animation": "6562", - "combat_audio": "3717,3719,3718", - "attack_speed": "4", - "defence_animation": "6563", - "weakness": "1", - "slayer_exp": "116", - "magic_animation": "6562", - "death_animation": "6564", - "name": "Hellhound", - "defence_level": "102", - "safespot": null, - "lifepoints": "116", - "strength_level": "104", - "id": "49", - "clue_level": "2", - "range_level": "1", - "attack_level": "105" - }, { "agg_radius": "64", "examine": "The biggest, meanest dragon around.", @@ -149271,23 +147140,6 @@ "range_level": "80", "attack_level": "102" }, - { - "examine": "Young but still dangerous.", - "slayer_task": "11", - "combat_audio": "408,410,409", - "magic_level": "1", - "weakness": "3", - "slayer_exp": "50", - "name": "Baby blue dragon", - "defence_level": "40", - "safespot": null, - "lifepoints": "50", - "strength_level": "40", - "id": "52", - "bonuses": "0,0,0,0,0,30,50,50,40,30,0,0,0,0,0", - "range_level": "1", - "attack_level": "40" - }, { "examine": "A big powerful dragon.", "slayer_task": "68", @@ -149314,32 +147166,6 @@ "range_level": "1", "attack_level": "130" }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "54", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, { "examine": "A mother dragon.", "slayer_task": "11", @@ -149398,29 +147224,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Is it a spider or is it a shadow?", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "4", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "2", - "slayer_exp": "55", - "magic_animation": "0", - "death_animation": "5329", - "name": "Shadow spider", - "defence_level": "44", - "safespot": null, - "lifepoints": "55", - "strength_level": "42", - "id": "58", - "aggressive": "true", - "range_level": "1", - "attack_level": "44" - }, { "examine": "I think this spider has been genetically modified.", "slayer_task": "76", @@ -149782,28 +147585,6 @@ "range_level": "1", "attack_level": "8" }, - { - "examine": "An annoying flappy thing.", - "slayer_task": "5", - "melee_animation": "4915", - "range_animation": "4915", - "attack_speed": "4", - "magic_level": "1", - "defence_animation": "4916", - "weakness": "4", - "slayer_exp": "8", - "magic_animation": "4915", - "death_animation": "4917", - "name": "Giant bat", - "defence_level": "22", - "safespot": null, - "lifepoints": "32", - "strength_level": "22", - "id": "78", - "aggressive": "true", - "range_level": "1", - "attack_level": "22" - }, { "examine": "A shadowy, barely visible flying entity from some evil place.", "slayer_task": "5", @@ -149864,31 +147645,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "4", - "magic_level": "1", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "71", - "safespot": null, - "lifepoints": "81", - "strength_level": "70", - "id": "82", - "aggressive": "true", - "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", - "range_level": "1", - "attack_level": "68" - }, { "examine": "Big, red, and incredibly evil.", "slayer_task": "40", @@ -149915,31 +147671,6 @@ "range_level": "1", "attack_level": "76" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "attack_speed": "4", - "magic_level": "1", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "152", - "safespot": null, - "lifepoints": "157", - "strength_level": "148", - "id": "84", - "aggressive": "true", - "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", - "range_level": "1", - "attack_level": "145" - }, { "examine": "A creature made from clay.", "melee_animation": "422", @@ -150311,54 +148042,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Eeek a ghost!", - "slayer_task": "36", - "melee_animation": "5540", - "range_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "20", - "defence_animation": "5541", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "5540", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "6", - "safespot": null, - "lifepoints": "13", - "strength_level": "7", - "id": "103", - "bonuses": "2,2,2,2,2,2,2,2,2,2,2,2,90,2,2", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "104", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Eek! A bear!", "slayer_task": "6", @@ -150646,28 +148329,6 @@ "range_level": "1", "attack_level": "7" }, - { - "examine": "A dwarf gone bad.", - "slayer_task": "29", - "melee_animation": "99", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "slayer_exp": "16", - "magic_animation": "0", - "death_animation": "102", - "name": "Chaos dwarf", - "defence_level": "34", - "safespot": null, - "lifepoints": "48", - "strength_level": "34", - "id": "119", - "aggressive": "true", - "range_level": "1", - "attack_level": "34" - }, { "examine": "A mountain dwelling short angry guy.", "slayer_task": "29", @@ -150881,30 +148542,6 @@ "range_level": "1", "attack_level": "15" }, - { - "examine": "I think this spider has been magically modified.", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "5", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "5328", - "weakness": "2", - "poison_amount": "6", - "magic_animation": "0", - "death_animation": "5329", - "name": "Poison spider", - "safespot": null, - "defence_level": "70", - "lifepoints": "64", - "strength_level": "65", - "id": "134", - "aggressive": "true", - "range_level": "45", - "attack_level": "60" - }, { "examine": "Aaw", "melee_animation": "0", @@ -151158,27 +148795,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A fighter from the supernatural world. He's a shadow of his former self.", - "slayer_task": "74", - "melee_animation": "394", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "843", - "name": "Shadow warrior", - "defence_level": "47", - "safespot": null, - "lifepoints": "67", - "strength_level": "47", - "id": "158", - "aggressive": "true", - "range_level": "1", - "attack_level": "47" - }, { "examine": "Small", "melee_animation": "191", @@ -151799,25 +149415,6 @@ "range_level": "1", "attack_level": "29" }, - { - "examine": "Guards prisoners for the black knights.", - "melee_animation": "422", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "magic_animation": "0", - "death_animation": "836", - "name": "Jailer", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "201", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, { "examine": "Has a fearsome scowl.", "melee_animation": "390", @@ -153651,108 +151248,6 @@ "range_level": "45", "attack_level": "45" }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "7", - "safespot": null, - "lifepoints": "8", - "strength_level": "6", - "id": "425", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "30", - "safespot": null, - "lifepoints": "17", - "strength_level": "20", - "id": "426", - "range_level": "1", - "attack_level": "20" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "45", - "safespot": null, - "lifepoints": "28", - "strength_level": "43", - "id": "427", - "range_level": "1", - "attack_level": "43" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "80", - "safespot": null, - "lifepoints": "42", - "strength_level": "74", - "id": "428", - "range_level": "1", - "attack_level": "74" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "90", - "safespot": null, - "lifepoints": "71", - "strength_level": "90", - "id": "429", - "range_level": "1", - "attack_level": "90" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "105", - "safespot": null, - "lifepoints": "100", - "strength_level": "150", - "id": "430", - "range_level": "1", - "attack_level": "150" - }, { "examine": "I hope he's not dead!", "melee_animation": "0", @@ -154026,23 +151521,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Aargh! It's alive!", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "836", - "name": "Suit of armour", - "defence_level": "5", - "safespot": null, - "lifepoints": "7", - "strength_level": "5", - "id": "453", - "range_level": "1", - "attack_level": "5" - }, { "examine": "He seems to be very devout.", "melee_animation": "0", @@ -154393,24 +151871,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "20", - "strength_level": "1", - "id": "491", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "The essence of evil.", "melee_animation": "0", @@ -155813,30 +153273,6 @@ "range_level": "1", "attack_level": "20" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "7", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "677", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, { "examine": "Keeps order in the ranging guild.", "melee_animation": "0", @@ -158522,17 +155958,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "8", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1005", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A servant of Zamorak.", "combat_style": "2", @@ -158556,30 +155981,6 @@ "range_level": "50", "attack_level": "50" }, - { - "examine": "I think this spider has been magically modified.", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "5", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "5328", - "weakness": "2", - "poison_amount": "6", - "magic_animation": "0", - "death_animation": "5329", - "name": "Poison spider", - "safespot": null, - "defence_level": "70", - "lifepoints": "64", - "strength_level": "65", - "id": "1009", - "aggressive": "true", - "range_level": "45", - "attack_level": "60" - }, { "examine": "A green skinned croaker", "melee_animation": "0", @@ -160820,216 +158221,6 @@ "range_level": "1", "attack_level": "30" }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Loar Shadow", - "defence_level": "26", - "safespot": null, - "lifepoints": "38", - "strength_level": "30", - "id": "1240", - "aggressive": "true", - "range_level": "1", - "attack_level": "45" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "1284", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1308", - "name": "Loar Shade", - "defence_level": "26", - "safespot": null, - "lifepoints": "38", - "strength_level": "30", - "id": "1241", - "aggressive": "true", - "range_level": "1", - "attack_level": "45" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Phrin Shadow", - "defence_level": "42", - "safespot": null, - "lifepoints": "56", - "strength_level": "47", - "id": "1243", - "aggressive": "true", - "range_level": "1", - "attack_level": "64" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Phrin Shade", - "defence_level": "42", - "safespot": null, - "lifepoints": "56", - "strength_level": "47", - "id": "1244", - "aggressive": "true", - "range_level": "1", - "attack_level": "64" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Riyl Shadow", - "defence_level": "60", - "safespot": null, - "lifepoints": "76", - "strength_level": "55", - "id": "1245", - "aggressive": "true", - "range_level": "1", - "attack_level": "88" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Riyl Shade", - "defence_level": "60", - "safespot": null, - "lifepoints": "76", - "strength_level": "55", - "id": "1246", - "aggressive": "true", - "range_level": "1", - "attack_level": "88" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Asyn Shadow", - "defence_level": "70", - "safespot": null, - "lifepoints": "90", - "strength_level": "84", - "id": "1247", - "aggressive": "true", - "range_level": "1", - "attack_level": "102" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Asyn Shade", - "defence_level": "70", - "safespot": null, - "lifepoints": "90", - "strength_level": "84", - "id": "1248", - "aggressive": "true", - "range_level": "1", - "attack_level": "102" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Fiyr Shadow", - "defence_level": "85", - "safespot": null, - "lifepoints": "110", - "strength_level": "100", - "id": "1249", - "aggressive": "true", - "range_level": "1", - "attack_level": "120" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Fiyr Shade", - "defence_level": "85", - "safespot": null, - "lifepoints": "110", - "strength_level": "100", - "id": "1250", - "aggressive": "true", - "range_level": "1", - "attack_level": "120" - }, { "examine": "A local villager of Mort'ton.", "melee_animation": "422", @@ -163538,36 +160729,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1541", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "30", - "strength_level": "1", - "id": "1549", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A large boisterous bird", "slayer_task": "7", @@ -163788,26 +160949,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A creature summoned by Vanstrom to kill the remaining Myreque.", - "melee_animation": "6579", - "range_animation": "0", - "combat_audio": "774,775,777", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "magic_animation": "0", - "death_animation": "6558", - "name": "Skeleton Hellhound", - "defence_level": "32", - "safespot": null, - "lifepoints": "57", - "strength_level": "32", - "id": "1575", - "aggressive": "true", - "range_level": "1", - "attack_level": "32" - }, { "examine": "A very large elemental adversary.", "slayer_task": "33", @@ -165335,17 +162476,6 @@ "range_level": "1", "attack_level": "1" }, - { - "name": "Gardener Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1675", - "range_level": "1", - "attack_level": "1" - }, { "examine": "His beard seems to have a life of its own.", "melee_animation": "4666", @@ -165367,23 +162497,6 @@ "range_level": "1", "attack_level": "60" }, - { - "examine": "A ghost disciple.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost disciple", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1686", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A trader from across the eastern sea.", "start_gfx": "0", @@ -165494,23 +162607,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A spooky ghost villager.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost villager", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1697", - "range_level": "1", - "attack_level": "1" - }, { "examine": "This poor soul cannot understand why it has not passed to the next world.", "slayer_task": "36", @@ -165534,153 +162630,6 @@ "range_level": "1", "attack_level": "28" }, - { - "examine": "Beware the ghostly shopkeeper's wares!", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost shopkeeper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1699", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Doesn't look like the bar's open anymore.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost innkeeper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1700", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost farmer", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1701", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghost banker.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost banker", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1702", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghost sailor.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost sailor", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1703", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghostship captain.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost captain", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1704", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost captain", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1705", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "This ghost guards the gates of Port Phasmatys.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost guard", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1706", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost (?)", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1707", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost (?)", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1708", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A guard for the humans against monster group.", "melee_animation": "390", @@ -168048,25 +164997,6 @@ "range_level": "1", "attack_level": "60" }, - { - "examine": "Looks hungry!", - "slayer_task": "27", - "melee_animation": "6565", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "6564", - "name": "Shadow Hound", - "defence_level": "48", - "safespot": null, - "lifepoints": "68", - "strength_level": "48", - "id": "1976", - "range_level": "1", - "attack_level": "48" - }, { "melee_animation": "799", "respawn_delay": "60", @@ -171291,17 +168221,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -171676,23 +168595,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -173028,26 +169930,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -173336,18 +170218,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -173770,26 +170640,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A shadow.", - "melee_animation": "2738", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "2739", - "name": "Shadow", - "defence_level": "68", - "safespot": null, - "lifepoints": "100", - "strength_level": "68", - "id": "2782", - "aggressive": "true", - "range_level": "1", - "attack_level": "68" - }, { "examine": "From a darker dimension.", "slayer_task": "25", @@ -175052,18 +171902,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", @@ -180360,29 +177198,6 @@ "range_level": "72", "attack_level": "1" }, - { - "examine": "Good doggy...", - "melee_animation": "6562", - "range_animation": "0", - "combat_audio": "3717,3719,3718", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "slayer_exp": "116", - "magic_animation": "0", - "death_animation": "6576", - "name": "Hellhound", - "defence_level": "60", - "safespot": null, - "lifepoints": "134", - "strength_level": "60", - "id": "3586", - "aggressive": "true", - "clue_level": "2", - "range_level": "1", - "attack_level": "60" - }, { "examine": "Big, ugly, and smelly.", "melee_animation": "359", @@ -181157,28 +177972,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "An annoying flappy thing.", - "slayer_task": "5", - "melee_animation": "4915", - "range_animation": "4915", - "attack_speed": "6", - "magic_level": "32", - "defence_animation": "4916", - "weakness": "4", - "slayer_exp": "8", - "magic_animation": "4915", - "death_animation": "4917", - "name": "Giant bat", - "defence_level": "32", - "safespot": null, - "lifepoints": "32", - "strength_level": "12", - "id": "3711", - "aggressive": "true", - "range_level": "1", - "attack_level": "12" - }, { "melee_animation": "395", "combat_audio": "511,513,512", @@ -184623,47 +181416,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "4387", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "30", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "30", - "safespot": null, - "lifepoints": "42", - "strength_level": "1", - "id": "4388", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "I don't think insect repellent will work…", "slayer_task": "34", @@ -187096,46 +183848,6 @@ "projectile": "98", "attack_level": "1" }, - { - "examine": "Young but still dangerous.", - "slayer_task": "68", - "melee_animation": "25", - "range_animation": "25", - "combat_audio": "408,410,409", - "attack_speed": "5", - "magic_level": "40", - "respawn_delay": "32", - "defence_animation": "26", - "weakness": "3", - "slayer_exp": "0", - "magic_animation": "25", - "death_animation": "28", - "name": "Baby blue dragon", - "defence_level": "42", - "safespot": null, - "lifepoints": "50", - "strength_level": "40", - "id": "4665", - "aggressive": "true", - "bonuses": "50,40,64,60,30,45,40,40,20,40,40,20,0,0,0", - "range_level": "1", - "attack_level": "40" - }, - { - "examine": "Young but still dangerous.", - "combat_audio": "408,410,409", - "magic_level": "45", - "slayer_exp": "108", - "name": "Baby blue dragon", - "defence_level": "48", - "safespot": null, - "lifepoints": "51", - "strength_level": "45", - "id": "4666", - "bonuses": "49,45,43,50,73,71,56,78,68,0,0,0,0,0,0", - "range_level": "45", - "attack_level": "45" - }, { "name": "Baby red dragon", "defence_level": "1", @@ -187266,110 +183978,6 @@ "range_level": "1", "attack_level": "130" }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4673", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4674", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4675", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4676", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, { "examine": "Must be related to Elvarg.", "slayer_task": "41", @@ -187798,106 +184406,6 @@ "range_level": "1", "attack_level": "18" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4694", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4695", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4696", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4697", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, { "examine": "Big, red, and incredibly evil.", "slayer_task": "40", @@ -188002,102 +184510,6 @@ "range_level": "59", "attack_level": "59" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4702", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4703", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4704", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4705", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, { "examine": "His beard seems to have a life of its own.", "slayer_task": "62", @@ -193387,234 +189799,6 @@ "range_level": "1", "attack_level": "42" }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5342", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5343", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5344", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5345", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5346", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5347", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5348", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5349", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5350", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5351", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5352", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A minion of Rashiliyia.", "slayer_task": "75", @@ -193913,123 +190097,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5369", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5370", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5371", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Why does it attack with twigs? Swords and axes much better.", - "melee_animation": "5532", - "range_animation": "426", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "40", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5372", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, - { - "examine": "Are these twigs meant to hurt Thok?", - "melee_animation": "5532", - "range_animation": "426", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "40", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5373", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, - { - "examine": "It thinks it scary. Thok show it scary.", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "70", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5374", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, { "examine": "Examine not added", "melee_animation": "5568", @@ -195496,24 +191563,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A Shadow Realm guardian.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "5572", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Is it male or female?", "melee_animation": "0", @@ -200016,96 +196065,6 @@ "range_level": "1", "attack_level": "9" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6094", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6095", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6096", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6097", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6098", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "melee_animation": "5571", "combat_audio": "931,923,922", @@ -200140,31 +196099,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "40", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "3", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "6101", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, { "examine": "His face is expressionless.", "melee_animation": "422", @@ -201235,30 +197169,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "From the maws of hell.", - "slayer_task": "43", - "melee_animation": "6579", - "range_animation": "6579", - "combat_audio": "3717,3719,3718", - "respawn_delay": "25", - "defence_animation": "6578", - "weakness": "7", - "slayer_exp": "116", - "magic_animation": "6579", - "death_animation": "6576", - "name": "Hellhound", - "defence_level": "66", - "safespot": null, - "lifepoints": "116", - "strength_level": "66", - "id": "6210", - "aggressive": "true", - "bonuses": "50,70,30,30,60,30,60,60,50,60,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "66" - }, { "examine": "Have you checked your pockets lately?", "melee_animation": "169", @@ -205208,18 +201118,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "6504", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A very noble spider and attendant to the Queen.", "melee_animation": "0", @@ -211848,17 +207746,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -212232,23 +208119,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -213664,26 +209534,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -213972,18 +209822,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -214406,26 +210244,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A shadow.", - "melee_animation": "2738", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "2739", - "name": "Shadow", - "defence_level": "68", - "safespot": null, - "lifepoints": "100", - "strength_level": "68", - "id": "2782", - "aggressive": "true", - "range_level": "1", - "attack_level": "68" - }, { "examine": "From a darker dimension.", "slayer_task": "25", @@ -215998,18 +211816,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", @@ -222933,28 +218739,6 @@ "range_level": "1", "attack_level": "40" }, - { - "examine": "Hello, nice doggy...", - "slayer_task": "43", - "melee_animation": "6562", - "range_animation": "6562", - "combat_audio": "3717,3719,3718", - "attack_speed": "4", - "defence_animation": "6563", - "weakness": "1", - "slayer_exp": "116", - "magic_animation": "6562", - "death_animation": "6564", - "name": "Hellhound", - "defence_level": "102", - "safespot": null, - "lifepoints": "116", - "strength_level": "104", - "id": "49", - "clue_level": "2", - "range_level": "1", - "attack_level": "105" - }, { "agg_radius": "64", "examine": "The biggest, meanest dragon around.", @@ -222998,23 +218782,6 @@ "range_level": "80", "attack_level": "102" }, - { - "examine": "Young but still dangerous.", - "slayer_task": "11", - "combat_audio": "408,410,409", - "magic_level": "1", - "weakness": "3", - "slayer_exp": "50", - "name": "Baby blue dragon", - "defence_level": "40", - "safespot": null, - "lifepoints": "50", - "strength_level": "40", - "id": "52", - "bonuses": "0,0,0,0,0,30,50,50,40,30,0,0,0,0,0", - "range_level": "1", - "attack_level": "40" - }, { "examine": "A big powerful dragon.", "slayer_task": "68", @@ -223041,32 +218808,6 @@ "range_level": "1", "attack_level": "130" }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "54", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, { "examine": "A mother dragon.", "slayer_task": "11", @@ -223125,29 +218866,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Is it a spider or is it a shadow?", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "4", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "2", - "slayer_exp": "55", - "magic_animation": "0", - "death_animation": "5329", - "name": "Shadow spider", - "defence_level": "44", - "safespot": null, - "lifepoints": "55", - "strength_level": "42", - "id": "58", - "aggressive": "true", - "range_level": "1", - "attack_level": "44" - }, { "examine": "I think this spider has been genetically modified.", "slayer_task": "76", @@ -223509,28 +219227,6 @@ "range_level": "1", "attack_level": "8" }, - { - "examine": "An annoying flappy thing.", - "slayer_task": "5", - "melee_animation": "4915", - "range_animation": "4915", - "attack_speed": "4", - "magic_level": "1", - "defence_animation": "4916", - "weakness": "4", - "slayer_exp": "8", - "magic_animation": "4915", - "death_animation": "4917", - "name": "Giant bat", - "defence_level": "22", - "safespot": null, - "lifepoints": "32", - "strength_level": "22", - "id": "78", - "aggressive": "true", - "range_level": "1", - "attack_level": "22" - }, { "examine": "A shadowy, barely visible flying entity from some evil place.", "slayer_task": "5", @@ -223591,31 +219287,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "4", - "magic_level": "1", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "71", - "safespot": null, - "lifepoints": "81", - "strength_level": "70", - "id": "82", - "aggressive": "true", - "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", - "range_level": "1", - "attack_level": "68" - }, { "examine": "Big, red, and incredibly evil.", "slayer_task": "40", @@ -223642,31 +219313,6 @@ "range_level": "1", "attack_level": "76" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "attack_speed": "4", - "magic_level": "1", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "152", - "safespot": null, - "lifepoints": "157", - "strength_level": "148", - "id": "84", - "aggressive": "true", - "bonuses": "0,0,0,0,0,0,0,0,-10,0,0,0,0,0,0", - "range_level": "1", - "attack_level": "145" - }, { "examine": "A creature made from clay.", "melee_animation": "422", @@ -224038,54 +219684,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Eeek a ghost!", - "slayer_task": "36", - "melee_animation": "5540", - "range_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "20", - "defence_animation": "5541", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "5540", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "6", - "safespot": null, - "lifepoints": "13", - "strength_level": "7", - "id": "103", - "bonuses": "2,2,2,2,2,2,2,2,2,2,2,2,90,2,2", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "104", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Eek! A bear!", "slayer_task": "6", @@ -224373,28 +219971,6 @@ "range_level": "1", "attack_level": "7" }, - { - "examine": "A dwarf gone bad.", - "slayer_task": "29", - "melee_animation": "99", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "slayer_exp": "16", - "magic_animation": "0", - "death_animation": "102", - "name": "Chaos dwarf", - "defence_level": "34", - "safespot": null, - "lifepoints": "48", - "strength_level": "34", - "id": "119", - "aggressive": "true", - "range_level": "1", - "attack_level": "34" - }, { "examine": "A mountain dwelling short angry guy.", "slayer_task": "29", @@ -224608,30 +220184,6 @@ "range_level": "1", "attack_level": "15" }, - { - "examine": "I think this spider has been magically modified.", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "5", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "5328", - "weakness": "2", - "poison_amount": "6", - "magic_animation": "0", - "death_animation": "5329", - "name": "Poison spider", - "safespot": null, - "defence_level": "70", - "lifepoints": "64", - "strength_level": "65", - "id": "134", - "aggressive": "true", - "range_level": "45", - "attack_level": "60" - }, { "examine": "Aaw", "melee_animation": "0", @@ -224885,27 +220437,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A fighter from the supernatural world. He's a shadow of his former self.", - "slayer_task": "74", - "melee_animation": "394", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "843", - "name": "Shadow warrior", - "defence_level": "47", - "safespot": null, - "lifepoints": "67", - "strength_level": "47", - "id": "158", - "aggressive": "true", - "range_level": "1", - "attack_level": "47" - }, { "examine": "Small", "melee_animation": "191", @@ -225526,25 +221057,6 @@ "range_level": "1", "attack_level": "29" }, - { - "examine": "Guards prisoners for the black knights.", - "melee_animation": "422", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "magic_animation": "0", - "death_animation": "836", - "name": "Jailer", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "201", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, { "examine": "Has a fearsome scowl.", "melee_animation": "390", @@ -227378,108 +222890,6 @@ "range_level": "45", "attack_level": "45" }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "7", - "safespot": null, - "lifepoints": "8", - "strength_level": "6", - "id": "425", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "30", - "safespot": null, - "lifepoints": "17", - "strength_level": "20", - "id": "426", - "range_level": "1", - "attack_level": "20" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "45", - "safespot": null, - "lifepoints": "28", - "strength_level": "43", - "id": "427", - "range_level": "1", - "attack_level": "43" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "80", - "safespot": null, - "lifepoints": "42", - "strength_level": "74", - "id": "428", - "range_level": "1", - "attack_level": "74" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "90", - "safespot": null, - "lifepoints": "71", - "strength_level": "90", - "id": "429", - "range_level": "1", - "attack_level": "90" - }, - { - "examine": "Dead but not gone.", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "836", - "name": "Shade", - "defence_level": "105", - "safespot": null, - "lifepoints": "100", - "strength_level": "150", - "id": "430", - "range_level": "1", - "attack_level": "150" - }, { "examine": "I hope he's not dead!", "melee_animation": "0", @@ -227753,23 +223163,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Aargh! It's alive!", - "melee_animation": "390", - "range_animation": "0", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "836", - "name": "Suit of armour", - "defence_level": "5", - "safespot": null, - "lifepoints": "7", - "strength_level": "5", - "id": "453", - "range_level": "1", - "attack_level": "5" - }, { "examine": "He seems to be very devout.", "melee_animation": "0", @@ -228120,24 +223513,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "20", - "strength_level": "1", - "id": "491", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "The essence of evil.", "melee_animation": "0", @@ -229540,30 +224915,6 @@ "range_level": "1", "attack_level": "20" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "7", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "677", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, { "examine": "Keeps order in the ranging guild.", "melee_animation": "0", @@ -232249,17 +227600,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "8", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1005", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A servant of Zamorak.", "combat_style": "2", @@ -232283,30 +227623,6 @@ "range_level": "50", "attack_level": "50" }, - { - "examine": "I think this spider has been magically modified.", - "slayer_task": "76", - "melee_animation": "5327", - "range_animation": "0", - "combat_audio": "537,539,538", - "attack_speed": "5", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "5328", - "weakness": "2", - "poison_amount": "6", - "magic_animation": "0", - "death_animation": "5329", - "name": "Poison spider", - "safespot": null, - "defence_level": "70", - "lifepoints": "64", - "strength_level": "65", - "id": "1009", - "aggressive": "true", - "range_level": "45", - "attack_level": "60" - }, { "examine": "A green skinned croaker", "melee_animation": "0", @@ -234547,216 +229863,6 @@ "range_level": "1", "attack_level": "30" }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Loar Shadow", - "defence_level": "26", - "safespot": null, - "lifepoints": "38", - "strength_level": "30", - "id": "1240", - "aggressive": "true", - "range_level": "1", - "attack_level": "45" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "1284", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1308", - "name": "Loar Shade", - "defence_level": "26", - "safespot": null, - "lifepoints": "38", - "strength_level": "30", - "id": "1241", - "aggressive": "true", - "range_level": "1", - "attack_level": "45" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Phrin Shadow", - "defence_level": "42", - "safespot": null, - "lifepoints": "56", - "strength_level": "47", - "id": "1243", - "aggressive": "true", - "range_level": "1", - "attack_level": "64" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Phrin Shade", - "defence_level": "42", - "safespot": null, - "lifepoints": "56", - "strength_level": "47", - "id": "1244", - "aggressive": "true", - "range_level": "1", - "attack_level": "64" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Riyl Shadow", - "defence_level": "60", - "safespot": null, - "lifepoints": "76", - "strength_level": "55", - "id": "1245", - "aggressive": "true", - "range_level": "1", - "attack_level": "88" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Riyl Shade", - "defence_level": "60", - "safespot": null, - "lifepoints": "76", - "strength_level": "55", - "id": "1246", - "aggressive": "true", - "range_level": "1", - "attack_level": "88" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Asyn Shadow", - "defence_level": "70", - "safespot": null, - "lifepoints": "90", - "strength_level": "84", - "id": "1247", - "aggressive": "true", - "range_level": "1", - "attack_level": "102" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Asyn Shade", - "defence_level": "70", - "safespot": null, - "lifepoints": "90", - "strength_level": "84", - "id": "1248", - "aggressive": "true", - "range_level": "1", - "attack_level": "102" - }, - { - "examine": "A shadowy sort of entity", - "slayer_task": "73", - "melee_animation": "0", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "0", - "name": "Fiyr Shadow", - "defence_level": "85", - "safespot": null, - "lifepoints": "110", - "strength_level": "100", - "id": "1249", - "aggressive": "true", - "range_level": "1", - "attack_level": "120" - }, - { - "examine": "The shadowy remains of a long departed soul.", - "slayer_task": "73", - "melee_animation": "1283", - "range_animation": "0", - "magic_level": "1", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "3", - "magic_animation": "0", - "death_animation": "1287", - "name": "Fiyr Shade", - "defence_level": "85", - "safespot": null, - "lifepoints": "110", - "strength_level": "100", - "id": "1250", - "aggressive": "true", - "range_level": "1", - "attack_level": "120" - }, { "examine": "A local villager of Mort'ton.", "melee_animation": "422", @@ -237265,36 +232371,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1541", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "30", - "strength_level": "1", - "id": "1549", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A large boisterous bird", "slayer_task": "7", @@ -237515,26 +232591,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A creature summoned by Vanstrom to kill the remaining Myreque.", - "melee_animation": "6579", - "range_animation": "0", - "combat_audio": "774,775,777", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "magic_animation": "0", - "death_animation": "6558", - "name": "Skeleton Hellhound", - "defence_level": "32", - "safespot": null, - "lifepoints": "57", - "strength_level": "32", - "id": "1575", - "aggressive": "true", - "range_level": "1", - "attack_level": "32" - }, { "examine": "A very large elemental adversary.", "slayer_task": "33", @@ -239062,17 +234118,6 @@ "range_level": "1", "attack_level": "1" }, - { - "name": "Gardener Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1675", - "range_level": "1", - "attack_level": "1" - }, { "examine": "His beard seems to have a life of its own.", "melee_animation": "4666", @@ -239094,23 +234139,6 @@ "range_level": "1", "attack_level": "60" }, - { - "examine": "A ghost disciple.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost disciple", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1686", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A trader from across the eastern sea.", "start_gfx": "0", @@ -239221,23 +234249,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A spooky ghost villager.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost villager", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1697", - "range_level": "1", - "attack_level": "1" - }, { "examine": "This poor soul cannot understand why it has not passed to the next world.", "slayer_task": "36", @@ -239261,153 +234272,6 @@ "range_level": "1", "attack_level": "28" }, - { - "examine": "Beware the ghostly shopkeeper's wares!", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost shopkeeper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1699", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Doesn't look like the bar's open anymore.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost innkeeper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1700", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost farmer", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1701", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghost banker.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost banker", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1702", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghost sailor.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost sailor", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1703", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "A ghostship captain.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost captain", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1704", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost captain", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1705", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "This ghost guards the gates of Port Phasmatys.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost guard", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "1706", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost (?)", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1707", - "range_level": "1", - "attack_level": "1" - }, - { - "name": "Ghost (?)", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "1708", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A guard for the humans against monster group.", "melee_animation": "390", @@ -241775,25 +236639,6 @@ "range_level": "1", "attack_level": "60" }, - { - "examine": "Looks hungry!", - "slayer_task": "27", - "melee_animation": "6565", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "6564", - "name": "Shadow Hound", - "defence_level": "48", - "safespot": null, - "lifepoints": "68", - "strength_level": "48", - "id": "1976", - "range_level": "1", - "attack_level": "48" - }, { "melee_animation": "799", "respawn_delay": "60", @@ -245018,17 +239863,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -245403,23 +240237,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -246755,26 +241572,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -247063,18 +241860,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -247497,26 +242282,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A shadow.", - "melee_animation": "2738", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "2739", - "name": "Shadow", - "defence_level": "68", - "safespot": null, - "lifepoints": "100", - "strength_level": "68", - "id": "2782", - "aggressive": "true", - "range_level": "1", - "attack_level": "68" - }, { "examine": "From a darker dimension.", "slayer_task": "25", @@ -248779,18 +243544,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", @@ -254087,29 +248840,6 @@ "range_level": "72", "attack_level": "1" }, - { - "examine": "Good doggy...", - "melee_animation": "6562", - "range_animation": "0", - "combat_audio": "3717,3719,3718", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "slayer_exp": "116", - "magic_animation": "0", - "death_animation": "6576", - "name": "Hellhound", - "defence_level": "60", - "safespot": null, - "lifepoints": "134", - "strength_level": "60", - "id": "3586", - "aggressive": "true", - "clue_level": "2", - "range_level": "1", - "attack_level": "60" - }, { "examine": "Big, ugly, and smelly.", "melee_animation": "359", @@ -254884,28 +249614,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "An annoying flappy thing.", - "slayer_task": "5", - "melee_animation": "4915", - "range_animation": "4915", - "attack_speed": "6", - "magic_level": "32", - "defence_animation": "4916", - "weakness": "4", - "slayer_exp": "8", - "magic_animation": "4915", - "death_animation": "4917", - "name": "Giant bat", - "defence_level": "32", - "safespot": null, - "lifepoints": "32", - "strength_level": "12", - "id": "3711", - "aggressive": "true", - "range_level": "1", - "attack_level": "12" - }, { "melee_animation": "395", "combat_audio": "511,513,512", @@ -258356,47 +253064,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "4387", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "30", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "30", - "safespot": null, - "lifepoints": "42", - "strength_level": "1", - "id": "4388", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "I don't think insect repellent will work…", "slayer_task": "34", @@ -260829,46 +255496,6 @@ "projectile": "98", "attack_level": "1" }, - { - "examine": "Young but still dangerous.", - "slayer_task": "68", - "melee_animation": "25", - "range_animation": "25", - "combat_audio": "408,410,409", - "attack_speed": "5", - "magic_level": "40", - "respawn_delay": "32", - "defence_animation": "26", - "weakness": "3", - "slayer_exp": "0", - "magic_animation": "25", - "death_animation": "28", - "name": "Baby blue dragon", - "defence_level": "42", - "safespot": null, - "lifepoints": "50", - "strength_level": "40", - "id": "4665", - "aggressive": "true", - "bonuses": "50,40,64,60,30,45,40,40,20,40,40,20,0,0,0", - "range_level": "1", - "attack_level": "40" - }, - { - "examine": "Young but still dangerous.", - "combat_audio": "408,410,409", - "magic_level": "45", - "slayer_exp": "108", - "name": "Baby blue dragon", - "defence_level": "48", - "safespot": null, - "lifepoints": "51", - "strength_level": "45", - "id": "4666", - "bonuses": "49,45,43,50,73,71,56,78,68,0,0,0,0,0,0", - "range_level": "45", - "attack_level": "45" - }, { "name": "Baby red dragon", "defence_level": "1", @@ -260999,110 +255626,6 @@ "range_level": "1", "attack_level": "130" }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4673", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4674", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4675", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, - { - "examine": "A fierce dragon with black scales!", - "slayer_task": "9", - "melee_animation": "80", - "range_animation": "80", - "combat_audio": "408,410,409", - "attack_speed": "4", - "magic_level": "100", - "respawn_delay": "35", - "defence_animation": "89", - "weakness": "3", - "slayer_exp": "200", - "magic_animation": "80", - "death_animation": "92", - "name": "Black dragon", - "defence_level": "200", - "safespot": null, - "lifepoints": "190", - "strength_level": "200", - "id": "4676", - "aggressive": "true", - "bonuses": "0,0,0,0,0,50,70,70,60,50,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "200" - }, { "examine": "Must be related to Elvarg.", "slayer_task": "41", @@ -261531,106 +256054,6 @@ "range_level": "1", "attack_level": "18" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4694", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4695", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4696", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "50", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "4697", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, { "examine": "Big, red, and incredibly evil.", "slayer_task": "40", @@ -261735,102 +256158,6 @@ "range_level": "59", "attack_level": "59" }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4702", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4703", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4704", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, - { - "examine": "A big, scary, jet-black demon.", - "slayer_task": "8", - "melee_animation": "64", - "range_animation": "64", - "combat_audio": "400,404,403", - "magic_level": "70", - "respawn_delay": "38", - "defence_animation": "65", - "weakness": "4", - "slayer_exp": "157", - "magic_animation": "64", - "death_animation": "67", - "name": "Black demon", - "defence_level": "70", - "safespot": null, - "lifepoints": "165", - "strength_level": "70", - "id": "4705", - "aggressive": "true", - "bonuses": "45,40,40,150,150,80,150,20,150,68,0,0,0,0,0", - "range_level": "70", - "attack_level": "70" - }, { "examine": "His beard seems to have a life of its own.", "slayer_task": "62", @@ -267120,234 +261447,6 @@ "range_level": "1", "attack_level": "42" }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5342", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5343", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5344", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5345", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5346", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5347", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Eeek! A ghost!", - "slayer_task": "36", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "attack_speed": "5", - "magic_level": "18", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "5", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "18", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5348", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5349", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5350", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5351", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "5352", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A minion of Rashiliyia.", "slayer_task": "75", @@ -267646,123 +261745,6 @@ "range_level": "1", "attack_level": "1" }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5369", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5370", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "36", - "strength_level": "1", - "id": "5371", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Why does it attack with twigs? Swords and axes much better.", - "melee_animation": "5532", - "range_animation": "426", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "40", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5372", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, - { - "examine": "Are these twigs meant to hurt Thok?", - "melee_animation": "5532", - "range_animation": "426", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "40", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5373", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, - { - "examine": "It thinks it scary. Thok show it scary.", - "melee_animation": "5532", - "range_animation": "0", - "combat_audio": "436,439,438", - "magic_level": "80", - "defence_animation": "5533", - "weakness": "10", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "70", - "safespot": null, - "lifepoints": "36", - "strength_level": "80", - "id": "5374", - "aggressive": "true", - "range_level": "80", - "attack_level": "80" - }, { "examine": "Examine not added", "melee_animation": "5568", @@ -269471,24 +263453,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A Shadow Realm guardian.", - "melee_animation": "0", - "range_animation": "0", - "combat_audio": "436,439,438", - "defence_animation": "0", - "slayer_exp": "25", - "magic_animation": "0", - "death_animation": "0", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "5572", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Is it male or female?", "melee_animation": "0", @@ -273991,96 +267955,6 @@ "range_level": "1", "attack_level": "9" }, - { - "melee_animation": "5540", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5541", - "slayer_exp": "25", - "death_animation": "5542", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6094", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6095", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6096", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6097", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "melee_animation": "5532", - "combat_audio": "436,439,438", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "5533", - "slayer_exp": "25", - "death_animation": "5534", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "25", - "strength_level": "1", - "id": "6098", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, { "melee_animation": "5571", "combat_audio": "931,923,922", @@ -274115,31 +267989,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Lesser, but still pretty big.", - "slayer_task": "56", - "melee_animation": "4630", - "range_animation": "4630", - "combat_audio": "400,404,403", - "attack_speed": "6", - "magic_level": "40", - "respawn_delay": "20", - "defence_animation": "65", - "weakness": "3", - "slayer_exp": "79", - "magic_animation": "4630", - "death_animation": "67", - "name": "Lesser demon", - "defence_level": "50", - "safespot": null, - "lifepoints": "79", - "strength_level": "50", - "id": "6101", - "aggressive": "true", - "bonuses": "15,15,15,15,15,15,15,15,15,3,15,15,23,15,15", - "range_level": "1", - "attack_level": "50" - }, { "examine": "His face is expressionless.", "melee_animation": "422", @@ -275210,30 +269059,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "From the maws of hell.", - "slayer_task": "43", - "melee_animation": "6579", - "range_animation": "6579", - "combat_audio": "3717,3719,3718", - "respawn_delay": "25", - "defence_animation": "6578", - "weakness": "7", - "slayer_exp": "116", - "magic_animation": "6579", - "death_animation": "6576", - "name": "Hellhound", - "defence_level": "66", - "safespot": null, - "lifepoints": "116", - "strength_level": "66", - "id": "6210", - "aggressive": "true", - "bonuses": "50,70,30,30,60,30,60,60,50,60,0,0,0,0,0", - "clue_level": "2", - "range_level": "1", - "attack_level": "66" - }, { "examine": "Have you checked your pockets lately?", "melee_animation": "169", @@ -279183,18 +273008,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "6504", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A very noble spider and attendant to the Queen.", "melee_animation": "0", @@ -285823,17 +279636,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "16", - "name": "Chaos dwarf", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2423", - "range_level": "1", - "attack_level": "1" - }, { "death_animation": "9230", "name": "Jarvald", @@ -286207,23 +280009,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Annoying flappy thing.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "slayer_exp": "8", - "magic_animation": "0", - "death_animation": "0", - "name": "Giant bat", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2482", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A slithering serpent that likes to hide in the bush.", "melee_animation": "275", @@ -287639,26 +281424,6 @@ "range_level": "1", "attack_level": "11" }, - { - "examine": "A dark-hearted knight.", - "melee_animation": "422", - "range_animation": "0", - "attack_speed": "6", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "836", - "name": "Black knight", - "defence_level": "24", - "safespot": null, - "lifepoints": "34", - "strength_level": "24", - "id": "2698", - "aggressive": "true", - "range_level": "1", - "attack_level": "24" - }, { "examine": "He's guarding the prison.", "melee_animation": "390", @@ -287947,18 +281712,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2716", - "range_level": "1", - "attack_level": "1" - }, { "name": "Skeleton mage", "defence_level": "1", @@ -288381,26 +282134,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "A shadow.", - "melee_animation": "2738", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "6", - "magic_animation": "0", - "death_animation": "2739", - "name": "Shadow", - "defence_level": "68", - "safespot": null, - "lifepoints": "100", - "strength_level": "68", - "id": "2782", - "aggressive": "true", - "range_level": "1", - "attack_level": "68" - }, { "examine": "From a darker dimension.", "slayer_task": "25", @@ -289973,18 +283706,6 @@ "range_level": "1", "attack_level": "1" }, - { - "slayer_exp": "25", - "name": "Ghost", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "combat_audio": "436,439,438", - "strength_level": "1", - "id": "2931", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Who ate all the rats?", "melee_animation": "0", diff --git a/Server/data/configs/npc_spawns.json b/Server/data/configs/npc_spawns.json index 2111d6bab..c74410fb7 100644 --- a/Server/data/configs/npc_spawns.json +++ b/Server/data/configs/npc_spawns.json @@ -249,7 +249,7 @@ }, { "npc_id": "82", - "loc_data": "{2936,9652,0,1,3}-{2932,9809,0,1,0}-{2929,9803,0,1,2}-{2934,9795,0,1,6}-{2933,9791,0,1,1}-{3052,3117,2,1,1}-{2841,9557,0,1,3}-{2831,9562,0,1,3}-{2838,9605,0,1,3}-{3058,10128,0,1,0}-{3046,10139,0,1,0}-{3110,3157,2,1,5}" + "loc_data": "{2936,9652,0,1,3}-{2926,9803,0,1,0}-{2935,9794,0,1,0}-{3052,3117,2,1,1}-{2841,9557,0,1,3}-{2831,9562,0,1,3}-{2838,9605,0,1,3}-{3058,10128,0,1,0}-{3046,10139,0,1,0}-{3110,3157,2,1,5}" }, { "npc_id": "83", @@ -389,7 +389,7 @@ }, { "npc_id": "119", - "loc_data": "{3248,3794,0,1,1}-{2925,9766,0,1,7}-{2921,9758,0,1,3}-{2935,9770,0,1,1}-{2935,9761,0,1,0}-{3029,10313,0,1,4}-{3028,10309,0,1,4}-{3033,10311,0,1,6}-{3035,10309,0,1,1}-{3035,10313,0,1,1}-{3244,3797,0,1,3}-{3245,3790,0,1,4}-{3239,3781,0,1,5}-{3253,3791,0,1,1}-{3245,3802,0,1,1}-{3250,3808,0,1,3}-{3246,3800,0,1,6}-{3246,3795,0,1,2}" + "loc_data": "{3248,3794,0,1,1}-{2921,9757,0,1,0}-{2915,9759,0,1,0}-{2927,9761,0,1,0}-{2925,9769,0,1,0}-{2931,9784,0,1,0}-{2938,9788,0,1,0}-{3029,10313,0,1,4}-{3028,10309,0,1,4}-{3033,10311,0,1,6}-{3035,10309,0,1,1}-{3035,10313,0,1,1}-{3244,3797,0,1,3}-{3245,3790,0,1,4}-{3239,3781,0,1,5}-{3253,3791,0,1,1}-{3245,3802,0,1,1}-{3250,3808,0,1,3}-{3246,3800,0,1,6}-{3246,3795,0,1,2}" }, { "npc_id": "120", @@ -6801,7 +6801,7 @@ }, { "npc_id": "4696", - "loc_data": "{3118,3695,0,1,6}-{3010,3851,0,1,1}-{2839,9560,0,1,4}-{2846,9613,0,1,6}-{3062,10131,0,1,0}" + "loc_data": "{3118,3695,0,1,6}-{2931,9808,0,1,0}-{2930,9799,0,1,0}-{3010,3851,0,1,1}-{2839,9560,0,1,4}-{2846,9613,0,1,6}-{3062,10131,0,1,0}" }, { "npc_id": "4697", @@ -8531,6 +8531,10 @@ "npc_id": "6090", "loc_data": "{2932,3245,0,1,0}-{2934,3246,0,1,3}" }, + { + "npc_id": "6101", + "loc_data": "{2932,9811,0,1,0}" + }, { "npc_id": "6102", "loc_data": "{1762,5329,0,1,1}" From 69897f0acf48dba29349849ea47a4877374d8f95 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 10:17:29 -0500 Subject: [PATCH 02/12] Update ConstLib version --- Server/build.gradle | 2 +- .../{ConstLib-1.2.jar => ConstLib-1.3.jar} | Bin 414050 -> 729311 bytes 2 files changed, 1 insertion(+), 1 deletion(-) rename Server/libs/{ConstLib-1.2.jar => ConstLib-1.3.jar} (55%) diff --git a/Server/build.gradle b/Server/build.gradle index e41dee3f0..97d88ed02 100644 --- a/Server/build.gradle +++ b/Server/build.gradle @@ -25,7 +25,7 @@ dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2' implementation files( "libs/PrimitiveExtensions-1.0.jar", - "libs/ConstLib-1.2.jar", + "libs/ConstLib-1.3.jar", "libs/json-simple-1.1.1.jar", "libs/markdown-jvm-0.2.4.jar", "libs/classgraph-4.8.98.jar", diff --git a/Server/libs/ConstLib-1.2.jar b/Server/libs/ConstLib-1.3.jar similarity index 55% rename from Server/libs/ConstLib-1.2.jar rename to Server/libs/ConstLib-1.3.jar index e8679d1368774cad9a3b78b931ceec8539db2dd9..c46ffc6e9f5efd6e905bc553572c8d63e99bbc9d 100644 GIT binary patch delta 237071 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%0Aa3|6!;RU8B`4 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 JMnd$5|34hrX;T0I delta 11533 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 Date: Sat, 28 Aug 2021 10:55:15 -0500 Subject: [PATCH 03/12] Add the dusty key "mini-quest" --- .../region/dungeon/taverley/VelrakDialogue.kt | 63 +++++++++++++++++++ .../taverley/TaverleyDungeonListeners.kt | 42 +++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt create mode 100644 Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt diff --git a/Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt new file mode 100644 index 000000000..319cd2089 --- /dev/null +++ b/Server/src/main/kotlin/rs09/game/content/dialogue/region/dungeon/taverley/VelrakDialogue.kt @@ -0,0 +1,63 @@ +package rs09.game.content.dialogue.region.dungeon.taverley + +import api.Container +import api.ContentAPI +import core.game.content.dialogue.DialoguePlugin +import core.game.content.dialogue.FacialExpression +import core.game.node.entity.player.Player +import core.plugin.Initializable +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import rs09.tools.END_DIALOGUE + +@Initializable +class VelrakDialogue(player: Player? = null) : DialoguePlugin(player) { + override fun newInstance(player: Player?): DialoguePlugin { + return VelrakDialogue(player) + } + + override fun open(vararg args: Any?): Boolean { + if(ContentAPI.inInventory(player, Items.DUSTY_KEY_1590)){ + playerl(FacialExpression.HALF_THINKING, "Are you still here?").also { stage = 100 } + } else { + npcl(FacialExpression.FRIENDLY, "Thank you for rescuing me! It isn't very comfy in this cell.") + ContentAPI.removeItem(player, Items.JAIL_KEY_1591, Container.INVENTORY) + } + return true + } + + override fun handle(interfaceId: Int, buttonId: Int): Boolean { + when(stage){ + 0 -> options("So... do you know anywhere good to explore?","Do I get a reward for freeing you?").also { stage++ } + 1 -> when(buttonId){ + 1 -> playerl(FacialExpression.HALF_THINKING, "So... do you know anywhere good to explore?").also { stage = 10 } + 2 -> playerl(FacialExpression.FRIENDLY, "Do I get a reward for freeing you?").also { stage = 20 } + } + + 10 -> npcl(FacialExpression.HALF_THINKING, "Well, this dungeon was quite good to explore...until I got captured, anyway. I was given a key to an inner part of this dungeon by a mysterious stranger!").also { stage++ } + 11 -> npcl(FacialExpression.NEUTRAL, "It's rather tough for me to get that far into the dungeon however. I just keep getting captured! Would you like to give it a go?").also { stage++ } + 12 -> options("Yes, please!", "No, it's too dangerous for me too.").also { stage++ } + 13 -> when(buttonId){ + 1 -> playerl(FacialExpression.FRIENDLY, "Yes, please!").also { stage++ } + 2 -> playerl(FacialExpression.NEUTRAL, "No, it's too dangerous for me too.").also { stage = 15 } + } + + 14 -> ContentAPI.sendItemDialogue(player, Items.DUSTY_KEY_1590, "Velrak reaches somewhere mysterious and passes you a key.").also { ContentAPI.addItem(player, Items.DUSTY_KEY_1590, 1); stage = END_DIALOGUE } + + 15 -> npcl(FacialExpression.FRIENDLY, "I don't blame you!").also { stage = END_DIALOGUE } + + 20 -> npcl(FacialExpression.HALF_GUILTY, "Well, not really. The Black Knights took all of my stuff before throwing me in here to rot!").also { stage = 0 } + + 100 -> npcl(FacialExpression.HALF_THINKING, "Yes... I'm still plucking up the courage to run out past those Black Knights.").also { stage++ } + 101 -> playerl(FacialExpression.FRIENDLY, "Oh, go on. You can do it!").also { stage = END_DIALOGUE } + } + + return true + } + + override fun getIds(): IntArray { + return intArrayOf(NPCs.VELRAK_THE_EXPLORER_798) + } + + +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt b/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt new file mode 100644 index 000000000..a1653061c --- /dev/null +++ b/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/taverley/TaverleyDungeonListeners.kt @@ -0,0 +1,42 @@ +package rs09.game.interaction.region.dungeons.taverley + +import api.ContentAPI +import core.game.content.global.action.DoorActionHandler +import org.rs09.consts.Items +import org.rs09.consts.Scenery +import rs09.game.interaction.InteractionListener + +class TaverleyDungeonListeners : InteractionListener() { + + val BD_GATE = Scenery.GATE_2623 + val JAIL_DOOR = Scenery.DOOR_31838 + + override fun defineListeners() { + + on(BD_GATE, SCENERY, "open"){player, node -> + if(!ContentAPI.inInventory(player, Items.DUSTY_KEY_1590)){ + ContentAPI.sendMessage(player, "This gate seems to be locked.") + } else { + DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + } + return@on true + } + + + on(JAIL_DOOR, SCENERY, "open"){player, node -> + when(player.location.y){ + 9689 -> DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) //inside the cell going out + 9690 -> { //outside the cell going in + if(!ContentAPI.inInventory(player, Items.JAIL_KEY_1591)){ + ContentAPI.sendMessage(player, "This door is locked.") + } else { + DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + } + } + } + + return@on true + } + + } +} \ No newline at end of file From e01399c701671634a7e948ace408fc8966cdcef4 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 11:46:48 -0500 Subject: [PATCH 04/12] Add the dusty key "mini-quest" --- .../game/interaction/item/GodBookPlugin.java | 130 +---------------- .../game/interaction/item/GodBookListeners.kt | 134 ++++++++++++++++++ 2 files changed, 135 insertions(+), 129 deletions(-) create mode 100644 Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt diff --git a/Server/src/main/java/core/game/interaction/item/GodBookPlugin.java b/Server/src/main/java/core/game/interaction/item/GodBookPlugin.java index 899e22188..8f383e3e8 100644 --- a/Server/src/main/java/core/game/interaction/item/GodBookPlugin.java +++ b/Server/src/main/java/core/game/interaction/item/GodBookPlugin.java @@ -31,9 +31,8 @@ public class GodBookPlugin extends OptionHandler { public Plugin newInstance(Object arg) throws Throwable { for (GodBook book : GodBook.values()) { book.getDamagedBook().getDefinition().getHandlers().put("option:check", this); - book.getBook().getDefinition().getHandlers().put("option:preach", this); } - PluginManager.definePlugins(new PageHandler(), new GodBookDialogue(), new GodBookItem(), new SymbolBlessHandler()); + PluginManager.definePlugins(new PageHandler(), new GodBookItem(), new SymbolBlessHandler()); return this; } @@ -153,133 +152,6 @@ public class GodBookPlugin extends OptionHandler { } - /** - * Handles the god book dialogue. - * @author Vexia - */ - public static class GodBookDialogue extends DialoguePlugin { - - /** - * The partnership messages. - */ - private static final String[][] PARTNERSHIPS = new String[][] { { "In the name of Saradomin,", "protector of us all,", " I now join you in the eyes of Saradomin." }, { "Light and dark,", "day and night,", "Balance arises from contrast.", "I unify thee in the name of Guthix." }, { "May your union not be harmonious,", "but may your conflicts make you stronger,", "in Zamorak's name,", "now two are one." } }; - - /** - * The last rite messages. - */ - private static final String[][] LAST_RITES = new String[][] { { "Thy cause was false,", "thy skills did lack;", "See you in Lumbridge when you get back." }, { "Thy death was not in vain,", "For it brought some balance to the world.", "May Guthix bring thee rest." }, { "The weak deserve to die,", "so the strong may flourish.", "This is the creed of Zamorak." } }; - - /** - * The blessing messages. - */ - private static final String[][] BLESSINGS = new String[][] { { "Go in peace in the name of Saradomin;", "may his glory shine upon you like the sun." }, { "Mayest thou walk the path,", "and never fall,", "For Guthix walks beside thee on thy journey.", "May Guthix bring thee peace." }, { "May you reject all safe paths,", "and embrace all challenges.", "Zamorak bring you strength." } }; - - /** - * The preaching messages. - */ - private static final String[][] PREACH = new String[][] { { "Protect yourself,", "protect your friends.", "Mine is the glory that never ends.", "This is Saradomin's wisdom." }, { "Thee trees,", "the earth,", "the sky,", "the waters:", "All play their part upon this land.", "May Guthix bring thee balance." }, { "Battles are not lost and won;", "They simply remove the weak from the equation.", "Zamorak give me strength!" } }; - - private static final Animation[] ANIMATIONS = new Animation[] { new Animation(1335), new Animation(1337), new Animation(1336) }; - - /** - * The god book. - */ - private GodBook book; - - /** - * Constructs a new {@code GodBookDialogue} {@code Object} - */ - public GodBookDialogue() { - /** - * empty. - */ - } - - /** - * Constructs a new {@code GodBookDialogue} {@code Object} - * @param player the player. - */ - public GodBookDialogue(Player player) { - super(player); - } - - @Override - public DialoguePlugin newInstance(Player player) { - return new GodBookDialogue(player); - } - - @Override - public boolean open(Object... args) { - book = (GodBook) args[0]; - options("Wedding Ceremony", "Last Rites", "Blessings", "Preach"); - return true; - } - - @Override - public boolean handle(int interfaceId, int buttonId) { - switch (stage) { - case 0: - String[][] data = null; - switch (buttonId) { - case 1: - data = PARTNERSHIPS; - break; - case 2: - data = LAST_RITES; - break; - case 3: - data = BLESSINGS; - break; - case 4: - data = PREACH; - break; - } - say(data); - end(); - break; - } - return true; - } - - /** - * Says the messages for the type. - * @param data the data. - */ - private void say(String[][] data) { - if (player.inCombat()) { - player.sendMessage("You can't do that while in combat."); - return; - } - final String[] messages = data[book.ordinal()]; - final Animation animation = ANIMATIONS[book.ordinal()]; - player.animate(animation); - player.lock(); - GameWorld.getPulser().submit(new Pulse(2, player) { - int index = 0; - - @Override - public boolean pulse() { - player.animate(animation); - player.sendChat(messages[index]); - return index++ >= messages.length - 1; - } - - @Override - public void stop() { - super.stop(); - player.unlock(); - } - - }); - } - - @Override - public int[] getIds() { - return new int[] { DialogueInterpreter.getDialogueKey("god-book") }; - } - - } - /** * The page handler. * @author Vexia diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt b/Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt new file mode 100644 index 000000000..7e2b75ae0 --- /dev/null +++ b/Server/src/main/kotlin/rs09/game/interaction/item/GodBookListeners.kt @@ -0,0 +1,134 @@ +package rs09.game.interaction.item + +import api.ContentAPI +import core.game.node.entity.player.Player +import core.game.system.task.Pulse +import core.game.world.update.flag.context.Animation +import org.rs09.consts.Items +import rs09.game.content.dialogue.DialogueFile +import rs09.game.interaction.InteractionListener +import rs09.tools.END_DIALOGUE + +class GodBookListeners : InteractionListener() { + + val GB_SARADOMIN = Items.HOLY_BOOK_3840 + val GB_ZAMORAK = Items.UNHOLY_BOOK_3842 + val GB_GUTHIX = Items.BOOK_OF_BALANCE_3844 + + override fun defineListeners() { + on(GB_SARADOMIN, ITEM, "preach"){player, _ -> + ContentAPI.openDialogue(player, HOLY_DIALOGUE(BOOK.SARA)) + return@on true + } + + on(GB_ZAMORAK, ITEM, "preach"){ player, _ -> + ContentAPI.openDialogue(player, HOLY_DIALOGUE(BOOK.ZAM)) + return@on true + } + + on(GB_GUTHIX, ITEM, "preach"){ player, _ -> + ContentAPI.openDialogue(player, HOLY_DIALOGUE(BOOK.GUTHIX)) + return@on true + } + } + + internal enum class BOOK { + SARA, + GUTHIX, + ZAM + } + + internal class HOLY_DIALOGUE(val book: BOOK) : DialogueFile(){ + + val WEDDINGS = arrayOf( + "In the name of Saradomin, protector of us all, I now join you in the eyes of Saradomin.", + "Light and dark, day and night, balance arises from contrast. I unify thee in the name of Guthix.", + "Two great warriors, joined by hand, to spread destruction across the land. In Zamorak's name, now two are one." + ) + + val LAST_RITES = arrayOf( + "Thy cause was false, thy skills did lack; See you in Lumbridge when you get back.", + "Thy death was not in vain, for it brought some balance to the world. May Guthix bring you rest.", + "The weak deserve to die, so the strong may flourish. This is the creed of Zamorak." + ) + + val BLESSINGS = arrayOf( + "Go in peace in the name of Saradomin; may his glory shine upon you like the sun.", + "May you walk the path, and never fall, for Guthix walks beside thee on thy journey. May Guthix bring you peace.", + "May your bloodthirst never be sated, and may all your battles be glorious. Zamorak bring you strength." + ) + + val PREACHINGS = arrayOf( + arrayOf( + "Protect your self, protect your friends. Mine is the glory that never ends.", + "The darkness in life may be avoided, by the light of wisdom shining.", + "Show love to your friends, and mercy to your enemies, and know that the wisdom of Saradomin will follow. ", + "A fight begun, when the cause is just, will prevail over all others.", + "The currency of goodness is honour; It retains its value through scarcity." + ), + arrayOf( + "All things must end, as all begin; Only Guthix knows the role thou must play.", + "In life, in death, in joy, in sorrow: May thine experience show thee balance.", + "Thou must do as thou must, no matter what. Thine actions bring balance to this world.", + "he river flows, the sun ignites, May you stand with Guthix in thy fights.", + "A journey of a single step, May take thee over a thousand miles." + ), + arrayOf( + "There is no opinion that cannot be proven true...by crushing those who choose to disagree with it.", + "Battles are not lost and won; They simply remove the weak from the equation.", + "Those who fight, then run away, shame Zamorak with their cowardice.", + "Battle is by those who choose to disagree with it.", + "Strike fast, strike hard, strike true: The strength of Zamorak will be with you." + ) + ) + + val PREACH_SARA_AMEN = "This is Saradomin's Wisdom." + val PREACH_ZAM_AMEN = "Zamorak give me strength!" + val PREACH_GUTH_AMEN = "May Guthix bring you balance." + + override fun handle(componentID: Int, buttonID: Int) { + when(stage){ + 0 -> options("Weddings","Last Rites","Blessings","Preaching").also { stage++ } + 1 -> when(buttonID){ + 1 -> say(player!!, WEDDINGS[book.ordinal], book, false) + 2 -> say(player!!, LAST_RITES[book.ordinal], book, false) + 3 -> say(player!!, BLESSINGS[book.ordinal], book, false) + 4 -> say(player!!, PREACHINGS[book.ordinal].random(), book, true) + else -> {} + }.also { end() } + } + } + + private fun say(player: Player, message: String, book: BOOK, preach: Boolean){ + val animation = when(book){ + BOOK.SARA -> Animation(1335) + BOOK.ZAM -> Animation(1336) + BOOK.GUTHIX -> Animation(1337) + } + + val preachText = when(book){ + BOOK.SARA -> PREACH_SARA_AMEN + BOOK.ZAM -> PREACH_ZAM_AMEN + BOOK.GUTHIX -> PREACH_GUTH_AMEN + } + + val lastTick = ContentAPI.animationDuration(animation) + + ContentAPI.lock(player, 100) + ContentAPI.animate(player, animation) + + ContentAPI.submitIndividualPulse(player, object : Pulse() { + var counter = 0 + override fun pulse(): Boolean { + when(counter++){ + 0 -> ContentAPI.sendChat(player, message) + lastTick - 1 -> if(preach) ContentAPI.sendChat(player, preachText) + lastTick -> ContentAPI.unlock(player).also { return true } + } + return false + } + }) + } + + } +} \ No newline at end of file From abb4953e084b409b16285b0be1b81e638e1ae907 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 11:53:53 -0500 Subject: [PATCH 05/12] Fixed fire orb charging --- .../java/core/game/node/entity/skill/magic/ChargeOrbSpells.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java b/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java index c954889d3..c0241445e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java +++ b/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java @@ -78,7 +78,7 @@ public final class ChargeOrbSpells extends MagicSpell { public Plugin newInstance(SpellType arg) throws Throwable { SpellBook.MODERN.register(35, new ChargeOrbSpells(56, 2151, 571, 35, new Graphics(149, 96), Runes.WATER_RUNE.getItem(30), Runes.COSMIC_RUNE.getItem(3), UNPOWERED_ORB)); SpellBook.MODERN.register(39, new ChargeOrbSpells(60, 29415, 575, 39, new Graphics(151, 96), Runes.EARTH_RUNE.getItem(30), Runes.COSMIC_RUNE.getItem(3), UNPOWERED_ORB)); - SpellBook.MODERN.register(46, new ChargeOrbSpells(63, 42322, 569, 46, new Graphics(152, 96), Runes.FIRE_RUNE.getItem(30), Runes.COSMIC_RUNE.getItem(3), UNPOWERED_ORB)); + SpellBook.MODERN.register(46, new ChargeOrbSpells(63, 2153, 569, 46, new Graphics(152, 96), Runes.FIRE_RUNE.getItem(30), Runes.COSMIC_RUNE.getItem(3), UNPOWERED_ORB)); SpellBook.MODERN.register(49, new ChargeOrbSpells(66, 2152, 573, 49, new Graphics(150, 96), Runes.AIR_RUNE.getItem(30), Runes.COSMIC_RUNE.getItem(3), UNPOWERED_ORB)); return this; } From 549109ddb717c8611eb9e4d994821bd2646251f1 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 11:59:33 -0500 Subject: [PATCH 06/12] Gnome stronghold gate no longer restores run energy --- .../core/game/interaction/city/GnomeStrongholdPlugin.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java b/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java index 6e5d79974..6819e4751 100644 --- a/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java @@ -10,6 +10,7 @@ import core.game.node.entity.player.Player; import core.game.node.object.Scenery; import core.game.node.object.SceneryBuilder; import core.game.system.task.Pulse; +import core.game.world.map.path.Pathfinder; import rs09.game.world.GameWorld; import core.game.world.map.Direction; import core.game.world.map.Location; @@ -90,10 +91,10 @@ public final class GnomeStrongholdPlugin extends OptionHandler { * @param object The door. */ private void openGates(Player player, final Scenery object) { - if (object.getCharge() == 88) { + if (object.getCharge() == 0) { return; } - object.setCharge(88); + object.setCharge(0); SceneryBuilder.replace(object, object.transform(191), 4); SceneryBuilder.add(new Scenery(192, Location.create(2462, 3383, 0)), 4); Location start = Location.create(2461, 3382, 0); @@ -103,7 +104,7 @@ public final class GnomeStrongholdPlugin extends OptionHandler { start = end; end = s; } - AgilityHandler.walk(player, -1, start, end, new Animation(1426), 0, null); + Pathfinder.find(player, end).walk(player); GameWorld.getPulser().submit(new Pulse(4) { @Override public boolean pulse() { From ba11798b1f605bc11fd7df1f98e3a93c29025b74 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 12:26:41 -0500 Subject: [PATCH 07/12] Corrected the morytania swamp gate behavior --- .../interaction/region/MorytaniaListeners.kt | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt b/Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt index ca4edd9cb..b5f8dd5a6 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/region/MorytaniaListeners.kt @@ -1,11 +1,16 @@ package rs09.game.interaction.region import api.ContentAPI +import core.game.content.global.action.DoorActionHandler import core.game.node.entity.skill.agility.AgilityHandler import core.game.system.task.Pulse import core.game.world.map.Location import core.game.world.update.flag.context.Animation import core.game.world.update.flag.context.Graphics +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import org.rs09.consts.NPCs +import org.rs09.consts.Scenery import rs09.game.interaction.InteractionListener import kotlin.random.Random @@ -17,7 +22,7 @@ import kotlin.random.Random class MorytaniaListeners : InteractionListener() { - val GROTTO_ENTRANCE = 3516 + val SWAMP_GATES = intArrayOf(Scenery.GATE_3506, Scenery.GATE_3507) val GROTTO_EXIT = intArrayOf(3525, 3526) val GROTTO_BRIDGE = 3522 val outside = Location.create(3439, 3337, 0) @@ -30,10 +35,26 @@ class MorytaniaListeners : InteractionListener() { private val splashGFX = Graphics(68) override fun defineListeners() { -/* on(GROTTO_ENTRANCE,SCENERY,"enter"){ player, node -> - player.teleport(inside) + + on(SWAMP_GATES, SCENERY, "open"){player, node -> + if(player.location.y == 3457){ + DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + GlobalScope.launch { + ContentAPI.findLocalNPC(player, NPCs.ULIZIUS_1054)?.sendChat("Oh my! You're still alive!", 2) + } + } else { + if (player.questRepository.hasStarted("Nature Spirit")) { + DoorActionHandler.handleAutowalkDoor(player, node.asScenery()) + } else { + ContentAPI.sendNPCDialogue( + player, + NPCs.ULIZIUS_1054, + "I'm sorry, but I'm afraid it's too dangerous to let you through this gate right now." + ) + } + } return@on true - }*/ + } on(GROTTO_EXIT,SCENERY,"exit"){ player, node -> player.teleport(outside) From f09ff04e614141539ae12416f291c30a1679a0f9 Mon Sep 17 00:00:00 2001 From: Avi Weinstock Date: Sat, 28 Aug 2021 13:39:23 -0400 Subject: [PATCH 08/12] Make "What Lies Below" completable by fixing Zaff's dialog. --- .../java/core/game/interaction/npc/ZaffPlugin.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt b/Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt index cf459799a..01693be2f 100644 --- a/Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt +++ b/Server/src/main/java/core/game/interaction/npc/ZaffPlugin.kt @@ -114,9 +114,10 @@ class ZaffPlugin : OptionHandler() { "Can I have another ring?" ) stage = 1 + } else { + interpreter.sendOptions("Select an Option", "Yes, please.", "No, thank you.") + stage = 1 } - interpreter.sendOptions("Select an Option", "Yes, please.", "No, thank you.") - stage = 1 } 1 -> when (buttonId) { 1 -> { @@ -134,9 +135,10 @@ class ZaffPlugin : OptionHandler() { } else if (quest!!.getStage(player) == 80) { player("We did it! We beat Surok!") stage = 200 + } else { + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Can I have another ring?") + stage = 50 } - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Can I have another ring?") - stage = 50 } } 10 -> { @@ -453,4 +455,4 @@ class ZaffPlugin : OptionHandler() { return ServerStore.getArchive("daily-zaff") } } -} \ No newline at end of file +} From 417d53fc69e259dfd882687a68de6b50b700e834 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 13:54:08 -0500 Subject: [PATCH 09/12] Fixed barcrawl --- .../miniquest/barcrawl/BarcrawlDialogue.java | 6 +- .../miniquest/barcrawl/BarcrawlPlugin.java | 382 ------------------ .../miniquest/barcrawl/BarcrawlType.java | 357 ++++++++++++++++ .../game/interaction/npc/NPCTalkListener.kt | 15 + gradle.properties | 1 + 5 files changed, 377 insertions(+), 384 deletions(-) delete mode 100644 Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlPlugin.java create mode 100644 Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java create mode 100644 gradle.properties diff --git a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java b/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java index feaa63313..891d7e2e8 100644 --- a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java +++ b/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlDialogue.java @@ -2,6 +2,7 @@ package core.game.content.quest.miniquest.barcrawl; import core.game.node.entity.player.Player; import core.game.system.task.Pulse; +import core.plugin.Initializable; import rs09.game.world.GameWorld; import core.game.content.dialogue.DialogueInterpreter; import core.game.content.dialogue.DialoguePlugin; @@ -11,12 +12,13 @@ import core.game.content.dialogue.DialoguePlugin; * @author 'Vexia * @version 1.0 */ +@Initializable public final class BarcrawlDialogue extends DialoguePlugin { /** * The npc id being used. */ - private BarcrawlPlugin.BarcrawlType type; + private BarcrawlType type; /** * The npc id. @@ -48,7 +50,7 @@ public final class BarcrawlDialogue extends DialoguePlugin { @Override public boolean open(Object... args) { npcId = (Integer) args[0]; - type = (BarcrawlPlugin.BarcrawlType) args[1]; + type = (BarcrawlType) args[1]; player("I'm doing Alfred Grimhand's Barcrawl."); return true; } diff --git a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlPlugin.java b/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlPlugin.java deleted file mode 100644 index 28799c909..000000000 --- a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlPlugin.java +++ /dev/null @@ -1,382 +0,0 @@ -package core.game.content.quest.miniquest.barcrawl; - -import core.cache.def.impl.NPCDefinition; -import core.game.node.entity.skill.Skills; -import core.game.interaction.OptionHandler; -import core.game.node.Node; -import core.game.node.entity.combat.ImpactHandler.HitsplatType; -import core.game.node.entity.player.Player; -import core.game.node.item.Item; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; -import core.net.packet.PacketRepository; -import core.net.packet.context.CameraContext; -import core.net.packet.context.CameraContext.CameraType; -import core.net.packet.out.CameraViewPacket; -import core.plugin.Plugin; -import rs09.plugin.PluginManager; -import core.plugin.Initializable; -import core.tools.StringUtils; - -/** - * Handles the barcrawl npc interactions. - * @author 'Vexia - * @version 1.0 - */ -@Initializable -public final class BarcrawlPlugin extends OptionHandler { - - @Override - public Plugin newInstance(Object arg) throws Throwable { - for (BarcrawlType type : BarcrawlType.values()) { - for (int npc : type.getNpc()) { - NPCDefinition.forId(npc).getHandlers().put("option:talk-to", this); - } - } - PluginManager.definePlugin(new BarcrawlDialogue()); - return this; - } - - @Override - public boolean handle(Player player, Node node, String option) { - final BarcrawlType type = BarcrawlType.forId(node.getId()); - if (player.getBarcrawlManager().isFinished() || !player.getBarcrawlManager().isStarted() || player.getBarcrawlManager().isCompleted(type.ordinal())) { - player.getDialogueInterpreter().open(node.getId(), node); - } else { - player.getDialogueInterpreter().open("barcrawl dialogue", node.getId(), type); - } - return true; - } - - /** - * A barcrawl type npc. - * @author 'Vexia - * @version 1.0 - */ - public enum BarcrawlType { - BLUE_MOON(733, 50, "Uncle Humphrey's Gutrot", new String[] { "Oh no not another of you guys. These barbarian", "barcrawls cause too much damage to my bar." }, new String[] { "You're going to have to pay me 50 gold for the Uncle", "Humphrey's Gutrot." }) { - @Override - public void effect(final Player player) { - player.sendChat("Blearrgh!"); - player.getImpactHandler().manualHit(player, 1, HitsplatType.NORMAL); - addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.STRENGTH, Skills.SMITHING); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("Your insides feel terrible.", "The bartender signs your card."); - } else { - player.getPacketDispatch().sendMessages("You buy some " + getName() + ".", "You drink the " + getName() + "."); - } - } - }, - BLUEBERRY_BAR(848, 10, "Fire Toad Blast", new String[] { "Ah, you've come to the best stop on your list! I'll give", "you my famous Fire Toad last! It'll cost you 10", "coins." }) { - @Override - public void effect(final Player player) { - player.getImpactHandler().manualHit(player, 1, HitsplatType.NORMAL); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessage("Blueberry signs your card."); - } else { - super.message(player, start); - player.getPacketDispatch().sendMessage("Your mouth and throat burns as you gulp it down."); - } - } - - }, - DEADMAN_CHEST(735, 15, "Supergrog", new String[] { "Haha time to be breaking out the old Supergrog. That'll", "be 15 coins please." }) { - @Override - public void effect(final Player player) { - addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.HERBLORE, Skills.CONSTRUCTION, Skills.PRAYER); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("You stagger backwards.", "You think you see 2 bartenders signing 2 barcrawl cards."); - } else { - player.getPacketDispatch().sendMessages("The bartender serves you a glass of strange thick dark liquid.", "You wince and drink it."); - } - } - - }, - DRAGON_INN(739, 12, "Fire Brandy", new String[] { "I suppose you'll be wanting some Fire Brandy. That'll", "cost you 12 coins." }) { - @Override - public void effect(final Player player) { - addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("Your vision blurs and you stagger slightly.", "You can just about make out the bartender signing your barcrawl card."); - } else { - player.getPacketDispatch().sendMessages("The bartender hands you a small glass and sets light to the contents.", "You blow out the flame and drink it."); - } - } - - }, - FLYING_HORSE_INN(737, 8, "Heart Stopper", new String[] { "Fancy a bit of Heart Stopper then do you? It'll only be", "8 coins." }) { - @Override - public void effect(final Player player) { - player.getImpactHandler().manualHit(player, (int) (player.getSkills().getLevel(Skills.HITPOINTS) * 0.15), HitsplatType.NORMAL); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("You clutch your chest.", "Through your tears you see the bartender...", "signing your barcrawl card."); - } else { - player.getPacketDispatch().sendMessages("The bartender hands you a shot of Heart Stopper.", "You grimace and drink it."); - } - } - }, - FORESTERS_ARMS(738, 18, "Liverbane Ale", new String[] { "Oh you're a barbarian then. Now which of these barrels", "contained the Liverbane Ale? That'll be 18 coins please." }) { - @Override - public void effect(final Player player) { - addBonus(player, Skills.ATTACK, Skills.DEFENCE, Skills.FLETCHING, Skills.FIREMAKING, Skills.WOODCUTTING); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("The room seems to be swaying.", "The bartender scrawls his signature on your card."); - } else { - player.getPacketDispatch().sendMessages("The bartender gives you a glass of Liverbane Ale.", "You gulp it down."); - } - } - - }, - JOLLY_BOAR(731, 10, "Olde Suspiciouse", new String[] { "Ah, there seems to be a fair few doing that one these", "days. My supply of Olde suspiciouse is starting to run", "low, it'll cost you 10 coins." }) { - @Override - public void effect(final Player player) { - addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.STRENGTH, Skills.MINING, Skills.CRAFTING, Skills.MAGIC); - player.getImpactHandler().manualHit(player, 1, HitsplatType.NORMAL); - player.getDialogueInterpreter().sendDialogues(player, null, "Thanksh very mush..."); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("Your head is spinning.", "The bartender signs your card."); - } else { - player.getPacketDispatch().sendMessages("You buy a pint of Olde Suspiciouse.", "You gulp it down."); - } - } - }, - KARAMJA_SPIRITS(568, 7, "Ape Bite Liqueur", new String[] { "Ah, you'll be wanting some Ape Bite Liqueur then. It's", "got a lovely bannana taste, and it'll only cost you 7", "coins." }) { - @Override - public void effect(final Player player) { - addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("Zamo signs your card."); - player.getDialogueInterpreter().sendDialogues(player, null, "Mmmmm, dat was luverly..."); - } else { - player.getPacketDispatch().sendMessages("You buy some Ape Bite liqueur.", "You swirl it around and swallow it."); - } - } - - }, - RISING_SUNN_INN(new int[] { 3217, 736 }, 70, "Hand of Death Cocktail", new String[] { "Heehee, this'll be fun!" }, new String[] { "You'll be after our Hand of Death cocktail, then. Lots", "of expensive parts to the cocktail, though, so it will cost", "you 70 coins." }) { - @Override - public void effect(final Player player) { - addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.RANGE, Skills.FIREMAKING); - player.getImpactHandler().manualHit(player, 1, HitsplatType.NORMAL); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessages("The barmaid giggles.", "The barmaid signs your card."); - } else { - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.SHAKE, 4, 4, 1, 4, 4)); - GameWorld.getPulser().submit(new Pulse(3, player) { - @Override - public boolean pulse() { - PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraType.RESET, 4, 4, 1, 4, 4)); - return true; - } - }); - player.getPacketDispatch().sendMessages("You buy a Hand of Death cocktail.", "You drink the cocktail.", "You stumble around the room."); - } - } - }, - RUSTY_ANCHOR_INN(734, 8, "Black Skull Ale", new String[] { "Okay, one Black Skull Ale coming up. Eight coins, please." }) { - @Override - public void effect(final Player player) { - player.sendChat("Hiccup!"); - } - - @Override - public void message(final Player player, boolean start) { - if (!start) { - super.message(player, start); - } else { - player.getPacketDispatch().sendMessages("You buy a Black Skull Ale...", "You drink your Black Skull Ale...", "Your vision blurs."); - } - } - }; - - /** - * The npc id. - */ - private final int[] npc; - - /** - * The name. - */ - private final String name; - - /** - * The coin required. - */ - private final Item coins; - - /** - * The dialogue to use. - */ - private final String[][] dialogue; - - /** - * Constructs a new {@code BarcrawlType} {@code Object}. - * @param npc the npc. - * @param name the name. - * @param coins the coins. - * @param dialogue the dialogue. - */ - private BarcrawlType(int npc, Item coins, String name, String[][] dialogue) { - this.npc = new int[] { npc }; - this.name = name; - this.coins = coins; - this.dialogue = dialogue; - } - - /** - * Constructs a new {@code BarcrawlType} {@code Object}. - * @param npc the npc. - * @param coins the coins. - */ - private BarcrawlType(int npc, int coins, final String name, String[] first, String[] second) { - this.npc = new int[] { npc }; - this.name = name; - this.coins = new Item(995, coins); - this.dialogue = new String[][] { first, second }; - } - - /** - * Constructs a new {@code BarcrawlType} {@code Object}. - * @param npc the npc. - * @param coins the coins. - * @param first the first dial. - * @param second the second dial. - */ - private BarcrawlType(int[] npc, int coins, String name, String[] first, String[] second) { - this.npc = npc; - this.name = name; - this.coins = new Item(995, coins); - this.dialogue = new String[][] { first, second }; - } - - /** - * Constructs a new {@code BarcrawlType} {@code Object}. - * @param npc the npc. - * @param coins the coins. - */ - private BarcrawlType(int npc, int coins, String name, String[] first) { - this.npc = new int[] { npc }; - this.name = name; - this.coins = new Item(995, coins); - this.dialogue = new String[][] { first }; - } - - /** - * Method used to effect the player. - * @param player the player. - */ - public void effect(final Player player) { - - } - - /** - * Method used to message the player. - * @param player the player. - * @param start or finish. - */ - public void message(final Player player, boolean start) { - if (!start) { - player.getPacketDispatch().sendMessage("The bartender signs your card."); - } else { - player.getPacketDispatch().sendMessage("You buy a " + (StringUtils.isPlusN(getName()) ? "an" : "a") + " " + getName() + "."); - } - } - - /** - * Method used to a skill bonus. - * @param player the player. - * @param amount the amount. - * @param skills the skills. - */ - public void addBonus(final Player player, int amount, final int... skills) { - for (int i : skills) { - player.getSkills().updateLevel(i, -amount, 0); - } - } - - /** - * Gets the bar crawl type. - * @param id the id. - * @return the type. - */ - public static BarcrawlType forId(int id) { - for (BarcrawlType type : values()) { - for (int npc : type.getNpc()) { - if (npc == id) { - return type; - } - } - } - return null; - } - - /** - * Gets the npc. - * @return The npc. - */ - public int[] getNpc() { - return npc; - } - - /** - * Gets the coins. - * @return The coins. - */ - public Item getCoins() { - return coins; - } - - /** - * Gets the dialogue. - * @return The dialogue. - */ - public String[][] getDialogue() { - return dialogue; - } - - /** - * Gets the name. - * @return The name. - */ - public String getName() { - return name; - } - - } -} diff --git a/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java b/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java new file mode 100644 index 000000000..8573d9b54 --- /dev/null +++ b/Server/src/main/java/core/game/content/quest/miniquest/barcrawl/BarcrawlType.java @@ -0,0 +1,357 @@ +package core.game.content.quest.miniquest.barcrawl; + +import core.game.node.entity.combat.ImpactHandler; +import core.game.node.entity.player.Player; +import core.game.node.entity.skill.Skills; +import core.game.node.item.Item; +import core.game.system.task.Pulse; +import core.net.packet.PacketRepository; +import core.net.packet.context.CameraContext; +import core.net.packet.out.CameraViewPacket; +import core.tools.StringUtils; +import rs09.game.world.GameWorld; + +/** + * A barcrawl type npc. + * + * @author 'Vexia + * @version 1.0 + */ +public enum BarcrawlType { + BLUE_MOON(733, 50, "Uncle Humphrey's Gutrot", new String[]{"Oh no not another of you guys. These barbarian", "barcrawls cause too much damage to my bar."}, new String[]{"You're going to have to pay me 50 gold for the Uncle", "Humphrey's Gutrot."}) { + @Override + public void effect(final Player player) { + player.sendChat("Blearrgh!"); + player.getImpactHandler().manualHit(player, 1, ImpactHandler.HitsplatType.NORMAL); + addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.STRENGTH, Skills.SMITHING); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("Your insides feel terrible.", "The bartender signs your card."); + } else { + player.getPacketDispatch().sendMessages("You buy some " + getName() + ".", "You drink the " + getName() + "."); + } + } + }, + BLUEBERRY_BAR(848, 10, "Fire Toad Blast", new String[]{"Ah, you've come to the best stop on your list! I'll give", "you my famous Fire Toad last! It'll cost you 10", "coins."}) { + @Override + public void effect(final Player player) { + player.getImpactHandler().manualHit(player, 1, ImpactHandler.HitsplatType.NORMAL); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessage("Blueberry signs your card."); + } else { + super.message(player, start); + player.getPacketDispatch().sendMessage("Your mouth and throat burns as you gulp it down."); + } + } + + }, + DEADMAN_CHEST(735, 15, "Supergrog", new String[]{"Haha time to be breaking out the old Supergrog. That'll", "be 15 coins please."}) { + @Override + public void effect(final Player player) { + addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.HERBLORE, Skills.CONSTRUCTION, Skills.PRAYER); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("You stagger backwards.", "You think you see 2 bartenders signing 2 barcrawl cards."); + } else { + player.getPacketDispatch().sendMessages("The bartender serves you a glass of strange thick dark liquid.", "You wince and drink it."); + } + } + + }, + DRAGON_INN(739, 12, "Fire Brandy", new String[]{"I suppose you'll be wanting some Fire Brandy. That'll", "cost you 12 coins."}) { + @Override + public void effect(final Player player) { + addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("Your vision blurs and you stagger slightly.", "You can just about make out the bartender signing your barcrawl card."); + } else { + player.getPacketDispatch().sendMessages("The bartender hands you a small glass and sets light to the contents.", "You blow out the flame and drink it."); + } + } + + }, + FLYING_HORSE_INN(737, 8, "Heart Stopper", new String[]{"Fancy a bit of Heart Stopper then do you? It'll only be", "8 coins."}) { + @Override + public void effect(final Player player) { + player.getImpactHandler().manualHit(player, (int) (player.getSkills().getLevel(Skills.HITPOINTS) * 0.15), ImpactHandler.HitsplatType.NORMAL); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("You clutch your chest.", "Through your tears you see the bartender...", "signing your barcrawl card."); + } else { + player.getPacketDispatch().sendMessages("The bartender hands you a shot of Heart Stopper.", "You grimace and drink it."); + } + } + }, + FORESTERS_ARMS(738, 18, "Liverbane Ale", new String[]{"Oh you're a barbarian then. Now which of these barrels", "contained the Liverbane Ale? That'll be 18 coins please."}) { + @Override + public void effect(final Player player) { + addBonus(player, Skills.ATTACK, Skills.DEFENCE, Skills.FLETCHING, Skills.FIREMAKING, Skills.WOODCUTTING); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("The room seems to be swaying.", "The bartender scrawls his signature on your card."); + } else { + player.getPacketDispatch().sendMessages("The bartender gives you a glass of Liverbane Ale.", "You gulp it down."); + } + } + + }, + JOLLY_BOAR(731, 10, "Olde Suspiciouse", new String[]{"Ah, there seems to be a fair few doing that one these", "days. My supply of Olde suspiciouse is starting to run", "low, it'll cost you 10 coins."}) { + @Override + public void effect(final Player player) { + addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.STRENGTH, Skills.MINING, Skills.CRAFTING, Skills.MAGIC); + player.getImpactHandler().manualHit(player, 1, ImpactHandler.HitsplatType.NORMAL); + player.getDialogueInterpreter().sendDialogues(player, null, "Thanksh very mush..."); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("Your head is spinning.", "The bartender signs your card."); + } else { + player.getPacketDispatch().sendMessages("You buy a pint of Olde Suspiciouse.", "You gulp it down."); + } + } + }, + KARAMJA_SPIRITS(568, 7, "Ape Bite Liqueur", new String[]{"Ah, you'll be wanting some Ape Bite Liqueur then. It's", "got a lovely bannana taste, and it'll only cost you 7", "coins."}) { + @Override + public void effect(final Player player) { + addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("Zamo signs your card."); + player.getDialogueInterpreter().sendDialogues(player, null, "Mmmmm, dat was luverly..."); + } else { + player.getPacketDispatch().sendMessages("You buy some Ape Bite liqueur.", "You swirl it around and swallow it."); + } + } + + }, + RISING_SUNN_INN(new int[]{3217, 736}, 70, "Hand of Death Cocktail", new String[]{"Heehee, this'll be fun!"}, new String[]{"You'll be after our Hand of Death cocktail, then. Lots", "of expensive parts to the cocktail, though, so it will cost", "you 70 coins."}) { + @Override + public void effect(final Player player) { + addBonus(player, 1, Skills.ATTACK, Skills.DEFENCE, Skills.RANGE, Skills.FIREMAKING); + player.getImpactHandler().manualHit(player, 1, ImpactHandler.HitsplatType.NORMAL); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessages("The barmaid giggles.", "The barmaid signs your card."); + } else { + PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.SHAKE, 4, 4, 1, 4, 4)); + GameWorld.getPulser().submit(new Pulse(3, player) { + @Override + public boolean pulse() { + PacketRepository.send(CameraViewPacket.class, new CameraContext(player, CameraContext.CameraType.RESET, 4, 4, 1, 4, 4)); + return true; + } + }); + player.getPacketDispatch().sendMessages("You buy a Hand of Death cocktail.", "You drink the cocktail.", "You stumble around the room."); + } + } + }, + RUSTY_ANCHOR_INN(734, 8, "Black Skull Ale", new String[]{"Okay, one Black Skull Ale coming up. Eight coins, please."}) { + @Override + public void effect(final Player player) { + player.sendChat("Hiccup!"); + } + + @Override + public void message(final Player player, boolean start) { + if (!start) { + super.message(player, start); + } else { + player.getPacketDispatch().sendMessages("You buy a Black Skull Ale...", "You drink your Black Skull Ale...", "Your vision blurs."); + } + } + }; + + /** + * The npc id. + */ + private final int[] npc; + + /** + * The name. + */ + private final String name; + + /** + * The coin required. + */ + private final Item coins; + + /** + * The dialogue to use. + */ + private final String[][] dialogue; + + /** + * Constructs a new {@code BarcrawlType} {@code Object}. + * + * @param npc the npc. + * @param name the name. + * @param coins the coins. + * @param dialogue the dialogue. + */ + private BarcrawlType(int npc, Item coins, String name, String[][] dialogue) { + this.npc = new int[]{npc}; + this.name = name; + this.coins = coins; + this.dialogue = dialogue; + } + + /** + * Constructs a new {@code BarcrawlType} {@code Object}. + * + * @param npc the npc. + * @param coins the coins. + */ + private BarcrawlType(int npc, int coins, final String name, String[] first, String[] second) { + this.npc = new int[]{npc}; + this.name = name; + this.coins = new Item(995, coins); + this.dialogue = new String[][]{first, second}; + } + + /** + * Constructs a new {@code BarcrawlType} {@code Object}. + * + * @param npc the npc. + * @param coins the coins. + * @param first the first dial. + * @param second the second dial. + */ + private BarcrawlType(int[] npc, int coins, String name, String[] first, String[] second) { + this.npc = npc; + this.name = name; + this.coins = new Item(995, coins); + this.dialogue = new String[][]{first, second}; + } + + /** + * Constructs a new {@code BarcrawlType} {@code Object}. + * + * @param npc the npc. + * @param coins the coins. + */ + private BarcrawlType(int npc, int coins, String name, String[] first) { + this.npc = new int[]{npc}; + this.name = name; + this.coins = new Item(995, coins); + this.dialogue = new String[][]{first}; + } + + /** + * Method used to effect the player. + * + * @param player the player. + */ + public void effect(final Player player) { + + } + + /** + * Method used to message the player. + * + * @param player the player. + * @param start or finish. + */ + public void message(final Player player, boolean start) { + if (!start) { + player.getPacketDispatch().sendMessage("The bartender signs your card."); + } else { + player.getPacketDispatch().sendMessage("You buy a " + (StringUtils.isPlusN(getName()) ? "an" : "a") + " " + getName() + "."); + } + } + + /** + * Method used to a skill bonus. + * + * @param player the player. + * @param amount the amount. + * @param skills the skills. + */ + public void addBonus(final Player player, int amount, final int... skills) { + for (int i : skills) { + player.getSkills().updateLevel(i, -amount, 0); + } + } + + /** + * Gets the bar crawl type. + * + * @param id the id. + * @return the type. + */ + public static BarcrawlType forId(int id) { + for (BarcrawlType type : values()) { + for (int npc : type.getNpc()) { + if (npc == id) { + return type; + } + } + } + return null; + } + + /** + * Gets the npc. + * + * @return The npc. + */ + public int[] getNpc() { + return npc; + } + + /** + * Gets the coins. + * + * @return The coins. + */ + public Item getCoins() { + return coins; + } + + /** + * Gets the dialogue. + * + * @return The dialogue. + */ + public String[][] getDialogue() { + return dialogue; + } + + /** + * Gets the name. + * + * @return The name. + */ + public String getName() { + return name; + } + +} diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt b/Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt index 8bea79755..0537b31b7 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/npc/NPCTalkListener.kt @@ -1,9 +1,11 @@ package rs09.game.interaction.npc +import core.game.content.quest.miniquest.barcrawl.BarcrawlType import core.game.node.entity.npc.NPC import rs09.game.content.activity.gnomecooking.* import rs09.game.content.ame.RandomEvents import rs09.game.interaction.InteractionListener +import rs09.game.system.SystemLogger /** * Handles the NPC talk-to option. @@ -11,8 +13,21 @@ import rs09.game.interaction.InteractionListener */ class NPCTalkListener : InteractionListener() { + val barCrawlNPCs = intArrayOf(733,848,735,739,737,738,731,568,3217,736,734) + override fun defineListeners() { + on(barCrawlNPCs, NPC, "talk-to", "talk"){player, node -> + val type = BarcrawlType.forId(node.id) + + if (player.barcrawlManager.isFinished || !player.barcrawlManager.isStarted || player.barcrawlManager.isCompleted(type!!.ordinal)) { + player.dialogueInterpreter.open(node.id, node) + } else { + player.dialogueInterpreter.open("barcrawl dialogue", node.id, type) + } + return@on true + } + on(NPC,"talk-to","talk"){player,node -> val npc = node.asNpc() if(RandomEvents.randomIDs.contains(node.id)){ diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..e0fa37628 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +org.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx2g \ No newline at end of file From 94ebeca1d4243c333333354b697968a2f0eea1e2 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 16:19:03 -0500 Subject: [PATCH 10/12] Charm table population no longer uses heuristics --- .../main/kotlin/rs09/game/content/global/NPCDropTable.kt | 6 ++---- .../kotlin/rs09/game/system/config/DropTableParser.kt | 8 +++++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt b/Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt index 9a71eb5f8..65b29d673 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt +++ b/Server/src/main/kotlin/rs09/game/content/global/NPCDropTable.kt @@ -8,13 +8,11 @@ import core.game.node.item.Item import core.tools.RandomFunction import org.rs09.consts.Items -private val CHARMS = intArrayOf(Items.CRIMSON_CHARM_12160,Items.BLUE_CHARM_12163,Items.GREEN_CHARM_12159,Items.GOLD_CHARM_12158) class NPCDropTable : WeightBasedTable() { val charmDrops = WeightBasedTable() - override fun add(element: WeightedItem): Boolean { - return if(CHARMS.contains(element.id)) charmDrops.add(element) - else super.add(element) + fun addToCharms(element: WeightedItem): Boolean { + return charmDrops.add(element) } override fun roll(player: Player?): ArrayList { diff --git a/Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt b/Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt index a40820697..78a715a65 100644 --- a/Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt +++ b/Server/src/main/kotlin/rs09/game/system/config/DropTableParser.kt @@ -5,6 +5,7 @@ import org.json.simple.JSONArray import org.json.simple.JSONObject import org.json.simple.parser.JSONParser import rs09.ServerConstants +import rs09.game.content.global.NPCDropTable import rs09.game.content.global.WeightBasedTable import rs09.game.content.global.WeightedItem import rs09.game.system.SystemLogger @@ -24,7 +25,7 @@ class DropTableParser { val def = NPCDefinition.forId(n.toInt()).dropTables def ?: continue parseTable(tab["main"] as JSONArray, def.table, false) - parseTable(tab["charm"] as JSONArray, def.table, false) + parseTable(tab["charm"] as JSONArray, def.table, false, true) parseTable(tab["default"] as JSONArray,def.table,true) count++ } @@ -32,7 +33,7 @@ class DropTableParser { SystemLogger.logInfo("Parsed $count drop tables.") } - private fun parseTable(data: JSONArray, destTable: WeightBasedTable, isAlways: Boolean) { + private fun parseTable(data: JSONArray, destTable: NPCDropTable, isAlways: Boolean, isCharms: Boolean = false) { for(it in data){ val item = it as JSONObject val id = item["id"].toString().toInt() @@ -40,7 +41,8 @@ class DropTableParser { val maxAmount = item["maxAmount"].toString().toInt() val weight = item["weight"].toString().toDouble() val newItem = WeightedItem(id,minAmount,maxAmount,weight.toDouble(),isAlways) - destTable.add(newItem) + if(isCharms) destTable.addToCharms(newItem) + else destTable.add(newItem) } } } \ No newline at end of file From 0a6a929c2fb672ae3390015b56d5d51d5f593bb8 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 21:53:12 -0500 Subject: [PATCH 11/12] Refactor more old object naming to scenery --- Server/data/configs/drop_tables.json | 2699 +++++++++++++---- .../cache/def/impl/SceneryDefinition.java | 2 +- .../barrows/BarrowsActivityPlugin.java | 2 +- .../activity/barrows/BarrowsCrypt.java | 2 +- .../bountyhunter/BHOptionHandler.java | 2 +- .../clanwars/ClanWarsActivityPlugin.java | 4 +- .../clanwars/ClanWarsChallengeRoom.java | 2 +- .../gnomecopter/GnomeCopterActivity.java | 4 +- .../activity/guild/CraftingGuildPlugin.java | 2 +- .../content/activity/guild/FishingGuild.java | 2 +- .../activity/guild/HeroGuildPlugin.java | 2 +- .../activity/guild/MiningGuildPlugin.java | 2 +- .../activity/guild/RangingGuildPlugin.java | 2 +- .../activity/guild/WizardGuildPlugin.java | 2 +- .../activity/gwd/GodwarsEntranceHandler.java | 2 +- .../content/activity/gwd/GodwarsMapzone.java | 2 +- .../activity/magearena/MageArenaPlugin.java | 2 +- .../activity/mta/impl/AlchemistZone.java | 4 +- .../activity/mta/impl/EnchantingZone.java | 2 +- .../activity/mta/impl/GraveyardZone.java | 4 +- .../activity/partyroom/BalloonManager.java | 4 +- .../activity/partyroom/PartyRoomPlugin.java | 4 +- .../activity/pestcontrol/PCLanderZone.java | 2 +- .../activity/pestcontrol/PCObjectHandler.java | 4 +- .../pestcontrol/PestControlSession.java | 2 +- .../pestcontrol/monsters/PCRavagerNPC.java | 4 +- .../pestcontrol/monsters/PCSplatterNPC.java | 4 +- .../activity/puropuro/PuroPuroPlugin.java | 4 +- .../pyramidplunder/PlunderObject.java | 2 +- .../activity/pyramidplunder/PlunderZones.java | 2 +- .../pyramidplunder/PyramidOptionHandler.java | 4 +- .../stronghold/StrongHoldSecurityPlugin.java | 2 +- .../playersafety/PSOptionHandler.java | 4 +- .../StrongHoldOfPlayerSafetyPlugin.java | 2 +- .../tzhaar/TzhaarFightCavesPlugin.java | 2 +- .../tzhaar/TzhaarFightPitsPlugin.java | 2 +- .../activity/wguild/WarriorsGuild.java | 2 +- .../wguild/animator/AnimationRoom.java | 2 +- .../activity/wguild/barrel/BarrelRoom.java | 2 +- .../wguild/catapult/CatapultRoom.java | 4 +- .../wguild/cyclopes/CyclopesRoom.java | 2 +- .../activity/wguild/dummy/DummyRoom.java | 4 +- .../activity/wguild/shot/ShotPutRoom.java | 2 +- .../content/cutscene/DBRCutscenePlugin.java | 4 +- .../cutscene/JulietCutscenePlugin.java | 4 +- .../game/content/cutscene/OrganCutScene.java | 4 +- .../content/dialogue/BorderGuardDialogue.java | 2 +- .../content/dialogue/DoorPerilDialogue.java | 2 +- .../dialogue/EnchantTiaraDialogue.java | 3 +- .../dialogue/IgnatiusVulcanDialogue.java | 4 +- .../dialogue/MithrilSeedsDialogue.java | 4 +- .../content/dialogue/MithrilSeedsPlugin.java | 4 +- .../content/dialogue/TraibornDialogue.java | 4 +- .../core/game/content/global/GodType.java | 2 +- .../global/action/ClimbActionHandler.java | 2 +- .../global/action/DoorActionHandler.java | 7 +- .../holiday/christmas/ChristmasEvent.java | 4 +- .../holiday/halloween/DeathMansionEvent.java | 2 +- .../quest/PluginInteractionManager.java | 2 +- .../game/content/quest/free/ImpCatcher.java | 4 +- .../BKFortressPlugin.java | 2 +- .../free/demonslayer/DemonSlayerCutscene.java | 4 +- .../free/demonslayer/DemonSlayerPlugin.java | 4 +- .../free/demonslayer/TraibornDialogue.java | 4 +- .../quest/free/dragonslayer/DragonSlayer.java | 2 +- .../free/dragonslayer/DragonSlayerPlugin.java | 5 +- .../quest/free/dragonslayer/ElvargNPC.java | 4 +- .../GoblinDiplomacyPlugin.java | 2 +- .../PiratesTreasurePlugin.java | 2 +- .../PrinceAliRescuePlugin.java | 2 +- .../free/shieldofarrav/ShieldArravPlugin.java | 4 +- .../therestlessghost/RestlessGhostPlugin.java | 4 +- .../therestlessghost/RestlessGhostSkull.java | 2 +- .../fishingcontest/GarlicPipeInteraction.java | 2 +- .../fishingcontest/StairInteraction.java | 2 +- .../fishingcontest/VineInteraction.java | 2 +- .../members/junglepotion/JunglePotion.java | 4 +- .../junglepotion/JunglePotionPlugin.java | 4 +- .../members/lostcity/LostCityPlugin.java | 2 +- .../merlinscrystal/CrateCutscenePlugin.java | 4 +- .../MerlinCrystalOptionPlugin.java | 2 +- .../merlinscrystal/MerlinCrystalPlugin.java | 4 +- .../sheepherder/IncineratorHandler.java | 2 +- .../thetouristrap/BedabinNomadDialogue.java | 4 +- .../thetouristrap/TouristTrapPlugin.java | 4 +- .../waterfallquest/WaterfallPlugin.java | 4 +- .../whatliesbelow/WLBelowCutscene.java | 4 +- .../witchshouse/WitchsHousePlugin.java | 4 +- .../tutorialisland/TutorialIslandPlugin.java | 2 +- .../tutorialisland/TutorialStage.java | 2 +- .../game/content/zone/ChaosTunnelZone.java | 2 +- .../content/zone/YanilleAgilityDungeon.java | 4 +- .../content/zone/phasmatys/PhasmatysZone.java | 4 +- .../content/zone/rellekka/RellekkaZone.java | 8 +- .../zone/wbisland/WaterBirthDungeonZone.java | 2 +- .../game/interaction/DestinationFlag.java | 2 +- .../core/game/interaction/Interaction.java | 2 +- .../java/core/game/interaction/Option.java | 2 +- .../core/game/interaction/UseWithHandler.java | 2 +- .../game/interaction/city/BedabinPlugin.java | 4 +- .../interaction/city/BurthorpePlugin.java | 2 +- .../interaction/city/CamelotNodePlugin.java | 2 +- .../interaction/city/DraynorManorPlugin.java | 4 +- .../interaction/city/DraynorNodePlugin.java | 4 +- .../interaction/city/EdgevilleNodePlugin.java | 4 +- .../interaction/city/FaladorNodePlugin.java | 4 +- .../city/GnomeStrongholdPlugin.java | 4 +- .../interaction/city/HamHideoutPlugin.java | 2 +- .../city/KaramajaOptionPlugin.java | 4 +- .../interaction/city/LumbridgeNodePlugin.java | 2 +- .../interaction/city/MonasteryPlugin.java | 2 +- .../interaction/city/PortSarimPlugin.java | 2 +- .../game/interaction/city/SophanemPlugin.java | 2 +- .../city/TaverlyDungeonPlugin.java | 4 +- .../interaction/city/TrollheimPlugin.java | 3 +- .../interaction/city/TzhaarCityPlugin.java | 2 +- .../interaction/city/VarrockNodePlugin.java | 4 +- .../interaction/city/WildernessPlugin.java | 2 +- .../interaction/city/WizardTowerPlugin.java | 2 +- .../game/interaction/city/ZanarisPlugin.java | 2 +- .../interaction/city/lumbridge/FredChest.java | 4 +- .../interaction/item/SilverSicklePlugin.java | 6 - .../item/withitem/ChestKeyPlugin.java | 4 +- .../item/withitem/ImpJarCreatePlugin.java | 2 +- .../item/withobject/GWDEntranceRopeUsage.java | 2 +- .../withobject/PriestInPerilUsePlugin.java | 2 +- .../item/withobject/SmithingPlugin.java | 2 +- .../item/withobject/WaterSourcePlugin.java | 3 +- .../npc/BurthorpeOptionPlugin.java | 2 +- .../npc/SpiritKyattOptionPlugin.java | 4 +- .../SorceressApprenticePlugin.java | 2 +- .../interaction/object/BankingPlugin.java | 3 +- .../object/BarrowsTunnelShortcut.java | 2 +- .../object/BrassKeyDoorPlugin.java | 2 +- .../object/ChampionsArenaPlugin.java | 2 +- .../object/ChampionsGuildDoor.java | 2 +- .../object/ChefGuildDoorPlugin.java | 2 +- .../interaction/object/CowMilkingPlugin.java | 2 +- .../object/CulinomancerChestPliugin.java | 4 +- .../object/DoorManagingPlugin.java | 4 +- .../object/DropPartyLeverOptionPlugin.java | 2 +- .../object/ErnestTheChickenPlugin.java | 4 +- .../object/FieldPickingPlugin.java | 4 +- .../object/GrandExchangeShortcut.java | 2 +- .../interaction/object/HaystackPlugin.java | 2 +- .../interaction/object/JangerBerryPlugin.java | 4 +- .../object/KalphiteEntranceHandler.java | 4 +- .../object/KhardianInteractionPlugin.java | 4 +- .../object/LadderManagingPlugin.java | 2 +- .../interaction/object/LavaMazePlugin.java | 2 +- .../object/LumbridgeBasementPlugin.java | 4 +- .../object/LumbridgeSwampHolePlugin.java | 4 +- .../interaction/object/MuseumGatePlugin.java | 2 +- .../interaction/object/PortsObjectPlugin.java | 2 +- .../object/PriestInPerilOptionPlugin.java | 2 +- .../interaction/object/ProspectOrePlugin.java | 2 +- .../interaction/object/PyreSitePlugin.java | 4 +- .../object/ReadSignPostPlugin.java | 2 +- .../object/RedberryBushPlugin.java | 4 +- .../interaction/object/RomeoQuestPlugin.java | 4 +- .../object/RuneCraftingGuildObjects.java | 2 +- .../interaction/object/ShantayPassPlugin.java | 2 +- .../object/SinclairFlourBarrelPlugin.java | 2 +- .../interaction/object/SlashWebPlugin.java | 4 +- .../object/ThievingGuidePlugin.java | 4 +- .../object/TollGateOptionPlugin.java | 2 +- .../object/VampireSlayerPlugin.java | 2 +- .../object/WildernessLeverPlugin.java | 4 +- .../object/WildernessObeliskPlugin.java | 4 +- .../interaction/object/WydinDoorPlugin.java | 2 +- .../interaction/object/dmc/DMCHandler.java | 4 +- .../object/sorceress/GardenObjectsPlugin.kt | 2 +- .../sorceress/SorceressGardenObject.java | 2 +- .../wildyditch/WildernessDitchPlugin.java | 2 +- .../wildyditch/WildernessInterfacePlugin.java | 2 +- Server/src/main/java/core/game/node/Node.java | 2 +- .../npc/city/sophanem/WallShortcut.java | 2 +- .../node/entity/npc/familiar/BeaverNPC.java | 2 +- .../entity/npc/familiar/CompostMoundNPC.java | 2 +- .../entity/npc/familiar/DesertWyrmNPC.java | 2 +- .../entity/npc/familiar/ForgeRegentNPC.java | 4 +- .../node/entity/npc/familiar/PyreLordNPC.java | 4 +- .../node/entity/npc/other/ArmourSuitNPC.java | 4 +- .../entity/player/link/PacketDispatch.java | 2 +- .../entity/skill/agility/AgilityShortcut.java | 2 +- .../agility/brimhaven/BrimhavenArena.java | 4 +- .../agility/brimhaven/BrimhavenCourse.java | 2 +- .../agility/pyramid/AgilityPyramidCourse.java | 2 +- .../skill/agility/pyramid/RollingBlock.java | 2 +- .../shortcuts/AlKharidPitShortcut.java | 2 +- .../agility/shortcuts/BarSqueezeShortcut.java | 2 +- .../shortcuts/CrumblingWallShortcut.java | 2 +- .../agility/shortcuts/FenceJumpShortcut.java | 2 +- .../agility/shortcuts/KaramjaGrapple.java | 2 +- .../agility/shortcuts/LogBalanceShortcut.java | 2 +- .../agility/shortcuts/MonkeyBarShortcut.java | 2 +- .../skill/agility/shortcuts/RopeSwing.java | 2 +- .../agility/shortcuts/StileShortcut.java | 2 +- .../shortcuts/StrangeFloorShortcut.java | 2 +- .../agility/shortcuts/TunnelShortcut.java | 2 +- .../agility/shortcuts/WaterOrbGrapple.java | 4 +- .../shortcuts/ZanarisSqueezeShortcut.java | 2 +- .../skill/construction/BuildOptionPlugin.java | 2 +- .../skill/construction/BuildRoomDialogue.java | 4 +- .../skill/construction/BuildingUtils.java | 4 +- .../construction/ConstructionInterface.java | 2 +- .../entity/skill/construction/Decoration.java | 2 +- .../skill/construction/HouseManager.java | 2 +- .../construction/PortalOptionPlugin.java | 2 +- .../node/entity/skill/construction/Room.java | 5 +- .../skill/construction/RoomBuilder.java | 4 +- .../skill/construction/RoomProperties.java | 2 +- .../decoration/BeerBarrelPlugin.java | 2 +- .../decoration/ChairBenchPlugin.java | 2 +- .../decoration/FireplacePlugin.java | 4 +- .../decoration/StaircasePlugin.java | 4 +- .../decoration/bedroom/ClockPlugin.java | 2 +- .../decoration/chapel/BoneOfferPlugin.java | 3 +- .../decoration/kitchen/BeerBarrelPlugin.java | 2 +- .../portalchamber/PortalChamberPlugin.java | 2 +- .../workshop/ClockmakersBenchPlugin.java | 2 +- .../decoration/workshop/ToolsPlugin.java | 2 +- .../entity/skill/cooking/CookingRewrite.kt | 2 +- .../skill/cooking/IntentionalBurnPulse.java | 2 +- .../entity/skill/cooking/PieCookingPulse.java | 2 +- .../skill/cooking/PizzaCookingPulse.java | 2 +- .../skill/cooking/StandardCookingPulse.java | 2 +- .../skill/crafting/WeaveOptionPlugin.java | 2 +- .../skill/firemaking/FireMakingPulse.java | 4 +- .../skill/gather/GatheringSkillPulse.java | 4 +- .../gather/woodcutting/WoodcuttingNode.java | 2 + .../woodcutting/WoodcuttingSkillPulse.java | 4 +- .../entity/skill/hunter/DeadfallSetting.java | 4 +- .../entity/skill/hunter/HunterManager.java | 2 +- .../entity/skill/hunter/HunterPlugin.java | 2 +- .../entity/skill/hunter/NetTrapSetting.java | 4 +- .../entity/skill/hunter/TrapCreatePulse.java | 4 +- .../skill/hunter/TrapDismantlePulse.java | 2 +- .../node/entity/skill/hunter/TrapSetting.java | 4 +- .../node/entity/skill/hunter/TrapWrapper.java | 4 +- .../game/node/entity/skill/hunter/Traps.java | 2 +- .../entity/skill/magic/ChargeOrbSpells.java | 2 +- .../skill/magic/lunar/FertileSoilSpell.java | 2 +- .../node/entity/skill/runecrafting/Altar.java | 2 +- .../runecrafting/CombinationRunePlugin.java | 2 +- .../runecrafting/EnchantTiaraPlugin.java | 2 +- .../skill/runecrafting/MysteriousRuin.java | 2 +- .../runecrafting/MysteriousRuinPlugin.java | 2 +- .../runecrafting/RunecraftingPlugin.java | 2 +- .../skill/slayer/FishingExplosivePlugin.java | 2 +- .../skill/slayer/SlayerTowerPlugin.java | 4 +- .../entity/skill/slayer/SlayerTowerZone.java | 2 +- .../skill/slayer/dungeon/AncientCavern.java | 4 +- .../slayer/dungeon/FremennikDungeon.java | 2 +- .../skill/smithing/FurnaceOptionPlugin.java | 2 +- .../skill/summoning/SummoningCreator.java | 2 +- .../summoning/SummoningTrainingRoom.java | 2 +- .../skill/thieving/PickableDoorHandler.java | 2 +- .../node/entity/skill/thieving/Stall.java | 2 +- .../skill/thieving/StallThiefPulse.java | 4 +- .../skill/thieving/ThievableChestPlugin.java | 4 +- .../skill/thieving/ThievingOptionPlugin.java | 2 +- .../node/{object => scenery}/Constructed.java | 2 +- .../node/{object => scenery}/Scenery.java | 2 +- .../{object => scenery}/SceneryBuilder.java | 2 +- .../core/game/world/map/BuildRegionChunk.java | 4 +- .../java/core/game/world/map/RegionChunk.java | 2 +- .../java/core/game/world/map/RegionManager.kt | 2 +- .../java/core/game/world/map/RegionPlane.java | 2 +- .../game/world/map/build/DynamicRegion.java | 2 +- .../game/world/map/build/LandscapeParser.java | 2 +- .../core/game/world/map/path/Pathfinder.java | 2 +- .../game/world/objectparser/ObjectParser.java | 2 +- .../update/flag/chunk/ObjectUpdateFlag.java | 2 +- .../world/update/flag/context/Animation.java | 2 +- .../update/flag/player/FaceLocationFlag.java | 2 +- .../packet/context/BuildSceneryContext.java | 2 +- .../core/net/packet/in/InteractionPacket.java | 2 +- .../net/packet/in/InterfaceUseOnPacket.java | 2 +- .../core/net/packet/in/ItemActionPacket.java | 2 +- .../net/packet/out/AnimateObjectPacket.java | 2 +- .../core/net/packet/out/ClearScenery.java | 2 +- .../core/net/packet/out/ConstructScenery.java | 2 +- Server/src/main/kotlin/api/ContentAPI.kt | 4 +- .../kotlin/rs09/game/ai/general/ScriptAPI.kt | 2 +- .../ai/general/scriptrepository/Adventurer.kt | 2 +- .../fishingtrawler/FishingTrawlerSession.kt | 4 +- .../activity/fog/FogInteractionHandler.kt | 2 +- .../worldevents/shootingstar/ShootingStar.kt | 4 +- .../shootingstar/ShootingStarMiningPulse.kt | 2 +- .../quest/members/naturespirit/NSUtils.kt | 4 +- .../TFTInteractionListeners.kt | 2 +- .../members/thelostcity/DramenTreeListener.kt | 2 +- .../interaction/object/GutanothChestPlugin.kt | 4 +- .../interaction/object/JungleBushHandler.kt | 4 +- .../interaction/object/MuddyChestHandler.kt | 4 +- .../interaction/object/TarBarrelListener.kt | 2 +- .../dungeons/brimhaven/BrimhavenUtils.kt | 4 +- .../wilderness/RoguesCastleListeners.kt | 2 +- .../skill/agility/BarbarianOutpostCourse.kt | 2 +- .../skill/agility/GnomeStrongholdCourse.kt | 2 +- .../entity/skill/agility/WildernessCourse.kt | 2 +- .../agility/shortcuts/BasaltRockShortcut.kt | 2 +- .../skill/agility/shortcuts/PipeShortcut.kt | 2 +- .../agility/shortcuts/RockClimbShortcut.kt | 2 +- .../decoration/ConstructionDoorPlugin.kt | 2 +- .../decoration/chapel/BurnerListener.kt | 4 +- .../decoration/study/TelescopePlugin.kt | 2 +- .../entity/skill/cooking/CookingDialogue.kt | 2 +- .../node/entity/skill/farming/CompostBins.kt | 2 +- .../node/entity/skill/farming/FarmingPatch.kt | 2 +- .../skill/gather/mining/MiningSkillPulse.kt | 4 +- .../skill/hunter/tracking/HunterTracking.kt | 2 +- .../node/entity/skill/magic/LunarListeners.kt | 2 +- .../skill/runecrafting/abyss/AbyssPlugin.kt | 2 +- .../system/command/oldsys/VisualCommand.kt | 4 +- .../RottenPotatoUseWithHandler.kt | 2 +- .../system/command/sets/MiscCommandSet.kt | 2 +- .../system/command/sets/SpawnCommandSet.kt | 4 +- 319 files changed, 2580 insertions(+), 989 deletions(-) rename Server/src/main/java/core/game/node/{object => scenery}/Constructed.java (98%) rename Server/src/main/java/core/game/node/{object => scenery}/Scenery.java (99%) rename Server/src/main/java/core/game/node/{object => scenery}/SceneryBuilder.java (99%) diff --git a/Server/data/configs/drop_tables.json b/Server/data/configs/drop_tables.json index bacc761ad..2d430235f 100644 --- a/Server/data/configs/drop_tables.json +++ b/Server/data/configs/drop_tables.json @@ -753,7 +753,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "91.6064", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.0005", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.7927", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.4372", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.1632", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "9,32,206,296,297,298,299,344,345,346,368,678,812,887,1142,1143,1144,1145,1146,1147,1148,1149,1150,1296,1297,1374,1805,1806,2699,2700,2701,2702,2703,2704,2705,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,3228,3229,3230,3231,3232,3233,3241,3407,3408,3715,3941,3942,4257,4258,4259,4260,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4336,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5489,5490,5491,5492,5800,5801,5919,5920,6183,6184,6190,6498,6499,6500,6501,6502,6503,7142", "description": "", "main": [ @@ -963,25 +994,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "94.0800", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.2133", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.1733", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2667", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2667", "id": "12163", "maxAmount": "1" } @@ -1176,25 +1213,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "77.9122", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "12.4761", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.5379", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.8192", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2546", "id": "12163", "maxAmount": "1" } @@ -1366,25 +1409,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "89.3939", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.6277", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.9481", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.7316", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2987", "id": "12163", "maxAmount": "1" } @@ -2149,7 +2198,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "20.1053", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "69.0441", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0025", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.8402", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0079", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "49,3586,6210", "description": "", "main": [ @@ -2206,6 +2286,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "50,2642", @@ -2401,25 +2487,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "18.0057", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "17.6693", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "43.5864", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "17.0291", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.7095", "id": "12163", "maxAmount": "1" } @@ -2621,25 +2713,31 @@ "charm": [ { "minAmount": "3", - "weight": "16.0", + "weight": "56.6693", + "id": "0", + "maxAmount": "3" + }, + { + "minAmount": "3", + "weight": "8.6692", "id": "12158", "maxAmount": "3" }, { "minAmount": "3", - "weight": "64.0", + "weight": "26.5555", "id": "12159", "maxAmount": "3" }, { "minAmount": "3", - "weight": "16.0", + "weight": "6.7590", "id": "12160", "maxAmount": "3" }, { "minAmount": "3", - "weight": "4.0", + "weight": "1.3469", "id": "12163", "maxAmount": "3" } @@ -2817,25 +2915,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "48.5393", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "11.0668", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "27.2748", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "10.9091", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.2100", "id": "12163", "maxAmount": "1" } @@ -3030,25 +3134,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "87.5860", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.5490", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.8189", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.3911", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6551", "id": "12163", "maxAmount": "1" } @@ -3204,6 +3314,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "61,1004,1221,1473,1474,4401,7207", @@ -3344,25 +3460,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "72.2513", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "25.0631", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9319", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6049", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.1488", "id": "12163", "maxAmount": "1" } @@ -3383,25 +3505,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "62.4612", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "23.1644", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "8.4798", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.4467", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4478", "id": "12163", "maxAmount": "1" } @@ -3917,25 +4045,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "78.7445", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "19.2498", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5210", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2069", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2779", "id": "12163", "maxAmount": "1" } @@ -3981,25 +4115,31 @@ "charm": [ { "minAmount": "1", - "weight": "20.0", + "weight": "94.9773", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.8562", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "75.0", + "weight": "3.8921", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.0", + "weight": "0.2258", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0", + "weight": "0.0486", "id": "12163", "maxAmount": "1" } @@ -4024,7 +4164,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "93.9387", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.8077", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.7671", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.8683", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.6181", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "82,4694,4695,4696,4697,6101", "description": "", "main": [ @@ -4204,25 +4375,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "62.1649", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "6.9276", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.7889", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "26.1919", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9267", "id": "12163", "maxAmount": "1" } @@ -4352,25 +4529,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "22.5725", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "20.8465", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "10.7620", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "44.1955", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6236", "id": "12163", "maxAmount": "1" } @@ -4655,7 +4838,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "90.3666", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.2856", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.8525", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.4723", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0230", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "90,91,92,93,459,1471,2036,2037,2715,3151,3291,3581,4384,4385,4386,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5365,5366,5367,5368,5381,5385,5386,5387,5388,5389,5390,5391,5392,5411,5412,5422,6091,6092,6093,6764,6765,6766,6767,6768", "description": "", "main": [ @@ -5126,25 +5340,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "88.6454", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.5857", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.9920", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.5777", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.1992", "id": "12163", "maxAmount": "1" } @@ -5178,25 +5398,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.0570", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.8446", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.8490", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "12.8793", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.3701", "id": "12163", "maxAmount": "1" } @@ -5601,25 +5827,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "85.6976", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "10.7526", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.5960", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6717", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2821", "id": "12163", "maxAmount": "1" } @@ -5665,25 +5897,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "82.1397", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "16.5340", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4421", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5305", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.3537", "id": "12163", "maxAmount": "1" } @@ -5717,25 +5955,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "30.6289", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "55.6271", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.2156", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.0098", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.5185", "id": "12163", "maxAmount": "1" } @@ -5958,7 +6202,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "45.9587", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "44.7868", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.9505", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.5777", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.7263", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "111,3072,4685,4686,4687", "description": "", "main": [ @@ -6261,7 +6536,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "61.6452", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "32.5923", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.7924", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.4366", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.5336", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "112,1587,1588,1681,4534,4688,4706", "description": "", "main": [ @@ -6639,25 +6945,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "58.3163", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "36.3670", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.4356", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.4642", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4168", "id": "12163", "maxAmount": "1" } @@ -6988,6 +7300,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "114", @@ -7175,25 +7493,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "82.5938", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "13.9157", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.7360", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.3739", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.3806", "id": "12163", "maxAmount": "1" } @@ -7887,6 +8211,12 @@ "weight": "1.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1400.0", + "id": "0", + "maxAmount": "1" } ], "ids": "117,4689,4690,4691,4692,4693", @@ -8188,25 +8518,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "90.7890", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.7853", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.8556", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.9837", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5864", "id": "12163", "maxAmount": "1" } @@ -8354,25 +8690,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "81.6299", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.4137", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.0075", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.2593", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.6896", "id": "12163", "maxAmount": "1" } @@ -8559,7 +8901,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "82.4038", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "15.9877", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.4930", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.9659", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.1495", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "122,123,2685,2686,2687,2688,3583,4898,6275", "description": "", "main": [ @@ -8936,25 +9309,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "74.8304", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.0131", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.5294", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "10.9457", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6814", "id": "12163", "maxAmount": "1" } @@ -9266,7 +9645,38 @@ }, { "default": [], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "53.6086", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "41.9912", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.4642", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.5197", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.4162", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "125,145,3073", "description": "", "main": [ @@ -9867,25 +10277,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "54.5455", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "21.6783", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "11.1888", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.2937", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.2937", "id": "12163", "maxAmount": "1" } @@ -10102,6 +10518,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "132,1463,1464,1487,2301,4344,4363,5852,6943,7211,7213,7215,7217,7219,7221,7223,7225,7227", @@ -10139,25 +10561,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "84.4867", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.9954", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "9.6471", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5729", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2979", "id": "12163", "maxAmount": "1" } @@ -10204,28 +10632,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "11.0653", + "id": "0", + "maxAmount": "3" + }, + { + "minAmount": "3", + "weight": "20.6850", "id": "12158", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "10.8348", "id": "12159", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "20.7757", "id": "12160", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "36.6392", "id": "12163", - "maxAmount": "1" + "maxAmount": "3" } ], "ids": "8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366", @@ -10562,25 +10996,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "70.7701", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "10.4637", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.3610", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "12.8041", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6011", "id": "12163", "maxAmount": "1" } @@ -11882,25 +12322,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "86.7406", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "11.5076", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.7715", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6429", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.3375", "id": "12163", "maxAmount": "1" } @@ -12101,25 +12547,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "85.3493", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.9531", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.4672", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.3107", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.9197", "id": "12163", "maxAmount": "1" } @@ -12473,25 +12925,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "74.1154", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "17.7558", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.9091", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.0402", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.1795", "id": "12163", "maxAmount": "1" } @@ -13579,25 +14037,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "37.5000", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "12.5000", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "16.2500", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "18.7500", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "15.0000", "id": "12163", "maxAmount": "1" } @@ -13794,25 +14258,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "81.6118", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "15.8300", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4426", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4809", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6347", "id": "12163", "maxAmount": "1" } @@ -14020,6 +14490,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "490,1958,1959,1961,1962,1963,1964,1965,1966,1967,1968,2015,2016,2017,2018,2019,6753,6754,6755,6756,6757,6758,6759,6760", @@ -15714,6 +16190,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "870", @@ -15984,25 +16466,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "66.2159", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.4604", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "16.0822", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.7004", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.5411", "id": "12163", "maxAmount": "1" } @@ -16705,25 +17193,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "86.2037", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.0201", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.9644", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.2179", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5939", "id": "12163", "maxAmount": "1" } @@ -17130,6 +17624,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1023,1220,1223,1225,6214", @@ -18373,7 +18873,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "69.0000", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.0000", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.0000", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "10.0000", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "11.0000", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "1096", "description": "", "main": [ @@ -18559,25 +19090,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "53.7736", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "35.8491", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.6038", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.7736", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.0000", "id": "12163", "maxAmount": "1" } @@ -18683,25 +19220,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "67.1141", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "21.6443", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.0336", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.1946", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.0134", "id": "12163", "maxAmount": "1" } @@ -19359,25 +19902,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "50.0805", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "39.6940", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.9114", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.2206", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.0934", "id": "12163", "maxAmount": "1" } @@ -20154,25 +20703,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "87.6923", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.8422", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.1442", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.5573", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.7640", "id": "12163", "maxAmount": "1" } @@ -20457,25 +21012,31 @@ "charm": [ { "minAmount": "1", - "weight": "75.0", + "weight": "73.4384", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.9927", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "75.0", + "weight": "5.2881", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "75.0", + "weight": "6.8405", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.4403", "id": "12163", "maxAmount": "1" } @@ -20652,25 +21213,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "64.8768", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "13.2327", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.3396", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.8032", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "8.7477", "id": "12163", "maxAmount": "1" } @@ -21156,25 +21723,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "59.5722", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.8769", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "24.3610", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.5554", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6345", "id": "12163", "maxAmount": "1" } @@ -21484,25 +22057,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "85.3383", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "10.1504", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.5038", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.2556", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.7519", "id": "12163", "maxAmount": "1" } @@ -21536,25 +22115,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "60.5114", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.1023", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "22.4432", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "8.2386", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.7045", "id": "12163", "maxAmount": "1" } @@ -21765,25 +22350,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "79.4780", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "18.3672", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.7552", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2444", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.1553", "id": "12163", "maxAmount": "1" } @@ -21816,25 +22407,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "82.6794", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.4178", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2519", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.2870", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.3640", "id": "12163", "maxAmount": "1" } @@ -22481,6 +23078,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1265,1267", @@ -23231,6 +23834,12 @@ "weight": "2.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1400.0", + "id": "0", + "maxAmount": "1" } ], "ids": "2455,2456", @@ -23654,6 +24263,12 @@ "weight": "5.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "560.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1524,1525,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747", @@ -23859,6 +24474,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1558,1559,1951,1952,1953,1954,1955,1956,6052", @@ -24105,25 +24726,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "39.7302", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "13.6424", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "30.8949", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "12.2934", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.4391", "id": "12163", "maxAmount": "1" } @@ -24354,28 +24981,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "39.7985", + "id": "0", + "maxAmount": "2" + }, + { + "minAmount": "2", + "weight": "12.2826", "id": "12158", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "32.2437", "id": "12159", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "12.8932", "id": "12160", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "2.7820", "id": "12163", - "maxAmount": "1" + "maxAmount": "2" } ], "ids": "1591", @@ -24580,28 +25213,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "33.6140", + "id": "0", + "maxAmount": "3" + }, + { + "minAmount": "3", + "weight": "13.8986", "id": "12158", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "35.1826", "id": "12159", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "14.2297", "id": "12160", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "3.0751", "id": "12163", - "maxAmount": "1" + "maxAmount": "3" } ], "ids": "1592,3590", @@ -24795,25 +25434,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "70.4846", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.8947", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "15.9010", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.4401", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2796", "id": "12163", "maxAmount": "1" } @@ -24834,25 +25479,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "87.3121", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.0562", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.2646", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9459", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4212", "id": "12163", "maxAmount": "1" } @@ -25077,25 +25728,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.4800", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "11.8412", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.9054", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.9876", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.7859", "id": "12163", "maxAmount": "1" } @@ -25321,25 +25978,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "56.3725", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.8432", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "26.9563", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.4594", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.3687", "id": "12163", "maxAmount": "1" } @@ -25642,25 +26305,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.7631", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.5666", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.7979", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.8876", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.9849", "id": "12163", "maxAmount": "1" } @@ -25822,6 +26491,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1611", @@ -25954,25 +26629,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "88.9020", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.4973", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.9705", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.3085", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.3217", "id": "12163", "maxAmount": "1" } @@ -26198,25 +26879,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "55.2891", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.8367", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.3680", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "30.4735", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.0327", "id": "12163", "maxAmount": "1" } @@ -26424,25 +27111,31 @@ "charm": [ { "minAmount": "1", - "weight": "12.0", + "weight": "52.8956", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.6662", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.0", + "weight": "4.4161", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "72.0", + "weight": "32.9683", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.0", + "weight": "1.0538", "id": "12163", "maxAmount": "1" } @@ -26650,25 +27343,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "67.2875", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.0347", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "19.4192", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.0371", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2214", "id": "12163", "maxAmount": "1" } @@ -26888,25 +27587,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "53.9118", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.3528", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "30.9557", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.6941", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.0855", "id": "12163", "maxAmount": "1" } @@ -27123,7 +27828,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "88.9239", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.2682", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.3641", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.1737", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.2700", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "1620,1621,4227", "description": "", "main": [ @@ -27411,25 +28147,31 @@ "charm": [ { "minAmount": "1", - "weight": "20.0", + "weight": "64.0022", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.3073", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "70.0", + "weight": "22.1332", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "5.3634", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "1.1938", "id": "12163", "maxAmount": "1" } @@ -27691,25 +28433,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "55.1863", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "11.8733", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.1533", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "25.8346", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9525", "id": "12163", "maxAmount": "1" } @@ -27944,6 +28692,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1631,1632", @@ -28089,25 +28843,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "86.6357", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0393", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.4947", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.3380", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4923", "id": "12163", "maxAmount": "1" } @@ -28242,25 +29002,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "65.9946", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.6208", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "21.8565", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.5828", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9453", "id": "12163", "maxAmount": "1" } @@ -28390,25 +29156,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "61.2459", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "32.8603", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.7701", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.5155", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6082", "id": "12163", "maxAmount": "1" } @@ -28589,6 +29361,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1648,1649,1650,1651,1652,1653,1654,1655,1656,1657", @@ -28698,25 +29476,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "46.6640", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "44.2900", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.0169", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.9727", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.0564", "id": "12163", "maxAmount": "1" } @@ -29017,6 +29801,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1691,5211", @@ -29740,6 +30530,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1752,1753,6109,6110,6111", @@ -29831,25 +30627,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "93.2258", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.7419", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.5806", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9677", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4839", "id": "12163", "maxAmount": "1" } @@ -29898,25 +30700,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "86.9276", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "6.5495", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.4760", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.8488", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.1981", "id": "12163", "maxAmount": "1" } @@ -30507,25 +31315,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "52.5489", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "6.5845", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "36.5336", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.5259", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.8071", "id": "12163", "maxAmount": "1" } @@ -31042,6 +31856,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "1960,5360", @@ -31283,25 +32103,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "86.2564", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.1429", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.5191", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.8380", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.2436", "id": "12163", "maxAmount": "1" } @@ -31429,25 +32255,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "79.2519", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.3890", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "12.9177", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.7431", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6983", "id": "12163", "maxAmount": "1" } @@ -31489,25 +32321,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "91.6382", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.6928", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.4744", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.9386", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2560", "id": "12163", "maxAmount": "1" } @@ -31534,25 +32372,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "90.4762", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.2910", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.1164", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5291", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.5873", "id": "12163", "maxAmount": "1" } @@ -31583,7 +32427,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "85.8093", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "10.9113", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.6775", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.6019", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.0000", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "2044,2045,2046,2047,2048,2049,2051,2052,2053,2054,2055", "description": "", "main": [ @@ -32032,25 +32907,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.5695", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.9046", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "9.1281", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6349", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "10.7629", "id": "12163", "maxAmount": "1" } @@ -32416,6 +33297,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "2239,2240,2316,2317", @@ -32441,25 +33328,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "96.1266", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.7056", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.9032", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2058", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.0588", "id": "12163", "maxAmount": "1" } @@ -32601,25 +33494,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "80.0326", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.0474", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "12.1634", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.1490", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6076", "id": "12163", "maxAmount": "1" } @@ -32761,25 +33660,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.5196", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.1545", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "18.1760", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.6304", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5194", "id": "12163", "maxAmount": "1" } @@ -32920,28 +33825,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "2.8249", + "id": "0", + "maxAmount": "3" + }, + { + "minAmount": "3", + "weight": "79.2687", "id": "12158", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "9.3063", "id": "12159", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "6.6384", "id": "12160", - "maxAmount": "1" + "maxAmount": "3" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "3", + "weight": "1.9617", "id": "12163", - "maxAmount": "1" + "maxAmount": "3" } ], "ids": "2452,2885", @@ -33393,6 +34304,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "2457,2884", @@ -35102,25 +36019,31 @@ "charm": [ { "minAmount": "1", - "weight": "25.0", + "weight": "64.7702", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.6684", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "10.0", + "weight": "4.3532", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "25.0", + "weight": "8.2923", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "40.0", + "weight": "13.9158", "id": "12163", "maxAmount": "1" } @@ -37160,25 +38083,31 @@ "charm": [ { "minAmount": "2", - "weight": "27.0", + "weight": "47.6638", + "id": "0", + "maxAmount": "2" + }, + { + "minAmount": "2", + "weight": "16.3926", "id": "12158", "maxAmount": "2" }, { "minAmount": "2", - "weight": "18.0", + "weight": "8.9794", "id": "12159", "maxAmount": "2" }, { "minAmount": "2", - "weight": "50.0", + "weight": "23.8319", "id": "12160", "maxAmount": "2" }, { "minAmount": "2", - "weight": "5.0", + "weight": "3.1323", "id": "12163", "maxAmount": "2" } @@ -37433,28 +38362,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "33.9281", + "id": "0", + "maxAmount": "2" + }, + { + "minAmount": "2", + "weight": "6.6641", "id": "12158", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "3.3079", "id": "12159", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "54.6051", "id": "12160", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "1.4948", "id": "12163", - "maxAmount": "1" + "maxAmount": "2" } ], "ids": "3068,3069,3070,3071", @@ -37719,25 +38654,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "91.5619", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.7734", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.9766", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4995", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.1886", "id": "12163", "maxAmount": "1" } @@ -38025,25 +38966,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "83.9189", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "14.0681", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.0810", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.7755", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.1567", "id": "12163", "maxAmount": "1" } @@ -39097,28 +40044,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "71.1249", + "id": "0", + "maxAmount": "2" + }, + { + "minAmount": "2", + "weight": "8.5018", "id": "12158", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "11.3012", "id": "12159", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "6.4282", "id": "12160", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "2.6439", "id": "12163", - "maxAmount": "1" + "maxAmount": "2" } ], "ids": "3340", @@ -39633,25 +40586,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "55.9766", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.1987", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "21.9199", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "11.0684", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.8364", "id": "12163", "maxAmount": "1" } @@ -39703,25 +40662,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "91.2090", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.8008", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.9436", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.7576", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2890", "id": "12163", "maxAmount": "1" } @@ -39998,6 +40963,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "3587", @@ -40436,25 +41407,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.7201", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "22.7431", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6213", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4998", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4157", "id": "12163", "maxAmount": "1" } @@ -41669,6 +42646,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "4226", @@ -41972,25 +42955,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "81.7721", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.6723", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "12.4324", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6996", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4235", "id": "12163", "maxAmount": "1" } @@ -42222,25 +43211,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "78.7882", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.6555", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.1922", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "13.8093", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5548", "id": "12163", "maxAmount": "1" } @@ -42553,7 +43548,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "72.1599", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "23.6015", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.6356", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.2041", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.3988", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "4381,4382,4383", "description": "", "main": [ @@ -42855,7 +43881,38 @@ }, { "default": [], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "88.9290", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.1142", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.9575", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.7357", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.2637", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "4389,4390,4391", "description": "", "main": [ @@ -43008,7 +44065,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "76.9587", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "19.0203", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.3723", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.3297", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.3191", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "4397,4398,4399", "description": "", "main": [ @@ -43765,25 +44853,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "64.8102", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "14.0533", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.8289", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.9381", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.3696", "id": "12163", "maxAmount": "1" } @@ -44079,6 +45173,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "4805,4806,4807,4808,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4849,4850,4851,4852,7606,7607,7608,7609,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7682,7683,7684,7685,7691,7692,7693,7694,7695,7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706", @@ -44453,6 +45553,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "5251,5252,5255,5256", @@ -44640,25 +45746,31 @@ "charm": [ { "minAmount": "1", - "weight": "13.0", + "weight": "4.9106", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.3881", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0", + "weight": "4.7939", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "80.0", + "weight": "78.8777", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.0", + "weight": "2.0297", "id": "12163", "maxAmount": "1" } @@ -45111,28 +46223,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "63.6081", + "id": "0", + "maxAmount": "2" + }, + { + "minAmount": "2", + "weight": "14.9300", "id": "12158", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "12.4417", "id": "12159", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "7.6205", "id": "12160", - "maxAmount": "1" + "maxAmount": "2" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "2", + "weight": "1.3997", "id": "12163", - "maxAmount": "1" + "maxAmount": "2" } ], "ids": "5362", @@ -45391,28 +46509,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "9.0422", + "id": "0", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "19.2257", "id": "12158", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "48.7929", "id": "12159", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "19.3398", "id": "12160", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "3.5993", "id": "12163", - "maxAmount": "1" + "maxAmount": "4" } ], "ids": "5363", @@ -45588,25 +46712,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "85.7316", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.7699", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.0161", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4329", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.0494", "id": "12163", "maxAmount": "1" } @@ -45661,6 +46791,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "5415,5416", @@ -45878,25 +47014,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "71.3750", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.5708", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "7.3810", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "8.4093", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.2638", "id": "12163", "maxAmount": "1" } @@ -47574,6 +48716,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6028", @@ -48972,28 +50120,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "91.1171", + "id": "0", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "3.0405", "id": "12158", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "0.9915", "id": "12159", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "0.2864", "id": "12160", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "4.5645", "id": "12163", - "maxAmount": "1" + "maxAmount": "4" } ], "ids": "6203", @@ -49868,25 +51022,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "36.6834", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "25.6873", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "13.9521", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "15.4005", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "8.2767", "id": "12163", "maxAmount": "1" } @@ -50509,7 +51669,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "4", + "weight": "82.5020", + "id": "0", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "4.2237", + "id": "12158", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "4.8572", + "id": "12159", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "5.9533", + "id": "12160", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "2.4638", + "id": "12163", + "maxAmount": "4" + } + ], "ids": "6247", "description": "", "main": [ @@ -50934,25 +52125,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "67.5000", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "26.2500", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.0000", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.0000", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "6.2500", "id": "12163", "maxAmount": "1" } @@ -50985,28 +52182,34 @@ ], "charm": [ { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "85.5895", + "id": "0", + "maxAmount": "4" + }, + { + "minAmount": "4", + "weight": "4.7851", "id": "12158", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "3.5198", "id": "12159", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "3.6001", "id": "12160", - "maxAmount": "1" + "maxAmount": "4" }, { - "minAmount": "1", - "weight": "100.0", + "minAmount": "4", + "weight": "2.5055", "id": "12163", - "maxAmount": "1" + "maxAmount": "4" } ], "ids": "6260", @@ -51701,7 +52904,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "80.3408", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.7560", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.2796", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.1186", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.5050", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "6296,6297", "description": "", "main": [ @@ -51857,25 +53091,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "76.3636", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "17.9310", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.8213", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.1944", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.6897", "id": "12163", "maxAmount": "1" } @@ -51945,25 +53185,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "78.8000", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.3333", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.2000", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.3333", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "13.3333", "id": "12163", "maxAmount": "1" } @@ -52336,25 +53582,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "82.6923", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "4.3269", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "11.0577", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4423", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.4808", "id": "12163", "maxAmount": "1" } @@ -53382,6 +54634,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6604,6635,6655,6666,6677,6697,6703,6715", @@ -53727,6 +54985,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6605,6612,6616,6620,6636,6637,6638,6639,6651,6656,6657,6658,6667,6678,6679,6680,6681,6693,6698,6699,6704,6705,6706,6707,6716,6717,6718,6719", @@ -54072,6 +55336,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6606,6621,6628,6640,6659,6682,6694,6708,6720", @@ -54417,6 +55687,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6607,6609,6614,6617,6625,6632,6644,6663,6675,6686,6701,6712,6724,6728", @@ -54762,6 +56038,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6608,6642,6661,6684,6710,6722,6727", @@ -55107,6 +56389,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6610,6615,6618,6624,6626,6629,6633,6648,6653,6664,6670,6672,6690,6696,6702,6713,6725,6729", @@ -55554,6 +56842,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6611,6619,6627,6630,6634,6650,6654,6665,6673,6676,6692,6714,6726,6730", @@ -56007,6 +57301,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6613,6623,6643,6652,6662,6669,6671,6674,6685,6695,6700,6711,6723", @@ -56358,6 +57658,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6622,6631,6641,6660,6668,6683,6709,6721", @@ -56709,6 +58015,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6645,6687", @@ -57156,6 +58468,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6646,6688", @@ -57603,6 +58921,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6647,6689", @@ -58050,6 +59374,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6649,6691", @@ -58483,25 +59813,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "80.1337", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "6.6032", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.9189", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.5225", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.8217", "id": "12163", "maxAmount": "1" } @@ -58793,25 +60129,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "90.2081", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0796", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4688", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.4076", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.8360", "id": "12163", "maxAmount": "1" } @@ -59603,6 +60945,12 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" + }, + { + "minAmount": "1", + "weight": "5600.0", + "id": "0", + "maxAmount": "1" } ], "ids": "6998,6999", @@ -60036,25 +61384,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "13.1269", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "79.3218", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.9989", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.7261", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.8264", "id": "12163", "maxAmount": "1" } @@ -60100,25 +61454,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "53.1561", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "38.8704", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.3223", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.9900", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6611", "id": "12163", "maxAmount": "1" } @@ -60164,25 +61524,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "52.7123", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "38.5613", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.7146", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.4222", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.5896", "id": "12163", "maxAmount": "1" } @@ -60250,7 +61616,38 @@ }, { "default": [], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "2.0266", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "62.8232", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "25.2621", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "9.7834", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.1048", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "7135", "description": "", "main": [ @@ -60410,7 +61807,38 @@ }, { "default": [], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "93.0134", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.6584", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.9880", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.9873", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.3529", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "7158", "description": "", "main": [ @@ -60562,7 +61990,38 @@ }, { "default": [], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "71.9397", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "6.1502", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.6665", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "17.1496", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0940", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "7159", "description": "", "main": [ @@ -60720,7 +62179,38 @@ }, { "default": [], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "58.7492", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.9739", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.9208", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "26.2643", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0919", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "7160", "description": "", "main": [ @@ -60972,25 +62462,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "73.7931", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "22.9885", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "2.0690", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.1494", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.0000", "id": "12163", "maxAmount": "1" } @@ -61245,25 +62741,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "75.6592", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "20.8925", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6227", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.6227", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "0.2028", "id": "12163", "maxAmount": "1" } @@ -61567,25 +63069,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "46.1418", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "43.3139", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "5.6442", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.7841", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "1.1161", "id": "12163", "maxAmount": "1" } @@ -61852,25 +63360,31 @@ "charm": [ { "minAmount": "13", - "weight": "100.0", + "weight": "3.1496", + "id": "0", + "maxAmount": "13" + }, + { + "minAmount": "13", + "weight": "22.2601", "id": "12158", "maxAmount": "13" }, { "minAmount": "13", - "weight": "100.0", + "weight": "12.0238", "id": "12159", "maxAmount": "13" }, { "minAmount": "13", - "weight": "100.0", + "weight": "22.0685", "id": "12160", "maxAmount": "13" }, { "minAmount": "13", - "weight": "100.0", + "weight": "40.4980", "id": "12163", "maxAmount": "13" } @@ -62078,25 +63592,31 @@ "charm": [ { "minAmount": "1", - "weight": "100.0", + "weight": "82.1886", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.3302", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "4.2583", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.1612", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "100.0", + "weight": "3.0617", "id": "12163", "maxAmount": "1" } @@ -62289,7 +63809,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "91.6064", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.0005", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.7927", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.4372", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.1632", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "1076,1077", "description": "", "main": [ @@ -62568,7 +64119,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "88.5971", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.5251", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.7022", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.6504", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.5251", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "1044,1045,1046", "description": "", "main": [ @@ -62595,7 +64177,38 @@ "maxAmount": "1" } ], - "charm": [], + "charm": [ + { + "minAmount": "1", + "weight": "88.5971", + "id": "0", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.5251", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.7022", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.6504", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "0.5251", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "188,189,190", "description": "", "main": [ diff --git a/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java b/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java index d2342d415..155a22803 100644 --- a/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java +++ b/Server/src/main/java/core/cache/def/impl/SceneryDefinition.java @@ -5,7 +5,7 @@ import core.cache.def.Definition; import core.cache.misc.buffer.ByteBufferUtils; import core.game.interaction.OptionHandler; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java b/Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java index 336b6aee7..be2820b4d 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java +++ b/Server/src/main/java/core/game/content/activity/barrows/BarrowsActivityPlugin.java @@ -16,7 +16,7 @@ import core.game.node.entity.npc.agg.AggressiveHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.ActivityData; import core.game.node.entity.skill.summoning.familiar.Familiar; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java b/Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java index 7d30190fb..ce8c6da14 100644 --- a/Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java +++ b/Server/src/main/java/core/game/content/activity/barrows/BarrowsCrypt.java @@ -4,7 +4,7 @@ import core.game.content.global.action.DigAction; import core.game.content.global.action.DigSpadeHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java b/Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java index a0b20ec96..a87e47002 100644 --- a/Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java +++ b/Server/src/main/java/core/game/content/activity/bountyhunter/BHOptionHandler.java @@ -5,7 +5,7 @@ import core.game.content.activity.ActivityManager; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java b/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java index fa07958d6..d154f5a48 100644 --- a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java +++ b/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsActivityPlugin.java @@ -16,8 +16,8 @@ import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.impl.PulseManager; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.ConfigurationManager.Configuration; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.communication.ClanEntry; import core.game.system.communication.ClanRepository; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java b/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java index bb55cf13c..46a609aa5 100644 --- a/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java +++ b/Server/src/main/java/core/game/content/activity/clanwars/ClanWarsChallengeRoom.java @@ -4,7 +4,7 @@ import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java b/Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java index 00b3acea5..f942472d5 100644 --- a/Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java +++ b/Server/src/main/java/core/game/content/activity/gnomecopter/GnomeCopterActivity.java @@ -9,8 +9,8 @@ import core.game.node.entity.Entity; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/activity/guild/CraftingGuildPlugin.java b/Server/src/main/java/core/game/content/activity/guild/CraftingGuildPlugin.java index 2a42fb592..dd3aedb80 100644 --- a/Server/src/main/java/core/game/content/activity/guild/CraftingGuildPlugin.java +++ b/Server/src/main/java/core/game/content/activity/guild/CraftingGuildPlugin.java @@ -12,7 +12,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/guild/FishingGuild.java b/Server/src/main/java/core/game/content/activity/guild/FishingGuild.java index 04e422031..bff6904d3 100644 --- a/Server/src/main/java/core/game/content/activity/guild/FishingGuild.java +++ b/Server/src/main/java/core/game/content/activity/guild/FishingGuild.java @@ -9,7 +9,7 @@ import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java b/Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java index 3a2b34b41..fa46612bd 100644 --- a/Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java +++ b/Server/src/main/java/core/game/content/activity/guild/HeroGuildPlugin.java @@ -11,7 +11,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java b/Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java index e8a1c6944..d77056288 100644 --- a/Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java +++ b/Server/src/main/java/core/game/content/activity/guild/MiningGuildPlugin.java @@ -8,7 +8,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java b/Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java index e3c156830..8e445cd0b 100644 --- a/Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java +++ b/Server/src/main/java/core/game/content/activity/guild/RangingGuildPlugin.java @@ -28,7 +28,7 @@ import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java b/Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java index 3dfd6ad90..132a399c3 100644 --- a/Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java +++ b/Server/src/main/java/core/game/content/activity/guild/WizardGuildPlugin.java @@ -12,7 +12,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java b/Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java index adaea18f0..41534ca4d 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java +++ b/Server/src/main/java/core/game/content/activity/gwd/GodwarsEntranceHandler.java @@ -9,7 +9,7 @@ import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java b/Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java index 0b27e6034..4ab906656 100644 --- a/Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java +++ b/Server/src/main/java/core/game/content/activity/gwd/GodwarsMapzone.java @@ -14,7 +14,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java b/Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java index 4141ea044..7000ff01f 100644 --- a/Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java +++ b/Server/src/main/java/core/game/content/activity/magearena/MageArenaPlugin.java @@ -11,7 +11,7 @@ import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Direction; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java b/Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java index cdb4c2021..1282754b9 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java +++ b/Server/src/main/java/core/game/content/activity/mta/impl/AlchemistZone.java @@ -12,8 +12,8 @@ import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java b/Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java index d1080b04c..a298f0f06 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java +++ b/Server/src/main/java/core/game/content/activity/mta/impl/EnchantingZone.java @@ -13,7 +13,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java b/Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java index c9c053c83..0e7e20ecb 100644 --- a/Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java +++ b/Server/src/main/java/core/game/content/activity/mta/impl/GraveyardZone.java @@ -10,8 +10,8 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java b/Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java index a6f8a4092..8bbd52077 100644 --- a/Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java +++ b/Server/src/main/java/core/game/content/activity/partyroom/BalloonManager.java @@ -12,8 +12,8 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java b/Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java index ac0724d82..a6ae4b2ee 100644 --- a/Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java +++ b/Server/src/main/java/core/game/content/activity/partyroom/PartyRoomPlugin.java @@ -18,8 +18,8 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import kotlin.Unit; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java b/Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java index 0d4e3060e..d6205ae28 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java +++ b/Server/src/main/java/core/game/content/activity/pestcontrol/PCLanderZone.java @@ -4,7 +4,7 @@ import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneRestriction; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java b/Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java index e79fefa3f..c7ae1396e 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java +++ b/Server/src/main/java/core/game/content/activity/pestcontrol/PCObjectHandler.java @@ -9,8 +9,8 @@ import core.game.node.entity.player.Player; import rs09.game.ai.pvmbots.PvMBotsBuilder; import core.game.node.entity.player.info.Rights; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java b/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java index e5a8cd8b7..45ef3be6e 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java +++ b/Server/src/main/java/core/game/content/activity/pestcontrol/PestControlSession.java @@ -11,7 +11,7 @@ import core.game.content.dialogue.FacialExpression; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.ConfigurationManager.Configuration; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.Point; import core.game.world.map.RegionPlane; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java b/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java index e68e9d789..a7dd30cf3 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java +++ b/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCRavagerNPC.java @@ -6,8 +6,8 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.BattleState; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java b/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java index 92ed3881d..3df492dce 100644 --- a/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java +++ b/Server/src/main/java/core/game/content/activity/pestcontrol/monsters/PCSplatterNPC.java @@ -8,8 +8,8 @@ import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java b/Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java index 2e351fc2c..fede65a3f 100644 --- a/Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java +++ b/Server/src/main/java/core/game/content/activity/puropuro/PuroPuroPlugin.java @@ -17,8 +17,8 @@ import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderObject.java b/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderObject.java index 25166b95d..49c882bc9 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderObject.java +++ b/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderObject.java @@ -1,7 +1,7 @@ package core.game.content.activity.pyramidplunder; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; /** * Object wrapper for pyramid plunder nodes diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java b/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java index 55eebc501..6a2e2de5b 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java +++ b/Server/src/main/java/core/game/content/activity/pyramidplunder/PlunderZones.java @@ -9,7 +9,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.game.node.item.Item; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidOptionHandler.java b/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidOptionHandler.java index ed646888d..28788cf5b 100644 --- a/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidOptionHandler.java +++ b/Server/src/main/java/core/game/content/activity/pyramidplunder/PyramidOptionHandler.java @@ -8,10 +8,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import kotlin.Unit; -import rs09.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java b/Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java index a07972b2f..50227a414 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java +++ b/Server/src/main/java/core/game/content/activity/stronghold/StrongHoldSecurityPlugin.java @@ -15,7 +15,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java b/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java index 4fdf20945..9d2bc2c15 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java +++ b/Server/src/main/java/core/game/content/activity/stronghold/playersafety/PSOptionHandler.java @@ -20,8 +20,8 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java b/Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java index 651ce6a9c..9501564fb 100644 --- a/Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java +++ b/Server/src/main/java/core/game/content/activity/stronghold/playersafety/StrongHoldOfPlayerSafetyPlugin.java @@ -4,7 +4,7 @@ import core.game.component.CloseEvent; import core.game.component.Component; import core.game.component.ComponentPlugin; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.net.packet.PacketRepository; import core.net.packet.context.CameraContext; diff --git a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java b/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java index f0fba5361..55d058535 100644 --- a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java +++ b/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightCavesPlugin.java @@ -12,7 +12,7 @@ import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.slayer.Tasks; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java b/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java index 79482f29d..06f651c79 100644 --- a/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java +++ b/Server/src/main/java/core/game/content/activity/tzhaar/TzhaarFightPitsPlugin.java @@ -22,7 +22,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java b/Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java index 3d3390a2f..9fd0abc29 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java +++ b/Server/src/main/java/core/game/content/activity/wguild/WarriorsGuild.java @@ -10,7 +10,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Plugin; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java b/Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java index f091efbd4..67fbb13fe 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java +++ b/Server/src/main/java/core/game/content/activity/wguild/animator/AnimationRoom.java @@ -7,7 +7,7 @@ import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.ItemLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java b/Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java index 73a48d4fe..50b3eaa64 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java +++ b/Server/src/main/java/core/game/content/activity/wguild/barrel/BarrelRoom.java @@ -13,7 +13,7 @@ import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.lock.Lock; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.zone.MapZone; diff --git a/Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java b/Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java index 47b4ae155..c19811a5b 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java +++ b/Server/src/main/java/core/game/content/activity/wguild/catapult/CatapultRoom.java @@ -19,8 +19,8 @@ import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java b/Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java index 650069a1d..4ef808d96 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java +++ b/Server/src/main/java/core/game/content/activity/wguild/cyclopes/CyclopesRoom.java @@ -17,7 +17,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java b/Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java index ea11ce859..060e58927 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java +++ b/Server/src/main/java/core/game/content/activity/wguild/dummy/DummyRoom.java @@ -8,8 +8,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java b/Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java index 205bd63d2..8504dc572 100644 --- a/Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java +++ b/Server/src/main/java/core/game/content/activity/wguild/shot/ShotPutRoom.java @@ -16,7 +16,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java b/Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java index ebc79438b..df29bf950 100644 --- a/Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java +++ b/Server/src/main/java/core/game/content/cutscene/DBRCutscenePlugin.java @@ -19,8 +19,8 @@ import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; import core.game.node.item.ItemPlugin; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java b/Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java index b1d6d9968..b1adc0f89 100644 --- a/Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java +++ b/Server/src/main/java/core/game/content/cutscene/JulietCutscenePlugin.java @@ -4,8 +4,8 @@ import core.game.content.activity.ActivityPlugin; import core.game.content.activity.CutscenePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/content/cutscene/OrganCutScene.java b/Server/src/main/java/core/game/content/cutscene/OrganCutScene.java index dff8c44ab..61427a5c5 100644 --- a/Server/src/main/java/core/game/content/cutscene/OrganCutScene.java +++ b/Server/src/main/java/core/game/content/cutscene/OrganCutScene.java @@ -4,8 +4,8 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.content.activity.ActivityPlugin; import core.game.content.activity.CutscenePlugin; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java b/Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java index 3445632b1..3a15338f1 100644 --- a/Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/BorderGuardDialogue.java @@ -4,7 +4,7 @@ import core.game.content.global.action.DoorActionHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java b/Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java index 9c5d84581..bb18fd294 100644 --- a/Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/DoorPerilDialogue.java @@ -4,7 +4,7 @@ import core.game.content.global.action.DoorActionHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.plugin.Initializable; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; /** * Represents the door peril dialogue. diff --git a/Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java b/Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java index 8dc1e06f1..5c47866f5 100644 --- a/Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/EnchantTiaraDialogue.java @@ -7,8 +7,7 @@ import core.game.node.entity.skill.runecrafting.EnchantTiaraPulse; import core.game.node.entity.skill.runecrafting.Talisman; import core.game.interaction.NodeUsageEvent; import core.game.node.entity.player.Player; -import core.game.node.entity.player.link.RunScript; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import kotlin.Unit; /** diff --git a/Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java b/Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java index 2d56d3da3..aec85e33c 100644 --- a/Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/IgnatiusVulcanDialogue.java @@ -6,8 +6,8 @@ import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import rs09.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java b/Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java index 313253240..5e5a95020 100644 --- a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/MithrilSeedsDialogue.java @@ -2,8 +2,8 @@ package core.game.content.dialogue; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java b/Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java index 53040f544..a9a300f21 100644 --- a/Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java +++ b/Server/src/main/java/core/game/content/dialogue/MithrilSeedsPlugin.java @@ -5,8 +5,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java b/Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java index 4a0f7d4dc..d4c89c195 100644 --- a/Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/TraibornDialogue.java @@ -4,8 +4,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/global/GodType.java b/Server/src/main/java/core/game/content/global/GodType.java index 3221bbaee..e202c34e4 100644 --- a/Server/src/main/java/core/game/content/global/GodType.java +++ b/Server/src/main/java/core/game/content/global/GodType.java @@ -5,7 +5,7 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java b/Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java index 3f716136b..8e2d403fa 100644 --- a/Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java +++ b/Server/src/main/java/core/game/content/global/action/ClimbActionHandler.java @@ -5,7 +5,7 @@ import org.rs09.consts.Items; import core.game.node.entity.player.link.diary.DiaryType; import core.game.content.dialogue.DialoguePlugin; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/global/action/DoorActionHandler.java b/Server/src/main/java/core/game/content/global/action/DoorActionHandler.java index d175a1b62..47202eb02 100644 --- a/Server/src/main/java/core/game/content/global/action/DoorActionHandler.java +++ b/Server/src/main/java/core/game/content/global/action/DoorActionHandler.java @@ -1,13 +1,12 @@ package core.game.content.global.action; -import core.game.interaction.DestinationFlag; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.object.Constructed; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Constructed; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java b/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java index f71db693f..8415797b4 100644 --- a/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java +++ b/Server/src/main/java/core/game/content/holiday/christmas/ChristmasEvent.java @@ -30,8 +30,8 @@ import core.game.node.entity.player.link.TeleportManager.TeleportType; import core.game.node.entity.player.link.emote.Emotes; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java b/Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java index e97188198..ad87fe745 100644 --- a/Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java +++ b/Server/src/main/java/core/game/content/holiday/halloween/DeathMansionEvent.java @@ -33,7 +33,7 @@ import core.game.node.entity.player.link.emote.Emotes; import core.game.node.entity.player.link.request.RequestType; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/content/quest/PluginInteractionManager.java b/Server/src/main/java/core/game/content/quest/PluginInteractionManager.java index 92c23ab8c..727363b11 100644 --- a/Server/src/main/java/core/game/content/quest/PluginInteractionManager.java +++ b/Server/src/main/java/core/game/content/quest/PluginInteractionManager.java @@ -5,7 +5,7 @@ import core.game.interaction.Option; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import java.util.HashMap; diff --git a/Server/src/main/java/core/game/content/quest/free/ImpCatcher.java b/Server/src/main/java/core/game/content/quest/free/ImpCatcher.java index f84846c1f..8bc3e9b55 100644 --- a/Server/src/main/java/core/game/content/quest/free/ImpCatcher.java +++ b/Server/src/main/java/core/game/content/quest/free/ImpCatcher.java @@ -5,8 +5,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.plugin.Initializable; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java b/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java index 708aaaeb0..3311d3adb 100644 --- a/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/blackknightsfortress/BKFortressPlugin.java @@ -8,7 +8,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java b/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java index d088f8640..6de56ef71 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java +++ b/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerCutscene.java @@ -13,8 +13,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java b/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java index 315252acd..8405a488a 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/demonslayer/DemonSlayerPlugin.java @@ -9,8 +9,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java b/Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java index f742ca12e..db54f8923 100644 --- a/Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java +++ b/Server/src/main/java/core/game/content/quest/free/demonslayer/TraibornDialogue.java @@ -6,8 +6,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java b/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java index 2ca3f80cb..439f10329 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java +++ b/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayer.java @@ -6,7 +6,7 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java b/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java index cc8d30721..415cbfb56 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/dragonslayer/DragonSlayerPlugin.java @@ -15,13 +15,12 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.game.interaction.InteractionListeners; import java.util.List; diff --git a/Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java b/Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java index 8a8376c1c..c8f108ff2 100644 --- a/Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java +++ b/Server/src/main/java/core/game/content/quest/free/dragonslayer/ElvargNPC.java @@ -12,8 +12,8 @@ import core.game.node.entity.impl.Animator.Priority; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java b/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java index 7b9e93bb6..807c401af 100644 --- a/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/goblindiplomacy/GoblinDiplomacyPlugin.java @@ -9,7 +9,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.world.GameWorld; import core.plugin.Plugin; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java b/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java index 10e7e3638..c609db1e3 100644 --- a/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/piratestreasure/PiratesTreasurePlugin.java @@ -12,7 +12,7 @@ import core.game.node.entity.player.link.HintIconManager; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java b/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java index 5691ae5d4..146b02a1a 100644 --- a/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/princealirescue/PrinceAliRescuePlugin.java @@ -8,7 +8,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.world.GameWorld; import core.game.world.map.Location; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java b/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java index 501cac1b1..388ebc9cb 100644 --- a/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/shieldofarrav/ShieldArravPlugin.java @@ -13,8 +13,8 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java b/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java index 508bc9222..61f9b54de 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java +++ b/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostPlugin.java @@ -10,8 +10,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java b/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java index e5174002e..325e30e97 100644 --- a/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java +++ b/Server/src/main/java/core/game/content/quest/free/therestlessghost/RestlessGhostSkull.java @@ -3,7 +3,7 @@ package core.game.content.quest.free.therestlessghost; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java b/Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java index 645bd4467..164c0a7bd 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java +++ b/Server/src/main/java/core/game/content/quest/members/fishingcontest/GarlicPipeInteraction.java @@ -5,7 +5,7 @@ import core.game.interaction.NodeUsageEvent; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java b/Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java index 4926b1fec..360238047 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java +++ b/Server/src/main/java/core/game/content/quest/members/fishingcontest/StairInteraction.java @@ -4,7 +4,7 @@ import core.game.interaction.MovementPulse; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import core.game.content.quest.PluginInteraction; diff --git a/Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java b/Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java index 000061652..f64cddca9 100644 --- a/Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java +++ b/Server/src/main/java/core/game/content/quest/members/fishingcontest/VineInteraction.java @@ -3,7 +3,7 @@ package core.game.content.quest.members.fishingcontest; import core.game.interaction.MovementPulse; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java b/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java index c0793b74e..92a012675 100644 --- a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java +++ b/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotion.java @@ -5,8 +5,8 @@ import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.herblore.Herbs; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java b/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java index 2b54ff4c5..d8d4bf7a5 100644 --- a/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/junglepotion/JunglePotionPlugin.java @@ -7,8 +7,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/lostcity/LostCityPlugin.java b/Server/src/main/java/core/game/content/quest/members/lostcity/LostCityPlugin.java index 543372b47..d26823730 100644 --- a/Server/src/main/java/core/game/content/quest/members/lostcity/LostCityPlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/lostcity/LostCityPlugin.java @@ -13,7 +13,7 @@ import core.game.node.entity.player.link.quest.Quest; import core.game.node.entity.skill.gather.GatheringSkillPulse; import core.game.node.entity.skill.gather.SkillingTool; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java b/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java index b44270cce..b026b7195 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/merlinscrystal/CrateCutscenePlugin.java @@ -5,8 +5,8 @@ import core.game.content.activity.CutscenePlugin; import core.game.content.dialogue.DialoguePlugin; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java b/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java index ae19b6753..431d99244 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalOptionPlugin.java @@ -6,7 +6,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java b/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java index b5a5ca2fc..af194ccbc 100644 --- a/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/merlinscrystal/MerlinCrystalPlugin.java @@ -20,8 +20,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java b/Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java index 04b139cd9..acca54416 100644 --- a/Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java +++ b/Server/src/main/java/core/game/content/quest/members/sheepherder/IncineratorHandler.java @@ -5,7 +5,7 @@ import core.game.interaction.MovementPulse; import core.game.interaction.NodeUsageEvent; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java b/Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java index 486496a83..20ea36f0d 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java +++ b/Server/src/main/java/core/game/content/quest/members/thetouristrap/BedabinNomadDialogue.java @@ -4,8 +4,8 @@ import core.game.content.dialogue.DialoguePlugin; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java b/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java index 7e25f0095..a87caed01 100644 --- a/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/thetouristrap/TouristTrapPlugin.java @@ -23,8 +23,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java b/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java index 6706df812..3af50ab50 100644 --- a/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/waterfallquest/WaterfallPlugin.java @@ -19,8 +19,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java b/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java index 96108526a..e26b29980 100644 --- a/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java +++ b/Server/src/main/java/core/game/content/quest/members/whatliesbelow/WLBelowCutscene.java @@ -9,8 +9,8 @@ import core.game.node.entity.Entity; import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java b/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java index 823d634ad..e781d6403 100644 --- a/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java +++ b/Server/src/main/java/core/game/content/quest/members/witchshouse/WitchsHousePlugin.java @@ -11,10 +11,8 @@ import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.item.GroundItem; -import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialIslandPlugin.java b/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialIslandPlugin.java index ca052868f..cb9b52f6a 100644 --- a/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialIslandPlugin.java +++ b/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialIslandPlugin.java @@ -9,7 +9,7 @@ import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialStage.java b/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialStage.java index 382954f98..3fdf4f662 100644 --- a/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialStage.java +++ b/Server/src/main/java/core/game/content/quest/tutorials/tutorialisland/TutorialStage.java @@ -4,7 +4,7 @@ import core.game.component.Component; import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.HintIconManager; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java b/Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java index 409ced2bb..db69d4241 100644 --- a/Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java +++ b/Server/src/main/java/core/game/content/zone/ChaosTunnelZone.java @@ -12,7 +12,7 @@ import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import org.json.simple.JSONObject; import rs09.ServerStore; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java b/Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java index 22b603758..68efb361a 100644 --- a/Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java +++ b/Server/src/main/java/core/game/content/zone/YanilleAgilityDungeon.java @@ -13,8 +13,8 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.player.Player; import core.game.node.entity.state.EntityState; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java b/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java index 95f8d1141..a8d6ed7d4 100644 --- a/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java +++ b/Server/src/main/java/core/game/content/zone/phasmatys/PhasmatysZone.java @@ -10,8 +10,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.Direction; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java b/Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java index 1f55183c6..e6837adfb 100644 --- a/Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java +++ b/Server/src/main/java/core/game/content/zone/rellekka/RellekkaZone.java @@ -1,8 +1,6 @@ package core.game.content.zone.rellekka; -import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; -import core.game.component.Component; import core.plugin.Initializable; import core.game.node.entity.skill.agility.AgilityHandler; import core.game.interaction.Option; @@ -12,11 +10,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.system.task.LocationLogoutTask; -import core.game.system.task.LogoutTask; -import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java b/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java index 6a3bbf6f0..02a44add7 100644 --- a/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java +++ b/Server/src/main/java/core/game/content/zone/wbisland/WaterBirthDungeonZone.java @@ -17,7 +17,7 @@ import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/DestinationFlag.java b/Server/src/main/java/core/game/interaction/DestinationFlag.java index 9be1bacbc..cbd44f039 100644 --- a/Server/src/main/java/core/game/interaction/DestinationFlag.java +++ b/Server/src/main/java/core/game/interaction/DestinationFlag.java @@ -3,7 +3,7 @@ package core.game.interaction; import core.game.content.global.action.DoorActionHandler; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/interaction/Interaction.java b/Server/src/main/java/core/game/interaction/Interaction.java index 7fa46b7ff..a43caa0d8 100644 --- a/Server/src/main/java/core/game/interaction/Interaction.java +++ b/Server/src/main/java/core/game/interaction/Interaction.java @@ -5,7 +5,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.update.flag.player.FaceLocationFlag; import core.net.packet.PacketRepository; diff --git a/Server/src/main/java/core/game/interaction/Option.java b/Server/src/main/java/core/game/interaction/Option.java index d3b42ed79..37b85c9ba 100644 --- a/Server/src/main/java/core/game/interaction/Option.java +++ b/Server/src/main/java/core/game/interaction/Option.java @@ -6,7 +6,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; /** * Represents an Interaction option. diff --git a/Server/src/main/java/core/game/interaction/UseWithHandler.java b/Server/src/main/java/core/game/interaction/UseWithHandler.java index 43c1d4220..0af44418f 100644 --- a/Server/src/main/java/core/game/interaction/UseWithHandler.java +++ b/Server/src/main/java/core/game/interaction/UseWithHandler.java @@ -5,7 +5,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import core.game.system.task.Pulse; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/BedabinPlugin.java b/Server/src/main/java/core/game/interaction/city/BedabinPlugin.java index 720d45702..22b9eb696 100644 --- a/Server/src/main/java/core/game/interaction/city/BedabinPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/BedabinPlugin.java @@ -6,8 +6,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java b/Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java index 65de24ea1..7c61fb7e3 100644 --- a/Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/BurthorpePlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java b/Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java index 03c6a26d1..8503dc735 100644 --- a/Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/CamelotNodePlugin.java @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java b/Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java index ab34f6a9f..5ce18a965 100644 --- a/Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/DraynorManorPlugin.java @@ -10,8 +10,8 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java b/Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java index e1fb8e301..5408317e9 100644 --- a/Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/DraynorNodePlugin.java @@ -4,7 +4,7 @@ import core.cache.def.impl.NPCDefinition; import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.SceneryBuilder; import core.game.content.activity.ActivityManager; import core.game.content.activity.ActivityPlugin; import core.game.content.activity.CutscenePlugin; @@ -14,7 +14,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java b/Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java index 382540d62..3fcc2aef5 100644 --- a/Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/EdgevilleNodePlugin.java @@ -5,8 +5,8 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java b/Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java index 7a07be6b0..9e2bd9c48 100644 --- a/Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/FaladorNodePlugin.java @@ -13,8 +13,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java b/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java index 6819e4751..88116c5b6 100644 --- a/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/GnomeStrongholdPlugin.java @@ -7,8 +7,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.path.Pathfinder; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java b/Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java index a5960cfa7..8c095a871 100644 --- a/Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/HamHideoutPlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java b/Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java index 5893c1868..b8abc70c5 100644 --- a/Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/KaramajaOptionPlugin.java @@ -16,8 +16,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import rs09.game.world.repository.Repository; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java b/Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java index bc4247ea7..c705175af 100644 --- a/Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/LumbridgeNodePlugin.java @@ -14,7 +14,7 @@ import core.game.node.entity.combat.equipment.WeaponInterface; import core.game.node.entity.impl.Projectile; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java b/Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java index a9b728140..299dcb2a7 100644 --- a/Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/MonasteryPlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java b/Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java index ee072e70f..4bf051ea8 100644 --- a/Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/PortSarimPlugin.java @@ -7,7 +7,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/SophanemPlugin.java b/Server/src/main/java/core/game/interaction/city/SophanemPlugin.java index d35c8a363..4328b221c 100644 --- a/Server/src/main/java/core/game/interaction/city/SophanemPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/SophanemPlugin.java @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java b/Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java index 2bed35a9c..68dafd82e 100644 --- a/Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/TaverlyDungeonPlugin.java @@ -6,8 +6,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java b/Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java index 302858f2c..a91c057f4 100644 --- a/Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/TrollheimPlugin.java @@ -13,12 +13,11 @@ import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; -import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java b/Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java index aa0f284e2..ba088c5fd 100644 --- a/Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/TzhaarCityPlugin.java @@ -7,7 +7,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java b/Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java index 571075c02..57d9bad57 100644 --- a/Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java +++ b/Server/src/main/java/core/game/interaction/city/VarrockNodePlugin.java @@ -9,8 +9,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/city/WildernessPlugin.java b/Server/src/main/java/core/game/interaction/city/WildernessPlugin.java index 687212634..fe057d388 100644 --- a/Server/src/main/java/core/game/interaction/city/WildernessPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/WildernessPlugin.java @@ -7,7 +7,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java b/Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java index b45862c80..c4093c1a5 100644 --- a/Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/WizardTowerPlugin.java @@ -23,7 +23,7 @@ import core.game.node.entity.skill.Skills; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java b/Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java index 531836bbc..c9c40f062 100644 --- a/Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java +++ b/Server/src/main/java/core/game/interaction/city/ZanarisPlugin.java @@ -10,7 +10,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Plugin; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/interaction/city/lumbridge/FredChest.java b/Server/src/main/java/core/game/interaction/city/lumbridge/FredChest.java index 85810a801..d89ec93d2 100644 --- a/Server/src/main/java/core/game/interaction/city/lumbridge/FredChest.java +++ b/Server/src/main/java/core/game/interaction/city/lumbridge/FredChest.java @@ -4,8 +4,8 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java b/Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java index 26629dd58..632db87a3 100644 --- a/Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java +++ b/Server/src/main/java/core/game/interaction/item/SilverSicklePlugin.java @@ -5,14 +5,8 @@ import core.cache.def.impl.ItemDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; -import core.game.world.map.Location; -import core.game.world.map.Region; -import core.game.world.map.RegionManager; import core.plugin.Initializable; import core.plugin.Plugin; -import core.tools.RandomFunction; import rs09.game.content.quest.members.naturespirit.NSUtils; /** diff --git a/Server/src/main/java/core/game/interaction/item/withitem/ChestKeyPlugin.java b/Server/src/main/java/core/game/interaction/item/withitem/ChestKeyPlugin.java index 1f83be6c2..c3bb454f3 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/ChestKeyPlugin.java +++ b/Server/src/main/java/core/game/interaction/item/withitem/ChestKeyPlugin.java @@ -4,8 +4,8 @@ import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java b/Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java index 9d2829285..30b90a001 100644 --- a/Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java +++ b/Server/src/main/java/core/game/interaction/item/withitem/ImpJarCreatePlugin.java @@ -4,7 +4,7 @@ import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/item/withobject/GWDEntranceRopeUsage.java b/Server/src/main/java/core/game/interaction/item/withobject/GWDEntranceRopeUsage.java index 620f456c0..2a5a99e46 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/GWDEntranceRopeUsage.java +++ b/Server/src/main/java/core/game/interaction/item/withobject/GWDEntranceRopeUsage.java @@ -2,7 +2,7 @@ package core.game.interaction.item.withobject; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java b/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java index 5b7cde83e..0e712f0f0 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java +++ b/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java @@ -7,7 +7,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java b/Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java index e62516b42..8502523b5 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java +++ b/Server/src/main/java/core/game/interaction/item/withobject/SmithingPlugin.java @@ -10,7 +10,7 @@ import core.game.interaction.UseWithHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Plugin; import core.plugin.Initializable; import rs09.game.node.entity.skill.skillcapeperks.SkillcapePerks; diff --git a/Server/src/main/java/core/game/interaction/item/withobject/WaterSourcePlugin.java b/Server/src/main/java/core/game/interaction/item/withobject/WaterSourcePlugin.java index 9d9a44dad..546b1afea 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/WaterSourcePlugin.java +++ b/Server/src/main/java/core/game/interaction/item/withobject/WaterSourcePlugin.java @@ -8,11 +8,10 @@ import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; -import rs09.game.system.SystemLogger; /** * Represents the plugin used to fill a bucket. diff --git a/Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java b/Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java index 021840af1..3b2c0fd76 100644 --- a/Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java +++ b/Server/src/main/java/core/game/interaction/npc/BurthorpeOptionPlugin.java @@ -7,7 +7,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java b/Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java index ea914a132..0700cbd80 100644 --- a/Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java +++ b/Server/src/main/java/core/game/interaction/npc/SpiritKyattOptionPlugin.java @@ -6,8 +6,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java b/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java index 69d92e357..d4e3ee2a0 100644 --- a/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java +++ b/Server/src/main/java/core/game/interaction/npc/sorceress_app/SorceressApprenticePlugin.java @@ -7,7 +7,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/BankingPlugin.java b/Server/src/main/java/core/game/interaction/object/BankingPlugin.java index 71e3914b5..d72498471 100644 --- a/Server/src/main/java/core/game/interaction/object/BankingPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/BankingPlugin.java @@ -19,10 +19,9 @@ import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.IronmanMode; -import core.game.node.entity.player.link.RunScript; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Direction; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java b/Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java index 66a0c1a89..210bc20ab 100644 --- a/Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java +++ b/Server/src/main/java/core/game/interaction/object/BarrowsTunnelShortcut.java @@ -6,7 +6,7 @@ import core.game.content.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java b/Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java index a5c2f5580..b9336f110 100644 --- a/Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/BrassKeyDoorPlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java b/Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java index 6ff0dacb7..cf7df65f9 100644 --- a/Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ChampionsArenaPlugin.java @@ -5,7 +5,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.java b/Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.java index be987496e..46df975ee 100644 --- a/Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.java +++ b/Server/src/main/java/core/game/interaction/object/ChampionsGuildDoor.java @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java b/Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java index bdeedbc84..d3793bd6b 100644 --- a/Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ChefGuildDoorPlugin.java @@ -8,7 +8,7 @@ import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java b/Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java index 578bcb362..efb6160e6 100644 --- a/Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/CowMilkingPlugin.java @@ -7,7 +7,7 @@ import core.game.interaction.UseWithHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/CulinomancerChestPliugin.java b/Server/src/main/java/core/game/interaction/object/CulinomancerChestPliugin.java index 32314daa3..fa25b5715 100644 --- a/Server/src/main/java/core/game/interaction/object/CulinomancerChestPliugin.java +++ b/Server/src/main/java/core/game/interaction/object/CulinomancerChestPliugin.java @@ -4,8 +4,8 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java b/Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java index ced526848..d57aa9ece 100644 --- a/Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/DoorManagingPlugin.java @@ -5,8 +5,8 @@ import core.game.content.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java b/Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java index eedc6f991..f8431a5e5 100644 --- a/Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/DropPartyLeverOptionPlugin.java @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java b/Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java index b7692f3d0..63d6eb349 100644 --- a/Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ErnestTheChickenPlugin.java @@ -10,8 +10,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java b/Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java index df18bdf0c..551f64776 100644 --- a/Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/FieldPickingPlugin.java @@ -8,8 +8,8 @@ import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.java b/Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.java index 189b4bef8..6caff3adc 100644 --- a/Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.java +++ b/Server/src/main/java/core/game/interaction/object/GrandExchangeShortcut.java @@ -8,7 +8,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/HaystackPlugin.java b/Server/src/main/java/core/game/interaction/object/HaystackPlugin.java index d5c7871fc..830fa5053 100644 --- a/Server/src/main/java/core/game/interaction/object/HaystackPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/HaystackPlugin.java @@ -7,7 +7,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java b/Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java index 1f65fe92c..0e19af875 100644 --- a/Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/JangerBerryPlugin.java @@ -8,8 +8,8 @@ import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java b/Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java index c2b90bbc9..15b7c22cd 100644 --- a/Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java +++ b/Server/src/main/java/core/game/interaction/object/KalphiteEntranceHandler.java @@ -6,8 +6,8 @@ import core.game.interaction.OptionHandler; import core.game.interaction.UseWithHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java b/Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java index 23dd000f6..86562b787 100644 --- a/Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/KhardianInteractionPlugin.java @@ -7,8 +7,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java b/Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java index 0eaee88fc..256330a7f 100644 --- a/Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/LadderManagingPlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java b/Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java index a361da272..0282bca1d 100644 --- a/Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/LavaMazePlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java b/Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java index 42956e250..b568be5c8 100644 --- a/Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/LumbridgeBasementPlugin.java @@ -10,8 +10,8 @@ import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.npc.AbstractNPC; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java b/Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java index c0aaeb545..08f4e568e 100644 --- a/Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/LumbridgeSwampHolePlugin.java @@ -7,8 +7,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java b/Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java index 47f237a90..722bcd31f 100644 --- a/Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/MuseumGatePlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java b/Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java index 20416bd8c..54530ad20 100644 --- a/Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/PortsObjectPlugin.java @@ -5,7 +5,7 @@ import core.game.content.global.action.ClimbActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import rs09.game.world.repository.Repository; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java b/Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java index ba1b8d79f..03e4f027d 100644 --- a/Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/PriestInPerilOptionPlugin.java @@ -10,7 +10,7 @@ import core.game.node.entity.combat.CombatStyle; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/ProspectOrePlugin.java b/Server/src/main/java/core/game/interaction/object/ProspectOrePlugin.java index 80704ee7d..d2fc96923 100644 --- a/Server/src/main/java/core/game/interaction/object/ProspectOrePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ProspectOrePlugin.java @@ -9,7 +9,7 @@ import core.game.node.entity.skill.gather.SkillingResource; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java b/Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java index 758b342e1..d00c330dc 100644 --- a/Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/PyreSitePlugin.java @@ -14,8 +14,8 @@ import core.game.node.entity.skill.firemaking.Log; import core.game.node.entity.skill.gather.SkillingTool; import core.game.node.item.ChanceItem; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java b/Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java index 0248ef077..71e2e61af 100644 --- a/Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ReadSignPostPlugin.java @@ -6,7 +6,7 @@ import core.game.component.Component; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.net.packet.PacketRepository; import core.net.packet.context.MinimapStateContext; import core.net.packet.out.MinimapState; diff --git a/Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java b/Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java index 31a7ff280..ce7b031da 100644 --- a/Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/RedberryBushPlugin.java @@ -5,8 +5,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java b/Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java index 05acef473..8740ef9a3 100644 --- a/Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/RomeoQuestPlugin.java @@ -5,8 +5,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java b/Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java index f99988861..68511467e 100644 --- a/Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java +++ b/Server/src/main/java/core/game/interaction/object/RuneCraftingGuildObjects.java @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java b/Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java index 61dd5a65a..e308a0fd2 100644 --- a/Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ShantayPassPlugin.java @@ -12,7 +12,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java b/Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java index 252afe650..d272cb9c0 100644 --- a/Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/SinclairFlourBarrelPlugin.java @@ -9,7 +9,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java b/Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java index 5b037a3fd..6824d7f93 100644 --- a/Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/SlashWebPlugin.java @@ -13,8 +13,8 @@ import core.game.node.entity.combat.equipment.WeaponInterface.WeaponInterfaces; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.RandomFunction; diff --git a/Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java b/Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java index 6ca480bad..7323331f6 100644 --- a/Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/ThievingGuidePlugin.java @@ -9,8 +9,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.game.node.item.ChanceItem; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java b/Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java index 6381cf9e0..a3fd99706 100644 --- a/Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/TollGateOptionPlugin.java @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.world.repository.Repository; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java b/Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java index aa18e2eec..e9fe41fb3 100644 --- a/Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/VampireSlayerPlugin.java @@ -7,7 +7,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java b/Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java index d300809dc..bb7330025 100644 --- a/Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/WildernessLeverPlugin.java @@ -9,8 +9,8 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager; import core.game.node.entity.player.link.audio.Audio; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java b/Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java index 82a481ea0..75ea82f6e 100644 --- a/Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/WildernessObeliskPlugin.java @@ -5,8 +5,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.TeleportManager.TeleportType; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java b/Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java index 4ea80da36..00939ab60 100644 --- a/Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/WydinDoorPlugin.java @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java b/Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java index 1c39b27f1..519b7c981 100644 --- a/Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java +++ b/Server/src/main/java/core/game/interaction/object/dmc/DMCHandler.java @@ -8,8 +8,8 @@ import core.game.node.entity.impl.Projectile; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt b/Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt index b76395aed..b79512f50 100644 --- a/Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt +++ b/Server/src/main/java/core/game/interaction/object/sorceress/GardenObjectsPlugin.kt @@ -12,7 +12,7 @@ import core.game.content.dialogue.FacialExpression import core.game.interaction.NodeUsageEvent import core.game.interaction.UseWithHandler import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.quest.Quest diff --git a/Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java b/Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java index 95c0281d9..d897c0ec0 100644 --- a/Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java +++ b/Server/src/main/java/core/game/interaction/object/sorceress/SorceressGardenObject.java @@ -6,7 +6,7 @@ import core.game.node.entity.skill.Skills; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java b/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java index 0a755ea24..e31f7604f 100644 --- a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java +++ b/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessDitchPlugin.java @@ -6,7 +6,7 @@ import core.game.interaction.MovementPulse; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java b/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java index 3202dfd7d..9e52435a4 100644 --- a/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java +++ b/Server/src/main/java/core/game/interaction/object/wildyditch/WildernessInterfacePlugin.java @@ -6,7 +6,7 @@ import core.game.component.ComponentPlugin; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/Node.java b/Server/src/main/java/core/game/node/Node.java index 33b4aabd0..493ec9239 100644 --- a/Server/src/main/java/core/game/node/Node.java +++ b/Server/src/main/java/core/game/node/Node.java @@ -5,7 +5,7 @@ import core.game.interaction.Interaction; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.tools.StringUtils; diff --git a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java b/Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java index 7d1df6b77..3a394d3ea 100644 --- a/Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java +++ b/Server/src/main/java/core/game/node/entity/npc/city/sophanem/WallShortcut.java @@ -7,7 +7,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java b/Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java index ace957e93..aadf2cdbc 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/familiar/BeaverNPC.java @@ -7,7 +7,7 @@ import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java b/Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java index ef5696ca6..4de682105 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/familiar/CompostMoundNPC.java @@ -12,7 +12,7 @@ import core.game.node.entity.skill.summoning.familiar.Familiar; import core.game.node.entity.skill.summoning.familiar.FamiliarSpecial; import core.game.node.entity.skill.summoning.familiar.Forager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java b/Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java index 315b0366c..84dd26460 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/familiar/DesertWyrmNPC.java @@ -20,7 +20,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java b/Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java index 835c9f4ab..7b64dc9d4 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/familiar/ForgeRegentNPC.java @@ -6,8 +6,8 @@ import core.game.interaction.UseWithHandler; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java b/Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java index 9f41ae7f8..da1335864 100644 --- a/Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/familiar/PyreLordNPC.java @@ -15,8 +15,8 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java b/Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java index 3fe12fc2f..013071479 100644 --- a/Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java +++ b/Server/src/main/java/core/game/node/entity/npc/other/ArmourSuitNPC.java @@ -1,8 +1,8 @@ package core.game.node.entity.npc.other; import core.game.node.entity.npc.AbstractNPC; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java b/Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java index 3b9076515..ec8e26a23 100644 --- a/Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java +++ b/Server/src/main/java/core/game/node/entity/player/link/PacketDispatch.java @@ -3,7 +3,7 @@ package core.game.node.entity.player.link; import rs09.game.Varp; import core.game.content.quest.tutorials.tutorialisland.TutorialSession; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java index acd426b38..3adb63a89 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/AgilityShortcut.java @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java b/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java index be5b658c6..e11430740 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenArena.java @@ -11,8 +11,8 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.MovementHook; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java b/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java index 71aa75198..138941e50 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/brimhaven/BrimhavenCourse.java @@ -8,7 +8,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java b/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java index 81d56efef..9dbf026c7 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/AgilityPyramidCourse.java @@ -11,7 +11,7 @@ import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java b/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java index 15f6f0990..82960b3da 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/pyramid/RollingBlock.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.agility.pyramid; import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.MovementHook; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java index e6d5bbb82..866a50f37 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/AlKharidPitShortcut.java @@ -5,7 +5,7 @@ import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java index f6f811718..adf8651ec 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/BarSqueezeShortcut.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.agility.shortcuts; import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java index 716ace6e2..c43893d5c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/CrumblingWallShortcut.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.agility.shortcuts; import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java index 79a104842..072d3f0e6 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/FenceJumpShortcut.java @@ -5,7 +5,7 @@ import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java index 515912757..b5658cc8a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/KaramjaGrapple.java @@ -8,7 +8,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java index 348ccd944..2fbd925ad 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/LogBalanceShortcut.java @@ -6,7 +6,7 @@ import core.game.node.entity.skill.agility.AgilityHandler; import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java index 5ab3fcd23..b1a1014db 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/MonkeyBarShortcut.java @@ -6,7 +6,7 @@ import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.LocationLogoutTask; import core.game.system.task.LogoutTask; import core.game.system.task.Pulse; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java index 0906bcdbc..d57f8116d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/RopeSwing.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.agility.shortcuts; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java index 05fd4e659..2efb7745d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StileShortcut.java @@ -6,7 +6,7 @@ import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.interaction.MovementPulse; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java index 4fad95805..9a21ec827 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/StrangeFloorShortcut.java @@ -7,7 +7,7 @@ import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java index 00a079cd2..445854d4e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/TunnelShortcut.java @@ -5,7 +5,7 @@ import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java index 70749edc6..5128206b3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/WaterOrbGrapple.java @@ -8,8 +8,8 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java index b9a16714d..1d057e5b8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java +++ b/Server/src/main/java/core/game/node/entity/skill/agility/shortcuts/ZanarisSqueezeShortcut.java @@ -5,7 +5,7 @@ import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.agility.AgilityShortcut; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java index d9b648347..63cf6aed3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/BuildOptionPlugin.java @@ -8,7 +8,7 @@ import core.game.content.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import rs09.game.node.entity.skill.construction.Hotspot; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java b/Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java index ef029de68..2b34c49eb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/BuildRoomDialogue.java @@ -3,8 +3,8 @@ package core.game.node.entity.skill.construction; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.map.RegionChunk; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java b/Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java index 0a1efea84..5399e0bbf 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/BuildingUtils.java @@ -5,8 +5,8 @@ import core.game.component.Component; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.BuildRegionChunk; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java b/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java index 425d51927..33ee06a11 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/ConstructionInterface.java @@ -7,7 +7,7 @@ import core.game.component.ComponentDefinition; import core.game.component.ComponentPlugin; import core.game.node.entity.player.Player; import core.game.node.entity.skill.Skills; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import rs09.game.node.entity.skill.construction.Hotspot; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java b/Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java index 34502c90d..792e10bd0 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/Decoration.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.construction; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import rs09.game.node.entity.skill.construction.Hotspot; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java b/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java index 5629301fa..017e43efb 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/HouseManager.java @@ -8,7 +8,7 @@ import core.game.content.dialogue.FacialExpression; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.entity.skill.Skills; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.*; import core.game.world.map.build.DynamicRegion; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java index 433236eb2..7dd543a29 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/PortalOptionPlugin.java @@ -8,7 +8,7 @@ import core.game.content.dialogue.DialoguePlugin; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import core.plugin.PluginManifest; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/Room.java b/Server/src/main/java/core/game/node/entity/skill/construction/Room.java index ac800fda8..df8782295 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/Room.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/Room.java @@ -2,11 +2,10 @@ package core.game.node.entity.skill.construction; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.*; import rs09.game.node.entity.skill.construction.Hotspot; -import rs09.game.system.SystemLogger; /** * Represents a room. diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/RoomBuilder.java b/Server/src/main/java/core/game/node/entity/skill/construction/RoomBuilder.java index e3b07327d..3bb0e5bc4 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/RoomBuilder.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/RoomBuilder.java @@ -4,8 +4,8 @@ import core.cache.def.impl.SceneryDefinition; import core.game.component.Component; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.BuildRegionChunk; import core.game.world.map.Direction; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java b/Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java index 85e529edd..66dfb6880 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/RoomProperties.java @@ -1,7 +1,7 @@ package core.game.node.entity.skill.construction; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Region; import core.game.world.map.RegionChunk; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java index e28be9da2..5ea2e14fd 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/BeerBarrelPlugin.java @@ -4,7 +4,7 @@ import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java index 3b4978d88..d38840226 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/ChairBenchPlugin.java @@ -6,7 +6,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.impl.ForceMovement; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java index 83487d3cb..4cbc250d2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/FireplacePlugin.java @@ -8,8 +8,8 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java index be7f2c6ad..d204bdcbc 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/StaircasePlugin.java @@ -10,8 +10,8 @@ import core.game.node.entity.skill.construction.BuildingUtils; import core.game.node.entity.skill.construction.HouseManager; import core.game.node.entity.skill.construction.Room; import core.game.node.entity.skill.construction.RoomProperties; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.Direction; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java index 9fbb07004..abc594914 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/bedroom/ClockPlugin.java @@ -5,7 +5,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java index 28139bea9..3a8ee87aa 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/chapel/BoneOfferPlugin.java @@ -10,9 +10,8 @@ import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.audio.Audio; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; -import rs09.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java index 2f994df57..efe2e9f8e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/kitchen/BeerBarrelPlugin.java @@ -5,7 +5,7 @@ import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java index ad079ebf1..ddc1d3f2d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/portalchamber/PortalChamberPlugin.java @@ -10,7 +10,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.skill.construction.Decoration; import core.game.node.entity.skill.runecrafting.Rune; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java index c4a76b3e5..c75439dcf 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ClockmakersBenchPlugin.java @@ -12,7 +12,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java index adf36c31e..e12b7f104 100644 --- a/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/construction/decoration/workshop/ToolsPlugin.java @@ -10,7 +10,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Plugin; import rs09.plugin.PluginManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt b/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt index f3537f36b..4acf52ded 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt +++ b/Server/src/main/java/core/game/node/entity/skill/cooking/CookingRewrite.kt @@ -1,6 +1,6 @@ package core.game.node.entity.skill.cooking -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.item.Item import org.rs09.consts.Items diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java b/Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java index 323ef620c..632ee7f62 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/cooking/IntentionalBurnPulse.java @@ -2,7 +2,7 @@ package core.game.node.entity.skill.cooking; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; public class IntentionalBurnPulse extends StandardCookingPulse { int initial,product,amount; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java b/Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java index 9de2dcf92..f19b45265 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/cooking/PieCookingPulse.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.cooking; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; public class PieCookingPulse extends StandardCookingPulse { private Scenery object; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java b/Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java index 0f3926457..4d0bdd19c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/cooking/PizzaCookingPulse.java @@ -2,7 +2,7 @@ package core.game.node.entity.skill.cooking; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; public class PizzaCookingPulse extends StandardCookingPulse { Scenery object; diff --git a/Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java b/Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java index d07497a1e..976be2063 100644 --- a/Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/cooking/StandardCookingPulse.java @@ -10,7 +10,7 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.skill.Skills; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java b/Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java index b25fee8e2..40594940b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/crafting/WeaveOptionPlugin.java @@ -12,7 +12,7 @@ import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; import core.tools.StringUtils; diff --git a/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java b/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java index d078eb17d..e8dda160d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/firemaking/FireMakingPulse.java @@ -10,8 +10,8 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import rs09.game.world.GameWorld; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/GatheringSkillPulse.java b/Server/src/main/java/core/game/node/entity/skill/gather/GatheringSkillPulse.java index 9d95c2135..2d6d03b06 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/GatheringSkillPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/GatheringSkillPulse.java @@ -12,8 +12,8 @@ import core.game.node.entity.player.Player; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.tools.RandomFunction; import core.tools.StringUtils; diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java index beda21d8c..566d63ba8 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingNode.java @@ -273,6 +273,8 @@ public enum WoodcuttingNode { experience = 175.0; level = 60; rewardAmount = 40; + baseLow = 4; + baseHigh = 12.5; tierModLow = 2; tierModHigh = 6.25; break; diff --git a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java index 7d1319102..5fb6a2cf0 100644 --- a/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/gather/woodcutting/WoodcuttingSkillPulse.java @@ -14,8 +14,8 @@ import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.entity.skill.Skills; import core.game.node.entity.skill.gather.SkillingTool; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java b/Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java index b1daa96ff..97867a60a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/DeadfallSetting.java @@ -5,8 +5,8 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Direction; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java b/Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java index d55652b23..9b343f988 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/HunterManager.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.hunter; import core.game.node.entity.skill.Skills; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import java.util.ArrayList; import java.util.Iterator; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java b/Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java index b6137bad5..1bcc4e555 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/HunterPlugin.java @@ -17,7 +17,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java b/Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java index c19dc2788..157fe9e24 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/NetTrapSetting.java @@ -4,8 +4,8 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java index d528d6df2..6d308f379 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapCreatePulse.java @@ -6,8 +6,8 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java index e7b0fb288..1773e3e0b 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapDismantlePulse.java @@ -4,7 +4,7 @@ import core.game.content.global.SkillingPets; import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; /** * Handles the dismantling of a trap. diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java index 48181f4cc..c21cf0fda 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapSetting.java @@ -8,8 +8,8 @@ import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java index 626b94165..ccc0a930f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/TrapWrapper.java @@ -3,8 +3,8 @@ package core.game.node.entity.skill.hunter; import core.game.node.entity.skill.hunter.NetTrapSetting.NetTrap; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; diff --git a/Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java b/Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java index 259367a0a..daf56d261 100644 --- a/Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java +++ b/Server/src/main/java/core/game/node/entity/skill/hunter/Traps.java @@ -4,7 +4,7 @@ import core.game.node.Node; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java b/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java index c0241445e..7c1a514c2 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java +++ b/Server/src/main/java/core/game/node/entity/skill/magic/ChargeOrbSpells.java @@ -8,7 +8,7 @@ import core.game.node.entity.combat.equipment.SpellType; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/FertileSoilSpell.java b/Server/src/main/java/core/game/node/entity/skill/magic/lunar/FertileSoilSpell.java index 33dc7c1d6..cf578cd9f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/magic/lunar/FertileSoilSpell.java +++ b/Server/src/main/java/core/game/node/entity/skill/magic/lunar/FertileSoilSpell.java @@ -8,7 +8,7 @@ import core.game.node.entity.player.link.SpellBookManager.SpellBook; import core.game.node.entity.skill.magic.MagicSpell; import core.game.node.entity.skill.magic.Runes; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.context.Animation; import core.game.world.update.flag.context.Graphics; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java b/Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java index 41fb75ded..af7463cb5 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java +++ b/Server/src/main/java/core/game/node/entity/skill/runecrafting/Altar.java @@ -2,7 +2,7 @@ package core.game.node.entity.skill.runecrafting; import core.cache.def.impl.ItemDefinition; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; /** * Represents an altar an it's relative information(corresponding ruin, etc) diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java b/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java index a1c83515c..2b9c17a85 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/runecrafting/CombinationRunePlugin.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.runecrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java b/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java index 78a1c0b21..9e5b07a87 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/runecrafting/EnchantTiaraPlugin.java @@ -3,7 +3,7 @@ package core.game.node.entity.skill.runecrafting; import core.game.interaction.NodeUsageEvent; import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Plugin; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java b/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java index 3e9e94f2e..e92a01adf 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java +++ b/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuin.java @@ -2,7 +2,7 @@ package core.game.node.entity.skill.runecrafting; import core.game.container.impl.EquipmentContainer; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; /** diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java b/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java index 096284106..1a7795051 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/runecrafting/MysteriousRuinPlugin.java @@ -5,7 +5,7 @@ import core.game.interaction.UseWithHandler; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; import core.game.node.entity.player.link.diary.DiaryType; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java b/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java index 051d032fb..72e1a4d43 100644 --- a/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/runecrafting/RunecraftingPlugin.java @@ -11,7 +11,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.info.Rights; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import core.game.world.map.Location; import core.net.packet.PacketRepository; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java b/Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java index f1f060336..7f577e01d 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/slayer/FishingExplosivePlugin.java @@ -15,7 +15,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.HintIconManager; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java b/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java index a49c9d9d0..ffe1ac96c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerPlugin.java @@ -5,8 +5,8 @@ import core.game.content.global.action.DoorActionHandler; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java b/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java index 646ad36e1..292306344 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java +++ b/Server/src/main/java/core/game/node/entity/skill/slayer/SlayerTowerZone.java @@ -6,7 +6,7 @@ import core.game.interaction.Option; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.zone.MapZone; import core.game.world.map.zone.ZoneBorders; import core.game.world.map.zone.ZoneBuilder; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java b/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java index fb0e87776..2e12a707a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java +++ b/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/AncientCavern.java @@ -14,8 +14,8 @@ import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java b/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java index d9eeb3a88..d896511f3 100644 --- a/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java +++ b/Server/src/main/java/core/game/node/entity/skill/slayer/dungeon/FremennikDungeon.java @@ -8,7 +8,7 @@ import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Direction; diff --git a/Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java b/Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java index dab204861..9a8433b6a 100644 --- a/Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/smithing/FurnaceOptionPlugin.java @@ -12,7 +12,7 @@ import core.game.node.Node; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java b/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java index 94ec26e1f..34ae72382 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java +++ b/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningCreator.java @@ -6,7 +6,7 @@ import core.game.node.entity.skill.SkillPulse; import core.game.node.entity.skill.Skills; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java b/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java index 81a30ac11..ec155c05c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java +++ b/Server/src/main/java/core/game/node/entity/skill/summoning/SummoningTrainingRoom.java @@ -16,7 +16,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.quest.Quest; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java b/Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java index a6e826b84..408944d2e 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java +++ b/Server/src/main/java/core/game/node/entity/skill/thieving/PickableDoorHandler.java @@ -10,7 +10,7 @@ import core.game.node.entity.Entity; import core.game.node.entity.combat.ImpactHandler; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Direction; import core.game.world.map.Location; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java b/Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java index 4679a531b..9e5ddcf8c 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java +++ b/Server/src/main/java/core/game/node/entity/skill/thieving/Stall.java @@ -1,7 +1,7 @@ package core.game.node.entity.skill.thieving; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.tools.RandomFunction; import java.util.*; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java b/Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java index 02f150cd7..65a180905 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java +++ b/Server/src/main/java/core/game/node/entity/skill/thieving/StallThiefPulse.java @@ -6,8 +6,8 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.entity.player.link.diary.DiaryType; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import rs09.game.world.GameWorld; import core.game.world.map.Location; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java b/Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java index 7c5d2db15..8f99f1235 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/thieving/ThievableChestPlugin.java @@ -7,8 +7,8 @@ import core.game.node.Node; import core.game.node.entity.combat.ImpactHandler.HitsplatType; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; -import core.game.node.object.SceneryBuilder; +import core.game.node.scenery.Scenery; +import core.game.node.scenery.SceneryBuilder; import core.game.system.task.Pulse; import rs09.game.world.GameWorld; import core.game.world.update.flag.context.Animation; diff --git a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java b/Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java index aa385e2af..46eab307f 100644 --- a/Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java +++ b/Server/src/main/java/core/game/node/entity/skill/thieving/ThievingOptionPlugin.java @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition; import core.game.interaction.OptionHandler; import core.game.node.Node; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.plugin.Initializable; import core.plugin.Plugin; diff --git a/Server/src/main/java/core/game/node/object/Constructed.java b/Server/src/main/java/core/game/node/scenery/Constructed.java similarity index 98% rename from Server/src/main/java/core/game/node/object/Constructed.java rename to Server/src/main/java/core/game/node/scenery/Constructed.java index e17e79dcd..d0af7b26d 100644 --- a/Server/src/main/java/core/game/node/object/Constructed.java +++ b/Server/src/main/java/core/game/node/scenery/Constructed.java @@ -1,4 +1,4 @@ -package core.game.node.object; +package core.game.node.scenery; import core.game.node.item.Item; import core.game.world.map.Location; diff --git a/Server/src/main/java/core/game/node/object/Scenery.java b/Server/src/main/java/core/game/node/scenery/Scenery.java similarity index 99% rename from Server/src/main/java/core/game/node/object/Scenery.java rename to Server/src/main/java/core/game/node/scenery/Scenery.java index d85b51415..4493620ff 100644 --- a/Server/src/main/java/core/game/node/object/Scenery.java +++ b/Server/src/main/java/core/game/node/scenery/Scenery.java @@ -1,4 +1,4 @@ -package core.game.node.object; +package core.game.node.scenery; import core.cache.def.impl.VarbitDefinition; import core.cache.def.impl.SceneryDefinition; diff --git a/Server/src/main/java/core/game/node/object/SceneryBuilder.java b/Server/src/main/java/core/game/node/scenery/SceneryBuilder.java similarity index 99% rename from Server/src/main/java/core/game/node/object/SceneryBuilder.java rename to Server/src/main/java/core/game/node/scenery/SceneryBuilder.java index 02daf3dd5..4db5c619a 100644 --- a/Server/src/main/java/core/game/node/object/SceneryBuilder.java +++ b/Server/src/main/java/core/game/node/scenery/SceneryBuilder.java @@ -1,4 +1,4 @@ -package core.game.node.object; +package core.game.node.scenery; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; diff --git a/Server/src/main/java/core/game/world/map/BuildRegionChunk.java b/Server/src/main/java/core/game/world/map/BuildRegionChunk.java index 8a9eac3ef..197011b42 100644 --- a/Server/src/main/java/core/game/world/map/BuildRegionChunk.java +++ b/Server/src/main/java/core/game/world/map/BuildRegionChunk.java @@ -4,8 +4,8 @@ package core.game.world.map; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.Item; -import core.game.node.object.Constructed; -import core.game.node.object.Scenery; +import core.game.node.scenery.Constructed; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import core.game.world.map.build.LandscapeParser; import core.net.packet.IoBuffer; diff --git a/Server/src/main/java/core/game/world/map/RegionChunk.java b/Server/src/main/java/core/game/world/map/RegionChunk.java index f528f2527..4deaabbab 100644 --- a/Server/src/main/java/core/game/world/map/RegionChunk.java +++ b/Server/src/main/java/core/game/world/map/RegionChunk.java @@ -3,7 +3,7 @@ package core.game.world.map; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.system.SystemLogger; import core.game.world.map.build.DynamicRegion; import core.game.world.map.build.LandscapeParser; diff --git a/Server/src/main/java/core/game/world/map/RegionManager.kt b/Server/src/main/java/core/game/world/map/RegionManager.kt index eaf6e062d..1b3a9b0ba 100644 --- a/Server/src/main/java/core/game/world/map/RegionManager.kt +++ b/Server/src/main/java/core/game/world/map/RegionManager.kt @@ -2,7 +2,7 @@ package core.game.world.map import core.game.world.map.RegionManager import core.game.world.map.RegionPlane -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.Node import core.game.node.entity.Entity import core.game.node.entity.npc.NPC diff --git a/Server/src/main/java/core/game/world/map/RegionPlane.java b/Server/src/main/java/core/game/world/map/RegionPlane.java index ba4a56cbf..15b68bc03 100644 --- a/Server/src/main/java/core/game/world/map/RegionPlane.java +++ b/Server/src/main/java/core/game/world/map/RegionPlane.java @@ -5,7 +5,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.build.DynamicRegion; import core.game.world.map.build.RegionFlags; import core.game.world.update.flag.chunk.ItemUpdateFlag; diff --git a/Server/src/main/java/core/game/world/map/build/DynamicRegion.java b/Server/src/main/java/core/game/world/map/build/DynamicRegion.java index 48ae4f9c6..bbfef5458 100644 --- a/Server/src/main/java/core/game/world/map/build/DynamicRegion.java +++ b/Server/src/main/java/core/game/world/map/build/DynamicRegion.java @@ -5,7 +5,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.music.MusicZone; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.*; import core.game.world.map.zone.RegionZone; import core.game.world.map.zone.ZoneBorders; diff --git a/Server/src/main/java/core/game/world/map/build/LandscapeParser.java b/Server/src/main/java/core/game/world/map/build/LandscapeParser.java index 95734f9cf..703e3907b 100644 --- a/Server/src/main/java/core/game/world/map/build/LandscapeParser.java +++ b/Server/src/main/java/core/game/world/map/build/LandscapeParser.java @@ -2,7 +2,7 @@ package core.game.world.map.build; import core.cache.def.impl.SceneryDefinition; import core.cache.misc.buffer.ByteBufferUtils; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.Region; import core.game.world.map.RegionManager; diff --git a/Server/src/main/java/core/game/world/map/path/Pathfinder.java b/Server/src/main/java/core/game/world/map/path/Pathfinder.java index 28fe256ae..7d0a81d23 100644 --- a/Server/src/main/java/core/game/world/map/path/Pathfinder.java +++ b/Server/src/main/java/core/game/world/map/path/Pathfinder.java @@ -3,7 +3,7 @@ package core.game.world.map.path; import core.game.node.Node; import core.game.node.entity.Entity; import core.game.node.item.GroundItem; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.RegionManager; import rs09.game.world.map.path.SmartPathfinder; diff --git a/Server/src/main/java/core/game/world/objectparser/ObjectParser.java b/Server/src/main/java/core/game/world/objectparser/ObjectParser.java index ca6e0dc3a..bc143b336 100644 --- a/Server/src/main/java/core/game/world/objectparser/ObjectParser.java +++ b/Server/src/main/java/core/game/world/objectparser/ObjectParser.java @@ -1,7 +1,7 @@ package core.game.world.objectparser; import rs09.ServerConstants; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.world.GameWorld; import core.game.world.map.build.LandscapeParser; import core.plugin.Initializable; diff --git a/Server/src/main/java/core/game/world/update/flag/chunk/ObjectUpdateFlag.java b/Server/src/main/java/core/game/world/update/flag/chunk/ObjectUpdateFlag.java index 2b06271d7..5b1d4ee18 100644 --- a/Server/src/main/java/core/game/world/update/flag/chunk/ObjectUpdateFlag.java +++ b/Server/src/main/java/core/game/world/update/flag/chunk/ObjectUpdateFlag.java @@ -1,6 +1,6 @@ package core.game.world.update.flag.chunk; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.update.flag.UpdateFlag; import core.net.packet.IoBuffer; import core.net.packet.out.ClearScenery; diff --git a/Server/src/main/java/core/game/world/update/flag/context/Animation.java b/Server/src/main/java/core/game/world/update/flag/context/Animation.java index 712a76282..9c2c6e36b 100644 --- a/Server/src/main/java/core/game/world/update/flag/context/Animation.java +++ b/Server/src/main/java/core/game/world/update/flag/context/Animation.java @@ -2,7 +2,7 @@ package core.game.world.update.flag.context; import core.cache.def.impl.AnimationDefinition; import core.game.node.entity.impl.Animator.Priority; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; /** * Represents an animation. diff --git a/Server/src/main/java/core/game/world/update/flag/player/FaceLocationFlag.java b/Server/src/main/java/core/game/world/update/flag/player/FaceLocationFlag.java index 458ab7f5c..022d33a71 100644 --- a/Server/src/main/java/core/game/world/update/flag/player/FaceLocationFlag.java +++ b/Server/src/main/java/core/game/world/update/flag/player/FaceLocationFlag.java @@ -1,7 +1,7 @@ package core.game.world.update.flag.player; import core.game.node.Node; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.UpdateFlag; import core.net.packet.IoBuffer; diff --git a/Server/src/main/java/core/net/packet/context/BuildSceneryContext.java b/Server/src/main/java/core/net/packet/context/BuildSceneryContext.java index df37baa03..3fa8ff0e0 100644 --- a/Server/src/main/java/core/net/packet/context/BuildSceneryContext.java +++ b/Server/src/main/java/core/net/packet/context/BuildSceneryContext.java @@ -1,7 +1,7 @@ package core.net.packet.context; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.net.packet.Context; /** diff --git a/Server/src/main/java/core/net/packet/in/InteractionPacket.java b/Server/src/main/java/core/net/packet/in/InteractionPacket.java index 8973c4049..0b581e843 100644 --- a/Server/src/main/java/core/net/packet/in/InteractionPacket.java +++ b/Server/src/main/java/core/net/packet/in/InteractionPacket.java @@ -12,7 +12,7 @@ import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.GroundItem; import core.game.node.item.GroundItemManager; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.map.RegionManager; import core.net.packet.IncomingPacket; diff --git a/Server/src/main/java/core/net/packet/in/InterfaceUseOnPacket.java b/Server/src/main/java/core/net/packet/in/InterfaceUseOnPacket.java index 7e082c1a6..15197610f 100644 --- a/Server/src/main/java/core/net/packet/in/InterfaceUseOnPacket.java +++ b/Server/src/main/java/core/net/packet/in/InterfaceUseOnPacket.java @@ -10,7 +10,7 @@ import core.game.node.entity.player.Player; import core.game.node.entity.player.link.SpellBookManager; import core.game.node.item.GroundItemManager; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import rs09.game.node.entity.skill.magic.SpellListener; import rs09.game.node.entity.skill.magic.SpellListeners; import rs09.game.node.entity.skill.magic.SpellUtils; diff --git a/Server/src/main/java/core/net/packet/in/ItemActionPacket.java b/Server/src/main/java/core/net/packet/in/ItemActionPacket.java index 7d1b09f09..930309318 100644 --- a/Server/src/main/java/core/net/packet/in/ItemActionPacket.java +++ b/Server/src/main/java/core/net/packet/in/ItemActionPacket.java @@ -8,7 +8,7 @@ import core.game.interaction.UseWithHandler; import core.game.node.entity.npc.NPC; import core.game.node.entity.player.Player; import core.game.node.item.Item; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.RegionManager; import core.net.packet.IncomingPacket; import core.net.packet.IoBuffer; diff --git a/Server/src/main/java/core/net/packet/out/AnimateObjectPacket.java b/Server/src/main/java/core/net/packet/out/AnimateObjectPacket.java index db24d5dcf..27a891b7a 100644 --- a/Server/src/main/java/core/net/packet/out/AnimateObjectPacket.java +++ b/Server/src/main/java/core/net/packet/out/AnimateObjectPacket.java @@ -1,7 +1,7 @@ package core.net.packet.out; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.game.world.update.flag.context.Animation; import core.net.packet.IoBuffer; diff --git a/Server/src/main/java/core/net/packet/out/ClearScenery.java b/Server/src/main/java/core/net/packet/out/ClearScenery.java index a2767a070..3191df18e 100644 --- a/Server/src/main/java/core/net/packet/out/ClearScenery.java +++ b/Server/src/main/java/core/net/packet/out/ClearScenery.java @@ -1,7 +1,7 @@ package core.net.packet.out; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.net.packet.IoBuffer; import core.net.packet.OutgoingPacket; diff --git a/Server/src/main/java/core/net/packet/out/ConstructScenery.java b/Server/src/main/java/core/net/packet/out/ConstructScenery.java index 6f36f5010..654ce071c 100644 --- a/Server/src/main/java/core/net/packet/out/ConstructScenery.java +++ b/Server/src/main/java/core/net/packet/out/ConstructScenery.java @@ -1,7 +1,7 @@ package core.net.packet.out; import core.game.node.entity.player.Player; -import core.game.node.object.Scenery; +import core.game.node.scenery.Scenery; import core.game.world.map.Location; import core.net.packet.IoBuffer; import core.net.packet.OutgoingPacket; diff --git a/Server/src/main/kotlin/api/ContentAPI.kt b/Server/src/main/kotlin/api/ContentAPI.kt index dff42dfcd..61937a20e 100644 --- a/Server/src/main/kotlin/api/ContentAPI.kt +++ b/Server/src/main/kotlin/api/ContentAPI.kt @@ -6,8 +6,8 @@ import core.game.component.Component import core.game.content.dialogue.FacialExpression import core.game.content.global.action.SpecialLadders import core.game.node.Node -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.Entity import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.impl.Animator diff --git a/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt b/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt index 83672a5e2..1d2b13daf 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt +++ b/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt @@ -11,7 +11,7 @@ import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.interaction.Option import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.Entity import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt index 004aaad65..241394670 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt +++ b/Server/src/main/kotlin/rs09/game/ai/general/scriptrepository/Adventurer.kt @@ -2,7 +2,7 @@ package rs09.game.ai.general.scriptrepository import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.combat.CombatStyle import rs09.game.node.entity.combat.CombatSwingHandler import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt b/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt index 58c80d4f3..f0fb716dd 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt +++ b/Server/src/main/kotlin/rs09/game/content/activity/fishingtrawler/FishingTrawlerSession.kt @@ -1,8 +1,8 @@ package rs09.game.content.activity.fishingtrawler import core.game.component.Component -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.state.EntityState diff --git a/Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt b/Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt index 8d12de0c6..9c3dbc357 100644 --- a/Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt +++ b/Server/src/main/kotlin/rs09/game/content/activity/fog/FogInteractionHandler.kt @@ -4,7 +4,7 @@ import core.game.content.global.action.ClimbActionHandler import core.game.interaction.DestinationFlag import core.game.interaction.MovementPulse import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.plugin.Initializable import core.plugin.Plugin diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt b/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt index f250d441a..62552e026 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt +++ b/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt @@ -1,7 +1,7 @@ package rs09.game.content.global.worldevents.shootingstar -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.world.map.Location diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt b/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt index b51717e83..88d630eac 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt +++ b/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStarMiningPulse.kt @@ -2,7 +2,7 @@ package rs09.game.content.global.worldevents.shootingstar import api.ContentAPI import core.game.content.global.worldevents.shootingstar.ScoreboardManager -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.skill.SkillPulse import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt index 0f07c86e2..c301909bd 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt +++ b/Server/src/main/kotlin/rs09/game/content/quest/members/naturespirit/NSUtils.kt @@ -3,8 +3,8 @@ package rs09.game.content.quest.members.naturespirit import api.Container import api.ContentAPI import core.game.node.Node -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.system.task.Pulse diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt index 8b27b9a74..d2c781728 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt +++ b/Server/src/main/kotlin/rs09/game/content/quest/members/thefremenniktrials/TFTInteractionListeners.kt @@ -1,7 +1,7 @@ package rs09.game.content.quest.members.thefremenniktrials import core.game.content.dialogue.FacialExpression -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.impl.Animator import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/thelostcity/DramenTreeListener.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/thelostcity/DramenTreeListener.kt index c8d4fa6ac..5b920e067 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/thelostcity/DramenTreeListener.kt +++ b/Server/src/main/kotlin/rs09/game/content/quest/members/thelostcity/DramenTreeListener.kt @@ -1,7 +1,7 @@ package rs09.game.content.quest.members.thelostcity import core.game.content.quest.members.lostcity.TreeSpiritNPC -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.skill.gather.GatheringSkillPulse import core.game.node.entity.skill.gather.SkillingTool import core.game.world.map.Location diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt b/Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt index f13affedd..e26c41232 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/object/GutanothChestPlugin.kt @@ -1,7 +1,7 @@ package rs09.game.interaction.`object` -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.GroundItemManager diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt b/Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt index 17fafe76c..d78b5dd97 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/object/JungleBushHandler.kt @@ -1,7 +1,7 @@ package rs09.game.interaction.`object` -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.player.Player import core.game.node.item.Item import core.game.system.task.Pulse diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt b/Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt index 6eb5476bd..28f3e7f09 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/object/MuddyChestHandler.kt @@ -1,7 +1,7 @@ package rs09.game.interaction.`object` -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.item.GroundItemManager import core.game.node.item.Item import core.game.world.update.flag.context.Animation diff --git a/Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt b/Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt index dd7e9b0f9..27f95711b 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/object/TarBarrelListener.kt @@ -1,6 +1,6 @@ package rs09.game.interaction.`object` -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.SceneryBuilder import core.game.node.item.Item import core.tools.RandomFunction import org.rs09.consts.Items diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt b/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt index 97390d807..3131a58a0 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/region/dungeons/brimhaven/BrimhavenUtils.kt @@ -2,8 +2,8 @@ package rs09.game.interaction.region.dungeons.brimhaven import api.ContentAPI import core.game.content.global.action.ClimbActionHandler -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt b/Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt index b26fc91a0..53af624dd 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/region/wilderness/RoguesCastleListeners.kt @@ -1,7 +1,7 @@ package rs09.game.interaction.region.wilderness import api.ContentAPI -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.combat.ImpactHandler import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt index 64711c12f..f21cb9d9d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/BarbarianOutpostCourse.kt @@ -8,7 +8,7 @@ import core.game.content.global.action.ClimbActionHandler import core.game.content.global.action.DoorActionHandler import core.game.content.quest.miniquest.barcrawl.BarcrawlManager import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.combat.ImpactHandler.HitsplatType import core.game.node.entity.player.Player import core.game.node.entity.skill.agility.AgilityCourse diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt index dfe185d3b..b4bd88d2b 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/GnomeStrongholdCourse.kt @@ -2,7 +2,7 @@ package rs09.game.node.entity.skill.agility import core.cache.def.impl.SceneryDefinition import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.skill.agility.AgilityCourse diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt index 7c88eb8c9..c43c1cca1 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/WildernessCourse.kt @@ -4,7 +4,7 @@ import api.ContentAPI import core.cache.def.impl.SceneryDefinition import core.game.content.global.action.DoorActionHandler import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt index d4783da04..61f29e60a 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/BasaltRockShortcut.kt @@ -1,7 +1,7 @@ package rs09.game.node.entity.skill.agility.shortcuts import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.skill.agility.AgilityHandler import core.game.node.entity.skill.agility.AgilityShortcut diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt index 3dabe17d3..8ed3d0bbc 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/PipeShortcut.kt @@ -1,6 +1,6 @@ package rs09.game.node.entity.skill.agility.shortcuts -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.player.link.diary.DiaryType import core.game.node.entity.skill.agility.AgilityHandler diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt index 82c204a42..eaad2f461 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/agility/shortcuts/RockClimbShortcut.kt @@ -1,6 +1,6 @@ package rs09.game.node.entity.skill.agility.shortcuts -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.impl.ForceMovement import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt index f4e426b42..43a09b716 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/ConstructionDoorPlugin.kt @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition import core.game.content.global.action.DoorActionHandler import core.game.interaction.OptionHandler import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.skill.construction.BuildHotspot import core.game.node.entity.skill.construction.HousingStyle diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt index 9c4230aa1..1f4c227a0 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/chapel/BurnerListener.kt @@ -1,7 +1,7 @@ package rs09.game.node.entity.skill.construction.decoration.chapel -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.item.Item import core.game.world.update.flag.context.Animation import core.tools.RandomFunction diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt index 8ceeec5bc..fee31ef24 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/construction/decoration/study/TelescopePlugin.kt @@ -4,7 +4,7 @@ import core.cache.def.impl.SceneryDefinition import core.game.component.Component import core.game.interaction.OptionHandler import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.system.task.Pulse import core.game.world.update.flag.context.Animation diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt index bab5ab170..284cbee7d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/cooking/CookingDialogue.kt @@ -2,7 +2,7 @@ package rs09.game.node.entity.skill.cooking import api.ContentAPI import core.cache.def.impl.ItemDefinition -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.link.RunScript import core.game.node.entity.skill.cooking.CookableItems import core.game.node.entity.skill.cooking.CookingRewrite.Companion.cook diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt index ed995f9f6..e6d0f6a48 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/CompostBins.kt @@ -2,7 +2,7 @@ package rs09.game.node.entity.skill.farming import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import rs09.game.node.entity.state.newsys.states.FarmingState diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt index 26087b8cc..74bcb6c47 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/farming/FarmingPatch.kt @@ -2,7 +2,7 @@ package rs09.game.node.entity.skill.farming import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import rs09.game.node.entity.state.newsys.states.FarmingState diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt index 9e401b01c..d1b75145d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/gather/mining/MiningSkillPulse.kt @@ -8,8 +8,8 @@ import core.game.content.global.SkillingPets import core.game.content.quest.tutorials.tutorialisland.TutorialSession import core.game.content.quest.tutorials.tutorialisland.TutorialStage import core.game.node.Node -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.impl.Animator import core.game.node.entity.npc.drop.DropFrequency import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt index b2f134e92..d888c6315 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/hunter/tracking/HunterTracking.kt @@ -2,7 +2,7 @@ package rs09.game.node.entity.skill.hunter.tracking import core.game.interaction.OptionHandler import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.skill.Skills import core.game.node.item.GroundItemManager diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt index 1a4a95b63..5c42bb50d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/magic/LunarListeners.kt @@ -1,7 +1,7 @@ package rs09.game.node.entity.skill.magic import core.game.component.Component -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.entity.player.link.TeleportManager diff --git a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt b/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt index df625a63a..72c50b41d 100644 --- a/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt +++ b/Server/src/main/kotlin/rs09/game/node/entity/skill/runecrafting/abyss/AbyssPlugin.kt @@ -4,7 +4,7 @@ import api.ContentAPI import rs09.plugin.PluginManager.definePlugin import rs09.tools.stringtools.colorize import rs09.game.system.SystemLogger.logInfo -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.impl.Animator import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player diff --git a/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt b/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt index 325521fcf..ec0814583 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/oldsys/VisualCommand.kt @@ -4,8 +4,8 @@ import api.ContentAPI import core.cache.Cache import core.game.container.access.InterfaceContainer import core.game.content.quest.tutorials.tutorialisland.CharacterDesign -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.combat.ImpactHandler.HitsplatType import core.game.node.entity.impl.Projectile import core.game.node.entity.npc.NPC diff --git a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt b/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt index 6b52cafb8..53a42225e 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/rottenpotato/RottenPotatoUseWithHandler.kt @@ -1,7 +1,7 @@ package rs09.game.system.command.rottenpotato import core.game.node.Node -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.npc.NPC import core.game.node.entity.player.Player import core.game.node.item.Item diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt b/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt index 719af0571..963a3f3d1 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt @@ -8,7 +8,7 @@ import core.cache.def.impl.SceneryDefinition import core.cache.def.impl.VarbitDefinition import core.game.component.Component import core.game.ge.OfferState -import core.game.node.`object`.Scenery +import core.game.node.scenery.Scenery import core.game.node.entity.player.Player import core.game.node.entity.player.info.Rights import core.game.node.entity.skill.Skills diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt b/Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt index 5ce550da6..9f26c7e78 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/sets/SpawnCommandSet.kt @@ -1,8 +1,8 @@ package rs09.game.system.command.sets import core.cache.Cache -import core.game.node.`object`.Scenery -import core.game.node.`object`.SceneryBuilder +import core.game.node.scenery.Scenery +import core.game.node.scenery.SceneryBuilder import core.game.node.entity.npc.NPC import core.game.node.item.Item import rs09.game.system.SystemLogger From 38f257908940fdd28f90d8fa29e6ae3fdd015136 Mon Sep 17 00:00:00 2001 From: ceikry Date: Sat, 28 Aug 2021 21:56:33 -0500 Subject: [PATCH 12/12] Refactor more old object naming to scenery --- Server/data/configs/drop_tables.json | 2699 ++++------------- .../kotlin/rs09/game/ai/general/ScriptAPI.kt | 1 - .../worldevents/shootingstar/ShootingStar.kt | 1 - .../system/command/sets/MiscCommandSet.kt | 3 - 4 files changed, 543 insertions(+), 2161 deletions(-) diff --git a/Server/data/configs/drop_tables.json b/Server/data/configs/drop_tables.json index 2d430235f..bacc761ad 100644 --- a/Server/data/configs/drop_tables.json +++ b/Server/data/configs/drop_tables.json @@ -753,38 +753,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "91.6064", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.0005", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.7927", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.4372", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.1632", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "9,32,206,296,297,298,299,344,345,346,368,678,812,887,1142,1143,1144,1145,1146,1147,1148,1149,1150,1296,1297,1374,1805,1806,2699,2700,2701,2702,2703,2704,2705,2962,2963,2964,2965,2966,2967,2968,2969,2970,2971,2972,2973,3228,3229,3230,3231,3232,3233,3241,3407,3408,3715,3941,3942,4257,4258,4259,4260,4301,4302,4303,4304,4305,4306,4307,4308,4309,4310,4311,4336,4993,4994,4995,4996,4997,4998,4999,5000,5001,5002,5489,5490,5491,5492,5800,5801,5919,5920,6183,6184,6190,6498,6499,6500,6501,6502,6503,7142", "description": "", "main": [ @@ -994,31 +963,25 @@ "charm": [ { "minAmount": "1", - "weight": "94.0800", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.2133", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.1733", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2667", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2667", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -1213,31 +1176,25 @@ "charm": [ { "minAmount": "1", - "weight": "77.9122", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "12.4761", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.5379", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.8192", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2546", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -1409,31 +1366,25 @@ "charm": [ { "minAmount": "1", - "weight": "89.3939", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.6277", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.9481", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.7316", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2987", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -2198,38 +2149,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "20.1053", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "69.0441", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.0025", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.8402", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.0079", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "49,3586,6210", "description": "", "main": [ @@ -2286,12 +2206,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "50,2642", @@ -2487,31 +2401,25 @@ "charm": [ { "minAmount": "1", - "weight": "18.0057", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "17.6693", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "43.5864", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "17.0291", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.7095", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -2713,31 +2621,25 @@ "charm": [ { "minAmount": "3", - "weight": "56.6693", - "id": "0", - "maxAmount": "3" - }, - { - "minAmount": "3", - "weight": "8.6692", + "weight": "16.0", "id": "12158", "maxAmount": "3" }, { "minAmount": "3", - "weight": "26.5555", + "weight": "64.0", "id": "12159", "maxAmount": "3" }, { "minAmount": "3", - "weight": "6.7590", + "weight": "16.0", "id": "12160", "maxAmount": "3" }, { "minAmount": "3", - "weight": "1.3469", + "weight": "4.0", "id": "12163", "maxAmount": "3" } @@ -2915,31 +2817,25 @@ "charm": [ { "minAmount": "1", - "weight": "48.5393", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "11.0668", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "27.2748", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "10.9091", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.2100", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -3134,31 +3030,25 @@ "charm": [ { "minAmount": "1", - "weight": "87.5860", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.5490", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.8189", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.3911", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6551", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -3314,12 +3204,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "61,1004,1221,1473,1474,4401,7207", @@ -3460,31 +3344,25 @@ "charm": [ { "minAmount": "1", - "weight": "72.2513", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "25.0631", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9319", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6049", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.1488", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -3505,31 +3383,25 @@ "charm": [ { "minAmount": "1", - "weight": "62.4612", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "23.1644", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "8.4798", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.4467", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4478", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -4045,31 +3917,25 @@ "charm": [ { "minAmount": "1", - "weight": "78.7445", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "19.2498", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5210", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2069", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2779", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -4115,31 +3981,25 @@ "charm": [ { "minAmount": "1", - "weight": "94.9773", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.8562", + "weight": "20.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.8921", + "weight": "75.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2258", + "weight": "4.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.0486", + "weight": "1.0", "id": "12163", "maxAmount": "1" } @@ -4164,38 +4024,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "93.9387", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.8077", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.7671", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.8683", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.6181", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "82,4694,4695,4696,4697,6101", "description": "", "main": [ @@ -4375,31 +4204,25 @@ "charm": [ { "minAmount": "1", - "weight": "62.1649", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "6.9276", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.7889", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "26.1919", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9267", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -4529,31 +4352,25 @@ "charm": [ { "minAmount": "1", - "weight": "22.5725", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "20.8465", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "10.7620", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "44.1955", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6236", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -4838,38 +4655,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "90.3666", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.2856", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.8525", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.4723", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.0230", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "90,91,92,93,459,1471,2036,2037,2715,3151,3291,3581,4384,4385,4386,5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5365,5366,5367,5368,5381,5385,5386,5387,5388,5389,5390,5391,5392,5411,5412,5422,6091,6092,6093,6764,6765,6766,6767,6768", "description": "", "main": [ @@ -5340,31 +5126,25 @@ "charm": [ { "minAmount": "1", - "weight": "88.6454", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.5857", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.9920", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.5777", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.1992", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -5398,31 +5178,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.0570", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.8446", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.8490", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.8793", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.3701", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -5827,31 +5601,25 @@ "charm": [ { "minAmount": "1", - "weight": "85.6976", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "10.7526", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.5960", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6717", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2821", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -5897,31 +5665,25 @@ "charm": [ { "minAmount": "1", - "weight": "82.1397", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "16.5340", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4421", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5305", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.3537", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -5955,31 +5717,25 @@ "charm": [ { "minAmount": "1", - "weight": "30.6289", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "55.6271", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.2156", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0098", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.5185", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -6202,38 +5958,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "45.9587", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "44.7868", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.9505", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.5777", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.7263", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "111,3072,4685,4686,4687", "description": "", "main": [ @@ -6536,38 +6261,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "61.6452", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "32.5923", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.7924", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.4366", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.5336", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "112,1587,1588,1681,4534,4688,4706", "description": "", "main": [ @@ -6945,31 +6639,25 @@ "charm": [ { "minAmount": "1", - "weight": "58.3163", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "36.3670", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.4356", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.4642", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4168", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -7300,12 +6988,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "114", @@ -7493,31 +7175,25 @@ "charm": [ { "minAmount": "1", - "weight": "82.5938", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "13.9157", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.7360", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.3739", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.3806", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -8211,12 +7887,6 @@ "weight": "1.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1400.0", - "id": "0", - "maxAmount": "1" } ], "ids": "117,4689,4690,4691,4692,4693", @@ -8518,31 +8188,25 @@ "charm": [ { "minAmount": "1", - "weight": "90.7890", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.7853", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.8556", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.9837", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5864", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -8690,31 +8354,25 @@ "charm": [ { "minAmount": "1", - "weight": "81.6299", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.4137", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.0075", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.2593", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.6896", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -8901,38 +8559,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "82.4038", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "15.9877", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.4930", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.9659", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.1495", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "122,123,2685,2686,2687,2688,3583,4898,6275", "description": "", "main": [ @@ -9309,31 +8936,25 @@ "charm": [ { "minAmount": "1", - "weight": "74.8304", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.0131", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.5294", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "10.9457", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6814", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -9645,38 +9266,7 @@ }, { "default": [], - "charm": [ - { - "minAmount": "1", - "weight": "53.6086", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "41.9912", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.4642", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.5197", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.4162", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "125,145,3073", "description": "", "main": [ @@ -10277,31 +9867,25 @@ "charm": [ { "minAmount": "1", - "weight": "54.5455", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "21.6783", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "11.1888", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.2937", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.2937", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -10518,12 +10102,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "132,1463,1464,1487,2301,4344,4363,5852,6943,7211,7213,7215,7217,7219,7221,7223,7225,7227", @@ -10561,31 +10139,25 @@ "charm": [ { "minAmount": "1", - "weight": "84.4867", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.9954", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "9.6471", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5729", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2979", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -10632,34 +10204,28 @@ ], "charm": [ { - "minAmount": "3", - "weight": "11.0653", - "id": "0", - "maxAmount": "3" - }, - { - "minAmount": "3", - "weight": "20.6850", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "10.8348", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "20.7757", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "36.6392", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "3" + "maxAmount": "1" } ], "ids": "8349,8350,8351,8352,8353,8354,8355,8356,8357,8358,8359,8360,8361,8362,8363,8364,8365,8366", @@ -10996,31 +10562,25 @@ "charm": [ { "minAmount": "1", - "weight": "70.7701", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "10.4637", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.3610", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.8041", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6011", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -12322,31 +11882,25 @@ "charm": [ { "minAmount": "1", - "weight": "86.7406", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "11.5076", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.7715", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6429", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.3375", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -12547,31 +12101,25 @@ "charm": [ { "minAmount": "1", - "weight": "85.3493", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.9531", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.4672", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.3107", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.9197", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -12925,31 +12473,25 @@ "charm": [ { "minAmount": "1", - "weight": "74.1154", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "17.7558", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.9091", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.0402", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.1795", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -14037,31 +13579,25 @@ "charm": [ { "minAmount": "1", - "weight": "37.5000", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "12.5000", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "16.2500", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "18.7500", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "15.0000", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -14258,31 +13794,25 @@ "charm": [ { "minAmount": "1", - "weight": "81.6118", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "15.8300", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4426", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4809", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6347", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -14490,12 +14020,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "490,1958,1959,1961,1962,1963,1964,1965,1966,1967,1968,2015,2016,2017,2018,2019,6753,6754,6755,6756,6757,6758,6759,6760", @@ -16190,12 +15714,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "870", @@ -16466,31 +15984,25 @@ "charm": [ { "minAmount": "1", - "weight": "66.2159", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.4604", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "16.0822", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.7004", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.5411", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -17193,31 +16705,25 @@ "charm": [ { "minAmount": "1", - "weight": "86.2037", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.0201", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.9644", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.2179", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5939", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -17624,12 +17130,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1023,1220,1223,1225,6214", @@ -18873,38 +18373,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "69.0000", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.0000", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.0000", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "10.0000", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "11.0000", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "1096", "description": "", "main": [ @@ -19090,31 +18559,25 @@ "charm": [ { "minAmount": "1", - "weight": "53.7736", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "35.8491", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.6038", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.7736", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.0000", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -19220,31 +18683,25 @@ "charm": [ { "minAmount": "1", - "weight": "67.1141", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "21.6443", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0336", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.1946", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.0134", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -19902,31 +19359,25 @@ "charm": [ { "minAmount": "1", - "weight": "50.0805", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "39.6940", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.9114", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.2206", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.0934", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -20703,31 +20154,25 @@ "charm": [ { "minAmount": "1", - "weight": "87.6923", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.8422", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.1442", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.5573", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.7640", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -21012,31 +20457,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.4384", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.9927", + "weight": "75.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.2881", + "weight": "75.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.8405", + "weight": "75.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.4403", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -21213,31 +20652,25 @@ "charm": [ { "minAmount": "1", - "weight": "64.8768", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "13.2327", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.3396", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.8032", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "8.7477", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -21723,31 +21156,25 @@ "charm": [ { "minAmount": "1", - "weight": "59.5722", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.8769", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "24.3610", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.5554", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6345", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -22057,31 +21484,25 @@ "charm": [ { "minAmount": "1", - "weight": "85.3383", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "10.1504", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.5038", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.2556", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.7519", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -22115,31 +21536,25 @@ "charm": [ { "minAmount": "1", - "weight": "60.5114", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.1023", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "22.4432", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "8.2386", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.7045", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -22350,31 +21765,25 @@ "charm": [ { "minAmount": "1", - "weight": "79.4780", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "18.3672", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.7552", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2444", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.1553", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -22407,31 +21816,25 @@ "charm": [ { "minAmount": "1", - "weight": "82.6794", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.4178", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2519", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.2870", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.3640", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -23078,12 +22481,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1265,1267", @@ -23834,12 +23231,6 @@ "weight": "2.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1400.0", - "id": "0", - "maxAmount": "1" } ], "ids": "2455,2456", @@ -24263,12 +23654,6 @@ "weight": "5.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "560.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1524,1525,5678,5679,5680,5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696,5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712,5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728,5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5746,5747", @@ -24474,12 +23859,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1558,1559,1951,1952,1953,1954,1955,1956,6052", @@ -24726,31 +24105,25 @@ "charm": [ { "minAmount": "1", - "weight": "39.7302", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "13.6424", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "30.8949", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.2934", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.4391", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -24981,34 +24354,28 @@ ], "charm": [ { - "minAmount": "2", - "weight": "39.7985", - "id": "0", - "maxAmount": "2" - }, - { - "minAmount": "2", - "weight": "12.2826", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "32.2437", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "12.8932", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "2.7820", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "2" + "maxAmount": "1" } ], "ids": "1591", @@ -25213,34 +24580,28 @@ ], "charm": [ { - "minAmount": "3", - "weight": "33.6140", - "id": "0", - "maxAmount": "3" - }, - { - "minAmount": "3", - "weight": "13.8986", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "35.1826", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "14.2297", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "3.0751", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "3" + "maxAmount": "1" } ], "ids": "1592,3590", @@ -25434,31 +24795,25 @@ "charm": [ { "minAmount": "1", - "weight": "70.4846", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.8947", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "15.9010", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.4401", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2796", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -25479,31 +24834,25 @@ "charm": [ { "minAmount": "1", - "weight": "87.3121", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.0562", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.2646", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9459", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4212", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -25728,31 +25077,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.4800", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "11.8412", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.9054", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.9876", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.7859", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -25978,31 +25321,25 @@ "charm": [ { "minAmount": "1", - "weight": "56.3725", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.8432", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "26.9563", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.4594", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.3687", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -26305,31 +25642,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.7631", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.5666", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.7979", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.8876", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.9849", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -26491,12 +25822,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1611", @@ -26629,31 +25954,25 @@ "charm": [ { "minAmount": "1", - "weight": "88.9020", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.4973", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.9705", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.3085", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.3217", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -26879,31 +26198,25 @@ "charm": [ { "minAmount": "1", - "weight": "55.2891", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.8367", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.3680", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "30.4735", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0327", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -27111,31 +26424,25 @@ "charm": [ { "minAmount": "1", - "weight": "52.8956", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.6662", + "weight": "12.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.4161", + "weight": "12.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "32.9683", + "weight": "72.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0538", + "weight": "4.0", "id": "12163", "maxAmount": "1" } @@ -27343,31 +26650,25 @@ "charm": [ { "minAmount": "1", - "weight": "67.2875", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.0347", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "19.4192", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.0371", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2214", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -27587,31 +26888,25 @@ "charm": [ { "minAmount": "1", - "weight": "53.9118", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.3528", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "30.9557", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.6941", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0855", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -27828,38 +27123,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "88.9239", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.2682", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.3641", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.1737", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.2700", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "1620,1621,4227", "description": "", "main": [ @@ -28147,31 +27411,25 @@ "charm": [ { "minAmount": "1", - "weight": "64.0022", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.3073", + "weight": "20.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "22.1332", + "weight": "70.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.3634", + "weight": "5.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.1938", + "weight": "5.0", "id": "12163", "maxAmount": "1" } @@ -28433,31 +27691,25 @@ "charm": [ { "minAmount": "1", - "weight": "55.1863", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "11.8733", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.1533", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "25.8346", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9525", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -28692,12 +27944,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1631,1632", @@ -28843,31 +28089,25 @@ "charm": [ { "minAmount": "1", - "weight": "86.6357", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.0393", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.4947", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.3380", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4923", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -29002,31 +28242,25 @@ "charm": [ { "minAmount": "1", - "weight": "65.9946", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.6208", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "21.8565", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.5828", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9453", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -29156,31 +28390,25 @@ "charm": [ { "minAmount": "1", - "weight": "61.2459", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "32.8603", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.7701", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.5155", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6082", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -29361,12 +28589,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1648,1649,1650,1651,1652,1653,1654,1655,1656,1657", @@ -29476,31 +28698,25 @@ "charm": [ { "minAmount": "1", - "weight": "46.6640", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "44.2900", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.0169", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.9727", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0564", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -29801,12 +29017,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1691,5211", @@ -30530,12 +29740,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1752,1753,6109,6110,6111", @@ -30627,31 +29831,25 @@ "charm": [ { "minAmount": "1", - "weight": "93.2258", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.7419", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.5806", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9677", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4839", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -30700,31 +29898,25 @@ "charm": [ { "minAmount": "1", - "weight": "86.9276", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "6.5495", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.4760", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.8488", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.1981", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -31315,31 +30507,25 @@ "charm": [ { "minAmount": "1", - "weight": "52.5489", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "6.5845", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "36.5336", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.5259", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.8071", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -31856,12 +31042,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "1960,5360", @@ -32103,31 +31283,25 @@ "charm": [ { "minAmount": "1", - "weight": "86.2564", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.1429", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.5191", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.8380", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.2436", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -32255,31 +31429,25 @@ "charm": [ { "minAmount": "1", - "weight": "79.2519", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.3890", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.9177", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.7431", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6983", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -32321,31 +31489,25 @@ "charm": [ { "minAmount": "1", - "weight": "91.6382", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.6928", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.4744", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.9386", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2560", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -32372,31 +31534,25 @@ "charm": [ { "minAmount": "1", - "weight": "90.4762", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.2910", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.1164", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5291", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.5873", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -32427,38 +31583,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "85.8093", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "10.9113", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.6775", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.6019", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.0000", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "2044,2045,2046,2047,2048,2049,2051,2052,2053,2054,2055", "description": "", "main": [ @@ -32907,31 +32032,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.5695", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.9046", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "9.1281", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6349", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "10.7629", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -33297,12 +32416,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "2239,2240,2316,2317", @@ -33328,31 +32441,25 @@ "charm": [ { "minAmount": "1", - "weight": "96.1266", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.7056", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.9032", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2058", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.0588", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -33494,31 +32601,25 @@ "charm": [ { "minAmount": "1", - "weight": "80.0326", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.0474", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.1634", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.1490", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6076", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -33660,31 +32761,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.5196", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.1545", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "18.1760", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.6304", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5194", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -33825,34 +32920,28 @@ ], "charm": [ { - "minAmount": "3", - "weight": "2.8249", - "id": "0", - "maxAmount": "3" - }, - { - "minAmount": "3", - "weight": "79.2687", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "9.3063", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "6.6384", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "3" + "maxAmount": "1" }, { - "minAmount": "3", - "weight": "1.9617", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "3" + "maxAmount": "1" } ], "ids": "2452,2885", @@ -34304,12 +33393,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "2457,2884", @@ -36019,31 +35102,25 @@ "charm": [ { "minAmount": "1", - "weight": "64.7702", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.6684", + "weight": "25.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.3532", + "weight": "10.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "8.2923", + "weight": "25.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "13.9158", + "weight": "40.0", "id": "12163", "maxAmount": "1" } @@ -38083,31 +37160,25 @@ "charm": [ { "minAmount": "2", - "weight": "47.6638", - "id": "0", - "maxAmount": "2" - }, - { - "minAmount": "2", - "weight": "16.3926", + "weight": "27.0", "id": "12158", "maxAmount": "2" }, { "minAmount": "2", - "weight": "8.9794", + "weight": "18.0", "id": "12159", "maxAmount": "2" }, { "minAmount": "2", - "weight": "23.8319", + "weight": "50.0", "id": "12160", "maxAmount": "2" }, { "minAmount": "2", - "weight": "3.1323", + "weight": "5.0", "id": "12163", "maxAmount": "2" } @@ -38362,34 +37433,28 @@ ], "charm": [ { - "minAmount": "2", - "weight": "33.9281", - "id": "0", - "maxAmount": "2" - }, - { - "minAmount": "2", - "weight": "6.6641", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "3.3079", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "54.6051", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "1.4948", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "2" + "maxAmount": "1" } ], "ids": "3068,3069,3070,3071", @@ -38654,31 +37719,25 @@ "charm": [ { "minAmount": "1", - "weight": "91.5619", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.7734", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.9766", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4995", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.1886", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -38966,31 +38025,25 @@ "charm": [ { "minAmount": "1", - "weight": "83.9189", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "14.0681", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0810", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.7755", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.1567", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -40044,34 +39097,28 @@ ], "charm": [ { - "minAmount": "2", - "weight": "71.1249", - "id": "0", - "maxAmount": "2" - }, - { - "minAmount": "2", - "weight": "8.5018", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "11.3012", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "6.4282", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "2.6439", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "2" + "maxAmount": "1" } ], "ids": "3340", @@ -40586,31 +39633,25 @@ "charm": [ { "minAmount": "1", - "weight": "55.9766", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.1987", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "21.9199", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "11.0684", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.8364", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -40662,31 +39703,25 @@ "charm": [ { "minAmount": "1", - "weight": "91.2090", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.8008", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.9436", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.7576", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2890", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -40963,12 +39998,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "3587", @@ -41407,31 +40436,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.7201", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "22.7431", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6213", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4998", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4157", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -42646,12 +41669,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "4226", @@ -42955,31 +41972,25 @@ "charm": [ { "minAmount": "1", - "weight": "81.7721", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.6723", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "12.4324", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6996", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4235", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -43211,31 +42222,25 @@ "charm": [ { "minAmount": "1", - "weight": "78.7882", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.6555", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.1922", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "13.8093", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5548", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -43548,38 +42553,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "72.1599", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "23.6015", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.6356", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.2041", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.3988", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "4381,4382,4383", "description": "", "main": [ @@ -43881,38 +42855,7 @@ }, { "default": [], - "charm": [ - { - "minAmount": "1", - "weight": "88.9290", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.1142", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.9575", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.7357", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.2637", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "4389,4390,4391", "description": "", "main": [ @@ -44065,38 +43008,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "76.9587", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "19.0203", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.3723", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "2.3297", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.3191", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "4397,4398,4399", "description": "", "main": [ @@ -44853,31 +43765,25 @@ "charm": [ { "minAmount": "1", - "weight": "64.8102", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "14.0533", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.8289", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.9381", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.3696", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -45173,12 +44079,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "4805,4806,4807,4808,4813,4814,4815,4816,4817,4818,4819,4820,4821,4822,4823,4824,4825,4826,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4838,4839,4840,4841,4842,4843,4844,4849,4850,4851,4852,7606,7607,7608,7609,7614,7615,7616,7617,7618,7619,7620,7621,7622,7623,7624,7625,7626,7627,7628,7629,7630,7631,7632,7633,7634,7635,7682,7683,7684,7685,7691,7692,7693,7694,7695,7696,7697,7698,7699,7700,7701,7702,7703,7704,7705,7706", @@ -45553,12 +44453,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "5251,5252,5255,5256", @@ -45746,31 +44640,25 @@ "charm": [ { "minAmount": "1", - "weight": "4.9106", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.3881", + "weight": "13.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.7939", + "weight": "5.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "78.8777", + "weight": "80.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.0297", + "weight": "2.0", "id": "12163", "maxAmount": "1" } @@ -46223,34 +45111,28 @@ ], "charm": [ { - "minAmount": "2", - "weight": "63.6081", - "id": "0", - "maxAmount": "2" - }, - { - "minAmount": "2", - "weight": "14.9300", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "12.4417", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "7.6205", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "2" + "maxAmount": "1" }, { - "minAmount": "2", - "weight": "1.3997", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "2" + "maxAmount": "1" } ], "ids": "5362", @@ -46509,34 +45391,28 @@ ], "charm": [ { - "minAmount": "4", - "weight": "9.0422", - "id": "0", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "19.2257", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "48.7929", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "19.3398", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "3.5993", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "4" + "maxAmount": "1" } ], "ids": "5363", @@ -46712,31 +45588,25 @@ "charm": [ { "minAmount": "1", - "weight": "85.7316", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.7699", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.0161", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4329", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.0494", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -46791,12 +45661,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "5415,5416", @@ -47014,31 +45878,25 @@ "charm": [ { "minAmount": "1", - "weight": "71.3750", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.5708", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "7.3810", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "8.4093", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.2638", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -48716,12 +47574,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6028", @@ -50120,34 +48972,28 @@ ], "charm": [ { - "minAmount": "4", - "weight": "91.1171", - "id": "0", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "3.0405", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "0.9915", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "0.2864", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "4.5645", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "4" + "maxAmount": "1" } ], "ids": "6203", @@ -51022,31 +49868,25 @@ "charm": [ { "minAmount": "1", - "weight": "36.6834", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "25.6873", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "13.9521", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "15.4005", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "8.2767", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -51669,38 +50509,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "4", - "weight": "82.5020", - "id": "0", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "4.2237", - "id": "12158", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "4.8572", - "id": "12159", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "5.9533", - "id": "12160", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "2.4638", - "id": "12163", - "maxAmount": "4" - } - ], + "charm": [], "ids": "6247", "description": "", "main": [ @@ -52125,31 +50934,25 @@ "charm": [ { "minAmount": "1", - "weight": "67.5000", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "26.2500", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.0000", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.0000", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "6.2500", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -52182,34 +50985,28 @@ ], "charm": [ { - "minAmount": "4", - "weight": "85.5895", - "id": "0", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "4.7851", + "minAmount": "1", + "weight": "100.0", "id": "12158", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "3.5198", + "minAmount": "1", + "weight": "100.0", "id": "12159", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "3.6001", + "minAmount": "1", + "weight": "100.0", "id": "12160", - "maxAmount": "4" + "maxAmount": "1" }, { - "minAmount": "4", - "weight": "2.5055", + "minAmount": "1", + "weight": "100.0", "id": "12163", - "maxAmount": "4" + "maxAmount": "1" } ], "ids": "6260", @@ -52904,38 +51701,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "80.3408", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.7560", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.2796", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.1186", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.5050", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "6296,6297", "description": "", "main": [ @@ -53091,31 +51857,25 @@ "charm": [ { "minAmount": "1", - "weight": "76.3636", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "17.9310", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.8213", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.1944", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.6897", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -53185,31 +51945,25 @@ "charm": [ { "minAmount": "1", - "weight": "78.8000", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.3333", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.2000", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.3333", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "13.3333", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -53582,31 +52336,25 @@ "charm": [ { "minAmount": "1", - "weight": "82.6923", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "4.3269", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "11.0577", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4423", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.4808", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -54634,12 +53382,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6604,6635,6655,6666,6677,6697,6703,6715", @@ -54985,12 +53727,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6605,6612,6616,6620,6636,6637,6638,6639,6651,6656,6657,6658,6667,6678,6679,6680,6681,6693,6698,6699,6704,6705,6706,6707,6716,6717,6718,6719", @@ -55336,12 +54072,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6606,6621,6628,6640,6659,6682,6694,6708,6720", @@ -55687,12 +54417,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6607,6609,6614,6617,6625,6632,6644,6663,6675,6686,6701,6712,6724,6728", @@ -56038,12 +54762,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6608,6642,6661,6684,6710,6722,6727", @@ -56389,12 +55107,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6610,6615,6618,6624,6626,6629,6633,6648,6653,6664,6670,6672,6690,6696,6702,6713,6725,6729", @@ -56842,12 +55554,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6611,6619,6627,6630,6634,6650,6654,6665,6673,6676,6692,6714,6726,6730", @@ -57301,12 +56007,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6613,6623,6643,6652,6662,6669,6671,6674,6685,6695,6700,6711,6723", @@ -57658,12 +56358,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6622,6631,6641,6660,6668,6683,6709,6721", @@ -58015,12 +56709,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6645,6687", @@ -58468,12 +57156,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6646,6688", @@ -58921,12 +57603,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6647,6689", @@ -59374,12 +58050,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6649,6691", @@ -59813,31 +58483,25 @@ "charm": [ { "minAmount": "1", - "weight": "80.1337", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "6.6032", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.9189", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.5225", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.8217", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -60129,31 +58793,25 @@ "charm": [ { "minAmount": "1", - "weight": "90.2081", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.0796", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4688", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.4076", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.8360", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -60945,12 +59603,6 @@ "weight": "100.0", "id": "12163", "maxAmount": "4" - }, - { - "minAmount": "1", - "weight": "5600.0", - "id": "0", - "maxAmount": "1" } ], "ids": "6998,6999", @@ -61384,31 +60036,25 @@ "charm": [ { "minAmount": "1", - "weight": "13.1269", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "79.3218", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.9989", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.7261", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.8264", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -61454,31 +60100,25 @@ "charm": [ { "minAmount": "1", - "weight": "53.1561", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "38.8704", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.3223", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.9900", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6611", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -61524,31 +60164,25 @@ "charm": [ { "minAmount": "1", - "weight": "52.7123", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "38.5613", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.7146", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.4222", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.5896", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -61616,38 +60250,7 @@ }, { "default": [], - "charm": [ - { - "minAmount": "1", - "weight": "2.0266", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "62.8232", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "25.2621", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "9.7834", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.1048", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "7135", "description": "", "main": [ @@ -61807,38 +60410,7 @@ }, { "default": [], - "charm": [ - { - "minAmount": "1", - "weight": "93.0134", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.6584", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.9880", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.9873", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.3529", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "7158", "description": "", "main": [ @@ -61990,38 +60562,7 @@ }, { "default": [], - "charm": [ - { - "minAmount": "1", - "weight": "71.9397", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "6.1502", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "3.6665", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "17.1496", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.0940", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "7159", "description": "", "main": [ @@ -62179,38 +60720,7 @@ }, { "default": [], - "charm": [ - { - "minAmount": "1", - "weight": "58.7492", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.9739", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.9208", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "26.2643", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.0919", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "7160", "description": "", "main": [ @@ -62462,31 +60972,25 @@ "charm": [ { "minAmount": "1", - "weight": "73.7931", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "22.9885", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "2.0690", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.1494", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.0000", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -62741,31 +61245,25 @@ "charm": [ { "minAmount": "1", - "weight": "75.6592", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "20.8925", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6227", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.6227", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "0.2028", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -63069,31 +61567,25 @@ "charm": [ { "minAmount": "1", - "weight": "46.1418", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "43.3139", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "5.6442", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.7841", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "1.1161", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -63360,31 +61852,25 @@ "charm": [ { "minAmount": "13", - "weight": "3.1496", - "id": "0", - "maxAmount": "13" - }, - { - "minAmount": "13", - "weight": "22.2601", + "weight": "100.0", "id": "12158", "maxAmount": "13" }, { "minAmount": "13", - "weight": "12.0238", + "weight": "100.0", "id": "12159", "maxAmount": "13" }, { "minAmount": "13", - "weight": "22.0685", + "weight": "100.0", "id": "12160", "maxAmount": "13" }, { "minAmount": "13", - "weight": "40.4980", + "weight": "100.0", "id": "12163", "maxAmount": "13" } @@ -63592,31 +62078,25 @@ "charm": [ { "minAmount": "1", - "weight": "82.1886", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.3302", + "weight": "100.0", "id": "12158", "maxAmount": "1" }, { "minAmount": "1", - "weight": "4.2583", + "weight": "100.0", "id": "12159", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.1612", + "weight": "100.0", "id": "12160", "maxAmount": "1" }, { "minAmount": "1", - "weight": "3.0617", + "weight": "100.0", "id": "12163", "maxAmount": "1" } @@ -63809,38 +62289,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "91.6064", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "7.0005", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.7927", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.4372", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.1632", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "1076,1077", "description": "", "main": [ @@ -64119,38 +62568,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "88.5971", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.5251", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.7022", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.6504", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.5251", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "1044,1045,1046", "description": "", "main": [ @@ -64177,38 +62595,7 @@ "maxAmount": "1" } ], - "charm": [ - { - "minAmount": "1", - "weight": "88.5971", - "id": "0", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.5251", - "id": "12158", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "8.7022", - "id": "12159", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "1.6504", - "id": "12160", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "0.5251", - "id": "12163", - "maxAmount": "1" - } - ], + "charm": [], "ids": "188,189,190", "description": "", "main": [ diff --git a/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt b/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt index 1d2b13daf..34cd637ff 100644 --- a/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt +++ b/Server/src/main/kotlin/rs09/game/ai/general/ScriptAPI.kt @@ -41,7 +41,6 @@ import rs09.game.world.repository.Repository import rs09.tools.stringtools.colorize import java.util.* import java.util.concurrent.CountDownLatch -import java.util.concurrent.Executors import kotlin.math.pow import kotlin.math.sqrt diff --git a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt b/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt index 62552e026..0d5a35009 100644 --- a/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt +++ b/Server/src/main/kotlin/rs09/game/content/global/worldevents/shootingstar/ShootingStar.kt @@ -8,7 +8,6 @@ import core.game.world.map.Location import rs09.ServerStore.getBoolean import rs09.ServerStore.getInt import rs09.ServerStore.getString -import rs09.game.system.SystemLogger import rs09.game.world.repository.Repository /** diff --git a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt b/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt index 963a3f3d1..244ad3bd9 100644 --- a/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt +++ b/Server/src/main/kotlin/rs09/game/system/command/sets/MiscCommandSet.kt @@ -25,7 +25,6 @@ import rs09.ServerConstants import rs09.game.content.activity.fishingtrawler.TrawlerLoot import rs09.game.content.ame.RandomEvents import rs09.game.ge.OfferManager -import rs09.game.interaction.SpadeDigListener import rs09.game.node.entity.state.newsys.states.FarmingState import rs09.game.system.SystemLogger import rs09.game.system.command.Command @@ -34,9 +33,7 @@ import rs09.game.world.repository.Repository import rs09.tools.stringtools.colorize import java.awt.Toolkit import java.awt.datatransfer.StringSelection -import java.lang.Integer.max import java.util.* -import java.util.concurrent.TimeUnit import kotlin.collections.ArrayList @Initializable