TerritoryWarSuperClass.java 20 KB

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