Skip to content

Commit

Permalink
level switching
Browse files Browse the repository at this point in the history
  • Loading branch information
eonarheim committed Nov 25, 2023
1 parent 225ec95 commit 978dcc2
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 21 deletions.
34 changes: 18 additions & 16 deletions src/levels/level-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { Resources } from '../resources';

export interface LevelData {
name: string;
nextLevel: string;
width: number;
height: number;
maxTurns: number;
Expand All @@ -25,21 +26,22 @@ export interface LevelData {
data: string[];
}

export const TestLevelData: LevelData = {
name: 'Gentle Plains',
width: 6,
height: 6,
maxTurns: 100,
players: ['human', 'computer'],
data: [
'GK1', 'G', 'G', 'G', 'G', 'GK1',
'G', 'G', 'G', 'G', 'G', 'G',
'G', 'G', 'W', 'W', 'G', 'G',
'G', 'G', 'W', 'W', 'G', 'G',
'G', 'G', 'W', 'W', 'G', 'G',
'GS2', 'GS2', 'GS2', 'GS2', 'GS2', 'GS2'
]
}
// export const TestLevelData: LevelData = {
// name: 'Gentle Plains',
// nextLevel: 'level2',
// width: 6,
// height: 6,
// maxTurns: 100,
// players: ['human', 'computer'],
// data: [
// 'GK1', 'G', 'G', 'G', 'G', 'GK1',
// 'G', 'G', 'G', 'G', 'G', 'G',
// 'G', 'G', 'W', 'W', 'G', 'G',
// 'G', 'G', 'W', 'W', 'G', 'G',
// 'G', 'G', 'W', 'W', 'G', 'G',
// 'GS2', 'GS2', 'GS2', 'GS2', 'GS2', 'GS2'
// ]
// }

export class LevelBase extends ex.Scene {

Expand Down Expand Up @@ -112,7 +114,7 @@ export class LevelBase extends ex.Scene {
new ComputerPlayer(levelData.players[1], this.selectionManager, board)
];

this.turnManager = new TurnManager(this.engine, this.players, this.selectionManager, 10);
this.turnManager = new TurnManager(this.engine, this, this.players, this.selectionManager, 10);

for (let y = 0; y < levelData.height; y++) {
for (let x = 0; x < levelData.width; x++) {
Expand Down
5 changes: 3 additions & 2 deletions src/levels/tutorial.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ import { Resources, TutorialTextSheet } from '../resources';
import { UnitMenu } from '../ui-components/unit-menu';
import { HumanPlayer } from '../human-player';

export const TestLevelData: LevelData = {
export const TutorialData: LevelData = {
name: 'Gentle Plains',
nextLevel: 'level',
width: 6,
height: 3,
maxTurns: 10,
Expand All @@ -21,7 +22,7 @@ export class Tutorial extends LevelBase {
focus!: ex.Actor;

constructor() {
super(TestLevelData, 'tutorial');
super(TutorialData, 'tutorial');
}

onInitialize(engine: ex.Engine): void {
Expand Down
4 changes: 3 additions & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as ex from 'excalibur';
import { loader } from './resources';
import { LevelBase, LevelData, TestLevelData } from './levels/level-base';
import { LevelBase, LevelData } from './levels/level-base';
import { StartScreen } from './levels/start-screen';
import { Tutorial } from './levels/tutorial';

Expand All @@ -24,6 +24,7 @@ game.addScene(tutorial.name, tutorial);

const Level1Data: LevelData = {
name: 'Gentle Plains',
nextLevel: 'level2',
width: 6,
height: 3,
maxTurns: 10,
Expand All @@ -40,6 +41,7 @@ game.addScene(level1.name, level1);

export const Level2Data: LevelData = {
name: 'Gentle Plains 2',
nextLevel: 'start',
width: 6,
height: 6,
maxTurns: 100,
Expand Down
5 changes: 3 additions & 2 deletions src/turn-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { SCALE } from './config';
import { HumanPlayer } from './human-player';
import { ComputerPlayer } from './computer-player';
import { Resources } from './resources';
import { LevelBase } from './levels/level-base';

/**
* Manages player turns, keeps track of which of the N number of players turn it is.
Expand All @@ -24,7 +25,7 @@ export class TurnManager {
private victory: ex.Actor;
private failure: ex.Actor;

constructor(public engine: ex.Engine, public players: Player[], selectionManager: SelectionManager, public maxTurns: number) {
constructor(public engine: ex.Engine, public level: LevelBase, public players: Player[], selectionManager: SelectionManager, public maxTurns: number) {
if (players.length === 0) throw Error('Players should be non-zero in length');
this.currentPlayer = players[this.currentPlayerIndex];
this.selectionManager = selectionManager;
Expand Down Expand Up @@ -186,7 +187,7 @@ export class TurnManager {
await this.showVictory();
this.engine.input.pointers.once('down', () => {
// TODO next level!
this.engine.goToScene('level2');
this.engine.goToScene(this.level.levelData.nextLevel);
});
return;
}
Expand Down

0 comments on commit 978dcc2

Please sign in to comment.