Esempio n. 1
0
        //---------------------------------------------------------------------
        public void create(int turret_id, uint et_player_rpcid, string nickname,
                           bool is_bot, int default_turret_rate, TbDataTurret.TurretType turret_type)
        {
            mTurretId               = turret_id;
            mLockedFish             = null;
            mPlayer.et_player_rpcid = et_player_rpcid;
            mPlayer.nickname        = nickname;
            mPlayer.is_bot          = is_bot;
            mPlayer.rate            = 1.0f;
            mTurretType             = turret_type;
            mTurretDataTable        = new TurretDataTable();

            mBotRandom = new System.Random(unchecked ((int)System.DateTime.Now.Ticks) + turret_id * 1000);

            // 更新炮台倍率
            _setTurretRate(default_turret_rate);

            // 初始化炮台位置
            CTurretHelper turret_helper = new CTurretHelper();

            mTurretPos = turret_helper.getPositionByOffset(turret_id,
                                                           new EbVector3(0, 68, 0));
            mTurretAngle = turret_helper.getBaseAngleByTurretId(turret_id);

            if (isBot())
            {
                mLogicBot = new CLogicBot();
                mLogicBot.create(mScene, this, turret_type);
            }
        }
Esempio n. 2
0
        //---------------------------------------------------------------------
        public void create(CLogicScene logic_scene, CLogicTurret turret, TbDataTurret.TurretType turret_type)
        {
            mScene      = logic_scene;
            mTurret     = turret;
            mTurretType = turret_type;

            // 机器人锁定鱼初始化,依赖这些顺序
            mBotLoveFishList.Add(24);
            mBotLoveFishList.Add(21);

            addBotLove(31, 36);
            addBotLove(25, 30);

            mBotLoveFishList.Add(20);
            mBotLoveFishList.Add(39);
            mBotLoveFishList.Add(37);
            mBotLoveFishList.Add(22);
            mBotLoveFishList.Add(23);

            mDecisionCounter   = new Counter(0, true);
            mRandomRateCounter = new Counter(0, true);

            randomRateTime();
            mTurret.randomTurretRate();
        }
Esempio n. 3
0
        //---------------------------------------------------------------------
        public void create(CLogicScene logic_scene, CLogicTurret turret, TbDataTurret.TurretType turret_type)
        {
            mScene = logic_scene;
            mTurret = turret;
            mTurretType = turret_type;

            // 机器人锁定鱼初始化,依赖这些顺序
            mBotLoveFishList.Add(24);
            mBotLoveFishList.Add(21);

            addBotLove(31, 36);
            addBotLove(25, 30);

            mBotLoveFishList.Add(20);
            mBotLoveFishList.Add(39);
            mBotLoveFishList.Add(37);
            mBotLoveFishList.Add(22);
            mBotLoveFishList.Add(23);

            mDecisionCounter = new Counter(0, true);
            mRandomRateCounter = new Counter(0, true);

            randomRateTime();
            mTurret.randomTurretRate();
        }
