// Update is called once per frame void Update() { if (initialized) { if (lastCredits != player.GetCredits()) { int diff = player.GetCredits() - lastCredits; marker.DisplayText(diff); } lastCredits = player.GetCredits(); var texts = GetComponentsInChildren <UnityEngine.UI.Text>(); texts[1].text = player.GetPower() + ""; texts[3].text = player.unitsCommanding.Count + "/" + player.GetTotalCommandLimit(); texts[5].text = GetCreditString(player.GetCredits()) + ""; var rect = texts[5].rectTransform.rect; rect.center = texts[5].rectTransform.position; tooltipManager.AddBounds(rect, $"CREDITS: {player.GetCredits()}"); UpdatePrimaryTargetInfo(); foreach (var infos in secondaryInfosByEntity) { UpdateInfo(infos.Key ? infos.Key.gameObject : null, infos.Value); } } }
public void UpdateChain() { if (!editorMode) { SetReconstructButton(cursorScript.buildCost > player.GetCredits() ? ReconstructButtonStatus.NotEnoughCredits : ReconstructButtonStatus.Valid); } else { SetReconstructButton(ReconstructButtonStatus.Valid); } foreach (ShipBuilderPart shipPart in cursorScript.parts) { shipPart.isInChain = false; CheckPartIntersectsWithShell(shipPart); } foreach (ShipBuilderPart shipPart in cursorScript.parts) { if (shipPart.isInChain) { UpdateChainHelper(shipPart); } } foreach (ShipBuilderPart shipPart in cursorScript.parts) { CheckPartIntersectsWithShell(shipPart); } foreach (ShipBuilderPart part in cursorScript.parts) { if (part.validPos) { foreach (var part2 in cursorScript.parts) { if (part != part2 && PartIsTooClose(part, part2)) { part.validPos = false; break; } } } else { bool stillTouching = false; foreach (ShipBuilderPart part2 in cursorScript.parts) { if (part2 != part && PartIsTooClose(part, part2)) { stillTouching = true; break; } } if (!stillTouching) { part.validPos = true; } } } foreach (ShipBuilderPart shipPart in cursorScript.parts) { if (!shipPart.isInChain || !shipPart.validPos) { SetReconstructButton(ReconstructButtonStatus.PartInvalidPosition); return; } } CheckPartSizes(); CheckAbilityCaps(); }
public void Save() { save.timePlayed += Time.timeSinceLevelLoad / 60; if (SaveMenuHandler.migratedTimePlayed != null) { save.timePlayed += (int)SaveMenuHandler.migratedTimePlayed; SaveMenuHandler.migratedTimePlayed = null; } string currentPath = File.ReadAllLines(Application.persistentDataPath + "\\CurrentSavePath")[0]; save.position = player.spawnPoint; save.currentHealths = player.currentHealth; if (player.currentHealth[1] <= 0) { save.currentHealths = player.GetMaxHealth(); } save.currentPlayerBlueprint = JsonUtility.ToJson(player.blueprint); save.credits = player.GetCredits(); save.abilityCaps = player.abilityCaps; save.shards = player.shards; if (save.resourcePath == "" || save.resourcePath.Contains("main")) { save.resourcePath = SectorManager.instance.resourcePath; } save.characters = SectorManager.instance.characters; save.version = VersionNumberScript.version; for (int i = 0; i < taskManager.traversers.Count; i++) { var traverser = taskManager.traversers[i]; var missionName = traverser.nodeCanvas.missionName; var lastCheckpoint = traverser.lastCheckpointName; save.missions.Find((m) => m.name == traverser.nodeCanvas.missionName).checkpoint = lastCheckpoint; } // Calculate the save episode by finding the maximal active mission's epsiode. save.episode = 0; foreach (var mission in save.missions) { if (mission.status != Mission.MissionStatus.Inactive) { if (save.episode < mission.episode) { save.episode = mission.episode; } } } Dictionary <string, int> variables = taskManager.taskVariables; string[] keys = new string[taskManager.taskVariables.Count]; int[] values = new int[taskManager.taskVariables.Count]; int index = 0; foreach (var pair in taskManager.taskVariables) { keys[index] = pair.Key; values[index] = pair.Value; index++; } save.taskVariableNames = keys; save.taskVariableValues = values; save.reputation = player.reputation; string saveJson = JsonUtility.ToJson(save); File.WriteAllText(currentPath, saveJson); }