using UnityEngine; using System; using System.Collections.Generic; namespace vnxbqy.UI { public class KingTreasureShowModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk { KingTreasureModel kingTreasureModel { get { return ModelCenter.Instance.GetModel(); } } public string effectDes { get; private set;} public KingTreasureItemConfig kingTreasureItemConfig { get; private set; } public int treasureId { get; private set; } public string treasureSource { get; private set;} public override void Init() { } public void OnBeforePlayerDataInitialize() { } public void OnPlayerLoginOk() { } public override void UnInit() { } public void SetInitData(int itemId) { ItemConfig itemConfig = ItemConfig.Get(itemId); kingTreasureItemConfig = KingTreasureItemConfig.Get(itemId); if (kingTreasureItemConfig == null || itemConfig == null) return; this.treasureId = itemConfig.EffectValueA1; this.treasureSource = kingTreasureItemConfig.description; effectDes = string.Empty; KingTreasureModel.Division division; bool isDivision = kingTreasureModel.TryGetDivision(treasureId,kingTreasureItemConfig.rewardLevel, out division); if(isDivision) { SetEffectDes(division.basePropertys); SetEffectDes(division.specialPropertys); WindowCenter.Instance.Open(); } } private void SetEffectDes(Dictionary attrDict) { if (attrDict == null) return; foreach (var key in attrDict.Keys) { var attrValue = attrDict[key]; var propertyConfig = PlayerPropertyConfig.Get(key); if (propertyConfig != null) { string attrDes = StringUtility.Contact(propertyConfig.Name, "+", PlayerPropertyConfig.GetValueDescription(key, attrValue)); switch(propertyConfig.type) { case 2: attrDes = StringUtility.Contact("", attrDes, ""); break; default: attrDes = StringUtility.Contact("", attrDes, ""); break; } if (string.IsNullOrEmpty(effectDes)) { effectDes = attrDes; } else { effectDes = StringUtility.Contact(effectDes, "\n", attrDes); } } } } } }