Пример #1
0
 private void NewGame()
 {
     TimeLogic.NewGame();
     TerrainLogic.NewGame();
     CharacterLogic.NewGame();
     PlantLogic.NewGame();
 }
Пример #2
0
 void Awake()
 {
     TimeLogic.SetTime(1, 0, 0);
     TerrainLogic.Clear();
     TerrainLogic.ReadMap();
     CharacterLogic.Clear();
     CharacterLogic.ReadFamilyTree();
 }
Пример #3
0
    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;
 }
Пример #5
0
    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;
                    }
                }
            }
        }
    }
Пример #6
0
 void Start()
 {
     TerrainLogic.Initialize();
     CharacterLogic.Initialize();
 }
Пример #7
0
        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);
            }
        }