Files
front/netcode/Team.ts
T

30 lines
840 B
TypeScript

import { type GameObjectRegister } from "."
import type { GameObjectNetcode } from "./GameObject"
import { type Player } from "./Player"
export interface TeamNetcode extends GameObjectNetcode {
health: number
color: string
name: string
}
export type Team = TeamNetcode & {
players: Array<Player>
}
export function create_team(input: TeamNetcode, register: GameObjectRegister) {
const team = new Proxy<any>(input, {
get(target: TeamNetcode, prop, reciever) {
if (prop == "players") {
return Object.values(register.players).filter((p) => p.team == team)
}
return Reflect.get(target, prop, reciever);
},
set(target, prop, val, receiver) {
return Reflect.set(target, prop, val, receiver);
}
}) as Team
return team
}