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
/// <summary>
/// The minigames displayed name, found in installers title and tooltips
/// </summary>
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; }
/// DO NOT CHANGE! INTERNAL USE ONLY!
Panel desktopIcon { get; set; }
/// Called before each time before gameTick, to be used for resetting/initializing variables
/// <param name="g">A temporary Graphics object, should not be used</param>
/// <param name="minigamePanel">The panel on which the minigame is displayed</param>
/// <param name="minigameTimer">The timer used for scheduling frames</param>
void initGame(Panel minigamePanel, Timer minigameTimer);
/// Called physics frame
/// <param name="g">Graphics object, to be used for drawing the scene</param>
/// <param name="minigameTime">The amount of total displayed frames</param>
void gameTick(GraphicsWrapper g, Panel minigamePanel, Timer minigameTimer, uint minigameTime);
/// Called graphics frame
void draw(GraphicsWrapper g, Panel minigamePanel, Timer minigameTimer, uint minigameTime);
/// Color to be painted to the Background before calling the draw method
Color backColor { get; }
}
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; }