//--------------------------------------------------------------------- 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(); }
//--------------------------------------------------------------------- public override void create(Dictionary <string, object> param) { mMapParam = param; mScene = mMapParam["LogicScene"] as CLogicScene; mPos = (EbVector3)mMapParam["SourcePosition"]; int score = 0; List <CLogicFish> all_fish = mScene.getLevel().getAllFish(); if (all_fish != null && all_fish.Count > 0) { foreach (var f in all_fish) { score += EbDataMgr.Instance.getData <TbDataFish>(f.FishVibId).FishScore; f.signDestroy(); } } mReturnValue = new List <object>(); ReturnValue.Add("FullScreenBomb"); ReturnValue.Add(score); mDelayTime = 8; mScene.getLevel().setPauseCreateFishCrowd(true); }
//--------------------------------------------------------------------- public CLogicLevelStateNormal(CLogicScene logic_scene, CLogicLevel logic_level) { _defState("CLogicLevelStateNormal", "EbFsm", 0, true); _bindAction("update", new EbAction(this.evUpdate)); mScene = logic_scene; mLevel = logic_level; }
const float mfMaxSecond = 3.5f; // 关卡最大运行总秒数 //--------------------------------------------------------------------- public CLogicLevelStateSwitch(CLogicScene logic_scene, CLogicLevel logic_level) { _defState("CLogicLevelStateSwitch", "EbFsm", 0, false); _bindAction("update", new EbAction(this.evUpdate)); mScene = logic_scene; mLevel = logic_level; }
//------------------------------------------------------------------------- public override void create(Dictionary <string, object> param) { mMapParam = param; mScene = mMapParam["LogicScene"] as CLogicScene; mPos = (EbVector3)mMapParam["SourcePosition"]; uint et_player_rpcid = (uint)mMapParam["PlayerID"]; int bullet_rate = (int)mMapParam["BulletRate"]; TbDataEffectAOE effect_data = EbDataMgr.Instance.getData <TbDataEffectAOE>(mEffectId); int total_score = 0; int fish_score = 0; int effect_fish_vib_id = -1; bool fish_die = false; List <CLogicFish> fish_list = getFishByPositionAndRadius(mPos, (float)effect_data.Radius); List <string> custom_param_list = new List <string>(); // 遍历aoe范围内的活鱼 foreach (var fish in fish_list) { // 检查是否在鱼的销毁列表,如果在则跳过,防止重复计算。 if (fish.IsDie) { continue; } // 击中鱼测试,击中则把分数包括特效分数计下来,一起计算到aoe特效分数里面去。 fish_score = 0; effect_fish_vib_id = -1; fish_die = fish.hit(et_player_rpcid, bullet_rate, ref fish_score, ref effect_fish_vib_id); if (fish_die) { custom_param_list.Add(fish.FishObjId.ToString()); total_score += fish_score; } } // 服务端广播创建特效 int current_die_fish_id = (int)mMapParam["DieFishObjId"];//触发这个效果的鱼 mScene.getProtocol().s2allcCreateClientEffect( et_player_rpcid, bullet_rate, mPos, current_die_fish_id, mEffectId, mEffectName, (int)mEffectType, mDelayTime, custom_param_list); mReturnValue = new List <object>(); ReturnValue.Add("EffectAOE"); ReturnValue.Add(total_score); }
//--------------------------------------------------------------------- public override void start() { base.start(); mEffectSpreadFishData = EbDataMgr.Instance.getData <TbDataEffectSpreadFish>(mEffectId); mScene = (CLogicScene)mMapParam["LogicScene"]; mWaveCount = mEffectSpreadFishData.SpreadCount; mSourcePosition = (EbVector3)mMapParam["SourcePosition"]; mEffectGapTime = mEffectSpreadFishData.GapTime * 0.01f;; mTimeCounter = mEffectGapTime; mRedObjId = (int)mMapParam["RedFishObjId"]; }
//------------------------------------------------------------------------- public CLogicProtocol(CLogicScene scene) { mScene = scene; mMapClientMethod[(byte)_eProtocolDesktop.c2sRenderUpdate] = _c2sRenderUpdate; // 客户端更新消息 mMapClientMethod[(byte)_eProtocolDesktop.c2sSnapshotScene] = _c2sSnapshotScene; // 客户端请求初始化场景 mMapClientMethod[(byte)_eProtocolDesktop.c2sFishHit] = _c2sFishHit; // 客户端子弹命中鱼的消息 mMapClientMethod[(byte)_eProtocolDesktop.c2sFishNetHit] = _c2sFishNetHit; // 客户端渔网命中鱼的消息 mMapClientMethod[(byte)_eProtocolDesktop.c2sTurretRate] = _c2sTurretRate; // 客户端炮台倍率更新消息 mMapClientMethod[(byte)_eProtocolDesktop.c2sManualFire] = _c2sManualFire; // 客户端提交手动发炮 mMapClientMethod[(byte)_eProtocolDesktop.c2sAutoFire] = _c2sAutoFire; // 客户端提交自动发炮 mMapClientMethod[(byte)_eProtocolDesktop.c2sLockFish] = _c2sLockFish; // 客户端提交锁定鱼 mMapClientMethod[(byte)_eProtocolDesktop.c2sUnlockFish] = _c2sUnlockFish; // 客户端提交解锁鱼 mMapClientMethod[(byte)_eProtocolDesktop.c2sBeginLongpress] = _c2sBeginLongpress; // 客户端提交开始长按状态 mMapClientMethod[(byte)_eProtocolDesktop.c2sEndLongpress] = _c2sEndLongpress; // 客户端提交结束长按状态 mMapClientMethod[(byte)_eProtocolDesktop.c2sBeginRapid] = _c2sBeginRapid; // 客户端提交开始极速状态 mMapClientMethod[(byte)_eProtocolDesktop.c2sEndRapid] = _c2sEndRapid; // 客户端提交结束极速状态 }
//------------------------------------------------------------------------- public override void start() { base.start(); mScene = (CLogicScene)mMapParam["LogicScene"]; TbDataEffectLockScreen effect_data = EbDataMgr.Instance.getData <TbDataEffectLockScreen>(mEffectId); mScene.getLevel().setTimeFactor(0.0f); mFunDelayTime = effect_data.LastTime; uint et_player_rpcid = (uint)mMapParam["PlayerID"]; int bullet_rate = (int)mMapParam["BulletRate"]; EbVector3 source_position = (EbVector3)mMapParam["SourcePosition"]; int current_die_fish_id = (int)mMapParam["DieFishObjId"];//触发这个效果的鱼 mScene.getProtocol().s2allcCreateClientEffect( et_player_rpcid, bullet_rate, source_position, current_die_fish_id, mEffectId, mEffectName, (int)mEffectType, mDelayTime, new List <string>()); }
//--------------------------------------------------------------------- public void create(CLogicScene scene, BaseFishLordMgr base_fish_lord_mgr) { mScene = scene; mBaseFishLordMgr = base_fish_lord_mgr; mFishGroupRouteAlloter = new FishGroupRouteAlloter(); mFishRouteMap = new FishRouteMap(); Dictionary <int, EbData> mapData = EbDataMgr.Instance.getMapData <TbDataRoute>(); foreach (var it in mapData) { if (TbDataRoute.DataState.ACTIVE == ((TbDataRoute)it.Value).State) { mListRoute.Add(it.Key); } } mFormationNameList = mBaseFishLordMgr.getPrototypeNameList(); mFormationNameList.Remove(mNormalFishParticleFileName); mFormationNameList.Remove(mRedFishParticleFileName); mOutFishState = OutFishState.Normal; }
//------------------------------------------------------------------------- public override void create(Dictionary <string, object> param) { mMapParam = param; mScene = mMapParam["LogicScene"] as CLogicScene; mPos = (EbVector3)mMapParam["SourcePosition"]; uint et_player_rpcid = (uint)mMapParam["PlayerID"]; int bullet_rate = (int)mMapParam["BulletRate"]; int die_fish_id = (int)mMapParam["DieFishObjId"]; int score = 0; TbDataEffectRadiationLighting effect_data = EbDataMgr.Instance.getData <TbDataEffectRadiationLighting>(mEffectId); List <CLogicFish> fish_list = mScene.getLevel().getListFishById(effect_data.NormalFish.Id); int each_fish_score = EbDataMgr.Instance.getData <TbDataFish>(effect_data.NormalFish.Id).FishScore; foreach (var n in fish_list) { score += each_fish_score; n.signDestroy(); } // 服务端广播创建特效 List <string> custom_param_list = new List <string>(); custom_param_list.Add(effect_data.NormalFish.Id.ToString()); mScene.getProtocol().s2allcCreateClientEffect( et_player_rpcid, bullet_rate, mPos, die_fish_id, mEffectId, mEffectName, (int)mEffectType, mDelayTime, custom_param_list); mReturnValue = new List <object>(); ReturnValue.Add("Lighting"); ReturnValue.Add(score); ReturnValue.Add(effect_data.NormalFish.Id); }
//--------------------------------------------------------------------- public CLogicLevel(CLogicScene logic_scene) { mScene = logic_scene; }
//--------------------------------------------------------------------- public CLogicBullet(CLogicScene logic_scene) { mScene = logic_scene; }
//--------------------------------------------------------------------- public CLogicTurret(CLogicScene logic_scene) { mScene = logic_scene; }
//--------------------------------------------------------------------- public LogicFishFactory(CLogicScene scene) { mScene = scene; }
//------------------------------------------------------------------------- public CLogicFish(CLogicScene logic_scene) { mScene = logic_scene; }