/* * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If * not, see <http://www.gnu.org/licenses/>. */ package silentium.scripts.ai; import silentium.gameserver.ai.DefaultMonsterAI; import silentium.gameserver.model.actor.L2Attackable; import silentium.gameserver.model.actor.L2Npc; import silentium.gameserver.model.actor.instance.L2PcInstance; import silentium.gameserver.scripting.ScriptFile; import java.util.HashMap; import java.util.Map; /** * Angel spawns... When one of the angels in the keys dies, the other angel will spawn. */ public class PolymorphingAngel extends DefaultMonsterAI implements ScriptFile { private static final Map<Integer, Integer> ANGELSPAWNS = new HashMap<>(); static { ANGELSPAWNS.put(20830, 20859); ANGELSPAWNS.put(21067, 21068); ANGELSPAWNS.put(21062, 21063); ANGELSPAWNS.put(20831, 20860); ANGELSPAWNS.put(21070, 21071); } public static void onLoad() { new PolymorphingAngel(-1, "PolymorphingAngel", "PolymorphingAngel", "ai"); } public PolymorphingAngel(final int scriptId, final String name, final String dname, final String path) { super(scriptId, name, dname, path); for (final int mob : ANGELSPAWNS.keySet()) addKillId(mob); } @Override public String onKill(final L2Npc npc, final L2PcInstance killer, final boolean isPet) { final int npcId = npc.getNpcId(); if (ANGELSPAWNS.containsKey(npcId)) { final L2Attackable newNpc = (L2Attackable) addSpawn(ANGELSPAWNS.get(npcId), npc); newNpc.setRunning(); } return super.onKill(npc, killer, isPet); } }