You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			213 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			213 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			C#
		
	
| using Game.Common;
 | |
| 
 | |
| namespace Game
 | |
| {
 | |
|     public class PageSkillGm : UIPageBase<ViewSkillGM>
 | |
|     {
 | |
|         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;
 | |
|         }
 | |
|     }
 | |
| } |