Ejemplo n.º 1
0
        /// <summary>
        /// 结束战斗
        /// </summary>
        /// <param name="needCalcResult">是否需要计算结果, 玩家主动退出情况不需要计算结果</param>
        public void StopBattle(bool needCalcResult = true)
        {
            if (needCalcResult)
            {
                _CheckFinalBattleResult();
            }
            if (GameGOW.Get().Winner_Id == 2)
            {
                SounderManager.Get().PlaySound(1, "sound/win01");
            }
            else
            {
                SounderManager.Get().PlaySound(1, "sound/shibai_09");
            }
            RemoveEvents();

            m_bIsInBattle = false;

            m_stBattleInfo  = null;
            m_iCurrentRound = 0;

            m_iBattleEndTick = (int)GameGOW.Get().TickerMgr.TickCount;


            EventDispatcher.DispatchEvent("EventBattleStop", this, null);
        }
Ejemplo n.º 2
0
 public static int SetSound(int index, int type)
 {
     if (type != -1)
     {
         SounderManager.Get().SetSound(index, type);
     }
     if (index == 0)
     {
         return(SounderManager.Get().yinyue);
     }
     else
     {
         return(SounderManager.Get().yinxiao);
     }
 }
Ejemplo n.º 3
0
 public override void Execute()
 {
     //有剩余时间力度条才会增加减少,
     if (m_eAttackState == AttackState.PrepareAttack)
     {
         if (m_pCharacter.m_pInfo.m_bInBombSpeedUp && GameGOW.Get().BattleMgr.m_iCurrentRoundTime > 0)
         {
             if (m_pCharacter.m_pInfo.m_iBombSpeed < 0)
             {
                 m_iSpeedFlag = -m_iSpeedFlag;
                 m_pCharacter.m_pInfo.m_iBombSpeed = 0;
             }
             else if (m_pCharacter.m_pInfo.m_iBombSpeed > m_pCharacter.m_pInfo.m_pInstructionData.fire_range)
             {
                 m_iSpeedFlag = -m_iSpeedFlag;
                 m_pCharacter.m_pInfo.m_iBombSpeed = m_pCharacter.m_pInfo.m_pInstructionData.fire_range;
             }
             else
             {
                 m_pCharacter.m_pInfo.m_iBombSpeed += m_iSpeedInterval * m_iSpeedFlag;
             }
         }
         else//时间到不开炮自动切换对象
         {
             if (GameGOW.Get().BattleMgr.m_iCurrentRoundTime > 0 && m_pCharacter.IsLiving == true)   //
             {
                 SounderManager.Get().PlaySound(1, "sound/shooting04");
                 m_pCharacter.Body.DoAction(CharacterStateType.ATTACK);
                 LOG.Log("CharacterStateType.ATTACK");
                 m_eAttackState = AttackState.InAttack;
             }
             else
             {
                 Finish();
             }
         }
     }
     else if (m_eAttackState == AttackState.InAttack)
     {
         if (m_pCharacter.m_pInfo.m_eCurrentStateType != CharacterStateType.ATTACK ||
             m_pCharacter.m_pInfo.m_iCurrentFrame == m_pCharacter.m_pInfo.m_pCurrentStateData.total_frame)
         {
             Finish();
         }
     }
 }
Ejemplo n.º 4
0
 public static void Play_Sound(int index, string audio)
 {
     SounderManager.Get().PlaySound(index, audio);
 }
