Project_WL/AgentScripts/WL813o_PROBE.txt

161 lines
8.3 KiB
Plaintext
Raw Normal View History

# WL813o Probe 2026-09-09 13:01:57 (edit mode · Play 0 · 로그인 0)
playMode=False
── ⓪ 에셋 (WLZonePickupSettings · NEW) · 813p 계약
[PASS] Resources.Load("WL/WLZonePickupSettings")
[PASS] Enabled = True
값: cardCount=3 timeout=10s(unscaled=True) first=True includeFinalZone=False guideWait=True(max 8s) deferRevive=True pauseTimer=True holdWorld=False stopActors=True openDelay=0.35s
[PASS] 존4(마지막 존) 기본 제외 — 보스 흐름 방해 금지(발주서 §1-1)
[PASS] 세계 정지 기본 off = 타이머만 정지(발주서 §1-3 권장)
[PASS] 타임아웃 10 s(발주서 §1-2) — 실측 10
[PASS] 3장(기획안 F-3) — 실측 3
[PASS] 남은 초·카드 글자 아웃라인(813y ApplyEdge) outlineWidth=0.26
[PASS] 813p WLRunSettings 존재(존 수·런 길이의 주인 · UI 는 수치를 갖지 않는다)
813p 값(읽기만): runSeconds=240 존 4개
── ① 🔴 원본 SelectSkillUI 노드 실측 — 발주서 §1-1 전제와 다르다
[PASS] LoadPrefabContents(Assets/Res_Addr/MainUI/NewGameUI.prefab)
NewGameUI.prefab 안: SelectSkillUI=0 SelectSkillCard=0 GameUI=0 UILabel=0 UISprite=0 TextMeshProUGUI=712
[PASS] 원본 SelectSkillUI 노드 0개 = 열 대상이 없다
[PASS] GameUI 컴포넌트 0개 · GameUI.Ins=null → MyActor.cs:162 의 자동전투 정지 배선은 작동하지 않는다
[PASS] 실제 인게임 UI 에 NGUI 위젯 0개(원본 카드 UI 는 NGUI) · TMP 는 712개 = uGUI 트리
→ 그래서 813o 는 ① 원본 노드가 있으면 그대로 열고, ② 없으면 같은 원본 데이터·효과 경로를 쓰는 런타임 uGUI 패널로 간다.
── ② 원본 데이터·효과 경로 — table_selectskill / InGameInfo / ActorInfo
[PASS] 테이블 원본 TextAsset Assets/ResWork/Table/table_selectskill.txt
[PASS] 원본 table_selectskill.Awake 확보
[PASS] table_selectskill.Ins 설정(원본 Awake 경로)
[PASS] InGameInfo.Ins 설정
[PASS] ActorInfo.Ins 설정(All_Stop 대상 0 = 무해)
테이블 행 수 = 58
[PASS] 카드 3장을 뽑기에 충분한 행 수
[PASS] 원본 뽑기 Get_DataList(3) = 3행(셔플·보유 제외·PreSkill 규칙 그대로)
뽑기 예시 0: id=102 "체력(소)" pet=False
뽑기 예시 1: id=12 "서리 요정" pet=False
뽑기 예시 2: id=15 "바람의 길" pet=False
── ③ 노드 조립 — WL_ZonePickup(런타임 생성 · HideFlags.DontSave) · 구독 3종
Subscribe : 구독=True (ZoneCleared/RunStarted/RunEnded)
[PASS] ZoneCleared 구독 +1 — 실측 1
Subscribe(중복): 구독 변화 없음(True)
[PASS] 2회 호출해도 +1(중복 구독 0)
[PASS] IngameUIs/WL_HUD 경로 실측(813y/813q 와 같은 부모)
[PASS] WL_HUD 가 SafeAreaFitter 아래 = Safe Area 안
Bind : 연결 IngameUIs/WL_HUD · box(1742.22, 1280.00) 카드=3 unitsPerPx=1.7778
[PASS] WL_ZonePickup 노드 생성
배치 : box(1742.22, 1280.00) 카드=3 unitsPerPx=1.7778
[PASS] 조립 직후에는 닫혀 있다
── ④ 가짜 ZoneCleared(존 0) → 카드 3장 열림
런 시작: phase=Zones zoneCount=4
[PASS] ZoneCleared 수신 1 — 실측 1
[PASS] 예약 상태 = Pending
[PASS] 예약 존 = 0
Tick(지연 전): 지연 대기
[PASS] openDelaySeconds 전에는 열리지 않는다
Tick(지연 후): 열림 — 런타임 패널
[PASS] 카드 열림 — phase=Open open=True zone=0 picks=0 cards=3 sec=10 timerPaused=True worldHeld=False actorsStopped=True orig=False bound=True
[PASS] 원본 노드가 없어 런타임 패널 경로(폴백)로 열렸다
[PASS] 카드 3장 — 실측 3
카드 0: id=12 "서리 요정"
카드 1: id=17 "히키코모리 요정"
카드 2: id=106 "치명타 확률(소)"
[PASS] 3장 전부 실제 스킬 ID
[PASS] 중복 없음
[PASS] 카드 이름이 테이블 값으로 채워졌다
[PASS] 제목 = "스킬 선택"
[PASS] 남은 초 첫 표시 = "10초 후 자동 선택"
[PASS] 원본 ActorInfo.All_Stop(true) 도달 = 자동전투 정지
[PASS] 런 타이머 정지 요청 on(RunDirector.PauseTimer) — 세계 정지 없음
[PASS] timeScale 무접촉 = 1.00(holdWorld off)
── ⑤ 타임아웃 → 첫 카드 자동 선택 · 닫힘 · 정지 해제
6.8s 남음 표시 = "7초 후 자동 선택" (sec=7)
[PASS] 올림 표기 6.8 → 7 — 실측 7
1.5s 남음 표시 = "2초 후 자동 선택" (경고색 구간)
[PASS] 올림 표기 1.5 → 2 — 실측 2
[PASS] 표시 쓰기 발생 2회
Tick(타임아웃): 선택 0 id=12 (자동)
[PASS] 타임아웃 1회 — 실측 1
[PASS] 선택 1회 — 실측 1
[PASS] 닫힘 — phase=Idle open=False zone=-1 picks=1 cards=3 sec=-2147483648 timerPaused=False worldHeld=False actorsStopped=False orig=False bound=True
[PASS] 원본 InGameInfo.Add_SelectSkill(12) 도달 = 첫 카드가 적용됐다(효과는 원본 로직 그대로)
[PASS] 원본 All_Stop(false) 도달 = 자동전투 복귀
[PASS] 런 타이머 정지 해제
[PASS] 이번 런의 픽업 수 = 1
── ⑥ 카드 버튼 클릭 경로(자동이 아닌 사용자 선택)
[PASS] 존 1 클리어로 다시 열림
클릭 카드 1: id=13 "바람 요정"
ClickCard(1): 클릭 1
[PASS] 클릭 즉시 닫힘
[PASS] 타임아웃 아님(클릭 선택) — 실측 0
[PASS] 클릭한 카드의 효과가 원본 경로로 적용됐다
── ⑦ 마지막 존(존4) 제외 · SO 로 포함 전환
존 수 = 4 (마지막 인덱스 3)
[PASS] 마지막 존은 카드를 띄우지 않는다 — 마지막 존 제외
[PASS] 건너뜀 1회 — 실측 1
[PASS] includeFinalZone=1 이면 마지막 존도 예약된다(코드 변경 0)
── ⑧ 813i/813z 부활 팝업과 동시 — 부활 우선(카드는 미룬다)
[PASS] 프리팹에서 ReviveDialog 발견 — 1개
ReviveDialog.Initialize : initialized · 폴백 팝업 box size(1351.11, 675.56) unitsPerPx=1.7778
ReviveDialog.ShowNowOnce: 폴백 팝업 표시 msg="존 시작점에서 부활합니다.
무료"
[PASS] 부활 팝업 Busy = True
[PASS] 부활 팝업이 떠 있는 동안 카드는 열리지 않는다
[PASS] 미룸 카운트 1
[PASS] 픽업이 timeScale 을 건드리지 않았다
[PASS] 부활 팝업 닫힘 — Busy=False
[PASS] 부활이 닫힌 뒤 카드가 뜬다
[PASS] 정리 후 닫힘 · 타이머 정지 해제
── ⑨ 813w RunGuide 이동 중이면 도착 뒤에 연다
RunGuide.Active=True State=Off
BeginZone(1) 후 RunGuide.State=Travel (존 1 유도 시작(probe-813o) → (147.0, 2.6, 30.0) [SO 폴백])
[PASS] 이동 중에는 열리지 않는다
[PASS] 가이드 대기 1회
[PASS] 도착(가이드 종료) 뒤 열린다
── ⑩ 런 타이머 정지(813p RunDirector.PauseTimer · 세계 정지 0)
[PASS] 시작 상태 = 정지 아님
[PASS] PauseTimer(true) → ExternalTimerPause=True
[PASS] timeScale 무접촉 = 1.00
[PASS] 틱을 돌려도 정지가 유지된다(PollPause 가 외부 정지도 같은 층으로 본다)
[PASS] PauseTimer(false) → 해제
[PASS] 열림=정지 · 닫힘=해제 (짝 맞음 · PauseCalls=2)
정지 전 경과 = 10.00s
[PASS] 정지 시작 시각이 잡혔다(s_pauseStart=129.45)
[PASS] 프로브가 정지 창을 5초로 벌렸다
정지 중 5초 경과 후 = 10.00s (정지가 들으면 그대로 10.00)
[PASS] 🔴 정지 중 5초가 흘러도 런 경과 불변 = 10.00s
[PASS] 정지 누적 = 5.00s 로 집계됐다
[PASS] 해제 뒤 5초는 정상적으로 흐른다 = 15.00s (대조군)
── ⑪ GC — 같은 초 100틱 = 표시 쓰기 0회
[PASS] GC 측정용으로 열림
같은 초 100틱: 표시 쓰기 0회 · ΔGetTotalMemory=0 B · gc0 287→287
[PASS] 표시 쓰기 0회(값이 안 바뀌면 SetText 를 아예 안 부른다)
[PASS] ΔGetTotalMemory = 0 B
대조군 16 MB: Δ=16781312 B (계기 감도 확인)
[PASS] 대조군은 잡힌다 = 「0」이 진짜 0
── ⑫ C8 — enabled_ = 0 이면 아무것도 하지 않는다
[PASS] Enabled=False
Tick: off
[PASS] ZoneCleared 를 받아도 예약 0 — off
[PASS] 표시 0
[PASS] 런 타이머 정지 0
Bind(off): off — 조립 생략
[PASS] 813p WLRunSettings.Enabled 불변 = True
[PASS] 복구 후 Enabled=True
── ⑬ 정리 — 구독 해제 · 노드 파괴 · 프리팹 저장 0
Teardown : 정리 완료
[PASS] ZoneCleared 구독자 0 — 실측 0
[PASS] 타이머 정지 해제 확인
[PASS] 프리팹 UnloadPrefabContents(저장 0) · 대역 오브젝트 파괴
RESULT PASS (pass=92 fail=0)