StellarXipher/Assets/Puzzles/Mines/Scripts/TimeScript.cs
EthanPisani d479a27770
All checks were successful
Build project / Build for (StandaloneLinux64, 6000.0.37f1) (push) Successful in 5m17s
Build project / Build for (StandaloneWindows64, 6000.0.37f1) (push) Successful in 5m19s
Build project / Publish to itch.io (StandaloneLinux64) (push) Successful in 5s
Build project / Publish to itch.io (StandaloneWindows64) (push) Successful in 5s
add mines puzzle game to unlock doors
2025-03-16 12:08:54 -04:00

73 lines
2.0 KiB
C#

using System;
using UnityEngine;
using System.Collections;
/// <summary>
/// Handles the logic of the time counters
/// </summary>
public class TimeScript : MonoBehaviour {
#region Enums/Structs
/// <summary>
/// Different digits in the time counter
/// </summary>
public enum ETimeNumber {
Hundred0,
Hundred00,
Second0,
Second00,
Minute0,
Minute00,
Hour0,
Hour00
}
#endregion
#region Fields
/// <summary>
/// Which digit does this tile represent?
/// </summary>
public ETimeNumber Type;
/// <summary>
/// Reference to all of the number sprites
/// </summary>
public Sprite[] NumberSprites;
#endregion
/// <summary>
/// Sets the correct sprite for this digit
/// </summary>
/// <param name="elapsed"></param>
public void SetTimeSprite(TimeSpan elapsed) {
var sr = GetComponent<SpriteRenderer>();
switch (Type) {
case ETimeNumber.Hundred0:
sr.sprite = NumberSprites[(elapsed.Milliseconds / 10) % 10];
break;
case ETimeNumber.Hundred00:
sr.sprite = NumberSprites[(elapsed.Milliseconds / 100) % 10];
break;
case ETimeNumber.Second0:
sr.sprite = NumberSprites[elapsed.Seconds % 10];
break;
case ETimeNumber.Second00:
sr.sprite = NumberSprites[(elapsed.Seconds / 10) % 10];
break;
case ETimeNumber.Minute0:
sr.sprite = NumberSprites[elapsed.Minutes % 10];
break;
case ETimeNumber.Minute00:
sr.sprite = NumberSprites[(elapsed.Minutes / 10) % 10];
break;
case ETimeNumber.Hour0:
sr.sprite = NumberSprites[elapsed.Hours % 10];
break;
case ETimeNumber.Hour00:
sr.sprite = NumberSprites[(elapsed.Hours / 10) % 10];
break;
default:
throw new ArgumentOutOfRangeException();
}
}
}