public virtual void Attack(IDamageable target) { BattlescapeGraphics.ColouringTool.UncolourAllTiles(); targetObject = target; if (sourceUnit.GetMyOwner().HasAttacksOrMovesLeft() == false) { PopupTextController.AddPopupText("No more units can attack!", PopupTypes.Info); } }
public bool CanMoveTo(MultiTile destination) { return (destination != null && myUnit.GetMyOwner().IsCurrentLocalPlayer() && myUnit.GetMyOwner() == GameRound.instance.currentPlayer && GameRound.instance.currentPhase == TurnPhases.Movement && myUnit.CanStillMove() && Pathfinder.instance.IsLegalTileForUnit(destination, myUnit) && PlayerInput.instance.isInputBlocked == false); }
public override bool IsLegalTarget(IMouseTargetable target) { if ((target is Unit) == false) { return(false); } Unit targetUnit = target as Unit; return(IsInRange(targetUnit) && filter.FilterTeam(targetUnit.GetMyOwner().team) && filter.FilterPlayer(targetUnit.GetMyOwner()) && filter.FilterUnit(targetUnit)); }
public void SelectUnit(Unit unit) { if (unit.GetMyOwner() != this) { Debug.LogError("Tried to select unit that's not mine!"); return; } selectedUnit = unit; unit.OnSelection(); Global.instance.currentEntity = unit; }
void RPCRetaliation(int attackerX, int attackerZ, int targetX, int targetZ) { Unit retaliatingUnit = Global.instance.currentMap.board[attackerX, attackerZ].GetMyObject <Unit>(); if (retaliatingUnit.GetMyOwner().type != PlayerType.Local) { UIManager.InstantlyTransitionActivity(waitingForRetaliationUI, true); GameRound.instance.SetPhaseToEnemy(); return; } Unit target = Global.instance.currentMap.board[targetX, targetZ].GetMyObject <Unit>(); RetaliationChoice(retaliatingUnit, target); }
public bool CanRetaliate(Unit target) { if (this.IsAlive() == false || this.CanStillRetaliate() == false || GameRound.instance.currentPlayer != target.GetMyOwner()) { return(false); } if (currentPosition.DistanceTo(target.currentPosition) == 1) { return(true); } return(false); }
public virtual void ApplyToUnit(Unit unit) { owner = unit; owner.modifiers.Add(this); expirable = new Expirable(owner.GetMyOwner(), OnExpire); }