base vitality

This commit is contained in:
j.mei7
2022-02-19 16:48:48 +01:00
parent 97143a480f
commit 4d588c54ed
14 changed files with 587 additions and 565 deletions

View File

@@ -513,7 +513,7 @@ MonoBehaviour:
m_OnCullStateChanged: m_OnCullStateChanged:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_text: interaction text m_text:
m_isRightToLeft: 0 m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4311e961a11edf545ba020d711a5b017, type: 2} m_fontAsset: {fileID: 11400000, guid: 4311e961a11edf545ba020d711a5b017, type: 2}
m_sharedMaterial: {fileID: -5352834521635484852, guid: 4311e961a11edf545ba020d711a5b017, type: 2} m_sharedMaterial: {fileID: -5352834521635484852, guid: 4311e961a11edf545ba020d711a5b017, type: 2}
@@ -810,7 +810,6 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
partOfDay: 0 partOfDay: 0
intervalTime: 1 intervalTime: 1
minutesPerInterval: 1
--- !u!4 &273326178 --- !u!4 &273326178
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -911,13 +910,15 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 310196954} - component: {fileID: 310196954}
- component: {fileID: 310196953}
- component: {fileID: 310196952} - component: {fileID: 310196952}
- component: {fileID: 310196951}
- component: {fileID: 310196955}
- component: {fileID: 310196956}
- component: {fileID: 310196957} - component: {fileID: 310196957}
- component: {fileID: 310196958} - component: {fileID: 310196958}
- component: {fileID: 310196959}
- component: {fileID: 310196953}
- component: {fileID: 310196956}
- component: {fileID: 310196951}
- component: {fileID: 310196955}
- component: {fileID: 310196960}
m_Layer: 3 m_Layer: 3
m_Name: Player m_Name: Player
m_TagString: Player m_TagString: Player
@@ -1090,6 +1091,36 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
interactionText: {fileID: 87507994} interactionText: {fileID: 87507994}
interactionProgressImg: {fileID: 138750307} interactionProgressImg: {fileID: 138750307}
--- !u!114 &310196959
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 310196950}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 259b4dba2ac00aa4983a6562c5f4eed5, type: 3}
m_Name:
m_EditorClassIdentifier:
health: 1
food: 1
drink: 1
healthModifier: 15
foodModifier: 0.4
drinkModifier: 0.6
--- !u!114 &310196960
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 310196950}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ee4c18f008d122488cbb74c779ef5c4, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &360525550 --- !u!1 &360525550
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 415ae7da5bed43345b965569c9070e15
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,11 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
public void Die()
{
Debug.Log("----- PLAYER DIED!!! -----");
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5ee4c18f008d122488cbb74c779ef5c4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -4,6 +4,7 @@ using UnityEngine;
public class TimeManager : MonoBehaviour public class TimeManager : MonoBehaviour
{ {
public static Action OnTimeInterval;
public enum PartOfDay public enum PartOfDay
{ {
MORNING, MORNING,
@@ -17,24 +18,33 @@ public class TimeManager : MonoBehaviour
[SerializeField] [SerializeField]
float intervalTime = 1.0f; // 1.0f -> 1 real second is 1 ingame minute float intervalTime = 1.0f; // 1.0f -> 1 real second is 1 ingame minute
[SerializeField]
int minutesPerInterval = 1; int minutesPerInterval = 1;
DateTime dateTime = new DateTime(1, 1, 1, 23, 0, 0); DateTime dateTime = new DateTime(1, 1, 1, 0, 0, 0);
float timer;
public DateTime GetDateTime() => dateTime; public DateTime GetDateTime() => dateTime;
public string GetTime() => dateTime.ToString("hh:mm tt"); public string GetTime() => dateTime.ToString("hh:mm tt");
public string GetDate() => dateTime.ToString("dd/mm/yyyy"); public string GetDate() => dateTime.ToString("dd/mm/yyyy");
public float GetintervalTime() => intervalTime;
void Start() void Start()
{ {
InvokeRepeating("TimeUp", intervalTime, intervalTime); timer = intervalTime;
} }
void TimeUp() void Update()
{ {
dateTime = dateTime.AddMinutes(minutesPerInterval); timer -= Time.deltaTime;
CheckPartsOfDay();
if (timer <= 0)
{
dateTime = dateTime.AddMinutes(minutesPerInterval);
CheckPartsOfDay();
OnTimeInterval?.Invoke();
timer = intervalTime;
}
} }
void CheckPartsOfDay() void CheckPartsOfDay()

View File

@@ -0,0 +1,61 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Vitality : MonoBehaviour
{
TimeManager timeManager;
Player player;
[Header("Vitality")]
[Range(0f, 1f)]
[SerializeField]
float health = 1f;
[Range(0f, 1f)]
[SerializeField]
float food = 1f;
[Range(0f, 1f)]
[SerializeField]
float drink = 1f;
[Header("Vitality Modifier Per Interval")]
[Range(0f, 50f)]
[SerializeField]
float healthModifier = 15f;
[Range(0f, 5f)]
[SerializeField]
float foodModifier = 0.4f;
[Range(0f, 5f)]
[SerializeField]
float drinkModifier = 0.6f;
private void Start()
{
timeManager = GameObject.Find("GameManager").GetComponent<TimeManager>();
TimeManager.OnTimeInterval += VitalityInterval;
player = gameObject.GetComponent<Player>();
}
void VitalityInterval()
{
food -= foodModifier / 1000;
drink -= drinkModifier / 1000;
if(food <= 0f || drink <= 0f)
{
health -= healthModifier / 1000;
}
if(health <= 0f)
{
player.Die();
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 259b4dba2ac00aa4983a6562c5f4eed5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff