Severed-Chains
Severed-Chains copied to clipboard
Open Party Behaviours
Problem
What do we do with retail forced party size limits and party specific character combinations with the new game play flows from Icarus's nodart fixes.
Solution 1
Idea
- Add a
Party Behaviour
setting- Retail
- Story
- Open (maybe call it
Unlocked
)
- Remove
Unlock Party
setting in menus - Add a
Character Visibility
setting- Retail
- Story Unlocked
- All Unlocked
Design
Character Select Popup
The Character Select
screen would pop-up when the game makes silent party changes for Story
and Open
settings. The cases for this not being done in retail is it would have been redundant or it is for story reasons. Other times, a Character Select
menu does appear.
Most likely Retail
would not need this Character Select
menu to pop-up and retains vanilla experience (not seeing a pop-up on silent party changes).
Character Select Menu
The Character Select
menu would need to be reworked to handle the limitations (or no limitations) forced on by the Open Party Behaviour
setting.
Open Party Behaviour
Party Variables
- Which characters are active in the bench
- Which characters are selectable in the bench
- Which characters are active in the frontline
- Which characters are selectable in the frontline
- Party size limit
Retail
, Story
and Open
would have their own constraints on these Party Variables
and affect how the pop-up menu would behave. Additional party behaviours can be added as needed to each option setting.
Retail
considerations are still needed as retail does prompt the Character Select
menu for non-silent party changes.
Open Party Behaviour
Option Settings
-
Retail
- Should be 1:1 with retail behaviour
- Only retail story characters available
- Only retail story party size limits at specific retail times
-
Story
- Permits one to select any characters that are in the bench (or are active)
- Ignores any retail restrictions for specific characters
- Party size limits are still respected to retail (ex: Kongol I, 2 character limit)
- Permits one to select any characters that are in the bench (or are active)
-
Open
- Permits one to select any characters that are in the bench (or are active)
- Permits any party size (1 to 3)
- Let mods override this setting to permit 1 to n active characters
- Can future prepare the 1 to n check by having the default set to 3 as an eNUM or CONFIG option
Character Visibility in the Bench
-
Retail
-> Visibility follows retail -
Story Unlocked
-> Once a character is unlocked, you have the character unlocked for the rest of the game (game can't hide it) -
All Unlocked
-> All characters are unlocked at all times
For instance, if someone wants to use Meru the whole time w/o relying on mods, they would need to see Meru as visible in the bench at all times. Further, with Shana, if you want to use Shana during the White Dragoon arc, you'd need to make her visible again. Same for the replaced characters Lavitz/Shana.
This also lets mods 'unlock a character' at various times and can be sure with the 'Story Unlocked' setting, that the game will not hide them, and hiding them will be up to the mod to ?override?.
Character Select
UI
Note, that if we permit all characters for the Character Visibility
setting Story Unlocked
or All Unlocked
the menu UI can not fit all characters. We can redesign the character portraits to be smaller to fit while retaining the same info.
We could also support 2 versions of the screen so that Retail
still displays the retail screen, but if someone is using a non-Retail Character Visibility
or Character Select
setting, then the non-retail but still LoD-esque character portraits will be displayed instead.
Party Size Limitations The game currently restricts party size by only showing you that number of active/visible characters. So if you can only have 2 characters, the game only shows 2 characters to you in the bench/party.
With an open party, or any combination of Character Visibility
, you will be able to override these limits by just selecting extra characters to fill the remaining slots.
We can add the 'Can't Select' text to the Slots that are restricted but we will need some hardcoded checks for Retail
or Story
settings.
Party Size Slot #s Do we want to accomodate handling Slots 1 and Slots 3 being permitted, but once you select those 2 and have a party size limit of 2, that the Slot 2 renders 'Can't Select'.
There may be some encounter AI to consider when selecting which slots to place characters in when there are party size limits but all slots are open.
Alternatively, we keep the slots restricted from backwards order at all times (matches retail). No idea this impact on mods.
Remove Unlock Party
setting
-
Story
orOpen
permit the same functionality while also not leaving the game open to crashes / unexpected behaviour - Could be retained in the debugger for fringe
Retail
mode inOpen Party Behaviour
in the debugger or config file- Would have to be a last check override in specific places
- Don't see how retaining the setting in menus would be useful
Mods I think all of this lends to an easy way to add modding events for party behaviours and doesn't create any limitations for modders.
Work Items
- Script work
- Permit a game action (opening a menu) from a script or when a specific script is executed or script callbacks to Java land
- Permit the game action side-effects to override and/or influence the specific script data in use
- Implement the Party Check
- Find where in the scripts/encounters/submaps the
Character Select
screen needs to pop up (where the game does it silently) - Hook this into the Script work above
- Add functionality/callback
- Find where in the scripts/encounters/submaps the
- Implement the functionality/callback
- Specifically handle
Character Select
menu popups (other menu pop-ups, other non-menu interrupts out of scope?) - Handle the implementation details of pushing the
Character Select
to the stack and tying up the side-effects- Side-effects handled directly in the menu, with the script then parsing from the target side-effect destination?
- Logic handling for the 3 option settings
Retail
,Story
andOpen
as the user uses the menu's functionality
- Specifically handle
- Test
Solution 2
Pending ideas from others.