software engineering tower defense

Post on 30-Dec-2015

28 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Software Engineering Tower Defense. Emily Doll, Charles Kruzan , Brandon Kick, Benjamin Gilles, Derek Hall Computer Science. Programming:. Planning:. Design Diagrams:. - PowerPoint PPT Presentation

TRANSCRIPT

Software Engineering Tower Defense

a. Towers

1. The tower sizes are as follows:

Tower type Size Cost Basic 1x1 250 vermeerium

Freeze 1x1 300 vermeerium Fire 1x1 300 vermeerium

Mortar 1x1 400 vermeerium Pulse 1x1 500 vermeerium

1. Descriptions: There will now be names associated with all of the towers in the interface:

a) Basic tower:

(1) GAU-81A “Avenger”

(2) 30mm Hydraulically-Driven Seven-Barreled Gatling-Type Rotary Cannon (basic gun tower)

b) Fire tower

(1) HPNC-61 “Dragon’s Breath”

(2) High Pressure Napalm Cannon (once placed, it will fire a steady stream of fire in one direction the player may choose, radius will be a cone shape in the direction the player placed the tower)

c) Freeze Tower

(1) LNCC “Ice Box”

(2) Liquid Nitrogen Cryogenic Cannon (hits everything in its radius. Fires every second regardless of whether there is an enemy within its radius)

d) Mortar Tower

(1) LRHODS-27 “Hot Rod”

(2) Long Range Heavy Ordinance Delivery System (very high power, slow firing, single shot tower)

e) Pulse Tower

(1) EMPCS “Sparky”

(1) Electromagnetic Pulse Charging Station (hits everything in the radius. Fires every five seconds regardless of whether there is an enemy within its radius)

2. These are the statistics for each tower, including type, damage, range, fire rate, cost, and the effect to enemies.

Tower Type

Damage Rate of

Fire Effect on Enemies

Range (Radius)

Cost

Basic 10 2

shots/sec N/A 3x3

250 Vermeerium

Freeze 5 1

shots/sec Slows 25% 3x3

300 Vermeerium

Fire 10 2

shots/sec

2 Damage/sec every 5 sec

3x1 300

Vermeerium

Mortar 40 1 shot/3

sec n/a 6x6

400 Vermeerium

Pulse 100 1 shot/ 5

sec n/a

3x3

500 Vermeerium

3. Upgrades Upgrade # Change Cost 1 (1st Tree) 25% Increase in

Damage from base 25% Tower

Purchase Price 2 (1st Tree) 50% Increase in

Damage from base 50% Tower

Purchase Price 3 (1st Tree) 100% Increase in

Damage from base 100% Tower

Purchase Price 1 (2nd Tree) +1 Unit of Radius* 25% Tower

Purchase Price 2 (2nd Tree) +1 Unit of Radius* 50% Tower

Purchase Price 3 (2nd Tree) +1 Unit of Radius* 100% Tower

Purchase

*This means +1 Unit of Radius from the center of the tower

4. Tower info panel – when a tower is either hovered over in the store or clicked after it is placed it will display the tower info panel which includes: a) Tower name b) Tower damage c) Tower rate of fire d) Tower current sell price e) Tower upgrade radius button (button will include

price of upgrade and current upgrade rank f) Tower upgrade damage button(button will include

price of upgrade and current upgrade rank) g) Tower sell button h) Tower avatar

Requirements:

Item Tested Pass Fail Comments A. Basic Tower

1) Basic Tower attacks all enemies

*tower might not be able to hit all enemies. This is intended.

2) Basic Tower does correct damage (10 damage)

3) Basic Tower radius is 3x3

4) Basic Towers have correct fire rate (2 shots/sec)

5) Basic Towers stop firing when enemies leave radius

6) Basic Tower graphic is correct 7) Basic Tower name, damage, radius, fire rate, upgrade button, sell button, and graphic are displayed in info pane when the tower is clicked 8) Basic Tower shows radius when clicked 9) Basic Towers are correct size (1x1) 10) Basic Towers cost 250 Vermeerium 11) Only attacks 1 enemy at a time

B. Freeze Tower

B. Freeze Tower 1) Freeze Tower attacks all enemies

*tower might not be able to hit all enemies. This is intended.

2) Freeze Tower does correct damage to all enemies (5)

*Enemy resistance could reduce the amount of damage enemy receives

3) Freeze Tower radius is 3x3

