Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -24,8 +24,8 @@ PlayerSkillDatas m_Skill = new PlayerSkillDatas(); public PlayerSkillDatas skill { get { return m_Skill; } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); } } StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } PlayerMethodData M_Method; PlayerMethodData method { get { return M_Method ?? (M_Method = ModelCenter.Instance.GetModel<PlayerMethodData>()); } } Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0310_tagRoleSkillChange.cs
@@ -14,12 +14,12 @@ TreasureModel m_Model; TreasureModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>()); } } PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } PlayerMainDate m_MainModel; Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0428_tagPlayerRideHorse.cs
@@ -8,12 +8,12 @@ public class DTC0428_tagPlayerRideHorse : DtcBasic { PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } private bool _horseRid @@ -58,7 +58,7 @@ } } if (string.IsNullOrEmpty(ModelCenter.Instance.GetModel<PlayerMountDatas>()._HorseIDNow) == false if (string.IsNullOrEmpty(ModelCenter.Instance.GetModel<MountModel>()._HorseIDNow) == false && FuncOpen.Instance.IsFuncOpen(8)) { C0309_tagCRideHorse _tag0309 = new C0309_tagCRideHorse(); Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0433_tagDownHorse.cs
@@ -8,12 +8,12 @@ public class DTC0433_tagDownHorse : DtcBasic { PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } public override void Done(GameNetPackBasic vNetPack) { Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0605_tagObjAddBuff.cs
@@ -9,12 +9,12 @@ public class DTC0605_tagObjAddBuff : DtcBasic { PlayerBuffDatas m_BuffModel; PlayerBuffDatas model BuffModel m_BuffModel; BuffModel model { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } public override void Done(GameNetPackBasic vNetPack) Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0606_tagObjDelBuff.cs
@@ -4,12 +4,12 @@ public class DTC0606_tagObjDelBuff : DtcBasic { PlayerBuffDatas m_BuffModel; PlayerBuffDatas model BuffModel m_BuffModel; BuffModel model { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } public override void Done(GameNetPackBasic vNetPack) Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0612_tagClearObjBuff.cs
@@ -9,12 +9,12 @@ public class DTC0612_tagClearObjBuff : DtcBasic { PlayerBuffDatas m_BuffModel; PlayerBuffDatas model BuffModel m_BuffModel; BuffModel model { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } public override void Done(GameNetPackBasic vNetPack) Core/NetworkPackage/DTCFile/ServerPack/H06_PlayerVsNPC/DTC0617_tagObjAddBuffPack.cs
@@ -6,12 +6,12 @@ public class DTC0617_tagObjAddBuffPack : DtcBasic { PlayerBuffDatas m_BuffModel; PlayerBuffDatas model BuffModel m_BuffModel; BuffModel model { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA301_tagTrainHorseData.cs
@@ -8,12 +8,12 @@ public class DTCA301_tagTrainHorseData : DtcBasic { PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } public override void Done(GameNetPackBasic vNetPack) Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA339_tagMCAttrFruitEatCntList.cs
@@ -7,20 +7,20 @@ public class DTCA339_tagMCAttrFruitEatCntList : DtcBasic { PlayerPetDatas m_petModel; PlayerPetDatas petmodel PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3B3_tagMCEquipPartStarLVInfo.cs
@@ -8,8 +8,8 @@ public class DTCA3B3_tagMCEquipPartStarLVInfo : DtcBasic { PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); } } StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } public override void Done(GameNetPackBasic vNetPack) { Fight/Actor/Skill/AttackHandler.cs
@@ -953,7 +953,7 @@ // 4511 buff中攻击造成坐骑攻击属性XX%的额外伤害 if (StatusMgr.Instance.TryGetSkillEffectValue(attacker.ServerInstID, 4511, out _effectValue)) { PlayerMountDatas _mountData = Snxxz.UI.ModelCenter.Instance.GetModel<PlayerMountDatas>(); MountModel _mountData = Snxxz.UI.ModelCenter.Instance.GetModel<MountModel>(); int _allMountAtk = _mountData.GetAllMountAttack(); _allMountAtk = (int)(_effectValue.value1 * Constants.F_DELTA * _allMountAtk); _aFinalHurt += _allMountAtk; Fight/Stage/StageLoad.cs
@@ -386,7 +386,7 @@ itemModel = equipModel.GetItemByIndex((int)RoleEquipType.mount); if (itemModel != null) { var mountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>(); var mountModel = ModelCenter.Instance.GetModel<MountModel>(); if (mountModel.HorseRidingBool) { hero.OnHorse(1); Lua/Gen/DelegatesGensBridge.cs
@@ -958,7 +958,7 @@ #endif } public PlayerBuffDatas __Gen_Delegate_Imp42(object p0) public BuffModel __Gen_Delegate_Imp42(object p0) { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) @@ -972,7 +972,7 @@ PCall(L, 1, 1, errFunc); PlayerBuffDatas __gen_ret = (PlayerBuffDatas)translator.GetObject(L, errFunc + 1, typeof(PlayerBuffDatas)); BuffModel __gen_ret = (BuffModel)translator.GetObject(L, errFunc + 1, typeof(BuffModel)); LuaAPI.lua_settop(L, errFunc - 1); return __gen_ret; #if THREAD_SAFE || HOTFIX_ENABLE System/BlastFurnace/BlastFurnaceModel.cs
@@ -39,8 +39,8 @@ get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerPetDatas petModel { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerMountDatas mountModel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel mountModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } public override void Init() { @@ -91,8 +91,8 @@ playerPack.refreshItemSumUseCountEvent -= RefreshItemUsce; WindowCenter.Instance.windowAfterCloseEvent -= StoveUpgradAfterClose; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= RefreshRealm; PlayerPetDatas.Event_H0704Add -= AddPetEvent; PlayerMountDatas.Event_MountHA301A -= AddMountEvent; PetModel.Event_H0704Add -= AddPetEvent; MountModel.Event_MountHA301A -= AddMountEvent; } @@ -112,8 +112,8 @@ WindowCenter.Instance.windowAfterCloseEvent += StoveUpgradAfterClose; playerPack.itemCntReduceEvent += RefreshDanReduce; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshRealm; PlayerPetDatas.Event_H0704Add += AddPetEvent; PlayerMountDatas.Event_MountHA301A += AddMountEvent; PetModel.Event_H0704Add += AddPetEvent; MountModel.Event_MountHA301A += AddMountEvent; } @@ -768,7 +768,7 @@ if (tipsModel.unlockPetDict.ContainsKey(idlist[i])) { PetInfoConfig petInfo = tipsModel.unlockPetDict[idlist[i]]; var petmodel = ModelCenter.Instance.GetModel<PlayerPetDatas>(); var petmodel = ModelCenter.Instance.GetModel<PetModel>(); if (!petmodel._DicPetBack.ContainsKey(petInfo.ID)) { return false; @@ -778,7 +778,7 @@ if (tipsModel.unlockMountDict.ContainsKey(idlist[i])) { HorseConfig horseConfig = tipsModel.unlockMountDict[idlist[i]]; var mountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>(); var mountModel = ModelCenter.Instance.GetModel<MountModel>(); if (!mountModel._DicHorse.ContainsKey(horseConfig.HorseID)) { return false; System/BlastFurnace/GetPetMatPathWin.cs
@@ -67,8 +67,8 @@ Dictionary<int, List<int>> mountSkillDict; private List<GameObject> tempObjlist = new List<GameObject>(); PetMatType matType = PetMatType.None; PlayerPetDatas petmodel { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerMountDatas mountModel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } PetModel petmodel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel mountModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } protected override void BindController() { System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -453,7 +453,7 @@ } Clock clientMatchClock; PlayerBuffDatas buffDatas { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } } BuffModel buffDatas { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } /// <summary> ///0-取消匹配; 1-进行匹配 /// </summary> System/CrossServerOneVsOne/CrossServerSettlementWin.cs
@@ -49,8 +49,8 @@ #region Built-in CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } } DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } } BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } float timer = 0f; private int WinSorce = 0; private int FailureSorce = 0; System/CrossServerOneVsOne/FightingPKWin.cs
@@ -38,8 +38,8 @@ private List<int> _OpponentBuffSortList = new List<int>();//对手buff列表 DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } DateTime dungeonEndTime; PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } } BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } private int positionType = 1; #region Built-in @@ -101,9 +101,9 @@ HeroBehaviour.OnStartHandupAI += OnHeroHandupAIStarted; dungeonModel.dungeonCoolDownEvent += DungeonCoolDownEvent; dungeonModel.updateMissionEvent += UpdateMissionEvent; PlayerBuffDatas.Even_ObjAddBuf += AddBuff; PlayerBuffDatas.Even_ObjDelBuff += DelBuff; PlayerBuffDatas.BuffUpdateEvent += BuffUpdateEvent; BuffModel.Even_ObjAddBuf += AddBuff; BuffModel.Even_ObjDelBuff += DelBuff; BuffModel.BuffUpdateEvent += BuffUpdateEvent; OpponentInformation.Instance.ShieldUpdate += ShieldUpdate; } @@ -121,9 +121,9 @@ HeroBehaviour.OnStartHandupAI -= OnHeroHandupAIStarted; dungeonModel.dungeonCoolDownEvent -= DungeonCoolDownEvent; dungeonModel.updateMissionEvent -= UpdateMissionEvent; PlayerBuffDatas.Even_ObjAddBuf -= AddBuff; PlayerBuffDatas.Even_ObjDelBuff -= DelBuff; PlayerBuffDatas.BuffUpdateEvent -= BuffUpdateEvent; BuffModel.Even_ObjAddBuf -= AddBuff; BuffModel.Even_ObjDelBuff -= DelBuff; BuffModel.BuffUpdateEvent -= BuffUpdateEvent; OpponentInformation.Instance.ShieldUpdate -= ShieldUpdate; } System/Dungeon/DungeonFairyLandWin.cs
@@ -31,12 +31,12 @@ return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DungeonModel>()); } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } DungeonLiquidModel m_DungeonLiquidModel; @@ -79,8 +79,8 @@ UpdateBuf(); model.dungeonFairyLandChangeEvent += StageChangeEvent; model.dungeonInspireLvEvent += DungeonEncourageEvent; PlayerBuffDatas.Even_ObjAddBuf += AddBuff; PlayerBuffDatas.Even_ObjDelBuff += DeleteBuff; BuffModel.Even_ObjAddBuf += AddBuff; BuffModel.Even_ObjDelBuff += DeleteBuff; teamModel.myTeamRefreshEvent += MyTeamRefreshEvent; } @@ -116,8 +116,8 @@ { model.dungeonFairyLandChangeEvent -= StageChangeEvent; model.dungeonInspireLvEvent -= DungeonEncourageEvent; PlayerBuffDatas.Even_ObjAddBuf -= AddBuff; PlayerBuffDatas.Even_ObjDelBuff -= DeleteBuff; BuffModel.Even_ObjAddBuf -= AddBuff; BuffModel.Even_ObjDelBuff -= DeleteBuff; teamModel.myTeamRefreshEvent -= MyTeamRefreshEvent; } System/Dungeon/DungeonLiquidBehaviour.cs
@@ -30,12 +30,12 @@ } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } @@ -49,8 +49,8 @@ private void OnEnable() { ResetTween(); PlayerBuffDatas.Even_ObjAddBuf += UpdateBuf; PlayerBuffDatas.Even_ObjDelBuff += UpdateBuf; BuffModel.Even_ObjAddBuf += UpdateBuf; BuffModel.Even_ObjDelBuff += UpdateBuf; UpdateBuf(); } @@ -91,8 +91,8 @@ private void OnDisable() { PlayerBuffDatas.Even_ObjAddBuf -= UpdateBuf; PlayerBuffDatas.Even_ObjDelBuff -= UpdateBuf; BuffModel.Even_ObjAddBuf -= UpdateBuf; BuffModel.Even_ObjDelBuff -= UpdateBuf; } private void UpdateBuf() System/Dungeon/DungeonLiquidCell.cs
@@ -31,12 +31,12 @@ } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } System/Dungeon/DungeonUseLiquidWin.cs
@@ -30,10 +30,10 @@ } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } @@ -59,8 +59,8 @@ { OnRefershLiquid(); playerPack.refreshItemCountEvent += OnRefreshItem; PlayerBuffDatas.Even_ObjAddBuf += UpdateBuf; PlayerBuffDatas.Even_ObjDelBuff += UpdateBuf; BuffModel.Even_ObjAddBuf += UpdateBuf; BuffModel.Even_ObjDelBuff += UpdateBuf; UpdateBuf(); } @@ -72,8 +72,8 @@ protected override void OnPreClose() { playerPack.refreshItemCountEvent -= OnRefreshItem; PlayerBuffDatas.Even_ObjAddBuf -= UpdateBuf; PlayerBuffDatas.Even_ObjDelBuff -= UpdateBuf; BuffModel.Even_ObjAddBuf -= UpdateBuf; BuffModel.Even_ObjDelBuff -= UpdateBuf; } protected override void OnAfterClose() System/FairyAu/FairyGrabBossBuffTip.cs
@@ -18,24 +18,24 @@ get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } PlayerBuffDatas buffModel BuffModel buffModel { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } get { return ModelCenter.Instance.GetModel<BuffModel>(); } } public void Init() { PlayerBuffDatas.Even_ObjAddBuf -= AddBuff; PlayerBuffDatas.Even_ObjDelBuff -= DeleteBuff; BuffModel.Even_ObjAddBuf -= AddBuff; BuffModel.Even_ObjDelBuff -= DeleteBuff; PlayerBuffDatas.Even_ObjAddBuf += AddBuff; PlayerBuffDatas.Even_ObjDelBuff += DeleteBuff; BuffModel.Even_ObjAddBuf += AddBuff; BuffModel.Even_ObjDelBuff += DeleteBuff; } public void UnInit() { PlayerBuffDatas.Even_ObjAddBuf -= AddBuff; PlayerBuffDatas.Even_ObjDelBuff -= DeleteBuff; BuffModel.Even_ObjAddBuf -= AddBuff; BuffModel.Even_ObjDelBuff -= DeleteBuff; } public void Display(int _npcId) System/KnapSack/Logic/ItemLogicUtility.cs
@@ -25,10 +25,10 @@ PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerBuffDatas buffDatas { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } } PlayerMountDatas mountDatas { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } PlayerPetDatas petDatas { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerStrengthengDatas strengthDatas { get { return ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); } } BuffModel buffDatas { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } MountModel mountDatas { get { return ModelCenter.Instance.GetModel<MountModel>(); } } PetModel petDatas { get { return ModelCenter.Instance.GetModel<PetModel>(); } } StrengthenModel strengthDatas { get { return ModelCenter.Instance.GetModel<StrengthenModel>(); } } MagicianModel magicianModel { get { return ModelCenter.Instance.GetModel<MagicianModel>(); } } TrialDungeonModel trialModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } } ComposeWinModel composeModel { get { return ModelCenter.Instance.GetModel<ComposeWinModel>(); } } System/KnapSack/Logic/ItemOperateUtility.cs
@@ -11,9 +11,9 @@ { PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerStrengthengDatas strengthModel { get { return ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); } } StrengthenModel strengthModel { get { return ModelCenter.Instance.GetModel<StrengthenModel>(); } } EquipWashModel equipWashModel { get { return ModelCenter.Instance.GetModel<EquipWashModel>(); } } PlayerBuffDatas Buffmodel { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } } BuffModel Buffmodel { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } ItemOverdueModel itemOverdue { get { return ModelCenter.Instance.GetModel<ItemOverdueModel>(); } } FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } } BoxGetItemModel BoxModel { get { return ModelCenter.Instance.GetModel<BoxGetItemModel>(); } } System/KnapSack/Logic/ItemTipsModel.cs
@@ -777,8 +777,8 @@ { if (attrData == null) return; var horseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>(); var petmodel = ModelCenter.Instance.GetModel<PlayerPetDatas>(); var horseModel = ModelCenter.Instance.GetModel<MountModel>(); var petmodel = ModelCenter.Instance.GetModel<PetModel>(); bool isOverdue = ItemLogicUtility.Instance.IsOverdue(attrData.guid, attrData.itemId, attrData.useDataDict); HorseConfig horseConfig = null; PetInfoConfig petInfo = null; @@ -2105,8 +2105,8 @@ #endregion #region 物品增加战斗力 PlayerMountDatas mountDatas { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } public PlayerStrengthengDatas strengthengmodel { get { return ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); } } MountModel mountDatas { get { return ModelCenter.Instance.GetModel<MountModel>(); } } public StrengthenModel strengthengmodel { get { return ModelCenter.Instance.GetModel<StrengthenModel>(); } } public bool TryGetFightPowerByItemId(int itemId, out int fightPower) { @@ -2632,7 +2632,7 @@ public bool isHavePutLimit { get; private set; } PlayerStrengthengDatas strengthengmodel { get { return ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); } } StrengthenModel strengthengmodel { get { return ModelCenter.Instance.GetModel<StrengthenModel>(); } } EquipWashModel washModel { get { return ModelCenter.Instance.GetModel<EquipWashModel>(); } } ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerSuitModel SuitModel { get { return ModelCenter.Instance.GetModel<PlayerSuitModel>(); } } System/KnapSack/Logic/PackModel.cs
@@ -1190,7 +1190,7 @@ List<string> strenlist = ItemPlusSumAttrConfig.GetKeys(); if (strenlist == null || strenlist.Count < 1) return false; int playerSumSTR = 0; Dictionary<int, EquipmentInitialization> strenInfoDict = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()._EqInfo; Dictionary<int, EquipmentInitialization> strenInfoDict = ModelCenter.Instance.GetModel<StrengthenModel>()._EqInfo; foreach (var value in strenInfoDict.Values) { ItemModel itemModel = GetItemByIndex(PackType.Equip, value.EquipIndex); System/KnapSack/Logic/PetMatInfoWin.cs
@@ -36,8 +36,8 @@ [SerializeField] CanvasGroup tipAlpha; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PlayerPetDatas petmodel { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerMountDatas mountModel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } PetModel petmodel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel mountModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } Dictionary<int, int> petSkillDict; Dictionary<int, List<int>> mountSkillDict; System/KnapSack/Logic/PlayerStrengtheningLVWin.cs
@@ -33,12 +33,12 @@ private ItemPlusSumAttrConfig nextActiveSTRConfig = null; private int nextActiveCnt = 0; PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } System/KnapSack/Logic/WashPointBatchUseWin.cs
@@ -31,12 +31,12 @@ get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } PlayerBuffDatas _buffModel; PlayerBuffDatas Buffmodel BuffModel _buffModel; BuffModel Buffmodel { get { return _buffModel ?? (_buffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return _buffModel ?? (_buffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } System/KnapSack/New/BatchBuyWin.cs
@@ -41,12 +41,12 @@ get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } PlayerBuffDatas _buffModel; PlayerBuffDatas Buffmodel BuffModel _buffModel; BuffModel Buffmodel { get { return _buffModel ?? (_buffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return _buffModel ?? (_buffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } System/KnapSack/New/BatchWin.cs
@@ -28,7 +28,7 @@ ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } PlayerBuffDatas Buffmodel { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } } BuffModel Buffmodel { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } private ItemModel itemModel; #region Built-in System/KnapSack/New/RoleEquipStrengthTips.cs
@@ -41,12 +41,12 @@ _noOpenText = transform.Find("CurrentStrength/NoOpenText").GetComponent<Text>(); } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } private void OnEnable() System/MainInterfacePanel/BuffListWin.cs
@@ -23,12 +23,12 @@ private ScrollRect _ScrollRect; private Dictionary<int, ObjBuff> objBuffic; private List<int> _SortList = new List<int>();//排序列表 PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } #region Built-in @@ -45,8 +45,8 @@ { objBuffic = Buffmodel._BuffDic; m_ScrollerController.OnRefreshCell += OnRefreshGridCell; PlayerBuffDatas.Even_ObjAddBuf += AddBuff; PlayerBuffDatas.Even_ObjDelBuff += DelBuff; BuffModel.Even_ObjAddBuf += AddBuff; BuffModel.Even_ObjDelBuff += DelBuff; BuffScheduling(); UpdateControllerPosition(); OnCreateGridLineCell(m_ScrollerController); @@ -63,8 +63,8 @@ protected override void OnAfterClose() { m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; PlayerBuffDatas.Even_ObjAddBuf -= AddBuff; PlayerBuffDatas.Even_ObjDelBuff -= DelBuff; BuffModel.Even_ObjAddBuf -= AddBuff; BuffModel.Even_ObjDelBuff -= DelBuff; } #endregion System/MainInterfacePanel/CombatModeWin.cs
@@ -28,8 +28,8 @@ private int _PkType = 0; private int[] AtkTypeList; #region Built-in PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } } BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } PKModel m_PKModel; PKModel pKModel { get { return m_PKModel ?? (m_PKModel = ModelCenter.Instance.GetModel<PKModel>()); } } FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } } System/MainInterfacePanel/HeadPortraitTip.cs
@@ -52,8 +52,8 @@ private float loadingtime = 0f;//默认时间 VipModel m_VipModel; VipModel vipModel { get { return m_VipModel ?? (m_VipModel = ModelCenter.Instance.GetModel<VipModel>()); } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } } BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } PKModel m_PKModel; PKModel pKModel { get { return m_PKModel ?? (m_PKModel = ModelCenter.Instance.GetModel<PKModel>()); } } PlayerMainDate m_MainModel; @@ -79,8 +79,8 @@ _TimeTxt.text = DateTime.Now.ToString("HH:mm"); PlayerDatas.Instance.PlayerDataRefreshInfoEvent += Updatefighting;//数据的刷新(h0418) PlayerDatas.Instance.OnSwitchAttackMode += OnSwitchAttackMode; PlayerBuffDatas.Even_ObjAddBuf += BuffGameObject; PlayerBuffDatas.Even_ObjDelBuff += BuffGameObject; BuffModel.Even_ObjAddBuf += BuffGameObject; BuffModel.Even_ObjDelBuff += BuffGameObject; PlayerMainDate.ElectricQuantityEvent += OnElectricQuantity; OnNetworkState(); PlayerMainDate.NetworkStateEvent += OnNetworkState; @@ -110,8 +110,8 @@ public void UnInit() { PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= Updatefighting;//数据的刷新(h0418) PlayerBuffDatas.Even_ObjAddBuf -= BuffGameObject; PlayerBuffDatas.Even_ObjDelBuff -= BuffGameObject; BuffModel.Even_ObjAddBuf -= BuffGameObject; BuffModel.Even_ObjDelBuff -= BuffGameObject; PlayerDatas.Instance.OnSwitchAttackMode -= OnSwitchAttackMode; PlayerMainDate.ElectricQuantityEvent -= OnElectricQuantity; PlayerMainDate.NetworkStateEvent -= OnNetworkState; System/MainInterfacePanel/MainInterfaceWin.cs
@@ -64,10 +64,10 @@ public static event Action IsOpenMaininterface; RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } } PlayerMountDatas horsemodel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } MountModel horsemodel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } PlayerMainDate onMainModel { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } } PlayerTaskDatas onPlayerTask { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } } PlayerBuffDatas Buffmodel { get { return ModelCenter.Instance.GetModel<PlayerBuffDatas>(); } } BuffModel Buffmodel { get { return ModelCenter.Instance.GetModel<BuffModel>(); } } PKModel pKModel { get { return ModelCenter.Instance.GetModel<PKModel>(); } } RuneTowerModel runeTowerModel { get { return ModelCenter.Instance.GetModel<RuneTowerModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } System/MainInterfacePanel/PKModel.cs
@@ -15,12 +15,12 @@ [XLua.LuaCallCSharp] public class PKModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize { PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } System/MainInterfacePanel/PlayerBuffDatas.cs
@@ -20,7 +20,7 @@ public int SkillTypeID; } public class PlayerBuffDatas : Model, IBeforePlayerDataInitialize, IPlayerLoginOk public class BuffModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public int PkType = 0;//PK对象选择 public delegate void OnObjAddBuff(); System/MainInterfacePanel/PlayerMainDate.cs
@@ -24,8 +24,8 @@ { get { return m_PlayerPackModel ?? (m_PlayerPackModel = ModelCenter.Instance.GetModel<PackModel>()); } } PlayerBuffDatas m_BuffModel; PlayerBuffDatas Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<PlayerBuffDatas>()); } } BuffModel m_BuffModel; BuffModel Buffmodel { get { return m_BuffModel ?? (m_BuffModel = ModelCenter.Instance.GetModel<BuffModel>()); } } DungeonAssistModel assistModel { get { return ModelCenter.Instance.GetModel<DungeonAssistModel>(); } } //用于记录XP技能的信息 public delegate void OnXpSkill(); System/Message/RichTableEvent.cs
@@ -674,7 +674,7 @@ public static int GetStrengthenType(int _id) { var _itemCfg = ItemConfig.Get(_id); var _type = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>().GameDefineIndex(_itemCfg.EquipPlace); var _type = ModelCenter.Instance.GetModel<StrengthenModel>().GameDefineIndex(_itemCfg.EquipPlace); return _type; } System/Mount/AutoTrainTipsWin.cs
@@ -37,8 +37,8 @@ private bool isBool = true; public static bool IsFairy = false; List<HorseSkillClass> MountSkills = new List<HorseSkillClass>(); PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } protected override void BindController() { moutwin = WindowCenter.Instance.Get<MountWin>(); System/Mount/MountModel.cs
File was renamed from System/Mount/PlayerMountDatas.cs @@ -1,753 +1,753 @@ using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; //用于坐骑 [XLua.LuaCallCSharp] public class HorseClass { public int Lv;//坐骑等级 public int Exp;//经验 } public enum HorseEnum { HorseDan = 0,//坐骑丹 HorseDebris = 1,//坐骑碎片 HorseStone = 2,//坐骑魂石 } public class HorseSkillClass { public int SkillID;//技能ID public int SkillItem;//升级技能所需道具 public int HorseID;//坐骑ID public int HorseLV;//所需等级 } public class PlayerMountDatas : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public string _HorseIDNow = string.Empty;//获取当前的坐骑ID public int HorseIDNow = 0; public delegate void MountHA301Update(int _HorseID); public static event MountHA301Update Event_MountHA301U;//坐骑的更新 public delegate void MountHA301Add(int _HorseID); public static event MountHA301Add Event_MountHA301A;//坐骑的添加 public delegate void MountHA339Update(HA339_tagMCAttrFruitEatCntList info); public static event MountHA339Update Event_MountHA339U;//坐骑魂石的刷新 public Dictionary<int, HorseSkillClass> GetMountSkillAndItem = new Dictionary<int, HorseSkillClass>();//1技能TypeID,所需的消耗物品ID public delegate void OnMountAlteration(string NowMount);//当前坐骑变更 public static event OnMountAlteration Event_MountAlteration; public static event Action OnMountUieffectUpLv;//关于坐骑升级时特效播放时的调用 public Dictionary<int, HorseClass> _DicHorse = new Dictionary<int, HorseClass>();//当前的坐骑字典 public Dictionary<int, int> _DicMountItem = new Dictionary<int, int>();//坐骑魂石的字典 public Dictionary<int, Redpoint> mountRedpoint = new Dictionary<int, Redpoint>();//坐骑外观切换红点 public Dictionary<int, Redpoint> DeblockingRedPoint = new Dictionary<int, Redpoint>();//激活按钮红点 public Dictionary<int, Redpoint> ASingleFeedRedPoint = new Dictionary<int, Redpoint>();//单次喂养红点 private List<HorseConfig> SortMount = new List<HorseConfig>();//用于红点排序 public int MountStoneItemId = 0; public bool IsOk = false; public List<int> ListEffectSkill = new List<int>(); private int HorseDanExp = 0;//坐骑丹经验 PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } public bool HorseRidingBool = false;//用来判断玩家是都在骑马 public bool Wait = true;//等待回包(使用坐骑丹) public static Action<int, bool> MultipleEvent; public static event Action PlayerLoginOKData; private Dictionary<int, int> DicDefaultMount = new Dictionary<int, int>(); public override void Init() { ToAddSorting(); playerPack.refreshItemCountEvent += OnItemRefreshEvent; MountWin.RedPointMountDan += RedPointMountDan; MountSkillAndItem(); MountNumberPreservation(); string str = FuncConfigConfig.Get("MountSkillEffect").Numerical1; int[] listeffect = ConfigParse.GetMultipleStr<int>(str); ListEffectSkill.Clear(); for (int i = 0; i < listeffect.Length; i++) { ListEffectSkill.Add(listeffect[i]); } string MountRedDotstr = FuncConfigConfig.Get("MountPetRedDot").Numerical1; DicDefaultMount = ConfigParse.GetDic<int, int>(MountRedDotstr); string HorseUpItem = FuncConfigConfig.Get("HorseUpItem").Numerical2; HorseDanExp = int.Parse(HorseUpItem); } public override void UnInit() { MountWin.RedPointMountDan -= RedPointMountDan; playerPack.refreshItemCountEvent -= OnItemRefreshEvent; } public void OnBeforePlayerDataInitialize() { IsOk = false; _HorseIDNow = string.Empty; HorseIDNow = 0; _DicHorse.Clear(); HorseRidingBool = false; Wait = true; } public void OnPlayerLoginOk() { GlobalTimeEvent.Instance.secondEvent -= secondEvent; GlobalTimeEvent.Instance.secondEvent += secondEvent; IsOk = true; SinglePack singPack = playerPack.GetSinglePack(PackType.Equip); if (singPack == null) return; foreach (var index in singPack.GetAllItems().Keys) { OnItemRefreshEvent(singPack.type, index, singPack.GetAllItems()[index].itemId); } if (PlayerLoginOKData != null) { PlayerLoginOKData(); } } private DateTime dateTimeA; private void secondEvent() { if (!Wait) { TimeSpan timeS = DateTime.Now - dateTimeA; if (timeS.Seconds >= 2f) { Wait = true; } } else { dateTimeA = DateTime.Now; } } List<HorseConfig> Hconfigs = new List<HorseConfig>(); List<HorseUpConfig> Uconfigs = new List<HorseUpConfig>(); private void MountNumberPreservation()//用来对坐骑个数的保存 { if (mountRedpoint.Count != 0) return; // var configs = HorseConfig.GetValues(); if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } int type = 0; foreach (var config in Hconfigs) { if (!mountRedpoint.ContainsKey(config.HorseID)) { type += 1; int mountID = config.HorseID; int RedPoint_Mountkey = MainRedDot.RedPoint_MountPackKey * 10 + mountID; Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPoint_Mountkey); mountRedpoint.Add(mountID, redPointMountStare); int RedPoint_Mountkey1 = RedPoint_Mountkey * 10 + type; Redpoint redPointMountStare1 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey1); DeblockingRedPoint.Add(mountID, redPointMountStare1); int RedPoint_Mountkey2 = RedPoint_Mountkey1 * 10 + type; Redpoint redPointMountStare2 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey2); ASingleFeedRedPoint.Add(mountID, redPointMountStare2); } } } private void MountChangeRedPoint()//坐骑激活红点 { foreach (var key in DeblockingRedPoint.Keys) { DeblockingRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(8)) { return; } if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } // var configs = HorseConfig.GetValues(); foreach (var config in Hconfigs) { int unlockItemID = config.UnlockItemID; int itemCount = playerPack.GetItemCountByID(PackType.Item, unlockItemID); int unlockItemCnt = config.UnlockItemCnt; if (itemCount >= unlockItemCnt && !_DicHorse.ContainsKey(config.HorseID)) { DeblockingRedPoint[config.HorseID].state = RedPointState.Simple; } } } void MountSkillAndItem()//获取坐骑技能 { if (GetMountSkillAndItem.Count != 0) return; if (Uconfigs.Count <= 0) { Uconfigs = HorseUpConfig.GetValues(); } //var configs = HorseUpConfig.GetValues(); foreach (var config in Uconfigs) { for (int i = 0; i < config.SkillID.Length; i++) { int skillID = config.SkillID[i]; if (skillID != 0 && !GetMountSkillAndItem.ContainsKey(skillID)) { SkillConfig _skillModel = SkillConfig.Get(skillID); HorseSkillClass horseSkillClass = new HorseSkillClass(); horseSkillClass.SkillID = skillID; horseSkillClass.SkillItem = _skillModel.ExAttr4; horseSkillClass.HorseID = config.HorseID; horseSkillClass.HorseLV = config.LV; GetMountSkillAndItem.Add(skillID, horseSkillClass); } } } } private const int Redpoint_key1 = 1050101; public Redpoint redPointStre1 = new Redpoint(MainRedDot.RedPoint_MountPackKey, Redpoint_key1);//坐骑外观 private const int Redpoint_key2 = 1050102; public Redpoint redPointStre2 = new Redpoint(MainRedDot.RedPoint_MountPackKey, Redpoint_key2);//坐骑兽魂 private void OnItemRefreshEvent(PackType type, int index, int id) { MountH0704(playerPack.GetItemByIndex(type, index)); if (type == PackType.Item) { if (_DicMountItem.ContainsKey(id)) { MountStoneRed(); } MountChangeRedPoint(); MountDanRed(); } } private void MountStoneRed()//坐骑魂石红点 { redPointStre2.state = RedPointState.None; if (!FuncOpen.Instance.IsFuncOpen(8)) return; int type = 0; foreach (var key in _DicMountItem.Keys) { var AttrFruit = AttrFruitConfig.Get(key); if (AttrFruit == null) { continue; } if (_DicMountItem[key] >= AttrFruit.MaxUseCnt) { continue; } type += playerPack.GetItemCountByID(PackType.Item, key); } if (type > 0) { redPointStre2.state = RedPointState.Simple; return; } } private void RedPointMountDan() { MountDanRed(); } private void ToAddSorting() { SortMount.Clear(); if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } SortMount = Hconfigs; SortMount.Sort(Compare); } int Compare(HorseConfig x, HorseConfig y)//数组排列 { if (x.Sort.CompareTo(y.Sort) != 0) { return x.Sort.CompareTo(y.Sort); } return 1; } private void MountDanRed()//关于坐骑丹红点 { foreach (var key in ASingleFeedRedPoint.Keys) { ASingleFeedRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(8) || _DicHorse.Count == 0) { return; } List<int> IntList = new List<int>(); FuncConfigConfig _tagfun = FuncConfigConfig.Get("HorseUpItem"); ItemConfig _tagchine = ItemConfig.Get(int.Parse(_tagfun.Numerical1)); int number = playerPack.GetItemCountByID(PackType.Item, _tagchine.ID); for (int i = 0; i < SortMount.Count; i++) { int horseID = SortMount[i].HorseID; int MaxLv = HorseConfig.Get(horseID).MaxLV; if (_DicHorse.ContainsKey(horseID) && _DicHorse[horseID].Lv < MaxLv) { int _NeedExp = HorseUpConfig.GetHorseIDAndLV(horseID, (_DicHorse[horseID].Lv)).NeedExp; int NeedExp = _NeedExp - _DicHorse[horseID].Exp; int NeedNumber = Mathf.CeilToInt((float)NeedExp / HorseDanExp); if (number >= NeedNumber) { IntList.Add(horseID); } } } foreach (var key in _DicHorse.Keys)//因为有成就任务限制所有 第一只坐骑红点逻辑特殊写 { if (DicDefaultMount.ContainsKey(key) && DicDefaultMount[key] > _DicHorse[key].Lv && number > 0 && ASingleFeedRedPoint.ContainsKey(key)) { ASingleFeedRedPoint[key].state = RedPointState.Simple; return; } } int GetMinLV = 100; int GetMountID = 0; List<int> IntListSkill = new List<int>(); for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑切经验最少 { int Id = SortMount[j].HorseID; int GetHorseMaxLv = GetMountSkillMaxLV(Id); if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id)) { if (_DicHorse[Id].Lv < GetHorseMaxLv) { IntListSkill.Add(Id); } } } int SkillHorseId = GetRedPointMountID(IntListSkill); if (SkillHorseId != 0 && ASingleFeedRedPoint.ContainsKey(SkillHorseId)) { ASingleFeedRedPoint[SkillHorseId].state = RedPointState.Simple; return; } for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低 { int Id = SortMount[j].HorseID; if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id)) { if (_DicHorse[Id].Lv < GetMinLV) { GetMinLV = _DicHorse[Id].Lv; GetMountID = Id; } } } if (GetMountID != 0 && ASingleFeedRedPoint.ContainsKey(GetMountID)) { ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple; return; } } public int GetMinExpMount() { foreach (var key in ASingleFeedRedPoint.Keys)//当存在驯养红点时选中当有红点的那只 { if (ASingleFeedRedPoint[key].state == RedPointState.Simple) { return key; } } int GetMountID = 0; int MountLV = 999; List<int> IntListSkill = new List<int>(); foreach (var key in _DicHorse.Keys) { var mountConfig = HorseConfig.Get(key); if (_DicHorse[key].Lv < mountConfig.MaxLV) { IntListSkill.Add(key); } } int SkillHorseId = GetRedPointMountID(IntListSkill); if (SkillHorseId != 0) { GetMountID = SkillHorseId; return GetMountID; } foreach (var key in _DicHorse.Keys)//无红点时跳转选中最低阶数且未满级 { var mountConfig = HorseConfig.Get(key); if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv < mountConfig.MaxLV) { GetMountID = key; MountLV = _DicHorse[key].Lv; } } return GetMountID; } private int GetRedPointMountID(List<int> MountList) { int GetSkillMinLv = 999; for (int i = 0; i < MountList.Count; i++) { int SkillminLv = GetSkillLvDis(MountList[i]); if (SkillminLv < GetSkillMinLv && SkillminLv!=0) { GetSkillMinLv = SkillminLv; } } int mountId = 0; int ExpNumber = 999999999; for (int i = 0; i < MountList.Count; i++) { int SkillLv = GetSkillLvDis(MountList[i]); if (SkillLv > GetSkillMinLv || SkillLv==0) { continue; } var Hor1 = HorseUpConfig.GetHorseIDAndLV(MountList[i], SkillLv); var Hor2 = HorseUpConfig.GetHorseIDAndLV(MountList[i],_DicHorse[(MountList[i])].Lv); int Exp = Hor1.NeedExpTotal - Hor2.NeedExpTotal - _DicHorse[(MountList[i])].Exp; if (Exp < ExpNumber) { ExpNumber = Exp; mountId = MountList[i]; } } return mountId; } private int GetSkillLvDis(int MountId)//获取离升级最近的技能等级 { int SkillLv = 0; foreach (var key in GetMountSkillAndItem.Keys) { if (_DicHorse.ContainsKey(MountId) && GetMountSkillAndItem[key].HorseID == MountId) { if (GetMountSkillAndItem[key].HorseLV > _DicHorse[MountId].Lv) { SkillLv = GetMountSkillAndItem[key].HorseLV; return SkillLv; } } } return SkillLv; } public int GetMountSkillMaxLV(int MountId)//获取坐骑最大技能等级 { int SkillLv = 0; foreach (var key in GetMountSkillAndItem.Keys) { if (GetMountSkillAndItem[key].HorseID == MountId) { if (GetMountSkillAndItem[key].HorseLV > SkillLv) { SkillLv = GetMountSkillAndItem[key].HorseLV; } } } return SkillLv; } public void MountH0704(ItemModel info)//获取当前的坐骑 { if (info == null || info.packType != PackType.Equip) return; if (info.itemPlace == (byte)RoleEquipType.mount)//坐骑位置19 { if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } // var configs = HorseConfig.GetValues(); foreach (var config in Hconfigs) { if (config.ItemID == info.itemId) { HorseIDNow = config.HorseID; _HorseIDNow = config.HorseID.ToString(); if (Event_MountAlteration != null && IsOk) { Event_MountAlteration(_HorseIDNow); } } } } MountDanRed(); MountStoneRed(); } public void MountHA301(HA301_tagTrainHorseData info)//已拥有的坐骑(获得与刷新) { for (int i = 0; i < info.Num; i++) { if (_DicHorse.ContainsKey((int)info.InfoList[i].HorseID)) { if ((int)info.InfoList[i].LV > _DicHorse[(int)info.InfoList[i].HorseID].Lv) { if (OnMountUieffectUpLv != null && IsOk) { OnMountUieffectUpLv(); } } _DicHorse[(int)info.InfoList[i].HorseID].Lv = (int)info.InfoList[i].LV;//坐骑等级 _DicHorse[(int)info.InfoList[i].HorseID].Exp = (int)info.InfoList[i].Exp;//坐骑经验 if (Event_MountHA301U != null && IsOk) { Event_MountHA301U((int)info.InfoList[i].HorseID); } } else { HorseClass _horseClass = new HorseClass(); _horseClass.Lv = (int)info.InfoList[i].LV;//坐骑等级 _horseClass.Exp = (int)info.InfoList[i].Exp;//坐骑经验 _DicHorse.Add((int)info.InfoList[i].HorseID, _horseClass); if (Event_MountHA301A != null && IsOk) { Event_MountHA301A((int)info.InfoList[i].HorseID); } } } MountStoneRed(); MountChangeRedPoint(); MountDanRed(); } public void MountHA339(HA339_tagMCAttrFruitEatCntList info)//坐骑魂石 { for (int i = 0; i < info.count; i++) { var configItem = ItemConfig.Get((int)info.EatCntList[i].ItemID); if (configItem == null) { continue; } if (_DicMountItem.ContainsKey((int)info.EatCntList[i].ItemID)) { _DicMountItem[(int)info.EatCntList[i].ItemID] = (int)info.EatCntList[i].EatCnt; if (Event_MountHA339U != null) Event_MountHA339U(info);//坐骑魂石的刷新 } else { if (configItem.Type == 22) { _DicMountItem.Add((int)info.EatCntList[i].ItemID, (int)info.EatCntList[i].EatCnt); } } } MountStoneRed(); } public int GetAllMountAttack()//得到所有坐骑的攻击 { Dictionary<int, int> dicStone = Bonuses(); if (_DicHorse.Count == 0) { return dicStone[7]; } else { int _AttT = 0;//攻击 foreach (int key in _DicHorse.Keys) { HorseUpConfig tagMode = HorseUpConfig.GetHorseIDAndLV(key, _DicHorse[key].Lv); int[] intAttrValue = tagMode.AttrValue; if (intAttrValue.Length != 0) { _AttT += intAttrValue[1]; } } return _AttT + dicStone[7]; } } Dictionary<int, int> Bonuses()//属性加成 { Dictionary<int, int> dic = new Dictionary<int, int>(); dic.Clear(); dic.Add(6, 0);//生命 dic.Add(7, 0);//攻击 dic.Add(8, 0);//防御 foreach (int key in _DicMountItem.Keys) { if (_DicMountItem[key] != 0) { ItemConfig itemModel = ItemConfig.Get(key); if (dic.ContainsKey(itemModel.Effect1)) { dic[itemModel.Effect1] += itemModel.EffectValueA1 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect2)) { dic[itemModel.Effect2] += itemModel.EffectValueA2 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect3)) { dic[itemModel.Effect3] += itemModel.EffectValueA3 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect4)) { dic[itemModel.Effect4] += itemModel.EffectValueA4 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect5)) { dic[itemModel.Effect5] += itemModel.EffectValueA5 * _DicMountItem[key]; } } } return dic; } public bool IsHint(HorseEnum horseEnum, int id = 0)//True提示,False不提示 { bool iSHint = false; switch (horseEnum) { case HorseEnum.HorseDan: foreach (var key in _DicHorse.Keys) { HorseConfig horseConfig = HorseConfig.Get(key); if (horseConfig.MaxLV > _DicHorse[key].Lv) { iSHint = true; } } return iSHint; case HorseEnum.HorseDebris: if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } foreach (var value in Hconfigs) { if (value.UnlockItemID == id) { if (!_DicHorse.ContainsKey(value.HorseID)) { iSHint = true; } } } return iSHint; case HorseEnum.HorseStone: int _maxuse = AttrFruitConfig.Get(id).MaxUseCnt; if (_DicMountItem.ContainsKey(id)) { if (_maxuse > _DicMountItem[id]) { iSHint = true; } } return iSHint; default: return true; } } public void AppearanceSwitch(int HorseID)//坐骑外观切换 { CA502_tagPlayerChooseHorse _tagCA502 = new CA502_tagPlayerChooseHorse(); _tagCA502.Index = (uint)HorseID; GameNetSystem.Instance.SendInfo(_tagCA502); } public void MountDanUse(int HorseID, int Number, bool IsAutoBuy = false)//是否自动购买 { CA527_tagCMHorseUp _tagC527 = new CA527_tagCMHorseUp();//向服务端发包坐骑经验单 _tagC527.HorseID = (uint)HorseID; _tagC527.UseItemCnt = (byte)Number; if (IsAutoBuy) { _tagC527.IsAutoBuy = 1; } GameNetSystem.Instance.SendInfo(_tagC527); } public int IsHorsePanelState() { int Type = 0; foreach (var value in DeblockingRedPoint.Values) { if (value.state == RedPointState.Simple) { Type = 2; return Type; } } if (MainRedDot.Instance.redPointMountFunc.state == RedPointState.Simple) { Type = 1; return Type; } return Type; } #region 预览坐骑碎片属性 Dictionary<int, int> mountAttrDict = new Dictionary<int, int>(); public Dictionary<int, int> GetMountAttrAddDict(int mountCode) { HorseConfig horseConfig = HorseConfig.Get(mountCode); mountAttrDict.Clear(); if (horseConfig == null) return mountAttrDict; int maxRank = horseConfig.MaxLV; HorseUpConfig cost = HorseUpConfig.GetHorseIDAndLV(mountCode, maxRank); if (cost != null) { int[] attrIds = cost.AttrType; int[] attrValues = cost.AttrValue; if (attrIds != null) { for (int j = 0; j < attrIds.Length; j++) { if (!mountAttrDict.ContainsKey(attrIds[j])) { mountAttrDict.Add(attrIds[j], attrValues[j]); } else { mountAttrDict[attrIds[j]] += attrValues[j]; } } } } return mountAttrDict; } #endregion } using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; //用于坐骑 [XLua.LuaCallCSharp] public class HorseClass { public int Lv;//坐骑等级 public int Exp;//经验 } public enum HorseEnum { HorseDan = 0,//坐骑丹 HorseDebris = 1,//坐骑碎片 HorseStone = 2,//坐骑魂石 } public class HorseSkillClass { public int SkillID;//技能ID public int SkillItem;//升级技能所需道具 public int HorseID;//坐骑ID public int HorseLV;//所需等级 } public class MountModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public string _HorseIDNow = string.Empty;//获取当前的坐骑ID public int HorseIDNow = 0; public delegate void MountHA301Update(int _HorseID); public static event MountHA301Update Event_MountHA301U;//坐骑的更新 public delegate void MountHA301Add(int _HorseID); public static event MountHA301Add Event_MountHA301A;//坐骑的添加 public delegate void MountHA339Update(HA339_tagMCAttrFruitEatCntList info); public static event MountHA339Update Event_MountHA339U;//坐骑魂石的刷新 public Dictionary<int, HorseSkillClass> GetMountSkillAndItem = new Dictionary<int, HorseSkillClass>();//1技能TypeID,所需的消耗物品ID public delegate void OnMountAlteration(string NowMount);//当前坐骑变更 public static event OnMountAlteration Event_MountAlteration; public static event Action OnMountUieffectUpLv;//关于坐骑升级时特效播放时的调用 public Dictionary<int, HorseClass> _DicHorse = new Dictionary<int, HorseClass>();//当前的坐骑字典 public Dictionary<int, int> _DicMountItem = new Dictionary<int, int>();//坐骑魂石的字典 public Dictionary<int, Redpoint> mountRedpoint = new Dictionary<int, Redpoint>();//坐骑外观切换红点 public Dictionary<int, Redpoint> DeblockingRedPoint = new Dictionary<int, Redpoint>();//激活按钮红点 public Dictionary<int, Redpoint> ASingleFeedRedPoint = new Dictionary<int, Redpoint>();//单次喂养红点 private List<HorseConfig> SortMount = new List<HorseConfig>();//用于红点排序 public int MountStoneItemId = 0; public bool IsOk = false; public List<int> ListEffectSkill = new List<int>(); private int HorseDanExp = 0;//坐骑丹经验 PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } public bool HorseRidingBool = false;//用来判断玩家是都在骑马 public bool Wait = true;//等待回包(使用坐骑丹) public static Action<int, bool> MultipleEvent; public static event Action PlayerLoginOKData; private Dictionary<int, int> DicDefaultMount = new Dictionary<int, int>(); public override void Init() { ToAddSorting(); playerPack.refreshItemCountEvent += OnItemRefreshEvent; MountWin.RedPointMountDan += RedPointMountDan; MountSkillAndItem(); MountNumberPreservation(); string str = FuncConfigConfig.Get("MountSkillEffect").Numerical1; int[] listeffect = ConfigParse.GetMultipleStr<int>(str); ListEffectSkill.Clear(); for (int i = 0; i < listeffect.Length; i++) { ListEffectSkill.Add(listeffect[i]); } string MountRedDotstr = FuncConfigConfig.Get("MountPetRedDot").Numerical1; DicDefaultMount = ConfigParse.GetDic<int, int>(MountRedDotstr); string HorseUpItem = FuncConfigConfig.Get("HorseUpItem").Numerical2; HorseDanExp = int.Parse(HorseUpItem); } public override void UnInit() { MountWin.RedPointMountDan -= RedPointMountDan; playerPack.refreshItemCountEvent -= OnItemRefreshEvent; } public void OnBeforePlayerDataInitialize() { IsOk = false; _HorseIDNow = string.Empty; HorseIDNow = 0; _DicHorse.Clear(); HorseRidingBool = false; Wait = true; } public void OnPlayerLoginOk() { GlobalTimeEvent.Instance.secondEvent -= secondEvent; GlobalTimeEvent.Instance.secondEvent += secondEvent; IsOk = true; SinglePack singPack = playerPack.GetSinglePack(PackType.Equip); if (singPack == null) return; foreach (var index in singPack.GetAllItems().Keys) { OnItemRefreshEvent(singPack.type, index, singPack.GetAllItems()[index].itemId); } if (PlayerLoginOKData != null) { PlayerLoginOKData(); } } private DateTime dateTimeA; private void secondEvent() { if (!Wait) { TimeSpan timeS = DateTime.Now - dateTimeA; if (timeS.Seconds >= 2f) { Wait = true; } } else { dateTimeA = DateTime.Now; } } List<HorseConfig> Hconfigs = new List<HorseConfig>(); List<HorseUpConfig> Uconfigs = new List<HorseUpConfig>(); private void MountNumberPreservation()//用来对坐骑个数的保存 { if (mountRedpoint.Count != 0) return; // var configs = HorseConfig.GetValues(); if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } int type = 0; foreach (var config in Hconfigs) { if (!mountRedpoint.ContainsKey(config.HorseID)) { type += 1; int mountID = config.HorseID; int RedPoint_Mountkey = MainRedDot.RedPoint_MountPackKey * 10 + mountID; Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPoint_Mountkey); mountRedpoint.Add(mountID, redPointMountStare); int RedPoint_Mountkey1 = RedPoint_Mountkey * 10 + type; Redpoint redPointMountStare1 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey1); DeblockingRedPoint.Add(mountID, redPointMountStare1); int RedPoint_Mountkey2 = RedPoint_Mountkey1 * 10 + type; Redpoint redPointMountStare2 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey2); ASingleFeedRedPoint.Add(mountID, redPointMountStare2); } } } private void MountChangeRedPoint()//坐骑激活红点 { foreach (var key in DeblockingRedPoint.Keys) { DeblockingRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(8)) { return; } if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } // var configs = HorseConfig.GetValues(); foreach (var config in Hconfigs) { int unlockItemID = config.UnlockItemID; int itemCount = playerPack.GetItemCountByID(PackType.Item, unlockItemID); int unlockItemCnt = config.UnlockItemCnt; if (itemCount >= unlockItemCnt && !_DicHorse.ContainsKey(config.HorseID)) { DeblockingRedPoint[config.HorseID].state = RedPointState.Simple; } } } void MountSkillAndItem()//获取坐骑技能 { if (GetMountSkillAndItem.Count != 0) return; if (Uconfigs.Count <= 0) { Uconfigs = HorseUpConfig.GetValues(); } //var configs = HorseUpConfig.GetValues(); foreach (var config in Uconfigs) { for (int i = 0; i < config.SkillID.Length; i++) { int skillID = config.SkillID[i]; if (skillID != 0 && !GetMountSkillAndItem.ContainsKey(skillID)) { SkillConfig _skillModel = SkillConfig.Get(skillID); HorseSkillClass horseSkillClass = new HorseSkillClass(); horseSkillClass.SkillID = skillID; horseSkillClass.SkillItem = _skillModel.ExAttr4; horseSkillClass.HorseID = config.HorseID; horseSkillClass.HorseLV = config.LV; GetMountSkillAndItem.Add(skillID, horseSkillClass); } } } } private const int Redpoint_key1 = 1050101; public Redpoint redPointStre1 = new Redpoint(MainRedDot.RedPoint_MountPackKey, Redpoint_key1);//坐骑外观 private const int Redpoint_key2 = 1050102; public Redpoint redPointStre2 = new Redpoint(MainRedDot.RedPoint_MountPackKey, Redpoint_key2);//坐骑兽魂 private void OnItemRefreshEvent(PackType type, int index, int id) { MountH0704(playerPack.GetItemByIndex(type, index)); if (type == PackType.Item) { if (_DicMountItem.ContainsKey(id)) { MountStoneRed(); } MountChangeRedPoint(); MountDanRed(); } } private void MountStoneRed()//坐骑魂石红点 { redPointStre2.state = RedPointState.None; if (!FuncOpen.Instance.IsFuncOpen(8)) return; int type = 0; foreach (var key in _DicMountItem.Keys) { var AttrFruit = AttrFruitConfig.Get(key); if (AttrFruit == null) { continue; } if (_DicMountItem[key] >= AttrFruit.MaxUseCnt) { continue; } type += playerPack.GetItemCountByID(PackType.Item, key); } if (type > 0) { redPointStre2.state = RedPointState.Simple; return; } } private void RedPointMountDan() { MountDanRed(); } private void ToAddSorting() { SortMount.Clear(); if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } SortMount = Hconfigs; SortMount.Sort(Compare); } int Compare(HorseConfig x, HorseConfig y)//数组排列 { if (x.Sort.CompareTo(y.Sort) != 0) { return x.Sort.CompareTo(y.Sort); } return 1; } private void MountDanRed()//关于坐骑丹红点 { foreach (var key in ASingleFeedRedPoint.Keys) { ASingleFeedRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(8) || _DicHorse.Count == 0) { return; } List<int> IntList = new List<int>(); FuncConfigConfig _tagfun = FuncConfigConfig.Get("HorseUpItem"); ItemConfig _tagchine = ItemConfig.Get(int.Parse(_tagfun.Numerical1)); int number = playerPack.GetItemCountByID(PackType.Item, _tagchine.ID); for (int i = 0; i < SortMount.Count; i++) { int horseID = SortMount[i].HorseID; int MaxLv = HorseConfig.Get(horseID).MaxLV; if (_DicHorse.ContainsKey(horseID) && _DicHorse[horseID].Lv < MaxLv) { int _NeedExp = HorseUpConfig.GetHorseIDAndLV(horseID, (_DicHorse[horseID].Lv)).NeedExp; int NeedExp = _NeedExp - _DicHorse[horseID].Exp; int NeedNumber = Mathf.CeilToInt((float)NeedExp / HorseDanExp); if (number >= NeedNumber) { IntList.Add(horseID); } } } foreach (var key in _DicHorse.Keys)//因为有成就任务限制所有 第一只坐骑红点逻辑特殊写 { if (DicDefaultMount.ContainsKey(key) && DicDefaultMount[key] > _DicHorse[key].Lv && number > 0 && ASingleFeedRedPoint.ContainsKey(key)) { ASingleFeedRedPoint[key].state = RedPointState.Simple; return; } } int GetMinLV = 100; int GetMountID = 0; List<int> IntListSkill = new List<int>(); for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑切经验最少 { int Id = SortMount[j].HorseID; int GetHorseMaxLv = GetMountSkillMaxLV(Id); if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id)) { if (_DicHorse[Id].Lv < GetHorseMaxLv) { IntListSkill.Add(Id); } } } int SkillHorseId = GetRedPointMountID(IntListSkill); if (SkillHorseId != 0 && ASingleFeedRedPoint.ContainsKey(SkillHorseId)) { ASingleFeedRedPoint[SkillHorseId].state = RedPointState.Simple; return; } for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低 { int Id = SortMount[j].HorseID; if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id)) { if (_DicHorse[Id].Lv < GetMinLV) { GetMinLV = _DicHorse[Id].Lv; GetMountID = Id; } } } if (GetMountID != 0 && ASingleFeedRedPoint.ContainsKey(GetMountID)) { ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple; return; } } public int GetMinExpMount() { foreach (var key in ASingleFeedRedPoint.Keys)//当存在驯养红点时选中当有红点的那只 { if (ASingleFeedRedPoint[key].state == RedPointState.Simple) { return key; } } int GetMountID = 0; int MountLV = 999; List<int> IntListSkill = new List<int>(); foreach (var key in _DicHorse.Keys) { var mountConfig = HorseConfig.Get(key); if (_DicHorse[key].Lv < mountConfig.MaxLV) { IntListSkill.Add(key); } } int SkillHorseId = GetRedPointMountID(IntListSkill); if (SkillHorseId != 0) { GetMountID = SkillHorseId; return GetMountID; } foreach (var key in _DicHorse.Keys)//无红点时跳转选中最低阶数且未满级 { var mountConfig = HorseConfig.Get(key); if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv < mountConfig.MaxLV) { GetMountID = key; MountLV = _DicHorse[key].Lv; } } return GetMountID; } private int GetRedPointMountID(List<int> MountList) { int GetSkillMinLv = 999; for (int i = 0; i < MountList.Count; i++) { int SkillminLv = GetSkillLvDis(MountList[i]); if (SkillminLv < GetSkillMinLv && SkillminLv!=0) { GetSkillMinLv = SkillminLv; } } int mountId = 0; int ExpNumber = 999999999; for (int i = 0; i < MountList.Count; i++) { int SkillLv = GetSkillLvDis(MountList[i]); if (SkillLv > GetSkillMinLv || SkillLv==0) { continue; } var Hor1 = HorseUpConfig.GetHorseIDAndLV(MountList[i], SkillLv); var Hor2 = HorseUpConfig.GetHorseIDAndLV(MountList[i],_DicHorse[(MountList[i])].Lv); int Exp = Hor1.NeedExpTotal - Hor2.NeedExpTotal - _DicHorse[(MountList[i])].Exp; if (Exp < ExpNumber) { ExpNumber = Exp; mountId = MountList[i]; } } return mountId; } private int GetSkillLvDis(int MountId)//获取离升级最近的技能等级 { int SkillLv = 0; foreach (var key in GetMountSkillAndItem.Keys) { if (_DicHorse.ContainsKey(MountId) && GetMountSkillAndItem[key].HorseID == MountId) { if (GetMountSkillAndItem[key].HorseLV > _DicHorse[MountId].Lv) { SkillLv = GetMountSkillAndItem[key].HorseLV; return SkillLv; } } } return SkillLv; } public int GetMountSkillMaxLV(int MountId)//获取坐骑最大技能等级 { int SkillLv = 0; foreach (var key in GetMountSkillAndItem.Keys) { if (GetMountSkillAndItem[key].HorseID == MountId) { if (GetMountSkillAndItem[key].HorseLV > SkillLv) { SkillLv = GetMountSkillAndItem[key].HorseLV; } } } return SkillLv; } public void MountH0704(ItemModel info)//获取当前的坐骑 { if (info == null || info.packType != PackType.Equip) return; if (info.itemPlace == (byte)RoleEquipType.mount)//坐骑位置19 { if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } // var configs = HorseConfig.GetValues(); foreach (var config in Hconfigs) { if (config.ItemID == info.itemId) { HorseIDNow = config.HorseID; _HorseIDNow = config.HorseID.ToString(); if (Event_MountAlteration != null && IsOk) { Event_MountAlteration(_HorseIDNow); } } } } MountDanRed(); MountStoneRed(); } public void MountHA301(HA301_tagTrainHorseData info)//已拥有的坐骑(获得与刷新) { for (int i = 0; i < info.Num; i++) { if (_DicHorse.ContainsKey((int)info.InfoList[i].HorseID)) { if ((int)info.InfoList[i].LV > _DicHorse[(int)info.InfoList[i].HorseID].Lv) { if (OnMountUieffectUpLv != null && IsOk) { OnMountUieffectUpLv(); } } _DicHorse[(int)info.InfoList[i].HorseID].Lv = (int)info.InfoList[i].LV;//坐骑等级 _DicHorse[(int)info.InfoList[i].HorseID].Exp = (int)info.InfoList[i].Exp;//坐骑经验 if (Event_MountHA301U != null && IsOk) { Event_MountHA301U((int)info.InfoList[i].HorseID); } } else { HorseClass _horseClass = new HorseClass(); _horseClass.Lv = (int)info.InfoList[i].LV;//坐骑等级 _horseClass.Exp = (int)info.InfoList[i].Exp;//坐骑经验 _DicHorse.Add((int)info.InfoList[i].HorseID, _horseClass); if (Event_MountHA301A != null && IsOk) { Event_MountHA301A((int)info.InfoList[i].HorseID); } } } MountStoneRed(); MountChangeRedPoint(); MountDanRed(); } public void MountHA339(HA339_tagMCAttrFruitEatCntList info)//坐骑魂石 { for (int i = 0; i < info.count; i++) { var configItem = ItemConfig.Get((int)info.EatCntList[i].ItemID); if (configItem == null) { continue; } if (_DicMountItem.ContainsKey((int)info.EatCntList[i].ItemID)) { _DicMountItem[(int)info.EatCntList[i].ItemID] = (int)info.EatCntList[i].EatCnt; if (Event_MountHA339U != null) Event_MountHA339U(info);//坐骑魂石的刷新 } else { if (configItem.Type == 22) { _DicMountItem.Add((int)info.EatCntList[i].ItemID, (int)info.EatCntList[i].EatCnt); } } } MountStoneRed(); } public int GetAllMountAttack()//得到所有坐骑的攻击 { Dictionary<int, int> dicStone = Bonuses(); if (_DicHorse.Count == 0) { return dicStone[7]; } else { int _AttT = 0;//攻击 foreach (int key in _DicHorse.Keys) { HorseUpConfig tagMode = HorseUpConfig.GetHorseIDAndLV(key, _DicHorse[key].Lv); int[] intAttrValue = tagMode.AttrValue; if (intAttrValue.Length != 0) { _AttT += intAttrValue[1]; } } return _AttT + dicStone[7]; } } Dictionary<int, int> Bonuses()//属性加成 { Dictionary<int, int> dic = new Dictionary<int, int>(); dic.Clear(); dic.Add(6, 0);//生命 dic.Add(7, 0);//攻击 dic.Add(8, 0);//防御 foreach (int key in _DicMountItem.Keys) { if (_DicMountItem[key] != 0) { ItemConfig itemModel = ItemConfig.Get(key); if (dic.ContainsKey(itemModel.Effect1)) { dic[itemModel.Effect1] += itemModel.EffectValueA1 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect2)) { dic[itemModel.Effect2] += itemModel.EffectValueA2 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect3)) { dic[itemModel.Effect3] += itemModel.EffectValueA3 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect4)) { dic[itemModel.Effect4] += itemModel.EffectValueA4 * _DicMountItem[key]; } if (dic.ContainsKey(itemModel.Effect5)) { dic[itemModel.Effect5] += itemModel.EffectValueA5 * _DicMountItem[key]; } } } return dic; } public bool IsHint(HorseEnum horseEnum, int id = 0)//True提示,False不提示 { bool iSHint = false; switch (horseEnum) { case HorseEnum.HorseDan: foreach (var key in _DicHorse.Keys) { HorseConfig horseConfig = HorseConfig.Get(key); if (horseConfig.MaxLV > _DicHorse[key].Lv) { iSHint = true; } } return iSHint; case HorseEnum.HorseDebris: if (Hconfigs.Count <= 0) { Hconfigs = HorseConfig.GetValues(); } foreach (var value in Hconfigs) { if (value.UnlockItemID == id) { if (!_DicHorse.ContainsKey(value.HorseID)) { iSHint = true; } } } return iSHint; case HorseEnum.HorseStone: int _maxuse = AttrFruitConfig.Get(id).MaxUseCnt; if (_DicMountItem.ContainsKey(id)) { if (_maxuse > _DicMountItem[id]) { iSHint = true; } } return iSHint; default: return true; } } public void AppearanceSwitch(int HorseID)//坐骑外观切换 { CA502_tagPlayerChooseHorse _tagCA502 = new CA502_tagPlayerChooseHorse(); _tagCA502.Index = (uint)HorseID; GameNetSystem.Instance.SendInfo(_tagCA502); } public void MountDanUse(int HorseID, int Number, bool IsAutoBuy = false)//是否自动购买 { CA527_tagCMHorseUp _tagC527 = new CA527_tagCMHorseUp();//向服务端发包坐骑经验单 _tagC527.HorseID = (uint)HorseID; _tagC527.UseItemCnt = (byte)Number; if (IsAutoBuy) { _tagC527.IsAutoBuy = 1; } GameNetSystem.Instance.SendInfo(_tagC527); } public int IsHorsePanelState() { int Type = 0; foreach (var value in DeblockingRedPoint.Values) { if (value.state == RedPointState.Simple) { Type = 2; return Type; } } if (MainRedDot.Instance.redPointMountFunc.state == RedPointState.Simple) { Type = 1; return Type; } return Type; } #region 预览坐骑碎片属性 Dictionary<int, int> mountAttrDict = new Dictionary<int, int>(); public Dictionary<int, int> GetMountAttrAddDict(int mountCode) { HorseConfig horseConfig = HorseConfig.Get(mountCode); mountAttrDict.Clear(); if (horseConfig == null) return mountAttrDict; int maxRank = horseConfig.MaxLV; HorseUpConfig cost = HorseUpConfig.GetHorseIDAndLV(mountCode, maxRank); if (cost != null) { int[] attrIds = cost.AttrType; int[] attrValues = cost.AttrValue; if (attrIds != null) { for (int j = 0; j < attrIds.Length; j++) { if (!mountAttrDict.ContainsKey(attrIds[j])) { mountAttrDict.Add(attrIds[j], attrValues[j]); } else { mountAttrDict[attrIds[j]] += attrValues[j]; } } } } return mountAttrDict; } #endregion } System/Mount/MountModel.cs.meta
System/Mount/MountPanelAssignment.cs
@@ -68,8 +68,8 @@ [SerializeField] ScrollerController allPetSkillCtrl;//所有的技能 private int mount_ID = 0;//用来标记坐骑的ID PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } GetItemPathModel _GetItemPath; GetItemPathModel GetItemPath { get { return _GetItemPath ?? (_GetItemPath = ModelCenter.Instance.GetModel<GetItemPathModel>()); } } @@ -87,7 +87,7 @@ private void OnEnable() { PlayerMountDatas.Event_MountHA301U += OnMountHA301Update; MountModel.Event_MountHA301U += OnMountHA301Update; allPetSkillCtrl.OnRefreshCell += RefreshAllMountSkillCell; FlySkillIconWin.FlySkillID += FlySkillID; CreateAllMountSkill(); @@ -95,7 +95,7 @@ private void OnDisable() { mount_ID = 0; PlayerMountDatas.Event_MountHA301U -= OnMountHA301Update; MountModel.Event_MountHA301U -= OnMountHA301Update; allPetSkillCtrl.OnRefreshCell -= RefreshAllMountSkillCell; FlySkillIconWin.FlySkillID -= FlySkillID; m_MountRawImg.gameObject.SetActive(false); System/Mount/MountSkillWin.cs
@@ -52,8 +52,8 @@ private Dictionary<int, int> _GetMountSkills;//坐骑获得的技能(技能的Type值和技能等级) private List<int> _MountList = new List<int>();//坐骑技能列表 private Dictionary<int, HorseClass> _dicHorse;//已拥有是我坐骑字典 PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } System/Mount/MountStoneTipsWin.cs
@@ -25,12 +25,12 @@ private Dictionary<int, int> tag_Item = new Dictionary<int, int>();//坐骑魂石存 Dictionary<string, ItemConfig> tagCIM = new Dictionary<string, ItemConfig>(); private List<int> ListID = new List<int>(); PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } protected override void BindController() @@ -58,7 +58,7 @@ protected override void OnAfterOpen() { PlayerMountDatas.Event_MountHA339U += HA339; MountModel.Event_MountHA339U += HA339; roleParticularModel.PowerUpdate += PowerUpdate; } @@ -70,7 +70,7 @@ protected override void OnAfterClose() { m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; PlayerMountDatas.Event_MountHA339U -= HA339; MountModel.Event_MountHA339U -= HA339; roleParticularModel.PowerUpdate -= PowerUpdate; } System/Mount/MountWin.cs
@@ -50,8 +50,8 @@ GetItemPathModel GetItemPath { get { return _GetItemPath ?? (_GetItemPath = ModelCenter.Instance.GetModel<GetItemPathModel>()); } } PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } RidingAndPetActivationModel ridingAndPetActivationModel { get { return ModelCenter.Instance.GetModel<RidingAndPetActivationModel>(); } } public static event Action RedPointMountDan; @@ -78,10 +78,10 @@ protected override void OnPreOpen() { mountModel.Wait = true; PlayerMountDatas.Event_MountAlteration += OnMountAlteration; PlayerMountDatas.Event_MountHA301U += OnMountUpdate; PlayerMountDatas.Event_MountHA301A += OnMountAdd; PlayerMountDatas.OnMountUieffectUpLv += OnMountUieffectUpLv; MountModel.Event_MountAlteration += OnMountAlteration; MountModel.Event_MountHA301U += OnMountUpdate; MountModel.Event_MountHA301A += OnMountAdd; MountModel.OnMountUieffectUpLv += OnMountUieffectUpLv; RidingAndPetActivationWin.FairyJadeDEvent += FairyJadeDEvent; FlySkillIconWin.FairyJadeDEvent += FairyJadeDEvent; m_ScrollerController.OnRefreshCell += OnRefreshGridCell; @@ -103,11 +103,11 @@ protected override void OnPreClose() { AchievementGoto.achievementType = 0; PlayerMountDatas.Event_MountAlteration -= OnMountAlteration; PlayerMountDatas.Event_MountHA301U -= OnMountUpdate; PlayerMountDatas.Event_MountHA301A -= OnMountAdd; MountModel.Event_MountAlteration -= OnMountAlteration; MountModel.Event_MountHA301U -= OnMountUpdate; MountModel.Event_MountHA301A -= OnMountAdd; m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; PlayerMountDatas.OnMountUieffectUpLv -= OnMountUieffectUpLv; MountModel.OnMountUieffectUpLv -= OnMountUieffectUpLv; RidingAndPetActivationWin.FairyJadeDEvent -= FairyJadeDEvent; FlySkillIconWin.FairyJadeDEvent -= FairyJadeDEvent; OnClickStopDomesticateBtn(); System/Pet/PetAttributeMethods.cs
@@ -79,8 +79,8 @@ [SerializeField] UIEffect m_UIeffect2;//经验条特效 private int typePetID = 0; private float timePlay = 0;//灵宠动作播放时间 PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); } } PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } GetItemPathModel pathModel { get { return ModelCenter.Instance.GetModel<GetItemPathModel>(); } } PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } @@ -95,8 +95,8 @@ isAutoTrain = false; breakLockBtn.AddListener(ClickBreakBtn); petAutoTrainBtn.AddListener(ClickPetAutoTrainBtn); PlayerPetDatas.Event_H0704Update += RefreshPetInfoUpdate; PlayerPetDatas.Event_H0704Add += RefreshPetInfo; PetModel.Event_H0704Update += RefreshPetInfoUpdate; PetModel.Event_H0704Add += RefreshPetInfo; petStoneBtn.AddListener(() => { WindowCenter.Instance.Open<PetStoneTipsWin>(); }); curPetSkillCtrl.OnRefreshCell += RefreshCurPetSkillCell; allPetSkillCtrl.OnRefreshCell += RefreshAllPetSkillCell; @@ -115,8 +115,8 @@ { typePetID = 0; StopCoroutine("FrameDelay"); PlayerPetDatas.Event_H0704Update -= RefreshPetInfoUpdate; PlayerPetDatas.Event_H0704Add -= RefreshPetInfo; PetModel.Event_H0704Update -= RefreshPetInfoUpdate; PetModel.Event_H0704Add -= RefreshPetInfo; curPetSkillCtrl.OnRefreshCell -= RefreshCurPetSkillCell; allPetSkillCtrl.OnRefreshCell -= RefreshAllPetSkillCell; FlySkillIconWin.FlySkillID -= FlySkillID; System/Pet/PetAttributeWin.cs
@@ -25,8 +25,8 @@ List<PetInfoConfig> sortlist = new List<PetInfoConfig>();//灵兽顺序排列 GetItemPathModel _GetItemPath; GetItemPathModel GetItemPath { get { return _GetItemPath ?? (_GetItemPath = ModelCenter.Instance.GetModel<GetItemPathModel>()); } } PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); } } PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } @@ -56,9 +56,9 @@ ToAddSorting(); isOpenFirst = true; petmodel.Wait = true; PlayerPetDatas.Event_H0704Add += AddPet; PlayerPetDatas.Event_H0704Update += PetUpdate; PlayerPetDatas.Event_SpiritPetPlay += OnSpiritPetPlay; PetModel.Event_H0704Add += AddPet; PetModel.Event_H0704Update += PetUpdate; PetModel.Event_SpiritPetPlay += OnSpiritPetPlay; m_ScrollerController.OnRefreshCell += OnRefreshGridCell; OptionIsSelected();//默认赋值 OnCreateGridLineCell(m_ScrollerController); @@ -81,10 +81,10 @@ { StopCoroutine("IeWait"); AchievementGoto.achievementType = 0; PlayerPetDatas.Event_H0704Add -= AddPet; PetModel.Event_H0704Add -= AddPet; m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; PlayerPetDatas.Event_SpiritPetPlay -= OnSpiritPetPlay; PlayerPetDatas.Event_H0704Update -= PetUpdate; PetModel.Event_SpiritPetPlay -= OnSpiritPetPlay; PetModel.Event_H0704Update -= PetUpdate; } System/Pet/PetButton.cs
@@ -27,8 +27,8 @@ [SerializeField] PetAttributeMethods _PetAttributeMethods; [SerializeField] Button m_PlayedButton;//出战按钮 [SerializeField] Text m_Played_Text;//出战文本 PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); } } PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } public Button PetButton1 { System/Pet/PetModel.cs
File was renamed from System/Pet/PlayerPetDatas.cs @@ -1,792 +1,792 @@ using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; [XLua.LuaCallCSharp] public class PetBackpack//宠物背包 { public int PetClass;//宠物阶级 public int PetStatus;//宠物当前状态 1为出战 0未出战 public int ItemPlace;//宠物位置索引 public int[] PetSkill;//宠物当前学习的技能 public int petExp; //宠物当前经验 } public enum PetEnum { PetDan = 0,//灵宠丹 PetDebris = 1,//灵宠碎片 PetStone = 2,//灵宠魂石 } public class PlayerPetDatas : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary<int, int> _TagPetItem = new Dictionary<int, int>();//关于灵兽魂石 public Dictionary<int, PetBackpack> _DicPetBack = new Dictionary<int, PetBackpack>();//宠物背包列表 public Dictionary<int, int> _PetSkillAcquire = new Dictionary<int, int>();//灵宠已获得的技能(同类技能只存最高等级)1.技能TypeID,2.技能ID public delegate void Delegate_HB701(HB701_tagMCPetLV info); public delegate void Delegate_Ha339(HA339_tagMCAttrFruitEatCntList info); public static event Delegate_Ha339 Event_Ha339;//灵兽魂石 public delegate void Delegate_H0704(); public static event Delegate_H0704 Event_H0704Add;//灵宠添加(进阶) public static Action<int> Event_H0704Update;//灵宠刷新 public delegate void SpiritPetPlay(int _toPlay = 0);//宠物是否出战 public static event SpiritPetPlay Event_SpiritPetPlay; public int PetNow = 0;//用来保存出战的灵宠 public bool Wait = true;//(使用灵宠丹)等待回包 public Dictionary<int, Redpoint> DeblockingRedPoint = new Dictionary<int, Redpoint>();//解锁按钮红点(灵宠红点子级) public Dictionary<int, Redpoint> PetRedpoint = new Dictionary<int, Redpoint>();//灵宠列表 public Dictionary<int, Redpoint> CultivateRedPoint = new Dictionary<int, Redpoint>();//灵宠培养按钮红点 private List<PetInfoConfig> Sortpet = new List<PetInfoConfig>();//用于红点排序 public int MinAtkNunber = 0;//灵宠最小攻击力 public int MaxAtkNunber = 0;//灵宠最大攻击力 public int PetStoneItemId = 0;//用来记录坐骑魂石的ID public bool IsOk = false; private int PetDanExp = 0;//灵宠丹经验 public List<int> ListEffectSkill = new List<int>(); PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } public Dictionary<int, string> petLvNameDict { get; private set; } public int curPetId { get; set; } public int petUpgradeToolId { get; set; } public event Action PlayerLoginOkData; private Dictionary<int, int> DicDefaultPet = new Dictionary<int, int>(); List<PetInfoConfig> allPetConfigs = new List<PetInfoConfig>(); public override void Init() { ToAddSorting(); playerPack.refreshItemCountEvent += OnItemRefreshEvent; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange; PetAttributeWin.IsRedPointCultivate += IsRedPointCultivate; PetNumberPreservation(); petLvNameDict = new Dictionary<int, string>(); FuncConfigConfig petLvName = FuncConfigConfig.Get("PetQuality"); int[] petLvArray = ConfigParse.GetMultipleStr<int>(petLvName.Numerical1); string[] petLvNameArray = ConfigParse.GetMultipleStr(petLvName.Numerical2); for (int i = 0; i < petLvArray.Length; i++) { if (!petLvNameDict.ContainsKey(petLvArray[i])) { petLvNameDict.Add(petLvArray[i], petLvNameArray[i]); } } petUpgradeToolId = int.Parse(FuncConfigConfig.Get("PetUpItem").Numerical1); string str = FuncConfigConfig.Get("PetSkillEffect").Numerical1; int[] listeffect = ConfigParse.GetMultipleStr<int>(str); ListEffectSkill.Clear(); for (int i = 0; i < listeffect.Length; i++) { ListEffectSkill.Add(listeffect[i]); } string PetRedDotstr = FuncConfigConfig.Get("MountPetRedDot").Numerical2; DicDefaultPet = ConfigParse.GetDic<int, int>(PetRedDotstr); PetDanExp = int.Parse(FuncConfigConfig.Get("PetUpItem").Numerical2); } public override void UnInit() { playerPack.refreshItemCountEvent -= OnItemRefreshEvent; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange; PetAttributeWin.IsRedPointCultivate -= IsRedPointCultivate; } public void OnBeforePlayerDataInitialize() { Wait = true; IsOk = false; _TagPetItem.Clear(); _DicPetBack.Clear(); PetNow = 0; MinAtkNunber = 0; MaxAtkNunber = 0; curPetId = 0; } public void OnPlayerLoginOk() { GlobalTimeEvent.Instance.secondEvent -= secondEvent; GlobalTimeEvent.Instance.secondEvent += secondEvent; SinglePack singPack = playerPack.GetSinglePack(PackType.PetPack); if (singPack == null) return; foreach (var index in singPack.GetAllItems().Keys) { OnItemRefreshEvent(singPack.type, index, singPack.GetAllItems()[index].itemId); } IsOk = true; if (PlayerLoginOkData != null) { PlayerLoginOkData(); } } private DateTime dateTimeA; private void secondEvent() { if (!Wait) { TimeSpan timeS = DateTime.Now - dateTimeA; if (timeS.Seconds >= 2f) { Wait = true; } } else { dateTimeA = DateTime.Now; } } #region 发送服务端请求 public void SendPetSwitchQuest(int petIndex) { C1603_tagCPetStateChange tag_Cpet = new C1603_tagCPetStateChange(); tag_Cpet.PetID = (uint)petIndex; tag_Cpet.State = 1; GameNetSystem.Instance.SendInfo(tag_Cpet); } public void SendBreakPetLockQuest(int petId) { CA702_tagCMActivatePet CMPet = new CA702_tagCMActivatePet(); CMPet.PetNPCID = (uint)petId; GameNetSystem.Instance.SendInfo(CMPet); if (ItemOperateUtility.Instance.useItemModel != null) { ItemOperateUtility.Instance.useItemModel = null; } } public void SendPetTrainQuest(int petIndex, int number) { CA704_tagCMPetClassUP _tagCA704 = new CA704_tagCMPetClassUP(); _tagCA704.PetItemIndex = (byte)petIndex; _tagCA704.UseItemCnt = (ushort)number; GameNetSystem.Instance.SendInfo(_tagCA704); } #endregion private void OnItemRefreshEvent(PackType type, int index, int id) { PetH0704(playerPack.GetItemByIndex(type, index)); if (type == PackType.Item) { if (_TagPetItem.ContainsKey(id)) { PetStoneRed(); } PetActivateRedPoint(); GetCultivateRedPoint(); } } private void OnFuncStateChange(int obj) { if (obj == 6) { PetStoneRed(); PetActivateRedPoint(); GetCultivateRedPoint(); } } private const int Redpoint_key1 = 1050201; private Redpoint redPointStre1 = new Redpoint(MainRedDot.RedPoint_PetKey2, Redpoint_key1); private void PetStoneRed()//灵宠魂石红点 { redPointStre1.state = RedPointState.None; if (!FuncOpen.Instance.IsFuncOpen(6)) { return; } int type = 0; foreach (var key in _TagPetItem.Keys) { if (_TagPetItem[key] >= AttrFruitConfig.Get(key).MaxUseCnt) { continue; } type += playerPack.GetItemCountByID(PackType.Item, key); } if (type > 0) { redPointStre1.state = RedPointState.Simple; return; } } private void PetNumberPreservation()//用来对灵宠个数进行保存 { if (PetRedpoint.Count != 0) { return; } int type = 0; if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } // var allPetConfigs = PetInfoConfig.GetValues(); foreach (var config in allPetConfigs) { if (!DeblockingRedPoint.ContainsKey(config.ID)) { type += 1; int petID = config.ID; int RedPoint_Mountkey = MainRedDot.RedPoint_PetKey2 * 10 + type; Redpoint redPointMountStare = new Redpoint(MainRedDot.RedPoint_PetKey2, RedPoint_Mountkey); PetRedpoint.Add(petID, redPointMountStare);//列表 int RedPoint_Mountkey1 = RedPoint_Mountkey * 10 + type; Redpoint redPointMountStare1 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey1); DeblockingRedPoint.Add(petID, redPointMountStare1);//解锁按钮 int RedPoint_Mountkey2 = RedPoint_Mountkey1 * 10 + type; Redpoint redPointMountStare2 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey2); CultivateRedPoint.Add(petID, redPointMountStare2); } } } private void PetActivateRedPoint()//灵宠激活红点 { foreach (var key in PetRedpoint.Keys) { DeblockingRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(6)) { return; } // var configs = PetInfoConfig.GetValues(); if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } foreach (var config in allPetConfigs) { int unlockItemID = config.UnLockNeedItemID; int itemCount = playerPack.GetItemCountByID(PackType.Item, unlockItemID); int unlockItemCnt = config.UnLockNeedItemCnt; if (itemCount >= unlockItemCnt && !_DicPetBack.ContainsKey(config.ID) && FuncOpen.Instance.IsFuncOpen(6)) { DeblockingRedPoint[config.ID].state = RedPointState.Simple; } } } private void IsRedPointCultivate() { GetCultivateRedPoint(); } private void ToAddSorting() { Sortpet.Clear(); if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } Sortpet = allPetConfigs; Sortpet.Sort(Compare); } int Compare(PetInfoConfig x, PetInfoConfig y)//数组排列 { if (x.Sort.CompareTo(y.Sort) != 0) { return x.Sort.CompareTo(y.Sort); } return 1; } public void GetCultivateRedPoint()//灵宠培养红点 { foreach (var key in CultivateRedPoint.Keys) { CultivateRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(6)) { return; } if (_DicPetBack.Count <= 0) { return; } int GetPetId = 0; int petLv = 100; int itemCount = playerPack.GetItemCountByID(PackType.Item, 4151); List<int> ListInt = new List<int>(); for (int i = 0; i < Sortpet.Count; i++) { int petID = Sortpet[i].ID; int MaxLv = PetInfoConfig.Get(petID).MaxRank; if (_DicPetBack.ContainsKey(petID) && _DicPetBack[petID].PetClass < MaxLv) { int _NeedExp = PetClassCostConfig.GetPetIdAndRank(petID, _DicPetBack[petID].PetClass).UpNeedExp; int NeedExp = _NeedExp - _DicPetBack[petID].petExp; int NeedNumber = Mathf.CeilToInt((float)NeedExp / PetDanExp); if (itemCount >= NeedNumber) { ListInt.Add(petID); } } } foreach (var key in _DicPetBack.Keys)//因为有成就任务限制所有 第一只坐骑红点逻辑特殊写 { if (DicDefaultPet.ContainsKey(key) && DicDefaultPet[key] > _DicPetBack[key].PetClass && itemCount > 0 && CultivateRedPoint.ContainsKey(key)) { CultivateRedPoint[key].state = RedPointState.Simple; return; } } List<int> IntListSkill = new List<int>(); for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的且经验最接近 { if (_DicPetBack.ContainsKey(ListInt[i])) { var PetConfig = PetInfoConfig.Get(ListInt[i]); if (PetConfig == null) { return; } int[] SkillUnLockInt = PetConfig.SkillUnLock; int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length - 1)]; if (_DicPetBack[(ListInt[i])].PetClass < SkillLvMax) { IntListSkill.Add((ListInt[i])); } } } int SkillPetId = GetRedPointPetID(IntListSkill); if (SkillPetId != 0 && CultivateRedPoint.ContainsKey(SkillPetId)) { CultivateRedPoint[SkillPetId].state = RedPointState.Simple; return; } for (int i = 0; i < ListInt.Count; i++)//选择出等级最低的灵宠 { if (_DicPetBack.ContainsKey(ListInt[i])) { if (_DicPetBack[(ListInt[i])].PetClass < petLv) { petLv = _DicPetBack[(ListInt[i])].PetClass; GetPetId = (ListInt[i]); } } } if (GetPetId != 0 && CultivateRedPoint.ContainsKey(GetPetId)) { CultivateRedPoint[GetPetId].state = RedPointState.Simple; return; } } private int GetRedPointPetID(List<int> PetList) { int GetSkillMinLv = 999; for (int i = 0; i < PetList.Count; i++) { int SkillminLv = GetSkillLvDis(PetList[i]); if (SkillminLv < GetSkillMinLv && SkillminLv!=0) { GetSkillMinLv = SkillminLv; } } int petId = 0; int ExpNumber = 999999999; for (int i = 0; i < PetList.Count; i++) { int SkillLv = GetSkillLvDis(PetList[i]); if (SkillLv > GetSkillMinLv || SkillLv==0) { continue; } var Pet1 = PetClassCostConfig.GetPetIdAndRank(PetList[i], SkillLv); var Pet2 = PetClassCostConfig.GetPetIdAndRank(PetList[i], _DicPetBack[(PetList[i])].PetClass); int Exp = Pet1.NeedExpTotal - Pet2.NeedExpTotal - _DicPetBack[(PetList[i])].petExp; if (Exp < ExpNumber) { ExpNumber = Exp; petId = PetList[i]; } } return petId; } private int GetSkillLvDis(int PetId)//获取离升级最近的技能等级 { int SkillLv = 0; var petInfo = PetInfoConfig.Get(PetId); if (petInfo == null) { return 0; } int[] ListPetSkillUnLock = petInfo.SkillUnLock; for (int i = 0; i < ListPetSkillUnLock.Length; i++) { if (_DicPetBack.ContainsKey(PetId) && ListPetSkillUnLock[i] > _DicPetBack[PetId].PetClass) { SkillLv = ListPetSkillUnLock[i]; return SkillLv; } } return SkillLv; } public int GetMinPetExp() { foreach (var key in CultivateRedPoint.Keys)//当存在培养红点时,选中当有红点的那只 { if (CultivateRedPoint[key].state == RedPointState.Simple) { return key; } } List<int> IntListSkill = new List<int>(); foreach (var key in _DicPetBack.Keys) { var petConfig = PetInfoConfig.Get(key); if (_DicPetBack[key].PetClass < petConfig.MaxRank) { IntListSkill.Add(key); } } int SkillPetId = GetRedPointPetID(IntListSkill); if (SkillPetId != 0) { return SkillPetId; } int GetPetId = 0; int GetPetLv = 999; foreach (var key in _DicPetBack.Keys)//无红点时跳转选中等级最低的 { var config = PetInfoConfig.Get(key); if (_DicPetBack[key].PetClass < GetPetLv && _DicPetBack[key].PetClass < config.MaxRank) { GetPetId = key; GetPetLv = _DicPetBack[key].PetClass; } } return GetPetId; } private int GetPetSkillMaxLv(int PetID) { int maxskillLV = 0; int[] curPetUnlocks; PetInfoConfig petInfo = PetInfoConfig.Get(PetID); if (petInfo != null) { curPetUnlocks = petInfo.SkillUnLock; maxskillLV = curPetUnlocks[(curPetUnlocks.Length) - 1]; } return maxskillLV; } public void PetA339(HA339_tagMCAttrFruitEatCntList info) { for (int i = 0; i < info.count; i++) { var configItem = ItemConfig.Get((int)info.EatCntList[i].ItemID); if (configItem == null) { continue; } if (_TagPetItem.ContainsKey((int)info.EatCntList[i].ItemID)) { _TagPetItem[(int)info.EatCntList[i].ItemID] = (int)info.EatCntList[i].EatCnt; if (Event_Ha339 != null) Event_Ha339(info); } else { if (configItem.Type == 28) { _TagPetItem.Add((int)info.EatCntList[i].ItemID, (int)info.EatCntList[i].EatCnt); } } } PetStoneRed(); } private void AddPetSkill(int[] intlist) { for (int i = 0; i < intlist.Length; i++) { var skillPet = SkillConfig.Get(intlist[i]); if (_PetSkillAcquire.ContainsKey(skillPet.SkillTypeID)) { int skilllv = SkillConfig.Get(_PetSkillAcquire[skillPet.SkillTypeID]).SkillLV; if (skillPet.SkillLV > skilllv) { _PetSkillAcquire[skillPet.SkillTypeID] = skillPet.SkillID; } } else { _PetSkillAcquire.Add(skillPet.SkillTypeID, skillPet.SkillID); } } } public void PetH0704(ItemModel info)//宠物背包列表 { if (info == null) return; if (info.packType == PackType.PetPack) { Dictionary<int, int[]> _dic = Analysis(info.itemInfo.userData); if (GetUseDataModel(200, _dic) != null) { int petId = _dic[200][0]; int petLv = 0; int petState = 0; int[] petSkill = null; int petIndex = info.itemPlace; int petExp = 0; if (GetUseDataModel(201, _dic) != null) { petSkill = _dic[201];//宠物当前学习的技能 } if (GetUseDataModel(202, _dic) != null) { petLv = _dic[202][0] + 1;//宠物阶级 } if (GetUseDataModel(204, _dic) != null) { petState = _dic[204][0];//宠物当前状态; } if (GetUseDataModel(208, _dic) != null) { petExp = _dic[208][0]; //宠物经验 } if (!_DicPetBack.ContainsKey(petId)) { PetBackpack _petBack = new PetBackpack(); _petBack.PetClass = petLv; _petBack.petExp = petExp; //宠物经验 _petBack.PetStatus = petState;//宠物当前状态 if (_petBack.PetStatus == 1) { PetNow = petId; } if (petSkill != null) { _petBack.PetSkill = petSkill;//宠物当前学习的技能 AddPetSkill(_petBack.PetSkill); } else { _petBack.PetSkill = null; } _petBack.ItemPlace = petIndex;//宠物位置索引 _DicPetBack.Add(petId, _petBack); if (Event_H0704Add != null && IsOk) { Event_H0704Add(); } } else { _DicPetBack[petId].PetClass = petLv; _DicPetBack[petId].PetStatus = petState; _DicPetBack[petId].petExp = petExp; //宠物经验 if (petSkill != null) { _DicPetBack[petId].PetSkill = petSkill;//宠物当前学习的技能 AddPetSkill(_DicPetBack[petId].PetSkill); } else { _DicPetBack[petId].PetSkill = null; } _DicPetBack[petId].ItemPlace = petIndex; if (Event_H0704Update != null && IsOk) { Event_H0704Update(petId); } if (_DicPetBack[petId].PetStatus == 1) { PetNow = petId; if (Event_SpiritPetPlay != null && IsOk) { Event_SpiritPetPlay(petState); } } } } } PetStoneRed(); PetActivateRedPoint(); GetCultivateRedPoint(); GetPetMinAndMaxAttack(); } public int[] GetUseDataModel(int key, Dictionary<int, int[]> useDataDict) { int[] list = null; if (useDataDict != null) { useDataDict.TryGetValue(key, out list); } return list; } private void GetPetMinAndMaxAttack() { if (_DicPetBack.Count <= 0) { return; } MinAtkNunber = 0; MaxAtkNunber = 0; foreach (var key in _DicPetBack.Keys) { PetClassCostConfig _tagPetClass = PetClassCostConfig.GetPetIdAndRank(key, _DicPetBack[key].PetClass); MinAtkNunber += _tagPetClass.AtkAdd; MaxAtkNunber += _tagPetClass.AtkAdd; } } public static Regex userData = new Regex(@"'([0-9]+)':\[(.*?)\]", RegexOptions.Singleline); public Dictionary<int, int[]> Analysis(string val)//正则表达式的字符串分割 { if (!userData.IsMatch(val)) { return null; } else { Dictionary<int, int[]> dics = new Dictionary<int, int[]>(); foreach (Match match in userData.Matches(val)) { int id = int.Parse(match.Groups[1].Value); string str = match.Groups[2].Value; string[] vals = str.Split(','); int[] intarray = new int[vals.Length]; for (int i = 0; i < vals.Length; i++) { int intval = int.Parse(vals[i].Replace('\'', ' ')); intarray[i] = intval; } if (!dics.ContainsKey(id)) { dics.Add(id, intarray); } } return dics; } } public bool IsHint(PetEnum petEnum, int id = 0)//True提示,False不提示 { bool iSHint = false; switch (petEnum) { case PetEnum.PetDan: foreach (var key in _DicPetBack.Keys) { PetInfoConfig petConfig = PetInfoConfig.Get(key); if (petConfig.MaxRank > _DicPetBack[key].PetClass) { iSHint = true; } } return iSHint; case PetEnum.PetDebris: if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } foreach (var value in allPetConfigs) { if (value.UnLockNeedItemID == id) { if (!_DicPetBack.ContainsKey(value.ID)) { iSHint = true; } } } return iSHint; case PetEnum.PetStone: int _maxuse = AttrFruitConfig.Get(id).MaxUseCnt; if (_TagPetItem.ContainsKey(id)) { if (_maxuse > _TagPetItem[id]) { iSHint = true; } } return iSHint; default: return true; } } public int IsPetPanelRedPointState()//用于判断当前灵宠页签是否有红点亮起 { int Type = 0; foreach (var value in DeblockingRedPoint.Values) { if (value.state == RedPointState.Simple) { Type = 2; return Type; } } if (MainRedDot.Instance.redPonintPetFunc2.state == RedPointState.Simple) { Type = 1; return Type; } return Type; } #region 预览宠物碎片属性 Dictionary<int, int> petAttrDict = new Dictionary<int, int>(); public Dictionary<int, int> GetPetAttrAddDict(int petCode) { PetInfoConfig infoConfig = PetInfoConfig.Get(petCode); petAttrDict.Clear(); if (infoConfig == null) return petAttrDict; int maxRank = infoConfig.MaxRank; PetClassCostConfig cost = PetClassCostConfig.GetPetIdAndRank(petCode, maxRank); int allAtkAdd = 0; if (cost != null) { allAtkAdd = cost.AtkAdd; } petAttrDict.Add(7, allAtkAdd); return petAttrDict; } #endregion } using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; [XLua.LuaCallCSharp] public class PetBackpack//宠物背包 { public int PetClass;//宠物阶级 public int PetStatus;//宠物当前状态 1为出战 0未出战 public int ItemPlace;//宠物位置索引 public int[] PetSkill;//宠物当前学习的技能 public int petExp; //宠物当前经验 } public enum PetEnum { PetDan = 0,//灵宠丹 PetDebris = 1,//灵宠碎片 PetStone = 2,//灵宠魂石 } public class PetModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary<int, int> _TagPetItem = new Dictionary<int, int>();//关于灵兽魂石 public Dictionary<int, PetBackpack> _DicPetBack = new Dictionary<int, PetBackpack>();//宠物背包列表 public Dictionary<int, int> _PetSkillAcquire = new Dictionary<int, int>();//灵宠已获得的技能(同类技能只存最高等级)1.技能TypeID,2.技能ID public delegate void Delegate_HB701(HB701_tagMCPetLV info); public delegate void Delegate_Ha339(HA339_tagMCAttrFruitEatCntList info); public static event Delegate_Ha339 Event_Ha339;//灵兽魂石 public delegate void Delegate_H0704(); public static event Delegate_H0704 Event_H0704Add;//灵宠添加(进阶) public static Action<int> Event_H0704Update;//灵宠刷新 public delegate void SpiritPetPlay(int _toPlay = 0);//宠物是否出战 public static event SpiritPetPlay Event_SpiritPetPlay; public int PetNow = 0;//用来保存出战的灵宠 public bool Wait = true;//(使用灵宠丹)等待回包 public Dictionary<int, Redpoint> DeblockingRedPoint = new Dictionary<int, Redpoint>();//解锁按钮红点(灵宠红点子级) public Dictionary<int, Redpoint> PetRedpoint = new Dictionary<int, Redpoint>();//灵宠列表 public Dictionary<int, Redpoint> CultivateRedPoint = new Dictionary<int, Redpoint>();//灵宠培养按钮红点 private List<PetInfoConfig> Sortpet = new List<PetInfoConfig>();//用于红点排序 public int MinAtkNunber = 0;//灵宠最小攻击力 public int MaxAtkNunber = 0;//灵宠最大攻击力 public int PetStoneItemId = 0;//用来记录坐骑魂石的ID public bool IsOk = false; private int PetDanExp = 0;//灵宠丹经验 public List<int> ListEffectSkill = new List<int>(); PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } public Dictionary<int, string> petLvNameDict { get; private set; } public int curPetId { get; set; } public int petUpgradeToolId { get; set; } public event Action PlayerLoginOkData; private Dictionary<int, int> DicDefaultPet = new Dictionary<int, int>(); List<PetInfoConfig> allPetConfigs = new List<PetInfoConfig>(); public override void Init() { ToAddSorting(); playerPack.refreshItemCountEvent += OnItemRefreshEvent; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange; PetAttributeWin.IsRedPointCultivate += IsRedPointCultivate; PetNumberPreservation(); petLvNameDict = new Dictionary<int, string>(); FuncConfigConfig petLvName = FuncConfigConfig.Get("PetQuality"); int[] petLvArray = ConfigParse.GetMultipleStr<int>(petLvName.Numerical1); string[] petLvNameArray = ConfigParse.GetMultipleStr(petLvName.Numerical2); for (int i = 0; i < petLvArray.Length; i++) { if (!petLvNameDict.ContainsKey(petLvArray[i])) { petLvNameDict.Add(petLvArray[i], petLvNameArray[i]); } } petUpgradeToolId = int.Parse(FuncConfigConfig.Get("PetUpItem").Numerical1); string str = FuncConfigConfig.Get("PetSkillEffect").Numerical1; int[] listeffect = ConfigParse.GetMultipleStr<int>(str); ListEffectSkill.Clear(); for (int i = 0; i < listeffect.Length; i++) { ListEffectSkill.Add(listeffect[i]); } string PetRedDotstr = FuncConfigConfig.Get("MountPetRedDot").Numerical2; DicDefaultPet = ConfigParse.GetDic<int, int>(PetRedDotstr); PetDanExp = int.Parse(FuncConfigConfig.Get("PetUpItem").Numerical2); } public override void UnInit() { playerPack.refreshItemCountEvent -= OnItemRefreshEvent; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange; PetAttributeWin.IsRedPointCultivate -= IsRedPointCultivate; } public void OnBeforePlayerDataInitialize() { Wait = true; IsOk = false; _TagPetItem.Clear(); _DicPetBack.Clear(); PetNow = 0; MinAtkNunber = 0; MaxAtkNunber = 0; curPetId = 0; } public void OnPlayerLoginOk() { GlobalTimeEvent.Instance.secondEvent -= secondEvent; GlobalTimeEvent.Instance.secondEvent += secondEvent; SinglePack singPack = playerPack.GetSinglePack(PackType.PetPack); if (singPack == null) return; foreach (var index in singPack.GetAllItems().Keys) { OnItemRefreshEvent(singPack.type, index, singPack.GetAllItems()[index].itemId); } IsOk = true; if (PlayerLoginOkData != null) { PlayerLoginOkData(); } } private DateTime dateTimeA; private void secondEvent() { if (!Wait) { TimeSpan timeS = DateTime.Now - dateTimeA; if (timeS.Seconds >= 2f) { Wait = true; } } else { dateTimeA = DateTime.Now; } } #region 发送服务端请求 public void SendPetSwitchQuest(int petIndex) { C1603_tagCPetStateChange tag_Cpet = new C1603_tagCPetStateChange(); tag_Cpet.PetID = (uint)petIndex; tag_Cpet.State = 1; GameNetSystem.Instance.SendInfo(tag_Cpet); } public void SendBreakPetLockQuest(int petId) { CA702_tagCMActivatePet CMPet = new CA702_tagCMActivatePet(); CMPet.PetNPCID = (uint)petId; GameNetSystem.Instance.SendInfo(CMPet); if (ItemOperateUtility.Instance.useItemModel != null) { ItemOperateUtility.Instance.useItemModel = null; } } public void SendPetTrainQuest(int petIndex, int number) { CA704_tagCMPetClassUP _tagCA704 = new CA704_tagCMPetClassUP(); _tagCA704.PetItemIndex = (byte)petIndex; _tagCA704.UseItemCnt = (ushort)number; GameNetSystem.Instance.SendInfo(_tagCA704); } #endregion private void OnItemRefreshEvent(PackType type, int index, int id) { PetH0704(playerPack.GetItemByIndex(type, index)); if (type == PackType.Item) { if (_TagPetItem.ContainsKey(id)) { PetStoneRed(); } PetActivateRedPoint(); GetCultivateRedPoint(); } } private void OnFuncStateChange(int obj) { if (obj == 6) { PetStoneRed(); PetActivateRedPoint(); GetCultivateRedPoint(); } } private const int Redpoint_key1 = 1050201; private Redpoint redPointStre1 = new Redpoint(MainRedDot.RedPoint_PetKey2, Redpoint_key1); private void PetStoneRed()//灵宠魂石红点 { redPointStre1.state = RedPointState.None; if (!FuncOpen.Instance.IsFuncOpen(6)) { return; } int type = 0; foreach (var key in _TagPetItem.Keys) { if (_TagPetItem[key] >= AttrFruitConfig.Get(key).MaxUseCnt) { continue; } type += playerPack.GetItemCountByID(PackType.Item, key); } if (type > 0) { redPointStre1.state = RedPointState.Simple; return; } } private void PetNumberPreservation()//用来对灵宠个数进行保存 { if (PetRedpoint.Count != 0) { return; } int type = 0; if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } // var allPetConfigs = PetInfoConfig.GetValues(); foreach (var config in allPetConfigs) { if (!DeblockingRedPoint.ContainsKey(config.ID)) { type += 1; int petID = config.ID; int RedPoint_Mountkey = MainRedDot.RedPoint_PetKey2 * 10 + type; Redpoint redPointMountStare = new Redpoint(MainRedDot.RedPoint_PetKey2, RedPoint_Mountkey); PetRedpoint.Add(petID, redPointMountStare);//列表 int RedPoint_Mountkey1 = RedPoint_Mountkey * 10 + type; Redpoint redPointMountStare1 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey1); DeblockingRedPoint.Add(petID, redPointMountStare1);//解锁按钮 int RedPoint_Mountkey2 = RedPoint_Mountkey1 * 10 + type; Redpoint redPointMountStare2 = new Redpoint(RedPoint_Mountkey, RedPoint_Mountkey2); CultivateRedPoint.Add(petID, redPointMountStare2); } } } private void PetActivateRedPoint()//灵宠激活红点 { foreach (var key in PetRedpoint.Keys) { DeblockingRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(6)) { return; } // var configs = PetInfoConfig.GetValues(); if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } foreach (var config in allPetConfigs) { int unlockItemID = config.UnLockNeedItemID; int itemCount = playerPack.GetItemCountByID(PackType.Item, unlockItemID); int unlockItemCnt = config.UnLockNeedItemCnt; if (itemCount >= unlockItemCnt && !_DicPetBack.ContainsKey(config.ID) && FuncOpen.Instance.IsFuncOpen(6)) { DeblockingRedPoint[config.ID].state = RedPointState.Simple; } } } private void IsRedPointCultivate() { GetCultivateRedPoint(); } private void ToAddSorting() { Sortpet.Clear(); if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } Sortpet = allPetConfigs; Sortpet.Sort(Compare); } int Compare(PetInfoConfig x, PetInfoConfig y)//数组排列 { if (x.Sort.CompareTo(y.Sort) != 0) { return x.Sort.CompareTo(y.Sort); } return 1; } public void GetCultivateRedPoint()//灵宠培养红点 { foreach (var key in CultivateRedPoint.Keys) { CultivateRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(6)) { return; } if (_DicPetBack.Count <= 0) { return; } int GetPetId = 0; int petLv = 100; int itemCount = playerPack.GetItemCountByID(PackType.Item, 4151); List<int> ListInt = new List<int>(); for (int i = 0; i < Sortpet.Count; i++) { int petID = Sortpet[i].ID; int MaxLv = PetInfoConfig.Get(petID).MaxRank; if (_DicPetBack.ContainsKey(petID) && _DicPetBack[petID].PetClass < MaxLv) { int _NeedExp = PetClassCostConfig.GetPetIdAndRank(petID, _DicPetBack[petID].PetClass).UpNeedExp; int NeedExp = _NeedExp - _DicPetBack[petID].petExp; int NeedNumber = Mathf.CeilToInt((float)NeedExp / PetDanExp); if (itemCount >= NeedNumber) { ListInt.Add(petID); } } } foreach (var key in _DicPetBack.Keys)//因为有成就任务限制所有 第一只坐骑红点逻辑特殊写 { if (DicDefaultPet.ContainsKey(key) && DicDefaultPet[key] > _DicPetBack[key].PetClass && itemCount > 0 && CultivateRedPoint.ContainsKey(key)) { CultivateRedPoint[key].state = RedPointState.Simple; return; } } List<int> IntListSkill = new List<int>(); for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的且经验最接近 { if (_DicPetBack.ContainsKey(ListInt[i])) { var PetConfig = PetInfoConfig.Get(ListInt[i]); if (PetConfig == null) { return; } int[] SkillUnLockInt = PetConfig.SkillUnLock; int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length - 1)]; if (_DicPetBack[(ListInt[i])].PetClass < SkillLvMax) { IntListSkill.Add((ListInt[i])); } } } int SkillPetId = GetRedPointPetID(IntListSkill); if (SkillPetId != 0 && CultivateRedPoint.ContainsKey(SkillPetId)) { CultivateRedPoint[SkillPetId].state = RedPointState.Simple; return; } for (int i = 0; i < ListInt.Count; i++)//选择出等级最低的灵宠 { if (_DicPetBack.ContainsKey(ListInt[i])) { if (_DicPetBack[(ListInt[i])].PetClass < petLv) { petLv = _DicPetBack[(ListInt[i])].PetClass; GetPetId = (ListInt[i]); } } } if (GetPetId != 0 && CultivateRedPoint.ContainsKey(GetPetId)) { CultivateRedPoint[GetPetId].state = RedPointState.Simple; return; } } private int GetRedPointPetID(List<int> PetList) { int GetSkillMinLv = 999; for (int i = 0; i < PetList.Count; i++) { int SkillminLv = GetSkillLvDis(PetList[i]); if (SkillminLv < GetSkillMinLv && SkillminLv!=0) { GetSkillMinLv = SkillminLv; } } int petId = 0; int ExpNumber = 999999999; for (int i = 0; i < PetList.Count; i++) { int SkillLv = GetSkillLvDis(PetList[i]); if (SkillLv > GetSkillMinLv || SkillLv==0) { continue; } var Pet1 = PetClassCostConfig.GetPetIdAndRank(PetList[i], SkillLv); var Pet2 = PetClassCostConfig.GetPetIdAndRank(PetList[i], _DicPetBack[(PetList[i])].PetClass); int Exp = Pet1.NeedExpTotal - Pet2.NeedExpTotal - _DicPetBack[(PetList[i])].petExp; if (Exp < ExpNumber) { ExpNumber = Exp; petId = PetList[i]; } } return petId; } private int GetSkillLvDis(int PetId)//获取离升级最近的技能等级 { int SkillLv = 0; var petInfo = PetInfoConfig.Get(PetId); if (petInfo == null) { return 0; } int[] ListPetSkillUnLock = petInfo.SkillUnLock; for (int i = 0; i < ListPetSkillUnLock.Length; i++) { if (_DicPetBack.ContainsKey(PetId) && ListPetSkillUnLock[i] > _DicPetBack[PetId].PetClass) { SkillLv = ListPetSkillUnLock[i]; return SkillLv; } } return SkillLv; } public int GetMinPetExp() { foreach (var key in CultivateRedPoint.Keys)//当存在培养红点时,选中当有红点的那只 { if (CultivateRedPoint[key].state == RedPointState.Simple) { return key; } } List<int> IntListSkill = new List<int>(); foreach (var key in _DicPetBack.Keys) { var petConfig = PetInfoConfig.Get(key); if (_DicPetBack[key].PetClass < petConfig.MaxRank) { IntListSkill.Add(key); } } int SkillPetId = GetRedPointPetID(IntListSkill); if (SkillPetId != 0) { return SkillPetId; } int GetPetId = 0; int GetPetLv = 999; foreach (var key in _DicPetBack.Keys)//无红点时跳转选中等级最低的 { var config = PetInfoConfig.Get(key); if (_DicPetBack[key].PetClass < GetPetLv && _DicPetBack[key].PetClass < config.MaxRank) { GetPetId = key; GetPetLv = _DicPetBack[key].PetClass; } } return GetPetId; } private int GetPetSkillMaxLv(int PetID) { int maxskillLV = 0; int[] curPetUnlocks; PetInfoConfig petInfo = PetInfoConfig.Get(PetID); if (petInfo != null) { curPetUnlocks = petInfo.SkillUnLock; maxskillLV = curPetUnlocks[(curPetUnlocks.Length) - 1]; } return maxskillLV; } public void PetA339(HA339_tagMCAttrFruitEatCntList info) { for (int i = 0; i < info.count; i++) { var configItem = ItemConfig.Get((int)info.EatCntList[i].ItemID); if (configItem == null) { continue; } if (_TagPetItem.ContainsKey((int)info.EatCntList[i].ItemID)) { _TagPetItem[(int)info.EatCntList[i].ItemID] = (int)info.EatCntList[i].EatCnt; if (Event_Ha339 != null) Event_Ha339(info); } else { if (configItem.Type == 28) { _TagPetItem.Add((int)info.EatCntList[i].ItemID, (int)info.EatCntList[i].EatCnt); } } } PetStoneRed(); } private void AddPetSkill(int[] intlist) { for (int i = 0; i < intlist.Length; i++) { var skillPet = SkillConfig.Get(intlist[i]); if (_PetSkillAcquire.ContainsKey(skillPet.SkillTypeID)) { int skilllv = SkillConfig.Get(_PetSkillAcquire[skillPet.SkillTypeID]).SkillLV; if (skillPet.SkillLV > skilllv) { _PetSkillAcquire[skillPet.SkillTypeID] = skillPet.SkillID; } } else { _PetSkillAcquire.Add(skillPet.SkillTypeID, skillPet.SkillID); } } } public void PetH0704(ItemModel info)//宠物背包列表 { if (info == null) return; if (info.packType == PackType.PetPack) { Dictionary<int, int[]> _dic = Analysis(info.itemInfo.userData); if (GetUseDataModel(200, _dic) != null) { int petId = _dic[200][0]; int petLv = 0; int petState = 0; int[] petSkill = null; int petIndex = info.itemPlace; int petExp = 0; if (GetUseDataModel(201, _dic) != null) { petSkill = _dic[201];//宠物当前学习的技能 } if (GetUseDataModel(202, _dic) != null) { petLv = _dic[202][0] + 1;//宠物阶级 } if (GetUseDataModel(204, _dic) != null) { petState = _dic[204][0];//宠物当前状态; } if (GetUseDataModel(208, _dic) != null) { petExp = _dic[208][0]; //宠物经验 } if (!_DicPetBack.ContainsKey(petId)) { PetBackpack _petBack = new PetBackpack(); _petBack.PetClass = petLv; _petBack.petExp = petExp; //宠物经验 _petBack.PetStatus = petState;//宠物当前状态 if (_petBack.PetStatus == 1) { PetNow = petId; } if (petSkill != null) { _petBack.PetSkill = petSkill;//宠物当前学习的技能 AddPetSkill(_petBack.PetSkill); } else { _petBack.PetSkill = null; } _petBack.ItemPlace = petIndex;//宠物位置索引 _DicPetBack.Add(petId, _petBack); if (Event_H0704Add != null && IsOk) { Event_H0704Add(); } } else { _DicPetBack[petId].PetClass = petLv; _DicPetBack[petId].PetStatus = petState; _DicPetBack[petId].petExp = petExp; //宠物经验 if (petSkill != null) { _DicPetBack[petId].PetSkill = petSkill;//宠物当前学习的技能 AddPetSkill(_DicPetBack[petId].PetSkill); } else { _DicPetBack[petId].PetSkill = null; } _DicPetBack[petId].ItemPlace = petIndex; if (Event_H0704Update != null && IsOk) { Event_H0704Update(petId); } if (_DicPetBack[petId].PetStatus == 1) { PetNow = petId; if (Event_SpiritPetPlay != null && IsOk) { Event_SpiritPetPlay(petState); } } } } } PetStoneRed(); PetActivateRedPoint(); GetCultivateRedPoint(); GetPetMinAndMaxAttack(); } public int[] GetUseDataModel(int key, Dictionary<int, int[]> useDataDict) { int[] list = null; if (useDataDict != null) { useDataDict.TryGetValue(key, out list); } return list; } private void GetPetMinAndMaxAttack() { if (_DicPetBack.Count <= 0) { return; } MinAtkNunber = 0; MaxAtkNunber = 0; foreach (var key in _DicPetBack.Keys) { PetClassCostConfig _tagPetClass = PetClassCostConfig.GetPetIdAndRank(key, _DicPetBack[key].PetClass); MinAtkNunber += _tagPetClass.AtkAdd; MaxAtkNunber += _tagPetClass.AtkAdd; } } public static Regex userData = new Regex(@"'([0-9]+)':\[(.*?)\]", RegexOptions.Singleline); public Dictionary<int, int[]> Analysis(string val)//正则表达式的字符串分割 { if (!userData.IsMatch(val)) { return null; } else { Dictionary<int, int[]> dics = new Dictionary<int, int[]>(); foreach (Match match in userData.Matches(val)) { int id = int.Parse(match.Groups[1].Value); string str = match.Groups[2].Value; string[] vals = str.Split(','); int[] intarray = new int[vals.Length]; for (int i = 0; i < vals.Length; i++) { int intval = int.Parse(vals[i].Replace('\'', ' ')); intarray[i] = intval; } if (!dics.ContainsKey(id)) { dics.Add(id, intarray); } } return dics; } } public bool IsHint(PetEnum petEnum, int id = 0)//True提示,False不提示 { bool iSHint = false; switch (petEnum) { case PetEnum.PetDan: foreach (var key in _DicPetBack.Keys) { PetInfoConfig petConfig = PetInfoConfig.Get(key); if (petConfig.MaxRank > _DicPetBack[key].PetClass) { iSHint = true; } } return iSHint; case PetEnum.PetDebris: if (allPetConfigs.Count <= 0) { allPetConfigs = PetInfoConfig.GetValues(); } foreach (var value in allPetConfigs) { if (value.UnLockNeedItemID == id) { if (!_DicPetBack.ContainsKey(value.ID)) { iSHint = true; } } } return iSHint; case PetEnum.PetStone: int _maxuse = AttrFruitConfig.Get(id).MaxUseCnt; if (_TagPetItem.ContainsKey(id)) { if (_maxuse > _TagPetItem[id]) { iSHint = true; } } return iSHint; default: return true; } } public int IsPetPanelRedPointState()//用于判断当前灵宠页签是否有红点亮起 { int Type = 0; foreach (var value in DeblockingRedPoint.Values) { if (value.state == RedPointState.Simple) { Type = 2; return Type; } } if (MainRedDot.Instance.redPonintPetFunc2.state == RedPointState.Simple) { Type = 1; return Type; } return Type; } #region 预览宠物碎片属性 Dictionary<int, int> petAttrDict = new Dictionary<int, int>(); public Dictionary<int, int> GetPetAttrAddDict(int petCode) { PetInfoConfig infoConfig = PetInfoConfig.Get(petCode); petAttrDict.Clear(); if (infoConfig == null) return petAttrDict; int maxRank = infoConfig.MaxRank; PetClassCostConfig cost = PetClassCostConfig.GetPetIdAndRank(petCode, maxRank); int allAtkAdd = 0; if (cost != null) { allAtkAdd = cost.AtkAdd; } petAttrDict.Add(7, allAtkAdd); return petAttrDict; } #endregion } System/Pet/PetModel.cs.metacopy from System/Pet/PlayerPetDatas.cs.meta copy to System/Pet/PetModel.cs.meta
File was copied from System/Pet/PlayerPetDatas.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 7d2b250209cbc8143a7380cc7db246e7 timeCreated: 1504666613 guid: 8265a87a293bfe24f8ff0e6436b7c7da timeCreated: 1551075434 licenseType: Pro MonoImporter: serializedVersion: 2 System/Pet/PetStoneTipsWin.cs
@@ -31,8 +31,8 @@ PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } #region Built-in PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); } } PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } RoleParticularModel m_RoleParticularModel; RoleParticularModel roleParticularModel { get { return m_RoleParticularModel ?? (m_RoleParticularModel = ModelCenter.Instance.GetModel<RoleParticularModel>()); } } @@ -60,7 +60,7 @@ protected override void OnAfterOpen() { PlayerPetDatas.Event_Ha339 += HA339; PetModel.Event_Ha339 += HA339; roleParticularModel.PowerUpdate += PowerUpdate; } @@ -68,7 +68,7 @@ { m_petModel.PetStoneItemId = 0; m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; PlayerPetDatas.Event_Ha339 -= HA339; PetModel.Event_Ha339 -= HA339; roleParticularModel.PowerUpdate -= PowerUpdate; } System/Pet/PetWin.cs
@@ -19,10 +19,10 @@ [SerializeField] Button _CloseBtn; [SerializeField] Button _LeftBtn; [SerializeField] Button _RightBtn; PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); } } PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } void CloseBtn() { CloseChild(); System/Pet/RidingAndPetActivationModel.cs
@@ -21,11 +21,11 @@ public int SkillID1 = 0; public int Lv = 1; PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); } } PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } //==============坐骑属性弹框 public PropertyTip property; public int RidingId; System/Pet/RidingAndPetActivationWin.cs
@@ -42,8 +42,8 @@ [SerializeField] GameObject m_Text; #region Built-in PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } RidingAndPetActivationModel ridingAndPetActivationModel { get { return ModelCenter.Instance.GetModel<RidingAndPetActivationModel>(); } } List<HorseSkillClass> MountSkills = new List<HorseSkillClass>(); Dictionary<int, int> FightDic = new Dictionary<int, int>(); System/Pet/TargetPetAttrWin.cs
@@ -53,9 +53,9 @@ [Header("关闭按钮")] [SerializeField] Button m_CloseButton;//满级 PlayerPetDatas petmodel { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerMountDatas m_MountModel; PlayerMountDatas mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); } } PetModel petmodel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel m_MountModel; MountModel mountModel { get { return m_MountModel ?? (m_MountModel = ModelCenter.Instance.GetModel<MountModel>()); } } RidingAndPetActivationModel ridingModel { get { return ModelCenter.Instance.GetModel<RidingAndPetActivationModel>(); } } protected override void BindController() System/Role/RoleAttrWin.cs
@@ -27,12 +27,12 @@ [SerializeField] ScrollerController m_Controller; private int attrShowType = 0; PlayerPetDatas m_petModel; PlayerPetDatas petmodel PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } List<PlayerPropertyConfig> propList = null; System/RoleParticulars/RoleParticularsWin.cs
@@ -48,10 +48,10 @@ return m_EquipWashModel ?? (m_EquipWashModel = ModelCenter.Instance.GetModel<EquipWashModel>()); } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel { StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } System/RoleParticulars/ViewFuncCell.cs
@@ -36,12 +36,12 @@ } } PlayerPetDatas m_petModel; PlayerPetDatas petmodel PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } @@ -51,20 +51,20 @@ get { return _suitModel ?? (_suitModel = ModelCenter.Instance.GetModel<PlayerSuitModel>()); } } PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } System/RoleParticulars/ViewHorseDetailWin.cs
@@ -232,7 +232,7 @@ m_SkillBtn.AddListener(OnClickSkill); m_Effect.StopImediatly(); var model = ModelCenter.Instance.GetModel<PlayerMountDatas>(); var model = ModelCenter.Instance.GetModel<MountModel>(); if (model.ListEffectSkill != null && model.ListEffectSkill.Contains(_skillId)) { System/RoleParticulars/ViewPetDetailWin.cs
@@ -217,7 +217,7 @@ m_SkillBtn.AddListener(OnClickSkill); m_Effect.StopImediatly(); var model = ModelCenter.Instance.GetModel<PlayerPetDatas>(); var model = ModelCenter.Instance.GetModel<PetModel>(); if (model.ListEffectSkill != null && model.ListEffectSkill.Contains(_skillId)) { System/RolePromote/RolePromoteModel.cs
@@ -21,14 +21,14 @@ ParseConfig(); playerPack.refreshItemCountEvent += RefreshItemCountAct; PlayerStoneData.OnRefreshStoneData += OnRefreshStoneData; PlayerMountDatas.Event_MountHA301A += OnRefreshMountData; PlayerPetDatas.Event_H0704Add += OnRefreshPetData; PlayerPetDatas.Event_H0704Update += OnRefreshPetData; MountModel.Event_MountHA301A += OnRefreshMountData; PetModel.Event_H0704Add += OnRefreshPetData; PetModel.Event_H0704Update += OnRefreshPetData; petmodel.PlayerLoginOkData += OnRefreshPetData; equipWashModel.RefreshWashModelEvent += RefreshWashModelEvent; RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent; ItemLogicUtility.Instance.GetBetterEquipEvent += RefreshGetBetterEquipEvent; PlayerMountDatas.PlayerLoginOKData += PlayerLoginOKData; MountModel.PlayerLoginOKData += PlayerLoginOKData; blastFurnaceModel.blastFurnacePromoteUpdate += BlastFurnacePromoteUpdate; PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; OnBeforePlayerDataInitialize(); @@ -98,28 +98,28 @@ return m_RuneModel ?? (m_RuneModel = ModelCenter.Instance.GetModel<RuneModel>()); } } PlayerPetDatas m_petModel; PlayerPetDatas petmodel PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } PlayerMountDatas m_HorseModel; PlayerMountDatas horsemodel MountModel m_HorseModel; MountModel horsemodel { get { return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<PlayerMountDatas>()); return m_HorseModel ?? (m_HorseModel = ModelCenter.Instance.GetModel<MountModel>()); } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } System/Store/Logic/BuyPetMatInfoWin.cs
@@ -80,8 +80,8 @@ { get { return _storeModel ?? (_storeModel = ModelCenter.Instance.GetModel<StoreModel>()); } } PlayerPetDatas petmodel { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerMountDatas mountModel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } PetModel petmodel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel mountModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } BuyItemPopModel buyItem; BuyShopItemLimit shopItemLimit; System/Strengthening/EquipReinforceWin.cs
@@ -11,8 +11,8 @@ private WingsRedDot W_ModelRedDit; private WingsRedDot model { get { return W_ModelRedDit ?? (W_ModelRedDit = ModelCenter.Instance.GetModel<WingsRedDot>()); } } private PlayerStrengthengDatas M_Strengtheng; private PlayerStrengthengDatas strengtheng { get { return M_Strengtheng ?? (M_Strengtheng = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); } } private StrengthenModel M_Strengtheng; private StrengthenModel strengtheng { get { return M_Strengtheng ?? (M_Strengtheng = ModelCenter.Instance.GetModel<StrengthenModel>()); } } private WashTips _washTips; public WashTips WashTip { get { System/Strengthening/PlayerStrengthengDatas.cs.meta
File was deleted System/Strengthening/StrengthenModel.cs
File was renamed from System/Strengthening/PlayerStrengthengDatas.cs @@ -1,643 +1,643 @@ using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Linq; using System; using Snxxz.UI; public class EquipmentInitialization { private int _equipIndex;//装备位置 private int _equipPartStarLV;//装备强化等级 private int _proficiency;//熟练度 public int EquipIndex { get { return _equipIndex; } set { _equipIndex = value; } } public int EquipPartStarLV { get { return _equipPartStarLV; } set { _equipPartStarLV = value; } } public int Proficiency { get { return _proficiency; } set { _proficiency = value; } } public EquipmentInitialization() { } public EquipmentInitialization(int equipIndex, int equipPartStarLV, int proficiency) { this._equipIndex = equipIndex; this._equipPartStarLV = equipPartStarLV; this._proficiency = proficiency; } } public class PlayerStrengthengDatas : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary<int, EquipmentInitialization> _EqInfo = new Dictionary<int, EquipmentInitialization>();//接收服务器下发的数值 Dictionary<int, int> DefineIndexDic = new Dictionary<int, int>();//装备强化类型 Dictionary<int, int> EquipMaxDic = new Dictionary<int, int>();//装备强化最大上限强化类型 List<string> listStrengtheningAll = new List<string>();//用于全身装备属性 public Dictionary<int, Redpoint> StrengthengRedPoint = new Dictionary<int, Redpoint>();//强化部位红点 public delegate void Delegate_Ha3b3(HA3B3_tagMCEquipPartStarLVInfo info); public static event Delegate_Ha3b3 Event_Ha3b3; //事件刷新的委托 public static event Action<int> RefreshEquipUpgradLvAct; public int MoneyMax = 0;//所需最大的钱数 public bool LevelAstrictBool = true; public int equipmentA = 0; PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); } } public class EquipRedDot { public int CurrentLevel;//当前等级 public int Money;//所需的钱数 } Dictionary<int, EquipRedDot> DicEquip = new Dictionary<int, EquipRedDot>(); public override void Init() { listStrengtheningAll = ItemPlusSumAttrConfig.GetKeys(); FuncConfigConfig funConfig = FuncConfigConfig.Get("StrengthenLevelLimit"); DefineIndexDic = ConfigParse.GetDic<int, int>(funConfig.Numerical2); EquipMaxDic = ConfigParse.GetDic<int, int>(funConfig.Numerical1); } public override void UnInit() { } public void OnPlayerLoginOk() { playerPack.refreshItemCountEvent -= OnItemRefreshEvent; playerPack.itemCntAddEvent -= OnEquipRefreshEvent; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange; playerPack.refreshItemCountEvent += OnItemRefreshEvent;//背包刷新 playerPack.itemCntAddEvent += OnEquipRefreshEvent;//角色装备刷新 FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange; FuncConfigConfig StrengthenRedPointLevel = FuncConfigConfig.Get("StrengthenRedPointLevel");//强化红点规则 string[] strStrengthenRedPointLevel = ConfigParse.GetMultipleStr(StrengthenRedPointLevel.Numerical1); StrengthengRedPointAdd(); ClassList.Clear(); for (int i = 0; i < strStrengthenRedPointLevel.Length; i++) { ClassList.Add(int.Parse(strStrengthenRedPointLevel[i])); } ClassList.Add(600); MoneyData(); int playerLv = PlayerDatas.Instance.baseData.LV; ulong copper = UIHelper.GetMoneyCnt(3); if (playerLv >= 150 && MoneyMax > (int)copper) { LevelAstrictBool = false; } } private void OnFuncStateChange(int obj) { if (obj == 1) { MoneyData(); } } public void OnBeforePlayerDataInitialize() { _EqInfo.Clear(); MoneyMax = 0; // LevelAstrictBool = true; } private void OnEquipRefreshEvent(PackType type, int index, int id) { MoneyData(); } private void OnItemRefreshEvent(PackType type, int index, int id) { if (type == PackType.Equip) { MoneyData(); } } private const int RedPoint_key2 = 10601; public Redpoint redPointStre = new Redpoint(MainRedDot.RedPoint_key1, RedPoint_key2); public Redpoint StrengthRedpoint { get { return redPointStre; } } public void MoneyRequired(int EquippedWith, int EquipmentLevel)//获取最高阶所需的钱数 { int Type = GameDefineIndex(EquippedWith); ItemPlusConfig _tagItemPlue = ItemPlusConfig.GetTypeAndGrade(Type, EquipmentLevel); if (DicEquip.ContainsKey(EquippedWith)) { DicEquip[EquippedWith].CurrentLevel = EquipmentLevel; DicEquip[EquippedWith].Money = _tagItemPlue.costCount; } else { EquipRedDot _EquipRedDot = new EquipRedDot(); _EquipRedDot.CurrentLevel = EquipmentLevel; _EquipRedDot.Money = _tagItemPlue.costCount; DicEquip.Add(EquippedWith, _EquipRedDot); } MoneyData(); } public void MoneyData()//获取金钱数据 { equipmentA = 0; MoneyMax = ContrastObtain(); ulong copper = UIHelper.GetMoneyCnt(3); //redPointStre.state = RedPointState.None; foreach (int key in StrengthengRedPoint.Keys) { StrengthengRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(1)) return; if (copper != 0 && MoneyMax != 0 && copper >= (ulong)MoneyMax) { // redPointStre.state = RedPointState.Simple; Lowest(); } } private int ContrastObtain() { MoneyMax = 0; SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack == null) return MoneyMax; foreach (var key in DicEquip.Keys) { ItemModel itemModel = singlePack.GetItemByIndex(key); if (itemModel != null) { ItemConfig _Item = ItemConfig.Get((int)itemModel.itemId); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } if (_itemPM.levelMax > DicEquip[key].CurrentLevel) { if (DicEquip[key].Money > MoneyMax) { MoneyMax = DicEquip[key].Money; } } } } return MoneyMax; } public void OnEquipmentToStrengthen(HA3B3_tagMCEquipPartStarLVInfo info) { for (int i = 0; i < info.Count; i++) { if ((int)info.InfoList[i].EquipIndex > 0 && (int)info.InfoList[i].EquipIndex <= 10) { AddInfo(i, info); } } } public bool TheRatingPrompt(int ItemID)//评级提示 { ItemConfig _Item = ItemConfig.Get(ItemID); if (_EqInfo.ContainsKey(_Item.EquipPlace)) { int EqInfoLV = _EqInfo[_Item.EquipPlace].EquipPartStarLV;//装备等级 ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } int MaxLV = _itemPM.levelMax; if (EqInfoLV >= MaxLV) return true; else return false; } return false; } public void AddInfo(int equipPlace, HA3B3_tagMCEquipPartStarLVInfo info)//装备位置 { int index = (int)info.InfoList[equipPlace].EquipIndex; MoneyRequired(index, (int)info.InfoList[equipPlace].EquipPartStarLV); if (_EqInfo.ContainsKey(index)) { _EqInfo[index].EquipIndex = index; bool isUpgrad = false; if ((int)info.InfoList[equipPlace].EquipPartStarLV > _EqInfo[index].EquipPartStarLV) { isUpgrad = true; } _EqInfo[index].EquipPartStarLV = (int)info.InfoList[equipPlace].EquipPartStarLV; _EqInfo[index].Proficiency = (int)info.InfoList[equipPlace].Proficiency; if (Event_Ha3b3 != null) Event_Ha3b3(info); if (isUpgrad && RefreshEquipUpgradLvAct != null) { RefreshEquipUpgradLvAct(index); } } else { EquipmentInitialization equip = new EquipmentInitialization(); equip.EquipIndex = index; equip.EquipPartStarLV = (int)info.InfoList[equipPlace].EquipPartStarLV; equip.Proficiency = (int)info.InfoList[equipPlace].Proficiency; _EqInfo.Add(index, equip); } } public int GameDefineIndex(int _location)//强化类型返回 { if (DefineIndexDic.ContainsKey(_location)) { return DefineIndexDic[_location]; } else { return 0; } } public int EquipMax(int _location)//强化最大上限返回类型 { if (EquipMaxDic.ContainsKey(_location)) { return EquipMaxDic[_location]; } else { return 0; } } public int StrengthenTheCeiling(int _equippedWith = 1)//装备位 { if (!_EqInfo.ContainsKey(_equippedWith)) { return 0; } int EquipPartStarLV = _EqInfo[_equippedWith].EquipPartStarLV; ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip, _equippedWith); ; ItemConfig _Item = ItemConfig.Get((int)itemModel.itemId); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } if (_itemPM.levelMax >= EquipPartStarLV) { return EquipPartStarLV; } else { return _itemPM.levelMax; } } public Dictionary<int, Dictionary<int, int>> StrengtheningAll()//全身属性 { Dictionary<int, Dictionary<int, int>> _dic = new Dictionary<int, Dictionary<int, int>>(); int _wholeBodyLevel = 0; foreach (int key in _EqInfo.Keys) { _wholeBodyLevel += _EqInfo[key].EquipPartStarLV; } for (int i = 0; i < listStrengtheningAll.Count; i++) { if (int.Parse(listStrengtheningAll[i]) > _wholeBodyLevel) { int _index = listStrengtheningAll.IndexOf(listStrengtheningAll[i]); _dic = GeneralProperties(_index, int.Parse(listStrengtheningAll[i])); return _dic; } } return null; } Dictionary<int, Dictionary<int, int>> GeneralProperties(int _index, int key) { Dictionary<int, Dictionary<int, int>> _dic = new Dictionary<int, Dictionary<int, int>>(); if (_index <= 0) { Dictionary<int, int> _dic1 = new Dictionary<int, int>(); _dic.Add(0, _dic1); Dictionary<int, int> _dic2 = new Dictionary<int, int>(); var config = ItemPlusSumAttrConfig.Get(key); _dic2.Add(config.attType[0], config.attValue[0]); _dic2.Add(config.attType[1], config.attValue[1]); _dic.Add(key, _dic2); return _dic; } else { Dictionary<int, int> _dic1 = new Dictionary<int, int>(); var config = ItemPlusSumAttrConfig.Get(listStrengtheningAll[(_index - 1)]); _dic1.Add(config.attType[0], config.attValue[0]); _dic1.Add(config.attType[1], config.attValue[1]); _dic.Add(int.Parse(listStrengtheningAll[(_index - 1)]), _dic1); Dictionary<int, int> _dic2 = new Dictionary<int, int>(); config = ItemPlusSumAttrConfig.Get(key); _dic2.Add(config.attType[0], config.attValue[0]); _dic2.Add(config.attType[1], config.attValue[1]); _dic.Add(key, _dic2); return _dic; } } //==========装备红点 List<int> StrengthList = new List<int>(); private bool IsFairyDevice(int Index) { if (Index == 9 || Index == 10) { SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack != null && singlePack.GetAllItems().ContainsKey(Index)) { ItemModel item = singlePack.GetItemByIndex(Index); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(strengthengmodel.EquipMax(Index), 0, 0); if (_itemPM.levelMax > strengthengmodel._EqInfo[Index].EquipPartStarLV)//最大可升阶等级和服务端对比 { return true; } } } return false; } private int Compare(string x, string y)//数组排列 { var _index_x = int.Parse(x); var _index_y = int.Parse(y); bool havex = IsFairyDevice(_index_x); bool havey = IsFairyDevice(_index_y); if (havex.CompareTo(havey) != 0) { return -havex.CompareTo(havey); } var _sort_x = StrengthList.IndexOf(_index_x); var _sort_y = StrengthList.IndexOf(_index_y); return _sort_x.CompareTo(_sort_y); } private void StrengthengRedPointAdd() { string str = FuncConfigConfig.Get("EquipArea").Numerical1; int[] intList = ConfigParse.GetMultipleStr<int>(str); if (StrengthList.Count <= 0) { for (int i = 0; i < intList.Length; i++) { StrengthList.Add(intList[i]); } } List<string> SortList = new List<string>(); for (int i = 0; i < intList.Length; i++) { SortList.Add((intList[i]).ToString()); } SortList.Sort(Compare); string[] StrengthenDisplay = SortList.ToArray(); for (int i = 0; i < StrengthenDisplay.Length; i++) { int equippedWith = int.Parse(StrengthenDisplay[i]); if (!StrengthengRedPoint.ContainsKey(equippedWith)) { int RedPoint_Strength = RedPoint_key2 * 10 + equippedWith; Redpoint redPoint = new Redpoint(RedPoint_key2, RedPoint_Strength); StrengthengRedPoint.Add(equippedWith, redPoint); } } } List<int> ClassList = new List<int>();//红点阶级 List<int> equipmentRed = new List<int>();//当前存在的装备 int LowestZbw = 0; private void Lowest()//筛选强化部位上最低阶级装备 { equipmentRed.Clear(); int LowestLV = 0; var StrengthengRedPointAllKey = StrengthengRedPoint.Keys; foreach (int key in StrengthengRedPointAllKey) { ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip, key); if (itemModel != null) { ItemConfig _Item = ItemConfig.Get((int)itemModel.itemId); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } if (_itemPM.levelMax > DicEquip[key].CurrentLevel) { if (LowestLV == 0) { LowestLV = DicEquip[key].CurrentLevel; LowestZbw = key; } if (DicEquip[key].CurrentLevel < LowestLV) { LowestLV = DicEquip[key].CurrentLevel; LowestZbw = key; } equipmentRed.Add(key); } } } //DesignDebug.LogError(LowestZbw); //DesignDebug.LogError(DicEquip[LowestZbw].CurrentLevel); if (!DicEquip.ContainsKey(LowestZbw)) { return; } int Lv = ClassifyJudge(DicEquip[LowestZbw].CurrentLevel); RedPointPart(Lv); } private int ClassifyJudge(int Lv) { for (int i = 0; i < ClassList.Count; i++) { if (Lv < ClassList[i]) { return ClassList[i]; } } return 0; } private void RedPointPart(int Lv) { //DesignDebug.LogError("得到限制等级"+ Lv); for (int i = 0; i < equipmentRed.Count; i++) { if (_EqInfo.ContainsKey(equipmentRed[i]) && _EqInfo[(equipmentRed[i])].EquipPartStarLV < Lv && LevelAstrictBool) { equipmentA = equipmentRed[i]; StrengthengRedPoint[(equipmentRed[i])].state = RedPointState.Simple; // DesignDebug.LogError("得到装备位" + (equipmentRed[i])); return; } } } //===========羽翼精炼 Dictionary<int, WingRefineAttrModel> _DicWingRe = new Dictionary<int, WingRefineAttrModel>(); class WingRefineAttrModel { public int Ability1;//属性值1 public int Ability1Value;//数值1 public int Ability2;//属性值2 public int Ability2Value;//数值2 } private List<WingRefineAttrConfig> tegWing = new List<WingRefineAttrConfig>(); void WingRefine()//精炼属性 { if (tegWing.Count <= 0) { tegWing= WingRefineAttrConfig.GetValues(); } //var tegWing = WingRefineAttrConfig.GetValues(); foreach (var values in tegWing) { if (!_DicWingRe.ContainsKey(values.wingsPhase)) { WingRefineAttrModel _wingRefineAttrModel = new WingRefineAttrModel(); int[] array = ConfigParse.GetKeyValueKeys<int>(values.attrupper); int[] intarray = ConfigParse.GetKeyValueValues<int>(values.attrupper); _wingRefineAttrModel.Ability1 = array[0]; _wingRefineAttrModel.Ability2 = array[1]; _wingRefineAttrModel.Ability1Value = intarray[0]; _wingRefineAttrModel.Ability2Value = intarray[1]; _DicWingRe.Add(values.wingsPhase, _wingRefineAttrModel); } } } public float[] BackpackWings(int ItemID, int _Refining)//用于背包 翅膀(1.翅膀ID,2.精炼值) { WingRefine(); int _currentRefiningAll = 0;//总精炼度 ItemConfig Item = ItemConfig.Get(ItemID); if (tegWing.Count <= 0) { tegWing = WingRefineAttrConfig.GetValues(); } // var configs = WingRefineAttrConfig.GetValues(); foreach (var values in tegWing) { if (Item.LV == values.wingsPhase) { _currentRefiningAll = values.EXPupper;//总精炼度 if (_Refining >= _currentRefiningAll) { _Refining = _currentRefiningAll; } } } float _RefiningRatio = (float)_Refining / _currentRefiningAll;//精炼比值 float _RefiningDegrees = _DicWingRe[Item.LV].Ability2Value * _RefiningRatio; float _life = _DicWingRe[Item.LV].Ability1Value * _RefiningRatio; float[] _floList = new float[2]; _floList[0] = _RefiningDegrees; _floList[1] = _life; return _floList; } public bool IsHint(int ID) { if (WingRefineAttrConfig.Get(ID) == null) { return false; } ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip, (int)RoleEquipType.Wing); if (itemModel.GetUseDataModel((int)ItemUseDataKey.wingProgressValue) != null) { int currentRefining = 0; int currentReAll = 0; currentRefining = itemModel.GetUseDataModel((int)ItemUseDataKey.wingProgressValue)[0];//当前精炼度 if (tegWing.Count <= 0) { tegWing = WingRefineAttrConfig.GetValues(); } // var wingRefineAttrConfigs = WingRefineAttrConfig.GetValues(); foreach (var value in tegWing) { if (itemModel.config.LV == value.wingsPhase) { currentReAll = value.EXPupper;//总精炼度 } } if (currentReAll > currentRefining) { return true; } else { return false; } } else { return false; } } } using UnityEngine; using System.Collections; using System.Collections.Generic; using System.Linq; using System; using Snxxz.UI; public class EquipmentInitialization { private int _equipIndex;//装备位置 private int _equipPartStarLV;//装备强化等级 private int _proficiency;//熟练度 public int EquipIndex { get { return _equipIndex; } set { _equipIndex = value; } } public int EquipPartStarLV { get { return _equipPartStarLV; } set { _equipPartStarLV = value; } } public int Proficiency { get { return _proficiency; } set { _proficiency = value; } } public EquipmentInitialization() { } public EquipmentInitialization(int equipIndex, int equipPartStarLV, int proficiency) { this._equipIndex = equipIndex; this._equipPartStarLV = equipPartStarLV; this._proficiency = proficiency; } } public class StrengthenModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary<int, EquipmentInitialization> _EqInfo = new Dictionary<int, EquipmentInitialization>();//接收服务器下发的数值 Dictionary<int, int> DefineIndexDic = new Dictionary<int, int>();//装备强化类型 Dictionary<int, int> EquipMaxDic = new Dictionary<int, int>();//装备强化最大上限强化类型 List<string> listStrengtheningAll = new List<string>();//用于全身装备属性 public Dictionary<int, Redpoint> StrengthengRedPoint = new Dictionary<int, Redpoint>();//强化部位红点 public delegate void Delegate_Ha3b3(HA3B3_tagMCEquipPartStarLVInfo info); public static event Delegate_Ha3b3 Event_Ha3b3; //事件刷新的委托 public static event Action<int> RefreshEquipUpgradLvAct; public int MoneyMax = 0;//所需最大的钱数 public bool LevelAstrictBool = true; public int equipmentA = 0; PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } } StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } public class EquipRedDot { public int CurrentLevel;//当前等级 public int Money;//所需的钱数 } Dictionary<int, EquipRedDot> DicEquip = new Dictionary<int, EquipRedDot>(); public override void Init() { listStrengtheningAll = ItemPlusSumAttrConfig.GetKeys(); FuncConfigConfig funConfig = FuncConfigConfig.Get("StrengthenLevelLimit"); DefineIndexDic = ConfigParse.GetDic<int, int>(funConfig.Numerical2); EquipMaxDic = ConfigParse.GetDic<int, int>(funConfig.Numerical1); } public override void UnInit() { } public void OnPlayerLoginOk() { playerPack.refreshItemCountEvent -= OnItemRefreshEvent; playerPack.itemCntAddEvent -= OnEquipRefreshEvent; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange; playerPack.refreshItemCountEvent += OnItemRefreshEvent;//背包刷新 playerPack.itemCntAddEvent += OnEquipRefreshEvent;//角色装备刷新 FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange; FuncConfigConfig StrengthenRedPointLevel = FuncConfigConfig.Get("StrengthenRedPointLevel");//强化红点规则 string[] strStrengthenRedPointLevel = ConfigParse.GetMultipleStr(StrengthenRedPointLevel.Numerical1); StrengthengRedPointAdd(); ClassList.Clear(); for (int i = 0; i < strStrengthenRedPointLevel.Length; i++) { ClassList.Add(int.Parse(strStrengthenRedPointLevel[i])); } ClassList.Add(600); MoneyData(); int playerLv = PlayerDatas.Instance.baseData.LV; ulong copper = UIHelper.GetMoneyCnt(3); if (playerLv >= 150 && MoneyMax > (int)copper) { LevelAstrictBool = false; } } private void OnFuncStateChange(int obj) { if (obj == 1) { MoneyData(); } } public void OnBeforePlayerDataInitialize() { _EqInfo.Clear(); MoneyMax = 0; // LevelAstrictBool = true; } private void OnEquipRefreshEvent(PackType type, int index, int id) { MoneyData(); } private void OnItemRefreshEvent(PackType type, int index, int id) { if (type == PackType.Equip) { MoneyData(); } } private const int RedPoint_key2 = 10601; public Redpoint redPointStre = new Redpoint(MainRedDot.RedPoint_key1, RedPoint_key2); public Redpoint StrengthRedpoint { get { return redPointStre; } } public void MoneyRequired(int EquippedWith, int EquipmentLevel)//获取最高阶所需的钱数 { int Type = GameDefineIndex(EquippedWith); ItemPlusConfig _tagItemPlue = ItemPlusConfig.GetTypeAndGrade(Type, EquipmentLevel); if (DicEquip.ContainsKey(EquippedWith)) { DicEquip[EquippedWith].CurrentLevel = EquipmentLevel; DicEquip[EquippedWith].Money = _tagItemPlue.costCount; } else { EquipRedDot _EquipRedDot = new EquipRedDot(); _EquipRedDot.CurrentLevel = EquipmentLevel; _EquipRedDot.Money = _tagItemPlue.costCount; DicEquip.Add(EquippedWith, _EquipRedDot); } MoneyData(); } public void MoneyData()//获取金钱数据 { equipmentA = 0; MoneyMax = ContrastObtain(); ulong copper = UIHelper.GetMoneyCnt(3); //redPointStre.state = RedPointState.None; foreach (int key in StrengthengRedPoint.Keys) { StrengthengRedPoint[key].state = RedPointState.None; } if (!FuncOpen.Instance.IsFuncOpen(1)) return; if (copper != 0 && MoneyMax != 0 && copper >= (ulong)MoneyMax) { // redPointStre.state = RedPointState.Simple; Lowest(); } } private int ContrastObtain() { MoneyMax = 0; SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack == null) return MoneyMax; foreach (var key in DicEquip.Keys) { ItemModel itemModel = singlePack.GetItemByIndex(key); if (itemModel != null) { ItemConfig _Item = ItemConfig.Get((int)itemModel.itemId); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } if (_itemPM.levelMax > DicEquip[key].CurrentLevel) { if (DicEquip[key].Money > MoneyMax) { MoneyMax = DicEquip[key].Money; } } } } return MoneyMax; } public void OnEquipmentToStrengthen(HA3B3_tagMCEquipPartStarLVInfo info) { for (int i = 0; i < info.Count; i++) { if ((int)info.InfoList[i].EquipIndex > 0 && (int)info.InfoList[i].EquipIndex <= 10) { AddInfo(i, info); } } } public bool TheRatingPrompt(int ItemID)//评级提示 { ItemConfig _Item = ItemConfig.Get(ItemID); if (_EqInfo.ContainsKey(_Item.EquipPlace)) { int EqInfoLV = _EqInfo[_Item.EquipPlace].EquipPartStarLV;//装备等级 ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } int MaxLV = _itemPM.levelMax; if (EqInfoLV >= MaxLV) return true; else return false; } return false; } public void AddInfo(int equipPlace, HA3B3_tagMCEquipPartStarLVInfo info)//装备位置 { int index = (int)info.InfoList[equipPlace].EquipIndex; MoneyRequired(index, (int)info.InfoList[equipPlace].EquipPartStarLV); if (_EqInfo.ContainsKey(index)) { _EqInfo[index].EquipIndex = index; bool isUpgrad = false; if ((int)info.InfoList[equipPlace].EquipPartStarLV > _EqInfo[index].EquipPartStarLV) { isUpgrad = true; } _EqInfo[index].EquipPartStarLV = (int)info.InfoList[equipPlace].EquipPartStarLV; _EqInfo[index].Proficiency = (int)info.InfoList[equipPlace].Proficiency; if (Event_Ha3b3 != null) Event_Ha3b3(info); if (isUpgrad && RefreshEquipUpgradLvAct != null) { RefreshEquipUpgradLvAct(index); } } else { EquipmentInitialization equip = new EquipmentInitialization(); equip.EquipIndex = index; equip.EquipPartStarLV = (int)info.InfoList[equipPlace].EquipPartStarLV; equip.Proficiency = (int)info.InfoList[equipPlace].Proficiency; _EqInfo.Add(index, equip); } } public int GameDefineIndex(int _location)//强化类型返回 { if (DefineIndexDic.ContainsKey(_location)) { return DefineIndexDic[_location]; } else { return 0; } } public int EquipMax(int _location)//强化最大上限返回类型 { if (EquipMaxDic.ContainsKey(_location)) { return EquipMaxDic[_location]; } else { return 0; } } public int StrengthenTheCeiling(int _equippedWith = 1)//装备位 { if (!_EqInfo.ContainsKey(_equippedWith)) { return 0; } int EquipPartStarLV = _EqInfo[_equippedWith].EquipPartStarLV; ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip, _equippedWith); ; ItemConfig _Item = ItemConfig.Get((int)itemModel.itemId); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } if (_itemPM.levelMax >= EquipPartStarLV) { return EquipPartStarLV; } else { return _itemPM.levelMax; } } public Dictionary<int, Dictionary<int, int>> StrengtheningAll()//全身属性 { Dictionary<int, Dictionary<int, int>> _dic = new Dictionary<int, Dictionary<int, int>>(); int _wholeBodyLevel = 0; foreach (int key in _EqInfo.Keys) { _wholeBodyLevel += _EqInfo[key].EquipPartStarLV; } for (int i = 0; i < listStrengtheningAll.Count; i++) { if (int.Parse(listStrengtheningAll[i]) > _wholeBodyLevel) { int _index = listStrengtheningAll.IndexOf(listStrengtheningAll[i]); _dic = GeneralProperties(_index, int.Parse(listStrengtheningAll[i])); return _dic; } } return null; } Dictionary<int, Dictionary<int, int>> GeneralProperties(int _index, int key) { Dictionary<int, Dictionary<int, int>> _dic = new Dictionary<int, Dictionary<int, int>>(); if (_index <= 0) { Dictionary<int, int> _dic1 = new Dictionary<int, int>(); _dic.Add(0, _dic1); Dictionary<int, int> _dic2 = new Dictionary<int, int>(); var config = ItemPlusSumAttrConfig.Get(key); _dic2.Add(config.attType[0], config.attValue[0]); _dic2.Add(config.attType[1], config.attValue[1]); _dic.Add(key, _dic2); return _dic; } else { Dictionary<int, int> _dic1 = new Dictionary<int, int>(); var config = ItemPlusSumAttrConfig.Get(listStrengtheningAll[(_index - 1)]); _dic1.Add(config.attType[0], config.attValue[0]); _dic1.Add(config.attType[1], config.attValue[1]); _dic.Add(int.Parse(listStrengtheningAll[(_index - 1)]), _dic1); Dictionary<int, int> _dic2 = new Dictionary<int, int>(); config = ItemPlusSumAttrConfig.Get(key); _dic2.Add(config.attType[0], config.attValue[0]); _dic2.Add(config.attType[1], config.attValue[1]); _dic.Add(key, _dic2); return _dic; } } //==========装备红点 List<int> StrengthList = new List<int>(); private bool IsFairyDevice(int Index) { if (Index == 9 || Index == 10) { SinglePack singlePack = playerPack.GetSinglePack(PackType.Equip); if (singlePack != null && singlePack.GetAllItems().ContainsKey(Index)) { ItemModel item = singlePack.GetItemByIndex(Index); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(strengthengmodel.EquipMax(Index), 0, 0); if (_itemPM.levelMax > strengthengmodel._EqInfo[Index].EquipPartStarLV)//最大可升阶等级和服务端对比 { return true; } } } return false; } private int Compare(string x, string y)//数组排列 { var _index_x = int.Parse(x); var _index_y = int.Parse(y); bool havex = IsFairyDevice(_index_x); bool havey = IsFairyDevice(_index_y); if (havex.CompareTo(havey) != 0) { return -havex.CompareTo(havey); } var _sort_x = StrengthList.IndexOf(_index_x); var _sort_y = StrengthList.IndexOf(_index_y); return _sort_x.CompareTo(_sort_y); } private void StrengthengRedPointAdd() { string str = FuncConfigConfig.Get("EquipArea").Numerical1; int[] intList = ConfigParse.GetMultipleStr<int>(str); if (StrengthList.Count <= 0) { for (int i = 0; i < intList.Length; i++) { StrengthList.Add(intList[i]); } } List<string> SortList = new List<string>(); for (int i = 0; i < intList.Length; i++) { SortList.Add((intList[i]).ToString()); } SortList.Sort(Compare); string[] StrengthenDisplay = SortList.ToArray(); for (int i = 0; i < StrengthenDisplay.Length; i++) { int equippedWith = int.Parse(StrengthenDisplay[i]); if (!StrengthengRedPoint.ContainsKey(equippedWith)) { int RedPoint_Strength = RedPoint_key2 * 10 + equippedWith; Redpoint redPoint = new Redpoint(RedPoint_key2, RedPoint_Strength); StrengthengRedPoint.Add(equippedWith, redPoint); } } } List<int> ClassList = new List<int>();//红点阶级 List<int> equipmentRed = new List<int>();//当前存在的装备 int LowestZbw = 0; private void Lowest()//筛选强化部位上最低阶级装备 { equipmentRed.Clear(); int LowestLV = 0; var StrengthengRedPointAllKey = StrengthengRedPoint.Keys; foreach (int key in StrengthengRedPointAllKey) { ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip, key); if (itemModel != null) { ItemConfig _Item = ItemConfig.Get((int)itemModel.itemId); ItemPlusMaxConfig _itemPM = new ItemPlusMaxConfig(); if (EquipMax(_Item.EquipPlace) != 3) { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), _Item.LV, _Item.ItemColor); } else { _itemPM = ItemPlusMaxConfig.GetEquipTypeAndPhaseColor(EquipMax(_Item.EquipPlace), 0, 0); } if (_itemPM.levelMax > DicEquip[key].CurrentLevel) { if (LowestLV == 0) { LowestLV = DicEquip[key].CurrentLevel; LowestZbw = key; } if (DicEquip[key].CurrentLevel < LowestLV) { LowestLV = DicEquip[key].CurrentLevel; LowestZbw = key; } equipmentRed.Add(key); } } } //DesignDebug.LogError(LowestZbw); //DesignDebug.LogError(DicEquip[LowestZbw].CurrentLevel); if (!DicEquip.ContainsKey(LowestZbw)) { return; } int Lv = ClassifyJudge(DicEquip[LowestZbw].CurrentLevel); RedPointPart(Lv); } private int ClassifyJudge(int Lv) { for (int i = 0; i < ClassList.Count; i++) { if (Lv < ClassList[i]) { return ClassList[i]; } } return 0; } private void RedPointPart(int Lv) { //DesignDebug.LogError("得到限制等级"+ Lv); for (int i = 0; i < equipmentRed.Count; i++) { if (_EqInfo.ContainsKey(equipmentRed[i]) && _EqInfo[(equipmentRed[i])].EquipPartStarLV < Lv && LevelAstrictBool) { equipmentA = equipmentRed[i]; StrengthengRedPoint[(equipmentRed[i])].state = RedPointState.Simple; // DesignDebug.LogError("得到装备位" + (equipmentRed[i])); return; } } } //===========羽翼精炼 Dictionary<int, WingRefineAttrModel> _DicWingRe = new Dictionary<int, WingRefineAttrModel>(); class WingRefineAttrModel { public int Ability1;//属性值1 public int Ability1Value;//数值1 public int Ability2;//属性值2 public int Ability2Value;//数值2 } private List<WingRefineAttrConfig> tegWing = new List<WingRefineAttrConfig>(); void WingRefine()//精炼属性 { if (tegWing.Count <= 0) { tegWing= WingRefineAttrConfig.GetValues(); } //var tegWing = WingRefineAttrConfig.GetValues(); foreach (var values in tegWing) { if (!_DicWingRe.ContainsKey(values.wingsPhase)) { WingRefineAttrModel _wingRefineAttrModel = new WingRefineAttrModel(); int[] array = ConfigParse.GetKeyValueKeys<int>(values.attrupper); int[] intarray = ConfigParse.GetKeyValueValues<int>(values.attrupper); _wingRefineAttrModel.Ability1 = array[0]; _wingRefineAttrModel.Ability2 = array[1]; _wingRefineAttrModel.Ability1Value = intarray[0]; _wingRefineAttrModel.Ability2Value = intarray[1]; _DicWingRe.Add(values.wingsPhase, _wingRefineAttrModel); } } } public float[] BackpackWings(int ItemID, int _Refining)//用于背包 翅膀(1.翅膀ID,2.精炼值) { WingRefine(); int _currentRefiningAll = 0;//总精炼度 ItemConfig Item = ItemConfig.Get(ItemID); if (tegWing.Count <= 0) { tegWing = WingRefineAttrConfig.GetValues(); } // var configs = WingRefineAttrConfig.GetValues(); foreach (var values in tegWing) { if (Item.LV == values.wingsPhase) { _currentRefiningAll = values.EXPupper;//总精炼度 if (_Refining >= _currentRefiningAll) { _Refining = _currentRefiningAll; } } } float _RefiningRatio = (float)_Refining / _currentRefiningAll;//精炼比值 float _RefiningDegrees = _DicWingRe[Item.LV].Ability2Value * _RefiningRatio; float _life = _DicWingRe[Item.LV].Ability1Value * _RefiningRatio; float[] _floList = new float[2]; _floList[0] = _RefiningDegrees; _floList[1] = _life; return _floList; } public bool IsHint(int ID) { if (WingRefineAttrConfig.Get(ID) == null) { return false; } ItemModel itemModel = playerPack.GetItemByIndex(PackType.Equip, (int)RoleEquipType.Wing); if (itemModel.GetUseDataModel((int)ItemUseDataKey.wingProgressValue) != null) { int currentRefining = 0; int currentReAll = 0; currentRefining = itemModel.GetUseDataModel((int)ItemUseDataKey.wingProgressValue)[0];//当前精炼度 if (tegWing.Count <= 0) { tegWing = WingRefineAttrConfig.GetValues(); } // var wingRefineAttrConfigs = WingRefineAttrConfig.GetValues(); foreach (var value in tegWing) { if (itemModel.config.LV == value.wingsPhase) { currentReAll = value.EXPupper;//总精炼度 } } if (currentReAll > currentRefining) { return true; } else { return false; } } else { return false; } } } System/Strengthening/StrengthenModel.cs.meta
File was renamed from System/Pet/PlayerPetDatas.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 7d2b250209cbc8143a7380cc7db246e7 timeCreated: 1504666613 guid: 2d254a99ec23f0d4d8fa268703d6c70b timeCreated: 1551075430 licenseType: Pro MonoImporter: serializedVersion: 2 System/Strengthening/StrengtheningSripts.cs
@@ -76,8 +76,8 @@ GetItemPathModel _GetItemPath; GetItemPathModel GetItemPath { get { return _GetItemPath ?? (_GetItemPath = ModelCenter.Instance.GetModel<GetItemPathModel>()); } } PlayerStrengthengDatas m_StrengthengModel; PlayerStrengthengDatas strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>()); } } StrengthenModel m_StrengthengModel; StrengthenModel strengthengmodel { get { return m_StrengthengModel ?? (m_StrengthengModel = ModelCenter.Instance.GetModel<StrengthenModel>()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } @@ -170,7 +170,7 @@ _effects = true; _open = true; _money = PlayerDatas.Instance.baseData.allSliver; PlayerStrengthengDatas.Event_Ha3b3 += EquipPartStar;//刷新服务器关于装备信息 StrengthenModel.Event_Ha3b3 += EquipPartStar;//刷新服务器关于装备信息 PlayerDatas.Instance.PlayerDataRefreshInfoEvent += RefreshMoney;//金钱的刷新 Initialize(); WindowCenter.Instance.windowBeforeCloseEvent += windowBeforeCloseEvent; @@ -1216,7 +1216,7 @@ { _open = false; StopBtn();//停止强化关闭携程 PlayerStrengthengDatas.Event_Ha3b3 -= EquipPartStar;//刷新服务器关于装备信息 StrengthenModel.Event_Ha3b3 -= EquipPartStar;//刷新服务器关于装备信息 PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= RefreshMoney;//金钱的刷新 WindowCenter.Instance.windowBeforeCloseEvent -= windowBeforeCloseEvent; int playerLv = PlayerDatas.Instance.baseData.LV; System/SystemSetting/SettingEffectMgr.cs
@@ -17,10 +17,10 @@ private StoreConfig _tagShopModel; private int[] shopIdlist; PlayerPetDatas m_petModel; PlayerPetDatas petmodel { PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } System/Treasure/TreasureSoulModel.cs
@@ -47,7 +47,7 @@ public override void Init() { packModel.refreshItemCountEvent += RefreshItemCountAct; PlayerStrengthengDatas.RefreshEquipUpgradLvAct += RefreshEquipSTRLv; StrengthenModel.RefreshEquipUpgradLvAct += RefreshEquipSTRLv; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; ParseConfig(); } @@ -74,7 +74,7 @@ public override void UnInit() { packModel.refreshItemCountEvent -= RefreshItemCountAct; PlayerStrengthengDatas.RefreshEquipUpgradLvAct -= RefreshEquipSTRLv; StrengthenModel.RefreshEquipUpgradLvAct -= RefreshEquipSTRLv; FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; } @@ -447,7 +447,7 @@ state = itemGet ? TreasurePrivilegeState.Doing : TreasurePrivilegeState.Reward; break; case TreasurePrivilege.StrengthenAdd: var strengthen = ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); var strengthen = ModelCenter.Instance.GetModel<StrengthenModel>(); var playerpack = ModelCenter.Instance.GetModel<PackModel>(); presentGetCount = 0; foreach (var value in strengthen._EqInfo.Values) System/Treasure/TreasureSoulPattern4.cs
@@ -12,11 +12,11 @@ PlayerSuitModel suitModel { get { return ModelCenter.Instance.GetModel<PlayerSuitModel>(); } } PackModel pack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } public PlayerStrengthengDatas strengthengmodel public StrengthenModel strengthengmodel { get { return ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); return ModelCenter.Instance.GetModel<StrengthenModel>(); } } public override void Display(int _id) System/Treasure/TreasureSoulWin.cs
@@ -46,11 +46,11 @@ PlayerSuitModel suitModel { get { return ModelCenter.Instance.GetModel<PlayerSuitModel>(); } } PackModel pack { get { return ModelCenter.Instance.GetModel<PackModel>(); } } public PlayerStrengthengDatas strengthengmodel public StrengthenModel strengthengmodel { get { return ModelCenter.Instance.GetModel<PlayerStrengthengDatas>(); return ModelCenter.Instance.GetModel<StrengthenModel>(); } } System/WindowBase/ModelCenter.cs
@@ -127,11 +127,11 @@ RegisterModel<TitleModel>(); RegisterModel<KingFairyModel>(); RegisterModel<DemonJarModel>(); RegisterModel<PlayerBuffDatas>(); RegisterModel<PlayerPetDatas>(); RegisterModel<PlayerMountDatas>(); RegisterModel<BuffModel>(); RegisterModel<PetModel>(); RegisterModel<MountModel>(); RegisterModel<TaiChiModel>(); RegisterModel<PlayerStrengthengDatas>(); RegisterModel<StrengthenModel>(); RegisterModel<OffLineOnHookModel>(); RegisterModel<RuneComposeModel>(); RegisterModel<ItemOverdueModel>(); System/WindowJump/WindowJumpMgr.cs
@@ -20,12 +20,12 @@ private FuncOpenLVConfig _tagOpenLvModel; private Dictionary<int, List<string>> openWindows = new Dictionary<int, List<string>>(); public Dictionary<int, string> jumpWinNameDict = new Dictionary<int, string>(); PlayerPetDatas m_petModel; PlayerPetDatas petmodel PetModel m_petModel; PetModel petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>()); return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PetModel>()); } } @@ -40,8 +40,8 @@ TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } PlayerPetDatas petModel { get { return ModelCenter.Instance.GetModel<PlayerPetDatas>(); } } PlayerMountDatas mountModel { get { return ModelCenter.Instance.GetModel<PlayerMountDatas>(); } } PetModel petModel { get { return ModelCenter.Instance.GetModel<PetModel>(); } } MountModel mountModel { get { return ModelCenter.Instance.GetModel<MountModel>(); } } TreasureFindHostModel hostModel { get { return ModelCenter.Instance.GetModel<TreasureFindHostModel>(); } } FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }