public override UndoCommand Run(Map map, Point attacked_point)
 {
     if (!CanAttack(map, attacked_point))
         return null;
     ProgramNode attacked_node = map.GetNode<ProgramNode>(attacked_point);
     Program attacked_program = attacked_node.Program;
     IncreaseProgramSpeed(attacked_program, Speed);
     return null;
 }
Esempio n. 2
0
 public override UndoCommand Run(Map map, Point attacked_point)
 {
     if (!CanAttack(map, attacked_point))
         return null;
     ProgramNode attacked_node = map.GetNode<ProgramNode>(attacked_point);
     Program attacked_program = attacked_node.Program;
     IEnumerable<ProgramNode> removed_nodes = DamageProgram(map, attacked_node, Strength);
     return new UndoDamageCommand(removed_nodes);
 }
Esempio n. 3
0
 public override bool CanAttack(Map map, Point attacked_point)
 {
     if (!map.NodeIsType<ProgramNode>(attacked_point))
         return false;
     ProgramNode attacked_node = (ProgramNode)map.GetNode(attacked_point);
     if (map.CurrentPlayer != null && attacked_node.Player == map.CurrentPlayer)
         return false;
     return true;
 }
Esempio n. 4
0
 public override bool CanAttack(Map map, Point attacked_point)
 {
     return map.GetNode(attacked_point).GetType() == typeof(AvailableNode);
 }