//---------------------------------------------------------------------------------------------------------------------------------------------------
//
// Copyright (C)2007 DarkWynter Studios. All rights reserved.
//
//---------------------------------------------------------------------------------------------------------------------------------------------------
// {License Information: Creative Commons}
//---------------------------------------------------------------------------------------------------------------------------------------------------
namespace ElementalGame
{
#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;
#endregion
public enum GameType
{
LAST_MAN_STANDING,
POINT_DEATHMATCH,
};
// Game flow is the top of the Multiplayer Game Mode
public interface GameFlow
{
// Accessors - Required by C# Compiler
Collision collision { get; set; }
Renderer renderer { get; set; }
ObjectLibrary objectLibrary { get; set; }
// Load Object Library Content Files
void LoadGame(GraphicsDeviceManager graphics, ContentManager content);
void LoadLevel(GraphicsDeviceManager graphics, ContentManager content);
void LoadPlayerDemo(string level ,ContentManager content);
void LoadTerrainDemo(string level ,ContentManager content);
// Run Everything Based on the Game Mode
void Update(float dt);
// Update like-object and object-object collision, then update individual physics based on forces applied
void UpdateCollision(float dt);
// Human controller and AI Logic Updates
void UpdateController(float dt);
void Draw(GraphicsDevice graphicsDevice, SpriteBatch spriteBatch, List viewportList);
// Remove all content related info
void UnloadLevel();
// Copy the contents of the objectLibrary out to XML files
void SaveGame();
// Kill all the ObjectLibrary Data Structure
void UnloadGame();
void SetNumberOfBots(int num);
void SetBotIntelligence(int intelligence);
void SetGameType(GameType type);
void SetMaxKills(int maxKills);
}
}