/** * Hand-maintained types for the [Leanny/splat3](https://github.com/Leanny/splat3) game data dump, * declared rather than inferred so `pnpm run typecheck:scripts` passes without the gitignored dump in * `scripts/dicts/splat3`. Only the fields the scripts read are declared; update alongside the scripts. */ /** `data/language/.json` — message category -> message key -> localized (URI encoded) text. */ export type LangDict = Record>; interface WeaponInfoEntry { DefaultDamageRateInfoRow: string; DefaultHitEffectorType: string; ExtraDamageRateInfoRowSet: Array<{ DamageRateInfoRow: string; ExtraInfo: string; }>; ExtraHitEffectorInfoSet: Array<{ ExtraInfo: string; HitEffectorType: string; }>; Id: number; Label: string; NpcActor: string; SpecActor: string; Type: string; __RowId: string; } /** `data/mush//WeaponInfoMain.json` */ export interface WeaponInfoMainEntry extends WeaponInfoEntry { DebugDispColumn: number; DebugDispOrder: number; GameActor: string; IsCoopRare: boolean; LObjParam: string; LockerContentInfo: string[]; LockerModelColor: { A: number; B: number; G: number; R: number }; MatchingId: number; Range: number; RewardLv2: string; RewardLv3: string; Season: number; ShopPrice: number; ShopUnlockRank: number; SpecialPoint: number; SpecialWeapon: string; SubWeapon: string; UIParam: Array<{ Type: string; Value: number }>; WeaponInfoForCoop: string; } /** `data/mush//WeaponInfoSub.json` */ export interface WeaponInfoSubEntry extends WeaponInfoEntry { LockerGoodsSubWeaponInfo: string; } /** `data/mush//WeaponInfoSpecial.json` */ export interface WeaponInfoSpecialEntry extends WeaponInfoEntry { StandAlone: boolean; } /** `data/mush//GearInfo{Head,Clothes,Shoes}.json` — all three share one shape. */ export interface GearInfoEntry { AlphaMaskF: string; AlphaMaskM: string; AlphaMaskV1: string; Brand: string; CallSign: number; CallSignPriority: number; CaptureModelType: string; Genre0: string; Genre1: string; HarnessType: string; HeadParamSetPath: string; HowToGet: string; Id: number; IsHideHarness: boolean; IsThinHarness: boolean; IsUnisex: boolean; LObjParam: string; LObjParamM: string; Label: string; Material: string; Price: number; Rarity: number; Season: number; Skill: string; UrokoPrice: { BronzeUrokoNum: number; GoldUrokoNum: number; SilverUrokoNum: number; }; UrokoUnlockLevel: number; VariationNum: number; __RowId: string; } /** `data/parameter//misc/SplPlayer.game__GameParameterTable.json` */ export interface SplPlayerParams { GameParameters: { spl__PlayerBeaconSubSpecUpParam: { SubSpecUpParam: { High: number; Mid: number }; }; }; } /** * `data/parameter//misc/spl__DamageRateInfoConfig.pp__CombinationDataTableData.json` * * `DamageRate` is absent for cells that take no damage rate modifier. */ export interface DamageRateInfoConfig { CellList: Record< string, { ColumnKey: string; DamageRate?: number; RowKey: string; } >; TableType: string; }