Game/Challenge/WaveChallenge.cs

Defines ChallengeType enum and WaveChallenge data class for per-wave objectives. The enum lists various challenge kinds and WaveChallenge holds type, numeric target, a forbidden bomb type, UI label, reward, and completion/failure flags.

using Sandbox;

public enum ChallengeType
{
    ClearAtLeast,      // clear N+ chests this wave
    ChainLength,       // trigger a chain of N+ bombs
    ClearGem,          // destroy at least 1 gem chest
    NoBombType,        // clear MinChests without using a specific bomb type
    ClearInOneBlast,   // all chests cleared by a single bomb (no chain needed)
    ClearBombChest,    // destroy a BombChest
    ClearAll,
    ChainDepth3,
    NoDamage,
}

public class WaveChallenge
{
    public ChallengeType Type;
    public int Target;           // N for numeric challenges
    public GridManager.BombType ForbiddenBomb; // for NoBombType
    public string Label;         // shown in UI
    public int BonusCoins;       // reward on completion
    public bool Completed;
    public bool Failed;          // for challenges that can be failed mid-wave
}