Beispiel #1
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();
        }
Beispiel #2
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);
        }
Beispiel #3
0
 //-------------------------------------------------------------------------
 public void setTurretRate(int turret_rate)
 {
     mTurretRate = turret_rate;
     foreach (var i in EbDataMgr.Instance.getMapData <TbDataTurret>())
     {
         if (mTurretRate == ((TbDataTurret)i.Value).TurretRate)
         {
             mVibTurret = (TbDataTurret)i.Value;
             break;
         }
     }
 }
Beispiel #4
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);
        }
Beispiel #5
0
        //-------------------------------------------------------------------------
        void _hitFish(CRenderFish render_fish)
        {
            if (render_fish == null || render_fish.IsDie)
            {
                return;
            }

            uint et_player_rpcid = mBullet.getPlayerId();

            if (mBullet.getScene().getMyPlayerId() == et_player_rpcid)
            {
                mBullet.getScene().getProtocol().c2sFishHit(et_player_rpcid, mBullet.getBulletObjId(), render_fish.FishObjId);
            }

            mBullet.signDestroy();
            mIsSignDestroy = true;

            CRenderTurret turret = mBullet.getScene().getTurret(et_player_rpcid);

            if (turret == null)
            {
                return;
            }
            TbDataTurret vib_turret = turret.getVibTurret();

            Dictionary <string, object> map_param = new Dictionary <string, object>();

            map_param.Add("SourcePosition", getHitPosition(render_fish.Position, mBullet.getPosition()));
            map_param["NetColor"]      = mBullet.getScene().getTurret(et_player_rpcid).getTurretColor();
            map_param["PlayerId"]      = et_player_rpcid;
            map_param["BulletHitFish"] = render_fish;
            TbDataBullet buttlt_data = mBullet.getBulletData();

            mBullet.getScene().addEffect(buttlt_data.EffectCompose.Id, map_param, EffectTypeEnum.Client);

            if (!string.IsNullOrEmpty(mHitParticle.ParticlePrefabName))
            {
                StillParticle particle = mScene.getParticlemanager().newParticle(mHitParticle.ParticlePrefabName);
                particle.setPosition(getHitPosition(render_fish.Position, mBullet.getPosition()));
                particle.setLayer(mScene.getLayerAlloter().getLayer(_eLevelLayer.FishHitParticle));
            }
        }
Beispiel #6
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;
        }
Beispiel #7
0
 //-------------------------------------------------------------------------
 public void setTurret(uint et_player_rpcid, TbDataTurret.TurretType turret_type)
 {
     CRenderTurret turret = getTurret(et_player_rpcid);
     if (turret == null) return;
     turret.setTurret(turret_type);
 }
Beispiel #8
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;
 }
Beispiel #9
0
 //---------------------------------------------------------------------
 void _updateVibTurretData()
 {
     mVibTurret = mTurretDataTable.getTurretData(mTurretType, mTurretRate);
 }
Beispiel #10
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);
        }
Beispiel #11
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);
            }
        }
Beispiel #12
0
 //-------------------------------------------------------------------------
 void _updateVibTurret()
 {
     mVibTurret = mTurretDataTable.getTurretData(mTurretType, mTurretRate);
 }
Beispiel #13
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);
        }
Beispiel #14
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);
        }
Beispiel #15
0
 //-------------------------------------------------------------------------
 public void setTurretRate(int turret_rate)
 {
     mTurretRate = turret_rate;
     foreach (var i in EbDataMgr.Instance.getMapData<TbDataTurret>())
     {
         if (mTurretRate == ((TbDataTurret)i.Value).TurretRate)
         {
             mVibTurret = (TbDataTurret)i.Value;
             break;
         }
     }
 }
Beispiel #16
0
 //-------------------------------------------------------------------------
 public void setTurret(TbDataTurret.TurretType turret_type)
 {
     if (turret_type == TbDataTurret.TurretType.None) return;
     mTurretType = turret_type;
     _updateVibTurret();
     mCSpriteTurretShow.reloadAnimation();
 }