|
@@ -33,7 +33,7 @@ namespace Fort23.Mono
|
|
|
/// </summary>
|
|
|
private int infoType = 1;
|
|
|
|
|
|
- SkillWidget currentSelectedSkill;
|
|
|
+ SkillInfo currentSelectedSkill;
|
|
|
|
|
|
public static async CTask<SkillSelectPanel> OpenSkillSelectPanel()
|
|
|
{
|
|
@@ -83,6 +83,8 @@ namespace Fort23.Mono
|
|
|
currenRoadSkilId = PlayerManager.Instance.myHero.TaoismSkillId;
|
|
|
UpdateSkillWidget();
|
|
|
UpdateRoad();
|
|
|
+
|
|
|
+ CloseSelect();
|
|
|
return base.AsyncInit(uiData);
|
|
|
}
|
|
|
|
|
@@ -160,13 +162,14 @@ namespace Fort23.Mono
|
|
|
|
|
|
if (!IsPassiveGongFaChange(skills[i].skillConfig))
|
|
|
continue;
|
|
|
- allKongSkill[indexList[i]].SetSKill(skills[i]);
|
|
|
- allUseSkill[indexList[i]] = skills[i];
|
|
|
+ allKongSkill[indexList[i][0]].SetSKill(skills[i]);
|
|
|
+ allUseSkill[indexList[i][0]] = skills[i];
|
|
|
}
|
|
|
|
|
|
isAlter = true;
|
|
|
|
|
|
UpdateSkillWidget();
|
|
|
+ BaoChun();
|
|
|
});
|
|
|
|
|
|
Btn_ChangeOk.onClick.AddListener(() =>
|
|
@@ -188,7 +191,7 @@ namespace Fort23.Mono
|
|
|
{
|
|
|
if (currentSelectedSkill != null)
|
|
|
{
|
|
|
- GongFaUpgradePanel gongFaUpgradePanel = await GongFaUpgradePanel.Open(currentSelectedSkill.skillConfigId);
|
|
|
+ GongFaUpgradePanel gongFaUpgradePanel = await GongFaUpgradePanel.Open(currentSelectedSkill);
|
|
|
await gongFaUpgradePanel.UIClosed();
|
|
|
Sort(type1, type2);
|
|
|
}
|
|
@@ -327,13 +330,14 @@ namespace Fort23.Mono
|
|
|
UpdateSkillWidget();
|
|
|
CloseSelect();
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
Sv.onValueChanged.AddListener((s) =>
|
|
|
{
|
|
|
if (currentSelectedSkill == null)
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
Btn_Info.transform.SetAsLastSibling();
|
|
|
});
|
|
|
}
|
|
@@ -352,6 +356,21 @@ namespace Fort23.Mono
|
|
|
//
|
|
|
}
|
|
|
|
|
|
+ private void BaoChun()
|
|
|
+ {
|
|
|
+ // ChangeInfoType(1);
|
|
|
+ // if (isAlter)
|
|
|
+ {
|
|
|
+ PlayerManager.Instance.GongFaControl.SaveUseSkill(allUseSkill);
|
|
|
+
|
|
|
+ PlayerManager.Instance.GongFaControl.SetTaoismSkillIndex(currenRoadSkilId);
|
|
|
+ PlayerManager.Instance.myHero.heroData.TaoismSkillId = currenRoadSkilId;
|
|
|
+ AccountFileInfo.Instance.SavePlayerData();
|
|
|
+ }
|
|
|
+
|
|
|
+ isAlter = false;
|
|
|
+ }
|
|
|
+
|
|
|
private void ChangeInfoType(int type)
|
|
|
{
|
|
|
if (type == 1)
|
|
@@ -374,7 +393,14 @@ namespace Fort23.Mono
|
|
|
|
|
|
List<SkillInfo> showSkillInfo = new List<SkillInfo>();
|
|
|
|
|
|
- List<int> indexList = new List<int>() { 0, 6, 8, 4, 2 };
|
|
|
+ List<List<int>> indexList = new List<List<int>>()
|
|
|
+ {
|
|
|
+ new List<int>() { 0, 1, 9 },
|
|
|
+ new List<int>() { 6, 7, 5 },
|
|
|
+ new List<int>() { 8, 9, 7 },
|
|
|
+ new List<int>() { 4, 5, 3 },
|
|
|
+ new List<int>() { 2, 3, 1 },
|
|
|
+ };
|
|
|
|
|
|
private void Sort(int type1, int type2)
|
|
|
{
|
|
@@ -503,15 +529,25 @@ namespace Fort23.Mono
|
|
|
|
|
|
private SkillKongWidget dianjiSkillKongWidget;
|
|
|
|
|
|
- private void OnClickSkillKongWidget(ItemWidgetBasic obj)
|
|
|
+ private async void OnClickSkillKongWidget(ItemWidgetBasic obj)
|
|
|
{
|
|
|
+ SkillKongWidget skillKongWidget = obj as SkillKongWidget;
|
|
|
if (infoType == 1)
|
|
|
+ {
|
|
|
+ if (skillKongWidget.SkillInfo == null)
|
|
|
+ return;
|
|
|
+
|
|
|
+ GongFaUpgradePanel gongFaUpgradePanel = await GongFaUpgradePanel.Open(skillKongWidget.SkillInfo);
|
|
|
+ await gongFaUpgradePanel.UIClosed();
|
|
|
+ Sort(type1, type2);
|
|
|
return;
|
|
|
+ }
|
|
|
+
|
|
|
Btn_Info.transform.SetParent(transform);
|
|
|
Btn_Info.gameObject.SetActive(false);
|
|
|
- currentSelectedSkill = null;
|
|
|
+ currentSelectedSkill = skillKongWidget.SkillInfo;
|
|
|
|
|
|
- SkillKongWidget skillKongWidget = obj as SkillKongWidget;
|
|
|
+ // SkillKongWidget skillKongWidget = obj as SkillKongWidget;
|
|
|
|
|
|
if (skillKongWidget.SkillInfo == null && dianjiSkillKongWidget == null && selectSkillConfig == null)
|
|
|
{
|
|
@@ -548,30 +584,64 @@ namespace Fort23.Mono
|
|
|
skillKongWidget.SetSKill(selectSkillConfig);
|
|
|
allUseSkill[skillKongWidget.index] = selectSkillConfig;
|
|
|
CloseSelect();
|
|
|
+ BaoChun();
|
|
|
}
|
|
|
//替换功法
|
|
|
else if (skillKongWidget.SkillInfo != null && dianjiSkillKongWidget == null && selectSkillConfig != null)
|
|
|
{
|
|
|
- if (allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType == 1)
|
|
|
+ // if (allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType == 1)
|
|
|
+ // {
|
|
|
+ // if (!IsMainGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 1)
|
|
|
+ // {
|
|
|
+ // TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
|
|
|
+ // CloseSelect();
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // if (allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType == 2)
|
|
|
+ // {
|
|
|
+ // if (!IsPassiveGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 2)
|
|
|
+ // {
|
|
|
+ // TipMessagePanel.OpenTipMessagePanel("被动功法已经上满");
|
|
|
+ // CloseSelect();
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ if (!IsPassiveGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 2)
|
|
|
{
|
|
|
- if (!IsMainGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 1)
|
|
|
- {
|
|
|
- TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
|
|
|
- CloseSelect();
|
|
|
- return;
|
|
|
- }
|
|
|
+ TipMessagePanel.OpenTipMessagePanel("被动功法已经上满");
|
|
|
+ CloseSelect();
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
- if (allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType == 2)
|
|
|
+ if (!IsMainGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 1)
|
|
|
{
|
|
|
- if (!IsPassiveGongFaChange(selectSkillConfig.skillConfig) && allUseSkill[skillKongWidget.SkillInfo.index].skillConfig.SkillType != 2)
|
|
|
- {
|
|
|
- TipMessagePanel.OpenTipMessagePanel("被动功法已经上满");
|
|
|
- CloseSelect();
|
|
|
- return;
|
|
|
- }
|
|
|
+ TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
|
|
|
+ CloseSelect();
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
+ // if (selectSkillConfig.skillConfig.SkillType == 1)
|
|
|
+ // {
|
|
|
+ // if (!IsMainGongFaChange(selectSkillConfig.skillConfig))
|
|
|
+ // {
|
|
|
+ // TipMessagePanel.OpenTipMessagePanel("主动功法已经上满");
|
|
|
+ // CloseSelect();
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // if (selectSkillConfig.skillConfig.SkillType == 2)
|
|
|
+ // {
|
|
|
+ // if (!IsPassiveGongFaChange(selectSkillConfig.skillConfig))
|
|
|
+ // {
|
|
|
+ // TipMessagePanel.OpenTipMessagePanel("被动功法已经上满");
|
|
|
+ // CloseSelect();
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
|
|
|
isAlter = true;
|
|
|
allUseSkill[skillKongWidget.SkillInfo.index] = null;
|
|
@@ -579,6 +649,7 @@ namespace Fort23.Mono
|
|
|
allUseSkill[skillKongWidget.index] = selectSkillConfig;
|
|
|
skillKongWidget.SetSKill(selectSkillConfig);
|
|
|
CloseSelect();
|
|
|
+ BaoChun();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -595,7 +666,10 @@ namespace Fort23.Mono
|
|
|
dianjiSkillKongWidget = skillKongWidget;
|
|
|
Btn_RemoveGongFa.transform.position = dianjiSkillKongWidget.RemovePos.position;
|
|
|
Btn_RemoveGongFa.gameObject.SetActive(true);
|
|
|
- SelectSkill(skillKongWidget.SkillInfo, false);
|
|
|
+ Btn_Info.transform.position = dianjiSkillKongWidget.InfoPos.position;
|
|
|
+ Btn_Info.gameObject.SetActive(true);
|
|
|
+ SelectSkill(skillKongWidget.SkillInfo, false, false);
|
|
|
+ // BaoChun();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -615,6 +689,7 @@ namespace Fort23.Mono
|
|
|
skillKongWidget.SetSKill(selectSkillConfig);
|
|
|
allUseSkill[skillKongWidget.index] = selectSkillConfig;
|
|
|
CloseSelect();
|
|
|
+ BaoChun();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -622,24 +697,106 @@ namespace Fort23.Mono
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void SelectSkill(SkillInfo skillConfig, bool max)
|
|
|
+ public void SelectSkill(SkillInfo skillConfig, bool max, bool isClick)
|
|
|
{
|
|
|
- selectSkillConfig = skillConfig;
|
|
|
- _isSelectSkill = true;
|
|
|
for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
{
|
|
|
allKongSkill[i].SelectState(false);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
if (!max)
|
|
|
{
|
|
|
- for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
+ if (isClick)
|
|
|
+ {
|
|
|
+ int index = 0;
|
|
|
+
|
|
|
+ //金
|
|
|
+ if (skillConfig.skillConfig.attribute == 1)
|
|
|
+ {
|
|
|
+ index = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ //木
|
|
|
+ if (skillConfig.skillConfig.attribute == 2)
|
|
|
+ {
|
|
|
+ index = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ //水
|
|
|
+ if (skillConfig.skillConfig.attribute == 4)
|
|
|
+ {
|
|
|
+ index = 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ //火
|
|
|
+ if (skillConfig.skillConfig.attribute == 8)
|
|
|
+ {
|
|
|
+ index = 3;
|
|
|
+ }
|
|
|
+
|
|
|
+ //土
|
|
|
+ if (skillConfig.skillConfig.attribute == 16)
|
|
|
+ {
|
|
|
+ index = 4;
|
|
|
+ }
|
|
|
+
|
|
|
+ bool isSuccess = false;
|
|
|
+
|
|
|
+ //先上对应位置
|
|
|
+ foreach (var i in indexList[index])
|
|
|
+ {
|
|
|
+ if (allKongSkill[i].SkillInfo == null)
|
|
|
+ {
|
|
|
+ allKongSkill[i].SetSKill(skillConfig);
|
|
|
+ allUseSkill[i] = skillConfig;
|
|
|
+ isSuccess = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //对应位置已经上了 ,就随便找给位置上
|
|
|
+ if (!isSuccess)
|
|
|
+ {
|
|
|
+ for (var i = 0; i < allKongSkill.Count; i++)
|
|
|
+ {
|
|
|
+ if (allKongSkill[i].SkillInfo == null)
|
|
|
+ {
|
|
|
+ allKongSkill[i].SetSKill(skillConfig);
|
|
|
+ allUseSkill[i] = skillConfig;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isSuccess)
|
|
|
+ {
|
|
|
+ BaoChun();
|
|
|
+ ChangeFuZhuYingXiang();
|
|
|
+ UpdateSkillWidget();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
+ {
|
|
|
+ allKongSkill[i].SelectState(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
- allKongSkill[i].SelectState(true);
|
|
|
+ selectSkillConfig = skillConfig;
|
|
|
+ _isSelectSkill = true;
|
|
|
+ for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
+ {
|
|
|
+ allKongSkill[i].SelectState(true);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ selectSkillConfig = skillConfig;
|
|
|
+ _isSelectSkill = true;
|
|
|
for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
{
|
|
|
if (allKongSkill[i].SkillInfo != null)
|
|
@@ -650,6 +807,8 @@ namespace Fort23.Mono
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ List<int> yingxiang = new List<int>();
|
|
|
+
|
|
|
private void CloseSelect()
|
|
|
{
|
|
|
_isSelectSkill = false;
|
|
@@ -661,12 +820,68 @@ namespace Fort23.Mono
|
|
|
Btn_Info.gameObject.SetActive(false);
|
|
|
currentSelectedSkill = null;
|
|
|
|
|
|
+
|
|
|
for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
{
|
|
|
allKongSkill[i].SelectState(false);
|
|
|
}
|
|
|
+
|
|
|
+ ChangeFuZhuYingXiang();
|
|
|
}
|
|
|
|
|
|
+ private void ChangeFuZhuYingXiang()
|
|
|
+ {
|
|
|
+ yingxiang.Clear();
|
|
|
+ for (int i = 0; i < allKongSkill.Count; i++)
|
|
|
+ {
|
|
|
+ allKongSkill[i].Icon_YingXiang.gameObject.SetActive(false);
|
|
|
+
|
|
|
+ if (allKongSkill[i].SkillInfo != null && allKongSkill[i].SkillInfo.skillConfig.SkillType == 2 && allKongSkill[i].SkillInfo.skillConfig.PromoteLanPara_1 != null)
|
|
|
+ {
|
|
|
+ foreach (var f in allKongSkill[i].SkillInfo.skillConfig.PromoteLanPara_1)
|
|
|
+ {
|
|
|
+ if (f != 0)
|
|
|
+ {
|
|
|
+ var nubs = GetNumbers(i, f);
|
|
|
+ foreach (var nub in nubs)
|
|
|
+ {
|
|
|
+ if (!yingxiang.Contains(nub))
|
|
|
+ {
|
|
|
+ yingxiang.Add(nub);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (var i in yingxiang)
|
|
|
+ {
|
|
|
+ allKongSkill[i].Icon_YingXiang.gameObject.SetActive(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<int> GetNumbers(int start, float offset)
|
|
|
+ {
|
|
|
+ List<int> indexs = new List<int>();
|
|
|
+
|
|
|
+
|
|
|
+ for (int i = 0; i < Math.Abs(offset); i++)
|
|
|
+ {
|
|
|
+ if (offset >= 0)
|
|
|
+ {
|
|
|
+ indexs.Add(SafeMod(start + i + 1));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ indexs.Add(SafeMod(start - i - 1));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 确保结果在0-9范围内(循环数组)
|
|
|
+ int SafeMod(int n) => (n % 10 + 10) % 10;
|
|
|
+ return indexs;
|
|
|
+ }
|
|
|
|
|
|
public override void Hide()
|
|
|
{
|
|
@@ -730,7 +945,7 @@ namespace Fort23.Mono
|
|
|
Btn_Info.transform.SetParent(ContentRoot);
|
|
|
Btn_Info.transform.position = skillWidget.InfoPos.position;
|
|
|
Btn_Info.gameObject.SetActive(true);
|
|
|
- currentSelectedSkill = skillWidget;
|
|
|
+ currentSelectedSkill = skillWidget.skillConfigId;
|
|
|
if (allUseSkill.Contains(skillWidget.skillConfigId))
|
|
|
{
|
|
|
return;
|
|
@@ -741,11 +956,11 @@ namespace Fort23.Mono
|
|
|
|
|
|
if (!IsMainGongFaChange(skillWidget.skillConfigId.skillConfig) || !IsPassiveGongFaChange(skillWidget.skillConfigId.skillConfig))
|
|
|
{
|
|
|
- SelectSkill(skillWidget.skillConfigId, true);
|
|
|
+ SelectSkill(skillWidget.skillConfigId, true, true);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- SelectSkill(skillWidget.skillConfigId, false);
|
|
|
+ SelectSkill(skillWidget.skillConfigId, false, true);
|
|
|
}
|
|
|
}
|
|
|
}
|