コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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));
        }
コード例 #4
0
ファイル: Player.cs プロジェクト: ArturToJa/Battlescape
 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;
 }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: Unit.cs プロジェクト: ArturToJa/Battlescape
        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);
        }
コード例 #7
0
 public virtual void ApplyToUnit(Unit unit)
 {
     owner = unit;
     owner.modifiers.Add(this);
     expirable = new Expirable(owner.GetMyOwner(), OnExpire);
 }