feat: tiger AI
This commit is contained in:
parent
3511dbae8b
commit
9aa76b7963
|
@ -40,6 +40,12 @@
|
|||
"type": "player",
|
||||
"x": 5,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"type": "Tiger",
|
||||
"x": 3,
|
||||
"y": 7,
|
||||
"possibility": 1
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
@ -19,11 +19,6 @@ export default class Attack extends EnemyState {
|
|||
this.receiver.subscribe(this.attacked);
|
||||
}
|
||||
|
||||
update(deltaT: number): void {
|
||||
this.finished(EnemyStates.ALERT);
|
||||
super.update(deltaT);
|
||||
}
|
||||
|
||||
onExit(): Record<string, any> {
|
||||
this.parent.isCharging = false;
|
||||
(<AnimatedSprite>this.owner).animation.stop();
|
||||
|
|
|
@ -31,7 +31,15 @@ export default abstract class EnemyState extends State {
|
|||
this.parent.velocity.x = 0;
|
||||
}
|
||||
// Do gravity
|
||||
this.parent.velocity.y += this.gravity * deltaT;
|
||||
if (this.owner.onGround) {
|
||||
this.parent.velocity.y = 0;
|
||||
}
|
||||
else if (this.owner.onCeiling) {
|
||||
this.parent.velocity.y += this.gravity * deltaT * 2;
|
||||
}
|
||||
else {
|
||||
this.parent.velocity.y += this.gravity * deltaT;
|
||||
}
|
||||
this.owner.move(this.parent.velocity.scaled(deltaT));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import Attack from "./Attack";
|
|||
export default class TigerAttack extends Attack {
|
||||
protected velocity: number;
|
||||
protected distance: number;
|
||||
protected attacking: boolean = false;
|
||||
|
||||
onEnter(options: Record<string, any>): void {
|
||||
super.onEnter(options);
|
||||
|
@ -15,7 +14,7 @@ export default class TigerAttack extends Attack {
|
|||
}
|
||||
|
||||
update(deltaT: number): void {
|
||||
if (this.attacking && this.owner.onGround) {
|
||||
if (this.parent.isAttaking && this.owner.onGround) {
|
||||
this.emitter.fireEvent(this.attacked);
|
||||
}
|
||||
while (this.receiver.hasNextEvent()) {
|
||||
|
@ -25,9 +24,9 @@ export default class TigerAttack extends Attack {
|
|||
this.parent.isCharging = false;
|
||||
this.parent.isAttaking = true;
|
||||
(<AnimatedSprite>this.owner).animation.play("ATTACK", true);
|
||||
this.velocity = (this.parent.getPlayerPosition().x - this.owner.position.x)/2;
|
||||
this.velocity = (this.parent.getPlayerPosition().x - this.owner.position.x)/1.5;
|
||||
this.parent.direction = this.velocity >= 0 ? 1 : 0;
|
||||
this.attacking = true;
|
||||
this.parent.velocity.y = -800;
|
||||
break;
|
||||
case this.attacked:
|
||||
this.parent.isAttaking = false;
|
||||
|
|
|
@ -22,6 +22,7 @@ import BattleManager from "../GameSystems/BattleManager";
|
|||
import EnemyAI from "../AI/EnemyAI";
|
||||
import SnakeAI from "../AI/SnakeAI";
|
||||
import SlimeAI from "../AI/SlimeAI";
|
||||
import TigerAI from "../AI/TigerAI";
|
||||
import BattlerAI from "../AI/BattlerAI";
|
||||
import InventoryManager from "../GameSystems/InventoryManager";
|
||||
import Item from "../GameSystems/items/Item";
|
||||
|
@ -865,10 +866,13 @@ export default class GameLevel extends Scene {
|
|||
})
|
||||
break;
|
||||
case "Tiger": //Tiger can be miniboss for now?
|
||||
this.addEnemy("Tiger", enemy.position.scale(32), EnemyAI, {
|
||||
this.addEnemy("Tiger", enemy.position.scale(32), TigerAI, {
|
||||
player: this.player,
|
||||
health: 200,
|
||||
tilemap: "Main",
|
||||
scale: 1.5,
|
||||
size: new Vec2(30,18),
|
||||
offset : new Vec2(0, 27),
|
||||
exp: 100,
|
||||
})
|
||||
break;
|
||||
|
|
|
@ -20,6 +20,7 @@ export default class Porcelain extends GameLevel {
|
|||
this.map = this.rmg.getMap();
|
||||
console.log(this.map);
|
||||
this.load.tilemapFromObject("map", this.map);
|
||||
this.load.spritesheet("Tiger","shattered_sword_assets/spritesheets/Tiger.json");
|
||||
|
||||
// //load enemies
|
||||
// this.load.spritesheet("Snake","shattered_sword_assets/spritesheets/Snake.json");
|
||||
|
|
|
@ -14,7 +14,6 @@ export default class Tutorial extends GameLevel {
|
|||
|
||||
//load enemies
|
||||
this.load.spritesheet("Snake","shattered_sword_assets/spritesheets/Snake.json");
|
||||
this.load.spritesheet("Tiger","shattered_sword_assets/spritesheets/Tiger.json");
|
||||
|
||||
//can load enemy sprite here
|
||||
//sprites obtained from cse380 sprite wesbite
|
||||
|
|
Loading…
Reference in New Issue
Block a user