//---------------------------------------------------------------------------------------------------------------------------------------------------
//
// 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 = "";
}
}
}