Sunteți pe pagina 1din 19

Project

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

Ctrl-alt-r Alt-r u r Space Shift-Space Ctrl-Space Ctrl-q / t + 0 Ctrl-n 1-7

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

Classname: Comments: Property type team HP maxHP

Building Represents a building. Other buildings extend this. Public/Private private private private private Type String int int int Default null null null null

sprite productionTimer audio producableUnits


Method Building

private private private private


Public/Private public

String Timer AudioNode


Return Type void

null null null


Argument Types

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

Classname: Comments: Property model audioAddress Method ElfMyrkvior

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

Classname: Comments: Property model audioAddress Method ElfWarshrine

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

Classname: Comments: Property model audioAddress Method ElfTempleOfAir

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

Classname: Comments: Property model

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

audioAddress weaponUpgradeLevel armorUpgradeLevel darkShearIsUpgraded Method ElfDarkAltar upgradeAirWeapons upgradeAirArmor upgradeDarkShear

private private private private Public/Private public public public public

String int int boolean Return Type void void void void

Assets/Sounds/Elf/darkaltarBuild.wav 0 0 false Argument Types

int team none none none

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

Property model audioAddress weaponUpgradeLevel armorUpgradeLevel

arrowVolleyIsUpgraded private Method ElfHuntersHall upgradeGWeapons upgradeGArmor upgradeArrowVolley Public/Private public public public public

int team none none none

Classname:

ElfMageAltar

7|Page

Project

ODINS WRATH

Comments: Property model audioAddress MassHealIsUpgraded Method ElfMageAltar upgradeMassHeal

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

int team none

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

Classname: Comments: Property model audioAddress Method OrcBarracks

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

Property model audioAddress weaponUpgradeLevel armorUpgradeLevel Method OrcBeastiary upgradeGWeapons upgradeGArmor

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/beastiary.zip Assets/Sounds/Orc/beastiaryBuild.wav 0 0 Argument Types

int team none none

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

int team none none

Classname: Comments: Property model audioAddress Method

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

int team none none

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

Classname: Comments: Property model audioAddress

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

Return Type void

Argument Types

int team

Classname: Comments: Property model audioAddress healIsUpgraded Method DwarfBarracks upgradeHeal

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

int team none

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

int team none none

Classname: Comments:

DwarfAviary Produces Jormungandr and Chimera, extends building

11 | P a g e

Project

ODINS WRATH

Property model audioAddress Method DwarfBarracks

Public/Private private private Public/Private public

Type String String Return Type void

Default Assets/Buildings/Dwarf/aviary.zip Assets/Sound/Dwarf/aviaryBuild.wav Argument Types

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

int team none none

Classname: Comments: Property team HP maxHP cost attack armor

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

false false null Argument Types

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

draw attack takeDamage

public public public

void void void

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

draw meleeAttack takeDamage heal attack

public public public public public

void void void void void

Classname: Comments: Property

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

model audioAddress height moveAnimation attackAntimation Method GroundWarriorUnit

private private private private private Public/Private public

String String int String String Return Type void

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

draw attack takeDamage

public public public

void void void

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

Classname: Comments: Property players ai gameRunning currentMap Method

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

Game loadMap simpleInitApp simpleUpdate setStartLocs startAI

public public public public public public

void void void void void void

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

Player player1 boolean isVisible none none

setVisible
getVisible display

Classname: Comments: Property isVisible sprite duration

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

lastLoopTime Method DialogBox

private Public/Private public public public public public public

long Return Type void void boolean void long void

null Argument Types

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

Classname: Comments: Property Method mouseClicked

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

Classname: Comments: Property Method keyPressed

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

S-ar putea să vă placă și