public void TargetingRule(TargetingRule rule) { Rules.Add(rule); }
public UI.TileCheck TileValidCheck(TargetingRule rule) { //TileValidCheck determines whether a tile is grayed out. TargetValidCheck determines whether you can actually select a given tile. switch(rule){ default: //currently no exceptions return a=>true; } }
public UI.TileCheck TargetValidCheck(TargetingRule rule) { switch(rule){ case TargetingRule.Enemy: return t=>t.Ac != null && t.Ac.base_unit.team != G.active_team; case TargetingRule.Ally: return t=>t.Ac != null && t.Ac.base_unit.team == G.active_team; case TargetingRule.AllyOrEnemy: return t=>t.Ac != null && t.Ac != this.Ac; case TargetingRule.AnyTile: return a=>true; case TargetingRule.AnyActor: return t=>t.Ac != null; default: return t=>false; } }
public Tile GetTarget(TargetingRule rule,int range) { return UI.GetTarget(p,range,TileValidCheck(rule),ActorValidCheck(rule),TargetValidCheck(rule)); }
public UI.ActorCheck ActorValidCheck(TargetingRule rule) { switch(rule){ case TargetingRule.Enemy: return a=>a.base_unit.team != G.active_team; case TargetingRule.Ally: return a=>a.base_unit.team == G.active_team; case TargetingRule.AllyOrEnemy: return a=>a != this; case TargetingRule.AnyTile: return a=>false; case TargetingRule.AnyActor: default: return a=>true; } }