have client create player id

This commit is contained in:
evanpelle
2024-09-07 21:23:38 -07:00
parent 24ad59c75d
commit 8331047a9b
6 changed files with 15 additions and 10 deletions
+1
View File
@@ -122,6 +122,7 @@ class Client {
this.game = createClientGame(
getUsername(),
uuidv4(),
uuidv4(),
clientIP,
lobby.id,
getConfig(),
+10 -8
View File
@@ -12,7 +12,7 @@ import {TerrainRenderer} from "./graphics/TerrainRenderer";
export function createClientGame(name: string, clientID: ClientID, ip: string | null, gameID: GameID, config: Config, terrainMap: TerrainMap): ClientGame {
export function createClientGame(name: string, clientID: ClientID, playerID: PlayerID, ip: string | null, gameID: GameID, config: Config, terrainMap: TerrainMap): ClientGame {
let eventBus = new EventBus()
let game = createGame(terrainMap, eventBus, config)
let terrainRenderer = new TerrainRenderer(game)
@@ -21,6 +21,7 @@ export function createClientGame(name: string, clientID: ClientID, ip: string |
return new ClientGame(
name,
clientID,
playerID,
ip,
gameID,
eventBus,
@@ -45,9 +46,11 @@ export class ClientGame {
private isProcessingTurn = false
constructor(
public playerName: string,
private id: ClientID,
private playerID: PlayerID,
private clientIP: string | null,
private gameID: GameID,
private eventBus: EventBus,
@@ -88,13 +91,11 @@ export class ClientGame {
if (!this.isActive) {
this.start()
}
this.sendIntent(
{
type: "updateName",
name: this.playerName,
clientID: this.id
}
)
this.sendIntent({
type: "updateName",
name: this.playerName,
clientID: this.id
})
}
if (message.type == "turn") {
this.addTurn(message.turn)
@@ -279,6 +280,7 @@ export class ClientGame {
this.sendIntent({
type: "spawn",
clientID: this.id,
playerID: this.playerID,
name: this.playerName,
playerType: PlayerType.Human,
x: cell.x,
+1
View File
@@ -55,6 +55,7 @@ export const AttackIntentSchema = BaseIntentSchema.extend({
export const SpawnIntentSchema = BaseIntentSchema.extend({
type: z.literal('spawn'),
playerID: z.string(),
name: z.string(),
playerType: PlayerTypeSchema,
x: z.number(),
+1
View File
@@ -39,6 +39,7 @@ export class BotSpawner {
}
return {
type: 'spawn',
playerID: this.random.nextID(),
name: botName,
playerType: PlayerType.Bot,
x: tile.cell().x,
+1 -1
View File
@@ -34,7 +34,7 @@ export class Executor {
)
} else if (intent.type == "spawn") {
return new SpawnExecution(
new PlayerInfo(intent.name, intent.playerType, intent.clientID, this.random.nextID()),
new PlayerInfo(intent.name, intent.playerType, intent.clientID, intent.playerID),
new Cell(intent.x, intent.y)
)
} else if (intent.type == "boat") {
+1 -1
View File
@@ -24,7 +24,7 @@ export class SpawnExecution implements Execution {
return
}
const existing = this.mg.players().find(p => p.clientID() != null && p.clientID() == this.playerInfo.clientID)
const existing = this.mg.players().find(p => p.id() == this.playerInfo.id)
if (existing) {
existing.tiles().forEach(t => existing.relinquish(t))
getSpawnCells(this.mg, this.cell).forEach(c => {