Пример #1
0
        protected void GeneralStopImpact(ImpactLogicInfo logicInfo)
        {
            if (IsLogicDead(logicInfo.Target))
            {
                SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.Stiffness);
                SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.HitFly);
                SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.GetUp);
            }
            else
            {
                ClearGfxStateFlag(logicInfo.Target);
            }
            logicInfo.CustomDatas.Clear();
            //foreach=>for
            for (int i = 0; i < logicInfo.EffectsDelWithImpact.Count; ++i)
            {
                GameObject Obj = logicInfo.EffectsDelWithImpact[i];
                ResourceSystem.RecycleObject(Obj);
            }

            //foreach(GameObject obj in logicInfo.EffectsDelWithImpact){
            //  ResourceSystem.RecycleObject(obj);
            //}
            ResetLayer(logicInfo.Target, logicInfo);
            LogicSystem.NotifyGfxAnimationFinish(logicInfo.Target, false);
            LogicSystem.NotifyGfxMoveControlFinish(logicInfo.Target, logicInfo.ImpactId, false);
            LogicSystem.NotifyGfxStopImpact(logicInfo.Sender, logicInfo.ImpactId, logicInfo.Target);
        }
Пример #2
0
    public virtual void ForceStopSkill()
    {
        MoveTarget = null;
        m_SkillManager.ResetWeapons();
        m_Status = MyCharacterStatus.kIdle;
        AnimationClip anim = GetCurAnimationClip();

        if (anim != null)
        {
            m_ObjAnimation[anim.name].speed = 0;
        }
        if (m_SkillMovement != null)
        {
            m_SkillMovement.StopMove();
        }
        if (m_IsSkillActive && !CanStopBackSwing())
        {
            StopSkillEffects();
            if (m_ColliderManager != null)
            {
                m_ColliderManager.StopSkillColliders(SkillId);
            }
        }
        m_IsSkillActive = false;
        LogicSystem.NotifyGfxAnimationFinish(gameObject);
        if (m_IsControlMove)
        {
            LogicSystem.NotifyGfxMoveControlFinish(gameObject);
        }
        m_SkillPlayingEffect.Clear();
    }
Пример #3
0
 private void EndControlGravity()
 {
     m_Vertical = Vector3.zero;
     if (m_IsGravityControl)
     {
         if (GravityDropDownAnimInfo != null)
         {
             TriggerImpl.StopAnim(this.gameObject, GravityDropDownAnimInfo);
         }
         LogicSystem.NotifyGfxAnimationFinish(this.gameObject);
         LogicSystem.NotifyGfxMoveControlFinish(this.gameObject);
         m_IsGravityControl = false;
     }
 }
Пример #4
0
 public override void StopImpact(ImpactLogicInfo logicInfo)
 {
     logicInfo.IsActive = false;
     StopAnimation(logicInfo.Target, Animation_Type.AT_Grab);
     if (null != logicInfo.Target)
     {
         UnityEngine.Vector3 rotation = logicInfo.Target.transform.rotation.eulerAngles;
         logicInfo.Target.transform.rotation = UnityEngine.Quaternion.Euler(0, rotation.y, 0);
     }
     SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.Grab);
     LogicSystem.NotifyGfxMoveControlFinish(logicInfo.Target, logicInfo.ImpactId, false);
     LogicSystem.NotifyGfxAnimationFinish(logicInfo.Target, false);
     LogicSystem.NotifyGfxStopImpact(logicInfo.Sender, logicInfo.ImpactId, logicInfo.Target);
 }
Пример #5
0
 public virtual void OnInterrupted(ImpactLogicInfo logicInfo)
 {
     if (IsLogicDead(logicInfo.Target))
     {
         SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.Stiffness);
         SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.HitFly);
     }
     else
     {
         ClearGfxStateFlag(logicInfo.Target);
     }
     ResetLayer(logicInfo.Target, logicInfo);
     LogicSystem.NotifyGfxAnimationFinish(logicInfo.Target, false);
     LogicSystem.NotifyGfxMoveControlFinish(logicInfo.Target, logicInfo.ImpactId, false);
 }
Пример #6
0
    protected void GeneralStopSkill()
    {
        m_IsActive = false;
        m_AnimationPlayer.StopAllAnim();
        SharedGameObjectInfo info = LogicSystem.GetSharedGameObjectInfo(gameObject);

        foreach (GameObject obj in m_EffectList)
        {
            ResourceSystem.RecycleObject(obj);
        }
        m_EffectList.Clear();
        if (null != info)
        {
            LogicSystem.PublishLogicEvent("ge_set_ai_enable", "ai", info.m_LogicObjectId, true);
        }
        LogicSystem.NotifyGfxMoveControlFinish(gameObject);
        LogicSystem.NotifyGfxAnimationFinish(gameObject);
    }
