Core/GameEngine/Model/ConfigManager.cs
@@ -245,6 +245,7 @@ StartSyncTask<IconConfig>(AssetPath.ResourceOut); StartSyncTask<SysInfoConfig>(AssetPath.ResourceOut); StartSyncTask<LanguageConfig>(AssetPath.ResourceOut); StartSyncTask<RealmConfig>(AssetPath.ResourceOut); } public bool AllCompleted() Core/ResModule/AnimatorControllerLoader.cs
@@ -11,6 +11,7 @@ public static readonly string controllerSuffix = "AnimatorController_"; public static readonly string controllerUISuffix = "AnimatorController_UI_"; public static readonly string controllerShowSuffix = "AnimatorController_Show_"; public static readonly string controllerRealmSuffix = "AnimatorController_Realm_"; public static AnimationClip LoadAnimationClip(string name, string clipName) { System/Compose/New/ComposeWinModel.cs
@@ -130,6 +130,24 @@ return modellist; } public int GetTicketId(int firstType, int secondType, int thirdType) { var itemId = 0; var dict = ItemCompoundConfig.GetFirstComposeTypeDict(firstType); Dictionary<int, List<ItemCompoundConfig>> _secondTypeDict = null; dict.TryGetValue(secondType, out _secondTypeDict); if (_secondTypeDict != null) { List<ItemCompoundConfig> modellist = null; _secondTypeDict.TryGetValue(thirdType, out modellist); if (modellist != null && modellist.Count > 0) { int.TryParse(modellist[0].makeID, out itemId); } } return itemId; } public int[] makeIDs { get; private set; } public int[] unfixedItemIDs { get; private set; } public int[] costfixedItemIDs { get; private set; } @@ -763,6 +781,14 @@ } } } else { isEnough = false; } } else { isEnough = false; } return isEnough; } System/Dogz/DogzCell.cs
@@ -28,10 +28,21 @@ m_DogzIcon.SetSprite(_dogzCfg.HeadIcon); m_DogzIcon.SetNativeSize(); var _dogzEquips = model.GetDogzEquips(_dogzCfg.ID); m_DogzIcon.material = (_dogzEquips == null || _dogzEquips.Count < 5) ? MaterialUtility.GetDefaultSpriteGrayMaterial() : MaterialUtility.GetUIDefaultGraphicMaterial(); bool isActive = (_dogzEquips == null || _dogzEquips.Count < 5) ? false : true; m_DogzName.text = _dogzCfg.Name; //m_DogzGrade.text = StringUtility.Contact("评分:", 100); m_DogzGrade.text = StringUtility.Contact("评分:", 100); if (isActive) { m_DogzIcon.material = MaterialUtility.GetUIDefaultGraphicMaterial(); m_DogzName.material = MaterialUtility.GetUIDefaultGraphicMaterial(); m_DogzGrade.material = MaterialUtility.GetUIDefaultGraphicMaterial(); } else { m_DogzIcon.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); m_DogzName.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); m_DogzGrade.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); } m_DogzBtn.image.color = model.presentSelectDogz == _dogzCfg.ID ? Color.blue : Color.white; m_DogzAssist.gameObject.SetActive(model.TryGetAssistDogzState(_dogzCfg.ID)); m_DogzBtn.onClick.RemoveAllListeners(); System/Dogz/DogzEquip.cs
@@ -32,9 +32,9 @@ itemBaisc.cellBtn.RemoveAllListeners(); itemBaisc.cellBtn.AddListener(()=> { ItemAttrData attrData = new ItemAttrData(model.itemId,false,(ulong)model.itemInfo.ItemCount,model.itemInfo.ItemPlace, model.itemInfo.IsBind,false,PackType.rptDogzEquip,model.itemInfo.ItemGUID); tipsModel.SetItemTipsModel(attrData); tipsModel.SetItemTipsModel(model.packType,model.itemInfo.ItemGUID,false,false); tipsModel.SetDogzEquipBtn(tipsModel.curAttrData); tipsModel.ShowUICtrl(); }); } } System/Dogz/DogzItemCell.cs
@@ -46,9 +46,9 @@ itemBaisc.cellBtn.RemoveAllListeners(); itemBaisc.cellBtn.AddListener(()=> { ItemAttrData attrData = new ItemAttrData(model.itemId, false, (ulong)model.itemInfo.ItemCount, model.itemInfo.ItemPlace, model.itemInfo.IsBind, false, PackType.rptDogzItem, model.itemInfo.ItemGUID); tipsModel.SetItemTipsModel(attrData); tipsModel.SetItemTipsModel(model.packType, model.itemInfo.ItemGUID, false, false); tipsModel.SetDogzItemBtn(tipsModel.curAttrData); tipsModel.ShowUICtrl(); }); } } System/Dogz/DogzModel.cs
@@ -236,28 +236,48 @@ ItemModel itemModel = playerPack.GetItemModelByIndex(type, index); int dogzId = GetDogzIDByIndex(index); List<ItemModel> modellist = GetDogzEquips(dogzId); if(modellist != null) { if (itemModel != null) { for (int i = 0; i < m_DogzEquipDict[dogzId].Count; i++) bool isAdd = true; for (int i = 0; i < modellist.Count; i++) { if (m_DogzEquipDict[dogzId][i].itemInfo.ItemPlace == index) if (modellist[i].itemInfo.ItemPlace == index) { m_DogzEquipDict[dogzId][i] = itemModel; return; isAdd = false; modellist[i] = itemModel; break; } } if(isAdd) { modellist.Add(itemModel); } } else { for (int i = 0; i < modellist.Count; i++) { if (modellist[i].itemInfo.ItemPlace == index) { modellist.RemoveAt(i); break; } } } } else { for (int i = 0; i < m_DogzEquipDict[dogzId].Count; i++) if(itemModel != null) { if (m_DogzEquipDict[dogzId][i].itemInfo.ItemPlace == index) { m_DogzEquipDict[dogzId].RemoveAt(i); return; List<ItemModel> equipDatas = new List<ItemModel>(); equipDatas.Add(itemModel); m_DogzEquipDict.Add(dogzId,equipDatas); } } } if(RefreshDogzEquipAct != null) { System/KnapSack/Logic/EquipTip.cs
@@ -179,7 +179,8 @@ yield return null; if(itemAttrData.isCompare) { if (itemAttrData.packType != PackType.rptEquip) if (itemAttrData.packType != PackType.rptEquip && itemAttrData.packType != PackType.rptDogzEquip) { itemTipsModel.SetCurTips(this.GetComponent<RectTransform>()); } @@ -205,7 +206,8 @@ ItemCellModel cellModel = new ItemCellModel(itemAttrData.itemId,itemAttrData.isPreview, (ulong)itemAttrData.count, itemAttrData.isBind, itemAttrData.guid,itemAttrData.packType,itemAttrData.isCompare, itemAttrData.useDataDict); itemCell.Init(cellModel); if(itemAttrData.packType == PackType.rptEquip) if(itemAttrData.packType == PackType.rptEquip || itemAttrData.packType == PackType.rptDogzEquip) { putOnIcon.SetActive(true); } @@ -262,7 +264,8 @@ if (itemAttrData.isCompare) { if(itemAttrData.packType != PackType.rptEquip) if(itemAttrData.packType != PackType.rptEquip && itemAttrData.packType != PackType.rptDogzEquip) { CreateFuncBtn(); } System/KnapSack/Logic/ItemTipsModel.cs
@@ -71,6 +71,8 @@ get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); } } DogzModel dogzModel { get { return ModelCenter.Instance.GetModel<DogzModel>(); } } public override void Init() { m_storeModel.RefreshTCBPlayerDataEvent += RefreshOfflinePluginTime; @@ -637,11 +639,7 @@ switch (attrData.winType) { case ItemWinType.equipWin: attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); }); break; case ItemWinType.wingsWin: attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); }); break; case ItemWinType.guardWin: attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, attrData.guid); }); break; @@ -688,6 +686,36 @@ } public void SetDogzItemBtn(ItemAttrData attrData) { if (attrData == null) return; if (attrData.itemConfig.CanSell == 1) { attrData.SetTipsFuncBtn(ItemWinBtnType.sell, (ItemWinBtnType, ItemAttrData) => { PackSendQuestMgr.Instance.SendSellQuest(ItemWinBtnType.sell, attrData); }); } switch (attrData.winType) { case ItemWinType.equipWin: attrData.SetTipsFuncBtn(ItemWinBtnType.putOn, (ItemWinBtnType, ItemAttrData) => { dogzModel.SendPutOnEquip(dogzModel.presentSelectDogz, attrData.index); }); break; } } public void SetDogzEquipBtn(ItemAttrData attrData) { if (attrData == null) return; attrData.SetTipsFuncBtn(ItemWinBtnType.putOff, (ItemWinBtnType, ItemAttrData) => { dogzModel.SendPutOffEquip(dogzModel.presentSelectDogz,dogzModel.GetDogzEquipPlaceByIndex(attrData.index)); }); attrData.SetTipsFuncBtn(ItemWinBtnType.strength, (ItemWinBtnType, ItemAttrData) => { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.StrengthFunc1); }); } /// <summary> /// 设置仓库弹框按钮 /// </summary> System/KnapSack/Logic/PackModelInterface.cs
@@ -588,7 +588,7 @@ SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem); if (singlePack == null) return false; int startLockIndex = singlePack.openGridCount - GetInitGridCount(PackType.rptItem); int startLockIndex = singlePack.openGridCount - playerPack.InitBagGridCnt; FuncConfigConfig _tagFuncModel = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("OpenBagItem"); int haveCount = playerPack.GetItemCountByID(PackType.rptItem,itemId); Equation.Instance.Clear(); @@ -779,22 +779,20 @@ #region 解锁格子 public int GetInitGridCount(PackType type) { FuncConfigConfig initGridCount = null; if (type == PackType.rptItem) initGridCount = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitBagCellCount"); else if (type == PackType.rptWarehouse) initGridCount = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitDepotCellCount"); return int.Parse(initGridCount.Numerical1); } public void OpenGrid(int chooseGridCount, PackType type) { SinglePackModel singlePack = playerPack.GetSinglePackModel(type); int openCount = chooseGridCount - singlePack.openGridCount; int index = chooseGridCount - GetInitGridCount(type); int index = 0; switch(type) { case PackType.rptItem: index = chooseGridCount - playerPack.InitBagGridCnt; break; case PackType.rptWarehouse: index = chooseGridCount - playerPack.InitDepotGridCnt; break; } itemTipsModel.SetExtendGirdModel(openCount,index, type); WindowCenter.Instance.Open<ExtendWin>(); } System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -680,7 +680,7 @@ if (useItemModel.itemId == 951) { int startLockIndex = singlePack.openGridCount - modelInterface.GetInitGridCount(PackType.rptItem); int startLockIndex = singlePack.openGridCount - playerPack.InitBagGridCnt; int chooseGridCnt = singlePack.openGridCount + GetExtendGridCnt(startLockIndex); modelInterface.OpenGrid(chooseGridCnt, PackType.rptItem); return; @@ -776,6 +776,11 @@ { extendCnt = 1; } int remianLock = playerPack.MaxBagGridCnt - playerPack.GetSinglePackModel(PackType.rptItem).openGridCount; if(extendCnt > remianLock) { extendCnt = remianLock; } return extendCnt; } } System/KnapSack/Logic/PlayerPackModels.cs
@@ -17,6 +17,11 @@ public Dictionary<int, Dictionary<int, int>> decomposeAttrDict = new Dictionary<int, Dictionary<int, int>>(); public static string StrengthAttrShift_RecordKey = "StrengthAttrShift"; public const string RecordKnapsackTitle = "RecordKnapsackTitle"; public int MaxBagGridCnt { get; private set; } public int InitBagGridCnt { get; private set; } public int MaxDepotGridCnt { get; private set; } public int InitDepotGridCnt { get; private set; } public override void Init() { List<DungeonOpenTimeConfig> dungeonlist = ConfigManager.Instance.GetAllValues<DungeonOpenTimeConfig>(); @@ -71,6 +76,11 @@ minDecomposeNum = int.Parse(equipDecompose.Numerical1); defaultUnSelectlist = ConfigParse.GetMultipleStr<int>(equipDecompose.Numerical2); InitDepotGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitDepotCellCount").Numerical1); InitBagGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("InitBagCellCount").Numerical1); MaxBagGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("MaxBagCellCount").Numerical1); MaxDepotGridCnt = int.Parse(ConfigManager.Instance.GetTemplate<FuncConfigConfig>("MaxDepotCellCount").Numerical1); } public void OnBeforePlayerDataInitialize() System/NewBieGuidance/NewBieCenter.cs
@@ -54,6 +54,7 @@ PlayerDeadModel playerDeadModel { get { return ModelCenter.Instance.GetModel<PlayerDeadModel>(); } } TeamModel teamModel { get { return ModelCenter.Instance.GetModel<TeamModel>(); } } DailyQuestModel dailyModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } PlayerPackModel packModel { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } public event Action guideStepChangeEvent; public event Action guideBeginEvent; @@ -340,7 +341,10 @@ case GuideTriggerType.RealmSitDown: return false; case GuideTriggerType.ItemCompound: return composeModel.IsComposeTicketByType(config.Condition); var itemId = composeModel.GetTicketId((int)ComposeFuncType.Ticket, config.Condition, 0); var singlepack = packModel.GetSinglePackModel(PackType.rptItem); var count = singlepack != null ? singlepack.GetItemCountByID(itemId) : 0; return composeModel.IsComposeTicketByType(config.Condition) && itemId != 0 && count == 0; case GuideTriggerType.HangUpResult: return true; case GuideTriggerType.BranchQuestCando: System/Realm/RealmUpWin.cs
@@ -40,7 +40,6 @@ [SerializeField] RealmProgressBehaviour m_RealmProgress; [SerializeField] UIEffect m_RealmDungeonSfx; [SerializeField] UIEffect m_GetRealmPointSfx; [SerializeField] Button m_FuncButton; [SerializeField] Text m_FuncButtonTxt; @@ -55,8 +54,14 @@ [SerializeField, Header("模型位置")] Vector3[] m_ModelPositions; [SerializeField, Header("当前境界位置")] Vector3[] m_RealmNowPositions; [SerializeField, Header("下一境界位置")] Vector3[] m_RealmNextwPositions; [SerializeField, Header("Boss位置")] Vector3[] m_BossPositions; [SerializeField, Header("Boss出现延长")] float m_DelayEnterTime = 1f; int cacheRealmPoint = 0; Coroutine cacheCoroutine = null; RuntimeAnimatorController cacheController = null; const string State_EnterHash = "Show"; const string State_IdleHash = "Idle"; RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } } @@ -75,7 +80,21 @@ PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterCloseEvent += WindowAfterCloseEvent; cacheRealmPoint = PlayerDatas.Instance.extersion.realmPoint; m_RawBoss.gameObject.SetActive(false); m_RawPlayer.gameObject.SetActive(false); Display(); } protected override void OnActived() { base.OnActived(); if (realmModel.realmDungeonState) { StopBoss(); m_RawBoss.gameObject.SetActive(false); m_RawPlayer.gameObject.SetActive(true); UI3DModelExhibition.Instance.BeginShowSitDownPlayer(m_RawPlayer, PlayerDatas.Instance.baseData.Job); } } protected override void OnAfterOpen() @@ -91,6 +110,7 @@ if (realmModel.realmDungeonState) { m_RealmDungeonSfx.Play(); StartCoroutine(Co_DisplayBossShow()); } realmModel.realmDungeonState = false; } @@ -99,9 +119,18 @@ { PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerDataRefreshInfoEvent; WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterCloseEvent; UI3DModelExhibition.Instance.StopShowNPC(); StopBoss(); UI3DModelExhibition.Instance.StopShowPlayer(); realmModel.realmDungeonState = false; if (cacheCoroutine != null) { StopCoroutine(cacheCoroutine); cacheCoroutine = null; } if (cacheController != null) { cacheController = null; } } protected override void OnAfterClose() @@ -116,6 +145,17 @@ } } #endregion IEnumerator Co_DisplayBossShow() { yield return WaitingForSecondConst.WaitMS800; ResetRunTimeController(); var config = ConfigManager.Instance.GetTemplate<RealmConfig>(PlayerDatas.Instance.baseData.realmLevel); m_RawPlayer.gameObject.SetActive(false); UI3DModelExhibition.Instance.StopShowPlayer(); yield return WaitingForSecondConst.GetWaitForSeconds(m_DelayEnterTime > 0 ? m_DelayEnterTime : 1f); StartBoss(config, true); } private void PlayerDataRefreshInfoEvent(PlayerDataRefresh refreshType) { @@ -135,10 +175,6 @@ DisplayModel(); DisplayButton(); if (PlayerDatas.Instance.extersion.realmPoint >= cacheRealmPoint) { DisplayGetRealmPointSfx(); } cacheRealmPoint = PlayerDatas.Instance.extersion.realmPoint; } } @@ -236,16 +272,58 @@ if (realmModel.IsRealmHighest || _realmPoint < config.NeedPoint) { m_RawPlayer.gameObject.SetActive(true); StopBoss(); m_RawBoss.gameObject.SetActive(false); UI3DModelExhibition.Instance.StopShowNPC(); UI3DModelExhibition.Instance.BeginShowSitDownPlayer(m_RawPlayer, PlayerDatas.Instance.baseData.Job); } else if (_realmPoint >= config.NeedGood) { m_RawBoss.gameObject.SetActive(true); m_RawPlayer.gameObject.SetActive(false); ResetRunTimeController(); UI3DModelExhibition.Instance.StopShowPlayer(); StartBoss(config); } } private void StopBoss() { ResetRunTimeController(); UI3DModelExhibition.Instance.StopShowNPC(); } private void ResetRunTimeController() { var npcModel = UI3DModelExhibition.Instance.NpcModelPet; if (npcModel != null) { var animator = npcModel.GetComponentInChildren<Animator>(); if (animator != null && cacheController != null) { animator.runtimeAnimatorController = cacheController; } } } private void StartBoss(RealmConfig config, bool act = false) { StopBoss(); m_RawBoss.gameObject.SetActive(true); UI3DModelExhibition.Instance.StopShowPlayer(); UI3DModelExhibition.Instance.BeginShowNPC(config.BossID, config.IsBigRealm == 1 ? Vector3.zero : direction, m_RawBoss, false); var npcConfig = ConfigManager.Instance.GetTemplate<NPCConfig>(config.BossID); var npcModel = UI3DModelExhibition.Instance.NpcModelPet; m_RawBoss.transform.localPosition = config.IsBigRealm == 1 ? m_BossPositions[1] : m_BossPositions[0]; if (npcModel != null) { var animator = npcModel.GetComponentInChildren<Animator>(); if (animator != null) { cacheController = animator.runtimeAnimatorController; var runtimeController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerRealmSuffix, npcConfig.MODE); animator.runtimeAnimatorController = runtimeController; animator.Play(act ? State_EnterHash : State_IdleHash, 0); } } } @@ -271,14 +349,6 @@ else { m_FuncButtonTxt.text = Language.Get("RealmWin_Bewrite_1"); } } void DisplayGetRealmPointSfx() { if (m_GetRealmPointSfx != null) { m_GetRealmPointSfx.Play(); } } UI/Common/SortTable.cs