public void TriggerEffect(Effect.Trigger trigger) { var triggered = effects.FindAll(sample => sample.trigger == trigger); foreach (var effect in triggered) { effect.OnTrigger(effects.Last(), this); } }
public void BroadcastTrigger(Effect.Trigger trigger) { for (int col = 0; col < NUM_BOARD_COL; ++col) { for (int row = 0; row < NUM_BOARD_ROW; ++row) { var piece = GetPieceAt(col, row); if (piece == null) { continue; } piece.TriggerEffect(trigger); } } }