2022-04-08 19:49:06 -04:00
|
|
|
import { TiledTilemapData } from "../../Wolfie2D/DataTypes/Tilesets/TiledData";
|
2022-04-04 03:23:10 -04:00
|
|
|
import Vec2 from "../../Wolfie2D/DataTypes/Vec2";
|
|
|
|
import Debug from "../../Wolfie2D/Debug/Debug";
|
|
|
|
import { GameEventType } from "../../Wolfie2D/Events/GameEventType";
|
2022-04-06 19:29:17 -04:00
|
|
|
import RandomMapGenerator from "../Tools/RandomMapGenerator";
|
2022-04-04 03:23:10 -04:00
|
|
|
import GameLevel from "./GameLevel";
|
2022-04-10 20:00:57 -04:00
|
|
|
import Label from "../../Wolfie2D/Nodes/UIElements/Label";
|
|
|
|
import Color from "../../Wolfie2D/Utils/Color";
|
|
|
|
import { UIElementType } from "../../Wolfie2D/Nodes/UIElements/UIElementTypes";
|
2022-04-13 19:43:16 -04:00
|
|
|
import { Statuses } from "../sword_enums";
|
|
|
|
import AABB from "../../Wolfie2D/DataTypes/Shapes/AABB";
|
|
|
|
import EnemyAI from "../AI/EnemyAI";
|
|
|
|
import BattlerAI from "../AI/BattlerAI";
|
2022-04-21 13:46:09 -04:00
|
|
|
import AttackAction from "../AI/EnemyActions/AttackAction";
|
|
|
|
import Move from "../AI/EnemyActions/Move";
|
2022-04-04 03:23:10 -04:00
|
|
|
|
2022-04-13 19:43:16 -04:00
|
|
|
export default class Tutorial extends GameLevel {
|
2022-04-04 03:23:10 -04:00
|
|
|
loadScene(): void {
|
2022-04-08 18:01:21 -04:00
|
|
|
super.loadScene();
|
2022-04-13 18:56:35 -04:00
|
|
|
this.rmg = new RandomMapGenerator("shattered_sword_assets/jsons/forest_template.json", this.randomSeed);
|
|
|
|
this.map = this.rmg.getMap();
|
2022-04-20 12:49:59 -04:00
|
|
|
this.load.tilemapFromObject("map", this.map);
|
2022-04-13 19:43:16 -04:00
|
|
|
|
2022-04-14 04:09:16 -04:00
|
|
|
//load enemies
|
2022-04-16 23:01:54 -04:00
|
|
|
this.load.spritesheet("Snake","shattered_sword_assets/spritesheets/Snake.json");
|
|
|
|
this.load.spritesheet("Tiger","shattered_sword_assets/spritesheets/Tiger.json");
|
2022-04-14 04:09:16 -04:00
|
|
|
|
2022-04-20 12:49:59 -04:00
|
|
|
//can load enemy sprite here
|
|
|
|
//sprites obtained from cse380 sprite wesbite
|
|
|
|
this.load.spritesheet("remus_werewolf","shattered_sword_assets/spritesheets/remus_werewolf.json");
|
|
|
|
this.load.spritesheet("black_pudding","shattered_sword_assets/spritesheets/black_pudding.json");
|
2022-04-09 04:49:30 -04:00
|
|
|
|
2022-04-04 03:23:10 -04:00
|
|
|
//load music here
|
|
|
|
}
|
2022-04-21 13:46:09 -04:00
|
|
|
|
|
|
|
updateScene(deltaT: number): void {
|
|
|
|
super.updateScene(deltaT);
|
|
|
|
|
|
|
|
//spawn snake()
|
|
|
|
if(Math.random() < .002){
|
|
|
|
console.log("RANDOM SNAKE!");
|
|
|
|
this.addEnemy("Snake", this.player.position.clone().add(new Vec2(0,-320)),{
|
|
|
|
player: this.player,
|
|
|
|
health: 50,
|
|
|
|
tilemap: "Main",
|
|
|
|
goal: Statuses.REACHED_GOAL,
|
|
|
|
size: new Vec2(16,16),
|
|
|
|
offset : new Vec2(0, 16),
|
|
|
|
exp: 50,
|
|
|
|
actions: [new AttackAction(3, [Statuses.IN_RANGE], [Statuses.REACHED_GOAL]),
|
|
|
|
new Move(2, [], [Statuses.IN_RANGE], {inRange: 60})],
|
|
|
|
status : [Statuses.CAN_RETREAT, Statuses.CAN_BERSERK],
|
|
|
|
weapon : this.createWeapon("knife")
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
2022-04-04 03:23:10 -04:00
|
|
|
}
|