| |
Purpose of the Project
Create a short RPG which tells a story through a series of conversations with non-playable characters in the game. Utilize multiple segments to allow the entire game to written into a single executable file. Develop a system for storing information about events and their corresponding locations.
Basic Premise of the Game
You were running late for a very important engagement. On your way home, you noticed what looked like a good shortcut, and decided to take the chance. When next you are aware of your surroundings, you are no longer in this dimension. You have become trapped in another dimension with no idea of how you got there and no idea of how to return.
Dimensional Dilemma tells your story as you struggle to find a way home, overcoming great obstacles during your journey.
Segments in Addition to those Normally Used
- Maps: contains map data
- Events: contains conversation and monster data
Variables
- CurrentLocation: stores the current location of the hero on the map as the offset in Maps
- CurrentMap: stores the offset of the map in Maps being displayed on the screen
- CurrentMonster: stores the offset of the current monster in Events being fought
- KeyValue: stores the scan code of a key
- OrigKeyHandler: stores segment and offset of original keyboard interrupt handler
- PrevKeyHander: stores offset or previous keyboard interrupt handler
- HeroHP: hero's current HP
- HeroMaxHP: hero's maximum HP
- HeroMP: hero's current MP
- HeroMaxMP: hero's maximum MP
- HeroSpeed: hero's speed
- HeroDefense: hero's current defense
- HeroNormDefense: hero's normal defense
- MonsterHP: monster's current HP
- MonsterSpeed: monster's speed
- MonsterDefense: monster's current defense
- MonsterNormDefense: monster's normal defense
Procedures
InitInstallKey
- Input: none
- Output: none
- Functionality: installs first keyboard interrupt handler and saves segment and offset of original one to OrigKeyHandler
- Person Responsible: Amy
InstallCombatKey
- Input: none
- Output: none
- Functionality: installs combat keyboard interrupt handler and saves offset of previous interrupt to PrevKeyHandler
- Person Responsible: Amy
CombatKeyHandler
- Input: none
- Output: none
- Functionality: handles keyboard interrupts during combat, storing the valud of a valid keypress to KeyValue - calls Quit when Esc pressed
- Person Responsible: Amy
InstallDialogKey
- Input: none
- Output: none
- Functionality: installs dialog keyboard interrupt hander and saves offset of previous interrupt to PrevKeyHandler
- Person Responsible: Amy
DialogKeyHandler
- Input: none
- Output: none
- Functionality: handles keyboard interrupts during dialog sequences, saving the value of a valid keypress to KeyValue - calls Quit when Esc pressed
- Person Responsible: Amy
InstallMapKey
- Input: none
- Output: none
- Functionality: installs map movement keyboard interrupt handler and saves offset of previous interrupt to PrevKeyHandler
- Person Responsible: Amy
MapKeyHandler
- Input: none
- Output: none
- Functionality: handles keyboard interrupts during map movement sections, storing the value of a valid keypress to KeyValue - calls Quit when Esc pressed
- Person Responsible: Amy
RestorePrevKey
- Input: none
- Output: none
- Functionality: installs keyboard interrupt handler at the offset stored in PrevKeyHandler
- Person Responsible: Amy
UninstallKey
- Input: none
- Output: none
- Functionality: installs original keyboard interrupt handler stored in OrigKeyHandler
- Person Responsible: Amy
EnterDialog
- Input: none
- Output: none
- Functionality: calls InstallDialogKey, ClearDialog, and otherwise prepares for dialog
- Person Responsible: Sam
ClearDialog
- Input: none
- Output: none
- Functionality: clears any text in dialog box
- Person Responsible: Sam
DialogLine
- Input:
- BX: offset of string terminated with '$' that should be 28 printed characters or less for proper operation
- Output: none
- Functionality: prints dialog line at BX in the dialog section of the screen
- Person Responsible: Sam
Conversations - many procedures
- Input: none
- Output: none
- Functionality: set up and carry out conversation between hero and a character
- Person Responsible: Amy
EnterCombat
- Input: none
- Output: none
- Functionality: calls InstallCombatKey, DisplayCombatMenu, carries out combat with CurrentMonster
- Person Responsible: Adam
MonsterAI
- Input: none
- Output: none
- Functionality: causes CurrentMonster to attack hero
- Person Responsible: Adam
CastHeal
- Input: none
- Output: none
- Functionality: causes hero to lose 1 MP and gain 25 HP
- Person Responsible: Adam
CastFire
- Input: none
- Output: none
- Functionality: causes hero to lose 1 MP CurrentMonster to lose 10-MonsterDefense HP if bit 1 of [CurrentMonster+1] is 0
- HP loss can be modified and preferably randomized.
- Person Responsible: Adam
SwingSword
- Input: none
- Output: none
- Functionality: causes CurrentMonster to lost 10-MonsterDefense HP if bit 0 of [CurrentMonster+1] is 1
- HP loss can be modified and preferably randomized.
- Person Responsible: Adam
DisplayCombatMenu
- Input: none
- Output: none
- Functionality: calls ClearDialog, calls DialogLine to display combat menu
- Person Responsible: Adam
HeroDies
- Input: none
- Output: none
- Functionality: ends game when hero dies
- Person Responsible: Adam
Fights - many procedures
- Input: none
- Output: none
- Functionality: set up combat between hero and a monster
- Person Responsible: Adam
DrawMap
- Input:
- BX: offset of map to be drawn
- Output: none
- Functionality: draws the map located at BX, saves BX to CurrentMap, calls InstallMapKey
- Person Responsible: Sam
MoveDown
- Input: none
- Output: none
- Functionality: calls CheckEvent, moves down on CurrentMap, saves location to CurrentLocation
- Person Responsible: Sam
MoveUp
- Input: none
- Output: none
- Functionality: calls CheckEvent, moves up on CurrentMap, saves location to CurrentLocation
- Person Responsible: Sam
MoveRight
- Input: none
- Output: none
- Functionality: calls CheckEvent, moves right on CurrentMap, saves location to CurrentLocation
- Person Responsible: Sam
MoveLeft
- Input: none
- Output: none
- Functionality: calls CheckEvent, moves left on CurrentMap, saves location to CurrentLocation
- Person Responsible: Sam
Main Process
- Input: none
- Output: none
- Functionality: basic framework of the program that calls other functions
- Person Responsible: Adam
Quit
- Input: none
- Output: none
- Functionality: ends the game
- Person Responsible: Adam
| |