package civet.script.functions; import java.util.ArrayList; import civet.script.BaseFunction; import civet.script.IFiber; import civet.script.IVirtualMachine; import civet.script.Variable; import civet.world.IEntity; import civet.world.components.GameInfo; import civet.world.components.StateBinding; public class HealEntity extends BaseFunction { public HealEntity() { super("HealEntity"); } public boolean call(int index, ArrayListvariables, IVirtualMachine vm, IFiber fiber) { if(variables.size() == 2) { Variable entityVar = variables.get(0); Variable healVar = variables.get(1); IEntity entity = entityVar.getEntityValue(); if(entity != null) { GameInfo gameInfo = (GameInfo)entity.getComponent("gameInfo"); StateBinding stateBinding = (StateBinding)entity.getComponent("stateBinding"); if(gameInfo != null && stateBinding != null) { int health = gameInfo.getHealth(); if(health > 0) { health += healVar.getIntValue(); if(health > 100) health = 100; gameInfo.setHealth( health ); } } } } return true; } }