protected override void InitTriggers()
{
RegisterTrigger(GameEvent.DoPlayer, new DoPlayerTrigger());
RegisterTrigger(GameEvent.Shuffle, new ShuffleTrigger());
RegisterTrigger(GameEvent.GameStart, new RoleGameRuleTrigger());
RegisterTrigger(GameEvent.PhaseProceedEvents[TurnPhase.Judge], new PlayerJudgeStageTrigger());
RegisterTrigger(GameEvent.PhaseProceedEvents[TurnPhase.Play], new PlayerActionTrigger());
RegisterTrigger(GameEvent.PhaseProceedEvents[TurnPhase.Draw], new PlayerDealStageTrigger() { Priority = -1 });
RegisterTrigger(GameEvent.PhaseProceedEvents[TurnPhase.Discard], new PlayerDiscardStageTrigger() { Priority = -1 });
RegisterTrigger(GameEvent.CommitActionToTargets, new CommitActionToTargetsTrigger());
RegisterTrigger(GameEvent.AfterHealthChanged, new PlayerHpChanged());
RegisterTrigger(GameEvent.GameProcessPlayerIsDead, new PlayerIsDead() { Priority = int.MinValue });
RegisterTrigger(GameEvent.CardUsageBeforeEffected, new DeadManStopper() { Priority = int.MaxValue });
RegisterTrigger(GameEvent.CardUsageBeforeEffected, new DeadManStopper() { Priority = int.MinValue });
RegisterTrigger(GameEvent.PlayerSkillSetChanged, cleanupSquad);
}