using Game.Common; namespace Game { public class PageSkillGm : UIPageBase { private string _mSkillNow = ""; private string _mBlessNow = ""; public PageSkillGm() { } protected override void OnCreate() { CreateUI(true); InitSkill(); InitBless(); } protected override void OnDestroy() { } protected override void OnOpen() { RefreshSkillList(); RefreshSkillDesc(); } protected override void OnClose() { } public override void Update() { } protected override void OnInput(PPlayerInput context) { if (context.Action == EKeyActionType.Press) { if (context.Key == EFunctionKey.Test1 || context.Key == EFunctionKey.Menu) { UIManager.Instance.Close(); } } } private void InitSkill() { var master = Util.GetMaster(); var skillCfgDatas = Util.GetSkillMasterConfigDataAll(); foreach (var skillCfgData in skillCfgDatas) { var skillCfg = skillCfgData.Template; var skillCfgSkill = skillCfg.Skill; var skillId = skillCfgData.TechnicalName; var skillBtn = View.m_skillList.AddItemFromPool() as ViewSkillButton; skillBtn.m_SkillIDText.text = skillCfgData.TechnicalName; skillBtn.m_SkillNameText.text = skillCfgSkill.Name; skillBtn.onClick.Clear(); skillBtn.onClick.Add(() => { if (!Util.HasSkill(master, skillId)) Util.AddSkill(master, skillId); else Util.RemoveSkill(master, skillId); RefreshSkillList(); }); skillBtn.onRollOver.Clear(); skillBtn.onRollOver.Add(() => { _mSkillNow = skillId; RefreshSkillDesc(); }); skillBtn.onRollOut.Clear(); skillBtn.onRollOut.Add(() => { _mSkillNow = ""; RefreshSkillDesc(); }); } View.m_ClearBtn.onClick.Clear(); View.m_ClearBtn.onClick.Add(() => { Util.ClearCombo(master); RefreshSkillList(); }); RefreshSkillList(); } private void RefreshSkillList() { var master = Util.GetMaster(); var skillNowText = "当前技能:"; foreach (var item in View.m_skillList.GetChildren()) { var skillBtn = item as ViewSkillButton; var c1 = skillBtn.GetController("c1"); var skillID = skillBtn.m_SkillIDText.text; var hasSkill = Util.HasSkill(master, skillID); c1.selectedIndex = hasSkill ? 1 : 0; if (hasSkill) { skillNowText += " " + skillID; } } View.m_skillNowText.text = skillNowText; } private void RefreshSkillDesc() { var describeNew = ""; if (!string.IsNullOrEmpty(_mSkillNow)) { var skillCfgData = Util.GetSkillMasterConfigData(_mSkillNow); var skillCfg = skillCfgData.Template; var skillCfgSkill = skillCfg.Skill; var skillCfgCombo = skillCfg.SkillCombo; if (skillCfg != null) { describeNew += $"[{skillCfgData.TechnicalName}]\n"; describeNew += $"{skillCfgSkill.Name}\n\n"; describeNew += $"姿态: {skillCfgCombo.StanceStart} -> {skillCfgCombo.StanceEnd}\n"; describeNew += $" {(EComboStance)(skillCfgCombo.StanceStart)} -> {(EComboStance)(skillCfgCombo.StanceEnd)}\n"; var asset = TimelineManager.Instance.EnsureGetSkillTimeline(skillCfgSkill.Timeline); describeNew += $"时间轴: {skillCfgSkill.Timeline} ({asset != null})\n"; } } View.m_SkillDescText.text = describeNew; } private void InitBless() { var master = Util.GetMaster(); var blessCfgList = Util.GetBlessConfigDataAll(); foreach (var blessCfgData in blessCfgList) { var blessCfg = blessCfgData.Template; var blessCfgSkill = blessCfg.Bless; var blessId = blessCfgData.TechnicalName; var blessBtn = View.m_blessList.AddItemFromPool() as ViewSkillButton; blessBtn.m_SkillIDText.text = blessCfgData.TechnicalName; blessBtn.m_SkillNameText.text = blessCfgSkill.Name; blessBtn.m_SkillIcon.texture = Texture(blessCfgSkill.Icon); blessBtn.onClick.Clear(); blessBtn.onClick.Add(() => { if (!Util.HasBless(master, blessId)) Util.AddBless(master, blessId); else Util.RemoveBless(master, blessId); RefreshBlessList(); }); blessBtn.onRollOver.Clear(); blessBtn.onRollOver.Add(() => { _mBlessNow = blessId; RefreshBlessDesc(); }); blessBtn.onRollOut.Clear(); blessBtn.onRollOut.Add(() => { _mBlessNow = ""; RefreshBlessDesc(); }); } View.m_ClearBlessBtn.onClick.Clear(); View.m_ClearBlessBtn.onClick.Add(() => { Util.RemoveAllBless(master); RefreshBlessList(); }); RefreshBlessList(); } private void RefreshBlessList() { var master = Util.GetMaster(); var blessSet = master.bag.AllBless; var blessNowText = "当前祝福:"; foreach (var item in View.m_blessList.GetChildren()) { var blessBtn = item as ViewSkillButton; var c1 = blessBtn.GetController("c1"); var blessID = blessBtn.m_SkillIDText.text; var hasBless = blessSet.ContainsKey(blessID); c1.selectedIndex = hasBless ? 1 : 0; if (hasBless) { blessNowText += " " + blessID; } } View.m_blessNowText.text = blessNowText; } private void RefreshBlessDesc() { var describeNew = ""; if (!string.IsNullOrEmpty(_mBlessNow)) { var blessCfg = Util.GetBlessConfigData(_mBlessNow); if (blessCfg != null) { describeNew += $"[{blessCfg.TechnicalName}]\n"; describeNew += $"{blessCfg.Template.Bless.Name}\n\n"; } } View.m_SkillDescText.text = describeNew; } } }