Documente Academic
Documente Profesional
Documente Cultură
ODINS WRATH
Odin's Wrath Functional Specification Submitted to: Mr. Peck Dev Lead: Tanmay Bangalore Date: May 13, 2011
The World They map a hex map made up of tiles Each tile has the capacity to hold a building or a unit at any point in time. The map includes mountains and other elevated areas. Each group starts off at a certain area on the map (their base) The point is to occupy the map with units and buildings of your race. The creatures Three races Dwarves Elves Orcs Each race has units which must be built. Game Modes Scenarios A single scenario takes around 15 min to 40 min to complete. Play against either the AI or multiplayer The Game Screen The majority of the screen is the map which shows all of the action that takes place in the game. Around it are the various elements which provide useful information about the game. Some elements include Menu button Actions button Turn counter current turn/maximum number of turns) Gold keeps count of how much gold you have Number of total units Current time left Current hex position (x-coordinate, y-coordinate) where you are on the map End Turn button Full map, scaled Your Army All game types use soldiers called units
1|Page
Project
ODINS WRATH
Each unit has its share of strengths and weaknesses based on resistances, current Terrain, and Level which can be used to you advantage or disadvantage. Each unit is defined by Race (3 races in this game), Level, and Class. Dwarves Weaknesses low-resistance Strengths upgrade easily Elves Weaknesses costly upgrades Strengths mountains and high elevation Orcs Weaknesses mountains and high elevations Strengths on-ground fights high-resistance Life and Death groups and soldiers will die in battle so you will need to recruit and recall more when that happens. Recruit and Recall Will start with just the basic unit on the map Using gold you can recruit more units of your race If you have enough gold and buildings you can recruit more units from those buildings Gold It cost money to build units and to maintain them each battle you win gets you gold Each side is given some amount of gold to begin with as well as is given an a certain amount of gold for every turn(depending on their number of buildings) Major use for gold is to build your army Controls Table 2.1. Controls and hotkeys F1 The Battle for Wesnoth Help Arrow keys Scroll Left click Select unit, move unit Right click Main menu, cancel action Middle click Center on pointer location Escape Exit game, exit menu, cancel message Ctrl-r Recruit unit
2|Page
Project
ODINS WRATH
Repeat last recruit Recall unit Undo last move (only deterministic moves can be undone) Redo move End unit turn and cycle to next unit that has movement left Make currently selected unit hold position (end its movement) End this players turn Quit game Search (find label or unit by name) Continue interrupted unit move Zoom in Zoom out Reset zoom to default Rename unit Show how far currently selected unit can move in that many turns
Units Each race has specific buildings, all extend the superclass building, which are built and create units of their type. Each unit is characterized by their traits that make them a little different from other units of the same trait Each units abilities are defined by many things like their level and the terrain. They also have abilities that can either directly affect a unit or effect the way a unit interacts with other units Moving Clicking on a unit shows all the places it can move on its current turn Click the place where you want to move Fighting If you move next to an enemy unit, you may attack it. You can choose the enemy that you want to attack Every unit has one or more weapons it can attack with some weapons inlcude swords, bows, and other ranged weapons Different attacks do different amounts of damage, certain number of strikes may be made with each weapon. Attacks also vary with terrain Resistance Each unit is more or less vulnerable to the different attack types. Using the best attack type against enemy units will substantially increase your chances of killing them Strategies Dont waste units do not send units out to a sure death one a unit starts to loose half its health retreat
3|Page
Project
ODINS WRATH
Guard units that are hurt Stay far from enemy if you arent allowed to fight Maintain a defensive line Rotate your troops Use the terrain keep in mind the weaknesses and strengths of the races Try to strike first Tips to remember during the game Try to capture and build as many buildings as possible Get gold keep units in packs so enemy cannot attack from as many sides remember the strengths and weaknesses depending on terrain and who they are attacking use lower level units as cannon fodder, to slow down enemy(in other words block them) Winning Kill other units gain upper level units get gold build buildings
Classname: Comments:
Tile Multiple objects of the Tile class are held in a two-dimensional array, representing the game's map itself. Each Tile can hold a building or a unit at any point in time, but cannot hold both (in accordance with the Pauli Exclusion Principle). Public/Private private private Public/Private public public public public public public Type Building Unit Return Type void void boolean boolean Building Unit Default null null Argument Types Building Unit none none none none
Property building unit Method buildStruct addUnit isOccupiedByStruct isOccupiedByUnit getStruct getUnit
4|Page
Project
ODINS WRATH
Building Represents a building. Other buildings extend this. Public/Private private private private private Type String int int int Default null null null null
Arraylist<Unit> null String type, int team, int HP, int maxHP, String sprite, Arraylist<Unit> units, int productionDelay, String audioAddress
none none none int atkValue none none none int team none Arraylist<Unit> newSet Arraylist<Unit> appendSet Unit unit
getType getTeam getCurrentHP dropHP getMaxHP getSound getSprite setTeam getProducableUnits setProducableUnits addProducableUnits addSingleProducable
public public public public public public public public public public public public
String int int void int String String void Arraylist<Unit> void void void
Elf Structures
5|Page
Project
ODINS WRATH
ElfMyrkvior Worker production structure for elves, extends building Public/Private private private Public/Private public Type String String Return Type void Default Assets/Buildings/Elf/myrkvior.zip Assets/Sound/Elf/myrkviorBuild.wav Argument Types
int team
ElfWarshrine Produces Archers, High Mages, and Hunters; extends building Public/Private private private Public/Private public Type String String Return Type void Default Assets/Buildings/Elf/warshrine.zip Assets/Sounds/Elf/warshrineBuild.wav Argument Types
int team
ElfTempleOfAir Produces Griffin and Black Wyrm; extends building Public/Private private private Public/Private public Type String String Return Type void Default Assets/Buildings/Elf/templeofair.zip Assets/Sounds/Elf/templeofairBuild.wav Argument Types
int team
ElfDarkAltar Tech structure allows Black Wyrm to be built at the Temple of Air and contains upgrades for Griffin and Black Wyrm; extends building Public/Private private Type String Default Assets/Buildings/Elf/darkaltar.zip
6|Page
Project
ODINS WRATH
String int int boolean Return Type void void void void
Classname: Comments:
ElfHuntersHall Tech structure allows Hunters and High Mages to be built at the War Shrine and contains ground upgrades for elves, and allows Arrow Volley to be researched; extends building Public/Private private private private private Type String String int int boolean Return Type void void void void Default Assets/Buildings/Elf/huntershall.zip Assets/Sounds/Elf/huntershallBuild.wav 0 0 false Argument Types
arrowVolleyIsUpgraded private Method ElfHuntersHall upgradeGWeapons upgradeGArmor upgradeArrowVolley Public/Private public public public public
Classname:
ElfMageAltar
7|Page
Project
ODINS WRATH
Tech structure allows Mass Heal to be researched; extends building Public/Private private private private Public/Private public public Type String String boolean Return Type void void Default Assets/Buildings/Elf/magealtar.zip Assets/Sounds/Elf/magealtarBuild.wav false Argument Types
Orc Structures
Classname: Comments: Property model audioAddress Method OrcWarren OrcWarren Worker production structure for orcs, extends building Public/Private private private Public/Private public Type String String Return Type void Default Assets/Buildings/Orc/warren.zip Assests/Sound/Orc/warrenBuild.wav Argument Types
int team
OrcBarracks Produces Grunts, Trolls, and Kodo Beasts; extends building Public/Private private private Public/Private public Type String String Return Type void Default Assets/Buildings/Orc/barracks.zip Assests/Sound/Orc/barracksbuild.wav Argument Types
int team
Classname: Comments:
OrcBeastiary Tech structure allows Trolls to be built at the Barracks and contains upgrades for warrior units; extends building
8|Page
Project
ODINS WRATH
Type String String int int Return Type void void void
Classname: Comments: Property model audioAddress chargeIsUpgrdaded splashIsUpgraded Method OrcKodoCavern upgradeCharge upgradeSplash
OrcKodoCavern Tech structure allows Charge and Beast Splash Damage to be researched, and allows Kodo Beasts to be produced at the Barracks; extends building Public/Private private private private private Public/Private public public public Type String String boolean boolean Return Type void void void Default Assets/Buildings/Orc/kodocavern.zip Assets/Sounds/Orc/kodocavernBuild.wav false false Argument Types
OrcShamanTower Produces Druids and Elder Shamans (spellcaster units); extends building Public/Private private private Public/Private Type String String Return Type Default Assets/Buildings/Orc/shamantower.zip Assests/Sound/Orc/shamantowerbuild.wav Argument Types
9|Page
Project
ODINS WRATH
OrcBarracks
public
void
int team
Classname: Comments: Property model audioAddress weaponUpgradeLevel armorUpgradeLevel Method OrcAltarOfStorms upgradeSpellWeapons upgradeSpellArmor
OrcAltarOfStorms Tech structure allows Elder Shamans to be built at the Shaman Tower and contains upgrades for spellcaster units; extends building Public/Private private private private private Public/Private public public public Type String String int int Return Type void void void Default Assets/Buildings/Orc/altarofstorms.zip Assets/Sounds/Orc/altarofstormsBuild.wav 0 0 Argument Types
Dwarf Structures
Classname: Comments: Property model audioAddress Method DwarfFortress DwarfFortress Worker production structure for dwarves, extends building Public/Private private private Public/Private public Type String String Return Type void Default Assets/Buildings/Dwarf/fortress.zip Assets/Sound/Dwarf/fortressBuild.wav Argument Types
int team
DwarfBarracks Produces Footmen, Axe Masters, and Paladins, extends building Public/Private private private Type String String Default Assets/Buildings/Dwarf/barracks.zip Assets/Sound/Dwarf/barracksBuild.wav
10 | P a g e
Project
ODINS WRATH
Method DwarfBarracks
Public/Private public
Argument Types
int team
DwarfAltarOfKings Tech Structure, allows Axe Masters and Paladins to be constructed at the Barracks, extends building Public/Private private private private Public/Private public public Type String String boolean Return Type void void Default Assets/Buildings/Dwarf/altarofkings.zip Assets/Sound/Dwarf/altarofkingsBuild.wav false Argument Types
Classname: Comments: Property model audioAddress weaponUpgradeLevel armorUpgradeLevel Method DwarfIronworks upgradeGWeapons upgradeGArmor
DwarfIronworks Tech structure allows upgrades for ground units; extends building Public/Private private private private private Public/Private public public public Type String String int int Return Type void void void Default Assets/Buildings/Dwarf/ironworks.zip Assets/Sounds/Dwarf/ironworksBuild.wav 0 0 Argument Types
Classname: Comments:
11 | P a g e
Project
ODINS WRATH
int team
Classname: Comments: Property model audioAddress weaponUpgradeLevel armorUpgradeLevel Method DwarfIronworks upgradeAirWeapons upgradeAirArmor
DwarfAirworks Tech structure allows upgrades for air units, enables Chimeras to be built at the Aviary; extends building Public/Private private private private private Public/Private public public public Type String String int int Return Type void void void Default Assets/Buildings/Dwarf/airworks.zip Assets/Sounds/Dwarf/airworksBuild.wav 0 0 Argument Types
Unit Unit superclass; contains basic unit methods and properties of units. All units (Elf, Orc, and Dwarf) extend the Unit class. Public/Private private private private private private private Type int int int int int int Default 0 0 0 0 0 0
12 | P a g e
Project
ODINS WRATH
moved attacked type Method Unit modHP resetHP setHP modAttack modArmor modMoved modAttacked
private private private Public/Private public public public public public public public public
boolean boolean String Return Type void void void void void void void void
int team, int HP, int maxHP, int cost, int attack, int armor int modifier none int newHP int modifier int modifier boolean hasMoved boolean has Attacked
Classname: Comments: Property model audioAddress height moveAnimation attackAntimation Method GroundWarriorUnit
GroundWarriorUnit Ground unit addresses a particular 3D sprite, attack animation, etc. Public/Private private private private private private Public/Private public Type String String int String String Return Type void Default null null 0 null null Argument Types
int team, int HP, int maxHP, int cost, int attack, int armor, String sprite, String audioAddress, int height none Tile tile int damageAmt
13 | P a g e
Project
ODINS WRATH
Classname: Comments:
GroundSpellcasterUnit Ground spellcasting unit addresses a particular 3D sprite, attack animation, etc. In particular, it requires a set of animations for healing spells, attacking spells, and its melee animation. Public/Private private private private private private private private Public/Private public Type String String int String String String String Return Type void Default null null 0 null null Assets/Animations/heal.zip null Argument Types
Property model audioAddress height moveAnimation meleeAnimation healAnimation attackSpellAnimation Method GroundWarriorUnit
int team, int HP, int maxHP, int cost, int attack, int armor, String sprite, String audioAddress, int height, String meleeAnimation, String attackAnimation none Tile tile int damageAmt int xFocus, int yFocus int xFocus, int yFocus
AirUnit Air Unit flying unit, behaves very similarly to a ground unit but flies. Separated to its own class to make upgrading units easier. Public/Private Type Default
14 | P a g e
Project
ODINS WRATH
int team, int HP, int maxHP, int cost, int attack, int armor, String sprite, String audioAddress, int height none Tile tile int damageAmt
Classname: Comments:
GameMap Class of a map. Contains the map jpg, the height map, alpha channels, and other terrain features, as well as the size of the map. This makes adding new maps and changing maps substantially easier. Public/Private private private private private private private private Public/Private public Type Material String String String int int TerrainQuad Return Type void Default null null null null 0 0 null Argument Types
Property mat_terrain alphaMap mapImage heightMap xSize ySize terrain Method GameMap
String terrainMatAddress, String alphaMapAddress, String mapImageAddress, String heightMapAddress, int xSize, int ySize none
15 | P a g e
getRows
public
int
Project
ODINS WRATH
getCols getTotalTiles
public public
int int
none none
Classname: Comments: Property gold oil name team race Method Player chooseStartingPoint getName getGold getOil modResources
Player Player contains the number of resources a player has, associates the player with units, and changes resource amounts Public/Private private private private private private Public/Private public public public public public public Type int int String int String Return Type void void String int int void Default 100 0 null 0 null Argument Types
int team, String name, String race none none none none int modifier
Game Runs the actual game manages all aspects of the games performance based on JMonkeyEngine Public/Private private private private private Public/Private Type Default
Arraylist<Player> null ArtificialIntel boolean Map Return Type null false null Argument Types
16 | P a g e
Project
ODINS WRATH
Arraylist<Players>, ArtificialIntel smart, Map plusMap none none none none none
Classname: Comments: Property player curTile curXPos curYPos hudVisible Method HUD
HUD Contains HUD elements, such as resource counter, menu buttons, action buttons, turn counters, unit counters, current position, an end turn button, and a minimap. Public/Private private private private private private Public/Private public public public public Type Player Tile int int boolean Return Type void void boolean void Default null
null
0 0 true Argument Types
setVisible
getVisible display
DialogBox Displays tips, problems, and introduces the game upon match initialization. Public/Private private private private Type boolean String long Default true
Assets/Common/dialogInitSprite.zip
null
17 | P a g e
Project
ODINS WRATH
none String newSprite, long time none boolean visible none long time
draw
getVisible setVisible getDuration setDuration
Classname: Comments: Property strategy campaign skirmishvsAI multiplayer startSkirmish selectedMap Method Menu
Menu Splash screen upon loading the game. Has options for Player vs AI, Multiplayer, Campaign, etc. Public/Private private private private private private private Public/Private public public Type Default
BufferStrategy null boolean boolean boolean boolean Map Return Type void void
null
null null null null Argument Types
none none
run
MouseHandler Handles mouse operations, extends MouseAdapter Public/Private Public/Private public Type Return Type void Default Argument Types
MouseEvent e
18 | P a g e
Project
ODINS WRATH
KeyInputHandler Handles keyboard operations, extends KeyAdapter Public/Private Public/Private public Type Return Type void Default Argument Types
KeyEvent e
19 | P a g e