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 } export function create_team(input: TeamNetcode, register: GameObjectRegister) { const team = new Proxy(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 }