Use Cases
1. Initialization and Configuration
- ID: 1.1
- Name: Program Execution
- Goal: Load the Program.
- Success End Condition: Program loads to Setup Menu.
- Failed End Condition: Program does not load successfully, but prints error output to errlog.txt and the console if available.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User executes the Ad Gladium executable file.
- Main Success Scenario
- Splash screen with "Loading" appears. Available Squads' names, indices and Battle Values are loaded into program.
- Splash Screen with flavor text about the game appears, then disappears after five seconds or user mouse click.
- Main Setup screen appears.
- ID: 1.2
- Name: Squad Selection
- Goal: The user wants to setup their information.
- Success End Condition: The player has an active squad.
- Failed End Condition: None (always succeeds)
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User left-clicks Select/Create Squad button.
- Main Success Scenario
- User selects "Select/Create Squad" from the Main Menu
- Program populates a list of existing teams.
- User picks an existing team from the list or creates a new squad (ID: 1.1.1.1).
- Program returns to the setup screen displaying new player handle and team information.
- ID: 1.2.1
- Name: Select Squad
- Goal: User assigns a squad to be a participant in the upcoming battle.
- Success End Condition: One Squad moves from the Available list to the Assigned v.
- Failed End Condition: Squad cannot be moved; error message displays, errlog.txt output occurs.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User left-clicks a Squad in the Available list and clicks the Assign button.
- Main Success Scenario
- User left-clicks on a Squad in the Available list.
- User left-clicks the Assign button.
- Squad name moves from Available list to Assigned list.
- ID: 1.2.2
- Name: Deselect Squad
- Goal: User removes a squad from participation in the upcoming battle.
- Success End Condition: One Squad moves from the Assigned list to the Available list.
- Failed End Condition: Squad does not move; error message is displayed and printed to errlog.txt.
- Primary Actor: Users
- Secondary Actor(s): None
- Trigger: User left-clicks a squad in the Assigned list and clicks the Unassign button.
- Main Success Scenario
- User left-clicks a squad in the Assigned list.
- User left-clicks the Unassign button.
- Squad name moves from Assigned list to Available list.
- ID: 1.2.1.3
- Name: CreateNewSquad
- Goal: User wants to create a battle squad
- Success End Condition: A new battle squad is created.
- Failed End Condition: None
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: Create New Squad button
- Main Success Scenario
- User enters a name for the squad.
- Program creates 5 new characters and gives the team a unique ID number.
- User edits the team at the Squad Management Screen (see section 3).
- Program returns to the setup screen displaying new player handle and team information.
- ID: 1.3
- Name: Start Network Battle
- Goal: A networked user wants to initiate a battle
- Success End Condition: A battle is initiated with the correctly configured battle forces selected by the user(s).
- Failed End Condition: Maximum players already loaded in the game.
- Primary Actor: User
- Secondary Actor(s): Remote Host
- Trigger: User indicates desire to join a network game.
- Main Success Scenario
- User selects "Join Network Battle" from the Main Menu
- Program prompts user for network information such as server address and optional password.
- User enters information.
- User selects player handle for the game.
- User selects battle force (see Use Case 1.1.1)
- Program initializes new game with Battle Forces and selected Map and Options (selected by Host).
- ID: 1.3.1
- Name: Host Network Game
- Goal: User hosts a network game.
- Success End Condition: Program begins listening for nonlocal Users to connect, adding their Teams to the Assigned list as they do so. User can Begin Battle at any time.
- Failed End Condition: Program is unable to initialize Network listener; prints error message to screen and errlog.txt.
- Primary Actor: Users
- Secondary Actor(s): None
- Trigger: User clicks Host Network Game.
- Main Success Scenario
- User left-clicks Host Network Game.
- User selects player handle for the game.
- User selects game options (e.g. number of turns, turn length).
- Battle Purse is adjusted to account for increase in Participating Battle Value.
- User selects Map.
- Program begins listening for external Join attempts.
- ID: 1.3.1.1
- Name: Select Map
- Goal: User chooses a map for the upcoming Battle.
- Success End Condition: Map Preview is displayed and Map is verified as a valid Map file.
- Failed End Condition: Error message is displayed to screen and to errlog.txt.
- Primary Actor: Users
- Secondary Actor(s): None
- Trigger: User left-clicks a map in the Maps list.
- Main Success Scenario
- User left-clicks a map in the Maps list.
- Map preview loads into Preview field.
- Program verifies map file and is now ready to use this map in the upcoming Battle.
- ID: 1.3.2
- Name: Join Network Game
- Goal: User joins a game hosted on another computer. User "brings across" exactly one Squad from his own folder.
- Success End Condition: User successfully connects to hosted Game. Program sends Squad information to hosted Game.
- Failed End Condition:
- Program fails to connect to designated IP address; prints error message and errlog.txt output.
- Program fails to send selected team successfully; prints error message and errlog.txt output. Program returns to Setup screen.
- Other error occurs: error message is printed to screen and to errlog.txt. Program returns to Setup screen.
- Primary Actor: Users
- Secondary Actor(s): None
- Trigger: User clicks Join Network Game.
- Main Success Scenario
- User moves one Squad to Assigned list.
- User clicks Join Network Game.
- User(s) selects player handle for the game.
- Text field appears with a prompt for an IP Address; User enters host IP information.
- Program connects to IP Address. Squad data is sent to hosting program, which returns approval message. Squad name, with local User's IP Address appended to the end, appears in host User's Assigned list on Setup screen. Local User sees a "Connection successful, waiting for Host..." message.
- Battle Purse is adjusted to account for increase in Participating Battle Value.
2. Battle
2.1 Initialization
- ID: 2.1.1
- Name: Begin Battle
- Goal: To begin a battle
- Success End Condition: The Map and Teams are loaded in the Battle Screen, and the Turn Manager is running.
- Failed End Condition: If the Map or any of the Teams are not valid, the user will receive an error message and the program will return to the Setup screen.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: The User clicks "Begin Battle" from the setup screen.
- Main Success Scenario:
- Map and Team XML files are validated to see if they are in the proper format.
- Battle Screen is displayed with the selected Map from the setup screen loaded and the respective Warriors from each team rendered in their appropriate locations on the Map.
- Control is handed to the Turn Manager.
2.2 Turn Manager
A User may do the following when the Turn Manager indicates that it is one of his/her Warrior's Turns to Act.
- ID: 2.2.1
- Name: Move Warrior
- Goal: The user wants to move his warrior to a new hex.
- Success End Condition: The warrior is moved.
- Failed End Condition: Warrior remains in its inital position.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the "Move" button.
- Main Success Scenario
- PRECONDITION: It is the turn of a warrior that the user controls.
- The game calculates what hexes can be moved to, given the current Warrior's move value and the terrain penalties of nearby hexes.
- The possible hexes to move to are highlighted for the User to see.
- User selects a hex to move the warrior to.
- Program determines the legality of the move.
- If the user tries to click on a non-highlighted hex, nothing happens.
- If the user clicks on a highlighted hex, the Warrior is moved to that hex and the appropriate animation is displayed.
- The "Move" button now becomes grayed out and the hexes become un-highlighted. The "Defend" button is also grayed out.
- ID: 2.2.2
- Name: View Warrior Statistics
- Goal: The user wants to view his warrior's statistics.
- Success End Condition: The warrior's statistics are shown.
- Failed End Condition: None (always succeeds).
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks "View Warrior Data" button.
- Main Success Scenario
- PRECONDITION: It is the turn of a warrior that the user controls.
- User clicks the "View Warrior Data" button.
- Game highlights all Warrior's on the Current Warrior's Team.
- When the User clicks on a Warrior on his Team, a window appears with all of the Warrior's stats and equipment displayed.
- When the User is finished viewing this information, he/she clicks the "OK" button and the game returns to the state before the "View Warrior Data" button was clicked.
- ID: 2.2.3
- Name: View Turn Order
- Goal: The user wants to view the order in which warriors will take action.
- Success End Condition: The turn order list is displayed.
- Failed End Condition: None (always succeeds).
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks "Turn Order" button.
- Main Success Scenario
- PRECONDITION: It is the turn of a warrior that the user controls.
- User clicks "Turn Order" button.
- Program displays the character turn order list.
- When the User is finished viewing this information, he/she clicks the "OK" button and the game returns to the state before "Turn Order" button was clicked.
- ID: 2.2.4
- Name: Attack
- Goal: The user wants to use his warrior to attack an opposing warrior.
- Success End Condition: Warrior attacks opposing warrior.
- Failed End Condition: The game state remains unchanged.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User left-clicks the "Attack" button.
- Main Success Scenario
- User clicks the "Attack" button.
- The game calculates available targets for attacking based on the Range of the current Warrior's weapon (Melee weapons have range 1), and whether there are intervening obstacles that are blocking line of sight.
- The available targets are highlighted for the User to see, with "percent chance to hit" and "average damage" values displayed by the targets.
- If their are no available targets, nothing is highlighted and the game will wait for the user to select another action by clicking the appropriate button (like "Wait", "move", or "End turn")
- User selects a target.
- The game makes sure the target is valid.
- If validation fails, the user is notified of the cause of failure and warrior remains in its initial hex.
- Upon validation, if necessary, the warrior is moved into attack range.
- Attack animations/sounds are displayed accordingly, as well as the victim response animations/sounds if applicable (whether the victim gets hit or not).
- If the attack hits, damage is dealt to the victim, and the damage amount is printed to the battle window for the user to see (i.e. "Maximus wallops Marcus for 48 points of damage"). Also, experience is awarded appropriately for that Warrior, and is also displayed in the battle window. (experience is not permanently added to the Warrior until the battle is resolved however).
- If the attack knocks the victim unconscious, the appropriate animation/sound is displayed and the game responds accordingly. The victim going unconscious is printed to the battle window (i.e. "Maximus wallops Marcus for 48 points of damage. Marcus goes down"). If this is was the last Warrior on a team to go unconscious, the battle is over and experience and credits are allocated to each team appropriately. The game returns to the Setup screen, after the necessary changes are saved.
- If the attack misses entirely, the appropriate animation/sound is displayed and the Warrior is awarded no experience. The fact that the attacker missed is also printed to the battle window (i.e. "Maximus misses Marcus").
- After the attack is resolved, the attack button is grayed out, the available targets are un-highlighted, and the attack statistics are no longer displayed. Also, the other Action buttons are now grayed out (Bandage, Wait, Special Ability, Use Equipment).
- ID: 2.2.5
- Name: Bandage
- Goal: To have one Warrior bandage another Warrior.
- Success End Condition: Current Warrior successfully bandages another friendly Warrior, resulting in that warrior's bleed-out timer being stopped.
- Failed End Condition: None. If you can not Bandage another Warrior, the option to Bandage will not be available. Every Bandage attempt should be guaranteed to work.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the "Bandage" button. In order for the Bandage button to not be greyed out, and therefor even be a click-able option, the User must have the current Warrior adjacent to an unconscious team mate, and also have taken no Action this turn (i.e. Done nothing with this Warrior except "Move").
- Main Success Scenario:
- PRECONDITION: It is the turn of a unit that the user controls.
- The user clicks the "Bandage" button.
- The game then highlights any adjacent unconscious and bleeding friendlies (in case there are more than one).
- The user then clicks on the friendly to bandage.
- The appropriate animation/sound is displayed, and text is printed to the battle window (i.e. "Maximus bandages Marcus").
- The unconscious Warrior is no longer bleeding, and the "bleed-out timer" displayed above his head disappears.
- The "Bandage" button and all other Warrior action buttons (aside from move) are then grayed out (attack, use equipment, special ability, wait, etc.).
- ID: 2.2.6
- Name: Dispaly Terrain Info
- Goal: The user wants to view information about a specific hex on the map.
- Success End Condition: The terrain information is displayed
- Failed End Condition: None (always succeeds).
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the "Terrain Info" button.
- Main Success Scenario
- PRECONDITION: It is the turn of a unit that the user controls.
- The user clicks the "Terrain Info" button.
- The user selects a hex.
- Program displays the pertinent characteristics of the specified hex, (e.g. height and information the player could find useful).
- The user clicks "OK" and is returned to the menu.
- ID: 2.2.7
- Name: Use Equipment
- Goal: Use or activate a piece of equipment held/worn by the current Warrior.
- Success End Condition: Warrior successfully uses a piece of equipment, triggering whatever effect that piece of equipment may have.
- Failed End Condition: None. Same deal as above actions.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the "Use Equipment" button. User must have at least one piece of equipment that can be used or activated in order for this button to not be grayed out.
- Main Success Scenario:
- User clicks the "Use Equipment" button.
- A list window is generated. This list is populated with equipment that can be used/activated.
- User may select "Cancel", in which case the window disappears and game goes back to state before User clicked "Use Equipment".
- The User may select from the available list items, clicking "OK" when he/she decides to use one of them.
- The list disappears and additional information is prompted from the User if necessary (like picking an available target, or specifying some required parameter for the equipment effect).
- Any appropriate animation/sound is displayed, and the effect is resolved with appropriate text being printed to the battle window (i.e. Maximus uses "Combat Stim").
- The "Use Equipment" button and all other Warrior action buttons (aside from move) are then grayed out (attack, bandage, special ability, wait, etc.).
- ID: 2.2.8
- Name: Special Ability
- Goal: Use a Warrior's Special Ability.
- Success End Condition: Warrior successfully uses a special ability, triggering whatever effects that special ability may invoke.
- Failed End Condition: None. Same deal as above actions.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the "Special Ability" button. User must have at least one special ability that can be used or activated in order for this button to not be grayed out.
- Main Success Scenario:
- User clicks the "Special Ability" button.
- A list window is generated. This list is populated with Special Abilities that the Warrior possesses.
- User may select "Cancel", in which case the window disappears and game goes back to state before User clicked "Special Ability".
- The User may select from the available list items, clicking "OK" when he/she decides to use one of them.
- The list disappears and additional information is prompted from the User if necessary (like picking an available target, or specifying some required parameter for the special ability effect).
- Any appropriate animation/sound is displayed, and the effect is resolved with appropriate text being printed to the battle window (i.e. Maximus targets Marcus with psychic ability "Cloud Mind". Marcus fails Willpower check and is CONFUSED.).
- The "Special Ability" button and all other Warrior action buttons (aside from move) are then grayed out (attack, bandage, use equipment, wait, etc.).
- ID: 2.2.9
- Name: Make Peace
- Goal: End the Battle prematurely, by having one User forfeit to another.
- Success End Condition: Battle ends, experience and credits are allocated appropriately to each Team, and game returns to the Setup screen.
- Failed End Condition: If the Team data can not be saved, program should display an error to the user indicating that Team data could not be updated and the game should exit to setup screen after writing appropriate errors to the errlog.txt file.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks "Make Peace" button when it is one of his Warrior's turns to Act.
- Main Success Scenario:
- The User clicks "Make Peace" button during one of his Warrior's turns.
- The game prompts the User, stating that the current Warrior's Team will forfeit to the other Teams.
- If the User clicks "Cancel", game will return to the state before the "Make Peace" button was clicked.
- If the User clicks "OK", then he 'makes peace'.
- If there are two or more other Teams still left in the battle, the User's Warriors are immediately removed from the battlefield, and any bleeding/unconscious Warriors are bandaged. The player is listed as having come in "last" in the Battle (unless other teams were wiped out or surrendered before him, in which case he places above them), and Experience and Credits will be allocated as appropriate to his team once the battle is over.
- If there is only one other Team left, the Battle ends, and Experience and Credits are awarded appropriately, the Team XML files are updated and assuming there are no errors, the game returns to the Setup screen.
- ID: 2.2.10
- Name: Defend
- Goal: Have a Warrior "skip" it's turn.
- Success End Condition: Warrior's turn is over, but his Action Pool is reset to 50 instead of 0.
- Failed End Condition: None. See explanation given for other Warrior actions.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the "Defend" button. The Wait button will only be click-able if the current Warrior has neither Moved nor taken any other Action.
- Main Success Scenario:
- User clicks the "Defend" button.
- Warrior's Action Pool is reset to 50.
- Warrior's turn is over, and Turn Manager proceeds.
3. Squad Management
3.1 Squad Line-up Editting
- ID: 3.1.1
- Name: New Warrior
- Goal: New Warrior unit is added to Squad roster.
- Success End Condition: New Warrior with baseline stats and a fixed Starting Unspent XP value is created and added to Squad list. Name defaults to Warrior#, portrait defaults to Name.
- Failed End Condition: New Warrior cannot be created because:
- Squad is already at maximum size. Popup error message informs player of this. Return to Squad Management screen without changes.
- Other error occurs. Print error to screen and errlog.txt. Return to Squad Management.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks New Warrior button
- Main Success Scenario:
- User clicks New Warrior.
- New Warrior is created as detailed in 3.1.3. User is now free to edit, delete, select, etc. this Warrior just as he can all the others.
- Warrior Combat Value is recalculated.
- Squad Combat Value is recalculated.
- ID: 3.1.2
- Name: Delete Warrior
- Goal: Warrior disappears from Squad roster.
- Success End Condition: Warrior ceases to be part of the Squad.
- Failed End Condition: Warrior cannot be deleted. Print error message to screen and to errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks Delete Warrior button.
- Main Success Scenario:
- All Equipment on Warrior is transferred into Squad Inventory.
- Warrior is removed from Roster.
- Squad Combat Value is recalculated.
- ID: 3.1.3
- Name: Select Warrior
- Goal: Warrior clicked by User becomes the Selected Warrior.
- Success End Condition: Warrior selected by User from Roster (displayed as scrollable row of portraits across the bottom of the Management Screen) is loaded and displayed in relevant sections of the Management Screen: Inventory, Stats, Information. Inventory list updates to reflect equipability of Items by this Warrior (based on stats and feats).
- Failed End Condition: Warrior could not be Selected; display error message to screen and errlog.txt. Program probably crashes; note this should never happen because errors in Warrior data should be caught when Management screen initially opens.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User left-clicks on a Warrior Portrait in Roster section.
- Main Success Scenario:
- User left-clicks a Warrior's portrait.
- Warrior's Name, Race, Battle Value, Encumbrance, etc. load into Information panel.
- Warrior's Primary and Derived Attributes load their Permanent and Temporary values into Attributes panel.
- Warrior's Equipment slots load their contents into Warrior Inventory panel.
- Program uses Warrior's current Temporary stats to determine which items the Warrior can and cannot equip from the Squad Inventory.
- Squad Inventory redisplays with un-equipable items listed in red and equipable items listed in green.
3.2 Warrior Characteristic Editting
- ID: 3.2.1
- Name: Edit Warrior Stats
- Goal: User spends XP to increase Warrior's Primary Attributes; conversely, user may regain XP by decreasing Warrior attributes, but *only to undo changes made since this Management session began!*
- Success End Condition: Warrior's stat is incremented and XP is decreased appropriately; or Warrior's stat is decremented and XP increased appropriately.
- Failed End Condition: Warning message displays if Warrior's stat cannot be increased or decreased for game rule reasons (already at starting value ? cannot decrease, or already at max value ? cannot increase, or insufficient XP ? cannot increase). Otherwise, error message prints to screen and errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the Plus (+) or Minus(-) button next to one of the Primary Attributes listed in the Management screen for the selected Warrior.
- Main Success Scenario:
- User left-clicks + or ? button.
- Available XP decreases or increases to accommodate change in stat.
- Spent XP increases or decreases commensurately.
- Stat increments or decrements.
- Warrior Combat Value is recalculated.
- Squad Combat Value is recalculated.
- ID: 3.2.2
- Name: Edit Warrior Feats
- Goal: User selects a new Feat for the Warrior, granting him new special abilities in exchange for unspent XP. Warrior's value and Team's value changes commensurately.
- Success End Condition: New Feat is added to Warrior's Feat List, adjusting Permanent Attributes, Available Equipment, and Combat Actions lists appropriately.
- Failed End Condition: New Feat could not be added; print error message to screen and errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks New Feat button.
- Main Success Scenario:
- User clicks New Feat button.
- Since current (possibly edited) Stats are taken into account in Feat availability calculation, all current Stats cannot be decremented after this, unless the User clicks Cancel on the main Squad Management window.
- Program displays new Feat List popup window: list of feats the Warrior qualifies for based on stats, with feats he can't afford due to XP grayed out.
- User selects a Feat from this list; Feat details including ability bonuses, equipment qualifications, and new action options get displayed in the Feat Detail panel of the Feat List popup.
- User selects OK to buy the current Feat or Cancel to cancel the Feat purchase.
- If feat purchased, transfer XP cost of Feat from Unspent to Spent XP pool.
- Program adjusts Warrior Combat Value and Squad Battle Value to account for new XP expenditure.
- Feat Selection window closes. Squad Management Window redisplays to include new statistics, feats, Battle Values, and Inventory equipability status.
- ID: 3.2.3
- Name: Edit Warrior Info
- Goal: User changes Warrior's Name or Race (Race is only modifiable in a baseline, unmodified Warrior, unless we want to be able to turn Human into Mutant after creation or some such).
- Success End Condition: Warrior's Name is updated to user input value, or Race is changed to user selection.
- Failed End Condition: Error output to screen and errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks the Warrior's Name text field or Race drop-down menu.
- Main Success Scenario:
- User clicks Name field or Race drop-down.
- User enters a new Name or selects a new Race from drop-down box.
- If new Race is selected, transfer zero or more XP from Spent to Unspent and decrease Team Credits by zero or more. (Perhaps we can BUY a Mutation race for Warriors, spending both credits and XP ? perhaps we have multiple Races, some of which get better starting stats but which cost XP to initialize).
- Warrior Race/Name data is updated to new User choice.
3.3 Inventory Management
- ID: 3.3.1
- Name: Select Item of Equipment
- Goal: User selects and displays information on a piece of Equipment in the Inventory/Store panel.
- Success End Condition: Selected Item information is displayed in Item Info panel.
- Failed End Condition: Error message prints to screen and errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks a single line item in the Inventory/Store panel.
- Main Success Scenario:
- User clicks a single line item in the Inventory/Store panel.
- Selected Item information is displayed in Item Info panel.
- ID: 3.3.2
- Name: Buy Equipment
- Goal: User purchases one item of selected new Equipment for the Team.
- Success End Condition: Squad Credits decreases by the Buy Cost of the Item; Squad Inventory Count for that Item increments.
- Failed End Condition: Program displays error message stating why Item cannot be bought (such as if cost is too hight); if this is not a game rule restriction but rather a program error, then also print this output to errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks Buy beneath the Inventory/Store panel.
- Main Success Scenario:
- User clicks Buy beneath the Inventory/Store panel.
- Squad Credits decreases by the Buy Cost of the selected Item; Squad Inventory Count for that Item increments.
- Redisplay Inventory/Store Panel, showing affordable items' Buy Cost in green and unaffordable items' Buy Cost in red.
- ID: 3.3.3
- Name: Sell Equipment
- Goal: User sells one item of selected Equipment from the Team's unassigned Inventory.
- Success End Condition: Squad Credits increases by the Sell Value of the Item; Squad Inventory Count for that Item decrements.
- Failed End Condition: Program displays error message stating why Item cannot be sold (such as if Inventory count for that item is already zero); if this is not a game rule restriction but rather a program error, then also print this output to errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks Sell beneath the Inventory/Store panel.
- Main Success Scenario:
- User clicks Sell beneath the Inventory/Store panel.
- Squad Credits increases by the Sell Cost of the selected Item; Squad Inventory Count for that Item decrements.
- Redisplay Inventory/Store Panel, showing affordable items' Buy Cost in green and unaffordable items' Buy Cost in red.
- ID: 3.3.4
- Name: Assign Equipment
- Goal: User moves Item from Squad Inventory to Warrior's Inventory.
- Success End Condition: Selected Item is swapped for currently Equipped item (if any) on selected Warrior.
- Failed End Condition: Selected Item cannot be equipped by Warrior ? error message displays. If program error rather than rules error, error also prints to errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User selects an Item and clicks the Equip button.
- Main Success Scenario:
- Any other Item in the to-be-equipped Item's slot on the Warrior is moved back into Squad Inventory.
- Warrior's stats are recalculated to reflect the absence of this Item.
- Squad Inventory count of that Item increments.
- The slot on the Warrior is filled with the selected Item.
- Warrior's stats are recalculated to reflect this Item.
- Squad Inventory of the selected Item decrements.
- Warrior's Combat Value is recalculated.
- Squad Battle Value is recalculated.
- ID: 3.3.5
- Name: Unassign Equipment
- Goal: User moves Item from Warrior's inventory to Squad Inventory.
- Success End Condition: Item is removed from Warrior's Inventory, stat changes take effect, and Item is added to Squad Inventory.
- Failed End Condition: Item remains where it was, with an error message displayed to User. If program error rather than rules error, error also prints to errlog.txt.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User selects Item in Warrior's inventory and clicks Unequip button.
- Main Success Scenario:
- Selected Item in the Warrior's Inventory is moved back into Squad Inventory.
- Warrior's stats are recalculated to reflect the absence of this Item.
- Warrior's Combat Value is recalculated.
- Squad Battle Value is recalculated.
- Squad Inventory count of that Item increments.
3.4 Exitting Squad Management
- ID: 3.4.1
- Name: Exit, Saving Changes
- Goal: User ends Squad Management, writing changes to the Squad datafile and returning to Main Setup Screen.
- Success End Condition: Changes to Squad are saved to Squad datafile. Squad Management window closes. Main Setup window opens, reloading all data as necessary.
- Failed End Condition: Error message prints to screen and errlog.txt. Changes are not saved, but Squad Management window still closes and Main Setup still opens. Note that spent XP reverts to unspent XP, spent credits to unspent, etc. because no file changes have occurred.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks OK.
- Main Success Scenario:
- User Clicks OK.
- Changes to Squad are saved to Squad datafile.
- Squad Management window closes.
- Main Setup window opens, reloading all data as necessary.
- ID: 3.4.2
- Name: Exit, Discarding Changes
- Goal: User ends Squad Management, without writing changes to the Squad datafile, and returns to Main Setup Screen.
- Success End Condition: Changes to Squad are discarded automatically. Squad Management window closes. Main Setup window opens, reloading all data as necessary.
- Failed End Condition: None. This operation should never fail.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks Cancel.
- Main Success Scenario:
- User clicks Cancel.
- Changes to Squad are discarded (by virtue of not being saved).
- Squad Management window closes.
- Main Setup window opens, reloading all data as necessary.
4. Termination
- ID: 4.1
- Name: Exit Program
- Goal: User exits program. Datafiles are saved at the end of combat or management, so no data saving needs to occur.
- Success End Condition: Program terminates with no errors.
- Failed End Condition: Program displays error message, prints to errlog.txt, and terminates with errors.
- Primary Actor: User
- Secondary Actor(s): None
- Trigger: User clicks Quit on Main Setup screen.
- Main Success Scenario:
- User clicks Quit on Main Setup screen.
- Program informs all connected remote players that it is no longer a Host.
- Program terminates with no errors.