//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, September 07, 2018 //-------------------------------------------------------- using Snxxz.UI; using System; using System.Collections; using System.Collections.Generic; using System.Text.RegularExpressions; using TableConfig; using UnityEngine; // 关于神兽强化 public class GodBeastModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public Dictionary Absorption_Dic = new Dictionary();//获取选择的物品 public event Action AbsorbEvent; public int ItemInde = 0;//物品下标 public ItemModel Crystal_ItemModel; DogzModel Dogz_model; DogzModel dogz_model { get { return Dogz_model ?? (Dogz_model = ModelCenter.Instance.GetModel()); } } PlayerPackModel _playerPack; PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } public override void Init() { } public void OnBeforePlayerDataInitialize() { } public void OnPlayerLoginOk() { } public override void UnInit() { } public void AbsorbEventUpdate() { if (AbsorbEvent != null) { AbsorbEvent(); } } private Dictionary AllEnhancedPropertiesDic = new Dictionary();//key:为属性编号,value是属性值 public Dictionary AllEnhancedProperties(int GodBeastNumber)//获取整只神兽强化属性 { AllEnhancedPropertiesDic.Clear(); List itemModel = dogz_model.GetDogzEquips(GodBeastNumber); if (itemModel == null) { return AllEnhancedPropertiesDic; } for (int i = 0; i < itemModel.Count; i++) { ItemModel item = itemModel[i]; var IudetDogzEquipPlus = item.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus); if (IudetDogzEquipPlus != null) { int lv = IudetDogzEquipPlus[0]; if (lv > 0) { var DogzEquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(item.EquipPlace, lv); int[] AttType = ConfigParse.GetMultipleStr(DogzEquipConfig.attType); int[] AttValue = ConfigParse.GetMultipleStr(DogzEquipConfig.attValue); for (int j = 0; j < AttType.Length; j++) { if (AllEnhancedPropertiesDic.ContainsKey(AttType[j])) { var value = AllEnhancedPropertiesDic[(AttType[j])]; AllEnhancedPropertiesDic[(AttType[j])] = value + AttValue[j]; } else { AllEnhancedPropertiesDic.Add(AttType[j], AttValue[j]); } } } } } return AllEnhancedPropertiesDic; } private Dictionary SiteEnhancementAttributeDic = new Dictionary();//key:为属性编号,value是属性值 public Dictionary SiteEnhancementAttribute(PackType PackTypeGodBeast, int GodBeastIndex)//获取某只神兽身上某个装备属性值 { SiteEnhancementAttributeDic.Clear(); ItemModel item = playerPack.GetItemModelByIndex(PackTypeGodBeast, GodBeastIndex); if (item == null) { return SiteEnhancementAttributeDic; } var IudetDogzEquipPlus = item.GetUseDataModel((int)ItemUseDataKey.Def_IudetDogzEquipPlus); if (IudetDogzEquipPlus != null && IudetDogzEquipPlus[0] > 0) { var DogzEquipConfig = DogzEquipPlusConfig.GetEquipplaceAndLevel(item.EquipPlace, IudetDogzEquipPlus[0]); int[] AttType = ConfigParse.GetMultipleStr(DogzEquipConfig.attType); int[] AttValue = ConfigParse.GetMultipleStr(DogzEquipConfig.attValue); for (int j = 0; j < AttType.Length; j++) { if (SiteEnhancementAttributeDic.ContainsKey(AttType[j])) { SiteEnhancementAttributeDic[(AttType[j])] = AttValue[j]; } else { SiteEnhancementAttributeDic.Add(AttType[j], AttValue[j]); } } } return SiteEnhancementAttributeDic; } }