Esempio n. 4
0
        //-------------------------------------------------------------------------
        public void create(int turret_id, ref _tScenePlayer scene_player, int player_gold,
                           bool buffer_power, bool buffer_freeze, bool buffer_longpress, bool buffer_rapid, int turret_rate, float turret_angle, int locked_fish_objid
                           , TbDataTurret.TurretType turret_type)
        {
            mTurretId    = turret_id;
            mPlayer      = scene_player;
            mTurretAngle = turret_angle;

            mTurretType      = turret_type;
            mTurretDataTable = new TurretDataTable();

            _setTurretRate(turret_rate);

            CTurretHelper turret_helper = mScene.getTurretHelper();

            mTurretPos = turret_helper.getPositionByOffset(turret_id,
                                                           mScene.getRenderConfigure().TurretOffset);
            mBaseAngle   = turret_helper.getBaseAngleByTurretId(turret_id);
            mTurretColor = turret_helper.getBaseColorByTurretId(turret_id).convert();

            float scene_length = mScene.getSceneLength();
            float scene_width  = mScene.getSceneWidth();

            mCSpriteTurretShow = new CSpriteTurretShow();
            mCSpriteTurretShow.create(mScene, this);

            _displayTurretRate();

            mRenderBufferMgr = new CRenderBufferMgr(mScene, this,
                                                    turret_helper.getPositionByOffset(turret_id, mScene.getRenderConfigure().TurretBufferOffset), mBaseAngle);
            setLockFishByFishObjId(locked_fish_objid);

            if (buffer_power)
            {
                List <object> param_list = new List <object>();
                mRenderBufferMgr.addBuffer("BufPower", param_list);
            }

            if (buffer_freeze)
            {
                List <object> param_list = new List <object>();
                mRenderBufferMgr.addBuffer("BufFreeze", param_list);
            }

            if (buffer_longpress)
            {
                List <object> param_list = new List <object>();
                mRenderBufferMgr.addBuffer("BufLongpress", param_list);
            }

            if (buffer_rapid)
            {
                List <object> param_list = new List <object>();
                mRenderBufferMgr.addBuffer("BufRapid", param_list);
            }

            mScene.getListener().onSceneTurretCreated(mTurretId);
        }
Esempio n. 5
0
        //-------------------------------------------------------------------------
        public void create(int turret_id, ref _tScenePlayer scene_player, int player_gold,
            bool buffer_power, bool buffer_freeze, bool buffer_longpress, bool buffer_rapid, int turret_rate, float turret_angle, int locked_fish_objid
            , TbDataTurret.TurretType turret_type)
        {
            mTurretId = turret_id;
            mPlayer = scene_player;
            mTurretAngle = turret_angle;

            mTurretType = turret_type;
            mTurretDataTable = new TurretDataTable();

            _setTurretRate(turret_rate);

            CTurretHelper turret_helper = mScene.getTurretHelper();
            mTurretPos = turret_helper.getPositionByOffset(turret_id,
                mScene.getRenderConfigure().TurretOffset);
            mBaseAngle = turret_helper.getBaseAngleByTurretId(turret_id);
            mTurretColor = turret_helper.getBaseColorByTurretId(turret_id).convert();

            float scene_length = mScene.getSceneLength();
            float scene_width = mScene.getSceneWidth();

            mCSpriteTurretShow = new CSpriteTurretShow();
            mCSpriteTurretShow.create(mScene, this);

            _displayTurretRate();

            mRenderBufferMgr = new CRenderBufferMgr(mScene, this,
                turret_helper.getPositionByOffset(turret_id, mScene.getRenderConfigure().TurretBufferOffset), mBaseAngle);
            setLockFishByFishObjId(locked_fish_objid);

            if (buffer_power)
            {
                List<object> param_list = new List<object>();
                mRenderBufferMgr.addBuffer("BufPower", param_list);
            }

            if (buffer_freeze)
            {
                List<object> param_list = new List<object>();
                mRenderBufferMgr.addBuffer("BufFreeze", param_list);
            }

            if (buffer_longpress)
            {
                List<object> param_list = new List<object>();
                mRenderBufferMgr.addBuffer("BufLongpress", param_list);
            }

            if (buffer_rapid)
            {
                List<object> param_list = new List<object>();
                mRenderBufferMgr.addBuffer("BufRapid", param_list);
            }

            mScene.getListener().onSceneTurretCreated(mTurretId);
        }
Esempio n. 6
0
 //-------------------------------------------------------------------------
 public void setTurret(TbDataTurret.TurretType turret_type)
 {
     if (turret_type == TbDataTurret.TurretType.None)
     {
         return;
     }
     mTurretType = turret_type;
     _updateVibTurret();
     mCSpriteTurretShow.reloadAnimation();
 }
