using Base;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LaptopSimulator2015
{
public interface Minigame
{
///
/// The minigames displayed name, found in installers title and tooltips
///
string name { get; }
///
/// The minigames icon, found in installers and on desktop
///
Image icon { get; }
///
/// Added to credits, to be used for crediting authours of used icons etc
///
string[] credits { get; }
///
/// Level on which the Minigame becomes visible
///
int availableAfter { get; }
///
/// Defines the delay between frames
///
int gameClock { get; }
///
/// Color to be painted to the Background before calling the draw method
///
Color backColor { get; }
///
/// In what quality to draw the frames
///
bool isLowQuality { get; }
///
/// DO NOT CHANGE! INTERNAL USE ONLY!
///
Panel desktopIcon { get; set; }
///
/// Called before each time before gameTick, to be used for resetting/initializing variables
///
/// A temporary Graphics object, should not be used
/// The panel on which the minigame is displayed
/// The timer used for scheduling frames
void initGame(Panel minigamePanel, Timer minigameTimer);
///
/// Called physics frame
///
/// Graphics object, to be used for drawing the scene
/// The panel on which the minigame is displayed
/// The timer used for scheduling frames
/// The amount of total displayed frames
void gameTick(GraphicsWrapper g, Panel minigamePanel, Timer minigameTimer, uint minigameTime);
///
/// Called graphics frame
///
/// Graphics object, to be used for drawing the scene
/// The panel on which the minigame is displayed
/// The timer used for scheduling frames
/// The amount of total displayed frames
void draw(GraphicsWrapper g, Panel minigamePanel, Timer minigameTimer, uint minigameTime);
}
public interface Level : Minigame
{
///
/// Description shown on the installers first page
///
string installerText { get; }
///
/// Amount of seconds the minigame is to be played times ten
///
int installerProgressSteps { get; }
}
public interface Goal : Minigame
{
///
/// The level on which the Goal is reached
///
int playableAfter { get; }
///
/// The text displayed after the Minigame becomes visible
///
string[] availableText { get; }
///
/// The text displayed after finding out about the fact the Goal is not reached
///
string[] incompleteText { get; }
///
/// The text displayed after Goal is reached (NOT after the goals minigame is played)
///
string[] completeText { get; }
}
}