cards/CardAlarmClock.cs
using Sandbox;
using System.Threading.Tasks;
public class CardAlarmClock : Card
{
private bool _hasActivated;
protected override void OnUpdate()
{
base.OnUpdate();
int totalTime = (int)Manager.Instance.Stats[StatType.TimerTotalTime];
if ( totalTime < 2 )
return;
if( _hasActivated && Manager.Instance.TimerElapsed < 1f )
{
_hasActivated = false;
}
float remainingTime = Manager.Instance.Stats[StatType.TimerTotalTime] - Manager.Instance.TimerElapsed;
if ( !_hasActivated && remainingTime <= 1f )
{
if(Game.Random.Float(0f, 1f) < 0.7f)
{
//Shake();
//await Manager.Instance.ShakeCard( this );
//var alarmClocks = Manager.Instance.Cards.Where( x => x.CardType == CardType.AlarmClock ).ToList();
//if ( alarmClocks.Count >= 2 && this == alarmClocks[0] )
//{
// Manager.Instance.PlayCardSfxBetween( "alarm_clock", alarmClocks[0], alarmClocks[1], volume: 0.7f, pitch: Game.Random.Float( 0.98f, 1.03f ) );
//}
Manager.Instance.PlayCardSfx( "alarm_clock", this, volume: 0.375f, pitch: Game.Random.Float( 0.95f, 1.05f ) );
}
_hasActivated = true;
}
}
}