cards/CardStockMarket.cs
using Sandbox;
using System.Threading.Tasks;

public class CardStockMarket : Card
{
	//public override bool ShouldHandleEvent( EventType eventType )
	//{
	//	switch ( eventType )
	//	{
	//		case EventType.Match:
	//			return Manager.Instance.ChosenCards[1] == this;
	//		case EventType.TurnStart:
	//			return CardTypeID == 0 && Manager.Instance.Stats[StatType.TurnNum] > 0 && Game.Random.Float(0f, 1f) < 0.75f;
	//	}

	//	return false;
	//}

	//public override async Task HandleEventAsync( EventType eventType )
	//{
	//	if(eventType == EventType.TurnStart)
	//	{
	//		if ( CardType == CardType.StockMarket )
	//		{
	//			foreach(var card in Manager.Instance.Cards.Where(x => x.CardType == CardType.StockMarket))
	//				card.SetCardType( CardType.StockMarketDown );
	//		}
	//		else
	//		{
	//			foreach ( var card in Manager.Instance.Cards.Where( x => x.CardType == CardType.StockMarketDown ) )
	//				card.SetCardType( CardType.StockMarket );
	//		}
	//	}
	//	else if(eventType == EventType.Match)
	//	{
	//		Manager.Instance.PushEventMessage( this, eventType );

	//		await Task.DelayRealtime( 150 );

	//		if (CardType == CardType.StockMarket)
	//		{
	//			Manager.Instance.PlayCardSfxBetween( "dice_6", Manager.Instance.ChosenCards[0], Manager.Instance.ChosenCards[1], volume: 1.6f, pitch: Game.Random.Float( 0.8f, 0.85f ) );

	//			await Task.DelayRealtime( 50 );

	//			int moneyAmount = MathX.CeilToInt( (float)Manager.Instance.Money / 2f ) + (int)Manager.Instance.Stats[StatType.EarnExtraMoney];

	//			Manager.Instance.SpawnGainMoneyFloater( moneyAmount, WorldPosition );

	//			await Manager.Instance.GainMoney( moneyAmount );
	//		}
	//		else
	//		{
	//			Manager.Instance.PlayCardSfxBetween( "dice_1", Manager.Instance.ChosenCards[0], Manager.Instance.ChosenCards[1], volume: 1.6f, pitch: Game.Random.Float( 0.7f, 0.75f ) );

	//			await Task.DelayRealtime( 50 );

	//			int moneyAmount = Math.Max(MathX.CeilToInt((float)Manager.Instance.Money / 2f), 0);

	//			Manager.Instance.SpawnLoseMoneyFloater( moneyAmount, WorldPosition );

	//			await Manager.Instance.LoseMoney( moneyAmount );
	//		}

	//		await Task.DelayRealtime( 1000 );

	//		Manager.Instance.PopEventMessage();
	//	}
	//}

	//public override string GetEventText( EventType eventType )
	//{
	//	if ( eventType == EventType.Match )
	//	{
	//		if ( CardType == CardType.StockMarket )
	//			return "✅Match: gain half your money if the market is up";
	//		else
	//			return "✅Match: lose half your money if the market is down";
	//	}

	//	return "";
	//}
}