Implemented torch ability

This commit is contained in:
Max 2025-01-30 11:05:39 +01:00
parent 0bf8adc76d
commit 9a8077021a
15 changed files with 881 additions and 49 deletions

View file

@ -16,7 +16,7 @@ public enum GameState
}
public class GameManager : MonoBehaviour
{
[SerializeField] public GameState state;
[SerializeField] public static GameState State;
[SerializeField] private GameObject rooms;
[SerializeField] private DiceRoller diceRoller;
[SerializeField] private PassManager passManager;
@ -35,7 +35,7 @@ public class GameManager : MonoBehaviour
passManager.PassRequested += PassRequested;
foreach (Transform roomTransform in rooms.transform)
{
roomTransform.gameObject.GetComponent<Room>().ValidRoomClicked += ValidRoomClicked;
roomTransform.gameObject.GetComponent<Room>().RoomExploredByDice += HandleRoomExploredByDice;
}
foreach (Transform diceTransform in diceRoller.dice.transform)
{
@ -46,10 +46,10 @@ public class GameManager : MonoBehaviour
}
private void ChangeState(GameState stateToChangeTo) {
if (state != stateToChangeTo)
if (State != stateToChangeTo)
{
state = stateToChangeTo;
StateChanged?.Invoke(state);
State = stateToChangeTo;
StateChanged?.Invoke(State);
}
}
@ -62,16 +62,8 @@ public class GameManager : MonoBehaviour
_dicePairTwo = new DicePair();
}
void ValidRoomClicked(object sender, Room room) {
switch (state)
{
case GameState.PickRoomOne when !room.TryUnlock(_dicePairOne):
case GameState.PickRoomTwo when !room.TryUnlock(_dicePairTwo):
return;
}
room.SetRoomExplored();
if (state == GameState.PickRoomOne)
void HandleRoomExploredByDice(object sender, Room room) {
if (State == GameState.PickRoomOne)
{
ChangeState(GameState.PickDiceTwo);
}
@ -82,7 +74,7 @@ public class GameManager : MonoBehaviour
}
private void HandleDieSelected(Die die) {
switch (state)
switch (State)
{
case GameState.PickDiceOne:
_dicePairOne.SelectDie(die);
@ -106,11 +98,11 @@ public class GameManager : MonoBehaviour
}
private void HandleDieUnselected(Die die) {
switch (state)
switch (State)
{
case GameState.PickDiceOne:
case GameState.PickRoomOne:
if (state == GameState.PickRoomOne)
if (State == GameState.PickRoomOne)
{
ChangeState(GameState.PickDiceOne);
}
@ -119,7 +111,7 @@ public class GameManager : MonoBehaviour
break;
case GameState.PickDiceTwo:
case GameState.PickRoomTwo:
if (state == GameState.PickRoomTwo)
if (State == GameState.PickRoomTwo)
{
ChangeState(GameState.PickDiceTwo);
}
@ -136,7 +128,7 @@ public class GameManager : MonoBehaviour
private void DiceRolled(object sender, EventArgs e)
{
if (state == GameState.RollDice)
if (State == GameState.RollDice)
{
diceRoller.Disable();
ChangeState(GameState.PickDiceOne);
@ -144,7 +136,7 @@ public class GameManager : MonoBehaviour
}
private void PassRequested(object sender, EventArgs e) {
switch (state)
switch (State)
{
case GameState.PickDiceOne:
case GameState.PickDiceTwo: