package net.ciklum.icfpc11.domain.greenspoon10 import net.ciklum.icfpc11.domain.Game import net.ciklum.icfpc11.domain.Slot import net.ciklum.icfpc11.domain.GameError /** * blabla * @author vic */ @Typed class Zombie extends CurriedFunction { Zombie() { super(new ZombieMultiarg(), 2, []) } private final static class ZombieMultiarg implements MultiArgFunction { Function evaluate(List args) { def i = args[0] def x = args[1] Slot slot = Game.instance.currentOpponent.getSlot(255-i.value) if (slot.isAlive()) { throw new GameError("Can't zombie($i, $x) an alive slot(${255-i.value})") } slot.setVitalityToZombie() slot.value = x return Identity.IDENTITY } String toString() { "zombie" } } }