//######################################################被击动作接口####################################################
        //被击结束回调
        private void HurtEnd()
        {
            ObjectCreature pCaster = SceneObjectManager.GetInstance().GetSceneObjectByGameObject(this.gameObject);

            if (pCaster == null)
            {
                return;
            }

            switch (pCaster.GetActionState())
            {
            case ObjectCreature.ObjectActionState.Hurting:
            {
                if (pCaster.GetCacheLastActionState() == ObjectCreature.ObjectActionState.dizzy && pCaster.IsInFightState(EM_FIGHT_STATE.EM_FIGHT_STATE_VERTIGO))
                {
                    //重置回眩晕中 [10/19/2015 Zmy]
                    pCaster.SetObjectActionState(ObjectCreature.ObjectActionState.dizzy);
                }
                else
                {
                    pCaster.SetObjectActionState(ObjectCreature.ObjectActionState.normalAttack);
                }
            }
            break;

            case ObjectCreature.ObjectActionState.checkHurting:
            {
                //受击结束播放一次不带事件回调的待机动画,用于可以在checkHurting状态下可以再次播放受击动作 [9/28/2015 Zmy]
                if (pCaster is ObjectHero)
                {
                    ObjectHero obj = pCaster as ObjectHero;
                    obj.GetAnimation().Anim_Fidle(false);
                }
                else
                {
                    ObjectMonster obj = pCaster as ObjectMonster;
                    obj.GetAnimation().Anim_Fidle(false);
                }
            }
            break;

            default:
                break;
            }
        }
Esempio n. 2
0
 public void UpdateSurplusNormalAttackTime()
 {
     if (SurplusAttackLength <= 0)
     {
         SurplusAttackLength = 0;
         ObjectCreature obj = SceneObjectManager.GetInstance().GetSceneObjectByGameObject(this.gameObject);
         obj.SetObjectActionState(ObjectCreature.ObjectActionState.AttackIdle);
     }
     else
     {
         SurplusAttackLength -= Time.deltaTime;
     }
 }
Esempio n. 3
0
 public void UpdateFidTime()
 {
     if (FidLengh <= 0)
     {
         FidLengh = 0;
         ObjectCreature obj = SceneObjectManager.GetInstance().GetSceneObjectByGameObject(this.gameObject);
         obj.SetObjectActionState(ObjectCreature.ObjectActionState.normalAttack);
     }
     else
     {
         FidLengh -= Time.deltaTime;
     }
 }