public Battle(Player firstPlayer, Player secondPlayer) { _battleHelper = new BattleHelper(firstPlayer, secondPlayer); _battleState = new Init(); OnBattleStart(); }
public void Add(BattleState battleState, IBattleState state) { if (!states.ContainsKey(battleState)) { states[battleState] = state; } }
public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; screenRectangle = new Rectangle(0, 0, 1280, 720); graphics.PreferredBackBufferWidth = ScreenRectangle.Width; graphics.PreferredBackBufferHeight = ScreenRectangle.Height; gameStateManager = new GameStateManager(this); Components.Add(gameStateManager); this.IsMouseVisible = true; titleIntroState = new TitleIntroState(this); startMenuState = new MainMenuState(this); gamePlayState = new GamePlayState(this); conversationState = new ConversationState(this); battleState = new BattleState(this); gameStateManager.ChangeState((TitleIntroState)titleIntroState, PlayerIndex.One); characterManager = CharacterManager.Instance; }
public void SelectLevel(int ID) { int[] levelData = levelDatabase[ID]; spawn.SpawnSystem(spawnGoodGuy, SpawnBadGuy, levelData); currentState = startCombatState; DisableButtons(); }
private void Update() { currentBattleState = GetState(m_currentState); if (currentBattleState != null) { currentBattleState.OnUpdate(); } }
void Update() { if (Network.isClient || Network.isServer) { this.currentBattleState = this.currentBattleState.UpdateState(this); this.currentBattleState.Update(this); } }
private void Awake() { startCombatState = new StartCombat(this); playerTurnState = new PlayerTurn(this); enemyTurnState = new EnemyTurn(this); battleLostState = new BattleLost(this); battleWonState = new BattleWon(this); blankState = new BlankState(this); currentState = blankState; missionButtonArray = GameObject.FindGameObjectsWithTag("MissionButton"); }
public void Change(BattleState next, IAction action = null) { // exit current state if (state != null) { state.OnExit(); } // set new state state = states[next]; state.OnEnter(action); }
internal BattleStateComponent(BattleData data, IBattleState actionState, IBattleState characterSetState, IBattleState executionState, IEventCreator eventCreator) { actionState.CheckNull("actionState"); characterSetState.CheckNull("characterSetState"); executionState.CheckNull("executionState"); eventCreator.CheckNull("eventCreator"); ActionState = actionState; CharacterSetState = characterSetState; ExecutionState = executionState; this.eventCreator = eventCreator; this.data = data; }
public void StopStateMechine(BattleResult result) { //清理所有格子 BattleboxHelper.Instance.ClearAllBlocks(); //相机照射主角 CameraHelper.Instance.ChangeFollow(GameRuntimeData.Instance.Player.View.transform); //Jyx2_UIManager.Instance.HideUI("BattleActionOrderPanel"); IBattleState curState = GetState(m_currentState); if (curState != null) { curState.OnLeaveState(); } if (m_roleFocusRing != null) { Jyx2ResourceHelper.ReleasePrefabInstance(m_roleFocusRing); m_roleFocusRing = null; } m_currentState = BattleManager.BattleViewStates.None; CurrentRole = null; m_callback?.Invoke(result); }
private void OnBattleContinuation() { while (_battleState.GetRound() < Config.MaxRoundCount) { for (var i = 0; i < Config.MaxRoundCount; i++) { while (_battleHelper.GetCurrentAttackQueue().Count != 0) { var action = _battleHelper.OnNextAction(); if (action is Defence) { Config.Logger.LogMessage($"{action.Stack().Unit.GetType().Name} is defending"); } else if (action is Await) { _battleHelper.OnAwait(action.Stack()); } var loser = _battleHelper.CheckLoser(); if (loser == null) { continue; } var winner = loser.Equals(_battleHelper.GetFirstPlayer()) ? _battleHelper.GetFirstPlayer() : _battleHelper.GetSecondPlayer(); _battleState = new PlayerWon(_battleState.GetRound(), winner); OnBattleFinish(); return; } _battleHelper.OnNextTurn(); } _battleState = new InProgress(_battleState.GetRound() + 1); } _battleState = new TimeLimit(); OnBattleFinish(); }
public void SwitchState(BattleManager.BattleViewStates toState) { if (toState == m_currentState) { IBattleState temp = GetState(toState); temp.RefreshState();//说明是刷新状态 return; } IBattleState toObj = GetState(toState); if (toObj == null) { Debug.LogError("不存在状态" + toState.ToString() + ",无法完成转换"); return; } IBattleState curState = GetState(m_currentState); if (curState != null) { curState.OnLeaveState(); } m_currentState = toState; toObj.OnEnterState(); }
public void ChangeState(IBattleState newState) { Debug.Log("Battle state changed from '" + currentState + "' to '" + newState + "'"); currentState = newState; currentState.Enter(); }
/// <summary> /// 生成時 /// </summary> public BattleContext() { CurrentState = stateInit; CurrentState.ExecuteEntry(this); }
private void OnPause(Player pausedBy) => _battleState = new Pause(_battleState.GetRound(), pausedBy);
private void OnBattleStart() { _battleState = new InProgress(_battleState.GetRound() + 1); OnBattleContinuation(); }
/// <summary> /// ステート遷移 /// </summary> /// <param name="state">遷移先のステート</param> public void ChangeState(IBattleState state) { CurrentState.ExecuteExit(this); CurrentState = state; CurrentState.ExecuteEntry(this); }
public void NewStateCallback(IBattleState state) { stateMachine.ChangeState(state); }
public void SelectLevel(int ID) { int[] levelData = levelDatabase[ID]; spawn.SpawnSystem(spawnGoodGuy, SpawnBadGuy, levelData); currentState = startCombatState; DisableButtons(); }
private void SetNextState() { if (!CurrentState.IsDone) return; var nextState = GetNextState(CurrentState); nextState.Init(data); while (nextState.IsDone) { nextState = GetNextState(nextState); nextState.Init(data); } CurrentState = nextState; }
public void Initialize() { CurrentState = CharacterSetState; CurrentState.Init(data); }
void Awake() { this.canvas = GetComponentInParent <Canvas> (); this.currentBattleState = new CountdownState(this); }
private void Awake() { startCombatState = new StartCombat(this); playerTurnState = new PlayerTurn(this); enemyTurnState = new EnemyTurn(this); battleLostState = new BattleLost(this); battleWonState = new BattleWon(this); blankState = new BlankState(this); currentState = blankState; missionButtonArray = GameObject.FindGameObjectsWithTag("MissionButton"); }
private IBattleState GetNextState(IBattleState current) { if (current == ActionState) return ExecutionState; else if (current == CharacterSetState) return ActionState; else if (current == ExecutionState) return CharacterSetState; throw new InvalidOperationException("Current state is unkown"); }