public virtual bool willActivate(int x, int y) { Trio <int, int, Terrain> t; if (surroundings.tryGetTerrain(x, y, out t) && t.third.creature.team != team) { return(true); } return(false); }
public static void clickTerrain(Terrain terrain) { if (trapPreview) { placeTrap(terrain); return; } if (creatureClicked == null) //if no creatures was selected { if (terrain.creature != null) //and f terrain has creature { if (terrain.creature.team == TurnController.turn) //and if creatures is owned by the player { selectCreature(terrain.creature); //select it } } } else //howeever, if there was a creature selected { Trio <int, int, Terrain> t; if (possibilities.tryGetTerrain(terrain.x, terrain.y, out t)) //and the clicked terrain was in range { if (terrain.creature == null) //if the terrain didnt contain a creature, move { creatureClicked.move(terrain.x, terrain.y, t.second); selectCreature(null); } else if (terrain.creature == creatureClicked) { selectCreature(null); //if user clicked at the already selected creature, unselect it } else if (terrain.creature.team != creatureClicked.team && t.first <= creatureClicked.attackRange) //if the creature was of the oposite team and was in range for attack { creatureClicked.attack(terrain.creature); //attack target selectCreature(creatureClicked); //unselect creature; } } else if (terrain.creature != null && terrain.creature.team == TurnController.turn) //if the clicked terrain wasnt in range and had a creature owned by the player, select it { selectCreature(terrain.creature); } else { selectCreature(null); //if nothing else, unselect the creature. } } }
public static void clickTerrain(Terrain terrain) { if (creatureClicked is UndeadKnight && terrain is Mountain) { selectCreature(null); return; } if (isOverriding) { isOverriding = false; overrideFunction(terrain); return; } if (creatureClicked == null) { if (terrain.creature != null) { if (terrain.creature.team == TurnController.turn) { selectCreature(terrain.creature); } } } else { Trio <int, int, Terrain> t; if (terrain.creature == creatureClicked) { selectCreature(null); return; } if (attackPossibilities.hasCreature(terrain.creature)) { if (terrain.creature.team != creatureClicked.team) { creatureClicked.attack(terrain.creature); selectCreature(creatureClicked); } else { selectCreature(terrain.creature); } } else if (possibilities.tryGetTerrain(terrain.x, terrain.y, out t)) { if (terrain.creature == null) { if (creatureClicked is HumanKnight && t.first == 1) { t.second++; } creatureClicked.move(terrain.x, terrain.y, t.second); selectCreature(null); } else if (terrain.creature == creatureClicked) { selectCreature(null); } else if (terrain.creature.team == creatureClicked.team) { selectCreature(terrain.creature); } } else if (terrain.creature != null && terrain.creature.team == TurnController.turn) { selectCreature(terrain.creature); } else { selectCreature(null); } } }