public SfmlGraphicsSystem(GameSystemManager manager, GameStateHelper gameStateHelper, RenderWindow sfmlWindow, Tile[,] gameTiles) { LoadGlobals(); SystemManager = manager; _gameStateHelper = gameStateHelper; _sfmlWindow = sfmlWindow; //Don't create window here as we need the events to be in user input system _gameTiles = gameTiles; worldXLength = this._gameTiles.GetLength(0); worldYLength = this._gameTiles.GetLength(1); _systemEntities = new List <Entity>(); var fontPath = @"G:\Programming\CSConsoleRL\Oct172018Try\CSConsoleRL\CSConsoleRL\bin\Debug\Data\Fonts\arial.ttf"; if (!File.Exists(fontPath)) { fontPath = @"F:\Programming\CSConsoleRL\Data\Fonts\arial.ttf"; } if (!File.Exists(fontPath)) { fontPath = @"/home/jason/dev/CSConsoleRL/Data/Fonts/arial.ttf"; } _gameFont = new Font(fontPath); LoadTextures(); }
public override void UpdateState() { if (_loadingOp.isDone && !_isLoadFinish) { _isLoadFinish = true; string sceneName = string.Empty; sceneName = GameStateHelper.SetSceneName(GameStateManager.Instance.NextState); _nextOp = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive); sceneName = GameStateHelper.SetSceneName(GameStateManager.Instance.PreviousState); _prevOp = SceneManager.UnloadSceneAsync(sceneName); } if (_nextOp != null && _prevOp != null && _isLoadFinish && !_isUnloadFinish) { if (_prevOp.isDone && _nextOp.isDone) { _loadingOp = SceneManager.UnloadSceneAsync("Loading"); _isUnloadFinish = true; } } if (_loadingOp.isDone && _isLoadFinish && _isUnloadFinish) { GameStateManager.Instance.ChangeState(GameStateManager.Instance.NextState); } }
// Token: 0x060019C9 RID: 6601 RVA: 0x0001143A File Offset: 0x0000F63A private void OnInputChangeEvent(GlobalEvents.InputChanged ev) { if (ev.Key == GameInputKey.ChangeTeam && ev.IsDown && GameStateHelper.CanChangeTeam()) { GameState.Current.Actions.ChangeTeam(); } }
public MovementSystem(GameSystemManager manager, Tile[,] gameTiles, GameStateHelper gameState) { SystemManager = manager; _systemEntities = new List <Entity>(); _gameTiles = gameTiles; _tileDictionary = new TileTypeDictionary(); _gameState = gameState; }
public AiSystem(GameSystemManager _manager, Tile[,] _gameTiles, GameStateHelper gameStateHelper) { SystemManager = _manager; _systemEntities = new List <Entity>(); this._gameTiles = _gameTiles; _aiEnabled = true; _gameStateHelper = gameStateHelper; }
public IGameEvent GetCurrentStateResponse(Entity entity, GameStateHelper gameStateHelper) { EvaluateConditions(entity, gameStateHelper); var currentState = _states[CurrentState]; return(currentState.GetAiStateResponse(gameStateHelper)); }
// Token: 0x06000E71 RID: 3697 RVA: 0x000623C8 File Offset: 0x000605C8 public void OnEnter() { GamePageManager.Instance.UnloadCurrentPage(); GameStateHelper.RespawnLocalPlayerAtRandom(); GameState.Current.PlayerState.SetState(PlayerStateId.Playing); global::EventHandler.Global.Fire(new GameEvents.PlayerIngame()); global::EventHandler.Global.AddListener <GameEvents.PlayerDied>(new Action <GameEvents.PlayerDied>(this.OnPlayerKilled)); }
public IGameEvent GetAiStateResponse(GameStateHelper gameStateHelper) { var map = gameStateHelper.GetVar <Tile[, ]>("GameTiles"); var position = _entity.GetComponent <PositionComponent>(); var mainChar = gameStateHelper.GetVar <Entity>("MainEntity"); int horMovement = 0, verMovement = 0; int mainCharX = mainChar.GetComponent <PositionComponent>().ComponentXPositionOnMap; int mainCharY = mainChar.GetComponent <PositionComponent>().ComponentYPositionOnMap; //Call to A* Pathfinding to get path var path = PathfindingHelper.Instance.Path(map, new Vector2i(position.ComponentXPositionOnMap, position.ComponentYPositionOnMap), new Vector2i(mainCharX, mainCharY)); if (path != null) { if (path != null) { _path = path; } //if (_path[1] != null) seekerAi.AnalyzedPath = path[1]; // For debugging color in path and analyzed tiles // foreach (var tile in _path[1]) //{ // var fadingColorEnt = new FadingColorEntity("yellow"); // fadingColorEnt.GetComponent<PositionComponent>().ComponentXPositionOnMap = tile.X; // fadingColorEnt.GetComponent<PositionComponent>().ComponentYPositionOnMap = tile.Y; // SystemManager.RegisterEntity(fadingColorEnt); //} //foreach (var tile in path) //{ // var fadingColorEnt = new FadingColorEntity("green"); // fadingColorEnt.GetComponent<PositionComponent>().ComponentXPositionOnMap = tile.X; // fadingColorEnt.GetComponent<PositionComponent>().ComponentYPositionOnMap = tile.Y; // SystemManager.RegisterEntity(fadingColorEnt); //} } //Move to desired location if (position.ComponentXPositionOnMap < mainCharX) { horMovement++; } else if (position.ComponentXPositionOnMap > mainCharX) { horMovement--; } if (position.ComponentYPositionOnMap < mainCharY) { verMovement++; } else if (position.ComponentYPositionOnMap > mainCharY) { verMovement--; } return(new MovementInputEvent(_entity.Id, horMovement, verMovement)); }
// Token: 0x06001A31 RID: 6705 RVA: 0x000115ED File Offset: 0x0000F7ED public void Dispose() { if (!this.isDisposed) { this.isDisposed = true; AutoMonoBehaviour <UnityRuntime> .Instance.OnUpdate -= this.OnUpdate; GameStateHelper.ExitGameMode(); } }
public TargetingSystem(GameSystemManager manager, Tile[,] gameTiles, GameStateHelper gameStateHelper) { SystemManager = manager; _systemEntities = new List <Entity>(); _targetedCoords = new Vector2i(0, 0); _gameStateHelper = gameStateHelper; _gameTiles = gameTiles; _tileDictionary = new TileTypeDictionary(); StopTargetingMode(); }
// Token: 0x06001960 RID: 6496 RVA: 0x00087C8C File Offset: 0x00085E8C public void Dispose() { if (!this.isDisposed) { this.isDisposed = true; AutoMonoBehaviour <UnityRuntime> .Instance.OnUpdate -= this.OnUpdate; GameState.Current.PlayerData.SendJumpUpdate -= base.Operations.SendJump; GameState.Current.PlayerData.SendMovementUpdate -= base.Operations.SendUpdatePositionAndRotation; GameStateHelper.ExitGameMode(); } }
public LogicHandler(ResourceManager resourceManager, InputHandler inputHandler) { _resourceManager = resourceManager; _inputHandler = inputHandler; _playerLogicHandler = new PlayerLogicHandler(); _roamLogicHandler = new RoamLogicHandler(resourceManager); _startAndExitMenuLogicHandler = new StartAndExitMenuLogicHandler(resourceManager, inputHandler); _transitionHandler = new TransitionHandler(resourceManager, _playerLogicHandler, _roamLogicHandler, _startAndExitMenuLogicHandler); GameStateHelper.ChangeState(GameStates.Start); }
// Token: 0x06001A9C RID: 6812 RVA: 0x0008B318 File Offset: 0x00089518 public bool SendChatMessage(string message, ChatContext context) { message = ChatMessageFilter.Cleanup(message); if (!string.IsNullOrEmpty(message) && !ChatMessageFilter.IsSpamming(message)) { GameStateHelper.OnChatMessage(PlayerDataManager.Cmid, PlayerDataManager.Name, message, PlayerDataManager.AccessLevel, (byte)ChatManager.CurrentChatContext); this.Actions.ChatMessage(message, (byte)ChatManager.CurrentChatContext); return(true); } return(false); }
protected bool MeleeSeek1ToPatrol1(Entity entity, GameStateHelper gameStateHelper) { return(true); _counter--; if (_counter <= 0) { return(true); } return(false); }
protected bool Patrol1ToMeleeSeek1(Entity entity, GameStateHelper gameStateHelper) { return(false); _counter++; if (_counter >= 5) { return(true); } return(false); }
// Token: 0x060019C8 RID: 6600 RVA: 0x00088F94 File Offset: 0x00087194 public void Dispose() { if (!this.isDisposed) { this.isDisposed = true; AutoMonoBehaviour <UnityRuntime> .Instance.OnUpdate -= this.OnUpdate; GameState.Current.PlayerData.SendJumpUpdate -= base.Operations.SendJump; GameState.Current.PlayerData.SendMovementUpdate -= base.Operations.SendUpdatePositionAndRotation; global::EventHandler.Global.RemoveListener <GlobalEvents.InputChanged>(new Action <GlobalEvents.InputChanged>(this.OnInputChangeEvent)); GameStateHelper.ExitGameMode(); } }
public UserInputSystem(GameSystemManager _manager, RenderWindow sfmlWindow, GameStateHelper gameStateHelper) { SystemManager = _manager; _systemEntities = new List <Entity>(); _sfmlWindow = sfmlWindow; _sfmlWindow.KeyPressed += SfmlWindow_KeyPressed; _sfmlWindow.KeyReleased += SfmlWindow_KeyReleased; _gameStateHelper = gameStateHelper; _inputs = new Queue <Keyboard.Key>(); }
private void ExecuteStateTransition() { var transition = _transition as StateTransition; if (transition == null) // do we fade in here? no not necessariliy, this should never happen though { return; } // state transition only has the state we are going to. // this state is pretty much guaranteed to not be roam unless coming from exit menu resume or maybe from chat? // don't have to set transitioning to false since it will be handled elsewhere GameStateHelper.ChangeState(transition.DestinationState); }
private void EvaluateConditions(Entity entity, GameStateHelper gameStateHelper) { List <AiStateMachineNode> nodes = GetAllNodesForCurrentState(); foreach (var node in nodes) { if (node.Condition(entity, gameStateHelper)) { CurrentState = node.PostState; GameLogger.Instance().LogDebug($"Switching entity ${entity.Id} from state {node.PreState} to {node.PostState}"); return; } } }
// Token: 0x06000EA5 RID: 3749 RVA: 0x00062B1C File Offset: 0x00060D1C public void OnUpdate() { GameStateHelper.UpdateMatchTime(); if (Input.GetKeyDown(KeyCode.L) && !GameData.Instance.HUDChatIsTyping) { if (GamePageManager.IsCurrentPage(IngamePageType.None)) { GamePageManager.Instance.LoadPage(IngamePageType.PausedWaiting); } else { GamePageManager.Instance.UnloadCurrentPage(); } } }
private void LaunchGame() { var username = IsMF ? _ConfigManager.MFUsername : Environment.UserName; var originalAppScreensPath = PathHelper.GetOriginalAppScreensPathByUsername(username); if (GameStateHelper.HasUnknownRunningGame(new List <string> { _ConfigManager.MFPath, _ConfigManager.GFPath, })) { UtilHelper.ShowAlertDialog(new AlertDialogInterfaceModel { Content = "有未知激战2客户端正在运行" }); return; } if (!IOHelper.IsDirectoryLnk(originalAppScreensPath)) { if (!IOHelper.IsDirectoryEmpty(originalAppScreensPath)) { var content = "创建截图文件夹快捷方式时遇到问题。\r\n\r\n截图文件夹:\r\n"; content += originalAppScreensPath; content += "\r\n已有截图,需要对其进行迁移。\r\n\r\n请确认其截图属于美服还是国服,然后从下面选择。"; UtilHelper.ShowConfirmDialog(new ConfirmDialogInterfaceModel { Title = "正在启动" + (IsMF ? "美服" : "国服"), Content = content, ConfirmButtonText = "国服", CancelButtonText = "美服", ShowClose = true, ConfirmCallback = () => { MoveScreensAndLaunch(originalAppScreensPath, _ConfigManager.GFPath); }, CancelCallback = () => { MoveScreensAndLaunch(originalAppScreensPath, _ConfigManager.MFPath); }, }); return; } } DoLaunchGame(); }
// Token: 0x06001A2F RID: 6703 RVA: 0x00089B88 File Offset: 0x00087D88 public TrainingRoom() { GameState.Current.MatchState.RegisterState(GameStateId.PregameLoadout, new PregameLoadoutState(GameState.Current.MatchState)); GameState.Current.MatchState.RegisterState(GameStateId.MatchRunning, new OfflineMatchState(GameState.Current.MatchState)); GameState.Current.PlayerState.RegisterState(PlayerStateId.Playing, new PlayerPlayingState(GameState.Current.PlayerState)); GameState.Current.PlayerState.RegisterState(PlayerStateId.Killed, new PlayerKilledOfflineState(GameState.Current.PlayerState)); GameState.Current.PlayerState.RegisterState(PlayerStateId.Paused, new PlayerPausedState(GameState.Current.PlayerState)); GameState.Current.PlayerState.RegisterState(PlayerStateId.Overview, new PlayerOverviewState(GameState.Current.PlayerState)); GameState.Current.Actions.KillPlayer = delegate() { if (GameState.Current.IsInGame) { GameState.Current.PlayerKilled(0, PlayerDataManager.Cmid, (UberstrikeItemClass)0, (BodyPart)0, Vector3.zero); } }; GameState.Current.Actions.ExplosionHitDamage = delegate(int targetCmid, ushort damage, Vector3 force, byte slot, byte distance) { GameStateHelper.PlayerHit(targetCmid, damage, BodyPart.Body, force); if (GameState.Current.PlayerData.Health <= 0) { GameState.Current.PlayerData.Set(PlayerStates.Dead, true); GameState.Current.PlayerKilled(targetCmid, targetCmid, Singleton <WeaponController> .Instance.GetCurrentWeapon().View.ItemClass, BodyPart.Body, force); } }; GameState.Current.Actions.JoinTeam = delegate(TeamID team) { GameActorInfo gameActorInfo = new GameActorInfo { Cmid = PlayerDataManager.Cmid, SkinColor = PlayerDataManager.SkinColor }; GameState.Current.PlayerData.Player = gameActorInfo; GameState.Current.Players[gameActorInfo.Cmid] = gameActorInfo; GameState.Current.InstantiateAvatar(gameActorInfo); GameState.Current.MatchState.SetState(GameStateId.MatchRunning); UnityRuntime.StartRoutine(this.ShowTrainingGameMessages()); }; TabScreenPanelGUI.SortPlayersByRank = new Action <IEnumerable <GameActorInfo> >(GameStateHelper.SortDeathMatchPlayers); AutoMonoBehaviour <UnityRuntime> .Instance.OnUpdate += this.OnUpdate; GameStateHelper.EnterGameMode(); GameState.Current.MatchState.SetState(GameStateId.PregameLoadout); }
public IGameEvent GetAiStateResponse(GameStateHelper gameStateHelper) { var map = gameStateHelper.GetVar <Tile[, ]>("GameTiles"); var position = _entity.GetComponent <PositionComponent>(); var currentPatrolPoint = _patrolPoints[_patrolPointIndex]; int horMovement = 0, verMovement = 0; // Have we reached the current patrol point? Then move on to the next one if (position.ComponentXPositionOnMap == currentPatrolPoint.X && position.ComponentYPositionOnMap == currentPatrolPoint.Y) { IncrPatrolPointIndex(); currentPatrolPoint = _patrolPoints[_patrolPointIndex]; } // Call to A* Pathfinding to get path var path = PathfindingHelper.Instance.Path(map, new Vector2i(position.ComponentXPositionOnMap, position.ComponentYPositionOnMap), new Vector2i(currentPatrolPoint.X, currentPatrolPoint.Y)); var nextPos = path[0]; // Move to desired location if (position.ComponentXPositionOnMap < nextPos.X) { horMovement++; } else if (position.ComponentXPositionOnMap > nextPos.X) { horMovement--; } if (position.ComponentYPositionOnMap < nextPos.Y) { verMovement++; } else if (position.ComponentYPositionOnMap > nextPos.Y) { verMovement--; } return(new MovementInputEvent(_entity.Id, horMovement, verMovement)); }
public void UpdateGameLogic() { if (_transitionHandler.Transitioning) { _transitionHandler.ContinueTransition(); } else if (GameStateHelper.CurrentState == GameStates.Start) { GameStateHelper.ChangeState(GameStates.StartMenu); } else if (GameStateHelper.CurrentState == GameStates.StartMenu || GameStateHelper.CurrentState == GameStates.ExitMenu) { _startAndExitMenuLogicHandler.UpdateGameLogic(); } else if (GameStateHelper.CurrentState == GameStates.Roam) { _roamLogicHandler.UpdateLogic(); } else if (GameStateHelper.CurrentState == GameStates.Chat) { } }
// Token: 0x06001A3E RID: 6718 RVA: 0x0008A1DC File Offset: 0x000883DC public TryInShopRoom() { GameState.Current.MatchState.RegisterState(GameStateId.MatchRunning, new OfflineMatchState(GameState.Current.MatchState)); GameState.Current.PlayerState.RegisterState(PlayerStateId.Playing, new PlayerPlayingState(GameState.Current.PlayerState)); GameState.Current.PlayerState.RegisterState(PlayerStateId.Paused, new PlayerPausedState(GameState.Current.PlayerState)); GameState.Current.Actions.DirectHitDamage = delegate(int targetCmid, ushort damage, BodyPart part, Vector3 force, byte slot, byte bullets) { GameState.Current.Player.MoveController.ApplyForce(force, CharacterMoveController.ForceType.Additive); }; AutoMonoBehaviour <UnityRuntime> .Instance.OnUpdate += this.OnUpdate; GameStateHelper.EnterGameMode(); GameActorInfo gameActorInfo = new GameActorInfo { Cmid = PlayerDataManager.Cmid, SkinColor = PlayerDataManager.SkinColor }; GameState.Current.PlayerData.Player = gameActorInfo; GameState.Current.Players[gameActorInfo.Cmid] = gameActorInfo; GameState.Current.InstantiateAvatar(gameActorInfo); MenuPageManager.Instance.UnloadCurrentPage(); GameState.Current.MatchState.SetState(GameStateId.MatchRunning); }
// Token: 0x06000E6E RID: 3694 RVA: 0x0000A7EA File Offset: 0x000089EA public void OnUpdate() { GameStateHelper.UpdateMatchTime(); }
protected override void OnStartRunning() { _helper = new GameStateHelper(EntityManager, Entities); // _animationHandler = new CompletableHandlersGroup<AnimationComponent, GravityAnimationMarker>(EntityManager, Entities); // _animationHandler.OnCompleted += OnAnimationCompleted; }
public GameStateSystem(GameSystemManager manager, GameStateHelper gameStateHelper) { SystemManager = manager; _gameStateHelper = gameStateHelper; _systemEntities = new List <Entity>(); }
private void ExecuteRoamTransition() { var transition = _transition as RoamTransition; if (transition == null) { return; } if (transition.DestinationRegion == _roamLogicHandler.CurrentPlayerRegion && GameStateHelper.CurrentState == GameStates.Roam) { _roamLogicHandler.UpdatePlayerPositionWithTransition(transition); return; } var adjacentRegions = RegionLayout.RegionInfo[transition.DestinationRegion].AdjacentRegions; //var adjacentRegions = RegionMapper.GetAdjacentRegions(transition.DestinationRegion); // this is going to become regions to load var currentlyLoadedRegions = new List <RegionNames>(_roamLogicHandler.Regions.Keys.ToList()); // this is going to become regions to unload? List <RegionNames> regionsToLoad = new List <RegionNames>(); List <RegionNames> regionsToUnload = new List <RegionNames>(); // load the destination region if it isn't already loaded (this will happen sometimes when loading files) if (!currentlyLoadedRegions.Contains(transition.DestinationRegion)) { regionsToLoad.Add(transition.DestinationRegion); } // load everything this is adjacent to the region we are going to but isn't currently loaded foreach (var region in adjacentRegions) { if (!currentlyLoadedRegions.Contains(region)) { regionsToLoad.Add(region); } } // unload everything that is current loaded but no adjacent to the region we are currently going to foreach (var region in currentlyLoadedRegions) { if (!adjacentRegions.Contains(region)) { regionsToUnload.Add(region); } } _resourceManager.RequestRegionLoadUnload(regionsToLoad, regionsToUnload); // we can wait on load if we are loading new regions and fading if (transition.Fade) { _waitOnLoad = true; } _roamLogicHandler.UpdatePlayerPositionWithTransition(transition); if (GameStateHelper.CurrentState != GameStates.Roam) { GameStateHelper.ChangeState(GameStates.Roam); } }
// Token: 0x060019EF RID: 6639 RVA: 0x0001101D File Offset: 0x0000F21D protected override void OnChatMessage(int cmid, string name, string message, MemberAccessLevel accessLevel, byte context) { GameStateHelper.OnChatMessage(cmid, name, message, accessLevel, context); }