Freya instance Kegor spawn for quest Reunion with Sirra.

Contributed by CostyKiller.
This commit is contained in:
MobiusDevelopment 2022-06-18 00:47:05 +00:00
parent 1ad9e6db81
commit 73161eede9
8 changed files with 103 additions and 91 deletions

View File

@ -81,27 +81,27 @@ public class IceQueensCastleBattle extends AbstractInstance
private static final int SUPP_JINIA = 18850; // Jinia
private static final int SUPP_KEGOR = 18851; // Kegor
// Skills
private static final SkillHolder BLIZZARD_EASY = new SkillHolder(6274, 1); // Eternal Blizzard
private static final SkillHolder BLIZZARD_HARD = new SkillHolder(6275, 1); // Eternal Blizzard
private static final SkillHolder BLIZZARD_FORCE = new SkillHolder(6697, 1); // Eternal Blizzard
private static final SkillHolder BLIZZARD_BREATH = new SkillHolder(6299, 1); // Breath of Ice Palace - Ice Storm
private static final SkillHolder SUICIDE_BREATH = new SkillHolder(6300, 1); // Self-Destruction
private static final SkillHolder JINIA_SUPPORT = new SkillHolder(6288, 1); // Jinia's Prayer
private static final SkillHolder KEGOR_SUPPORT = new SkillHolder(6289, 1); // Kegor's Courage
private static final SkillHolder ICE_STONE = new SkillHolder(6301, 1); // Cold Mana's Fragment
private static final SkillHolder CANCEL = new SkillHolder(4618, 1); // NPC Cancel PC Target
private static final SkillHolder ETERNAL_BLIZZARD = new SkillHolder(6274, 1); // Eternal Blizzard
private static final SkillHolder ETERNAL_BLIZZARD_HARD = new SkillHolder(6275, 1); // Eternal Blizzard Hard
private static final SkillHolder ETERNAL_BLIZZARD_FORCE = new SkillHolder(6697, 1); // Eternal Blizzard Force
private static final SkillHolder BREATH_OF_ICE_PALACE = new SkillHolder(6299, 1); // Breath of Ice Palace - Ice Storm
private static final SkillHolder SELF_DESTRUCTION = new SkillHolder(6300, 1); // Self-Destruction
private static final SkillHolder JINIAS_PRAYER = new SkillHolder(6288, 1); // Jinia's Prayer
private static final SkillHolder KEGORS_COURAGE = new SkillHolder(6289, 1); // Kegor's Courage
private static final SkillHolder COLD_MANAS_FRAGMENT = new SkillHolder(6301, 1); // Cold Mana's Fragment
private static final SkillHolder NPC_CANCEL_PC_TARGET = new SkillHolder(4618, 1); // NPC Cancel PC Target
private static final SkillHolder POWER_STRIKE = new SkillHolder(6293, 1); // Power Strike
private static final SkillHolder POINT_TARGET = new SkillHolder(6295, 1); // Point Target
private static final SkillHolder CYLINDER_THROW = new SkillHolder(6297, 1); // Cylinder Throw
private static final SkillHolder SELF_RANGE_BUFF = new SkillHolder(6294, 1); // Leader's Roar
private static final SkillHolder LEADER_RUSH = new SkillHolder(6296, 1); // Rush
private static final SkillHolder ANTI_STRIDER = new SkillHolder(4258, 1); // Hinder Strider
private static final SkillHolder LEADERS_ROAR = new SkillHolder(6294, 1); // Leader's Roar
private static final SkillHolder RUSH = new SkillHolder(6296, 1); // Rush
private static final SkillHolder HINDER_STRIDER = new SkillHolder(4258, 1); // Hinder Strider
private static final SkillHolder ICE_BALL = new SkillHolder(6278, 1); // Ice Ball
private static final SkillHolder SUMMON_ELEMENTAL = new SkillHolder(6277, 1); // Summon Spirits
private static final SkillHolder SELF_NOVA = new SkillHolder(6279, 1); // Attack Nearby Range
private static final SkillHolder SUMMON_SPIRITS = new SkillHolder(6277, 1); // Summon Spirits
private static final SkillHolder ATTACK_NEARBY_RANGE = new SkillHolder(6279, 1); // Attack Nearby Range
private static final SkillHolder REFLECT_MAGIC = new SkillHolder(6282, 1); // Reflect Magic
private static final SkillHolder FREYA_ANGER = new SkillHolder(6285, 1); // Rage of Ice
private static final SkillHolder FREYA_BUFF = new SkillHolder(6284, 1); // Freya's Bless
private static final SkillHolder RAGE_OF_ICE = new SkillHolder(6285, 1); // Rage of Ice
private static final SkillHolder FREYA_BLESS = new SkillHolder(6284, 1); // Freya's Bless
// Locations
private static final Location FREYA_SPAWN = new Location(114720, -117085, -11088, 15956);
private static final Location FREYA_SPELLING_SPAWN = new Location(114723, -117502, -10672, 15956);
@ -151,6 +151,7 @@ public class IceQueensCastleBattle extends AbstractInstance
private static final int MAX_PLAYERS = 27;
private static final int MIN_PLAYERS = 10;
private static final int MIN_LEVEL = 82;
private static final int GLAKIAS_KILL_TIMER = 6; // Harcore Glakias Kill Timer in minutes
private static final int TEMPLATE_ID_EASY = 139; // Ice Queen's Castle
private static final int TEMPLATE_ID_HARD = 144; // Ice Queen's Castle (Epic)
private static final int DOOR_ID = 23140101;
@ -308,9 +309,9 @@ public class IceQueensCastleBattle extends AbstractInstance
manageScreenMsg(world, NpcStringId.BEGIN_STAGE_2);
if (params.getBoolean("isHardCore", false))
{
startQuestTimer("STAGE_2_FAILED", 360000, controller, null);
startQuestTimer("STAGE_2_FAILED", GLAKIAS_KILL_TIMER * 60 * 1000, controller, null);
manageTimer(world, 360, NpcStringId.BATTLE_END_LIMIT_TIME);
controller.getVariables().set("TIMER_END", System.currentTimeMillis() + 360000);
controller.getVariables().set("TIMER_END", System.currentTimeMillis() + GLAKIAS_KILL_TIMER * 60 * 1000);
}
break;
}
@ -348,7 +349,7 @@ public class IceQueensCastleBattle extends AbstractInstance
}
case "STAGE_2_FAILED2":
{
InstanceManager.getInstance().destroyInstance(world.getInstanceId());
finishInstance(world);
break;
}
case "STAGE_3_MOVIE":
@ -384,14 +385,14 @@ public class IceQueensCastleBattle extends AbstractInstance
manageScreenMsg(world, NpcStringId.BEGIN_STAGE_3);
if (isHardMode)
{
frey.doCast(FREYA_ANGER.getSkill());
frey.doCast(RAGE_OF_ICE.getSkill());
startQuestTimer("FREYA_BUFF", 15000, controller, null);
}
break;
}
case "FREYA_BUFF":
{
freya.doCast(FREYA_BUFF.getSkill());
freya.doCast(FREYA_BLESS.getSkill());
startQuestTimer("FREYA_BUFF", 15000, controller, null);
break;
}
@ -411,19 +412,19 @@ public class IceQueensCastleBattle extends AbstractInstance
case "CAST_BLIZZARD":
{
final boolean isHardMode = params.getBoolean("isHardCore", false);
if (!freya.isInvul())
if ((freya != null) && !freya.isInvul())
{
final int manaBurnUse = controller.getVariables().getInt("MANA_BURN_USE", 0);
if (isHardMode && (manaBurnUse < 4) && (freya.getCurrentHp() < (freya.getMaxHp() * (0.8 - (0.2 * manaBurnUse)))))
final int blizzardForceCount = controller.getVariables().getInt("BLIZZARD_FORCE_COUNT", 0);
if (isHardMode && (blizzardForceCount < 4) && (freya.getCurrentHp() < (freya.getMaxHp() * (0.8 - (0.2 * blizzardForceCount)))))
{
controller.getVariables().set("MANA_BURN_USE", manaBurnUse + 1);
freya.doCast(BLIZZARD_FORCE.getSkill());
controller.getVariables().set("BLIZZARD_FORCE_COUNT", blizzardForceCount + 1);
freya.doCast(ETERNAL_BLIZZARD_FORCE.getSkill());
startQuestTimer("MANA_BURN", 7000, controller, null);
manageScreenMsg(world, NpcStringId.MAGIC_POWER_SO_STRONG_THAT_IT_COULD_MAKE_YOU_LOSE_YOUR_MIND_CAN_BE_FELT_FROM_SOMEWHERE);
}
else
{
final Skill skill = (isHardMode ? BLIZZARD_HARD.getSkill() : BLIZZARD_EASY.getSkill());
final Skill skill = (isHardMode ? ETERNAL_BLIZZARD_HARD.getSkill() : ETERNAL_BLIZZARD.getSkill());
freya.doCast(skill);
manageScreenMsg(world, NpcStringId.STRONG_MAGIC_POWER_CAN_BE_FELT_FROM_SOMEWHERE);
}
@ -449,19 +450,19 @@ public class IceQueensCastleBattle extends AbstractInstance
freya.setInvul(false);
freya.disableCoreAI(false);
manageScreenMsg(world, NpcStringId.BEGIN_STAGE_4);
final QuestGuard jinia = (QuestGuard) addSpawn(SUPP_JINIA, SUPP_JINIA_SPAWN, false, 0, true, world.getInstanceId());
jinia.setRunning();
jinia.setInvul(true);
jinia.setCanReturnToSpawnPoint(false);
jinia.reduceCurrentHp(1, freya, null); // TODO: Find better way for attack
freya.reduceCurrentHp(1, jinia, null);
final QuestGuard kegor = (QuestGuard) addSpawn(SUPP_KEGOR, SUPP_KEGOR_SPAWN, false, 0, true, world.getInstanceId());
kegor.setRunning();
kegor.setInvul(true);
kegor.setCanReturnToSpawnPoint(false);
kegor.reduceCurrentHp(1, freya, null); // TODO: Find better way for attack
freya.reduceCurrentHp(1, kegor, null);
startQuestTimer("ATTACK_FREYA", 5000, jinia, null);
startQuestTimer("ATTACK_FREYA", 5000, kegor, null);
startQuestTimer("GIVE_SUPPORT", 1000, controller, null);
break;
}
@ -469,12 +470,19 @@ public class IceQueensCastleBattle extends AbstractInstance
{
if (params.getBoolean("isSupportActive", false))
{
world.getNpc(SUPP_JINIA).doCast(JINIA_SUPPORT.getSkill());
world.getNpc(SUPP_KEGOR).doCast(KEGOR_SUPPORT.getSkill());
world.getNpc(SUPP_JINIA).doCast(JINIAS_PRAYER.getSkill());
world.getNpc(SUPP_KEGOR).doCast(KEGORS_COURAGE.getSkill());
startQuestTimer("GIVE_SUPPORT", 25000, controller, null);
}
break;
}
case "FINISH_STAGE":
{
world.getNpc(SUPP_JINIA).deleteMe();
freya.teleToLocation(FREYA_CORPSE, freya.getInstanceId(), 0);
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH, world.getNpc(SUPP_KEGOR).getInstanceId(), 0);
break;
}
case "START_SPAWN":
{
for (Npc statues : getKnightStatues(world))
@ -555,7 +563,7 @@ public class IceQueensCastleBattle extends AbstractInstance
if (npc.isScriptValue(0) && !npc.isDead())
{
npc.setTarget(npc);
npc.doCast(ICE_STONE.getSkill());
npc.doCast(COLD_MANAS_FRAGMENT.getSkill());
npc.setScriptValue(1);
}
break;
@ -578,10 +586,10 @@ public class IceQueensCastleBattle extends AbstractInstance
}
else
{
if (npc.checkDoCastConditions(BLIZZARD_BREATH.getSkill()) && !npc.isCastingNow())
if (npc.checkDoCastConditions(BREATH_OF_ICE_PALACE.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(npc);
npc.doCast(BLIZZARD_BREATH.getSkill());
npc.doCast(BREATH_OF_ICE_PALACE.getSkill());
}
startQuestTimer("BLIZZARD", 20000, npc, null);
}
@ -591,7 +599,7 @@ public class IceQueensCastleBattle extends AbstractInstance
case "ELEMENTAL_SUICIDE":
{
npc.setTarget(npc);
npc.doCast(SUICIDE_BREATH.getSkill());
npc.doCast(SELF_DESTRUCTION.getSkill());
break;
}
case "ELEMENTAL_KILLED":
@ -599,7 +607,30 @@ public class IceQueensCastleBattle extends AbstractInstance
if (npc.getVariables().getInt("SUICIDE_ON") == 1)
{
npc.setTarget(npc);
npc.doCast(SUICIDE_BREATH.getSkill());
npc.doCast(SELF_DESTRUCTION.getSkill());
}
break;
}
case "ATTACK_FREYA":
{
final SkillHolder skill = npc.getTemplate().getParameters().getObject("Skill01_ID", SkillHolder.class);
if (npc.isInsideRadius2D(freya, 100))
{
if (npc.checkDoCastConditions(skill.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(freya);
npc.doCast(skill.getSkill());
startQuestTimer("ATTACK_FREYA", 20000, npc, null);
}
else
{
startQuestTimer("ATTACK_FREYA", 5000, npc, null);
}
}
else
{
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, freya);
startQuestTimer("ATTACK_FREYA", 5000, npc, null);
}
break;
}
@ -617,15 +648,15 @@ public class IceQueensCastleBattle extends AbstractInstance
players.broadcastPacket(ExChangeClientEffectInfo.STATIC_FREYA_DEFAULT);
}
}
InstanceManager.getInstance().destroyInstance(world.getInstanceId());
finishInstance(world);
break;
}
case "LEADER_RANGEBUFF":
{
if (npc.checkDoCastConditions(SELF_RANGE_BUFF.getSkill()) && !npc.isCastingNow())
if (npc.checkDoCastConditions(LEADERS_ROAR.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(npc);
npc.doCast(SELF_RANGE_BUFF.getSkill());
npc.doCast(LEADERS_ROAR.getSkill());
}
else
{
@ -648,7 +679,7 @@ public class IceQueensCastleBattle extends AbstractInstance
if (getRandomBoolean() && !npc.isCastingNow() && (mostHated != null) && !mostHated.isDead() && (npc.calculateDistance3D(mostHated) < 1000))
{
npc.setTarget(mostHated);
npc.doCast(LEADER_RUSH.getSkill());
npc.doCast(RUSH.getSkill());
}
startQuestTimer("LEADER_DASH", 10000, npc, null);
break;
@ -782,10 +813,10 @@ public class IceQueensCastleBattle extends AbstractInstance
}
else
{
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()) && !npc.isCastingNow() && !npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(HINDER_STRIDER.getSkillId()) && !npc.isCastingNow() && !npc.isSkillDisabled(HINDER_STRIDER.getSkill()))
{
npc.setTarget(attacker);
npc.doCast(ANTI_STRIDER.getSkill());
npc.doCast(HINDER_STRIDER.getSkill());
}
final Creature mostHated = ((Attackable) npc).getMostHated();
@ -813,25 +844,25 @@ public class IceQueensCastleBattle extends AbstractInstance
{
if (getRandomBoolean())
{
if ((npc.calculateDistance3D(attacker) <= 800) && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
if ((npc.calculateDistance3D(attacker) <= 800) && npc.checkDoCastConditions(SUMMON_SPIRITS.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(attacker);
npc.doCast(SUMMON_ELEMENTAL.getSkill());
npc.doCast(SUMMON_SPIRITS.getSkill());
}
}
else
{
if (canReachMostHated && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
if (canReachMostHated && npc.checkDoCastConditions(SUMMON_SPIRITS.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(mostHated);
npc.doCast(SUMMON_ELEMENTAL.getSkill());
npc.doCast(SUMMON_SPIRITS.getSkill());
}
}
}
else if ((getRandom(10000) < 1500) && !npc.isAffectedBySkill(SELF_NOVA.getSkillId()) && npc.checkDoCastConditions(SELF_NOVA.getSkill()) && !npc.isCastingNow())
else if ((getRandom(10000) < 1500) && !npc.isAffectedBySkill(ATTACK_NEARBY_RANGE.getSkillId()) && npc.checkDoCastConditions(ATTACK_NEARBY_RANGE.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(npc);
npc.doCast(SELF_NOVA.getSkill());
npc.doCast(ATTACK_NEARBY_RANGE.getSkill());
}
}
break;
@ -865,10 +896,10 @@ public class IceQueensCastleBattle extends AbstractInstance
startQuestTimer("SPAWN_SUPPORT", 27000, controller, null);
}
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(ANTI_STRIDER.getSkillId()) && !npc.isCastingNow() && !npc.isSkillDisabled(ANTI_STRIDER.getSkill()))
if ((attacker.getMountType() == MountType.STRIDER) && !attacker.isAffectedBySkill(HINDER_STRIDER.getSkillId()) && !npc.isCastingNow() && !npc.isSkillDisabled(HINDER_STRIDER.getSkill()))
{
npc.setTarget(attacker);
npc.doCast(ANTI_STRIDER.getSkill());
npc.doCast(HINDER_STRIDER.getSkill());
}
final Creature mostHated = ((Attackable) npc).getMostHated();
@ -896,27 +927,27 @@ public class IceQueensCastleBattle extends AbstractInstance
{
if (getRandomBoolean())
{
if ((npc.calculateDistance3D(attacker) <= 800) && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
if ((npc.calculateDistance3D(attacker) <= 800) && npc.checkDoCastConditions(SUMMON_SPIRITS.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(attacker);
npc.doCast(SUMMON_ELEMENTAL.getSkill());
npc.doCast(SUMMON_SPIRITS.getSkill());
}
}
else
{
if (canReachMostHated && npc.checkDoCastConditions(SUMMON_ELEMENTAL.getSkill()) && !npc.isCastingNow())
if (canReachMostHated && npc.checkDoCastConditions(SUMMON_SPIRITS.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(mostHated);
npc.doCast(SUMMON_ELEMENTAL.getSkill());
npc.doCast(SUMMON_SPIRITS.getSkill());
}
}
}
else if (getRandom(10000) < 1500)
{
if (!npc.isAffectedBySkill(SELF_NOVA.getSkillId()) && npc.checkDoCastConditions(SELF_NOVA.getSkill()) && !npc.isCastingNow())
if (!npc.isAffectedBySkill(ATTACK_NEARBY_RANGE.getSkillId()) && npc.checkDoCastConditions(ATTACK_NEARBY_RANGE.getSkill()) && !npc.isCastingNow())
{
npc.setTarget(npc);
npc.doCast(SELF_NOVA.getSkill());
npc.doCast(ATTACK_NEARBY_RANGE.getSkill());
}
}
else if (getRandom(10000) < 1333)
@ -934,7 +965,7 @@ public class IceQueensCastleBattle extends AbstractInstance
if (npc.isScriptValue(0) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.5)))
{
npc.setTarget(attacker);
npc.doCast(ICE_STONE.getSkill());
npc.doCast(COLD_MANAS_FRAGMENT.getSkill());
npc.setScriptValue(1);
}
break;
@ -971,12 +1002,12 @@ public class IceQueensCastleBattle extends AbstractInstance
npc.getVariables().set("OFF_SHOUT", 1);
npc.getVariables().set("DELAY_VAL", 2);
npc.setTarget(attacker);
npc.doCast(CANCEL.getSkill());
npc.doCast(NPC_CANCEL_PC_TARGET.getSkill());
}
else if (npc.getVariables().getInt("OFF_SHOUT") == 1)
{
npc.setTarget(attacker);
npc.doCast(CANCEL.getSkill());
npc.doCast(NPC_CANCEL_PC_TARGET.getSkill());
}
}
else if ((npc.getVariables().getInt("OFF_SHOUT") == 0) && (npc.getVariables().getInt("DELAY_VAL") == 1))
@ -1058,7 +1089,7 @@ public class IceQueensCastleBattle extends AbstractInstance
{
case GLACIER:
{
if (skill == ICE_STONE.getSkill())
if (skill == COLD_MANAS_FRAGMENT.getSkill())
{
if (getRandom(100) < 75)
{
@ -1081,7 +1112,7 @@ public class IceQueensCastleBattle extends AbstractInstance
}
case BREATH:
{
if (skill == SUICIDE_BREATH.getSkill())
if (skill == SELF_DESTRUCTION.getSkill())
{
npc.doDie(null);
}
@ -1115,24 +1146,15 @@ public class IceQueensCastleBattle extends AbstractInstance
case FREYA_STAND_HARD:
{
world.setParameter("isSupportActive", false);
npc.teleToLocation(FREYA_CORPSE);
final Npc jinia = world.getNpc(SUPP_JINIA);
final Npc kegor = world.getNpc(SUPP_KEGOR);
if (jinia != null)
{
world.getNpc(SUPP_JINIA).deleteMe();
}
if (kegor != null)
{
world.getNpc(SUPP_KEGOR).teleToLocation(KEGOR_FINISH);
}
manageMovie(world, Movie.SC_BOSS_FREYA_ENDING_A);
manageDespawnMinions(world);
finishInstance(world);
DecayTaskManager.getInstance().cancel(npc);
cancelQuestTimer("ATTACK_FREYA", world.getNpc(SUPP_JINIA), null);
cancelQuestTimer("ATTACK_FREYA", world.getNpc(SUPP_KEGOR), null);
cancelQuestTimer("GIVE_SUPPORT", controller, null);
cancelQuestTimer("CAST_BLIZZARD", controller, null);
cancelQuestTimer("FREYA_BUFF", controller, null);
startQuestTimer("FINISH_STAGE", 16000, controller, null);
startQuestTimer("FINISH_WORLD", 300000, controller, null);
break;
}
@ -1142,6 +1164,7 @@ public class IceQueensCastleBattle extends AbstractInstance
final Npc spawnedBy = npc.getVariables().getObject("SPAWNED_NPC", Npc.class);
final NpcVariables var = controller.getVariables();
int knightCount = var.getInt("KNIGHT_COUNT");
if ((var.getInt("FREYA_MOVE") == 0) && world.isStatus(1))
{
var.set("FREYA_MOVE", 1);

View File

@ -1,4 +1,4 @@
<html><body>Rafforty:<br>
It's not time for that yet.<br>
(Only character with level 82 or above and who has completed the quest of Reunion with Sirra can take on this quest.)
(Only character with level 82 or above and who has completed the quest Meeting Sirra can take on this quest.)
</body></html>

View File

@ -1,2 +1,3 @@
<html><body>Jinia:<br>
Meet at the Ice Queen's castle garden again.
</body></html>

View File

@ -1,5 +0,0 @@
<html><body>Jinia:<br>
Alright, we'll depart now. Keep those nerves of steel!<br>
<a action="bypass -h npc_%objectId%_Quest IceQueensCastleEasy">Enter the Ice Queen's Castle.</a><br>
<a action="bypass -h Quest Q10286_ReunionWithSirra 32781-03.html">"Wait a moment, I'm not ready."</a>
</body></html>

View File

@ -1,3 +0,0 @@
<html><body>Jinia:<br>
Alright, understood. Preparations must be thorough. Just let me know when you're ready to go.
</body></html>

View File

@ -1,4 +0,0 @@
<html><body>Jinia:<br>
I finally thought we had accomplished our life-long dream... Sirra's betrayal surprised us all. She only wanted to defeat the Ice Queen so she could take her place...<br>
But, we won't overlook the courage you've shown. Allow us a chance to properly show our gratitude. Why don't we go to Jinia Guild and conclude this later.
</body></html>

View File

@ -2117,7 +2117,7 @@
<run ground="160" />
</speed>
</stats>
<status attackable="false" undying="false" canBeSown="true" />
<status attackable="false" talkable="false" undying="false" canBeSown="true" />
<skillList>
<skill id="4032" level="10" /> <!-- NPC Strike -->
<skill id="4408" level="10" /> <!-- HP Increase (2x) -->

View File

@ -1162,8 +1162,8 @@
<set name="targetType" val="AURA" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="3" />
<mul stat="mAtk" val="3" />
<mul stat="pAtk" val="4" />
<mul stat="mAtk" val="4" />
<mul stat="pAtkSpd" val="1.25" />
<mul stat="mAtkSpd" val="1.25" />
</effect>