4) Freeze Towers have correct fire rate (1 shots/sec)

5) Freeze Towers attack continuously

*Tower will fire even when no applicable enemies are in range

6) Freeze Tower graphic is correct

7) Freeze Tower name, damage, radius, fire rate, upgrade button, sell button and graphic are displayed in info pane when the tower is clicked

8) Freeze Tower shows radius when clicked

9) Freeze Towers are correct size (1x1)

10) Freeze Towers cost 300 Vermeerium

11) Freeze Towers attack and slow all enemies within its radius (5 damage, 25% slow effect)

C. Flame Tower 1) Fire Tower attacks all enemies

*tower might not be able to hit all enemies. This is intended.

2) Fire Tower does correct damage to all enemies (10)

*Enemy resistance could reduce the amount of damage enemy receives

3) Fire Tower radius is 3x1

4) Fire Towers have correct fire rate (2 shots/sec)

5) Fire Towers stop firing when enemies leave radius

6) Fire Tower graphic is

Test Cases:

The objective of this project is to employ software engineering techniques from the classroom to build a quality tower defense game in a real life setting. The project follows the software life cycle, specifically the spiral paradigm, to gather requirements, design a viable solution, code into usable software, and mitigate errors through standardized test practices. Through this process, a game was created that has been built to customer requirements and software engineering standards.

Programming:Monster Lifecycle Activity Diagram

Begin roundBegin round

Monster has not arrived at the base Monster has arrived at the base

Monster travels set path

Monster travels set path

Monster travels to base

Monster travels to base

Tower/Spell attacks/affects

Monster

Tower/Spell attacks/affects

Monster

Player’s lives are reduced

Player’s lives are reduced

Monster’s health is reduced OR is

affected by spell

Monster’s health is reduced OR is

affected by spell

Monster is removed from the

map

Monster is removed from the

map

Monster is not in a tower’s or spell’s

radiusMonster is in a tower’s or spell’s

radius

Monster health is not zeroMonster health is zero

Player earns VermeeriumPlayer earns Vermeerium

Enter MonsterEnter Monster

*Same process is used for bosses

+Cost() : int+Damage() : int+Radius() : float+Target : Enemy()+TowerType() : string+TowerID() : int+UpgradeNumber() : int+Texture : Texture2D()+BulletTexture : Texture2D()+TowerShot : SoundEffect()+Tower:Constructor()+HasTarget() : bool+FaceTarget()+IsInRange(Vector2)() : bool+GetClosestEnemy(List<enemy>)()+Update(GameTime)()+Draw(SpriteBatch)()

#towerType : string#cost : int#radius : float#towerID : int#damageUpgradeNumber : int#radiusUpgradeNumber : int#target : Enemy#bulletTimer : float#bulletTexture : Texture2D#bulletList : List<bullet>#towershot : SoundEffect

Tower.cs

Detailed DescriptionsVariables:

towerType – the tower’s typecost – the price of building this towerdamage – the damage this tower does radius – circular radius in which the tower can damage enemies towerID – A unique ID for every tower that’s placed damageUpgradeNumber – the level that the damage has been upgraded toradiusUpgradeNumber – the level that the radius has been upgraded totarget – the enemy that the tower is targetingbulletTimer – how long ago the bullet was fired buleltTexture – this tower’s bullet’s texturebulletList – Bullets that this tower hastowerShot – Sound effect of the towerr shooting

Getters and Setters: Cost – getter for costDamage – Getter/Setter for damageRadius – Getter/Setter for radius Target – Getter for targetTowerType – getter for towerType TowerID – getter for towerIDDamageUpgradeNumber – getter/setter for damageUpgradeNumberRadiusUpgradeNumber – getter/setter for radiusUpgradeNumberTexture – getter for textureBulletTexture – getter for bulletTextureTowerShot – getter for towerShot

Constructors: Tower – (texture, bulletTexture, position, towerType, towerID, towerShot)

Methods: HasTarget – checks if the tower has a targetFaceTarget – rotate the tower to face the Enemy IsInRange – Checks an enemy position, returns true if it is in rangeGetClosestEnemy – Gets the enemy whose position is closest to the towerUpdate – Updates the tower Draw – draws the tower and bullets to the screen

Parent of all Towers

Planning: Design Diagrams:

ScreenShots:

Emily Doll, Charles Kruzan, Brandon Kick, Benjamin Gilles, Derek HallComputer Science

top related