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#
		
	
| 
											2 years ago
										 | 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; | ||
|  |         } | ||
|  |     } | ||
|  | } |