game: day cycles implemented

shifts can now start once a day
This commit is contained in:
kookiekenobi 2025-02-05 03:02:56 +08:00
parent 8b571ecbc6
commit 88cdc90474
5 changed files with 120 additions and 37 deletions

View file

@ -556,19 +556,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ee1f54676195faf4ba8ba4d5e99b916f, type: 3} m_Script: {fileID: 11500000, guid: ee1f54676195faf4ba8ba4d5e99b916f, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
frontWalkPoints: movementSpeed: 7
- {fileID: 0}
- {fileID: 0}
leftWalkPoints:
- {fileID: 0}
- {fileID: 0}
rightWalkPoints:
- {fileID: 0}
- {fileID: 0}
movementSpeed: 5
turnSpeed: 5 turnSpeed: 5
leftWalkPointSet: {fileID: 0}
rightWalkPointSet: {fileID: 0}
inFrontOfPlayer: 0 inFrontOfPlayer: 0
--- !u!65 &6249434732724022439 --- !u!65 &6249434732724022439
BoxCollider: BoxCollider:

View file

@ -1046,7 +1046,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5453e60feb81353409a4c7dea809cb8e, type: 3} m_Script: {fileID: 11500000, guid: 5453e60feb81353409a4c7dea809cb8e, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
npcBufferTime: 5 npcBufferTime: 2
npcSpawned: 0 npcSpawned: 0
npc: {fileID: 6618770541138752799, guid: 3dcfbdcf77a53b14bb7c0c3140072ea7, type: 3} npc: {fileID: 6618770541138752799, guid: 3dcfbdcf77a53b14bb7c0c3140072ea7, type: 3}
--- !u!1 &1227598780 --- !u!1 &1227598780
@ -2085,6 +2085,74 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
socketName: Paper Socket socketName: Paper Socket
--- !u!1 &1979701312
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1979701315}
- component: {fileID: 1979701314}
- component: {fileID: 1979701313}
m_Layer: 0
m_Name: Day Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1979701313
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1979701312}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2d971d51c8e156241a4499e252f667ae, type: 3}
m_Name:
m_EditorClassIdentifier:
doneAShift: 0
shiftManager: {fileID: 732601457}
--- !u!65 &1979701314
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1979701312}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 2.3254375, y: 2.1451125, z: 1.221778}
m_Center: {x: -0.0010703206, y: 0.57255626, z: -0.11088902}
--- !u!4 &1979701315
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1979701312}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.008, y: 0.513, z: -5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2027209538 --- !u!1 &2027209538
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2499,4 +2567,5 @@ SceneRoots:
- {fileID: 2043314906} - {fileID: 2043314906}
- {fileID: 1627151202} - {fileID: 1627151202}
- {fileID: 732601459} - {fileID: 732601459}
- {fileID: 1979701315}
- {fileID: 1126609777} - {fileID: 1126609777}

View file

@ -11,15 +11,47 @@ using UnityEngine;
public class DayManager : MonoBehaviour public class DayManager : MonoBehaviour
{ {
// Start is called before the first frame update public bool doneAShift = false;
void Start()
{
[SerializeField] private GameObject shiftManager;
private Collider endDayTrigger;
private GameManager gm;
private ShiftManager shiftManagerScript;
void Awake()
{
gm = GameObject.Find("Game Manager").GetComponent<GameManager>();
shiftManagerScript = shiftManager.GetComponent<ShiftManager>();
endDayTrigger = GetComponent<Collider>();
endDayTrigger.enabled = false;
} }
// Update is called once per frame
void Update() void Update()
{ {
if (doneAShift && !endDayTrigger.enabled)
{
endDayTrigger.enabled = true;
} }
else if (!doneAShift && endDayTrigger.enabled)
{
endDayTrigger.enabled = false;
}
}
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
Debug.Log("Day completed!");
Player.daysPlayed += 1;
Debug.Log(Player.daysPlayed);
shiftManagerScript.AllowShiftStart();
Debug.Log("You can start another shift!");
doneAShift = false;
}
}
} }

View file

@ -39,21 +39,7 @@ public class Door : MonoBehaviour
/// <param name="other"></param> /// <param name="other"></param>
void OnTriggerEnter(Collider other) void OnTriggerEnter(Collider other)
{ {
if (other.CompareTag("Player")) if (!doorOpened && (other.CompareTag("Player") || other.CompareTag("NPC")))
{
if (!doorOpened)
{
if (!gm.dayEnded)
{
Debug.Log("Day hasn't ended!");
}
else
{
OpenDoor();
}
}
}
else if (other.CompareTag("NPC") && !doorOpened)
{ {
OpenDoor(); OpenDoor();
} }

View file

@ -19,10 +19,12 @@ public class ShiftManager : MonoBehaviour
private Collider shiftTrigger; private Collider shiftTrigger;
private GameManager gm; private GameManager gm;
private DayManager dayManager;
void Awake() void Awake()
{ {
gm = GameObject.Find("Game Manager").GetComponent<GameManager>(); gm = GameObject.Find("Game Manager").GetComponent<GameManager>();
dayManager = GameObject.Find("Day Manager").GetComponent<DayManager>();
gm.shiftStarted = false; gm.shiftStarted = false;
remainingTime = shiftDuration; remainingTime = shiftDuration;
@ -32,7 +34,7 @@ public class ShiftManager : MonoBehaviour
void OnTriggerEnter(Collider other) void OnTriggerEnter(Collider other)
{ {
if (other.tag == "Player" && !gm.shiftStarted) if (other.CompareTag("Player") && !gm.shiftStarted)
{ {
Debug.Log("Shift started"); Debug.Log("Shift started");
@ -48,7 +50,6 @@ public class ShiftManager : MonoBehaviour
while (remainingTime > 0) while (remainingTime > 0)
{ {
remainingTime -= Time.deltaTime; remainingTime -= Time.deltaTime;
/*Debug.Log("Shift: " + remainingTime);*/
if (Player.score < 0) if (Player.score < 0)
{ {
@ -68,5 +69,11 @@ public class ShiftManager : MonoBehaviour
npcSpawnArea.SetActive(false); npcSpawnArea.SetActive(false);
remainingTime = shiftDuration; remainingTime = shiftDuration;
gm.shiftStarted = false; gm.shiftStarted = false;
dayManager.doneAShift = true;
}
public void AllowShiftStart()
{
shiftTrigger.enabled = true;
} }
} }