서버 각성 리팩토링
This commit is contained in:
parent
2b59c2fe7c
commit
989e0b4daf
|
|
@ -320,10 +320,10 @@ function Init_Enchant() {
|
||||||
}
|
}
|
||||||
function Init_Awaken() {
|
function Init_Awaken() {
|
||||||
return {
|
return {
|
||||||
STR: { LV : 1, Exp : 0 },
|
STR: { Lv : 1, Exp : 0 },
|
||||||
DEX: { LV : 1, Exp : 0 },
|
DEX: { Lv : 1, Exp : 0 },
|
||||||
INT: { LV : 1, Exp : 0 },
|
INT: { Lv : 1, Exp : 0 },
|
||||||
LUK: { LV : 1, Exp : 0 }
|
LUK: { Lv : 1, Exp : 0 }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
function Init_PC() {
|
function Init_PC() {
|
||||||
|
|
@ -992,46 +992,41 @@ handlers.Save_PC_MenuBack = function(args)
|
||||||
{
|
{
|
||||||
var upgradeValue = parseInt((awakenData.upgrade.find(x => x.Key === statKey)?.Value) || 0);
|
var upgradeValue = parseInt((awakenData.upgrade.find(x => x.Key === statKey)?.Value) || 0);
|
||||||
var awakenValue = parseInt((awakenData.awaken.find(x => x.Key === statKey)?.Value) || 0);
|
var awakenValue = parseInt((awakenData.awaken.find(x => x.Key === statKey)?.Value) || 0);
|
||||||
|
var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey));
|
||||||
|
|
||||||
for (var j = 0; j < upgradeValue; ++j)
|
for (var j = 0; j < upgradeValue; ++j)
|
||||||
{
|
{
|
||||||
var lv = urod.Awaken[statKey].Lv;
|
var lv = urod.Awaken[statKey].Lv;
|
||||||
var audata = awakenUpgradeTable.find(f => f.n_AwakenStep == lv);
|
var audata = awakenUpgradeTable.find(f => f.n_AwakenStep == lv);
|
||||||
|
|
||||||
if (urod.Awaken[statKey].Exp >= audata.n_MaxUpgradeLevel && awakenValue > 0)
|
if (TryAwakenLevelUp(table, audata, urod, statKey, awakenValue)) {
|
||||||
{
|
|
||||||
var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey));
|
|
||||||
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
||||||
if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost))
|
--awakenValue;
|
||||||
{
|
--j;
|
||||||
--awakenValue;
|
continue;
|
||||||
urod.Awaken[statKey].Exp = 0;
|
|
||||||
++urod.Awaken[statKey].Lv;
|
|
||||||
--j; // 다시 반복
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var price = Get_K_Value(lv, audata.f_BalanceConstant, audata.n_DefaultUpgradeCostValue, audata.f_CountPerUpgradeCostValue);
|
var price = Get_K_Value(lv, audata.f_BalanceConstant, audata.n_DefaultUpgradeCostValue, audata.f_CountPerUpgradeCostValue);
|
||||||
if (urod.Awaken[statKey].Exp < audata.n_MaxUpgradeLevel && Use_Item(table, urod, awakenupgradeid, price))
|
if (urod.Awaken[statKey].Exp < audata.n_MaxUpgradeLevel && Use_Item(table, urod, awakenupgradeid, price))
|
||||||
|
{
|
||||||
++urod.Awaken[statKey].Exp;
|
++urod.Awaken[statKey].Exp;
|
||||||
|
|
||||||
|
if (TryAwakenLevelUp(table, audata, urod, statKey, awakenmat, awakenValue))
|
||||||
|
{
|
||||||
|
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
||||||
|
--awakenValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (upgradeValue == 0 && awakenValue > 0)
|
if (upgradeValue == 0 && awakenValue > 0)
|
||||||
{
|
{
|
||||||
var lv = urod.Awaken[statKey].Lv;
|
var lv = urod.Awaken[statKey].Lv;
|
||||||
var audata = awakenUpgradeTable.find(f => f.n_AwakenStep == lv);
|
var audata = awakenUpgradeTable.find(f => f.n_AwakenStep == lv);
|
||||||
if (urod.Awaken[statKey].Exp >= audata.n_MaxUpgradeLevel)
|
if (TryAwakenLevelUp(table, audata, urod, statKey, awakenmat, awakenValue))
|
||||||
{
|
{
|
||||||
var awakenmat = Get_GlobalValue_nValue(Get_PCAwakenMatKey(statKey));
|
|
||||||
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
if (!useawakenMatIds[awakenmat]) useawakenMatIds[awakenmat] = true;
|
||||||
if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost))
|
--awakenValue;
|
||||||
{
|
|
||||||
--awakenValue;
|
|
||||||
urod.Awaken[statKey].Exp = 0;
|
|
||||||
++urod.Awaken[statKey].Lv;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1088,6 +1083,18 @@ function Get_PCAwakenMatKey(stat)
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
function TryAwakenLevelUp(table, audata, urod, statKey, awakenmat, awakenValue) {
|
||||||
|
if (urod.Awaken[statKey].Exp < audata.n_MaxUpgradeLevel) return false;
|
||||||
|
if (awakenValue <= 0) return false;
|
||||||
|
|
||||||
|
if (Use_Item(table, urod, awakenmat, audata.n_AwakenGoodsCost)) {
|
||||||
|
urod.Awaken[statKey].Exp = 0;
|
||||||
|
urod.Awaken[statKey].Lv++;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
handlers.Save_PC_Stat = function(args)
|
handlers.Save_PC_Stat = function(args)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ public class PCUI : BotMenuBase
|
||||||
}
|
}
|
||||||
|
|
||||||
CS_AwakenData emptyawaken = new CS_AwakenData();
|
CS_AwakenData emptyawaken = new CS_AwakenData();
|
||||||
|
LimitSlotChangeData emptylimitslot = new LimitSlotChangeData();
|
||||||
public override void Check_ServerSave(bool exitui)
|
public override void Check_ServerSave(bool exitui)
|
||||||
{
|
{
|
||||||
var sdata = ServerInfo.Ins.m_ServerData;
|
var sdata = ServerInfo.Ins.m_ServerData;
|
||||||
|
|
@ -53,7 +54,11 @@ public class PCUI : BotMenuBase
|
||||||
|
|
||||||
if (changeCostume || changeworker || changejob || pcawakend || changelimitslot)
|
if (changeCostume || changeworker || changejob || pcawakend || changelimitslot)
|
||||||
{
|
{
|
||||||
var limitslotdata = PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Get();
|
var limitslotdata = emptylimitslot;
|
||||||
|
if (PCLimitUI.isIns) limitslotdata = PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData;
|
||||||
|
else limitslotdata.Init();
|
||||||
|
limitslotdata = limitslotdata.Get();
|
||||||
|
|
||||||
ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume),
|
ServerInfo.Ins.Save_PC_MenuBack(sdata.Get_EqiupmentEquip(eItem.PCCostume),
|
||||||
sdata.Get_EqiupmentEquip(eItem.Worker),
|
sdata.Get_EqiupmentEquip(eItem.Worker),
|
||||||
sdata.Get_EqiupmentEquip(eItem.PC),
|
sdata.Get_EqiupmentEquip(eItem.PC),
|
||||||
|
|
@ -101,15 +106,16 @@ public class PCUI : BotMenuBase
|
||||||
if (exitui) base.OnClick_Back();
|
if (exitui) base.OnClick_Back();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
foreach (var key in dic_EnterID.Keys.ToList())
|
||||||
|
dic_EnterID[key] = 0;
|
||||||
|
if (PCAwakenUI.isIns) PCAwakenUI.Ins.Get_CS_AwakenData().Init();
|
||||||
|
if (PCLimitUI.isIns) PCLimitUI.Ins.m_PCLimitUI_Right.m_LimitSlotChangeData.Init();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (exitui) base.OnClick_Back();
|
if (exitui) base.OnClick_Back();
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var key in dic_EnterID.Keys.ToList())
|
|
||||||
dic_EnterID[key] = 0;
|
|
||||||
if (PCAwakenUI.isIns) PCAwakenUI.Ins.Get_CS_AwakenData().Init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnClick_Back()
|
public override void OnClick_Back()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue