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 class SkillItemLabel { public static string Button = "Button"; public static string ArrowPosition = "ArrowPosition"; public static string ArrowDestination = "ArrowDestination"; public static string Title = "Title"; public static string Description = "Description"; public static string LabelText = "LabelText"; public static string SkillIcon = "SkillIcon"; public static string LabelIcon = "LabelIcon"; public static string ButtonTitle = "ButtonTitle"; } public abstract class SkillRoot { #region Config public static string SkillFullIDPrefix = "Skill"; public static string AbilityFullIDPrefix = "Ability"; public static string PackFullIDPrefix = "Pack"; #region 配置 public Sprite Icon { get { return ResourceManager.LoadSprite(icon, Folder.UI); } } public string icon; public string Desc { get { return Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.SkillDesc, FullID)); } } public virtual string FullID { get { throw new Exception();} } public int ID; public virtual string Name { get { if (Level == 0) { return Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.SkillName, FullID)); } else { return Language.GetStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.SkillName, FullID)) + Level; } } } public int ItemIndex; #endregion public virtual int Level { get { return level; } set { level = value; if (SkillTab == SkillTab.Null) { return; } if (Level == 0) { LanguageManager.Add(TitleText, new MulLanStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.SkillName, FullID))); } else { LanguageManager.Add(TitleText, new MulLanStr(LanguageLabel.CombineLanguageLabel(LanguageLabel.SkillName, FullID)), Level); } } } public int level; public Text TitleText; public Text DescriptionText; public Text LabelText; public Text ButtonTitle; public Image SkillIcon; public Image LabelIcon; public Button button; 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 Init(bool firstInit, float elapse, List> useList, XmlAttributeCollection attribute) { } public virtual void RegistReference() { if (SkillTab == SkillTab.Null) { return; } Dictionary childDic = new Dictionary(); Auxiliary.CompileDic(SkillItem, childDic); TitleText = childDic[SkillItemLabel.Title].GetComponent(); button = childDic[SkillItemLabel.Button].GetComponent