Esempio n. 7
0
        //-------------------------------------------------------------------------
        public void setTurret(uint et_player_rpcid, TbDataTurret.TurretType turret_type)
        {
            CLogicTurret turret = getTurret(et_player_rpcid);

            if (turret == null)
            {
                return;
            }
            turret.setTurret(turret_type);
        }
Esempio n. 8
0
        //---------------------------------------------------------------------
        // 服务端广播玩家炮台数据跟新
        public void s2allcPlayerSetTurret(uint et_player_rpcid, TbDataTurret.TurretType turret_type)
        {
            List <string> vec_param = new List <string>();

            vec_param.Add(((byte)_eProtocolDesktop.s2allcSetTurret).ToString());
            vec_param.Add(et_player_rpcid.ToString());
            vec_param.Add(turret_type.ToString());

            mQueProtocol.Enqueue(vec_param);
        }
Esempio n. 9
0
        //-------------------------------------------------------------------------
        public void setTurret(TbDataTurret.TurretType turret_type)
        {
            if (turret_type == TbDataTurret.TurretType.None)
            {
                return;
            }
            mTurretType = turret_type;
            _updateVibTurretData();

            mScene.getProtocol().s2allcPlayerSetTurret(mPlayer.et_player_rpcid, mTurretType);
        }
Esempio n. 10
0
        //---------------------------------------------------------------------
        // 玩家进入炮台
        public void scenePlayerEnter(uint et_player_rpcid, int turret_no, string nickname,
                                     bool is_bot, int default_turret_rate, TbDataTurret.TurretType turret_type)
        {
            scenePlayerLeave(et_player_rpcid);

            CLogicTurret turret = new CLogicTurret(this);

            turret.create(turret_no, et_player_rpcid, nickname, is_bot, default_turret_rate, turret_type);
            mMapPlayerTurret[et_player_rpcid] = turret;

            // 服务端广播玩家进入
            mProtocol.s2allcPlayerEnter(turret);
        }
Esempio n. 11
0
        //-------------------------------------------------------------------------
        void _s2allcPlayerEnter(List <string> vec_param)
        {
            if (!mScene.isInit())
            {
                return;
            }

            int           index = 0;
            _tScenePlayer scene_player;

            scene_player.et_player_rpcid = uint.Parse(vec_param[++index]);
            scene_player.nickname        = (string)vec_param[++index];
            scene_player.is_bot          = false;
            int player_gold = int.Parse(vec_param[++index]);

            scene_player.rate = float.Parse(vec_param[++index]);
            int   turret_id        = int.Parse(vec_param[++index]);
            bool  buffer_power     = bool.Parse(vec_param[++index]);
            bool  buffer_freeze    = bool.Parse(vec_param[++index]);
            bool  buffer_longpress = bool.Parse(vec_param[++index]);
            bool  buffer_rapid     = bool.Parse(vec_param[++index]);
            float turret_angle     = float.Parse(vec_param[++index]);
            int   turret_rate      = int.Parse(vec_param[++index]);

            TbDataTurret.TurretType turret_type = (TbDataTurret.TurretType)(short.Parse(vec_param[++index]));
            int locked_fish_objid = int.Parse(vec_param[++index]);

            Dictionary <uint, CRenderTurret> map_turret = mScene.getMapTurret();

            if (map_turret.ContainsKey(scene_player.et_player_rpcid))
            {
                map_turret[scene_player.et_player_rpcid].Dispose();
                map_turret.Remove(scene_player.et_player_rpcid);
            }

            if (mScene.getMyPlayerId() == scene_player.et_player_rpcid)
            {
                mScene.setMyTurret(null);
            }

            CRenderTurret turret = new CRenderTurret(mScene);

            turret.create(turret_id, ref scene_player, player_gold, buffer_power, buffer_freeze, buffer_longpress,
                          buffer_rapid, turret_rate, turret_angle, locked_fish_objid, turret_type);
            map_turret[scene_player.et_player_rpcid] = turret;

            if (mScene.getMyPlayerId() == scene_player.et_player_rpcid)
            {
                mScene.setMyTurret(turret);
            }
        }