Пример #7
0
        //在技能未开始时取消技能(用于上层逻辑检查失败时)
        public void CancelSkill(int actorId, int skillId)
        {
            GameObject obj = LogicSystem.GetGameObject(actorId);

            if (null != obj)
            {
                SkillLogicInfo logicInfo = m_SkillLogicInfos.Find(info => info.Sender == obj && info.SkillId == skillId);
                if (null != logicInfo)
                {
                    if (logicInfo.SkillInst.IsControlMove)
                    {
                        LogicSystem.NotifyGfxMoveControlFinish(obj, skillId, true);
                        logicInfo.SkillInst.IsControlMove = false;
                    }
                    LogicSystem.NotifyGfxAnimationFinish(obj, true);
                    RecycleSkillInstance(logicInfo.Info);
                    m_SkillLogicInfos.Remove(logicInfo);
                }
            }
        }
Пример #8
0
    private void OnSummonEnd()
    {
        TriggerImpl.StopAnim(this.gameObject, SummonAnimInfo);
        TriggerImpl.ChangeWeaponById(this.gameObject, EndWeaponId);
        if (SupportRotateByHold)
        {
            DashFire.LogicSystem.EventChannelForGfx.Publish("ge_touch_dir", "ui", false);
        }
        if (SupportRotateByJoyStick)
        {
            TriggerImpl.HideJoyStick(this.gameObject);
        }
        ResetSkill();

        LogicSystem.NotifyGfxAnimationFinish(gameObject);
        if (ControlMove)
        {
            TriggerImpl.StopMove(this.gameObject);
        }
    }
Пример #9
0
    protected void GeneralStopImpact()
    {
        m_StartTime  = 0.0f;
        m_IsActive   = false;
        m_ImpactInfo = null;

        if (m_IsHitHighLight)
        {
            m_IsHitHighLight    = false;
            m_Renderer.material = m_NormalMaterial;
        }

        SharedGameObjectInfo info = LogicSystem.GetSharedGameObjectInfo(gameObject);

        if (null != info)
        {
            LogicSystem.PublishLogicEvent("ge_set_ai_enable", "ai", info.m_LogicObjectId, true);
        }
        LogicSystem.NotifyGfxMoveControlFinish(gameObject);
        LogicSystem.NotifyGfxAnimationFinish(gameObject);
    }
Пример #10
0
    private void OnShootEnd()
    {
        DashFire.LogicSystem.EventChannelForGfx.Publish("ge_ex_skill", "ui", "GunWoman", false);

        TriggerImpl.StopAnim(this.gameObject, ShootStartAnimInfo);
        TriggerImpl.StopAnim(this.gameObject, ShootIdleAnimInfo);
        TriggerImpl.StopAnim(this.gameObject, ShootAnimInfo);
        TriggerImpl.StopAnim(this.gameObject, ShootEndAnimInfo);
        // Weapon
        TriggerImpl.ChangeWeaponById(this.gameObject, EndWeaponId);
        DashFire.LogicSystem.EventChannelForGfx.Publish("ge_touch_dir", "ui", false);
        SkillDuration = m_InitSkillDuration;
        ResetSkill();
        //Debug.Log("ShooterSkillLogic_ExShoot OnShootEnd!");

        LogicSystem.NotifyGfxAnimationFinish(gameObject);
        if (ControlMove)
        {
            TriggerImpl.StopMove(this.gameObject);
        }
    }
Пример #11
0
 private void StopSkillInstance(SkillLogicInfo info, bool isInterrupt)
 {
     //LogSystem.Debug("Skill {0} finished.", info.SkillId);
     if (!isInterrupt)
     {
         if (info.SkillInst.IsControlMove)
         {
             LogicSystem.NotifyGfxMoveControlFinish(info.Sender, info.SkillId, true);
             info.SkillInst.IsControlMove = false;
         }
         LogicSystem.NotifyGfxAnimationFinish(info.Sender, true);
         LogicSystem.NotifyGfxStopSkill(info.Sender, info.SkillId);
     }
     else
     {
         if (info.SkillInst.IsControlMove)
         {
             info.SkillInst.IsControlMove = false;
         }
     }
     RecycleSkillInstance(info.Info);
 }