任务系统一半多,商城筛选功能,一些细节和免费包
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user