Esempio n. 12
0
        //-------------------------------------------------------------------------
        void _s2allcSetTurret(List <string> vec_param)
        {
            if (!mScene.isInit())
            {
                return;
            }

            int index = 0;

            uint et_player_rpcid = uint.Parse(vec_param[++index]);

            TbDataTurret.TurretType turret_type = (TbDataTurret.TurretType)(short.Parse(vec_param[++index]));

            mScene.setTurret(et_player_rpcid, turret_type);
        }
Esempio n. 13
0
        //-------------------------------------------------------------------------
        public TbDataTurret getTurretData(TbDataTurret.TurretType turret_type, int rate)
        {
            Dictionary <int, TbDataTurret> dic_turretdata;

            if (mDictTurretData.ContainsKey(turret_type))
            {
                dic_turretdata = mDictTurretData[turret_type];
            }
            else
            {
                dic_turretdata = mDictTurretData[TbDataTurret.TurretType.NormalTurret];
            }

            TbDataTurret max_turretdata = null;

            foreach (var it in dic_turretdata)
            {
                max_turretdata = it.Value;
                break;
            }

            foreach (var it in dic_turretdata)
            {
                if (max_turretdata.TurretRate < it.Value.TurretRate)
                {
                    max_turretdata = it.Value;
                }
            }

            foreach (var it in dic_turretdata)
            {
                if (rate <= it.Value.TurretRate)
                {
                    if (max_turretdata.TurretRate > it.Value.TurretRate)
                    {
                        max_turretdata = it.Value;
                    }
                }
            }

            return(max_turretdata);
        }
Esempio n. 14
0
 //-------------------------------------------------------------------------
 public void setTurret(TbDataTurret.TurretType turret_type)
 {
     if (turret_type == TbDataTurret.TurretType.None) return;
     mTurretType = turret_type;
     _updateVibTurret();
     mCSpriteTurretShow.reloadAnimation();
 }
Esempio n. 15
0
        //-------------------------------------------------------------------------
        public void setTurret(TbDataTurret.TurretType turret_type)
        {
            if (turret_type == TbDataTurret.TurretType.None) return;
            mTurretType = turret_type;
            _updateVibTurretData();

            mScene.getProtocol().s2allcPlayerSetTurret(mPlayer.et_player_rpcid, mTurretType);
        }
Esempio n. 16
0
        //---------------------------------------------------------------------
        public void create(int turret_id, uint et_player_rpcid, string nickname,
            bool is_bot, int default_turret_rate, TbDataTurret.TurretType turret_type)
        {
            mTurretId = turret_id;
            mLockedFish = null;
            mPlayer.et_player_rpcid = et_player_rpcid;
            mPlayer.nickname = nickname;
            mPlayer.is_bot = is_bot;
            mPlayer.rate = 1.0f;
            mTurretType = turret_type;
            mTurretDataTable = new TurretDataTable();

            mBotRandom = new System.Random(unchecked((int)System.DateTime.Now.Ticks) + turret_id * 1000);

            // 更新炮台倍率
            _setTurretRate(default_turret_rate);

            // 初始化炮台位置
            CTurretHelper turret_helper = new CTurretHelper();
            mTurretPos = turret_helper.getPositionByOffset(turret_id,
                new EbVector3(0, 68, 0));
            mTurretAngle = turret_helper.getBaseAngleByTurretId(turret_id);

            if (isBot())
            {
                mLogicBot = new CLogicBot();
                mLogicBot.create(mScene, this, turret_type);
            }
        }