Ejemplo n.º 5
0
    public static void CMD_PUSHGAMEDATA(NetworkMsg msg)
    {
        Res_game xmsg = new Res_game();

        using (MemoryStream stream = new MemoryStream(msg.data))
        {
            xmsg = ProtoBuf.Serializer.Deserialize <Res_game>(stream);
        }

        //Debug.Log("xue****sdid****:" + xmsg.m_iRoomID + ":" + xmsg.m_iTableID + ":" + xmsg.m_icmd + ":" + Enum.GetName(typeof(GameID), xmsg.m_icmd) + ":------" + Network.xue++);

        if (xmsg.m_icmd == (int)GameID.Ready)
        {
            Res_ready res = new Res_ready();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_ready>(stream);
            }
            Network.battleinfo.m_iMapIndex = res.m_iMapID;
#if xue
            Network.battleinfo.m_eBattleType = BattleType.NORMAL_PVP;
            Network.battleinfo.m_iTimeLimit  = GameDefine.INFINITE;
#endif
            int           ma       = res.m_iSeatSum;
            List <string> username = res.m_strName;
            List <int>    teamid   = res.m_iTeamID;
            List <int>    playerid = res.m_aiSeatPlayer;

            for (int i = 0; i < ma; i++)
            {
                PlayerInfo p1 = new PlayerInfo();
                p1.m_strName    = username[i];
                p1.m_iPlayerUID = playerid[i];
                p1.m_iTeam      = teamid[i];
                Network.Pid_Tid.Add(playerid[i], teamid[i]);
#if xue
                //Debug.Log("xue*****************:" + ":name:" + username[i] + ":playerid:" + playerid[i] + "teamid" + teamid[i] + "mapid:" + res.m_iMapID);
#endif
                Network.battleinfo.m_listPlayers.Add(p1);

                if (Network.playerid == playerid[i])
                {
                    Network.playerindex = i;
                }
                else
                {
                    Network.playerid2 = playerid[i];
                }
            }

            CMD_MAP_MATCH_result = (int)ResultID.result_enter_game;
        }
        else if (xmsg.m_icmd == (int)GameID.Ready_Notify)
        {
            Notify_ready res = new Notify_ready();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Notify_ready>(stream);
            }
            Network.seat_binary = (Network.seat_binary) | (1 << (res.m_iSeat));
            Network.GameReady_pic[res.m_iSeat] = res.m_iPic;
            Network.seat_res++;
        }
        else if (xmsg.m_icmd == (int)GameID.Choose)
        {
            Res_choose res = new Res_choose();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_choose>(stream);
            }

            Network.battleinfo.m_iRoundLimit = res.m_iRound;
#if xue
            Network.battleinfo.m_eBattleType = BattleType.NORMAL_PVP;
            Network.battleinfo.m_iTimeLimit  = GameDefine.INFINITE;
