236 lines
12 KiB
Python
236 lines
12 KiB
Python
import sys
|
|
sys.path.insert(0, r"C:\git\bt411\scratchpad\night7")
|
|
import gitea
|
|
|
|
V = "**Field-verified on 4.11.883, playtest night 15 (2026-08-10, 8-player steam lobbies):** "
|
|
|
|
# ------------------------- CLOSES (Oracle: Pass) -------------------------
|
|
gitea.comment(149, V + "Oracle: **'#149 Pass'** -- and at first touch: *\"quick "
|
|
"launch in glass butter smooth frame rate.\"* The dirty-skip fix holds "
|
|
"under a full 8-player night. Closing the performance regression.")
|
|
gitea.close(149)
|
|
|
|
gitea.comment(150, V + "Oracle: **'#150 Pass -- We tested with missiles "
|
|
"exclusively as well as direct fire.'** Kill credit is now exactly +1 "
|
|
"per kill. Closing. ⚠ The DEATH side of the scoreboard failed the same "
|
|
"night (multi-counted deaths, no -500 penalty) -- that is a separate "
|
|
"defect, filed fresh with tonight's evidence (see the new death-tally "
|
|
"ticket).")
|
|
gitea.close(150)
|
|
|
|
gitea.comment(69, V + "Oracle: 'Pass -- Denkou is correct spelling' (era "
|
|
"witness). Closing.")
|
|
gitea.close(69)
|
|
|
|
gitea.comment(71, V + "Oracle: Pass. RajelAran at first touch: *\"plasma "
|
|
"window looks good, close minimizes and can restore.\"* Closing.")
|
|
gitea.close(71)
|
|
|
|
gitea.comment(39, V + "Oracle: Pass -- no input reaches the sim before the "
|
|
"scene presents. Closing.")
|
|
gitea.close(39)
|
|
|
|
gitea.comment(56, V + "Oracle: Pass -- MFD buttons stayed aligned through the "
|
|
"night. Closing (#50 was already folded into #155).")
|
|
gitea.close(56)
|
|
|
|
gitea.comment(25, V + "Oracle: Pass -- the Turn binding channel works on "
|
|
"pads. Closing.")
|
|
gitea.close(25)
|
|
|
|
gitea.comment(24, V + "Oracle: Pass -- no stuck hat/look views tonight. "
|
|
"Closing; reopen if any controller re-latches.")
|
|
gitea.close(24)
|
|
|
|
# ------------------------- FAIL updates (stay open) -----------------------
|
|
gitea.comment(27, V + "Oracle: **'#27 Fail -- still spreading damage to "
|
|
"multiple panels with both Gauss and AFCs.'** Note the DISTINCTION: the "
|
|
"original defect here was damage TYPE (ballistic scored as explosive) -- "
|
|
"that fix was verified empirically and stands. What Oracle observed is "
|
|
"the SPREAD, which is #112 (AFC rounds shotgun across zones) now "
|
|
"confirmed to cover Gauss too. Keeping this open until a retest can "
|
|
"separate type from spread cleanly; #112 gets tonight's confirmation.")
|
|
|
|
gitea.comment(112, V + "Oracle confirms the shotgun spread persists on 883 "
|
|
"and extends to **Gauss** as well as AFCs (single slugs spreading "
|
|
"damage across multiple panels). Bumping priority -- this now distorts "
|
|
"ballistic feel for two weapon families.")
|
|
|
|
gitea.comment(38, V + "Oracle: **Fail, with the repro finally precise** -- "
|
|
"*\"Only host initially spawns with the correct mech, badge and patch "
|
|
"color. Everyone else initially spawned with their chosen mech color "
|
|
"but a red patch and VGL badge. Host appears correct to others and "
|
|
"self. Nothing changed when respawning.\"* So: mech COLOR replicates "
|
|
"for everyone; BADGE + PATCH fall back to defaults (lgo6/red) for every "
|
|
"non-host player, persistently. That points at the egg/paint codes "
|
|
"reaching only the host's instance -- the [paint] lines in tonight's "
|
|
"four staged logs should show exactly which codes each node resolved.")
|
|
|
|
gitea.comment(128, V + "Oracle: **'Fail -- happens every single time I "
|
|
"collide with terrain at speed, needs to be at some minimum speed. "
|
|
"Confirmed.'** Deterministic above a speed threshold. Stays high on "
|
|
"the list.")
|
|
|
|
gitea.comment(135, V + "Oracle: Fail -- still live. Plus a new edge-staleness "
|
|
"detail from tonight: *\"Loop 6 leak indication and alarm stopped after "
|
|
"some time, but buttons on loops keep flashing even after alarms went "
|
|
"silent. After ~1 minute loop 3 button stopped flashing. Loop 6 NEVER "
|
|
"stopped.\"* So the flash state can outlive the condition -- edge "
|
|
"consistency between alarm, button flash, and leak state is part of "
|
|
"this ticket now.")
|
|
|
|
gitea.comment(136, "Oracle's 'Clarify' from the sweep got answered by a live "
|
|
"case tonight (Rajel, 21:10 ET, Sunder LRM10 loop): leak ALARMED -> "
|
|
"loop turned OFF -> re-OPENED: **no alarm despite a 3-triangle leak** "
|
|
"-> off and on again -> alarmed. So the re-arm of the leak alarm on "
|
|
"loop-reopen is inconsistent -- one cycle silent, next cycle correct. "
|
|
"That is the repro to chase.")
|
|
|
|
gitea.comment(102, "Night-15 note (Lynx): *\"possible issue getting out of "
|
|
"reverse -- monitor\"* -- adjacent to this ticket's run/reverse "
|
|
"transition; logging it here so the reports accumulate in one place.")
|
|
|
|
# ------------------------- NEW TICKETS ------------------------------------
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"DEATH tally multi-counts (up to +6 at once) and the -500 death penalty "
|
|
"is not applied -- 883, 8-player night",
|
|
"body":
|
|
"**The night-15 headline.** Kill credit is fixed (#150 passed) but the DEATH "
|
|
"side of the scoreboard is broken, badly:\n\n"
|
|
"- Sauron: *\"getting 2 deaths each time he died\"* -- consistent, every death.\n"
|
|
"- Elengil's death count *\"way off\"*; Greywolf captured the moment a single "
|
|
"death took the counter to 12 (screenshot in Discord).\n"
|
|
"- Oracle's summary: *\"Multiple death behavior is not consistent... even "
|
|
"awarded 6 deaths at once.\"*\n"
|
|
"- Rajel's scoreboard screenshot: *\"the math, uh, ain't mathing.\"*\n"
|
|
"- Oracle + Lynx independently: **\"Deaths did not detract 500 points\"** -- "
|
|
"the deathPenalty never applies (it demonstrably worked before: the -499 "
|
|
"eject arithmetic on night 14 required it).\n\n"
|
|
"**Shape analysis:** +6-at-once in an ~8-player lobby smells like "
|
|
"once-per-PEER counting -- each node's copy of the death emitting its own "
|
|
"increment, so the count scales with lobby size (2x in small matches, ~6x "
|
|
"in the big one).\n\n"
|
|
"**Regression flag (honest):** 883 is the first fielded build with the #150 "
|
|
"report gates (46ff8dd: report tail master-only + once-per-death latch). "
|
|
"Kills went from doubled to exact; deaths went from correct-ish to "
|
|
"multi-counted with no penalty. The death/score chain (VehicleDead / "
|
|
"PLAYER_DEAD / deathPenalty application) must be audited against the "
|
|
"binary's authority model the same way the kill chain was -- including "
|
|
"whether the penalty application rode a path the new gate severed.\n\n"
|
|
"**Evidence staged (scratchpad/night15/):** four day logs (Dave/SCREECH, "
|
|
"rajel/GAMERSLAB, acaci/ZEUS, Michael/XIAOLONG) with SCORE/DEATH receipt "
|
|
"lines, plus two matchlogs (Elengil's 21:36 round, Lynx's 22:36 round) -- "
|
|
"matchcheck.py reconciliation is the first move. Elengil's and Conn Man's "
|
|
"day logs still need re-downloading (their zips did not land).\n\n"
|
|
"Priority: NEXT INVESTIGATION."})
|
|
n_death = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"Mission end leaves players FROZEN in the ended mission; separate "
|
|
"hang-on-exit (host and non-host) -- 3 reporters, 883",
|
|
"body":
|
|
"Three occurrences on night 15:\n"
|
|
"- 21:41 ET: Conn Man *\"remained in the game after the mission ended, "
|
|
"frozen view of how the game ended.\"*\n"
|
|
"- 22:48 ET: same for Greywolf AND Lynx at mission end.\n"
|
|
"- Lynx: *\"BTL4 hang on exit, hosting\"* (screenshot); Conn Man also had "
|
|
"one exit hang requiring Task Manager.\n\n"
|
|
"So two shapes, possibly one root: (a) the round-end transition never "
|
|
"fires for some players (left standing in the dead world instead of the "
|
|
"exit-to-menu flow), and (b) the process hangs at exit. NOT the old #93 "
|
|
"(that was an access-violation crash class, closed as aged out) -- these "
|
|
"are hangs/no-transitions under the 8-player steam shape.\n\n"
|
|
"Evidence: the staged night-15 logs cover Lynx's hosted round (matchlog "
|
|
"22:36) -- the mission-end ladder (StopMission -> RunMissions return -> "
|
|
"relaunch) on each machine is the place to diff. Conn Man's log still "
|
|
"needs collecting (his zip did not land; note his log rolled to "
|
|
"steam_20260810.1.log)."})
|
|
n_frozen = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"Persistent 'hanging laser beam' attached to own mech's legs, moves "
|
|
"with rudder, persists until death (Conn Man, 2 games, 883)",
|
|
"body":
|
|
"Conn Man, two games: *\"a hanging laser beam. It would persist until I "
|
|
"would die. Not sure if it is mine, or from someone else's shot. The beam "
|
|
"seemed to be attached to my legs and would move with my rudder inputs.\"* "
|
|
"Screenshots in Discord.\n\n"
|
|
"A beam visual whose lifetime never expires and whose origin is bound to a "
|
|
"mech segment (legs, riding the yaw input) -- beam lifecycle/attachment "
|
|
"bug, likely replication-side (he could not tell whose shot it was). "
|
|
"Death (entity rebuild) clears it.\n\n"
|
|
"His log is still to be collected (zip did not land). Peers' logs from the "
|
|
"same rounds are staged."})
|
|
n_beam = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"X'd-out (destroyed) energy weapons can still FIRE -- animation "
|
|
"replicates to peers (Rajel, 883)",
|
|
"body":
|
|
"Rajel, 23:28 ET, Standard mode: *\"ER PPC, ERS on left arm, ERS on right "
|
|
"arm. Weapons could still be fired even though x'd out. The weapon "
|
|
"animation is displayed to other players when fired and possibly did no "
|
|
"damage to the target mech, we didn't fire enough times.\"*\n\n"
|
|
"The destroyed-weapon fire gate was fixed and A/B-verified in 5410371 "
|
|
"(#86: both fire gates read the never-written Destroyed cell). Either "
|
|
"this regressed, or the X'd-out state he saw is a DIFFERENT condition "
|
|
"than the Destroyed cell the gates read (e.g. unpowered/unavailable "
|
|
"level-7 -- #30's remainder). Need his log's fire/damage receipts for "
|
|
"those weapons to tell which."})
|
|
n_xfire = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"Weapon-ready desync: MFD full green vs HUD not-ready; LRM10 refused "
|
|
"to fire until a round was ejected (Oracle, 883)",
|
|
"body":
|
|
"Oracle: *\"LRM 10 displayed as ready on the MFD (full green circle). HUD "
|
|
"showed weapon not ready and it would not fire. Had to eject a round to "
|
|
"get it to fire.\"*\n\n"
|
|
"So three state consumers disagreed: MFD said ready, HUD said not-ready, "
|
|
"fire gate agreed with the HUD -- and the AMMO-EJECT path cleared the "
|
|
"condition (jam semantics: ejecting the chambered round clears a jam). "
|
|
"Likely the MFD ready-circle reads a different cell than the HUD/fire "
|
|
"gate (the #30 weapon-state presentation remainder, now with a field "
|
|
"repro). The eject-clears-it detail says the underlying state was a JAM "
|
|
"the MFD failed to show."})
|
|
n_ready = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"Reticle lock circle absent on ALL target mechs for a stretch "
|
|
"(Oracle, 23:32 ET, 883) -- monitor",
|
|
"body":
|
|
"Oracle: *\"At 10:32PM I had no reticle circle appear on any target "
|
|
"mechs.\"* One stretch, one session, after the #131 per-frame lock-ring "
|
|
"fix was verified earlier in the night. Distinct from #147 (range caret). "
|
|
"Monitor-class until it recurs; his log for that window is staged "
|
|
"(Dave/SCREECH-PC)."})
|
|
n_ret = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"ERA QUESTION + table check: AFC50 lands armor damage beyond LRM "
|
|
"range -- authentic 4.10 ranges?",
|
|
"body":
|
|
"Oracle, 21:14 ET: *\"Firing AFC50 from Avatar scoring confirmed hits with "
|
|
"armor damage on Elengil out to beyond LRM range on the range scale.\"*\n\n"
|
|
"Question: does the 4.10 weapon table give the AFC50 a max range beyond "
|
|
"the LRM's? Verifiable directly from the decomp weapon data (range "
|
|
"fields) -- if the table says yes, this is authentic and closes; if not, "
|
|
"projectile range enforcement needs a look. Era witnesses' memory of AC "
|
|
"vs LRM reach also welcome."})
|
|
n_afc = r["number"]
|
|
|
|
r = gitea.call("/issues", "POST", {"title":
|
|
"Lobby screen UI: leave-lobby button clipped at bottom edge; host "
|
|
"lobby cluttered at 8 players (Lynx, 883)",
|
|
"body":
|
|
"Two cosmetic-but-real lobby items from the first 8-player night:\n"
|
|
"1. *\"On lobby screen the leave lobby button is cut off at the bottom "
|
|
"edge of the window (half shown).\"*\n"
|
|
"2. Lynx's screenshot: *\"8 player lobby host clutter\"* -- the host view "
|
|
"does not lay out cleanly at 8 members.\n\n"
|
|
"The menu window is fixed-size; 8-player rosters need either a taller "
|
|
"client rect or tighter row layout."})
|
|
n_ui = r["number"]
|
|
|
|
print("created:", n_death, n_frozen, n_beam, n_xfire, n_ready, n_ret, n_afc, n_ui)
|