using System; using System.Collections.Generic; using Godot; public partial class GameData { public static bool debugMode = true; public static Random rand = new Random(seed); public static Layer[] map; public static int currentLayer = 0; public static int visibleLayer = 0; public static int lowestLayer = 0; public static bool canMove = true; public static int maxRobotCount = 10; public static List robots = new List(); public static float robotSpeed = 10f; public static float tileWidth = 6; public static float tileHeight = 4; public static Dictionary availableResearch = ResourceLoader.LoadResearch(); public static SortedDictionary availableItems = ResourceLoader.LoadItems(); public static SurvivalState survival = new SurvivalState(); public static RobotStats robotStats = new RobotStats(); public static Dictionary> gateUnlocks; public static bool loadSaveOnStart = false; public static Color primaryColor = new Color("#276ac2"); public static Color lightColor = new Color("#7efff5"); public static int ruinSize = 10; public static int layerSize = 20; public static int seed = 12345; public static Inventory inventory = new Inventory(); public static void ResetRunState() { seed = 12345; ruinSize = 10; layerSize = 20; rand = new Random(seed); survival = new SurvivalState(); robotStats = new RobotStats(); inventory = new Inventory(); availableResearch = ResourceLoader.LoadResearch(); robots.Clear(); currentLayer = 0; visibleLayer = 0; lowestLayer = 0; maxRobotCount = 10; canMove = true; } public static void RebuildRobotStatsFromResearch() { robotStats = new RobotStats(); maxRobotCount = 10; foreach (Research research in availableResearch.Values) { if (research.state == ResearchState.RESEARCHED) { robotStats.Apply(research.data.Effects); } } } }