feat: clarify recruit equipment and levels

This commit is contained in:
2026-08-12 09:42:49 +08:00
parent afc243a007
commit e23b00b200
21 changed files with 421 additions and 138 deletions
+33 -33
View File
@@ -127,10 +127,10 @@
"id": "SHP-002",
"name": "Recruit review",
"input": "SELECT",
"purpose": "Evaluate generated name, profession, trait benefit/cost, rolled attributes, equipment eligibility, level, survival history, price, and party impact.",
"purpose": "Evaluate generated name, profession, trait benefit/cost, rolled attributes, one starting item, individual level/XP, survival history, price, and party impact.",
"action": "Recruit; commits BIND:RECRUIT_TRANSACTION after review.",
"emptyLoading": "Missing roster comparison states which binding is pending. Loading shows stable recruit identity, never a substitute recruit.",
"errorConfirmation": "Offer expired, insufficient value, invalid capacity, or duplicate receipt keeps the prior state. Confirmation states exact recruit, cost, capacity effect, and undo policy.",
"errorConfirmation": "Offer expired, insufficient value, invalid capacity, or duplicate receipt keeps the prior state. Confirmation states exact Recruit, level, starting item, cost, capacity effect, and undo policy.",
"interruptionReturn": "Suspend after commit checks receipt before retry. Cancel returns to Shop on the same stable offer ID."
},
{
@@ -177,20 +177,20 @@
"id": "EQP-001",
"name": "Equipment workbench",
"input": "LIST",
"purpose": "Equip a selected recruit while showing eligible inventory and sourced behavior changes.",
"action": "Equip selected item; changes loadout only after comparison review.",
"emptyLoading": "No owned items points to Shop. No eligible item explains profession/slot requirements. Loading retains current loadout.",
"errorConfirmation": "Incompatible, already used, stale inventory, or ruleset error blocks commit with reason. Confirmation states replaced item, conflicts, and before/after behavior.",
"interruptionReturn": "Suspend before receipt keeps the old loadout; resume reconciles receipt. Back returns to Recruit Detail or Party Line caller."
"purpose": "Equip a selected Recruit while showing individual level/XP, its one universal slot, eligible inventory and sourced behavior changes.",
"action": "Equip selected item; atomically returns the prior item or null and changes the one slot only after comparison review.",
"emptyLoading": "No owned items points to Shop. No eligible item explains Profession/form requirements. Loading retains the current slot.",
"errorConfirmation": "Incompatible, already used, stale inventory, or ruleset error blocks commit with reason. Confirmation states the returned prior item, one-slot result, conflicts, and before/after behavior.",
"interruptionReturn": "Suspend before receipt keeps the old item; resume reconciles receipt. Back returns to Recruit Detail or Party Line caller."
},
{
"id": "EQP-002",
"name": "Item comparison",
"input": "SELECT",
"purpose": "Compare current and candidate item in the vocabulary used by party preview, battle, and results.",
"action": "Apply candidate; returns to workbench with changed effects highlighted.",
"emptyLoading": "Empty candidate keeps current item and offers Choose Item. Loading never clears current values.",
"errorConfirmation": "Unknown derived effect is labeled unresolved and blocks Apply when consequence-critical. Confirmation lists all sourced changes and affected saved plan references.",
"purpose": "Compare the one current item and candidate in the vocabulary used by party preview, battle, and results.",
"action": "Apply candidate; returns to workbench with changed effects and returned prior item highlighted.",
"emptyLoading": "Empty candidate keeps current item and offers Choose Item. Empty current slot is explicit. Loading never clears current values.",
"errorConfirmation": "Unknown derived effect is labeled unresolved and blocks Apply when consequence-critical. Confirmation lists the exact old/new item IDs and affected saved plan references.",
"interruptionReturn": "Suspend keeps comparison but performs no equip. Back returns to Equipment with selection intact."
},
{
@@ -1092,10 +1092,10 @@
{
"id": "TR-020",
"name": "Oathbound Tool",
"benefit": "Choose one equipped item at battle start; its first trigger gains priority over profession action.",
"cost": "Other item triggers wait until the chosen trigger resolves or expires.",
"evidence": "Chosen-slot ribbon and queue state; blocked triggers have reason.",
"prohibited": "No-trigger equipment sets; PF-A24."
"benefit": "The Recruit's equipped item's first trigger gains priority over its profession action.",
"cost": "Until that trigger resolves or expires, the Recruit's first technique waits.",
"evidence": "One-slot oath ribbon and queue state; delayed technique has a reason.",
"prohibited": "Triggerless equipment; PF-A24."
},
{
"id": "TR-021",
@@ -3563,7 +3563,7 @@
"name": "Counterpair Compass",
"fit": "charm; any",
"class": "B",
"effect": "After wearer uses two distinct preview response tags, refresh oldest item cooldown.",
"effect": "After wearer uses two distinct preview response tags, refresh this item's cooldown.",
"tradeoff": "Repeating response resets pair.",
"production": "I/V/S: two-needle compass, response pips, paired ticks."
},
@@ -3599,9 +3599,9 @@
"name": "Trigger Queue Comb",
"fit": "charm; any",
"class": "B",
"effect": "When two items would trigger together, choose left-to-right equipped order.",
"tradeoff": "Second trigger resolves one tick later.",
"production": "I/O/V/S: toothed comb, ordered pips, two clicks."
"effect": "When wearer's item and one adjacent ally's item would trigger together, choose their left-to-right resolution order.",
"tradeoff": "Second Recruit's trigger resolves one tick later.",
"production": "I/O/V/S: toothed comb, two-Recruit order pips, two clicks."
},
{
"id": "EQ-265",
@@ -3635,9 +3635,9 @@
"name": "Cooldown Bridge",
"fit": "charm; any",
"class": "B",
"effect": "When one item readies, transfer one cooldown tick to another equipped item.",
"tradeoff": "Ready item becomes unavailable one tick.",
"production": "I/V/S: bridge clasp, clock exchange, bridge ping."
"effect": "When this item readies, pull one cooldown tick from an adjacent ally's equipped item.",
"tradeoff": "The ally's item gains that tick and this wearer becomes Hindered.",
"production": "I/V/S: bridge clasp, neighbor clock exchange, bridge ping."
},
{
"id": "EQ-269",
@@ -3662,9 +3662,9 @@
"name": "Opposite Trigger Ring",
"fit": "charm; any",
"class": "B",
"effect": "Direct-hit item proc also readies next area-trigger item, or reverse.",
"tradeoff": "Same-family trigger chain is prohibited and Hinders wearer.",
"production": "I/V/S: dot/ring token, cross-family arrow, two-tone ping."
"effect": "Wearer's direct-hit item proc readies the nearest ally's area-tag item, or the reverse pairing.",
"tradeoff": "Same-family pairing is prohibited and Hinders wearer.",
"production": "I/V/S: dot/ring token, cross-Recruit arrow, two-tone ping."
},
{
"id": "EQ-272",
@@ -3689,8 +3689,8 @@
"name": "Delayed Item Strap",
"fit": "garb; any",
"class": "B",
"effect": "Store first automatic item trigger and release on wearer command condition set in Prepare.",
"tradeoff": "Stored trigger blocks all other item triggers.",
"effect": "Store this item's first automatic trigger and release it on a wearer condition set in Prepare.",
"tradeoff": "While stored, the wearer's signature action cannot begin.",
"production": "I/O/V/S: strapped token, held-proc cue, buckle release."
},
{
@@ -4058,18 +4058,18 @@
"name": "No-Item Oath",
"fit": "charm; any",
"class": "B",
"effect": "Disable all other equipment effects; profession basic gains one alternate legal target rule.",
"tradeoff": "This item occupies the only active equipment hook. Unlock: win one region without item triggers.",
"production": "I/V/S: blank oath medallion, disabled-slot cue, solemn click."
"effect": "This item has no trigger; profession basic gains one alternate legal target rule.",
"tradeoff": "It occupies the Recruit's one equipment slot and supplies no item-trigger event. Unlock: win one region without item triggers.",
"production": "I/V/S: blank oath medallion, empty-hook cue, solemn click."
},
{
"id": "EQ-316",
"name": "Item Chorus Frame",
"fit": "kit; any",
"class": "B",
"effect": "Three different equipped trigger tags in one battle schedule a non-damaging repeat of oldest.",
"tradeoff": "All three items gain cooldown. Unlock: activate eight distinct trigger tags.",
"production": "I/O/V/S: three-hook frame, chorus pips, layered clicks."
"effect": "Three different allied equipped-item trigger tags in one battle schedule a non-damaging repeat of the oldest.",
"tradeoff": "The three contributing allied items each gain cooldown. Unlock: activate eight distinct trigger tags.",
"production": "I/O/V/S: three-Recruit frame, chorus pips, layered clicks."
},
{
"id": "EQ-317",