#endif
            int        ma     = Network.battleinfo.m_listPlayers.Count;
            List <int> tankid = res.m_iTankID;


            for (int i = 0; i < ma; i++)
            {
                Network.battleinfo.m_listPlayers[i].m_iInstructionID = tankid[i];
                Network.battleinfo.m_listPlayers[i].m_iHP            = GameGOW.Get().DataMgr.GetCharacterInstructionByID(tankid[i]).m_iHP;
                Network.battleinfo.m_listPlayers[i].m_iMoveEnergy    = GameGOW.Get().DataMgr.GetCharacterInstructionByID(tankid[i]).m_iMoveEnergy;
                Network.battleinfo.m_listPlayers[i].m_iAddEnergy     = GameGOW.Get().DataMgr.GetCharacterInstructionByID(tankid[i]).m_iAddEnergy;

#if xue
                //Debug.Log("xue*****************:tankid:" + tankid[i]);
#endif
            }

            CMD_MAP_MATCH_result = (int)ResultID.result_choose_done;
        }
        else if (xmsg.m_icmd == (int)GameID.Choose_Notify)
        {
            Notify_choose res = new Notify_choose();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Notify_choose>(stream);
            }

            //Debug.Log("xue^^^^^^^^^^^^^^^^^  " + res.m_iSeat + ":" + res.m_iTankID + "         " + Network.xue++);
            if (res.m_iTankID < 0)
            {
                Network.GameChoose_num[res.m_iSeat + 1] = (-res.m_iTankID) + 100;
            }
            else
            {
                Network.GameChoose_num[res.m_iSeat + 1] = res.m_iTankID;
                Network.GameChooseStatus = -1;
            }
        }
        else if (xmsg.m_icmd == (int)GameID.Load)
        {
            Res_loading res = new Res_loading();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_loading>(stream);
            }

            int index = 1;
            for (int i = 0; i < Network.battleinfo.m_listPlayers.Count; i++)
            {
                if (Network.battleinfo.m_listPlayers[i].m_iPlayerUID == res.m_iOptID)
                {
                    index = i;
                    break;
                }
            }

            Network.GameLoading_num[index + 1] = res.m_ilen;

            if (res.m_ilen == 200)
            {
                Network.GameLoading = 10;
            }
            else if (Network.playerid == res.m_iOptID)
            {
                Network.GameLoading++;
            }
        }
        else if (xmsg.m_icmd == (int)GameID.Move)
        {
            Res_move res = new Res_move();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_move>(stream);
            }

            CharacterLogic m_pCurrentPlayer = GameGOW.Get().CharacterMgr.GetCharacterByUid(res.m_iOptID);

            int type = res.m_iDirection;
            //var m_pCharacterLogic = GameGOW.Get().BattleMgr.m_pCurrentPlayer;

            m_pCurrentPlayer.OnDirectionKeyChanged(type);

            if (type == 0 || res.m_iIntervalTime == 1)
            {
                Vector2 v2 = new Vector2(res.m_iPosX, res.m_iPosY);
                m_pCurrentPlayer.Position = v2;
            }
        }
        else if (xmsg.m_icmd == (int)GameID.Round)
        {
            Res_round res = new Res_round();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_round>(stream);
            }
            Network.Round         = res.m_iRound;
            Network.Wind          = res.m_iWind;
            Network.next_playerid = res.m_iOptID;

            if (res.m_iOptID != Network.playerid)
            {
                EventDispatcher.DispatchEvent("EventHideBattleJoyStickUI", null, null);
            }

            //技能冷却

            /*
             * if (Network.playerid == GameGOW.Get().BattleMgr.m_stBattleInfo.m_listPlayers[GameGOW.Get().BattleMgr.m_iCurrentRoundPlayerIndex].m_iPlayerUID)
             * {
             *  if (SkillManager.CurrentSkillId != 0)
             *  {
             *      Network.Skill_CD[SkillManager.CurrentSkillId]--;
             *  }
             *
             *  for (int i = 0; i < 20; i++)
             *  {
             *      if (i == SkillManager.CurrentSkillId)
             *      {
             *          if (Network.Skill_CD[i] == -1)
             *          {
             *              Network.Skill_CD[i] = 2;
             *          }
             *          continue;
             *      }
             *      else if (Network.Skill_CD[i] > 0)
             *      {
             *          Network.Skill_CD[i]--;
             *      }
             *      //Debug.Log("xue^^^^^" + i + "   " + Network.Skill_CD[i] + "   " + Network.xue++);
             *  }
             * }
             */
            SkillManager.CurrentSkillId = 0;

            if (res.m_iOptID == Network.playerid)
            {
                EventDispatcher.DispatchEvent("EventShowBattleJoyStickUI", null, null);
            }
            Network.InitRound();

            GameGOW.Get().BattleMgr.ChangeController_Quick();
        }
        else if (xmsg.m_icmd == (int)GameID.Attach)
        {
            Res_attack res = new Res_attack();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_attack>(stream);
            }

            int   speed = res.m_iPower;
            float angle = res.m_iAngle;

            SkillManager.CurrentSkillId = res.m_iBombType;

            CharacterLogic m_pCurrentPlayer = GameGOW.Get().CharacterMgr.GetCharacterByUid(res.m_iOptID);

            //var m_pCharacterLogic = GameGOW.Get().BattleMgr.m_pCurrentPlayer;

            /**
             * m_pCurrentPlayer.OnFunctionKeyDown(0x11);
             *
             * GameGOW.Get().BattleMgr.m_pCurrentPlayer.m_pInfo.m_iBombSpeed = speed;
             * GameGOW.Get().BattleMgr.m_pCurrentPlayer.m_pInfo.m_iFireAngle = angle;
             * Network.Attacking = 2;
             * m_pCurrentPlayer.OnFunctionKeyUp(0x11);
             **/
            Network.Round = res.m_iRound;

            m_pCurrentPlayer.m_pInfo.m_iBombSpeed = speed;
            m_pCurrentPlayer.m_pInfo.m_iFireAngle = angle;
            Network.Attacking = 2;

            m_pCurrentPlayer.m_pInfo.m_bInBombSpeedUp = false;
            GameGOW.Get().PlaySkill((SkillManager.SkillType)SkillManager.CurrentSkillId, m_pCurrentPlayer, Network.attackbasedata);
        }
        else if (xmsg.m_icmd == (int)GameID.Boom)
        {
            Res_Boom res = new Res_Boom();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_Boom>(stream);
            }

            float x = res.m_ix;
            float y = res.m_iy;

            SounderManager.Get().FunNet(res.BombID, res.Kind, x, y);

            /*
             * GameGOW.Get().BombMgr.GetBombByUID(res.BombID).Boom_pos = new Vector2(x, y);
             * Debug.Log("xue^^^^" + res.BombID + "   " + GameGOW.Get().BombMgr.GetBombByUID(res.BombID).Boom_pos.x + "    " +
             *  GameGOW.Get().BombMgr.GetBombByUID(res.BombID).Boom_pos.y + "    " + Network.xue++);
             * if (res.Kind == false)
             * {
             *  GameGOW.Get().BombMgr.GetBombByUID(res.BombID).Net_Boom_Status = 1;
             *  //BaseBomb.Net_Boom_Status = 1;
             * }
             * else
             * {
             *  GameGOW.Get().BombMgr.GetBombByUID(res.BombID).Net_Boom_Status = 2;
             *  //BaseBomb.Net_Boom_Status = 2;
             * }
             */
        }
        else if (xmsg.m_icmd == (int)GameID.Damage)
        {
            OnGame_HP res = new OnGame_HP();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <OnGame_HP>(stream);
            }

            //执行掉血
            DamageType     eType     = DamageType.NORMAL;
            CharacterLogic dstObject = GameGOW.Get().CharacterMgr.GetCharacterByUid(res.m_iPlayerID);
            int            hp        = dstObject.m_pInfo.m_iHP;
            float          DD        = res.hpValues;
            hp -= (int)DD;
            if (hp > dstObject.m_pInfo.m_iMaxHP)
            {
                hp = dstObject.m_pInfo.m_iMaxHP;
            }
            dstObject.OnDamage(hp, res.hpValues, eType);
        }
        else if (xmsg.m_icmd == (int)GameID.Die)
        {
            Notify_disconnect res = new Notify_disconnect();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Notify_disconnect>(stream);
            }
            GameGOW.Get().CharacterMgr.GetCharacterByUid(res.m_iOptID).Dead();
        }
        else if (xmsg.m_icmd == (int)GameID.Disconnect)
        {
            Notify_disconnect res = new Notify_disconnect();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Notify_disconnect>(stream);
            }
            //处理掉线
        }
        else if (xmsg.m_icmd == (int)GameID.Over)
        {
            Res_over res = new Res_over();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Res_over>(stream);
            }

            if (res.m_iOverStatus == (int)GameResID.game_result_win)
            {
                GameGOW.Get().Winner_Id = 2;
                GameGOW.Get().BattleMgr.StopBattle();
            }
            else if (res.m_iOverStatus == (int)GameResID.game_result_fail)
            {
                GameGOW.Get().Winner_Id = 1;
                GameGOW.Get().BattleMgr.StopBattle();
            }
            else if (res.m_iOverStatus == (int)GameResID.game_result_exception)
            {
                EventDispatcher.DispatchEvent("EventBackHost", null, null);
            }
            else
            {
                GameGOW.Get().Winner_Id = 1;
                GameGOW.Get().BattleMgr.StopBattle();
            }

            Network.addgold    = res.m_iGetGold;
            Network.addexp     = res.m_iGetExp;
            Network.adddiamond = res.m_iGetDiamond;

            Network.gold      += Network.addgold;
            Network.exp       += Network.addexp;
            Network.diamond   += Network.adddiamond;
            Add_Friend_List    = new Dictionary <string, int>();
            Invite_Friend_List = new Dictionary <string, int>();
        }
        else if (xmsg.m_icmd == (int)GameID.Quit)
        {
            GameGOW.Get().BattleMgr.m_bIsInBattle = false;
        }
        else if (xmsg.m_icmd == (int)GameID.Chat)
        {
            Notify_chat res = new Notify_chat();
            using (MemoryStream stream = new MemoryStream(xmsg.gameData))
            {
                res = ProtoBuf.Serializer.Deserialize <Notify_chat>(stream);
            }

            if (res.m_iChatID >= 1000 && res.m_iChatID < 2000)
            {
                var info = GameGOW.Get().CharacterMgr.GetCharacterByUid(res.m_iOptID).m_pInfo;
                info.EmojiID = res.m_iChatID;
            }
            else
            {
                LuaHelper.Play_Sound(2, "sound/girlsound/girl_0" + (res.m_iChatID - 2000));
                var info = GameGOW.Get().CharacterMgr.GetCharacterByUid(res.m_iOptID).m_pInfo;
                info.MessageID = res.m_iChatID;
            }
        }
    }
