Esempio n. 1
0
        void RPCAttack(int sourceX, int sourceZ, int targetX, int targetZ)
        {
            Unit        attackingUnit = Global.instance.currentMap.board[sourceX, sourceZ].GetMyObject <Unit>();
            IDamageable target        = Global.instance.currentMap.board[targetX, targetZ].GetMyDamagableObject();

            attackingUnit.Attack(target);
        }
Esempio n. 2
0
        /// <summary>
        /// Used to either perform an attack in offline modes or send an RPC in online mode.
        /// </summary>
        /// <param name="attackingUnit"></param>
        /// <param name="target"></param>
        public void SendCommandToStartAttack(Unit attackingUnit, IDamageable target)
        {
            PlayerInput.instance.isInputBlocked = true;
            Position targetPosition = new Position(Mathf.RoundToInt(target.GetMyPosition().x), Mathf.RoundToInt(target.GetMyPosition().x));

            if (Global.instance.matchType == MatchTypes.Online)
            {
                photonView.RPC(
                    "RPCAttack", RpcTarget.All,
                    attackingUnit.currentPosition.bottomLeftCorner.position.x,
                    attackingUnit.currentPosition.bottomLeftCorner.position.z,
                    targetPosition.x,
                    targetPosition.z);
            }
            else
            {
                attackingUnit.Attack(target);
            }
        }