任务系统一半多,商城筛选功能,一些细节和免费包

This commit is contained in:
FloatGaming
2026-03-15 04:27:21 +08:00
parent 416190b23e
commit ec42f2e34b
344 changed files with 32225 additions and 6481 deletions
+173 -7
View File
@@ -1,5 +1,4 @@
using System.Runtime.ExceptionServices;
using UnityEngine;
using UnityEngine;
[CreateAssetMenu(fileName = "PlayerDefaultSO", menuName = "SO_Data/PlayerSO")]
public class Player_SO : ScriptableObject
@@ -7,17 +6,184 @@ public class Player_SO : ScriptableObject
[Header("Inspector")]
public int player_currentEXP;
public int player_currentLevel;
[Header("economics")]
[SerializeField] private int player_coins;
[SerializeField] private int player_material;
[Header("exp bottles")]
[SerializeField] private int commonExpBottle; // 凡品经验瓶
[SerializeField] private int mediumExpBottle; // 中品经验瓶
[SerializeField] private int superiorExpBottle; // 上品经验瓶
[SerializeField] private int supremeExpBottle; // 极品经验瓶
[SerializeField] private int emptyExpBottle78000;
[SerializeField] private int commonExpBottle78001;
[SerializeField] private int mediumExpBottle78002;
[SerializeField] private int superiorExpBottle78003;
[SerializeField] private int supremeExpBottle78004;
[SerializeField] private int extraordinaryExpBottle78005;
[SerializeField] private int celestialExpBottle78006;
[SerializeField] private int dushMaterial78021;
[SerializeField] private int dushMaterial78022;
[SerializeField] private int dushMaterial78023;
[SerializeField] private int dushMaterial78024;
[Header("Device Records")]
public string firstLaunchDate;
public int Coins
{
get { return player_coins; }
}
public int Material
{
get { return player_material; }
}
public void SetCoins(int value)
{
player_coins = Mathf.Max(0, value);
PersistEditorChanges();
}
public void AddCoins(int amount)
{
if (amount == 0)
{
return;
}
SetCoins(player_coins + amount);
}
public void AddMaterial(int amount)
{
if (amount == 0)
{
return;
}
SetMaterial(player_material + amount);
}
public void AddPlayerExperience(int amount)
{
if (amount == 0)
{
return;
}
player_currentEXP = Mathf.Max(0, player_currentEXP + amount);
PersistEditorChanges();
}
public bool TrySpendCoins(int amount)
{
if (amount <= 0)
{
return true;
}
if (player_coins < amount)
{
return false;
}
SetCoins(player_coins - amount);
return true;
}
public void SetMaterial(int value)
{
player_material = Mathf.Max(0, value);
PersistEditorChanges();
}
public int GetLegacyExpBottleCount(string fieldName)
{
switch (fieldName)
{
case "emptyExpBottle78000": return emptyExpBottle78000;
case "commonExpBottle78001": return commonExpBottle78001;
case "mediumExpBottle78002": return mediumExpBottle78002;
case "superiorExpBottle78003": return superiorExpBottle78003;
case "supremeExpBottle78004": return supremeExpBottle78004;
case "extraordinaryExpBottle78005": return extraordinaryExpBottle78005;
case "celestialExpBottle78006": return celestialExpBottle78006;
default: return 0;
}
}
public void SetLegacyExpBottleCount(string fieldName, int value)
{
int safeValue = Mathf.Max(0, value);
switch (fieldName)
{
case "emptyExpBottle78000":
emptyExpBottle78000 = safeValue;
break;
case "commonExpBottle78001":
commonExpBottle78001 = safeValue;
break;
case "mediumExpBottle78002":
mediumExpBottle78002 = safeValue;
break;
case "superiorExpBottle78003":
superiorExpBottle78003 = safeValue;
break;
case "supremeExpBottle78004":
supremeExpBottle78004 = safeValue;
break;
case "extraordinaryExpBottle78005":
extraordinaryExpBottle78005 = safeValue;
break;
case "celestialExpBottle78006":
celestialExpBottle78006 = safeValue;
break;
default:
return;
}
PersistEditorChanges();
}
public int GetLegacyDushMaterialCount(string fieldName)
{
switch (fieldName)
{
case "dushMaterial78021": return dushMaterial78021;
case "dushMaterial78022": return dushMaterial78022;
case "dushMaterial78023": return dushMaterial78023;
case "dushMaterial78024": return dushMaterial78024;
default: return 0;
}
}
public void SetLegacyDushMaterialCount(string fieldName, int value)
{
int safeValue = Mathf.Max(0, value);
switch (fieldName)
{
case "dushMaterial78021":
dushMaterial78021 = safeValue;
break;
case "dushMaterial78022":
dushMaterial78022 = safeValue;
break;
case "dushMaterial78023":
dushMaterial78023 = safeValue;
break;
case "dushMaterial78024":
dushMaterial78024 = safeValue;
break;
default:
return;
}
PersistEditorChanges();
}
private void PersistEditorChanges()
{
#if UNITY_EDITOR
UnityEditor.EditorUtility.SetDirty(this);
#endif
}
}