private void OnArrive(AI_BullFight_Positioning state) { if (m_inPositioning && mainRoleAIState.arrived && npcAIState.arrived) { EndSwitchPositioning(); } }
protected override void _OnLoadingCompleteImp() { base._OnLoadingCompleteImp(); mCurScene.CreateBall(); mCurScene.mBall.onShootGoal += OnGoal; mCurScene.mBall.onGrab += OnGrab; mCurScene.mBall.onDunk += OnDunk; mCurScene.mBall.onHitGround += OnHitGround; if (m_config == null) { Debug.LogError("Match config file loading failed."); return; } //TODO 针对PVP修改 //main role PlayerManager pm = GameSystem.Instance.mClient.mPlayerManager; mainRole = pm.GetPlayerById(uint.Parse(m_config.MainRole.id)); //mainRole.m_inputDispatcher = new InputDispatcher(this, mainRole); mainRole.m_catchHelper = new CatchHelper(mainRole); mainRole.m_catchHelper.ExtractBallLocomotion(); mainRole.m_StateMachine.SetState(PlayerState.State.eStand, true); mainRole.m_InfoVisualizer.ShowStaminaBar(true); mainRole.m_team.m_role = GameMatch.MatchRole.eOffense; mainRoleNormalAISystem = new AISystem_Basic(this, mainRole); //mainRole.m_aiMgr = mainRoleNormalAISystem; mainRole.m_aiMgr.m_enable = false; mainRolePositioningAISystem = new AISystem_BullFight(this, mainRole); mainRoleAIState = mainRolePositioningAISystem.GetState(AIState.Type.eBullFight_Positioning) as AI_BullFight_Positioning; mainRoleAIState.onArrive += OnArrive; //npc Team oppoTeam = mainRole.m_team.m_side == Team.Side.eAway ? m_homeTeam : m_awayTeam; npc = oppoTeam.GetMember(0); if (npc.model != null) { npc.model.EnableGrey(); } npcNormalAISystem = new AISystem_Basic(this, npc, AIState.Type.eInit, m_config.NPCs[0].AIID); npcNormalAISystem.ReplaceState(new AI_Positioning_Shoot_on_Hold(npcNormalAISystem)); npcPositioningAISystem = new AISystem_BullFight(this, npc); npcAIState = npcPositioningAISystem.GetState(AIState.Type.eBullFight_Positioning) as AI_BullFight_Positioning; npcAIState.onArrive += OnArrive; //npc.m_aiMgr = npcNormalAISystem; npc.m_aiMgr.m_enable = false; npc.m_team.m_role = GameMatch.MatchRole.eDefense; AssumeDefenseTarget(); _UpdateCamera(mainRole); //_CreateGUI(); m_stateMachine.m_matchStateListeners.Add(this); }