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:
udx
2026-10-21 23:01:31 +08:00
co-authored by Cursor
parent 89e0fa246f
commit 079313fb06
677 changed files with 395371 additions and 9692 deletions
+9 -1
View File
@@ -16,7 +16,15 @@ class SkillDesignTests(unittest.TestCase):
def test_covers_current_actors_without_claiming_runtime(self):
r=validate(*self.data)
self.assertEqual(r['skills'],len(self.data[3]['pets'])*2+len(self.data[3]['enemies']))
self.assertFalse(r['runtimeIntegrated']);self.assertFalse(r['generatedAudio'])
self.assertFalse(r['runtimeIntegrated']);self.assertTrue(r['generatedAudio'])
self.assertEqual(r['generatedSfxCount'],9)
def test_generated_sound_requires_matching_file_hash_and_receipt(self):
item=next(i for i in self.data[2]['items'] if i.get('production'))
item['production']['sha256']='0'*64
with self.assertRaisesRegex(ValueError,'hash mismatch'):validate(*self.data)
self.setUp();self.data[2]['status']='partially_generated'
with self.assertRaisesRegex(ValueError,'status does not match'):validate(*self.data)
def test_missing_actor_or_wrong_skill_kind_is_rejected(self):
self.data[0]['skills'].pop()