using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FairyLeagueDungeonResourceBehaviour : MonoBehaviour { [SerializeField] List campRes; FairyLeagueModel m_Model; FairyLeagueModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } KingFairyModel m_KingFairyModel; KingFairyModel kingFairyModel { get { return m_KingFairyModel ?? (m_KingFairyModel = ModelCenter.Instance.GetModel()); } } private void OnEnable() { model.UpdateFairyWarHelpEvent += UpdateMissionEvent; UpdateMissionEvent(); } private void UpdateMissionEvent() { var _help = model.fairyLeagueHelp; if (_help.fairyWarHelpInfos == null) { return; } var _camp = PlayerDatas.Instance.baseData.faction; for (int i = 0; i < model.fairyLeagueHelp.fairyWarHelpInfos.Length; i++) { var _helpInfo = _help.fairyWarHelpInfos[i]; var _campRes = campRes.Find((x) => { return (int)x.campType == i + 1; }); if(_camp == (int)_campRes.campType&& _campRes.m_ContainerRect.GetSiblingIndex() != 0) { _campRes.m_ContainerRect.SetAsFirstSibling(); } _campRes.m_ResourceTxt.text = StringUtility.Contact(_camp == (int)_campRes.campType ? Language.Get("FamilyMatchOurResources") : Language.Get("FamilyMatchEnimyResources"), (int)_helpInfo.ResPoint, "/", model.fairyWarResUpperLimit); _campRes.m_MemberCntTxt.text = StringUtility.Contact(Language.Get("FamilyMatchNumOfPeople"), _helpInfo.MemCount); var _crystalDict = _help.fairyWarCrystalDict; _campRes.m_CrystalCntTxt.text = StringUtility.Contact(Language.Get("FamilyMatchResources"), _crystalDict.ContainsKey(i + 1) ? _crystalDict[i + 1].Length : 0); float _propertyUpper = 0; if (_help.fairyWarEnter.WinCount != null && _help.fairyWarEnter.WinCount[1 - i] != 0 && (model.fairyLeagueSession == 1 || model.BattleChampion())) { var _buffLv = kingFairyModel.GetWinStreakBuffLv(_help.fairyWarEnter.WinCount[1 - i]); SkillConfig _multipleWinBuff = SkillConfig.Get(kingFairyModel.multipleWinBuffTypeId + _buffLv - 1); _propertyUpper += _multipleWinBuff.EffectValue11; } if (_helpInfo.BuffAttrLV != 0) { _propertyUpper += model.GetRandomAttrBuff(_helpInfo.BuffAttrLV).EffectValue11; } _campRes.m_AttrPromoteTxt.text = Language.Get("FamilyMatchAttUp", _propertyUpper / 100); _campRes.m_SpeedTxt.gameObject.SetActive(_helpInfo.BuffResPointPer > 0); if (_helpInfo.BuffResPointPer > 0) { _campRes.m_SpeedTxt.text = Language.Get("FamilyMatchBuffAccelerate", _helpInfo.BuffResPointPer / 100); } _campRes.m_BuffCntTxt.text = StringUtility.Contact(Language.Get("FamilyMatchBuffResources"), _helpInfo.BuffResPoint); } } private void OnDisable() { model.UpdateFairyWarHelpEvent -= UpdateMissionEvent; } [Serializable] public class CampResource { public FairyCampType campType; public RectTransform m_ContainerRect; public Text m_SpeedTxt; public Text m_ResourceTxt; public Text m_MemberCntTxt; public Text m_CrystalCntTxt; public Text m_BuffCntTxt; public Text m_AttrPromoteTxt; } } }