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;
|
|
}
|
|
}
|
|
} |