61 lines
1.3 KiB
TypeScript
61 lines
1.3 KiB
TypeScript
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
|
|
}
|
|
} |