re: mission scoring and the S/A/B/C/D rank thresholds
sub_8230D1F8 -- the loader that contaminated the AA_/AV_ offset search -- is the stage-settings loader. Reading its 122 field NAMES instead of its offsets found the scoring block, which nothing in docs/re owned. 24 IDXD objects per language pack x 6 = 144, each holding Score_Easy / Score_Normal / Score_Hard: 72 records per pack on one 22-field schema, no variants. Difficulty moves 10 of the 22 fields and never the five RankScore_* thresholds -- the rank bar is per stage, difficulty scales the earning rate (x0.5 / x1.0 / x2.0) and the penalties. 23 of 24 objects differ from the commonest Normal record; 9 of 72 records zero the scoring entirely. Not settled: which object is which stage. None of AUTO_SETTINGS's 28 filenames resolves to any of the 24 under 19 prefixes, and 24 vs 28 is unexplained. New doc structures/mission-scoring.md, regenerator mission_scoring.py, artefact data/mission-scoring.txt. Twelve artefacts now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
84
docs/re/data/mission-scoring.txt
Normal file
84
docs/re/data/mission-scoring.txt
Normal file
@@ -0,0 +1,84 @@
|
||||
# Mission scoring / rank thresholds (regenerated by mission_scoring.py)
|
||||
|
||||
IDXD objects carrying RankScore_S, per pack: {'GP_MAIN_GAME_D.pak': 24, 'GP_MAIN_GAME_E.pak': 24, 'GP_MAIN_GAME_F.pak': 24, 'GP_MAIN_GAME_I.pak': 24, 'GP_MAIN_GAME_J.pak': 24, 'GP_MAIN_GAME_S.pak': 24}
|
||||
total across the disc : 144
|
||||
difficulty records per object : [('Score_Easy', 'Score_Hard', 'Score_Normal')]
|
||||
distinct field sets : 1
|
||||
records : 72 (22 fields each)
|
||||
|
||||
value census per field (over 72 records):
|
||||
CraftScore_Adjustment 4 distinct 0.5=21 1.0=21 2.0=21 0.0=9
|
||||
FFPenalty_Craft_Basis 2 distinct 1.0=63 0.0=9
|
||||
FFPenalty_Craft_Maximum 3 distinct 10000=42 5000=21 0=9
|
||||
FFPenalty_Vessel_Basis 2 distinct 1.0=63 0.0=9
|
||||
FFPenalty_Zessel_Maximum 3 distinct 10000=42 5000=21 0=9
|
||||
FriendlyVesselDamageBonus 4 distinct 0=33 1000=13 2000=13 500=13
|
||||
GettingScoreBasis_Maximum 7 distinct 10=48 6=6 7=6 4=3 5=3 8=3 9=3
|
||||
GettingScoreBasis_Minimum 2 distinct 3=51 2=21
|
||||
KillBonus_Maximum 4 distinct 0=18 1000=18 2000=18 500=18
|
||||
LostWingmanPenalty 3 distinct 1000=42 500=21 0=9
|
||||
MainMissionBonus 8 distinct 0=18 1000=14 2000=14 4000=9 500=5 1500=4 3000=4 6000=4
|
||||
MainMissionCount 3 distinct 1=33 2=27 3=12
|
||||
OtherScore_Adjustment 4 distinct 0.5=21 1.0=21 2.0=21 0.0=9
|
||||
RankScore_A 21 distinct 10350=6 12500=6 4000=6 100001=3 112350=3 14200=3 15400=3 200001=3 21150=3 22350=3 25000=3 25950=3 27150=3 2930
|
||||
RankScore_B 21 distinct 3000=6 7900=6 9000=6 10800=3 11600=3 150001=3 15100=3 15900=3 18000=3 18300=3 19100=3 20200=3 30800=3 35400=3
|
||||
RankScore_C 21 distinct 2000=6 5450=6 5500=6 100001=3 10650=3 11000=3 11050=3 11100=3 17400=3 18700=3 20001=3 3333=3 39450=3 4138=3 41
|
||||
RankScore_D 9 distinct 3000=24 2000=12 4000=12 1000=6 50001=6 10001=3 1667=3 690=3 833=3
|
||||
RankScore_S 19 distinct 9999=9 10000=6 12800=6 16000=6 11200=3 120001=3 148800=3 17600=3 19200=3 27200=3 28800=3 300001=3 32000=3 3360
|
||||
TimeBonus_Basis_Maximum 2 distinct 300=63 1200=9
|
||||
TimeBonus_Basis_Minimum 3 distinct 120=63 480=6 330=3
|
||||
TimeBonus_Maximun 5 distinct 1000=18 2000=18 500=18 0=9 10000=9
|
||||
VesselScore_Adjustment 4 distinct 0.5=21 1.0=21 2.0=21 0.0=9
|
||||
|
||||
fields that differ between the three difficulty records:
|
||||
{'CraftScore_Adjustment': 21, 'FFPenalty_Craft_Maximum': 21, 'FFPenalty_Zessel_Maximum': 21, 'KillBonus_Maximum': 18, 'LostWingmanPenalty': 21, 'MainMissionBonus': 18, 'OtherScore_Adjustment': 21, 'TimeBonus_Maximun': 18, 'VesselScore_Adjustment': 21, 'FriendlyVesselDamageBonus': 13}
|
||||
|
||||
objects whose Normal record differs from the commonest Normal record:
|
||||
23 of 24 objects
|
||||
0xd4c05c15 {'MainMissionBonus': '1000', 'MainMissionCount': '1'}
|
||||
0xe88492fc {'RankScore_A': '9150', 'RankScore_B': '7100', 'RankScore_C': '5050', 'RankScore_D': '3000', 'RankScore_S': '11200'}
|
||||
0xe8a78ef2 {'MainMissionBonus': '1000', 'MainMissionCount': '1', 'RankScore_A': '12500', 'RankScore_B': '9000', 'RankScore_C': '5500', 'RankScore_D': '2000', 'RankScore_S': '16000'}
|
||||
0xe98abbfc {'FriendlyVesselDamageBonus': '1000', 'MainMissionBonus': '3000', 'MainMissionCount': '3', 'RankScore_A': '14200', 'RankScore_B': '10800', 'RankScore_C': '7400', 'RankScore_D': '4000', 'RankScore_S': '17600'}
|
||||
0xe9adb7f2 {'RankScore_A': '27150', 'RankScore_B': '19100', 'RankScore_C': '11050', 'RankScore_D': '3000', 'RankScore_S': '35200'}
|
||||
0xea90e4fc {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '7', 'GettingScoreBasis_Minimum': '2', 'MainMissionBonus': '3000', 'MainMissionCount': '3', 'RankScore_A': '15400', 'RankScore_B': '11600', 'RankScore_C': '7800', 'RankScore_D': '4000', 'RankScore_S': '19200'}
|
||||
0xeab3e0f2 {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '5', 'GettingScoreBasis_Minimum': '2', 'MainMissionBonus': '1000', 'MainMissionCount': '1', 'RankScore_A': '52100', 'RankScore_B': '35400', 'RankScore_C': '18700', 'RankScore_D': '2000', 'RankScore_S': '68800'}
|
||||
0xeb970dfc {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '4', 'GettingScoreBasis_Minimum': '2', 'RankScore_A': '10350', 'RankScore_B': '7900', 'RankScore_C': '5450', 'RankScore_D': '3000', 'RankScore_S': '12800'}
|
||||
0xebba09f2 {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '6', 'GettingScoreBasis_Minimum': '2', 'MainMissionBonus': '1000', 'MainMissionCount': '1', 'RankScore_A': '12500', 'RankScore_B': '9000', 'RankScore_C': '5500', 'RankScore_D': '2000', 'RankScore_S': '16000'}
|
||||
0xec9d36fc {'RankScore_A': '10350', 'RankScore_B': '7900', 'RankScore_C': '5450', 'RankScore_D': '3000', 'RankScore_S': '12800'}
|
||||
0xecc032f2 {'RankScore_A': '22350', 'RankScore_B': '15900', 'RankScore_C': '9450', 'RankScore_D': '3000', 'RankScore_S': '28800'}
|
||||
0xeda35ffc {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '8', 'GettingScoreBasis_Minimum': '2', 'MainMissionBonus': '3000', 'MainMissionCount': '3', 'RankScore_A': '25000', 'RankScore_B': '18000', 'RankScore_C': '11000', 'RankScore_D': '4000', 'RankScore_S': '32000'}
|
||||
0xedc65bf2 {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '9', 'RankScore_A': '112350', 'RankScore_B': '75900', 'RankScore_C': '39450', 'RankScore_D': '3000', 'RankScore_S': '148800'}
|
||||
0xede957e8 {'CraftScore_Adjustment': '0.0', 'FFPenalty_Craft_Basis': '0.0', 'FFPenalty_Craft_Maximum': '0', 'FFPenalty_Vessel_Basis': '0.0', 'FFPenalty_Zessel_Maximum': '0', 'KillBonus_Maximum': '0', 'LostWingmanPenalty': '0', 'MainMissionBonus': '0', 'MainMissionCount': '1', 'OtherScore_Adjustment': '0.0', 'RankScore_A': '8333', 'RankScore_B': '5833', 'RankScore_C': '3333', 'RankScore_D': '833', 'RankScore_S': '9999', 'TimeBonus_Basis_Maximum': '1200', 'TimeBonus_Basis_Minimum': '480', 'TimeBonus_Maximun': '10000', 'VesselScore_Adjustment': '0.0'}
|
||||
0xeea988fc {'FriendlyVesselDamageBonus': '1000', 'RankScore_A': '25950', 'RankScore_B': '18300', 'RankScore_C': '10650', 'RankScore_D': '3000', 'RankScore_S': '33600'}
|
||||
0xeecc84f2 {'MainMissionBonus': '1000', 'MainMissionCount': '1', 'RankScore_A': '29300', 'RankScore_B': '20200', 'RankScore_C': '11100', 'RankScore_D': '2000', 'RankScore_S': '38400'}
|
||||
0xeeef80e8 {'FriendlyVesselDamageBonus': '1000', 'KillBonus_Maximum': '0', 'MainMissionBonus': '0', 'MainMissionCount': '1', 'RankScore_A': '200001', 'RankScore_B': '150001', 'RankScore_C': '100001', 'RankScore_D': '50001', 'RankScore_S': '300001', 'TimeBonus_Maximun': '0'}
|
||||
0xefafb1fc {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '7', 'GettingScoreBasis_Minimum': '2', 'RankScore_A': '21150', 'RankScore_B': '15100', 'RankScore_C': '9050', 'RankScore_D': '3000', 'RankScore_S': '27200'}
|
||||
0xeff5a9e8 {'FriendlyVesselDamageBonus': '1000', 'KillBonus_Maximum': '0', 'MainMissionBonus': '0', 'MainMissionCount': '1', 'RankScore_A': '60001', 'RankScore_B': '40001', 'RankScore_C': '20001', 'RankScore_D': '10001', 'RankScore_S': '80001', 'TimeBonus_Maximun': '0'}
|
||||
0xf0b5dafc {'FriendlyVesselDamageBonus': '1000', 'GettingScoreBasis_Maximum': '6', 'GettingScoreBasis_Minimum': '2', 'MainMissionBonus': '3000', 'MainMissionCount': '3', 'RankScore_A': '44200', 'RankScore_B': '30800', 'RankScore_C': '17400', 'RankScore_D': '4000', 'RankScore_S': '57600'}
|
||||
0xf0fbd2e8 {'CraftScore_Adjustment': '0.0', 'FFPenalty_Craft_Basis': '0.0', 'FFPenalty_Craft_Maximum': '0', 'FFPenalty_Vessel_Basis': '0.0', 'FFPenalty_Zessel_Maximum': '0', 'KillBonus_Maximum': '0', 'LostWingmanPenalty': '0', 'MainMissionBonus': '0', 'MainMissionCount': '1', 'OtherScore_Adjustment': '0.0', 'RankScore_A': '8750', 'RankScore_B': '6667', 'RankScore_C': '4167', 'RankScore_D': '1667', 'RankScore_S': '9999', 'TimeBonus_Basis_Maximum': '1200', 'TimeBonus_Basis_Minimum': '480', 'TimeBonus_Maximun': '10000', 'VesselScore_Adjustment': '0.0'}
|
||||
0xf1020211 {'CraftScore_Adjustment': '0.0', 'FFPenalty_Craft_Basis': '0.0', 'FFPenalty_Craft_Maximum': '0', 'FFPenalty_Vessel_Basis': '0.0', 'FFPenalty_Zessel_Maximum': '0', 'KillBonus_Maximum': '0', 'LostWingmanPenalty': '0', 'MainMissionBonus': '0', 'MainMissionCount': '1', 'OtherScore_Adjustment': '0.0', 'RankScore_A': '8276', 'RankScore_B': '6897', 'RankScore_C': '4138', 'RankScore_D': '690', 'RankScore_S': '9999', 'TimeBonus_Basis_Maximum': '1200', 'TimeBonus_Basis_Minimum': '330', 'TimeBonus_Maximun': '10000', 'VesselScore_Adjustment': '0.0'}
|
||||
0xf2082b11 {'FriendlyVesselDamageBonus': '1000', 'KillBonus_Maximum': '0', 'MainMissionBonus': '0', 'MainMissionCount': '1', 'RankScore_A': '100001', 'RankScore_B': '80001', 'RankScore_C': '65001', 'RankScore_D': '50001', 'RankScore_S': '120001', 'TimeBonus_Maximun': '0'}
|
||||
|
||||
the commonest Normal record:
|
||||
CraftScore_Adjustment 1.0
|
||||
FFPenalty_Craft_Basis 1.0
|
||||
FFPenalty_Craft_Maximum 10000
|
||||
FFPenalty_Vessel_Basis 1.0
|
||||
FFPenalty_Zessel_Maximum 10000
|
||||
FriendlyVesselDamageBonus 0
|
||||
GettingScoreBasis_Maximum 10
|
||||
GettingScoreBasis_Minimum 3
|
||||
KillBonus_Maximum 1000
|
||||
LostWingmanPenalty 1000
|
||||
MainMissionBonus 2000
|
||||
MainMissionCount 2
|
||||
OtherScore_Adjustment 1.0
|
||||
RankScore_A 4000
|
||||
RankScore_B 3000
|
||||
RankScore_C 2000
|
||||
RankScore_D 1000
|
||||
RankScore_S 10000
|
||||
TimeBonus_Basis_Maximum 300
|
||||
TimeBonus_Basis_Minimum 120
|
||||
TimeBonus_Maximun 1000
|
||||
VesselScore_Adjustment 1.0
|
||||
Reference in New Issue
Block a user