Ejemplo n.º 6
0
        public void Bomb(Dictionary <int, bool> attackedMask = null)
        {
            //  SounderManager.Get().PlaySound(1, "boom1");
            bool flag = true;

            if (GameGOW.Get().MapMgr.IsOutMap(this.Position))
            {
                flag = false;
            }
            if (flag)
            {
                SounderManager.Get().PlaySound(1, "sound/yinxiao/pet_boom_" + (int)SkillManager.CurrentSkillId);
            }

            if (SkillManager.DO_bomb_Action == true && flag)
            {
                DigMap();
            }

            Vector2 boom_pos = new Vector2();

            if (Network.gamemode == BattleType.AI_1v1)
            {
                boom_pos = this.Position;
            }
            else if (Network.NetworkMode == true)
            {
                boom_pos = Boom_pos;
            }
            else
            {
                boom_pos = this.Position;
            }
            for (int i = -1; i <= 1; i++)
            {
                if (GameGOW.Get().MapMgr.IsEmpty((int)(boom_pos.x + i), (int)(boom_pos.y + 5)))
                {
                    boom_pos.x = (int)(boom_pos.x + i);
                    boom_pos.y = (int)((int)(boom_pos.y + 5));
                    break;
                }
            }
            if (SkillManager.CurrentSkillId == 7)
            {
                /*
                 * 能飞自杀
                 *  if(flag && boom_pos.y==0)
                 *  {
                 *
                 *
                 *  }
                 *  else
                 *  {
                 *      if (flag)
                 *      SelfCharacterWalkAction.Set_m_pCharacter(boom_pos);
                 *      else
                 *      {
                 *          Debug.Log("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW");
                 *          this.Stop();
                 *      }
                 *  }
                 */
                if (flag)
                {
                    SelfCharacterWalkAction.Set_m_pCharacter(boom_pos);
                }
                else
                {
                    this.Stop();
                }
            }



            List <TKPhysicalObj> bombList = GameGOW.Get().MapMgr.GetObjectsInMap(boom_pos, m_pConfig.m_fBombRange, null);
            int rr = 0;

            for (int i = 0; i < bombList.Count; ++i)
            {
                CharacterLogic pCharacter = bombList[i] as CharacterLogic;
                if (pCharacter != null)
                {
                    pCharacter.Falling(); //attackmask
                    m_pAttackInfo.m_Position        = boom_pos;
                    m_pAttackInfo.m_bIsCenterDamage = (attackedMask != null && attackedMask.ContainsKey(pCharacter.ID));
                    if (SkillManager.DO_bomb_Action == true || SkillManager.CurrentSkillId == 6)
                    {
                        BattleUtils.TriggerAttack(m_pAttackInfo, pCharacter, Boom_Skill);
                    }
                }

                if ((SkillManager.DO_bomb_Action == false && SkillManager.CurrentSkillId == 7) && flag)
                {
                    rr++;
                    if (rr < 2)
                    {
                        this.Stop();
                    }
                }
            }

            //xue move from BombView.cs
            BombStatus++;
            SkillManager.bomb_num--;
            if (Network.gamemode == BattleType.AI_1v1 && SkillManager.bomb_num <= 0)
            {
                if (GameGOW.Get().BattleMgr.m_bIsInBattle == true)
                {
                    if (GameGOW.Get().BattleMgr.m_pCurrentPlayer.ID == Network.playerid)
                    {
                        EventDispatcher.DispatchEvent("EventHideBattleJoyStickUI", null, null);
                    }
                    else
                    {
                        EventDispatcher.DispatchEvent("EventShowBattleJoyStickUI", null, null);
                    }

                    GameGOW.Get().BattleMgr.ChangeController_Quick();
                    if (GameGOW.Get().BattleMgr.Get_InBattle() == true && GameGOW.Get().BattleMgr.m_iCurrentRoundPlayerIndex % 2 == 1)
                    {
                        GameGOW.Get().AIMgr.Act_AI_1v1();
                    }
                }
            }
            else if (Network.NetworkMode == true)
            {
            }
            else
            {
                if (SkillManager.bomb_num <= 0)
                {
                    GameGOW.Get().BattleMgr.ChangeController();
                }
            }
        }
