public UpdateStatus Move(PlayerMoveType move, PlayerData playerData, GameSettings settings)
        {
            if (GameControler.Instance.CurrentGameData.Status != GameStatus.Running &&
                GameControler.Instance.CurrentGameData.Status != GameStatus.Pending)
            {
                return(UpdateStatus.None);
            }

            UpdateStatus returnStatus = UpdateStatus.OK;

            switch (move)
            {
            case PlayerMoveType.Up:
                playerData.CurrentPosition.Row--;
                break;

            case PlayerMoveType.Down:
                playerData.CurrentPosition.Row++;
                break;

            case PlayerMoveType.Left:
                playerData.CurrentPosition.Column--;
                break;

            case PlayerMoveType.Right:
                playerData.CurrentPosition.Column++;
                break;
            }

            if (playerData.CurrentPosition.Row < 0)
            {
                playerData.CurrentPosition.Row = 0;
                returnStatus = UpdateStatus.Error;
            }

            if (playerData.CurrentPosition.Column < 0)
            {
                playerData.CurrentPosition.Column = 0;
                returnStatus = UpdateStatus.Error;
            }

            if (playerData.CurrentPosition.Row >= settings.Rows)
            {
                playerData.CurrentPosition.Row = settings.Rows - 1;
                returnStatus = UpdateStatus.Error;
            }

            if (playerData.CurrentPosition.Column >= settings.Columns)
            {
                playerData.CurrentPosition.Column = settings.Columns - 1;
                returnStatus = UpdateStatus.Error;
            }

            if (returnStatus == UpdateStatus.OK)
            {
                GameControler.Instance.CurrentGameData.Score++;
            }

            return(returnStatus);
        }
示例#2
0
 /// <summary>
 /// Initialisation of this spell.
 /// </summary>
 /// <param name="spell">Which spell this is.</param>
 /// <param name="spellType">What type of spell this is.</param>
 /// <param name="spellMoveType">Determinates how player is allowed to move while casting</param>
 /// <param name="castTime">Takes the casting animation's start downtime.</param>
 /// <param name="coolDownTime">Time until spell can be casted again after casting.</param>
 /// <param name="spellStartOffset">Offset vector from player position where the spell is spawned.</param>
 protected virtual void Init(Spells spell, DamageType spellType, PlayerMoveType spellMoveType, float castTime, float coolDownTime, Vector3 spellStartOffset)
 {
     SpellType     = spell;
     DamageType    = spellType;
     SpellMoveType = spellMoveType;
     CastTime      = castTime;
     CoolDownTime  = coolDownTime;
     startOffset   = spellStartOffset;
 }
示例#3
0
        public static void SetPlayerMove(this Player player, PlayerMoveType pmt)
        {
            if (player == null || player.CustomProperties == null)
            {
                return;
            }

            Hashtable playerPros = new Hashtable();

            playerPros[PlayerMovePropKey] = (int)pmt;
            player.SetCustomProperties(playerPros);
        }
示例#4
0
        public override void Read()
        {
            X1      = ReadF();
            Y1      = ReadF();
            Z1      = ReadF();
            Heading = (short)ReadH();

            X2 = ReadF();
            Y2 = ReadF();
            Z2 = ReadF();

            MoveType = (PlayerMoveType)ReadH();
            Unk2     = (short)ReadH();
            Unk3     = (short)ReadH();
        }
示例#5
0
文件: RpMove.cs 项目: tbs005/Temu
        public override void Read()
        {
            X1      = Single();
            Y1      = Single();
            Z1      = Single();
            Heading = (short)ReadWord();

            X2 = Single();
            Y2 = Single();
            Z2 = Single();

            MoveType = (PlayerMoveType)ReadWord();
            Unk2     = (short)ReadWord();
            Unk3     = (short)ReadWord();
        }
示例#6
0
        public override void Read()
        {
            X1 = ReadF();
            Y1 = ReadF();
            Z1 = ReadF();
            Heading = (short) ReadH();

            X2 = ReadF();
            Y2 = ReadF();
            Z2 = ReadF();

            MoveType = (PlayerMoveType)ReadH();
            Unk2 = (short) ReadH();
            Unk3 = (short) ReadH();
        }
示例#7
0
文件: RpMove.cs 项目: arkanoid1/Temu
        public override void Read()
        {
            X1 = Single();
            Y1 = Single();
            Z1 = Single();
            Heading = (short) ReadWord();

            X2 = Single();
            Y2 = Single();
            Z2 = Single();

            MoveType = (PlayerMoveType)ReadWord();
            Unk2 = (short) ReadWord();
            Unk3 = (short) ReadWord();
        }
