Loading…
a327ex.com

062026 10

Opus 4.8

Summary

Tenth 062026 session — cleared the entire "finish the last details" list for the Archer, redesigned the Archer ultimate and the Swordsman passive, made cooldowns persist across swaps, ported a swap effect and SNKRX's RefreshEffect from old projects, and recovered an old SNKRX-like design-doc archive for a deferred design re-imagining (next session).

Recovered the old SNKRX-like project + design docs (for the deferred re-imagining):

  • Hunted down the user's old "4 units you swap between" project at D:/E/Old Works/SNKRX-like/ (devlog Aug 2023). Three iterations: 001-No-title (the two big design docs), 112020 (MoonScript→Lua prototype that holds the swap effect), BUILDRX2.
  • The two docs (todo.md 47KB, detailed_todo_dont_use.md 60KB) hold the party mechanic (4 characters per run, freely switching, 5 abilities each, pre-run ability draft, Minesweeper-ish map, SNKRX/Brotato wave arenas, per-character HP with permadeath) plus the systems: ~50 Tags (PoE-support-gem / Noita-wand-part modifier vocabulary), a Colors→gameplay-tags table (Green = chain/homing/pierce/ricochet/projectile, independently validating the Archer being "green"), and the shield rationale ("no in-combat healing → permadeath → no forced healer").
  • Copied both into 062026/reference/; ran a D:/-wide fingerprint search and recaptured distinct other versions into 062026/reference/old_versions/ (the 11062024/Orblike-era 21KB design, two Orblike devlogs, SpinSweeper, An Endless Vagrant), deduped exact copies. Flagged shared-HP vs per-unit-permadeath as the re-imagining's first decision.

Swap effect (faithful port of SNKRX-like switch_character, 112020/main.lua:293):

  • New fx.lua types: fx_rotating_particle (parent-relative spiraling streaks) + fx_rotating_animation_particle (orbiting arc-swoosh, plays arc_particle_140). Copied arc_particle_140.png (840×140, 6 frames); sourced Wind Bolt 20.wav + Switch.wav from E:/sound packs/Ultimate SFX Bundle/Magic Sounds Pro as q10 oggs.
  • Iterated hard: first built a white→mix version, user asked "did you copy it exactly?" → rebuilt EXACT (flat off-white fg1=#dadada ≈ 062026 text; volume 0.25 = 0.5×0.5 SoundTag). Then removed the ring, added SWAP_SCALE master size (2.2, F1 'swap size'), then white→target-color flash on all particles + bigger body pop (SWAP_SPRING_PULL=0.8) + the unit flashes white too. Target color = incoming character's color.
  • Added swap keys TAB + mouse4/5 (besides c).

Surge text recolors on swap: player:surge stores surge_text_id; player:swap_burst recolors the live Surge word to the incoming unit's palette via new fx_status_text:recolor. (Surge buff persists across swap — a flagged swap-combo.)

Cooldown persistence (was a bug) + retune for a 3-unit rotation:

  • Root cause: set_character wiped ALL ability state. Fix: cooldowns are absolute timestamps, so just stop resetting them — only in-progress actions (leap/blade-dance/charge/tumble) cancel on swap. Split the one shared ult field next_ult_timenext_blade_dance_time + next_barrage_time; updated the two HUD ult-slot reads.
  • Retuned for a ~3-unit rotation (away ~8s → secondaries/mobility back, ults longer): Leap 6→8, Surge 10→12, Blade Dance 10→18, Cone 2.5→12, Tumble 2.5→6, Barrage 10→18. Primaries unchanged.
  • Cone Shot → 2-charge (mirrors Leap Slam): cone_charges/cone_recharge_at, refill before the character branch, Echo re-fires don't spend a charge; HUD charge pips; card CHARGES 2 + charges tag.
  • Removed life regen (hp_regen 2→0).

Archer ultimate redesign (charge-up Barrage → 3-charge instant): user said charging "slows things down too much / goes against the kit." Deleted all hold-to-charge machinery (start/update/release_barrage, barrage_charge, the Asal ring + converging particles + charge bar, charge state + sound). New player:barrage(): instant on tap, fires BARRAGE_COUNT=12 arrows (half the old 24), 3 charges (BARRAGE_MAX_CHARGES) then full refill — the Leap/Cone model; HUD/card → charge display. Then re-added Echo: each cast echo_tick()s; on the Nth the volley DOUBLES (24).

Auto-spawner (debug): auto_spawn_update() fires B-equivalent 20-seeker waves in bursts of 3 (0.3s apart), 5s between bursts, skipping while #seekers ≥ AUTO_CAP (125). Toggle n; spawn cap + burst gap on F1.

Swordsman shield/passive redesign:

  • Shield made uniform across units (shared, like HP) — removed the character branch in push_shield_params + the SWORDSMAN_SHIELD_*_MULT globals.
  • New passive: on shield break (Swordsman active), refresh cooldowns — hooked on_shield_break; new player:refresh_cooldowns() resets the active unit's cds (character-branched, reusable).
  • Ported SNKRX RefreshEffect (Invoker-old/reference/SNKRX/shared.lua:682, identical across many old projects): new fx_refresh — a white box over the player whose height collapses to 0 (up-wipe), follows by id, axis-aligned (non-rotating). Tuned: REFRESH_FX_SIZE (F1 'refresh size', 36), height = 1.33× width, duration 0.15→0.225.

Archer icons (SNKRX, not emoji): the Swordsman icons came from SNKRX/assets/images/. First placeholdered with Twemoji, then swapped to SNKRX icons per the user: arrow/flying_daggers/baneling_burst/echo_barrageassets/ic_{shoot,cone,tumble,barrage}.png. The slot/card recolor icons to a unit-green silhouette, so source color is irrelevant.

Misc: Tumble distance 90→180→150 (1.66× original). Every edit syntax-checked with lua54.exe; orphan-swept BARRAGE_* / next_ult_time / SWORDSMAN_SHIELD_* after each refactor. Files touched: snkrx/player.lua, snkrx/fx.lua, main.lua, hud.lua, card.lua, plus new reference/ docs + assets/ (icons, arc sheet, two sounds).

🔒 Only the summary of this log is public. Private because this is 062026.