Ejemplo n.º 7
0
        public void Tick(uint tickCount)
        {
            if (!m_bIsInBattle)
            {
                return;
            }

            if (tickCount - m_iBattleStartTick > m_stBattleInfo.m_iTimeLimit)
            {
                if (Network.gamemode == BattleType.AI_1v1)
                {
                    GameGOW.Get().BattleMgr.m_bIsInBattle = false;
                    //StopBattle();
                }
                else if (Network.NetworkMode == true)
                {
                    //GameGOW.Get().BattleMgr.m_bIsInBattle = false;
                    //Network.Send_Over(Network.Pid_Tid[Network.playerid], GameGOW.Get().Winner_Id != Network.Pid_Tid[Network.playerid]);
                }
                else
                {
                    StopBattle();
                }
            }

            if (m_iWaitTime >= 0)
            {
                --m_iWaitTime;
                if (m_iWaitTime == 0)
                {
                    DoChangeController();
                }
            }

            if (Network.gamemode == BattleType.AI_1v1)
            {
                if (Network.Attacking != 2)
                {
                    --m_iCurrentRoundTime;
                }
            }
            else if (Network.NetworkMode == true)
            {
                if (Network.Attacking != 2)
                {
                    --m_iCurrentRoundTime;
                }
            }
            else
            {
                --m_iCurrentRoundTime;
            }
            if (m_iCurrentRoundTime > 60 && m_iCurrentRoundTime <= 360 && m_iCurrentRoundTime % 60 == 0 && m_bIsInBattle)
            {
                // Debug.Log("++++++++++++++++++++++++++++++++++++++++++++"+m_bIsInBattle);
                SounderManager.Get().PlaySound(3, "sound/yinxiao/08");
            }

            if (m_iCurrentRoundTime <= 60)
            {//时间到, 切换行动对象
                if (Network.gamemode == BattleType.AI_1v1)
                {
                    if (Network.Attacking == 0)
                    {
                        if (GameGOW.Get().BattleMgr.m_pCurrentPlayer.ID == Network.playerid)
                        {
                            EventDispatcher.DispatchEvent("EventHideBattleJoyStickUI", null, null);
                        }
                        else
                        {
                            EventDispatcher.DispatchEvent("EventShowBattleJoyStickUI", null, null);
                        }


                        GameGOW.Get().BattleMgr.ChangeController_Quick();
                        if (GameGOW.Get().BattleMgr.Get_InBattle() == true && GameGOW.Get().BattleMgr.m_iCurrentRoundPlayerIndex % 2 == 1)
                        {
                            GameGOW.Get().AIMgr.Act_AI_1v1();
                        }
                    }
                    else if (Network.Attacking == 1)
                    {
                        Network.Attacking = 2;
                        GameGOW.Get().BattleMgr.m_pCurrentPlayer.OnFunctionKeyUp(0x11);
                    }
                }
                if (Network.NetworkMode == true)
                {
                    int index = GameGOW.Get().BattleMgr.m_iCurrentRoundPlayerIndex;
                    int id    = GameGOW.Get().BattleMgr.m_stBattleInfo.m_listPlayers[index].m_iPlayerUID;
                    if (Network.playerid == id && Network.Moving == false && Network.PreMove != 0)
                    {
                        Network.Moving = true;
                        var m_pCharacterLogic = GameGOW.Get().BattleMgr.m_pCurrentPlayer;
                        Network.Send_Move(false, 0, 0, m_pCharacterLogic.Position.x, m_pCharacterLogic.Position.y);
                    }

                    if (Network.playerid == id && Network.Attacking == 1)
                    {
                        Network.Attacking = 2;
                        var m_pCharacterLogic = GameGOW.Get().BattleMgr.m_pCurrentPlayer;
                        Network.Send_Attach(false);
                    }
                }
                else
                {
                    ChangeController();
                }
            }
        }