Refactor code
This commit is contained in:
@@ -21,7 +21,7 @@ namespace Assets.Scripts.Actions
|
||||
|
||||
public void ApplyAction(Player playerController)
|
||||
{
|
||||
playerController.PlayerStats[StatsId.Food].increase(_energy);
|
||||
playerController.Stats[StatsId.Food].increase(_energy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace Assets.Scripts.Actions
|
||||
|
||||
public void ApplyAction(Player playerController)
|
||||
{
|
||||
playerController.PlayerStats[StatsId.Energy].increase(_energyPerTick);
|
||||
playerController.Stats[StatsId.Energy].increase(_energyPerTick);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class ConversationController : MonoBehaviour
|
||||
_selectedAction = action;
|
||||
if (action is ISellable)
|
||||
{
|
||||
_btnApply.interactable = Player.Instance.PlayerStats[StatsId.Money].Value >= (action as ISellable).Price;
|
||||
_btnApply.interactable = Player.Instance.Stats[StatsId.Money].Value >= (action as ISellable).Price;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ public class GameUIManager : MonoBehaviour
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
_moneyText.text = $"${Player.Instance.PlayerStats[StatsId.Money].Value}";
|
||||
_moneyText.text = $"${Player.Instance.Stats[StatsId.Money].Value}";
|
||||
|
||||
|
||||
}
|
||||
@@ -42,7 +42,7 @@ public class GameUIManager : MonoBehaviour
|
||||
_timeText.text = TimeManager.CurrentTime.ToString(@"hh\:mm");
|
||||
}
|
||||
|
||||
_energy.value = (float)Player.Instance.PlayerStats[StatsId.Energy].Value;
|
||||
_food.value = (float)Player.Instance.PlayerStats[StatsId.Food].Value;
|
||||
_energy.value = (float)Player.Instance.Stats[StatsId.Energy].Value;
|
||||
_food.value = (float)Player.Instance.Stats[StatsId.Food].Value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 949ddc438e1560f4193667beb4e04308
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -7,7 +7,6 @@ using System.Runtime.Serialization;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
|
||||
public class BlockingAnimation : Attribute
|
||||
{
|
||||
|
||||
@@ -43,7 +42,7 @@ public class Player : MonoBehaviour
|
||||
private AnimationStates _currentAnimation;
|
||||
private Vector3 _groundDeltaPosition;
|
||||
|
||||
public Dictionary<StatsId, Stat> PlayerStats;
|
||||
public Dictionary<StatsId, Stat> Stats;
|
||||
public IWorkPlace WorkPlace { get; set; }
|
||||
|
||||
private readonly Queue<PlayerTasks> _tasks = new Queue<PlayerTasks>();
|
||||
@@ -51,7 +50,6 @@ public class Player : MonoBehaviour
|
||||
|
||||
private const string WALK_VELOCITY = "WalkVelocity";
|
||||
|
||||
private bool _isInAnimation = false;
|
||||
private void Awake()
|
||||
{
|
||||
if (Instance != null)
|
||||
@@ -66,7 +64,7 @@ public class Player : MonoBehaviour
|
||||
TimeManager.OnMinuteChanged += UpdateStatsByClock;
|
||||
_isAllowMovement = true;
|
||||
_navAgent.updatePosition = false;
|
||||
PlayerStats = GameManager.Instance.PlayerStats;
|
||||
Stats = PlayerStats.CreateInitialStats();
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
@@ -197,21 +195,21 @@ public class Player : MonoBehaviour
|
||||
|
||||
public void UpdateStatsByClock()
|
||||
{
|
||||
PlayerStats[StatsId.Food].deduct(0.034m); // 48 hours it's 100, 100/2880=~0.034 per minute
|
||||
Stats[StatsId.Food].deduct(0.034m); // 48 hours it's 100, 100/2880=~0.034 per minute
|
||||
if (_currentAnimation != AnimationStates.Sleeping)
|
||||
{
|
||||
PlayerStats[StatsId.Energy].deduct(0.1m); // 24 hours it's 100, 100/1440=~0.096 per minute
|
||||
Stats[StatsId.Energy].deduct(0.1m); // 24 hours it's 100, 100/1440=~0.096 per minute
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayerStats[StatsId.Energy].increase(1m);
|
||||
Stats[StatsId.Energy].increase(1m);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void BuyAction(IPlayerAction action)
|
||||
{
|
||||
PlayerStats[StatsId.Money].deduct(((ISellable)action).Price);
|
||||
Stats[StatsId.Money].deduct(((ISellable)action).Price);
|
||||
action.ApplyAction(this);
|
||||
}
|
||||
|
||||
@@ -1,27 +1,15 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public enum StatsId { Money, RentAccount, Food, Energy, BankAccount, Job, }
|
||||
public class GameManager : MonoBehaviour
|
||||
public class PlayerStats
|
||||
{
|
||||
public static GameManager Instance { get; private set; }
|
||||
|
||||
public Dictionary<StatsId, Stat> PlayerStats;
|
||||
// Start is called before the first frame update
|
||||
void Awake()
|
||||
public static Dictionary<StatsId, Stat> CreateInitialStats()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
InitPlayerStats();
|
||||
}
|
||||
|
||||
private void InitPlayerStats()
|
||||
{
|
||||
PlayerStats = new Dictionary<StatsId, Stat>()
|
||||
return new Dictionary<StatsId, Stat>()
|
||||
{
|
||||
{StatsId.Money, new Stat("Money", 100.0m)},
|
||||
{StatsId.RentAccount, new Stat("Rent Account", 0)},
|
||||
{StatsId.Food, new Stat("Food Energy", 100) },
|
||||
{StatsId.Food, new Stat("Food Energy", 50) },
|
||||
{StatsId.Energy,new Stat("Energy", 100) },
|
||||
{StatsId.BankAccount,new Stat("Bank Account", 0) },
|
||||
{StatsId.Job, new Stat("Unemployed", 0) },
|
||||
@@ -1,41 +1,41 @@
|
||||
public class Stat
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public decimal Value { get; set; }
|
||||
public decimal Price { get; set; }
|
||||
public decimal Quantity { get; set; }
|
||||
|
||||
public Stat(string name, decimal startValue)
|
||||
{
|
||||
Name = name;
|
||||
Value = startValue;
|
||||
}
|
||||
|
||||
public Stat(string name, decimal price, decimal quantity)
|
||||
{
|
||||
Name = name;
|
||||
Price = price;
|
||||
Quantity = quantity;
|
||||
}
|
||||
|
||||
public void increase(decimal byAmount)
|
||||
{
|
||||
Value += byAmount;
|
||||
}
|
||||
|
||||
public bool deduct(decimal amount)
|
||||
{
|
||||
if (Value >= amount)
|
||||
{
|
||||
Value -= amount;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void forceDeduct(decimal amount)
|
||||
{
|
||||
Value -= amount;
|
||||
}
|
||||
|
||||
}
|
||||
public class Stat
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public decimal Value { get; set; }
|
||||
public decimal Price { get; set; }
|
||||
public decimal Quantity { get; set; }
|
||||
|
||||
public Stat(string name, decimal startValue)
|
||||
{
|
||||
Name = name;
|
||||
Value = startValue;
|
||||
}
|
||||
|
||||
public Stat(string name, decimal price, decimal quantity)
|
||||
{
|
||||
Name = name;
|
||||
Price = price;
|
||||
Quantity = quantity;
|
||||
}
|
||||
|
||||
public void increase(decimal byAmount)
|
||||
{
|
||||
Value += byAmount;
|
||||
}
|
||||
|
||||
public bool deduct(decimal amount)
|
||||
{
|
||||
if (Value >= amount)
|
||||
{
|
||||
Value -= amount;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void forceDeduct(decimal amount)
|
||||
{
|
||||
Value -= amount;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user