Add rank, friends, fishing, and camp treasure with T2 studio models and skill presentation.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
"""Validate the formal skill table and its authored client bank without enabling proposal files."""
|
||||
import copy
|
||||
import json
|
||||
import hashlib
|
||||
from pathlib import Path
|
||||
from validate_skill_design import validate,load,require
|
||||
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
def main():
|
||||
path=ROOT/'Config/Combat/skill_runtime_v1.json';runtime=load(path)
|
||||
require(runtime['status']=='runtime' and runtime['runtimeEnabled'] is True and runtime['protocol']==1 and runtime['logicVersion']==1,'Unsupported formal runtime version')
|
||||
design=copy.deepcopy(runtime);design['status']='design_only';design['runtimeEnabled']=False
|
||||
result=validate(design,load(ROOT/'Config/Combat/skill_presentations_v1.proposal.json'),load(ROOT/'Doc/Design/Sound/BattleSkills/manifest.json'),load(ROOT/'Config/Gameplay/greenfield.json'))
|
||||
require((ROOT/'AIClient/Assets/Bundles/Combat/BattleSkillPresentation.prefab').is_file(),'Missing authored battle skill bank')
|
||||
# Runtime only accepts the finite, typed parameter vocabulary implemented by the C++ adapter.
|
||||
for template in runtime['templates']:
|
||||
for action in template['actions']:
|
||||
require(action['trigger']=='delivery_hit','Unsupported formal action phase')
|
||||
if action['type']=='apply_status':require(action['statusId'] in ('shield_main','slow_main'),'Unsupported formal status')
|
||||
result.update(formalPartnerProfiles=10,formalEffectKinds=15,formalAudioClips=9,status='formal_runtime_contract_validated',runtimeIntegrated=True,protocol=1,logicVersion=1,rulesVersion=3,runtimeSource=str(path.relative_to(ROOT)).replace('\\','/'),runtimeSourceSha256=hashlib.sha256(path.read_bytes()).hexdigest(),note='Formal runtime table is separate from disabled proposals; nine audio clips generated; ten formal partner presentation profiles validated by verify_partner_skills.py')
|
||||
target=ROOT/'Doc/Design/Combat/Runtime/config_validation.json';target.parent.mkdir(parents=True,exist_ok=True);target.write_text(json.dumps(result,indent=2),encoding='utf-8');print(json.dumps(result))
|
||||
|
||||
if __name__=='__main__':main()
|
||||
Reference in New Issue
Block a user