Initial import of HEROLL source and design documents

This commit is contained in:
toshiocn
2026-10-26 16:05:39 +08:00
commit fdb55672c1
1846 changed files with 290692 additions and 0 deletions
@@ -0,0 +1,18 @@
contract,typescript_field,csv_file,csv_column,parse_rule,validation,error_policy,source_tag
RunState,floor,floor-balance.csv,floor,"int 1..10","1<=floor<=10",reject_checkpoint,VALIDATION_ADDED
RunState,points,shop-offers.csv,price,"signed int transaction result","points>=0",rollback_command,VALIDATION_ADDED
RngStreamState,algorithm,none,none,"literal xoshiro128ss","state has 4 uint32",reject_checkpoint,VALIDATION_ADDED
RngStreamState,index,technical_log,rngIndex,"uint64 serialized as decimal string","monotonic per stream",reject_checkpoint,VALIDATION_ADDED
DdaState,sourceConditions,gameconfig.csv,dynamicDifficultyCondition,"int[3] 5|8|12","exact source array",force_tier0,SOURCE_CONFIRMED
DdaState,sourceValues,gameconfig.csv,dynamicDifficultyValue,"int[6] 10|15|20|5|5|5","exact source array",force_tier0,SOURCE_CONFIRMED
DiceRoll,dieA|dieB,none,none,"diceRng int inclusive 1..6","36 ordered outcomes equal",abort_roll,VALIDATION_ADDED
BattleSnapshot,enemies,floor-balance.csv|monsterinfo.csv,combat columns,"base × prefab × dda","finite nonnegative stats",abort_battle,SOURCE_CONFIRMED
GearInstance,catalogId,gear-catalog.csv,catalog_id,int foreign key,"exactly 40 valid ids",reject_reward,SOURCE_CONFIRMED
GearInstance,statusId|value,gear-status.csv,status_id|base_min|base_max|plus_value,"uniform base + plus×rank","finite and display precision",reject_reward,VALIDATION_ADDED
BlessingInstance,blessingId,blessings.csv,blessing_id,string foreign key,"exactly 32 ids",reject_reward,SOURCE_CONFIRMED
PotionState,countLevel|healLevel|healAmount,potions.csv,level|value,"lookup HEAL_LEVEL value as flat HP","count 1..10 healAmount 50..650",reject_purchase,SOURCE_CONFIRMED
BossGaugeState,enabled|runtimeGauge|mode|playerRolls|countdownRemaining,stage-boss-rules.csv,bossSpawnRule|bossSpawnRuleValue,"enabled only for DiceGauge; gauge clamp 0..100; BUILDUP 0..2 then COUNTDOWN 4..0","stage0 enabled=false; DiceGauge increment=50 and 2+4 observed cycle",reject_checkpoint,RUNTIME_OBSERVED
ShopState,fixedOfferIds|randomOfferIds,shop-offers.csv,offer_id,"eligible filtered sample","3 fixed + <=3 random unique",rollback_reroll,SOURCE_CONFIRMED
EventInstance,tileId,events.csv,tile_id,"int or MERCHANT","known event and legal tile",rollback_install,SOURCE_CONFIRMED
RewardBoostTransaction,placementId,reward-boosts.csv,placement_id,string foreign key,"event placement matches",reject_transaction,VALIDATION_ADDED
Checkpoint,checksum,none,none,"SHA-256 canonical JSON without checksum","64 lowercase hex",load_backup,VALIDATION_ADDED
1 contract typescript_field csv_file csv_column parse_rule validation error_policy source_tag
2 RunState floor floor-balance.csv floor int 1..10 1<=floor<=10 reject_checkpoint VALIDATION_ADDED
3 RunState points shop-offers.csv price signed int transaction result points>=0 rollback_command VALIDATION_ADDED
4 RngStreamState algorithm none none literal xoshiro128ss state has 4 uint32 reject_checkpoint VALIDATION_ADDED
5 RngStreamState index technical_log rngIndex uint64 serialized as decimal string monotonic per stream reject_checkpoint VALIDATION_ADDED
6 DdaState sourceConditions gameconfig.csv dynamicDifficultyCondition int[3] 5|8|12 exact source array force_tier0 SOURCE_CONFIRMED
7 DdaState sourceValues gameconfig.csv dynamicDifficultyValue int[6] 10|15|20|5|5|5 exact source array force_tier0 SOURCE_CONFIRMED
8 DiceRoll dieA|dieB none none diceRng int inclusive 1..6 36 ordered outcomes equal abort_roll VALIDATION_ADDED
9 BattleSnapshot enemies floor-balance.csv|monsterinfo.csv combat columns base × prefab × dda finite nonnegative stats abort_battle SOURCE_CONFIRMED
10 GearInstance catalogId gear-catalog.csv catalog_id int foreign key exactly 40 valid ids reject_reward SOURCE_CONFIRMED
11 GearInstance statusId|value gear-status.csv status_id|base_min|base_max|plus_value uniform base + plus×rank finite and display precision reject_reward VALIDATION_ADDED
12 BlessingInstance blessingId blessings.csv blessing_id string foreign key exactly 32 ids reject_reward SOURCE_CONFIRMED
13 PotionState countLevel|healLevel|healAmount potions.csv level|value lookup HEAL_LEVEL value as flat HP count 1..10 healAmount 50..650 reject_purchase SOURCE_CONFIRMED
14 BossGaugeState enabled|runtimeGauge|mode|playerRolls|countdownRemaining stage-boss-rules.csv bossSpawnRule|bossSpawnRuleValue enabled only for DiceGauge; gauge clamp 0..100; BUILDUP 0..2 then COUNTDOWN 4..0 stage0 enabled=false; DiceGauge increment=50 and 2+4 observed cycle reject_checkpoint RUNTIME_OBSERVED
15 ShopState fixedOfferIds|randomOfferIds shop-offers.csv offer_id eligible filtered sample 3 fixed + <=3 random unique rollback_reroll SOURCE_CONFIRMED
16 EventInstance tileId events.csv tile_id int or MERCHANT known event and legal tile rollback_install SOURCE_CONFIRMED
17 RewardBoostTransaction placementId reward-boosts.csv placement_id string foreign key event placement matches reject_transaction VALIDATION_ADDED
18 Checkpoint checksum none none SHA-256 canonical JSON without checksum 64 lowercase hex load_backup VALIDATION_ADDED