wokring in progres
This commit is contained in:
parent
f089b7ac79
commit
a14cca27ac
@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"health": 2,
|
"health": 2,
|
||||||
"speed": 0.25,
|
"speed": 0.04,
|
||||||
"special": null,
|
"special": null,
|
||||||
"resistance": {
|
"resistance": {
|
||||||
"physical": 0,
|
"physical": 0,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"height": 4300,
|
"height": 4300,
|
||||||
"width": 2
|
"width": 2
|
||||||
},
|
},
|
||||||
"activeFile": "",
|
"activeFile": "Mission011.tmx",
|
||||||
"expandedProjectPaths": [
|
"expandedProjectPaths": [
|
||||||
"."
|
"."
|
||||||
],
|
],
|
||||||
@ -32,8 +32,17 @@
|
|||||||
"y": 639.5548342221192
|
"y": 639.5548342221192
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Mission011.tmx": {
|
||||||
|
"scale": 0.5,
|
||||||
|
"selectedLayer": 0,
|
||||||
|
"viewCenter": {
|
||||||
|
"x": 1070,
|
||||||
|
"y": 448
|
||||||
|
}
|
||||||
|
},
|
||||||
"Tileset.tsx": {
|
"Tileset.tsx": {
|
||||||
"scaleInDock": 1
|
"scaleInDock": 0.5,
|
||||||
|
"scaleInEditor": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"last.externalTilesetPath": "/home/koneko/Programing/js/towerdefense/public",
|
"last.externalTilesetPath": "/home/koneko/Programing/js/towerdefense/public",
|
||||||
@ -43,9 +52,13 @@
|
|||||||
"map.tileWidth": 64,
|
"map.tileWidth": 64,
|
||||||
"map.width": 30,
|
"map.width": 30,
|
||||||
"openFiles": [
|
"openFiles": [
|
||||||
|
"Tileset.tsx",
|
||||||
|
"Mission011.tmx"
|
||||||
],
|
],
|
||||||
"project": "maps.tiled-project",
|
"project": "maps.tiled-project",
|
||||||
"recentFiles": [
|
"recentFiles": [
|
||||||
|
"Tileset.tsx",
|
||||||
|
"Mission011.tmx",
|
||||||
"Mission01.tmx",
|
"Mission01.tmx",
|
||||||
"/home/koneko/dumping/tiles/TiledTDThree64.tmx"
|
"/home/koneko/dumping/tiles/TiledTDThree64.tmx"
|
||||||
],
|
],
|
||||||
|
@ -99,5 +99,5 @@ export default class GameAssets {
|
|||||||
public static Missions: MissionDefinition[];
|
public static Missions: MissionDefinition[];
|
||||||
public static Towers: TowerDefinition[];
|
public static Towers: TowerDefinition[];
|
||||||
public static CreepStats: CreepStatsDefinition[];
|
public static CreepStats: CreepStatsDefinition[];
|
||||||
public static DebuggingEnabled: boolean = true;
|
public static DebuggingEnabled: boolean = false;
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,6 @@ export default class Creep extends GameObject {
|
|||||||
const directionY = targetCell[0] - currentCell[0];
|
const directionY = targetCell[0] - currentCell[0];
|
||||||
let deltaX = this.speed * elapsedMS * directionX;
|
let deltaX = this.speed * elapsedMS * directionX;
|
||||||
let deltaY = this.speed * elapsedMS * directionY;
|
let deltaY = this.speed * elapsedMS * directionY;
|
||||||
console.log(deltaX + ' DELTA X UPDATE\n' + deltaY + 'DELTA Y UPDATE ');
|
|
||||||
let increaseIndex = false;
|
let increaseIndex = false;
|
||||||
|
|
||||||
if (deltaX > 0 && this.x + deltaX > targetX) {
|
if (deltaX > 0 && this.x + deltaX > targetX) {
|
||||||
@ -84,7 +83,6 @@ export default class Creep extends GameObject {
|
|||||||
}
|
}
|
||||||
this.x += deltaX;
|
this.x += deltaX;
|
||||||
this.y += deltaY;
|
this.y += deltaY;
|
||||||
console.log(this.x + ' CREEP X UPDATE\n' + this.y + 'CREEP Y UPDATE ');
|
|
||||||
if (increaseIndex) this.pathIndex++;
|
if (increaseIndex) this.pathIndex++;
|
||||||
this.draw();
|
this.draw();
|
||||||
}
|
}
|
||||||
|
73
src/classes/game/MissionStats.ts
Normal file
73
src/classes/game/MissionStats.ts
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import Assets from '../Assets';
|
||||||
|
import { Globals } from '../Bastion';
|
||||||
|
import GameObject from '../GameObject';
|
||||||
|
import * as PIXI from 'pixi.js';
|
||||||
|
|
||||||
|
export default class MissionStats extends GameObject {
|
||||||
|
private hp: number = 100;
|
||||||
|
private gold: number = 0;
|
||||||
|
|
||||||
|
public getHP() {
|
||||||
|
return this.hp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public setHP(hp: number) {
|
||||||
|
this.hp = hp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public takeDamage(damage: number) {
|
||||||
|
this.hp -= damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public setGold(gold: number) {
|
||||||
|
this.gold = gold;
|
||||||
|
}
|
||||||
|
|
||||||
|
constructor(initialHP: number, initialGold: number) {
|
||||||
|
super();
|
||||||
|
this.hp = initialHP;
|
||||||
|
this.gold = initialGold;
|
||||||
|
this.container.x = 0;
|
||||||
|
this.container.y = 20;
|
||||||
|
Globals.app.stage.addChild(this.container);
|
||||||
|
const healthText = new PIXI.Text({
|
||||||
|
text: `HP: ${this.hp}`,
|
||||||
|
style: new PIXI.TextStyle({
|
||||||
|
fill: 'white',
|
||||||
|
fontSize: 24,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
dropShadow: true,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
healthText.x = 200;
|
||||||
|
const goldText = new PIXI.Text({
|
||||||
|
text: `Gold: ${this.gold}`,
|
||||||
|
style: new PIXI.TextStyle({
|
||||||
|
fill: 'white',
|
||||||
|
fontSize: 24,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
dropShadow: true,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
goldText.x = 200;
|
||||||
|
goldText.y = 30;
|
||||||
|
|
||||||
|
const healthSprite = new PIXI.Sprite(Assets.HealthTexture);
|
||||||
|
healthSprite.x = 165;
|
||||||
|
healthSprite.width = 30;
|
||||||
|
healthSprite.height = 26;
|
||||||
|
healthSprite.y = 1;
|
||||||
|
|
||||||
|
const goldSprite = new PIXI.Sprite(Assets.GoldTexture);
|
||||||
|
goldSprite.x = 165;
|
||||||
|
goldSprite.width = 30;
|
||||||
|
goldSprite.height = 26;
|
||||||
|
goldSprite.y = 30;
|
||||||
|
this.container.addChild(healthText);
|
||||||
|
this.container.addChild(goldText);
|
||||||
|
this.container.addChild(healthSprite);
|
||||||
|
this.container.addChild(goldSprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
public update() {}
|
||||||
|
}
|
@ -8,6 +8,7 @@ import Sidebar from '../classes/gui/Sidebar';
|
|||||||
import Button, { ButtonTexture } from '../classes/gui/Button';
|
import Button, { ButtonTexture } from '../classes/gui/Button';
|
||||||
import Scene from './Scene';
|
import Scene from './Scene';
|
||||||
import * as PIXI from 'pixi.js';
|
import * as PIXI from 'pixi.js';
|
||||||
|
import MissionStats from '../classes/game/MissionStats';
|
||||||
|
|
||||||
enum RoundMode {
|
enum RoundMode {
|
||||||
Purchase = 0,
|
Purchase = 0,
|
||||||
@ -19,6 +20,7 @@ export class GameScene extends Scene {
|
|||||||
public missionIndex: number;
|
public missionIndex: number;
|
||||||
public roundMode: RoundMode;
|
public roundMode: RoundMode;
|
||||||
public ticker: PIXI.Ticker;
|
public ticker: PIXI.Ticker;
|
||||||
|
public changeRoundButton: Button;
|
||||||
private currentRound: number = 0;
|
private currentRound: number = 0;
|
||||||
|
|
||||||
constructor(name: string) {
|
constructor(name: string) {
|
||||||
@ -36,8 +38,8 @@ export class GameScene extends Scene {
|
|||||||
this.ticker.minFPS = 30;
|
this.ticker.minFPS = 30;
|
||||||
this.ticker.add(() => this.update(this.ticker.elapsedMS)); // bruh
|
this.ticker.add(() => this.update(this.ticker.elapsedMS)); // bruh
|
||||||
this.ticker.start();
|
this.ticker.start();
|
||||||
const SidebarRect = new PIXI.Rectangle(Globals.WindowWidth - 350, 0, 350, Globals.app.canvas.height);
|
const SidebarRect = new PIXI.Rectangle(64 * 30 - 350, 0, 350, Globals.app.canvas.height);
|
||||||
const StartButtonRect = new PIXI.Rectangle(Globals.WindowWidth - 200, Globals.WindowHeight, 200, 100);
|
const changeRoundButtonRect = new PIXI.Rectangle(64 * 30 - 200, Globals.app.canvas.height - 100, 200, 100);
|
||||||
|
|
||||||
new Grid(this.mission.gameMap, this.missionIndex);
|
new Grid(this.mission.gameMap, this.missionIndex);
|
||||||
new WaveManager(this.mission.rounds, this.mission.gameMap.paths);
|
new WaveManager(this.mission.rounds, this.mission.gameMap.paths);
|
||||||
@ -48,14 +50,15 @@ export class GameScene extends Scene {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
new Sidebar(SidebarRect);
|
new Sidebar(SidebarRect);
|
||||||
// const changeRoundButton = new Button('Start', new PIXI.Color('white'), true);
|
this.changeRoundButton = new Button(changeRoundButtonRect, 'Start', ButtonTexture.Button01, true);
|
||||||
const changeRoundButton = new Button(StartButtonRect, 'Start', ButtonTexture.Button01, true);
|
this.changeRoundButton.onClick = () => {
|
||||||
changeRoundButton.onClick = () => {
|
|
||||||
console.log('clicked');
|
console.log('clicked');
|
||||||
changeRoundButton.setEnabled(false);
|
this.changeRoundButton.setEnabled(false);
|
||||||
changeRoundButton.setCaption('[X]');
|
this.changeRoundButton.setCaption('[X]');
|
||||||
this.setRoundMode(RoundMode.Combat);
|
this.setRoundMode(RoundMode.Combat);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
new MissionStats(100, 200);
|
||||||
}
|
}
|
||||||
public update(elapsedMS) {
|
public update(elapsedMS) {
|
||||||
Globals.WaveManager.update(elapsedMS);
|
Globals.WaveManager.update(elapsedMS);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user