public override bool Update(long delta)
 {
     base.Update(delta);
     if (_currentFrame < TOTAL_FRAME)
     { // 发起动作
         Executor.SetCombatPos((int)(ox + dx * _currentFrame), (int)(oy + dy * _currentFrame));
         if (Executor is Monster)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = fs.FrameCnt * _currentFrame / TOTAL_FRAME + 1;
         }
         else if (Executor is PlayerCharacter)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = 5 * _currentFrame / TOTAL_FRAME + 1;
         }
     }
     else if (_currentFrame > TOTAL_FRAME)
     { // 扣血、异常状态的动画
         if (!UpdateRaiseAnimation(delta))
         {
             if (Target is PlayerCharacter)
             {
                 ((PlayerCharacter)Target).SetFrameByState();
             }
             else
             {
                 Target.FightingSprite.Move(-2, -2);
             }
             return(false);
         }
     }
     else if (mTotalMark)
     {
         mTotalMark = false;
         Executor.SetCombatPos(ox, oy);
         if (Executor is Monster)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = 1;
         }
         else if (Executor is PlayerCharacter)
         {
             ((PlayerCharacter)Executor).SetFrameByState();
         }
         if (Target is PlayerCharacter)
         {
             Target.FightingSprite.CurrentFrame = 10;
         }
         else
         {
             Target.FightingSprite.Move(2, 2);
         }
     }
     return(true);
 }
 public override bool Update(long delta)
 {
     base.Update(delta);
     if (_currentFrame < TOTAL_FRAME)    //发起动作
     {
         Executor.SetCombatPos((int)(ox + dx * _currentFrame), (int)(oy + dy * _currentFrame));
         if (Executor is Monster)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = fs.FrameCnt * _currentFrame / TOTAL_FRAME + 1;
         }
         else if (Executor is PlayerCharacter)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = 5 * _currentFrame / TOTAL_FRAME + 1;
         }
     }
     else if (_currentFrame > TOTAL_FRAME)   //扣血、异常状态的动画
     {
         return(UpdateRaiseAnimation(delta));
     }
     else
     {
         Executor.SetCombatPos(ox, oy);
         if (Executor is Monster)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = 1;
         }
         else if (Executor is PlayerCharacter)
         {
             FightingSprite fs = Executor.FightingSprite;
             fs.CurrentFrame = 1;
             // TODO the old state 眠
         }
     }
     return(true);
 }