using UnityEngine; using UnityEngine.UI; using System; using System.Xml; using System.Collections; using System.Collections.Generic; public enum Current { AD, Free, Coin, Cash, Other, Diamond, } public enum SkillTab { Elf, Null, Store, Magic, Garden, } public enum SkillType { Skill, Pack, Ability, BigSkill, } public enum SkillStatus { Buy, Use, Lock, Cool, UnLock, Upgrade, } public abstract class SkillRoot { #region 变量 #region 配置 public Sprite Icon { get { return ManaReso.LoadSprite(Icon_, Folder.UI); } } public string Desc { get { return Language.GetStr("SkillDesc", ID); } } public virtual string ID { get { throw new Exception(); } } public virtual string Name { get { if (Level == 0) { return Language.GetStr("SkillName", ID); } else { return Language.GetStr("SkillName", ID) + Level; } } } public int ID_; public string Icon_; public int ItemIndex; #endregion public virtual int Level { get { return Level_; } set { Level_ = value; if (SkillTab == SkillTab.Null) { return; } if (Level == 0) { ManaLan.Add(ItemTit, new LanStr("SkillName", ID)); } else { ManaLan.Add(ItemTit, new LanStr("SkillName", ID), Level); } } } public int Level_; public Text ItemTit; public Text ItemLab; public Text ItemBtnLab; public Image ItemIcon; public Button ItemBtn; public SkillTab SkillTab; public SkillType SkillType; public Transform SkillItem; public virtual SkillStatus ItemStatus { get { return ItemStatus_; } set { ItemStatus_ = value; } } public SkillStatus ItemStatus_; #endregion public static int Sort(SkillRoot skillRootA, SkillRoot skillRootB) { if (skillRootA.ItemIndex == skillRootB.ItemIndex) { return 0; } else if (skillRootA.ItemIndex > skillRootB.ItemIndex) { return 1; } else if (skillRootA.ItemIndex < skillRootB.ItemIndex) { return -1; } else { throw new Exception(); } } public virtual void Reactive() { } public virtual void RegistValue(float elapse, List> useList, XmlAttributeCollection attribute) { } public virtual void RegistReference() { if (SkillTab == SkillTab.Null) { return; } Dictionary childDic = new Dictionary(); Auxiliary.CompileDic(SkillItem, childDic); ItemTit = childDic["Tit"].GetComponent(); ItemBtn = childDic["Btn"].GetComponent