/*
* 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);
}
}