private void NewGame() { TimeLogic.NewGame(); TerrainLogic.NewGame(); CharacterLogic.NewGame(); PlantLogic.NewGame(); }
void Awake() { TimeLogic.SetTime(1, 0, 0); TerrainLogic.Clear(); TerrainLogic.ReadMap(); CharacterLogic.Clear(); CharacterLogic.ReadFamilyTree(); }
private void SetFocus() { int y = TerrainLogic.GetHeight(focusBase); focus.x = focusBase.x; focus.y = y; focus.z = focusBase.z; }
public void CharacterGoto(int[] target) { meTarget = TerrainLogic.GetPosition(target[0], target[1]); LookAtHorizontal(meTarget); GetComponent <Animation> () ["PtArma|PtWalk"].speed = animationSpeed; GetComponent <Animation> ().Play("PtArma|PtWalk"); meArrived = false; }
void Update() { if (!Input.GetMouseButton(0)) { return; } if (EventSystem.current.IsPointerOverGameObject()) { return; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (ActionLogic.selChr == null) { if (Physics.Raycast(ray, out hit)) { if (hit.collider.gameObject.name.Contains("Chr")) { Pick(hit); } else { DragCamera(); } } else { DragCamera(); } } else { if (Physics.Raycast(ray, out hit)) { if (hit.collider.gameObject.name == ActionLogic.selChr.flesh.name) { return; } else if (hit.collider.gameObject.name.Contains("Chr")) { Pick(hit); } else if (hit.collider.gameObject.name.Contains("Cloud")) { return; } else if (hit.collider.gameObject.name.Contains("Plot")) { if (TerrainLogic.Find(hit.collider.gameObject.name).occupied == false) { ActionLogic.selChr.Goto(hit.collider.name); ClearSelection();; } else { return; } } } } }
void Start() { TerrainLogic.Initialize(); CharacterLogic.Initialize(); }
public static void LoadFromStream(Stream stream, Game game) { using var binaryReader = new BinaryReader(stream, Encoding.Unicode, true); var reader = new SaveFileReader(binaryReader); var gameState = new GameState(); GameLogic gameLogic = null; GameClient gameClient = null; CampaignManager campaignManager = null; var terrainLogic = new TerrainLogic(); var terrainVisual = new TerrainVisual(); var ghostObjectManager = new GhostObjectManager(); while (true) { var chunkName = reader.ReadAsciiString(); if (chunkName == "SG_EOF") { if (stream.Position != stream.Length) { throw new InvalidDataException(); } break; } reader.BeginSegment(); switch (chunkName) { case "CHUNK_GameState": gameState.Load(reader); break; case "CHUNK_Campaign": campaignManager = new CampaignManager(); campaignManager.Load(reader); break; case "CHUNK_GameStateMap": GameStateMap.Load(reader, game); game.Scene3D.PartitionCellManager.OnNewGame(); break; case "CHUNK_TerrainLogic": terrainLogic.Load(reader); break; case "CHUNK_TeamFactory": game.Scene3D.TeamFactory.Load(reader, game.Scene3D.PlayerManager); break; case "CHUNK_Players": game.Scene3D.PlayerManager.Load(reader, game); break; case "CHUNK_GameLogic": gameLogic = new GameLogic(game.Scene3D); gameLogic.Load(reader); break; case "CHUNK_ParticleSystem": game.Scene3D.ParticleSystemManager.Load(reader); break; case "CHUNK_Radar": game.Scene3D.Radar.Load(reader); break; case "CHUNK_ScriptEngine": game.Scripting.Load(reader); break; case "CHUNK_SidesList": game.Scene3D.PlayerScripts.Load(reader); break; case "CHUNK_TacticalView": ((RtsCameraController)game.Scene3D.CameraController).Load(reader); break; case "CHUNK_GameClient": gameClient = new GameClient(game.Scene3D, gameLogic); gameClient.Load(reader); break; case "CHUNK_InGameUI": game.AssetStore.InGameUI.Current.Load(reader); break; case "CHUNK_Partition": game.Scene3D.PartitionCellManager.Load(reader); break; case "CHUNK_TerrainVisual": terrainVisual.Load(reader, game); break; case "CHUNK_GhostObject": ghostObjectManager.Load(reader, gameLogic, game); break; default: throw new InvalidDataException($"Unknown chunk type '{chunkName}'."); } reader.EndSegment(); } // If we haven't started a game yet (which will be the case for // "mission start" save files), then start it now. if (!game.InGame) { game.StartCampaign( campaignManager.CampaignName, campaignManager.MissionName); } }