From 0619c577e95e700ca4154a0587194f2f993e882d Mon Sep 17 00:00:00 2001 From: skelsoft <9147770-skelsoft@users.noreply.gitlab.com> Date: Mon, 18 Oct 2021 02:52:12 +0000 Subject: [PATCH] Add: Genie Random Event --- Server/data/configs/npc_configs.json | 1259 +---------------- Server/data/configs/npc_spawns.json | 2 +- .../rs09/game/content/ame/RandomEvents.kt | 2 + .../content/ame/events/genie/GenieDialogue.kt | 21 + .../game/content/ame/events/genie/GenieNPC.kt | 36 + 5 files changed, 61 insertions(+), 1259 deletions(-) create mode 100644 Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt create mode 100644 Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt diff --git a/Server/data/configs/npc_configs.json b/Server/data/configs/npc_configs.json index 911eb419f..dc2d65078 100644 --- a/Server/data/configs/npc_configs.json +++ b/Server/data/configs/npc_configs.json @@ -55162,7 +55162,7 @@ "attack_level": "75" }, { - "examine": "I wish I could tell where he was looking.", + "examine": "I wish I could tell where he was looking. What could be beneath that hood?", "melee_animation": "0", "range_animation": "0", "defence_animation": "0", @@ -68030,147 +68030,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", @@ -75833,22 +75692,6 @@ "range_level": "20", "attack_level": "1" }, - { - "examine": "Master of the Champions' Guild.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Guildmaster", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "198", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A mighty warrior!", "melee_animation": "395", @@ -93459,22 +93302,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Only the Grim Reaper would have a pet like this.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Muncher", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2329", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Perhaps this farmer might look after your crops for you.", "melee_animation": "0", @@ -98322,147 +98149,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", @@ -121837,34 +121523,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of Truth.", - "combat_style": "1", - "melee_animation": "7009", - "attack_speed": "5", - "respawn_delay": "50", - "weakness": "0", - "slayer_exp": "0", - "magic_animation": "7009", - "death_animation": "7011", - "lifepoints": "162", - "id": "6252", - "aggressive": "true", - "bonuses": "10,10,10,0,0,12,14,14,18,5,0,7,0,0,0", - "prj_height": "50", - "agg_radius": "64", - "range_animation": "7009", - "magic_level": "80", - "end_gfx": "24", - "defence_animation": "7010", - "name": "Bree", - "defence_level": "130", - "safespot": null, - "strength_level": "80", - "range_level": "150", - "projectile": "1188", - "attack_level": "110" - }, { "name": "", "defence_level": "1", @@ -123680,22 +123338,6 @@ "range_level": "1", "attack_level": "75" }, - { - "examine": "I wish I could tell where he was looking.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Grim Reaper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "6390", - "range_level": "1", - "attack_level": "1" - }, { "name": "Goblin", "defence_level": "1", @@ -133619,147 +133261,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", @@ -140919,22 +140420,6 @@ "range_level": "20", "attack_level": "1" }, - { - "examine": "Master of the Champions' Guild.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Guildmaster", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "198", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A mighty warrior!", "melee_animation": "395", @@ -158636,22 +158121,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Only the Grim Reaper would have a pet like this.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Muncher", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2329", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Perhaps this farmer might look after your crops for you.", "melee_animation": "0", @@ -163521,168 +162990,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the skeletons.", - "combat_style": "1", - "melee_animation": "5512", - "range_animation": "0", - "combat_audio": "774,775,777", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "2", - "magic_animation": "0", - "death_animation": "5514", - "name": "Skeleton Champion", - "defence_level": "20", - "safespot": null, - "lifepoints": "28", - "strength_level": "10", - "id": "3065", - "aggressive": "true", - "range_level": "20", - "attack_level": "10" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", @@ -187832,34 +187139,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of Truth.", - "combat_style": "1", - "melee_animation": "7009", - "attack_speed": "5", - "respawn_delay": "50", - "weakness": "0", - "slayer_exp": "0", - "magic_animation": "7009", - "death_animation": "7011", - "lifepoints": "162", - "id": "6252", - "aggressive": "true", - "bonuses": "10,10,10,0,0,12,14,14,18,5,0,7,0,0,0", - "prj_height": "50", - "agg_radius": "64", - "range_animation": "7009", - "magic_level": "80", - "end_gfx": "24", - "defence_animation": "7010", - "name": "Bree", - "defence_level": "130", - "safespot": null, - "strength_level": "80", - "range_level": "150", - "projectile": "1188", - "attack_level": "110" - }, { "name": "", "defence_level": "1", @@ -189675,22 +188954,6 @@ "range_level": "1", "attack_level": "75" }, - { - "examine": "I wish I could tell where he was looking.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Grim Reaper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "6390", - "range_level": "1", - "attack_level": "1" - }, { "name": "Goblin", "defence_level": "1", @@ -199716,168 +198979,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the skeletons.", - "combat_style": "1", - "melee_animation": "5512", - "range_animation": "0", - "combat_audio": "774,775,777", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "2", - "magic_animation": "0", - "death_animation": "5514", - "name": "Skeleton Champion", - "defence_level": "20", - "safespot": null, - "lifepoints": "28", - "strength_level": "10", - "id": "3065", - "aggressive": "true", - "range_level": "20", - "attack_level": "10" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", @@ -206920,22 +206021,6 @@ "range_level": "20", "attack_level": "1" }, - { - "examine": "Master of the Champions' Guild.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Guildmaster", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "198", - "range_level": "1", - "attack_level": "1" - }, { "examine": "A mighty warrior!", "melee_animation": "395", @@ -224546,22 +223631,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Only the Grim Reaper would have a pet like this.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Muncher", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "2329", - "range_level": "1", - "attack_level": "1" - }, { "examine": "Perhaps this farmer might look after your crops for you.", "melee_animation": "0", @@ -229409,147 +228478,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", @@ -252924,34 +251852,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of Truth.", - "combat_style": "1", - "melee_animation": "7009", - "attack_speed": "5", - "respawn_delay": "50", - "weakness": "0", - "slayer_exp": "0", - "magic_animation": "7009", - "death_animation": "7011", - "lifepoints": "162", - "id": "6252", - "aggressive": "true", - "bonuses": "10,10,10,0,0,12,14,14,18,5,0,7,0,0,0", - "prj_height": "50", - "agg_radius": "64", - "range_animation": "7009", - "magic_level": "80", - "end_gfx": "24", - "defence_animation": "7010", - "name": "Bree", - "defence_level": "130", - "safespot": null, - "strength_level": "80", - "range_level": "150", - "projectile": "1188", - "attack_level": "110" - }, { "name": "", "defence_level": "1", @@ -254767,22 +253667,6 @@ "range_level": "1", "attack_level": "75" }, - { - "examine": "I wish I could tell where he was looking.", - "melee_animation": "0", - "range_animation": "0", - "defence_animation": "0", - "magic_animation": "0", - "death_animation": "0", - "name": "Grim Reaper", - "defence_level": "1", - "safespot": null, - "lifepoints": "10", - "strength_level": "1", - "id": "6390", - "range_level": "1", - "attack_level": "1" - }, { "name": "Goblin", "defence_level": "1", @@ -264706,147 +263590,6 @@ "range_level": "1", "attack_level": "1" }, - { - "examine": "Champion of the giants.", - "melee_animation": "6368", - "range_animation": "0", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "8", - "slayer_exp": "35", - "magic_animation": "0", - "death_animation": "6369", - "name": "Giant Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "28", - "id": "3058", - "aggressive": "true", - "range_level": "1", - "attack_level": "28" - }, - { - "examine": "Champion of the goblins.", - "melee_animation": "6188", - "range_animation": "0", - "combat_audio": "469,472,471", - "magic_level": "12", - "defence_animation": "0", - "weakness": "10", - "magic_animation": "0", - "death_animation": "6190", - "name": "Goblin Champion", - "defence_level": "12", - "safespot": null, - "lifepoints": "17", - "strength_level": "6", - "id": "3060", - "range_level": "1", - "attack_level": "6" - }, - { - "examine": "Champion of the hobgoblins.", - "combat_style": "1", - "range_animation": "0", - "combat_audio": "469,472,471", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "0", - "magic_animation": "0", - "death_animation": "2958", - "name": "Hobgoblin Champion", - "defence_level": "28", - "safespot": null, - "lifepoints": "40", - "strength_level": "14", - "id": "3061", - "aggressive": "true", - "range_level": "28", - "attack_level": "14" - }, - { - "examine": "Champion of the imps.", - "melee_animation": "5285", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "7", - "magic_animation": "0", - "death_animation": "172", - "name": "Imp Champion", - "defence_level": "7", - "safespot": null, - "lifepoints": "10", - "strength_level": "7", - "id": "3062", - "aggressive": "true", - "range_level": "7", - "attack_level": "7" - }, - { - "examine": "Champion of the jogres.", - "melee_animation": "2100", - "range_animation": "0", - "poisonous": "true", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "8576", - "name": "Jogre Champion", - "defence_level": "54", - "safespot": null, - "lifepoints": "77", - "strength_level": "54", - "id": "3063", - "aggressive": "true", - "range_level": "1", - "attack_level": "54" - }, - { - "examine": "Champion of the lesser demons.", - "melee_animation": "64", - "range_animation": "0", - "combat_audio": "400,404,403", - "magic_level": "81", - "respawn_delay": "60", - "defence_animation": "65", - "weakness": "5", - "slayer_exp": "79", - "magic_animation": "0", - "death_animation": "67", - "name": "Lesser Demon Champion", - "defence_level": "81", - "safespot": null, - "lifepoints": "115", - "strength_level": "1", - "id": "3064", - "aggressive": "true", - "range_level": "1", - "attack_level": "1" - }, - { - "examine": "Champion of the zombies.", - "melee_animation": "5581", - "range_animation": "0", - "attack_speed": "5", - "respawn_delay": "60", - "defence_animation": "0", - "weakness": "9", - "magic_animation": "0", - "death_animation": "5575", - "name": "Zombies Champion", - "defence_level": "26", - "safespot": null, - "lifepoints": "37", - "strength_level": "26", - "id": "3066", - "aggressive": "true", - "range_level": "1", - "attack_level": "26" - }, { "melee_animation": "7049", "respawn_delay": "60", diff --git a/Server/data/configs/npc_spawns.json b/Server/data/configs/npc_spawns.json index 3e5382a83..c3db5b9d7 100644 --- a/Server/data/configs/npc_spawns.json +++ b/Server/data/configs/npc_spawns.json @@ -4433,7 +4433,7 @@ }, { "npc_id": "2329", - "loc_data": "{1702,4823,0,0,6}" + "loc_data": "{3093,3260,0,1,6}-{1702.4822,0,0,0]" }, { "npc_id": "2330", diff --git a/Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt b/Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt index 3913ca055..4fc187e56 100644 --- a/Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt +++ b/Server/src/main/kotlin/rs09/game/content/ame/RandomEvents.kt @@ -6,11 +6,13 @@ import rs09.game.content.ame.events.certer.CerterNPC import rs09.game.content.ame.events.drilldemon.SeargentDamienNPC import rs09.game.content.ame.events.evilchicken.EvilChickenNPC import rs09.game.content.ame.events.sandwichlady.SandwichLadyRENPC +import rs09.game.content.ame.events.genie.GenieNPC import rs09.game.content.global.WeightBasedTable import rs09.game.content.global.WeightedItem enum class RandomEvents(val npc: RandomEventNPC, val loot: WeightBasedTable? = null) { SANDWICH_LADY(SandwichLadyRENPC()), + GENIE(GenieNPC()), CERTER(CerterNPC(),WeightBasedTable.create( WeightedItem(Items.COINS_995,1,100,2.0), WeightedItem(Items.SPINACH_ROLL_1969,1,1,2.0), diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt b/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt new file mode 100644 index 000000000..891502027 --- /dev/null +++ b/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieDialogue.kt @@ -0,0 +1,21 @@ +package rs09.game.content.ame.events.genie + +import api.ContentAPI +import core.game.content.dialogue.FacialExpression +import core.cache.def.impl.ItemDefinition +import core.game.component.Component +import core.game.node.entity.combat.ImpactHandler +import core.game.node.item.GroundItemManager +import core.game.node.item.Item +import rs09.game.content.dialogue.DialogueFile +import rs09.tools.END_DIALOGUE + +class GenieDialogue : DialogueFile() { + override fun handle(componentID: Int, buttonID: Int) { + val assigned = player!!.getAttribute("genie:item",0) + npcl(FacialExpression.NEUTRAL, "Ah, so you are there, ${player!!.name.capitalize()}. I'm so glad you summoned me. Please take this lamp and make your wish.") + ContentAPI.addItemOrDrop(player!!, assigned) + player!!.antiMacroHandler.event?.terminate() + stage = END_DIALOGUE + } +} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt b/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt new file mode 100644 index 000000000..c111da800 --- /dev/null +++ b/Server/src/main/kotlin/rs09/game/content/ame/events/genie/GenieNPC.kt @@ -0,0 +1,36 @@ +package rs09.game.content.ame.events.genie + +import core.game.node.entity.npc.NPC +import core.tools.RandomFunction +import org.rs09.consts.Items +import org.rs09.consts.NPCs +import rs09.game.content.ame.RandomEventNPC +import rs09.game.content.global.WeightBasedTable + +class GenieNPC(override var loot: WeightBasedTable? = null) : RandomEventNPC(NPCs.GENIE_409) { + val phrases = arrayOf("Greetings, @name!","Ehem... Master @name?","Are you there, Master @name?","No one ignores me!") + var assigned_item = 0 + val items = arrayOf(Items.LAMP_2528) + + override fun tick() { + if(RandomFunction.random(1,15) == 5){ + sendChat(phrases.random().replace("@name",player.name.capitalize())) + } + super.tick() + } + + override fun init() { + super.init() + assignItem() + sendChat(phrases.random().replace("@name",player.name.capitalize())) + } + + fun assignItem(){ + assigned_item = items.random() + player.setAttribute("genie:item",assigned_item) + } + + override fun talkTo(npc: NPC) { + player.dialogueInterpreter.open(GenieDialogue(),npc) + } +} \ No newline at end of file