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); }
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(); }
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; } }
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); }
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); }
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); }
//在技能未开始时取消技能(用于上层逻辑检查失败时) 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); } } }
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); } }
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); }
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); } }
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); }