package net.ciklum.icfpc11.domain.greenspoon10 import net.ciklum.icfpc11.domain.Game import net.ciklum.icfpc11.domain.Slot import net.ciklum.icfpc11.domain.Card import net.ciklum.icfpc11.domain.GameError /** * blabla * @author vic */ @Typed class Inc extends Function { @Override Function apply(Function i) { super.apply(i) Slot slot = Game.instance.currentProponent.getSlot(i.value) if (!slot.alive) { throw new GameError("Cannot operate on a dead slot") } if (Game.instance.nowZombieTime) { /** bite myself by 1 */ if (slot.vitality > 0) { slot.vitality-- } } else { if (slot.vitality > 0 && slot.vitality < 65535) { slot.vitality++ } } Identity.IDENTITY } @Override /** bite myself by 1 */ Function zombieApply(Function i) { super.apply(i) Slot slot = Game.instance.currentProponent.getSlot(i.value) if (slot.vitality > 0) { slot.vitality-- } Identity.IDENTITY } @Override String toString() { Card.inc.name() } }