internal bool DefaultValidateOnRun(ResolveContext ctx)
 {
     // warrior can only deal damage while it is on battlefield
     var causeWarrior = Cause as Behaviors.Warrior;
     if (causeWarrior != null)
     {
         var causeBhvHost = causeWarrior.Host;
         if (causeBhvHost == null
             || causeBhvHost.IsDestroyed
             || !causeBhvHost.IsOnBattlefield && !causeBhvHost.IsActivatedAssist)
         {
             return false;
         }
     }
     if (this is IInitiativeCommand)
     {
         if (!ctx.CheckCompulsoryTargets())
         {
             return false;
         }
     }
     return true;
 }