STUFF
parent
b697856c4e
commit
29b407de75
|
|
@ -30,7 +30,7 @@ export type GiftMessage = {
|
||||||
|
|
||||||
export default network;
|
export default network;
|
||||||
|
|
||||||
export async function ready(name, onThing?) {
|
export async function ready(name) {
|
||||||
const port = await getPort({port: getPort.makeRange(52300, 52399)});
|
const port = await getPort({port: getPort.makeRange(52300, 52399)});
|
||||||
mdns.publish({
|
mdns.publish({
|
||||||
type: 'dfi',
|
type: 'dfi',
|
||||||
|
|
@ -73,4 +73,6 @@ mdns.find({
|
||||||
p.port = service.port;
|
p.port = service.port;
|
||||||
log.info('Found player', p);
|
log.info('Found player', p);
|
||||||
devices.push(p);
|
devices.push(p);
|
||||||
});
|
}).on("down", (service) => {
|
||||||
|
// TODO remove player from MP
|
||||||
|
})
|
||||||
|
|
@ -59,19 +59,7 @@ export class Menu implements Renderable {
|
||||||
Game.current.pawns.push(new Pawn());
|
Game.current.pawns.push(new Pawn());
|
||||||
} else if (key.full === 'x') {
|
} else if (key.full === 'x') {
|
||||||
Game.current.board.clear();
|
Game.current.board.clear();
|
||||||
}
|
} else this.view.keypress(key);
|
||||||
|
|
||||||
// if(this.view === View.PAWNS) {
|
|
||||||
// if (key.full === 'delete') {
|
|
||||||
// Game.current.removePawn(Game.current.selected);
|
|
||||||
// } else if (key.full === 'up') {
|
|
||||||
// Game.current.advanceSelection(-1);
|
|
||||||
// } else if (key.full === 'down') {
|
|
||||||
// Game.current.advanceSelection(1);
|
|
||||||
// } else if (key.full === 'enter') {
|
|
||||||
// new PawnDetails(Game.current.selected);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if(this.view === View.MULTIPLAYER) {
|
// if(this.view === View.MULTIPLAYER) {
|
||||||
// if (key.full === 'enter') {
|
// if (key.full === 'enter') {
|
||||||
|
|
@ -84,6 +72,8 @@ export class Menu implements Renderable {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// TODO add colortest debug screen!
|
||||||
|
|
||||||
Game.current.sync();
|
Game.current.sync();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -93,61 +83,19 @@ export class Menu implements Renderable {
|
||||||
return ` ${Game.current.clock.render()}{|}${getTheme().normal(`Idle: ${idlers.length}`)} `;
|
return ` ${Game.current.clock.render()}{|}${getTheme().normal(`Idle: ${idlers.length}`)} `;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderPawns() {
|
|
||||||
return `${
|
|
||||||
Game.current.pawns.map(pawn => `${(function() {
|
|
||||||
const selected = pawn === Game.current.selected;
|
|
||||||
let str = '';
|
|
||||||
if(selected) {
|
|
||||||
str += ` ${getTheme().selected(` ❯ ${pawn.toString()}`)}{|}${pawn.status} \n`;
|
|
||||||
str += ` ${getTheme().normal('Energy')}{|}${progressbar(pawn.energy / 100, (menuPanel.width - 4) / 2)} \n`;
|
|
||||||
} else {
|
|
||||||
str += ` ${getTheme().normal(pawn.toString())}{|}${pawn.status} `;
|
|
||||||
}
|
|
||||||
return str;
|
|
||||||
})()}`).join('\n')
|
|
||||||
}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
renderView() {
|
renderView() {
|
||||||
const colSpace = ((menuPanel.width - 2) / 2);
|
const colSpace = ((menuPanel.width - 2) / 2);
|
||||||
return `${
|
return `{center}${(() => {
|
||||||
// ' '.repeat(colSpace - 20)
|
return Object.values(this.views).map((view, idx) => {
|
||||||
'{center}'
|
if(idx === this.viewIndex) {
|
||||||
}${(() => {
|
return getTheme().tab.selected(` ${view.name} `);
|
||||||
return Object.values(View).map(view => {
|
|
||||||
if(view === this.view) {
|
|
||||||
return getTheme().tab.selected(` ${view} `);
|
|
||||||
} else {
|
} else {
|
||||||
return getTheme().tab.normal(` ${view} `);
|
return getTheme().tab.normal(` ${view.name} `);
|
||||||
}
|
}
|
||||||
}).join('');
|
}).join('');
|
||||||
})()}{/center}\n\n${(() => {
|
})()}{/center}\n\n${
|
||||||
this.view.render();
|
this.view.render()
|
||||||
})()}`
|
}`;
|
||||||
}
|
|
||||||
|
|
||||||
multiplayerSelected = 0;
|
|
||||||
|
|
||||||
renderMultiplayer() {
|
|
||||||
if(mdns.players.length === 0) return `{center}${getTheme().normal('No friends online')}{/center}`;
|
|
||||||
return mdns.players.map((player, i) => {
|
|
||||||
if(i === this.multiplayerSelected) return ' ' + getTheme().selected(' ❯ ' + player.toString());
|
|
||||||
else return ' ' + getTheme().normal(player.toString());
|
|
||||||
}).join('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
renderInv() {
|
|
||||||
return Game.current.inv.render();
|
|
||||||
}
|
|
||||||
|
|
||||||
renderTreesSubMenu() {
|
|
||||||
return [
|
|
||||||
`{center}Chop Trees`,
|
|
||||||
`{left} ${getTheme().hotkey('-=_+')}: ${this.trees}`,
|
|
||||||
`{left} ${getTheme().hotkey('enter')}: Create Task`,
|
|
||||||
`{left} ${getTheme().hotkey('escape')}: Cancel`
|
|
||||||
].join('\n');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Game } from "../../Game.js";
|
||||||
import { View } from "../View.js";
|
import { View } from "../View.js";
|
||||||
|
|
||||||
export default class InventoryView extends View {
|
export default class InventoryView extends View {
|
||||||
|
|
@ -5,6 +6,9 @@ export default class InventoryView extends View {
|
||||||
super();
|
super();
|
||||||
this.name = 'Inventory';
|
this.name = 'Inventory';
|
||||||
}
|
}
|
||||||
keypress: (key: { full: string; }) => void;
|
keypress(key: { full: string; }) {}
|
||||||
render() { void 0 };
|
|
||||||
|
render() {
|
||||||
|
return Game.current.inv.render();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -1,10 +1,32 @@
|
||||||
import { View } from "../View.js";
|
import { GiftPopup } from "../GiftPopup.js";
|
||||||
|
import { View } from "../View.js"
|
||||||
|
import mdns from '../../multiplayer/mDNS.js';
|
||||||
|
import { getTheme } from "@theme";
|
||||||
|
|
||||||
export default class MultiplayerView extends View {
|
export default class MultiplayerView extends View {
|
||||||
|
|
||||||
|
selected: number = 0;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
this.name = 'Multiplayer';
|
this.name = 'Multiplayer';
|
||||||
}
|
}
|
||||||
keypress: (key: { full: string; }) => void;
|
|
||||||
render() { void 0 };
|
keypress(key: { full: string; }) {
|
||||||
|
if (key.full === 'enter') {
|
||||||
|
new GiftPopup(mdns.players[this.selected]);
|
||||||
|
} else if (key.full === 'up') {
|
||||||
|
this.selected --;
|
||||||
|
} else if (key.full === 'down') {
|
||||||
|
this.selected ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
if(mdns.players.length === 0) return `{center}${getTheme().normal('No friends online')}{/center}`;
|
||||||
|
return mdns.players.map((player, i) => {
|
||||||
|
if(i === this.selected) return ' ' + getTheme().selected(' ❯ ' + player.toString());
|
||||||
|
else return ' ' + getTheme().normal(player.toString());
|
||||||
|
}).join('\n');
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
import { getTheme } from "@theme";
|
||||||
|
import { Game } from "../../Game.js";
|
||||||
|
import { progressbar } from "../../Progressbar.js";
|
||||||
|
import { PawnDetails } from "../PawnDetails.js";
|
||||||
|
import { menuPanel } from "../UI.js";
|
||||||
import { View } from "../View.js";
|
import { View } from "../View.js";
|
||||||
|
|
||||||
export default class PawnsView extends View {
|
export default class PawnsView extends View {
|
||||||
|
|
@ -5,6 +10,32 @@ export default class PawnsView extends View {
|
||||||
super();
|
super();
|
||||||
this.name = 'Pawns';
|
this.name = 'Pawns';
|
||||||
}
|
}
|
||||||
keypress: (key: { full: string; }) => void;
|
|
||||||
render() { void 0 };
|
keypress(key: { full: string; }) {
|
||||||
|
if (key.full === 'delete') {
|
||||||
|
Game.current.removePawn(Game.current.selected);
|
||||||
|
} else if (key.full === 'up') {
|
||||||
|
Game.current.advanceSelection(-1);
|
||||||
|
} else if (key.full === 'down') {
|
||||||
|
Game.current.advanceSelection(1);
|
||||||
|
} else if (key.full === 'enter') {
|
||||||
|
new PawnDetails(Game.current.selected);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return `${
|
||||||
|
Game.current.pawns.map(pawn => `${(function() {
|
||||||
|
const selected = pawn === Game.current.selected;
|
||||||
|
let str = '';
|
||||||
|
if(selected) {
|
||||||
|
str += ` ${getTheme().selected(` ❯ ${pawn.toString()}`)}{|}${pawn.status} \n`;
|
||||||
|
str += ` ${getTheme().normal('Energy')}{|}${progressbar(pawn.energy / 100, (menuPanel.width - 4) / 2)} \n`;
|
||||||
|
} else {
|
||||||
|
str += ` ${getTheme().normal(pawn.toString())}{|}${pawn.status} `;
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
})()}`).join('\n')
|
||||||
|
}`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue