init: initializr base code

This commit is contained in:
Renge 2022-03-31 20:52:05 -04:00
parent 82699642ca
commit 869ba41f13
7 changed files with 119 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import Game from "./Wolfie2D/Loop/Game"; import Game from "./Wolfie2D/Loop/Game";
import default_scene from "./default_scene"; import MainMenu from "./shattered_sword/Scenes/MainMenu";
// The main function is your entrypoint into Wolfie2D. Specify your first scene and any options here. // The main function is your entrypoint into Wolfie2D. Specify your first scene and any options here.
(function main(){ (function main(){
@ -11,13 +11,15 @@ import default_scene from "./default_scene";
let options = { let options = {
canvasSize: {x: 1200, y: 800}, // The size of the game canvasSize: {x: 1200, y: 800}, // The size of the game
clearColor: {r: 0, g: 0, b: 0}, // The color the game clears to clearColor: {r: 0, g: 0, b: 0}, // The color the game clears to
useWebGL: false, // Tell the game we want to use webgl
showDebug: true // Whether to show debug messages. You can change this to true if you want
} }
// Create a game with the options specified // Create a game with the options specified
const game = new Game(options); const game = new Game(options);
// Start our game // Start our game
game.start(default_scene, {}); game.start(MainMenu, {});
})(); })();
function runTests(){}; function runTests(){};

View File

@ -0,0 +1,26 @@
import Input from "./../Wolfie2D/Input/Input";
export default class InputWrapper {
private static isInStoryMode: boolean;
constructor() {
InputWrapper.isInStoryMode = false;
}
/**
* Returns whether or not the attack key is currently pressed
* @returns True if the attack key is pressed, false otherwise
*/
static isAttackJustPressed(): boolean {
if (InputWrapper.isInStoryMode) {
return false;
}
// TODO
return undefined;
}
static setStoryMode(storyMode: boolean): void {
InputWrapper.isInStoryMode = storyMode;
}
}

View File

@ -0,0 +1,61 @@
import StateMachineAI from "../../Wolfie2D/AI/StateMachineAI";
import GameNode, { TweenableProperties } from "../../Wolfie2D/Nodes/GameNode";
import Vec2 from "../../Wolfie2D/DataTypes/Vec2";
import Sprite from "../../Wolfie2D/Nodes/Sprites/Sprite";
import OrthogonalTilemap from "../../Wolfie2D/Nodes/Tilemaps/OrthogonalTilemap";
export enum BuffType {
ATK = "attack",
DEF = "defence"
}
type Buff = {
"type": BuffType,
"value": number,
"bonus": boolean,
}
type Buffs = [
Buff, Buff, Buff
]
export default class PlayerController extends StateMachineAI {
protected owner: GameNode;
MAX_SPEED: number = 300;
BASE_HP: number = 100;
MAX_HP: number = 100;
CURRENT_HP: number = 100;
BASE_ATK: number = 100;
MAX_ATK: number = 100;
CURRENT_ATK: number = 100;
BASE_DEF: number = 100;
MAX_DEF: number = 100;
CURRENT_DEF: number = 100;
CURRENT_BUFFS: {
atk: 0;
hp: 0;
def: 0;
speed: 0;
}
velocity: Vec2 = Vec2.ZERO;
tilemap: OrthogonalTilemap;
/**
* Returns three legal random generate buffs based on current state
* @returns Three buffs
*/
static getBuffs(): Buffs {
// TODO
return undefined;
}
/**
* Add given buff to the player
* @param buff Given buff
*/
setBuff(buff: Buff): void {
// TODO
}
}

View File

@ -0,0 +1,5 @@
import Scene from "../../Wolfie2D/Scene/Scene";
export default class Levels extends Scene {
// TODO
}

View File

@ -0,0 +1,5 @@
import Scene from "../../Wolfie2D/Scene/Scene";
export default class MainMenu extends Scene {
// TODO
}

View File

@ -0,0 +1,5 @@
import Scene from "../../Wolfie2D/Scene/Scene";
export default class StoryMode extends Scene {
// TODO
}

View File

@ -0,0 +1,13 @@
export enum Player_Events {
PLAYER_MOVE = "PlayerMove",
PLAYER_JUMP = "PlayerJump",
PLAYER_ATTACK = "PlayerAttack",
PLAYER_DASH = "PlayerDash",
PLAYER_HEAL = "PlayerHeal",
PLAYER_KILLED = "PlayerKilled",
}
export enum Damage_Type {
NORMAL_DAMAGE = "NormalDamage",
ENVIRONMENT_DAMAGE = "EnvironmentDamage",
DOT_DAMAGE = "DOTDamage",
}