//--------------------------------------------------------------------------------------------------------------------------------------------------- // // Copyright (C)2007 DarkWynter Studios. All rights reserved. // //--------------------------------------------------------------------------------------------------------------------------------------------------- // {Contact : darkwynter.com for licensing information //--------------------------------------------------------------------------------------------------------------------------------------------------- namespace DarkWynter.Game.Globals { #region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using System.Xml; using DarkWynter.Engine.Globals; using System.Diagnostics; #endregion /// /// Contains the Global Scoreboard where application-scope variables are posted and read. /// public static class Statics_Game { /// /// Switches to enable/disable default AI behavior /// public class AISwitches { /// /// Enable/Disable AI Vision search /// public bool enableAIVisionSearch; /// /// Enable/Disable Attack mode /// public bool enableAttack; /// /// Enable/Disable default search /// public bool enableDefaultSearch; /// /// Enable/Disable Destroy mode /// public bool enableDestroy; /// /// Enable/Disable Evade mode /// public bool enableEvade; /// /// Enable/Disable moving towards the target /// public bool enableGoTo; /// /// Enable/Disable Jump /// public bool enableJump; /// /// Constructor /// public AISwitches() { enableAIVisionSearch = false; enableAttack = true; enableDefaultSearch = true; enableDestroy = true; enableEvade = true; enableGoTo = true; enableJump = true; } } /// /// AI Settings /// public struct AISettings { // Number between 1 and 10 for smartness (10 being super smart) /// /// AI IQ /// public static int AI_INTELLIGENCE = 8; /// /// AI Maximum health /// public static int AI_MAX_HEALTH = 100; /// /// Switches to enable/disable default AI behavior /// public static AISwitches aiSwitches = new AISwitches(); } public struct HumanSettings { public static Enums_Game.HUDGPUDebugScreen debugScreen = Enums_Game.HUDGPUDebugScreen.NONE; } /// /// Stores all Game related static variables /// public struct GameSettings { /// /// Number of keys to collect inorder to progress to the next stage in story mode /// public static int STORYMODE_NUM_KEYS_TO_COLLECT = 10; /// /// Health gain for collecting a key /// public static float HEALTH_BOOST_FOR_KEY = 5.0f; /// /// Maximum time to play the sound for a particle (millisec) /// public static float PARTICLE_SOUND_TIME_LIMIT = 10000.0f; /// /// Minimum number of players to run the game /// public static int MIN_NUMBER_OF_PLAYERS = 1; /// /// Maximum number of players supported /// public static int MAX_NUMBER_OF_PLAYERS = 4; /// /// Default number of players /// public static int DEFAULT_NUMBER_OF_PLAYERS = 1; /// /// Number of players per team /// public static int NUMBER_OF_PLAYERS_PER_TEAM = 1; /// /// Current game type /// public static Enums_Game.GameType gameType = Enums_Game.GameType.NONE_SELECTED; /// /// Maximum number of kills based on the current game type /// public static int maxNumberOfKills; /// /// Milliseconds before the player spawns again /// public static int RESPAWN_DELAY = 5000; // Update HUD for resize // public static bool hudNeedUpdate = false; // Update HUD back to origninal size public static bool hudStopResize = false; // G2L switch to control problem state public static bool isProblemFinished = false; // public static int[,] scoringMetric = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } }; // G2L problem number public static int currentChallengeNumber = 0; // G2L scoring metric public static int[,] scoringMetric = { { 0, 0, 0 ,0 }, { 50, 100, 150, 200 }, { 40, 80, 125 ,160 }, { 30, 60, 100 , 120 }, { 20, 40, 75 ,80 }, { 10, 20, 50 ,40 }, { 0, 0, 0 ,0 }}; // Tries index public static int sMRows = 7; // Problem index public static int sMColumns = 4; // G2L tracking number of tries for xp purposes public static int triesNumber = 0; // Experience points for the player public static int experiencePoints; // G2L Number of coins collected public static int coinsCollected = 0; /// /// Check for if compiler open for HUD /// public static bool isCompilerOpen; public static float TotalScore() { int coinMultiplier = 4; float timeDivisor = 180 - Statics_Engine.LevelSettings.gameTimer.Elapsed.Seconds; return ((GameSettings.experiencePoints + (GameSettings.coinsCollected * coinMultiplier)) + timeDivisor); } /// /// G2l Linked List /// public static List myThoughts; public static Vector3 BombCurrentPosition; public static Vector3 whereAreYou; public static string ParsesandCompilesCode = ""; } } }