Esempio n. 17
0
        //-------------------------------------------------------------------------
        public CRenderTurret createTurret(int turret_id, ref _tScenePlayer scene_player, int player_gold,
                                          bool buffer_power, bool buffer_freeze, bool buffer_longpress, bool buffer_rapid,
                                          int turret_rate, float turret_angle, int locked_fish_objid, TbDataTurret.TurretType turret_type)
        {
            CRenderTurret turret = new CRenderTurret(this);

            turret.create(turret_id, ref scene_player, player_gold, buffer_power, buffer_freeze, buffer_longpress,
                          buffer_rapid, turret_rate, turret_angle, locked_fish_objid, turret_type);
            mMapPlayerTurret[scene_player.et_player_rpcid] = turret;
            return(turret);
        }
Esempio n. 18
0
        //-------------------------------------------------------------------------
        void _s2cSnapshotScene(List <string> vec_param)
        {
            EbLog.Note("CRenderProtocol._s2cSnapshotScene()");

            mScene.setInit();

            int  index           = 0;
            uint et_player_rpcid = uint.Parse(vec_param[++index]);

            if (et_player_rpcid != mScene.getMyPlayerId())
            {
                return;
            }

            _eLevelState level_state           = (_eLevelState)(short.Parse(vec_param[++index]));
            int          level_vibid           = int.Parse(vec_param[++index]);
            int          cur_map_vibid         = int.Parse(vec_param[++index]);
            int          next_map_vibid        = int.Parse(vec_param[++index]);
            float        level_run_totalsecond = float.Parse(vec_param[++index]);
            float        level_run_maxsecond   = float.Parse(vec_param[++index]);

            bool level_run_in_formation = bool.Parse(vec_param[++index]);

            mScene.destroyLevel();
            mScene.createLevel(level_state, level_vibid, cur_map_vibid, next_map_vibid, level_run_totalsecond, level_run_maxsecond, level_run_in_formation);

            mScene.destroyAllTurret();

            int        rate_list_count = int.Parse(vec_param[++index]);
            List <int> list_rate       = new List <int>(rate_list_count);

            for (int i = 0; i < rate_list_count; ++i)
            {
                list_rate.Add(int.Parse(vec_param[++index]));
            }

            mScene.setRateList(list_rate);

            int turret_count = int.Parse(vec_param[++index]);

            List <CRenderTurret> turret_list = new List <CRenderTurret>();

            for (int i = 0; i < turret_count; ++i)
            {
                _tScenePlayer scene_player;
                scene_player.et_player_rpcid = uint.Parse(vec_param[++index]);
                scene_player.nickname        = (string)vec_param[++index];
                int player_gold = int.Parse(vec_param[++index]);
                scene_player.is_bot = false;
                scene_player.rate   = float.Parse(vec_param[++index]);
                int   turret_id        = int.Parse(vec_param[++index]);
                bool  buffer_power     = bool.Parse(vec_param[++index]);
                bool  buffer_freeze    = bool.Parse(vec_param[++index]);
                bool  buffer_longpress = bool.Parse(vec_param[++index]);
                bool  buffer_rapid     = bool.Parse(vec_param[++index]);
                float turret_angle     = float.Parse(vec_param[++index]);
                int   turret_rate      = int.Parse(vec_param[++index]);
                TbDataTurret.TurretType turret_type = (TbDataTurret.TurretType)(byte.Parse(vec_param[++index]));
                int locked_fish_objid = int.Parse(vec_param[++index]);

                CRenderTurret turret = mScene.createTurret(turret_id, ref scene_player, player_gold, buffer_power, buffer_freeze, buffer_longpress,
                                                           buffer_rapid, turret_rate, turret_angle, locked_fish_objid, turret_type);

                turret_list.Add(turret);

                if (mScene.getMyPlayerId() == scene_player.et_player_rpcid)
                {
                    mScene.setMyTurret(turret);
                }
            }

            // 通知场景初始化完成
            mScene.getListener().onSceneSnapshot();

            foreach (var turret in turret_list)
            {
                turret.displayScore();
            }
        }