M main.go => main.go +2 -2
@@ 110,8 110,8 @@ func (g *Game) Draw(screen *ebiten.Image) {
drawHud(screen, g.systems)
drawHullBars(screen, g.combat)
drawWeaponCharge(screen, g.combat)
- drawShieldsIndicator(screen, g.combat, g.systems)
- drawEvasionReadout(screen, g.systems)
+ drawShieldsIndicator(screen, g.ship, g.combat, g.systems)
+ drawEvasionReadout(screen, g.ship, g.systems)
drawResultOverlay(screen, g.combat.Result)
}
M render.go => render.go +4 -6
@@ 156,16 156,15 @@ func drawWeaponCharge(screen *ebiten.Image, c Combat) {
// drawShieldsIndicator renders dots above the Shields room.
// Lit dot = active layer; dim dot = slot available but not yet regenerated.
-func drawShieldsIndicator(screen *ebiten.Image, c Combat, sys []System) {
+func drawShieldsIndicator(screen *ebiten.Image, s Ship, c Combat, sys []System) {
shieldMax := playerShieldMax(sys)
if shieldMax == 0 {
return
}
- // Find the Shields room in the player ship layout.
var shieldsRoom Room
found := false
- for _, r := range NewPlayerShip().Rooms {
+ for _, r := range s.Rooms {
if r.Role == RoleShields {
shieldsRoom = r
found = true
@@ 197,13 196,12 @@ func drawShieldsIndicator(screen *ebiten.Image, c Combat, sys []System) {
// drawEvasionReadout renders "Evade: NN%" above the Engines room.
// Value is sys[RoleEngines].PowerLevel * 5.
-func drawEvasionReadout(screen *ebiten.Image, sys []System) {
+func drawEvasionReadout(screen *ebiten.Image, s Ship, sys []System) {
pct := sys[int(RoleEngines)].PowerLevel * 5
- // Find the Engines room in the player ship layout.
var enginesRoom Room
found := false
- for _, r := range NewPlayerShip().Rooms {
+ for _, r := range s.Rooms {
if r.Role == RoleEngines {
enginesRoom = r
found = true