sleep increase the energy
This commit is contained in:
@@ -1863,7 +1863,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 808129671576928264, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 808129671576928264, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 20
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 808129671576928264, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 808129671576928264, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -1888,7 +1888,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 896272491191485165, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 896272491191485165, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 182.005
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 896272491191485165, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 896272491191485165, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -2013,22 +2013,22 @@ PrefabInstance:
|
|||||||
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 1
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchorMin.y
|
propertyPath: m_AnchorMin.y
|
||||||
value: 1
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 250
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 4307980429506515175, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: -90
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4537241548631189332, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 4537241548631189332, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -2123,7 +2123,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 6551138445549304010, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 6551138445549304010, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 182.005
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 6551138445549304010, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 6551138445549304010, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -2248,7 +2248,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 7883991513978601488, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 7883991513978601488, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 182.005
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7883991513978601488, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 7883991513978601488, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
@@ -2268,12 +2268,12 @@ PrefabInstance:
|
|||||||
- target: {fileID: 7949779033593405736, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 7949779033593405736, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_SizeDelta.x
|
propertyPath: m_SizeDelta.x
|
||||||
value: 364.01
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7949779033593405736, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 7949779033593405736, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_AnchoredPosition.x
|
propertyPath: m_AnchoredPosition.x
|
||||||
value: 182.005
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 7949779033593405736, guid: 8939548f67eb43c4fa321f112c45f83b,
|
- target: {fileID: 7949779033593405736, guid: 8939548f67eb43c4fa321f112c45f83b,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ namespace Assets.Scripts.Actions
|
|||||||
}
|
}
|
||||||
public void ApplyAction(Player playerController)
|
public void ApplyAction(Player playerController)
|
||||||
{
|
{
|
||||||
playerController.WorkPlace = this;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
using Assets.Scripts.Actions.Interfaces;
|
|
||||||
|
|
||||||
namespace Assets.Scripts.Actions
|
|
||||||
{
|
|
||||||
public class Relax : IPlayerAction
|
|
||||||
{
|
|
||||||
private int _energyPerTick;
|
|
||||||
public Relax(int duration, int energyPerTick)
|
|
||||||
{
|
|
||||||
_energyPerTick = energyPerTick;
|
|
||||||
}
|
|
||||||
|
|
||||||
public string Description => throw new System.NotImplementedException();
|
|
||||||
|
|
||||||
public void ApplyAction(Player playerController)
|
|
||||||
{
|
|
||||||
playerController.Stats[StatsId.Energy].increase(_energyPerTick);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using System.Runtime.Serialization;
|
using System.Runtime.Serialization;
|
||||||
|
|
||||||
|
|
||||||
|
public enum PlayerStates { Awake, Sleeping, Eating }
|
||||||
public enum StatsId { Money, RentAccount, Food, Energy, BankAccount, Job, }
|
public enum StatsId { Money, RentAccount, Food, Energy, BankAccount, Job, }
|
||||||
public enum Tasks { Move, Interact, Rotate };
|
public enum Tasks { Move, Interact, Rotate };
|
||||||
public enum TaskStatus { Waiting, InProgress, Complete };
|
public enum TaskStatus { Waiting, InProgress, Complete };
|
||||||
|
|||||||
@@ -12,11 +12,13 @@ public class Bed : BaseInteractableObject
|
|||||||
|
|
||||||
private void OnAnimationFinished()
|
private void OnAnimationFinished()
|
||||||
{
|
{
|
||||||
|
_player.SetPlayerActing(PlayerStates.Sleeping);
|
||||||
TimeManager.Instance.FastForward(TimeSpan.FromHours(8), OnFastForwardEnd);
|
TimeManager.Instance.FastForward(TimeSpan.FromHours(8), OnFastForwardEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnFastForwardEnd()
|
private void OnFastForwardEnd()
|
||||||
{
|
{
|
||||||
|
_player.SetPlayerActing(PlayerStates.Awake);
|
||||||
_player.SetPlayerAnimation(AnimationStates.Standing);
|
_player.SetPlayerAnimation(AnimationStates.Standing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
using Assets.Scripts.Actions.Interfaces;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.Serialization;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.AI;
|
using UnityEngine.AI;
|
||||||
|
|
||||||
@@ -21,10 +17,10 @@ public class Player : MonoBehaviour
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Transform _holdPoint;
|
private Transform _holdPoint;
|
||||||
|
|
||||||
|
private PlayerStates _currentActing;
|
||||||
private AnimationStates _currentAnimation;
|
private AnimationStates _currentAnimation;
|
||||||
|
|
||||||
public Dictionary<StatsId, Stat> Stats;
|
public Dictionary<StatsId, Stat> Stats;
|
||||||
public IWorkPlace WorkPlace { get; set; }
|
|
||||||
|
|
||||||
private readonly Queue<PlayerTasks> _tasks = new Queue<PlayerTasks>();
|
private readonly Queue<PlayerTasks> _tasks = new Queue<PlayerTasks>();
|
||||||
private PlayerTasks _currentTask;
|
private PlayerTasks _currentTask;
|
||||||
@@ -47,12 +43,14 @@ public class Player : MonoBehaviour
|
|||||||
Instance = this;
|
Instance = this;
|
||||||
DontDestroyOnLoad(gameObject);
|
DontDestroyOnLoad(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
TimeManager.OnMinuteChanged += UpdateStatsByClock;
|
TimeManager.OnMinuteChanged += UpdateStatsByClock;
|
||||||
_animator.applyRootMotion = true;
|
_animator.applyRootMotion = true;
|
||||||
_navAgent.updatePosition = false;
|
_navAgent.updatePosition = false;
|
||||||
Stats = PlayerStats.CreateInitialStats();
|
Stats = PlayerStats.CreateInitialStats();
|
||||||
|
_currentActing = PlayerStates.Awake;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@@ -62,7 +60,7 @@ public class Player : MonoBehaviour
|
|||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if (IsBlockingAnimation(_currentAnimation))
|
if (PlayerHelper.IsBlockingAnimation(_currentAnimation))
|
||||||
{
|
{
|
||||||
if (IsAnimationStatePlaying(0))
|
if (IsAnimationStatePlaying(0))
|
||||||
{
|
{
|
||||||
@@ -116,7 +114,6 @@ public class Player : MonoBehaviour
|
|||||||
{
|
{
|
||||||
_navAgent.Warp(desiredPosition);
|
_navAgent.Warp(desiredPosition);
|
||||||
_navAgent.updatePosition = false;
|
_navAgent.updatePosition = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private TaskStatus MoveToPoint()
|
private TaskStatus MoveToPoint()
|
||||||
@@ -176,20 +173,20 @@ public class Player : MonoBehaviour
|
|||||||
_OnAnimationFinish = onAnimationFinish;
|
_OnAnimationFinish = onAnimationFinish;
|
||||||
SetPlayerAnimation(newState);
|
SetPlayerAnimation(newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetPlayerAnimation(AnimationStates newState)
|
public void SetPlayerAnimation(AnimationStates newState)
|
||||||
{
|
{
|
||||||
if (newState == _currentAnimation)
|
if (newState == _currentAnimation)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_animator.Play(GetEnumMemberValue(newState));
|
_animator.Play(PlayerHelper.GetEnumMemberValue(newState));
|
||||||
_currentAnimation = newState;
|
_currentAnimation = newState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public bool IsAnimationStatePlaying(int animLayer)
|
public bool IsAnimationStatePlaying(int animLayer)
|
||||||
{
|
{
|
||||||
string stateName = GetEnumMemberValue(_currentAnimation);
|
string stateName = PlayerHelper.GetEnumMemberValue(_currentAnimation);
|
||||||
var stateInfo = _animator.GetCurrentAnimatorStateInfo(animLayer);
|
var stateInfo = _animator.GetCurrentAnimatorStateInfo(animLayer);
|
||||||
return stateInfo.IsName(stateName) && stateInfo.normalizedTime < 1.0f;
|
return stateInfo.IsName(stateName) && stateInfo.normalizedTime < 1.0f;
|
||||||
|
|
||||||
@@ -200,17 +197,21 @@ public class Player : MonoBehaviour
|
|||||||
_tasks.Enqueue(task);
|
_tasks.Enqueue(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetPlayerActing(PlayerStates state)
|
||||||
|
{
|
||||||
|
_currentActing = state;
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateStatsByClock()
|
public void UpdateStatsByClock()
|
||||||
{
|
{
|
||||||
Stats[StatsId.Food].deduct(0.034f); // 48 hours it's 100, 100/2880=~0.034 per minute
|
Stats[StatsId.Food].deduct(0.034f); // 48 hours it's 100, 100/2880=~0.034 per minute
|
||||||
if (_currentAnimation != AnimationStates.Sleeping)
|
if (_currentActing != PlayerStates.Sleeping)
|
||||||
{
|
{
|
||||||
Stats[StatsId.Energy].deduct(0.1f); // 24 hours it's 100, 100/1440=~0.096 per minute
|
Stats[StatsId.Energy].deduct(0.1f); // 24 hours it's 100, 100/1440=~0.096 per minute
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Stats[StatsId.Energy].increase(1f);
|
Stats[StatsId.Energy].increase(0.2f);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -218,41 +219,13 @@ public class Player : MonoBehaviour
|
|||||||
{
|
{
|
||||||
Stats[StatsId.Money].deduct(amount);
|
Stats[StatsId.Money].deduct(amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public float Eat()
|
|
||||||
{
|
|
||||||
Stats[StatsId.Food].increase(10);
|
|
||||||
return Stats[StatsId.Food].Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string GetEnumMemberValue<T>(T value)
|
|
||||||
where T : struct, IConvertible
|
|
||||||
{
|
|
||||||
return typeof(T)
|
|
||||||
.GetTypeInfo()
|
|
||||||
.DeclaredMembers
|
|
||||||
.SingleOrDefault(x => x.Name == value.ToString())
|
|
||||||
?.GetCustomAttribute<EnumMemberAttribute>(false)
|
|
||||||
?.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool IsBlockingAnimation<T>(T value)
|
|
||||||
where T : struct, IConvertible
|
|
||||||
{
|
|
||||||
var enumType = typeof(T);
|
|
||||||
var memInfo = enumType.GetMember(value.ToString());
|
|
||||||
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<BlockingAnimation>().FirstOrDefault();
|
|
||||||
return attr != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetContainerItem(ContainerItem containerItem)
|
public void SetContainerItem(ContainerItem containerItem)
|
||||||
{
|
{
|
||||||
containerItem.transform.parent = _holdPoint;
|
containerItem.transform.parent = _holdPoint;
|
||||||
containerItem.transform.localPosition = Vector3.zero;
|
containerItem.transform.localPosition = Vector3.zero;
|
||||||
_containerItem = containerItem;
|
_containerItem = containerItem;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContainerItem GetContainerItem()
|
public ContainerItem GetContainerItem()
|
||||||
{
|
{
|
||||||
return _containerItem;
|
return _containerItem;
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
|
|
||||||
|
public static class PlayerHelper
|
||||||
|
{
|
||||||
|
|
||||||
|
public static string GetEnumMemberValue<T>(T value)
|
||||||
|
where T : struct, IConvertible
|
||||||
|
{
|
||||||
|
return typeof(T)
|
||||||
|
.GetTypeInfo()
|
||||||
|
.DeclaredMembers
|
||||||
|
.SingleOrDefault(x => x.Name == value.ToString())
|
||||||
|
?.GetCustomAttribute<EnumMemberAttribute>(false)
|
||||||
|
?.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsBlockingAnimation<T>(T value)
|
||||||
|
where T : struct, IConvertible
|
||||||
|
{
|
||||||
|
var enumType = typeof(T);
|
||||||
|
var memInfo = enumType.GetMember(value.ToString());
|
||||||
|
var attr = memInfo.FirstOrDefault()?.GetCustomAttributes(false).OfType<BlockingAnimation>().FirstOrDefault();
|
||||||
|
return attr != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 986e2b29060766347a43dc46e30a648e
|
guid: 1e0c9736e301f4f4d89a127e9efde6c8
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
@@ -9,8 +9,8 @@ public class PlayerStats
|
|||||||
{
|
{
|
||||||
{StatsId.Money, new Stat("Money", 100.0f,10000000f)},
|
{StatsId.Money, new Stat("Money", 100.0f,10000000f)},
|
||||||
{StatsId.RentAccount, new Stat("Rent Account", 0,10f)},
|
{StatsId.RentAccount, new Stat("Rent Account", 0,10f)},
|
||||||
{StatsId.Food, new Stat("Food Energy", 50,100f) },
|
{StatsId.Food, new Stat("Food Energy", 50f,100f) },
|
||||||
{StatsId.Energy,new Stat("Energy", 100,100f) },
|
{StatsId.Energy,new Stat("Energy", 50f,100f) },
|
||||||
//{StatsId.BankAccount,new Stat("Bank Account", 0) },
|
//{StatsId.BankAccount,new Stat("Bank Account", 0) },
|
||||||
{StatsId.Job, new Stat("Unemployed", 0, 100f) },
|
{StatsId.Job, new Stat("Unemployed", 0, 100f) },
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user