TerritoryWarSuperClass.java 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579
  1. /*
  2. * Copyright (C) 2004-2015 L2J DataPack
  3. *
  4. * This file is part of L2J DataPack.
  5. *
  6. * L2J DataPack is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * L2J DataPack is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. package quests.TerritoryWarScripts;
  20. import java.util.Calendar;
  21. import java.util.HashMap;
  22. import java.util.Map;
  23. import quests.Q00147_PathtoBecominganEliteMercenary.Q00147_PathtoBecominganEliteMercenary;
  24. import quests.Q00148_PathtoBecominganExaltedMercenary.Q00148_PathtoBecominganExaltedMercenary;
  25. import quests.Q00176_StepsForHonor.Q00176_StepsForHonor;
  26. import com.l2jserver.gameserver.instancemanager.CastleManager;
  27. import com.l2jserver.gameserver.instancemanager.GlobalVariablesManager;
  28. import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
  29. import com.l2jserver.gameserver.instancemanager.TerritoryWarManager.TerritoryNPCSpawn;
  30. import com.l2jserver.gameserver.model.L2Object;
  31. import com.l2jserver.gameserver.model.L2World;
  32. import com.l2jserver.gameserver.model.TerritoryWard;
  33. import com.l2jserver.gameserver.model.actor.L2Character;
  34. import com.l2jserver.gameserver.model.actor.L2Npc;
  35. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  36. import com.l2jserver.gameserver.model.quest.Quest;
  37. import com.l2jserver.gameserver.model.quest.QuestState;
  38. import com.l2jserver.gameserver.model.quest.State;
  39. import com.l2jserver.gameserver.model.skills.Skill;
  40. import com.l2jserver.gameserver.network.NpcStringId;
  41. import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
  42. import com.l2jserver.gameserver.util.Util;
  43. /**
  44. * Territory War quests superclass.
  45. * @author Gigiikun
  46. */
  47. public class TerritoryWarSuperClass extends Quest
  48. {
  49. private static Map<Integer, TerritoryWarSuperClass> _forTheSakeScripts = new HashMap<>();
  50. private static Map<Integer, TerritoryWarSuperClass> _protectTheScripts = new HashMap<>();
  51. private static Map<Integer, TerritoryWarSuperClass> _killTheScripts = new HashMap<>();
  52. // "For the Sake of the Territory ..." quests variables
  53. public int CATAPULT_ID;
  54. public int TERRITORY_ID;
  55. public int[] LEADER_IDS;
  56. public int[] GUARD_IDS;
  57. public NpcStringId[] npcString = {};
  58. // "Protect the ..." quests variables
  59. public int[] NPC_IDS;
  60. // "Kill The ..."
  61. public int[] CLASS_IDS;
  62. public int RANDOM_MIN;
  63. public int RANDOM_MAX;
  64. public TerritoryWarSuperClass(int questId, String name, String descr)
  65. {
  66. super(questId, name, descr);
  67. if (questId < 0)
  68. {
  69. // Outpost and Ward handled by the Super Class script
  70. addSkillSeeId(36590);
  71. // Calculate next TW date
  72. final Calendar cal = Calendar.getInstance();
  73. final long nextSiegeDate = GlobalVariablesManager.getInstance().getLong(TerritoryWarManager.GLOBAL_VARIABLE, 0);
  74. if (nextSiegeDate > System.currentTimeMillis())
  75. {
  76. cal.setTimeInMillis(nextSiegeDate);
  77. }
  78. else
  79. {
  80. // Let's check if territory war date was in the past
  81. if (cal.before(Calendar.getInstance()))
  82. {
  83. cal.setTimeInMillis(System.currentTimeMillis());
  84. }
  85. boolean hasOwnedCastle = CastleManager.getInstance().hasOwnedCastle();
  86. cal.set(Calendar.DAY_OF_WEEK, hasOwnedCastle ? Calendar.SATURDAY : Calendar.SUNDAY);
  87. cal.set(Calendar.HOUR_OF_DAY, hasOwnedCastle ? 20 : 22);
  88. cal.set(Calendar.MINUTE, 0);
  89. cal.set(Calendar.SECOND, 0);
  90. if (cal.before(Calendar.getInstance()))
  91. {
  92. cal.add(Calendar.WEEK_OF_YEAR, 2);
  93. }
  94. GlobalVariablesManager.getInstance().set(TerritoryWarManager.GLOBAL_VARIABLE, cal.getTimeInMillis());
  95. }
  96. TerritoryWarManager.getInstance().setTWStartTimeInMillis(cal.getTimeInMillis());
  97. _log.info(getClass().getSimpleName() + ": Siege date: " + cal.getTime());
  98. }
  99. }
  100. public int getTerritoryIdForThisNPCId(int npcid)
  101. {
  102. return 0;
  103. }
  104. private void handleKillTheQuest(L2PcInstance player)
  105. {
  106. QuestState st = getQuestState(player, false);
  107. int kill = 1;
  108. int max = 10;
  109. if (st == null)
  110. {
  111. st = newQuestState(player);
  112. }
  113. if (!st.isCompleted())
  114. {
  115. if (!st.isStarted())
  116. {
  117. st.setState(State.STARTED);
  118. st.setCond(1);
  119. st.set("kill", "1");
  120. max = getRandom(RANDOM_MIN, RANDOM_MAX);
  121. st.set("max", String.valueOf(max));
  122. }
  123. else
  124. {
  125. kill = st.getInt("kill") + 1;
  126. max = st.getInt("max");
  127. }
  128. if (kill >= max)
  129. {
  130. TerritoryWarManager.getInstance().giveTWQuestPoint(player);
  131. addExpAndSp(player, 534000, 51000);
  132. st.set("doneDate", String.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_YEAR)));
  133. st.exitQuest(true);
  134. player.sendPacket(new ExShowScreenMessage(npcString[1], 2, 10000));
  135. }
  136. else
  137. {
  138. st.set("kill", String.valueOf(kill));
  139. ExShowScreenMessage message = new ExShowScreenMessage(npcString[0], 2, 10000);
  140. message.addStringParameter(String.valueOf(max));
  141. message.addStringParameter(String.valueOf(kill));
  142. player.sendPacket(message);
  143. }
  144. }
  145. else if (st.getInt("doneDate") != Calendar.getInstance().get(Calendar.DAY_OF_YEAR))
  146. {
  147. st.setState(State.STARTED);
  148. st.setCond(1);
  149. st.set("kill", "1");
  150. max = getRandom(RANDOM_MIN, RANDOM_MAX);
  151. st.set("max", String.valueOf(max));
  152. ExShowScreenMessage message = new ExShowScreenMessage(npcString[0], 2, 10000);
  153. message.addStringParameter(String.valueOf(max));
  154. message.addStringParameter(String.valueOf(kill));
  155. player.sendPacket(message);
  156. }
  157. else if (player.isGM())
  158. {
  159. // just for test
  160. player.sendMessage("Cleaning " + getName() + " Territory War quest by force!");
  161. st.setState(State.STARTED);
  162. st.setCond(1);
  163. st.set("kill", "1");
  164. max = getRandom(RANDOM_MIN, RANDOM_MAX);
  165. st.set("max", String.valueOf(max));
  166. ExShowScreenMessage message = new ExShowScreenMessage(npcString[0], 2, 10000);
  167. message.addStringParameter(String.valueOf(max));
  168. message.addStringParameter(String.valueOf(kill));
  169. player.sendPacket(message);
  170. }
  171. }
  172. @Override
  173. public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isSummon)
  174. {
  175. if ((npc.getCurrentHp() == npc.getMaxHp()) && Util.contains(NPC_IDS, npc.getId()))
  176. {
  177. int territoryId = getTerritoryIdForThisNPCId(npc.getId());
  178. if ((territoryId >= 81) && (territoryId <= 89))
  179. {
  180. for (L2PcInstance pl : L2World.getInstance().getPlayers())
  181. {
  182. if (pl.getSiegeSide() == territoryId)
  183. {
  184. QuestState st = pl.getQuestState(getName());
  185. if (st == null)
  186. {
  187. st = newQuestState(pl);
  188. }
  189. if (!st.isStarted())
  190. {
  191. st.setState(State.STARTED, false);
  192. st.setCond(1);
  193. }
  194. }
  195. }
  196. }
  197. }
  198. return super.onAttack(npc, player, damage, isSummon);
  199. }
  200. @Override
  201. public String onDeath(L2Character killer, L2Character victim, QuestState qs)
  202. {
  203. if ((killer == victim) || !(victim instanceof L2PcInstance) || (victim.getLevel() < 61))
  204. {
  205. return "";
  206. }
  207. L2PcInstance actingPlayer = killer.getActingPlayer();
  208. if ((actingPlayer != null) && (qs.getPlayer() != null))
  209. {
  210. if (actingPlayer.getParty() != null)
  211. {
  212. for (L2PcInstance pl : actingPlayer.getParty().getMembers())
  213. {
  214. if ((pl.getSiegeSide() == qs.getPlayer().getSiegeSide()) || (pl.getSiegeSide() == 0) || !Util.checkIfInRange(2000, killer, pl, false))
  215. {
  216. continue;
  217. }
  218. if (pl == actingPlayer)
  219. {
  220. handleStepsForHonor(actingPlayer);
  221. handleBecomeMercenaryQuest(actingPlayer, false);
  222. }
  223. handleKillTheQuest(pl);
  224. }
  225. }
  226. else if ((actingPlayer.getSiegeSide() != qs.getPlayer().getSiegeSide()) && (actingPlayer.getSiegeSide() > 0))
  227. {
  228. handleKillTheQuest(actingPlayer);
  229. handleStepsForHonor(actingPlayer);
  230. handleBecomeMercenaryQuest(actingPlayer, false);
  231. }
  232. TerritoryWarManager.getInstance().giveTWPoint(actingPlayer, qs.getPlayer().getSiegeSide(), 1);
  233. }
  234. return "";
  235. }
  236. @Override
  237. public String onEnterWorld(L2PcInstance player)
  238. {
  239. int territoryId = TerritoryWarManager.getInstance().getRegisteredTerritoryId(player);
  240. if (territoryId > 0)
  241. {
  242. // register Territory Quest
  243. TerritoryWarSuperClass territoryQuest = _forTheSakeScripts.get(territoryId);
  244. QuestState st = player.getQuestState(territoryQuest.getName());
  245. if (st == null)
  246. {
  247. st = territoryQuest.newQuestState(player);
  248. }
  249. st.setState(State.STARTED, false);
  250. st.setCond(1);
  251. // register player on Death
  252. if (player.getLevel() >= 61)
  253. {
  254. TerritoryWarSuperClass killthe = _killTheScripts.get(player.getClassId().getId());
  255. if (killthe != null)
  256. {
  257. st = player.getQuestState(killthe.getName());
  258. if (st == null)
  259. {
  260. st = killthe.newQuestState(player);
  261. }
  262. player.addNotifyQuestOfDeath(st);
  263. }
  264. else
  265. {
  266. _log.warning("TerritoryWar: Missing Kill the quest for player " + player.getName() + " whose class id: " + player.getClassId().getId());
  267. }
  268. }
  269. }
  270. return null;
  271. }
  272. @Override
  273. public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
  274. {
  275. TerritoryWarManager manager = TerritoryWarManager.getInstance();
  276. if (npc.getId() == CATAPULT_ID)
  277. {
  278. manager.territoryCatapultDestroyed(TERRITORY_ID - 80);
  279. manager.giveTWPoint(killer, TERRITORY_ID, 4);
  280. manager.announceToParticipants(new ExShowScreenMessage(npcString[0], 2, 10000), 135000, 13500);
  281. handleBecomeMercenaryQuest(killer, true);
  282. }
  283. else if (Util.contains(LEADER_IDS, npc.getId()))
  284. {
  285. manager.giveTWPoint(killer, TERRITORY_ID, 3);
  286. }
  287. if ((killer.getSiegeSide() != TERRITORY_ID) && (TerritoryWarManager.getInstance().getTerritory(killer.getSiegeSide() - 80) != null))
  288. {
  289. manager.getTerritory(killer.getSiegeSide() - 80).getQuestDone()[0]++;
  290. }
  291. return super.onKill(npc, killer, isSummon);
  292. }
  293. @Override
  294. public String onSkillSee(L2Npc npc, L2PcInstance caster, Skill skill, L2Object[] targets, boolean isSummon)
  295. {
  296. if (Util.contains(targets, npc))
  297. {
  298. if (skill.getId() == 845)
  299. {
  300. if (TerritoryWarManager.getInstance().getHQForClan(caster.getClan()) != npc)
  301. {
  302. return super.onSkillSee(npc, caster, skill, targets, isSummon);
  303. }
  304. npc.deleteMe();
  305. TerritoryWarManager.getInstance().setHQForClan(caster.getClan(), null);
  306. }
  307. else if (skill.getId() == 847)
  308. {
  309. if (TerritoryWarManager.getInstance().getHQForTerritory(caster.getSiegeSide()) != npc)
  310. {
  311. return super.onSkillSee(npc, caster, skill, targets, isSummon);
  312. }
  313. TerritoryWard ward = TerritoryWarManager.getInstance().getTerritoryWard(caster);
  314. if (ward == null)
  315. {
  316. return super.onSkillSee(npc, caster, skill, targets, isSummon);
  317. }
  318. if ((caster.getSiegeSide() - 80) == ward.getOwnerCastleId())
  319. {
  320. for (TerritoryNPCSpawn wardSpawn : TerritoryWarManager.getInstance().getTerritory(ward.getOwnerCastleId()).getOwnedWard())
  321. {
  322. if (wardSpawn.getId() == ward.getTerritoryId())
  323. {
  324. wardSpawn.setNPC(wardSpawn.getNpc().getSpawn().doSpawn());
  325. ward.unSpawnMe();
  326. ward.setNpc(wardSpawn.getNpc());
  327. }
  328. }
  329. }
  330. else
  331. {
  332. ward.unSpawnMe();
  333. ward.setNpc(TerritoryWarManager.getInstance().addTerritoryWard(ward.getTerritoryId(), caster.getSiegeSide() - 80, ward.getOwnerCastleId(), true));
  334. ward.setOwnerCastleId(caster.getSiegeSide() - 80);
  335. TerritoryWarManager.getInstance().getTerritory(caster.getSiegeSide() - 80).getQuestDone()[1]++;
  336. }
  337. }
  338. }
  339. return super.onSkillSee(npc, caster, skill, targets, isSummon);
  340. }
  341. // Used to register NPCs "For the Sake of the Territory ..." quests
  342. public void registerKillIds()
  343. {
  344. addKillId(CATAPULT_ID);
  345. for (int mobid : LEADER_IDS)
  346. {
  347. addKillId(mobid);
  348. }
  349. for (int mobid : GUARD_IDS)
  350. {
  351. addKillId(mobid);
  352. }
  353. }
  354. @Override
  355. public void setOnEnterWorld(boolean val)
  356. {
  357. super.setOnEnterWorld(val);
  358. for (L2PcInstance player : L2World.getInstance().getPlayers())
  359. {
  360. if (player.getSiegeSide() > 0)
  361. {
  362. TerritoryWarSuperClass territoryQuest = _forTheSakeScripts.get(player.getSiegeSide());
  363. if (territoryQuest == null)
  364. {
  365. continue;
  366. }
  367. QuestState st = player.hasQuestState(territoryQuest.getName()) ? player.getQuestState(territoryQuest.getName()) : territoryQuest.newQuestState(player);
  368. if (val)
  369. {
  370. st.setState(State.STARTED, false);
  371. st.setCond(1);
  372. // register player on Death
  373. if (player.getLevel() >= 61)
  374. {
  375. TerritoryWarSuperClass killthe = _killTheScripts.get(player.getClassId().getId());
  376. if (killthe != null)
  377. {
  378. st = player.getQuestState(killthe.getName());
  379. if (st == null)
  380. {
  381. st = killthe.newQuestState(player);
  382. }
  383. player.addNotifyQuestOfDeath(st);
  384. }
  385. else
  386. {
  387. _log.warning("TerritoryWar: Missing Kill the quest for player " + player.getName() + " whose class id: " + player.getClassId().getId());
  388. }
  389. }
  390. }
  391. else
  392. {
  393. st.exitQuest(false);
  394. for (Quest q : _protectTheScripts.values())
  395. {
  396. st = player.getQuestState(q.getName());
  397. if (st != null)
  398. {
  399. st.exitQuest(false);
  400. }
  401. }
  402. // unregister player on Death
  403. TerritoryWarSuperClass killthe = _killTheScripts.get(player.getClassIndex());
  404. if (killthe != null)
  405. {
  406. st = player.getQuestState(killthe.getName());
  407. if (st != null)
  408. {
  409. player.removeNotifyQuestOfDeath(st);
  410. }
  411. }
  412. }
  413. }
  414. }
  415. }
  416. private static void handleBecomeMercenaryQuest(L2PcInstance player, boolean catapult)
  417. {
  418. int enemyCount = 10, catapultCount = 1;
  419. QuestState st = player.getQuestState(Q00147_PathtoBecominganEliteMercenary.class.getSimpleName());
  420. if ((st != null) && st.isCompleted())
  421. {
  422. st = player.getQuestState(Q00148_PathtoBecominganExaltedMercenary.class.getSimpleName());
  423. enemyCount = 30;
  424. catapultCount = 2;
  425. }
  426. if ((st != null) && st.isStarted())
  427. {
  428. final int cond = st.getCond();
  429. if (catapult)
  430. {
  431. if ((cond == 1) || (cond == 2))
  432. {
  433. final int count = st.getInt("catapult") + 1;
  434. st.set("catapult", String.valueOf(count));
  435. if (count >= catapultCount)
  436. {
  437. st.setCond((cond == 1) ? 3 : 4);
  438. }
  439. }
  440. }
  441. else if ((cond == 1) || (cond == 3))
  442. {
  443. final int kills = st.getInt("kills") + 1;
  444. st.set("kills", Integer.toString(kills));
  445. if (kills >= enemyCount)
  446. {
  447. st.setCond((cond == 1) ? 2 : 4);
  448. }
  449. }
  450. }
  451. }
  452. private static void handleStepsForHonor(L2PcInstance player)
  453. {
  454. final QuestState _sfh = player.getQuestState(Q00176_StepsForHonor.class.getSimpleName());
  455. if ((_sfh != null) && _sfh.isStarted())
  456. {
  457. final int cond = _sfh.getCond();
  458. if ((cond == 1) || (cond == 3) || (cond == 5) || (cond == 7))
  459. {
  460. final int kills = _sfh.getInt("kills") + 1;
  461. _sfh.set("kills", kills);
  462. if ((cond == 1) && (kills >= 9))
  463. {
  464. _sfh.setCond(2);
  465. _sfh.set("kills", "0");
  466. }
  467. else if ((cond == 3) && (kills >= 18))
  468. {
  469. _sfh.setCond(4);
  470. _sfh.set("kills", "0");
  471. }
  472. else if ((cond == 5) && (kills >= 27))
  473. {
  474. _sfh.setCond(6);
  475. _sfh.set("kills", "0");
  476. }
  477. else if ((cond == 7) && (kills >= 36))
  478. {
  479. _sfh.setCond(8);
  480. _sfh.unset("kills");
  481. }
  482. }
  483. }
  484. }
  485. public static void main(String[] args)
  486. {
  487. // initialize superclass
  488. new TerritoryWarSuperClass(-1, TerritoryWarSuperClass.class.getSimpleName(), "Territory War Superclass");
  489. // initialize subclasses
  490. // "For The Sake" quests
  491. TerritoryWarSuperClass gludio = new Q00717_ForTheSakeOfTheTerritoryGludio();
  492. _forTheSakeScripts.put(gludio.TERRITORY_ID, gludio);
  493. TerritoryWarSuperClass dion = new Q00718_ForTheSakeOfTheTerritoryDion();
  494. _forTheSakeScripts.put(dion.TERRITORY_ID, dion);
  495. TerritoryWarSuperClass giran = new Q00719_ForTheSakeOfTheTerritoryGiran();
  496. _forTheSakeScripts.put(giran.TERRITORY_ID, giran);
  497. TerritoryWarSuperClass oren = new Q00720_ForTheSakeOfTheTerritoryOren();
  498. _forTheSakeScripts.put(oren.TERRITORY_ID, oren);
  499. TerritoryWarSuperClass aden = new Q00721_ForTheSakeOfTheTerritoryAden();
  500. _forTheSakeScripts.put(aden.TERRITORY_ID, aden);
  501. TerritoryWarSuperClass innadril = new Q00722_ForTheSakeOfTheTerritoryInnadril();
  502. _forTheSakeScripts.put(innadril.TERRITORY_ID, innadril);
  503. TerritoryWarSuperClass goddard = new Q00723_ForTheSakeOfTheTerritoryGoddard();
  504. _forTheSakeScripts.put(goddard.TERRITORY_ID, goddard);
  505. TerritoryWarSuperClass rune = new Q00724_ForTheSakeOfTheTerritoryRune();
  506. _forTheSakeScripts.put(rune.TERRITORY_ID, rune);
  507. TerritoryWarSuperClass schuttgart = new Q00725_ForTheSakeOfTheTerritorySchuttgart();
  508. _forTheSakeScripts.put(schuttgart.TERRITORY_ID, schuttgart);
  509. // "Protect the" quests
  510. TerritoryWarSuperClass catapult = new Q00729_ProtectTheTerritoryCatapult();
  511. _protectTheScripts.put(catapult.getId(), catapult);
  512. TerritoryWarSuperClass supplies = new Q00730_ProtectTheSuppliesSafe();
  513. _protectTheScripts.put(supplies.getId(), supplies);
  514. TerritoryWarSuperClass military = new Q00731_ProtectTheMilitaryAssociationLeader();
  515. _protectTheScripts.put(military.getId(), military);
  516. TerritoryWarSuperClass religious = new Q00732_ProtectTheReligiousAssociationLeader();
  517. _protectTheScripts.put(religious.getId(), religious);
  518. TerritoryWarSuperClass economic = new Q00733_ProtectTheEconomicAssociationLeader();
  519. _protectTheScripts.put(economic.getId(), economic);
  520. // "Kill" quests
  521. TerritoryWarSuperClass knights = new Q00734_PierceThroughAShield();
  522. for (int i : knights.CLASS_IDS)
  523. {
  524. _killTheScripts.put(i, knights);
  525. }
  526. TerritoryWarSuperClass warriors = new Q00735_MakeSpearsDull();
  527. for (int i : warriors.CLASS_IDS)
  528. {
  529. _killTheScripts.put(i, warriors);
  530. }
  531. TerritoryWarSuperClass wizards = new Q00736_WeakenTheMagic();
  532. for (int i : wizards.CLASS_IDS)
  533. {
  534. _killTheScripts.put(i, wizards);
  535. }
  536. TerritoryWarSuperClass priests = new Q00737_DenyBlessings();
  537. for (int i : priests.CLASS_IDS)
  538. {
  539. _killTheScripts.put(i, priests);
  540. }
  541. TerritoryWarSuperClass keys = new Q00738_DestroyKeyTargets();
  542. for (int i : keys.CLASS_IDS)
  543. {
  544. _killTheScripts.put(i, keys);
  545. }
  546. }
  547. }