private void OnSceneFightLose() { int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; ++i) { ObjectHero HeroObj = SceneObjectManager.GetInstance().GetHeroObject(i); if (HeroObj != null && HeroObj.IsAlive()) { NavMeshAgent Nav = HeroObj.GetNavMesh(); Nav.SetDestination(HeroObj.GetGameObject().transform.position); HeroObj.GetAnimation().Anim_Fidle(false); } } if (ObjectSelf.GetInstance().LimitFightMgr.m_bStartEnter) { ObjectSelf.GetInstance().LimitFightMgr.SendRoundOver(); } else { if (ObjectSelf.GetInstance().WorldBossMgr.m_bStartEnter) { ObjectSelf.GetInstance().WorldBossMgr.SendRoundOver(); } else { CEndBattle battle = new CEndBattle(); battle.pass = 0;// 未通过 IOControler.GetInstance().SendProtocol(battle); } } GameTimeControler.Inst.SetState(TimeScaleState.TimeScale_Normal); }
private void UpdateHeroBoarding() { moveTime += Time.deltaTime; if (moveTime < 0.1f) { return; } moveTime = 0f; int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; i++) { ObjectHero HeroObj = SceneObjectManager.GetInstance().GetHeroObject(i); if (HeroObj != null && HeroObj.IsAlive()) { NavMeshAgent Nav = HeroObj.GetNavMesh(); Nav.speed = HeroObj.GetMoveSpeed(); Nav.SetDestination(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj)); //HeroObj.SetWorldPosRotation(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj), FightEditorContrler.GetInstantiate().GetFormationAngle(HeroObj)); HeroObj.SetObjectActionState(ObjectCreature.ObjectActionState.boarding); HeroObj.GetAnimation().Anim_Fidle(false); } } }
/// <summary> /// 开场剧情播放进入 /// </summary> private void CallBack_StoryCameraEnter() { SetFightState(FightState.FightStoryCamera); int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; ++i) { ObjectHero pHero = SceneObjectManager.GetInstance().GetHeroObject(i); pHero.GetAnimation().Anim_Fidle(false); } }
//######################################################被击动作接口#################################################### //被击结束回调 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; } }
//当前场景战斗结束 [3/13/2015 Zmy] private void OnSceneFightWin() { int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; ++i) { ObjectHero pHero = SceneObjectManager.GetInstance().GetHeroObject(i); NavMeshAgent Nav = pHero.GetNavMesh(); Nav.SetDestination(pHero.GetGameObject().transform.position); pHero.GetAnimation().Anim_Fidle(false); } // 战斗胜利先刷新奖励数据 [4/2/2015 Zmy] //ObjectSelf.GetInstance().UpdateDataBattleWin(); // 战斗胜利后刷新关卡数据 [4/8/2015 Zmy] SceneObjectManager.GetInstance().UpdateBattleWinStageData(); GameTimeControler.Inst.SetState(TimeScaleState.TimeScale_Normal); GameEventDispatcher.Inst.dispatchEvent(GameEventID.F_BattleOver); }
//瞬间移动事件进入 public void CallBack_eroPathMomentMoveEnter() { SetFightState(FightState.HeroMonmentMoveEnter); int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; ++i) { ObjectHero HeroObj = SceneObjectManager.GetInstance().GetHeroObject(i); if (HeroObj != null && HeroObj.IsAlive()) { HeroObj.GetAnimation().Anim_Run(); NavMeshAgent Nav = HeroObj.GetNavMesh(); Nav.speed = HeroObj.GetMoveSpeed(); Nav.SetDestination(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj)); //Debug.Log(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj)); StartCoroutine(DelayCallPos(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj), HeroObj.GetGameObject(), HeroObj, CallBack_MomentMoveEnter)); } } }
private void CallBack_PrepareBoard() { SetFightState(FightState.PrepareBoard); int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; ++i) { ObjectHero HeroObj = SceneObjectManager.GetInstance().GetHeroObject(i); if (HeroObj != null && HeroObj.IsAlive()) { HeroObj.GetAnimation().Anim_Run(); NavMeshAgent Nav = HeroObj.GetNavMesh(); Nav.speed = HeroObj.GetMoveSpeed(); Nav.SetDestination(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj)); StartCoroutine(DelayCall(Nav, HeroObj.GetGameObject(), HeroObj, CallBack_PrepareBoardPos)); } } }
//进入战斗状态开始战斗,在这之前先修正一下人物位置 [1/20/2015 Zmy] private void CallBack_EnterFightState() { int nHeroCount = SceneObjectManager.GetInstance().GetObjectHeroCount(); for (int i = 0; i < nHeroCount; ++i) { // ObjectHero HeroObj = SceneObjectManager.GetInstance().GetHeroObject(i); // if (HeroObj != null) // { // GameObject obj = HeroObj.GetGameObject(); // if (obj != null) // { // obj.GetComponent<NavMeshAgent>().Stop(); // float _heroSpeed = HeroObj.GetMoveSpeed(); // float _moveTime = Vector3.Distance(obj.transform.position, FightEditorContrler.inst.GetFormationPos(HeroObj.GetGameObject())) / _heroSpeed; // //修正高度值 [1/22/2015 Zmy] // Vector3 targetPos = new Vector3(FightEditorContrler.inst.GetFormationPos(HeroObj.GetGameObject()).x, obj.transform.position.y, FightEditorContrler.inst.GetFormationPos(HeroObj.GetGameObject()).z); // obj.transform.DOMove(targetPos, _moveTime).SetUpdate(true).SetEase(Ease.Linear).OnComplete(()=>CallBack_RevisepPos(obj,HeroObj)); // } // } ObjectHero HeroObj = SceneObjectManager.GetInstance().GetHeroObject(i); if (HeroObj != null && HeroObj.IsAlive()) { HeroObj.GetAnimation().Anim_Run(); NavMeshAgent Nav = HeroObj.GetNavMesh(); Nav.speed = HeroObj.GetMoveSpeed(); Nav.SetDestination(FightEditorContrler.GetInstantiate().GetFormationPos(HeroObj)); StartCoroutine(DelayCall(Nav, HeroObj.GetGameObject(), HeroObj, CallBack_RevisepPos)); } } //切换准备战斗状态 SetFightState(FightState.prepareFight); //重算一下移动位置偏移量; HeroPathtContrler.GetInstantiate().ResetMoveTargetOffset(); }
//创建血条 public void CreateBloodBar(ObjectHero hero) { Transform tans = hero.GetAnimation().EventControl.Pre_Head_T_EffectPoint; GameObject barObj = Instantiate(UI_FightControler.Inst.heroBloodPre, Vector3.zero, Quaternion.identity) as GameObject; barObj.transform.SetParent(transform, false); UI_Blood mBlood = barObj.AddComponent <UI_Blood>(); mBlood.SetPosition(tans.position); barObj.transform.localScale = new Vector3(1, 1, 1); bloodInfo.Add(mBlood); mBlood.isHero = true; mBlood.setHeroLevel(hero.GetHeroData().Level); if (!ObjectSelf.GetInstance().LimitFightMgr.m_bStartEnter) { hero.SetHP(hero.GetMaxHP()); } mBlood.SetValue((float)hero.GetHP() / (float)hero.GetMaxHP()); mBlood.setHeadPosition(tans); mBlood.uid.Copy(hero.GetGuid()); }