This repository has been archived on 2022-08-05. You can view files and clone it, but cannot push or open issues or pull requests.
LaptopSimulator2015/Base/Minigame.cs

101 lines
3.9 KiB
C#

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; }
/// <summary>
/// The minigames icon, found in installers and on desktop
/// </summary>
Image icon { get; }
/// <summary>
/// Added to credits, to be used for crediting authours of used icons etc
/// </summary>
string[] credits { get; }
/// <summary>
/// Level on which the Minigame becomes visible
/// </summary>
int availableAfter { get; }
/// <summary>
/// Defines the delay between frames
/// </summary>
int gameClock { get; }
/// <summary>
/// Color to be painted to the Background before calling the draw method
/// </summary>
Color backColor { get; }
/// <summary>
/// In what quality to draw the frames
/// </summary>
bool isLowQuality { get; }
/// <summary>
/// DO NOT CHANGE! INTERNAL USE ONLY!
/// </summary>
Panel desktopIcon { get; set; }
/// <summary>
/// Called before each time before gameTick, to be used for resetting/initializing variables
/// </summary>
/// <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);
/// <summary>
/// Called physics frame
/// </summary>
/// <param name="g">Graphics object, to be used for drawing the scene</param>
/// <param name="minigamePanel">The panel on which the minigame is displayed</param>
/// <param name="minigameTimer">The timer used for scheduling frames</param>
/// <param name="minigameTime">The amount of total displayed frames</param>
void gameTick(GraphicsWrapper g, Panel minigamePanel, Timer minigameTimer, uint minigameTime);
/// <summary>
/// Called graphics frame
/// </summary>
/// <param name="g">Graphics object, to be used for drawing the scene</param>
/// <param name="minigamePanel">The panel on which the minigame is displayed</param>
/// <param name="minigameTimer">The timer used for scheduling frames</param>
/// <param name="minigameTime">The amount of total displayed frames</param>
void draw(GraphicsWrapper g, Panel minigamePanel, Timer minigameTimer, uint minigameTime);
}
public interface Level : Minigame
{
/// <summary>
/// Description shown on the installers first page
/// </summary>
string installerText { get; }
/// <summary>
/// Amount of seconds the minigame is to be played times ten
/// </summary>
int installerProgressSteps { get; }
}
public interface Goal : Minigame
{
/// <summary>
/// The level on which the Goal is reached
/// </summary>
int playableAfter { get; }
/// <summary>
/// The text displayed after the Minigame becomes visible
/// </summary>
string[] availableText { get; }
/// <summary>
/// The text displayed after finding out about the fact the Goal is not reached
/// </summary>
string[] incompleteText { get; }
/// <summary>
/// The text displayed after Goal is reached (NOT after the goals minigame is played)
/// </summary>
string[] completeText { get; }
}
}