Skip to content

Commit 4205a3d

Browse files
authored
Merge pull request #9957 from WinterSolstice8/hapool_ja_fixes
[lua] [sql] Improve Hundredfaced Hapool Ja
2 parents 9897e21 + 5317653 commit 4205a3d

4 files changed

Lines changed: 65 additions & 24 deletions

File tree

scripts/enum/mob_skill.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,8 @@ xi.mobSkill =
851851

852852
FORCEFUL_BLOW = 1731, -- Used with Mamool's weapons break.
853853

854+
FIRESPIT = 1733,
855+
854856
LAVA_SPIT = 1785,
855857

856858
GATES_OF_HADES = 1790,

scripts/zones/Mamook/IDs.lua

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,19 @@ zones[xi.zone.MAMOOK] =
2929
},
3030
mob =
3131
{
32-
ZIZZY_ZILLAH = GetFirstID('Zizzy_Zillah'),
33-
FIREDANCE_MAGMAAL_JA = GetFirstID('Firedance_Magmaal_Ja'),
34-
GULOOL_JA_JA = GetFirstID('Gulool_Ja_Ja'),
35-
CHAMROSH = GetFirstID('Chamrosh'),
36-
IRIRI_SAMARIRI = GetFirstID('Iriri_Samariri'),
37-
POROGGO_CASANOVA = GetFirstID('Poroggo_Casanova'),
38-
MAMOOL_JA = GetFirstID('Mamool_Ja'),
39-
MIKILULU = GetFirstID('Mikilulu'),
40-
MIKIRURU = GetFirstID('Mikiruru'),
41-
NIKILULU = GetFirstID('Nikilulu'),
42-
MIKILURU = GetFirstID('Mikiluru'),
43-
MIKIRULU = GetFirstID('Mikirulu'),
32+
ZIZZY_ZILLAH = GetFirstID('Zizzy_Zillah'),
33+
FIREDANCE_MAGMAAL_JA = GetFirstID('Firedance_Magmaal_Ja'),
34+
GULOOL_JA_JA = GetFirstID('Gulool_Ja_Ja'),
35+
CHAMROSH = GetFirstID('Chamrosh'),
36+
IRIRI_SAMARIRI = GetFirstID('Iriri_Samariri'),
37+
POROGGO_CASANOVA = GetFirstID('Poroggo_Casanova'),
38+
MAMOOL_JA = GetFirstID('Mamool_Ja'),
39+
MIKILULU = GetFirstID('Mikilulu'),
40+
MIKIRURU = GetFirstID('Mikiruru'),
41+
NIKILULU = GetFirstID('Nikilulu'),
42+
MIKILURU = GetFirstID('Mikiluru'),
43+
MIKIRULU = GetFirstID('Mikirulu'),
44+
HUNDRED_FACE_HAPOOL_JA = GetFirstID('Hundredfaced_Hapool_Ja'),
4445
},
4546
npc =
4647
{

scripts/zones/Mamook/mobs/Hundredfaced_Hapool_Ja.lua

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,22 @@
44
-----------------------------------
55
mixins = { require('scripts/mixins/job_special') }
66
-----------------------------------
7+
local ID = zones[xi.zone.MAMOOK]
8+
-----------------------------------
79
---@type TMobEntity
810
local entity = {}
911

10-
entity.onMobSpawn = function(mob)
11-
local hundredfacedHapoolJa = mob:getID()
12+
entity.onMobInitialize = function(mob)
13+
-- only the main copy gets the listener
14+
if mob:getID() ~= ID.mob.HUNDRED_FACE_HAPOOL_JA then
15+
return
16+
end
17+
1218
mob:addListener('MAGIC_USE', 'SPAWN_CLONES', function(mobArg, target, spell, action)
13-
local spellId = spell:getID()
14-
local mainMob = GetMobByID(hundredfacedHapoolJa)
15-
local hateTarget = mainMob and mainMob:getTarget()
19+
local hundredfacedHapoolJa = ID.mob.HUNDRED_FACE_HAPOOL_JA
20+
local spellId = spell:getID()
21+
local mainMob = GetMobByID(hundredfacedHapoolJa)
22+
local hateTarget = mainMob and mainMob:getTarget()
1623

1724
-- Utsusemi: Ichi (3 clones)
1825
if hateTarget then
@@ -50,18 +57,49 @@ entity.onMobSpawn = function(mob)
5057
end)
5158
end
5259

60+
entity.onMobSpawn = function(mob)
61+
mob:setMobMod(xi.mobMod.SPECIAL_SKILL, 0)
62+
mob:setMobMod(xi.mobMod.NO_STANDBACK, 1)
63+
end
64+
5365
entity.onMobEngage = function(mob, target)
54-
mob:castSpell(xi.magic.spell.UTSUSEMI_SAN, mob)
66+
-- Clone mobs cast a spell on engage
67+
if mob:getID() ~= ID.mob.HUNDRED_FACE_HAPOOL_JA then
68+
mob:castSpell()
69+
end
70+
end
71+
72+
entity.onMobMobskillChoose = function(mob, target, skillId)
73+
return xi.mobSkill.FIRESPIT
74+
end
75+
76+
entity.onMobWeaponSkill = function(mob, target, skill, action)
77+
-- Clones queue a mob ability when the main one does
78+
if mob:getID() == ID.mob.HUNDRED_FACE_HAPOOL_JA then
79+
for i = 1, 4 do
80+
local clone = GetMobByID(ID.mob.HUNDRED_FACE_HAPOOL_JA + i)
81+
82+
if clone then
83+
clone:useMobAbility()
84+
end
85+
end
86+
end
5587
end
5688

5789
entity.onMobDeath = function(mob, player, optParams)
58-
local hundredfacedHapoolJa = mob:getID()
59-
for i = 1, 4 do DespawnMob(hundredfacedHapoolJa + i) end
90+
if mob:getID() == ID.mob.HUNDRED_FACE_HAPOOL_JA then
91+
for i = 1, 4 do
92+
DespawnMob(ID.mob.HUNDRED_FACE_HAPOOL_JA + i)
93+
end
94+
end
6095
end
6196

6297
entity.onMobDespawn = function(mob)
63-
local hundredfacedHapoolJa = mob:getID()
64-
for i = 1, 4 do DespawnMob(hundredfacedHapoolJa + i) end
98+
if mob:getID() == ID.mob.HUNDRED_FACE_HAPOOL_JA then
99+
for i = 1, 4 do
100+
DespawnMob(ID.mob.HUNDRED_FACE_HAPOOL_JA + i)
101+
end
102+
end
65103
end
66104

67105
return entity

sql/mob_pools.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,7 +2063,7 @@ INSERT INTO `mob_pools` VALUES (2004,'Huginn','Huginn',55,0x0000BC01000000000000
20632063
INSERT INTO `mob_pools` VALUES (2005,'Humegutter_Adzjbadj','Humegutter_Adzjbadj',189,0x0000170400000000000000000000000000000000,1,1,2,240,100,0,1,0,1,2,0,32,0,159,0,0,0,0,0,334,334,3,20);
20642064
INSERT INTO `mob_pools` VALUES (2006,'Hume_Automaton','Hume_Automaton',149,0x0500D40400000000000000000000000000000000,7,7,4,280,100,0,0,0,0,18,0,0,1749,1027,0,0,4,0,0,2,149,1,17);
20652065
INSERT INTO `mob_pools` VALUES (2007,'Humnox_Drumbelly','Humnox_Drumbelly',373,0x0000410400000000000000000000000000000000,10,10,2,240,100,0,1,0,1,2,0,32,0,159,0,0,6,0,0,373,373,3,20);
2066-
INSERT INTO `mob_pools` VALUES (2008,'Hundredfaced_Hapool_Ja','Hundredfaced_Hapool_Ja',176,0x0600530600000000000000000000000000000000,13,13,10,280,100,0,1,1,1,2,0,32,0,159,4,0,7,0,0,176,176,3,12);
2066+
INSERT INTO `mob_pools` VALUES (2008,'Hundredfaced_Hapool_Ja','Hundredfaced_Hapool_Ja',176,0x0600530600000000000000000000000000000000,13,13,1,480,100,0,1,1,1,2,0,32,0,159,4,0,7,0,0,176,176,3,12);
20672067
INSERT INTO `mob_pools` VALUES (2009,'Hundredscar_Hajwaj','Hundredscar_Hajwaj',189,0x0000FB0300000000000000000000000000000000,1,1,5,240,100,0,1,0,1,2,0,32,0,155,0,0,0,0,0,334,334,1,15);
20682068
INSERT INTO `mob_pools` VALUES (2010,'Hunter_Antlion','Hunter_Antlion',26,0x0000430500000000000000000000000000000000,1,1,7,240,100,0,1,0,1,0,0,0,260,1155,0,0,0,0,0,26,26,1,12);
20692069
INSERT INTO `mob_pools` VALUES (2011,'Huntfly','Huntfly',113,0x0000C00100000000000000000000000000000000,4,4,2,240,100,0,1,0,1,18,6144,0,395,1671,0,0,1,0,0,997,375,3,20);
@@ -7119,7 +7119,7 @@ INSERT INTO `mob_pools` VALUES (7054,'Leviathan_Prime_TSTBW','Leviathan_Prime',4
71197119
INSERT INTO `mob_pools` VALUES (7055,'Armoury_Crate','Armoury_Crate',183,0x0000C00300000000000000000000000000000000,1,0,0,240,100,1024,0,0,0,80,0,0,0,131,8,0,0,0,0,0,183,1,12);
71207120

71217121
-- Mamook (cont.) - Utsusemi clones of Hundredfaced_Hapool_Ja
7122-
INSERT INTO `mob_pools` VALUES (7056,'Hundredfaced_clone','Hundredfaced_Hapool_Ja',176,0x0600530600000000000000000000000000000000,13,13,10,280,100,0,1,1,1,2,0,32,0,159,4,0,7,0,0,176,176,3,12);
7122+
INSERT INTO `mob_pools` VALUES (7056,'Hundredfaced_clone','Hundredfaced_Hapool_Ja',176,0x0600530600000000000000000000000000000000,13,13,1,480,100,0,1,1,1,2,0,32,0,159,4,0,7,0,0,176,176,3,12);
71237123

71247124
-- Grand Palace of Hu'Xzoi - Escort Quest for PM 8-2
71257125
INSERT INTO `mob_pools` VALUES (7057,'Quasilumin','Quasilumin',507,0x0000150400000000000000000000000000000000,1,0,0,240,100,0,0,0,0,64,0,8,0,129,0,0,0,2,0,0,507,0,12);

0 commit comments

Comments
 (0)