From be321db355cc7bc2f035f06a9dd8546f78b73030 Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Sun, 6 Jul 2025 20:49:05 -0700 Subject: [PATCH] mirror paths for skirmishers in the right half --- vacuum_gambit.p8 | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/vacuum_gambit.p8 b/vacuum_gambit.p8 index e043c15..f912cd3 100644 --- a/vacuum_gambit.p8 +++ b/vacuum_gambit.p8 @@ -1501,13 +1501,13 @@ ship_f = mknew(ship_m.new{ diamond_loop = segment.new{ dests = { destination.new{ - x_off_frac=0.25 + x_off_frac=0.125 }, destination.new{ - y_off_frac=0.25 + y_off_frac=0.125 }, destination.new { - x_off_frac = -0.25 + x_off_frac = -0.125 }, destination.new { - y_off_frac = -0.25 + y_off_frac = -0.125 }, }, } @@ -1545,12 +1545,13 @@ ship_turret = mknew(ship_f.new{ ship_skirmisher = mknew(ship_f.new{ sprite=107, xp = 0x0.0004, + hp = 1.5, sparks = smokespark, sparkodds = 3, fire_off_y = 7, xmin = -8, xmax = 112, - path = diamond_bounce, + path = diamond_loop, }) function ship_skirmisher:reset_bounds() @@ -1675,7 +1676,7 @@ flotilla = mknew{ [8]=mknew(ship_turret.new{ship_t=8}), [9]=mknew(ship_turret.new{ship_t=9, sprite=4}), [12]=mknew(ship_skirmisher.new{ship_t=12}), - [13]=mknew(ship_skirmisher.new{ship_t=13, sprite=26}), + [13]=mknew(ship_skirmisher.new{ship_t=13, sprite=26, path=diamond_bounce}), } end, } @@ -1691,8 +1692,9 @@ function flotilla:load(ulc_cx, ulc_cy, lvl) [12]=0, [13]=0, } + local maxcol = 0 repeat - local row,cx,opt,f,mode= {},ulc_cx,{},0,0 + local row,cx,opt,f,mode = {},ulc_cx,{},0,0 for i,v in ipairs(self.opt_odds) do opt[i*4-4]=rnd()>ship_t&0x1)&((f&0x10)>>4) - add(row, self.ship_bases[ship_t].new{col=cx-ulc_cx}) + add(row, self.ship_bases[ship_t].new{col=col}) + if (col > maxcol) maxcol = col end end cx += 1 @@ -1731,6 +1734,13 @@ function flotilla:load(ulc_cx, ulc_cy, lvl) -- control mark bit 0x04: end of flotilla until f&0x04 > 0 self.rows=rows + -- mirror right half paths; alternate center column if odd + local rh = maxcol>>1 + for r, row in ipairs(rows) do + for s in all(row) do + if ((s.path) and (s.col > rh or (s.col == rh and r & 1 == 1))) s.path = s.path.mirror.new() + end + end self:statisfy(counts) end