装备系统完结,修复并加入很多

This commit is contained in:
2026-04-03 19:15:02 +08:00
parent 538085b64f
commit d9376833b6
378 changed files with 62464 additions and 16756 deletions
@@ -12,11 +12,26 @@ public class eUpdate_mtrSO : ScriptableObject
public int coinRequired;
}
[System.Serializable]
public class PropertyTransferCost
{
[Tooltip("78121 required count")]
public int transferMaterialRequired;
[Tooltip("player_material required count")]
public int memoryFragmentRequired;
[Tooltip("coin required count")]
public int coinRequired;
}
[Header("Material Definitions")]
[Tooltip("Fixed equipment upgrade consumable definition: 78101")]
public equipmentConsumableSO upgradeMaterial;
[Tooltip("Fixed equipment breakthrough consumable definition: 78111")]
public equipmentConsumableSO breakthroughMaterial;
[Tooltip("Fixed equipment transfer consumable definition: 78121")]
public equipmentConsumableSO propertyTransferMaterial;
[Tooltip("Fixed equipment final dream consumable definition: 78131")]
public equipmentConsumableSO finalDreamMaterial;
[Header("Upgrade Cost")]
[Tooltip("Upgrade material required count = base + level * growth")]
@@ -33,6 +48,15 @@ public class eUpdate_mtrSO : ScriptableObject
[Tooltip("Index 0-3 -> level 4/9/14/19")]
public BreakthroughStageCost[] breakthroughStageCosts = new BreakthroughStageCost[4];
[Header("Property Transfer Cost")]
[Tooltip("Fixed cost for 记忆嘱托")]
public PropertyTransferCost memoryEntrustCost = new PropertyTransferCost();
[Tooltip("Index 0-4 -> level 0-4 / 5-9 / 10-14 / 15-19 / 20")]
public PropertyTransferCost[] tourEntrustStageCosts = new PropertyTransferCost[5];
[Header("Final Dream Cost")]
public PropertyTransferCost finalDreamCost = new PropertyTransferCost();
public int GetUpgradeMaterialRequired(int level)
{
return Mathf.Max(0, upgradeMaterialBase + Mathf.Max(0, level) * upgradeMaterialGrowth);
@@ -70,6 +94,54 @@ public class eUpdate_mtrSO : ScriptableObject
return Mathf.Max(0, breakthroughStageCosts[stageIndex].coinRequired);
}
public int GetMemoryEntrustTransferMaterialRequired()
{
return memoryEntrustCost != null ? Mathf.Max(0, memoryEntrustCost.transferMaterialRequired) : 0;
}
public int GetMemoryEntrustMemoryFragmentRequired()
{
return memoryEntrustCost != null ? Mathf.Max(0, memoryEntrustCost.memoryFragmentRequired) : 0;
}
public int GetMemoryEntrustCoinsRequired()
{
return memoryEntrustCost != null ? Mathf.Max(0, memoryEntrustCost.coinRequired) : 0;
}
public int GetTourEntrustTransferMaterialRequired(int level)
{
PropertyTransferCost cost = GetTourEntrustCost(level);
return cost != null ? Mathf.Max(0, cost.transferMaterialRequired) : 0;
}
public int GetTourEntrustMemoryFragmentRequired(int level)
{
PropertyTransferCost cost = GetTourEntrustCost(level);
return cost != null ? Mathf.Max(0, cost.memoryFragmentRequired) : 0;
}
public int GetTourEntrustCoinsRequired(int level)
{
PropertyTransferCost cost = GetTourEntrustCost(level);
return cost != null ? Mathf.Max(0, cost.coinRequired) : 0;
}
public int GetFinalDreamMaterialRequired()
{
return finalDreamCost != null ? Mathf.Max(0, finalDreamCost.transferMaterialRequired) : 0;
}
public int GetFinalDreamMemoryFragmentRequired()
{
return finalDreamCost != null ? Mathf.Max(0, finalDreamCost.memoryFragmentRequired) : 0;
}
public int GetFinalDreamCoinsRequired()
{
return finalDreamCost != null ? Mathf.Max(0, finalDreamCost.coinRequired) : 0;
}
public int GetBreakthroughStageIndex(int level)
{
switch (level)
@@ -87,6 +159,47 @@ public class eUpdate_mtrSO : ScriptableObject
}
}
public int GetTransferStageIndex(int level)
{
if (level < 0)
{
return -1;
}
if (level >= 20)
{
return 4;
}
if (level >= 15)
{
return 3;
}
if (level >= 10)
{
return 2;
}
if (level >= 5)
{
return 1;
}
return 0;
}
private PropertyTransferCost GetTourEntrustCost(int level)
{
int stageIndex = GetTransferStageIndex(level);
if (stageIndex < 0 || tourEntrustStageCosts == null || stageIndex >= tourEntrustStageCosts.Length)
{
return null;
}
return tourEntrustStageCosts[stageIndex];
}
private void OnValidate()
{
if (breakthroughStageCosts == null || breakthroughStageCosts.Length != 4)
@@ -109,5 +222,37 @@ public class eUpdate_mtrSO : ScriptableObject
breakthroughStageCosts[i].materialRequired = Mathf.Max(0, breakthroughStageCosts[i].materialRequired);
breakthroughStageCosts[i].coinRequired = Mathf.Max(0, breakthroughStageCosts[i].coinRequired);
}
memoryEntrustCost ??= new PropertyTransferCost();
memoryEntrustCost.transferMaterialRequired = Mathf.Max(0, memoryEntrustCost.transferMaterialRequired);
memoryEntrustCost.memoryFragmentRequired = Mathf.Max(0, memoryEntrustCost.memoryFragmentRequired);
memoryEntrustCost.coinRequired = Mathf.Max(0, memoryEntrustCost.coinRequired);
if (tourEntrustStageCosts == null || tourEntrustStageCosts.Length != 5)
{
var resized = new PropertyTransferCost[5];
if (tourEntrustStageCosts != null)
{
for (int i = 0; i < Mathf.Min(tourEntrustStageCosts.Length, resized.Length); i++)
{
resized[i] = tourEntrustStageCosts[i];
}
}
tourEntrustStageCosts = resized;
}
for (int i = 0; i < tourEntrustStageCosts.Length; i++)
{
tourEntrustStageCosts[i] ??= new PropertyTransferCost();
tourEntrustStageCosts[i].transferMaterialRequired = Mathf.Max(0, tourEntrustStageCosts[i].transferMaterialRequired);
tourEntrustStageCosts[i].memoryFragmentRequired = Mathf.Max(0, tourEntrustStageCosts[i].memoryFragmentRequired);
tourEntrustStageCosts[i].coinRequired = Mathf.Max(0, tourEntrustStageCosts[i].coinRequired);
}
finalDreamCost ??= new PropertyTransferCost();
finalDreamCost.transferMaterialRequired = Mathf.Max(0, finalDreamCost.transferMaterialRequired);
finalDreamCost.memoryFragmentRequired = Mathf.Max(0, finalDreamCost.memoryFragmentRequired);
finalDreamCost.coinRequired = Mathf.Max(0, finalDreamCost.coinRequired);
}
}