diff --git a/src/components/StatusBar.astro b/src/components/StatusBar.astro index 3ce8f28..c8643a0 100644 --- a/src/components/StatusBar.astro +++ b/src/components/StatusBar.astro @@ -3,6 +3,7 @@ import { ObjectId } from 'mongodb'; import locationManager from '../lib/classes/managers/LocationManager'; import { getAllFleetByUser } from '../lib/db/fleet'; import SystemManager from '../lib/classes/managers/SystemManager'; +import DBFleet from '../types/db/DBFleet'; const userId = new ObjectId(Astro.cookies.get('userid')?.value ?? ''); @@ -14,7 +15,7 @@ let own = 0; let friendly = 0; let enemy = 0; -const filteredFleet = fleet.filter(f => { +const filteredFleet: (DBFleet & { which?: "own" | "friendly" | "enemy" })[] = fleet.filter(f => { const source = locationManager.findId(f.source); if(source !== null) { if(source instanceof SystemManager) return source.data.ownedBy.id.equals(userId) @@ -26,16 +27,34 @@ for(const f of filteredFleet) { const source = locationManager.findId(f.source); if(source !== null) { if(source instanceof SystemManager) { - if(source.data.ownedBy.id.equals(userId)) own++; + if(source.data.ownedBy.id.equals(userId)) { + own++; + f.which = "own"; + } else if(!f.returning) { - if(f.mission === "SPY" || f.mission === "ATTACK") enemy++; - else friendly++; + if(f.mission === "SPY" || f.mission === "ATTACK") { + enemy++; + f.which = "enemy"; + } + else { + friendly++; + f.which = "friendly"; + } } } else { - if(source.system.data.ownedBy.id.equals(userId)) own++; + if(source.system.data.ownedBy.id.equals(userId)) { + own++; + f.which = "own"; + } else if(!f.returning) { - if(f.mission === "SPY" || f.mission === "ATTACK") enemy++; - else friendly++; + if(f.mission === "SPY" || f.mission === "ATTACK") { + enemy++; + f.which = "enemy"; + } + else { + friendly++; + f.which = "friendly"; + } } } } @@ -51,7 +70,7 @@ for(const f of filteredFleet) {