示例#8
0
    // 事件监听 end

    // player控制 begin
    private void PlayerMove(PlayerMoveType moveType)
    {
        switch (moveType)
        {
        case PlayerMoveType.STRAIGHT:
            PlayerMoveStraight();
            break;

        case PlayerMoveType.ROTATE:
            PlayerMoveRotate();
            break;

        default:
            Debug.LogError("wrong moveType: " + moveType);
            break;
        }
    }
示例#9
0
        public SpCharacterMove(Player player, float x1, float y1, float z1, short heading,
                               float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            Player = player;

            X1      = x1;
            Y1      = y1;
            Z1      = z1;
            Heading = heading;

            X2 = x2;
            Y2 = y2;
            Z2 = z2;

            MoveType = (short)moveType.GetHashCode();
            Unk2     = unk2;
            Unk3     = unk3;
        }
示例#10
0
        public SpCharacterMove(Player player, float x1, float y1, float z1, short heading,
            float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            Player = player;

            X1 = x1;
            Y1 = y1;
            Z1 = z1;
            Heading = heading;

            X2 = x2;
            Y2 = y2;
            Z2 = z2;

            MoveType = (short)moveType.GetHashCode();
            Unk2 = unk2;
            Unk3 = unk3;
        }
示例#11
0
        public override void OnPlayerPropertiesUpdate(Player targetPlayer, Hashtable propertiesThatChanged)
        {
            if (propertiesThatChanged.ContainsKey("PMove") && targetPlayer == PhotonNetwork.LocalPlayer)
            {
                PlayerMoveType playerMove = targetPlayer.GetPlayerMove();
                switch (playerMove)
                {
                case PlayerMoveType.Build:
                case PlayerMoveType.Selecting:
                    BuildButton.SetActive(false);
                    WorkButton.SetActive(false);
                    CancelButton.SetActive(false);
                    break;

                case PlayerMoveType.Work:
                case PlayerMoveType.BuildPosSelecting:
                    BuildButton.SetActive(false);
                    WorkButton.SetActive(false);
                    CancelButton.SetActive(true);
                    break;

                case PlayerMoveType.None:
                    BuildButton.SetActive(true);
                    WorkButton.SetActive(true);
                    CancelButton.SetActive(false);
                    break;

                case PlayerMoveType.NonTurn:
                    BuildButton.SetActive(false);
                    WorkButton.SetActive(false);
                    CancelButton.SetActive(false);
                    GameObject.Find("TurnManager").GetComponent <TurnAndRoundManager>().TurnEnd();
                    break;
                }
            }
        }
示例#12
0
        public void PlayerMoved(Player player, float x1, float y1, float z1, short heading, float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            player.Position.X = x1;
            player.Position.Y = y1;
            player.Position.Z = z1;
            player.Position.Heading = heading;

            if (player.Instance != null)
                player.Instance.OnMove(player);
        }
示例#13
0
        public void PlayerMoved(Player player, float x1, float y1, float z1, short heading, float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            SpCharacterMove packet = new SpCharacterMove(player, x1, y1, z1, heading, x2, y2, z2, moveType, unk2, unk3);

            player.VisiblePlayers.Each(p => packet.Send(p.Connection));
        }
示例#14
0
        public void PlayerMoved(Player player, float x1, float y1, float z1, short heading, float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            SpCharacterMove packet = new SpCharacterMove(player, x1, y1, z1, heading, x2, y2, z2, moveType, unk2, unk3);

            player.VisiblePlayers.Each(p => packet.Send(p.Connection));
        }
示例#15
0
        public static void PlayerMoved(Player player, float x1, float y1, float z1, short heading, float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            //if (unk1 == 6) //Stop
                //GeoService.FixOffset(player.Position.MapId, x1, y1, z1);

            PlayerService.PlayerMoved(player, x1, y1, z1, heading, x2, y2, z2, moveType, unk2, unk3);
            FeedbackService.PlayerMoved(player, x1, y1, z1, heading, x2, y2, z2, moveType, unk2, unk3);

            PartyService.SendMemberPositionToPartyMembers(player);
        }
示例#16
0
        public static void PlayerMoved(Player player, float x1, float y1, float z1, short heading, float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            //if (unk1 == 6) //Stop
            //GeoService.FixOffset(player.Position.MapId, x1, y1, z1);

            PlayerService.PlayerMoved(player, x1, y1, z1, heading, x2, y2, z2, moveType, unk2, unk3);
            FeedbackService.PlayerMoved(player, x1, y1, z1, heading, x2, y2, z2, moveType, unk2, unk3);

            PartyService.SendMemberPositionToPartyMembers(player);
        }
示例#17
0
        public void PlayerMoved(Player player, float x1, float y1, float z1, short heading, float x2, float y2, float z2, PlayerMoveType moveType, short unk2, short unk3)
        {
            player.Position.X       = x1;
            player.Position.Y       = y1;
            player.Position.Z       = z1;
            player.Position.Heading = heading;

            if (player.Instance != null)
            {
                player.Instance.OnMove(player);
            }
        }