																z:wq

Test Plan

Test Group 0: General Tests

Info:
	General tests not directly related to any one feature.

Tests:

1	Server variables, changing
	Ensure that server variables changed during play are checked for
	errors in the same way they would be if the server were restarted.


Test Group 1: Configurable Models

Info:

	Marines and Predator model can be set via following cvars:

		- set_predator_model
		- set_predator_skin
		- set_marine_model
		- set_marine_skin

	Marine model/skin can be changed during play. The values
	specified in the server variables are simply defaults.

	The Predator may not change model or skin.

Tests:

1	Null variables
	Test that the mod works properly if the server variables are 
	left blank. This should result in the marines and predator 
	models being set to their current values (male/grunt and
	female/jungle).

2	Null variables, marines change
	While the server variables are null, ensure that the marines
	can in fact change models & skin.

3	Null variables, predator change.
	While the server variables are null, ensure that the predator
	CANNOT change model or skin.

4	Null variables, conflict
	While the server variables are null, ensure that marines cannot
	set their model/skin to be the same as the predator.

5	Server variables
	Set the server variables. Ensure that the appropriate models/skins
	are set.

6 	Server variables, marines change
	While the server variables are set, ensure that the marines can
	change model and skin.

7	Server variables, predator change 
	While the server variables are set, ensure that the predator
	CANNOT change model/skin.

8	Server variables, conflict
	While the server variables are set, ensure that the marines 
	cannot set their model/skin to be the same as the predator.
	Skin should return to variable default value.

9	Server variables, duplicate
	Set the server variables to the same model/skin. Ensure
	that the mod works and that the marines and predator have
	different skins. 
 	  

Test Group 2: Flares

Info: 	Flares can be set to do damage. 
	Damage should only be inflicted when players are hit by 
	thrown flares. Flares on the ground do no damage.
	
	Flare damage server variables are:

		flare_damage_radius
		flare_damage


	Flares can be set so they can be "killed". This is controlled
	by the server variable: flare_health.


	The number of flares that a marine can carry is set by the server
	variable max_flares.

	Flare light is controlled by 3 variables:

		flare_bright_time
		flare_dim_time
		flare_die_time     
	
Tests

1	Max flares, legal
	Set the max_flares value to some legal (>0) value. Ensure that
	the marine actually recieves flares.

2	Max flares, none.
	Set the max_flares value to 0. Ensure the marines get no flares.

3	Max flares, illegal
	Set the max_flares to values < 0, and > 1000. Ensure that the
	number of flares is set to 0.

4	Flares, Out of ammo.
	Ensure that the proper messages, etc are displayed when player
	runs out of flares.

5	Flares, light values
	Change the flare light values. Ensure that the flare light
	changes accordingly.

6	Flares, illegal light values
	Change the flare light values < 0, and greater than 15. Flare 
	light times should be reset to default values of 5, 5, 10
	respectively.    	 

7 	Flares, health
	Set the flare health. Ensure that the flares can be killed.

8	Flares, illegal health
	Set the flare health < 0, or > 100. Flare health should be
	reset to default value of 10.

9 	Flares, damage
	Set the flare damage radius and flare damage. Ensure that
	damage is done to players when thrown, but not when touched.

10 	Flares, illegal damage
	Set the flare damage radius and damage < 0 or > 100.
	Reset flare damage radius to default (50?) and damage to (10?).

11	Flares, killing flares
	Set flare health and damage. Ensure that flares can kill flares?

12	Flares, command
	Ensure that the "flares" command selects flares.

13	Marines, dead drop
	Kill a marine that has flares selected as primary weapon.
	See that the flares are not dropped when killed.

Test Group 3: Teleport

Info: 	Predator may be allowed escape teleporter. Teleporter is enabled
	via server variable max_teleport.

	Teleporter anchor points set via the "anchor" command.
	Predators can teleport to anchor spots with the "recall" command.

	A "Panic" mode is provide which allows the predator to "respawn"
	at different spawn pads.
  
1	Server variables, Null
	Remove the server variables from the config file and ensure that
	the teleport mechanism works properly. 
	Default values are 0 for teleport shots.

2	Teleport shots, valid
	Set the teleport shots to an invalid value (-1). 
	Ensure that the server functions properly.

3 	Teleport shots, 0
	Ensure proper behaviour when teleport is disabled.
	This includes:
		Panic mode disabled. 
		Panic timer does not appear on hud.
		Anchor and recall commands do not work.

4	Teleport health, valid
	Set the teleport health value to invalid value (-1).
	Ensure that the server functions properly.

5	Panic timer, valid
	Set the panic timer value to an invalid value (-1)
	Ensure that the server functions properly.

6	Teleport shots, function
	Set the teleport shots to some valid value.
	Ensure that the following occurs:
		Hud displays proper value
		Panic timer is enabled if time > 0.
		Anchor and recall commands are active.

7	Panic timer, function
	Set the panic timer to some valid value.
	Ensure that the following occurs:
		Hud displays proper value during panic mode.
		Panic timer is removed from hud when expired.
		Using anchor command ends panic mode.

8	Anchor command, normal set.
	Use the anchor command when NOT in panic mode.
	The following should occur:
		Message indicating anchor point set should appear in
		middle of hud.


9	Anchor command, panic set.
	Use the anchor command during panic mode.
	The following should occur:
		Panic mode should end.
		Anchor message should be displayed.

10	Anchor command, teleport disabled.
	Use the anchor command when teleports are disabled.
	The command should be no op.

11	Anchor command, No shots.
	Use the anchor command when no more teleport shots are left.
	The command should display a message warning that no more teleport
	shots are left.

12	Anchor command, multiple
	Use the anchor command multiple times in different locations.
	Make sure the last location is actually stored. 

13	Recall command, normal
	Use the recall command when NOT in panic mode and after setting
	anchor
	The following should occur:
		Predator should be returned to anchor point.
		Teleport effect should be observed.
		Teleport sound should be heard
		Teleport shot count should be decremented in the hud. 

14	Recall command, panic
	When panic mod is enabled, ensure that the recall command takes
	the player to a random respawn point. 
	Ensure that the player is able to continue to use the panic
	mode while time remains.
	Ensure that panic mod is ended when an anchor point is set. 

15	Recall command, disabled
	Ensure that the recall command is inoperative when predator teleport
	is disabled.

16	Recall command, no shots
	Ensure that the appropriate warning message is posted when no more
	teleport shots are available.

17	Recall command, multiple
	When more than one teleport shots are available, ensure that repeated
	recalls actually teleport the predator properly.

18	Recall command, telefrag
	Set up an anchor location, then have another player stand in that
	spot. Recall to that anchor point. Ensure that a telefrag occurs
	and that proper scoring, death, respawn, etc occur.  

19	Recall command, position
	When using recall in the panic mode, ensure that the predator is
	teleported in the proper "orientation". This orientation will be
	the same as respawning to that pad as a marine. Usually this 
	will be in an orientation where the player will be looking "out"
	into the level.

20	Panic mode, suicide
	Ensure that the panic mode is disabled after a predator suicide.

21	Anchor command, marines
	Ensure that the anchor command is properly disabled for the marines.

22	Recall command, marines
	Ensure that the anchor command is properly disabled for the marines.

23	Recall command, dead
	Ensure that the recall command will not work if the predator
	is "dead".

24	Recall command, health
	Enable the predator teleport health server variable.
	Damage the predator until it's health is under the threshhold.
	Ensure that the predator is unable to teleport. 

25	Recall command, no anchor
	Allow the panic mode to expire. 
	Attempt to use the recall command.
	Ensure that the appropriate warning is issued. 


Test Group 4: IR Goggles

Info:

	The goggles replaces the quad and invulnerability power ups.
	Uses cvars:
		IR_enabled
		IR_marine_fov
		IR_effect_time 

1	Goggles: Model
	Visually inspect the model in a level.
	Ensure that the quad and invulnerability power ups are replaced 
	by the new model.
	Ensure the new model "appears" (height, spinning) properly.	

2	Server variables, null
	Clear all server variables and ensure the IR functions still work 
	properly.

3	IR enabled
	Enable the IR variables. Ensure that all quad and invuln power ups
	are replaced properly. 
	Ensure that goggles can be picked up properly.
	Ensure that goggles function and that other players are properly
	lit.
	Ensure that hud is updated properly.
	Ensure that goggle effect ends properly and at the proper time.

4	IR disabled
	Disable IR. 
	Ensure that quad and invuln are re-established.
	Ensure that these power ups work properly.

5	Marine FOV, invalid
	Set the marine FOV to and invalid number (<0, >?).
	Ensure that the FOV is set to the default value.

6	Marine FOV, valid
	Set the marine FOV to a valid number.
	Ensure that the player FOV is set properly when IR in effect.

7	Marine FOV, reset
	Ensure that the marine FOV is reset properly when the IR effect ends.

8	IR effect time, invalid
	Set the IR effect time to an invalid number (<0, >?).
	Ensure the that effect time is set to the default value.

9	IR effect time, valid
	Set the IR effect time to a valid number.
	Ensure the hud is set properly. 
	Ensure the effect ends properly when time expires.

10	IR dead drop
	Ensure that the goggles are dropped when user is killed, or
	when user kills the predator.
	Ensure that dropped goggles can be picked up.
	Ensure that dropped goggles operate properly.


Test Group 5: Initial marine weapon.

Info: 
	The start weapon for marines can be set in the server config file.
	Server variable:

		init_marine_weapon
	
Tests:

1	Marine weapon, null
	Remove the server variables setting the marine initial weapon.
	Ensure that the marine starts with the default weapon.

2	Marine weapon, invalid
	Only valid Q2 weapons can be used. 
	The BFG cannot be specified.

3	Marine weapon, valid
	Set the variable to a legal weapon.
	Ensure that the marine actually starts with this weapon and
	one ammo pack for that weapon.

4	Marine weapon, standard
	The marine will always be equiped with a blaster.
	The marine may also be equiped with flares.
	Ensure that the marine has these standard weapons available. 


Test Group 6: NH Scoreboard

Info:	
	NH scoreboard is an updated scoreboard that displays more
	information than the default scoreboard.

	Cvar:
		use_NH_scoreboard 

1	Scoreboard, null variables
	Clear the scoreboard cvar. 
	Ensure that the game uses the default scoreboard.

2	Scoreboard, Data
	Confirm that the NH scoreboard displays the correct data.

3	Scoreboard, Status
	Confirm that the NH scoreboard displays all player status values
	properly.

4	Scoreboard, Players
	The scoreboard is hard coded to handle 12 players.
	Ensure that the scoreboard works properly with this many players.

5	Scoreboard, Size
	The scoreboard length is limited to 1024 bytes. Ensure that the
	scoreboard is displayed properly when the contents reach this
	limit. Ensure that no entries are prematurely truncated.

6	Scoreboard, End of level
	Ensure that the scoreboard contents are valid at level end.


Test Group 7: Predator Initialization

Info: 	The predator is initialized differently than the standard marine
	class. It has default weapons, ammo, etc and is limited to
	the initial weapons.

	Predator Initialization cvars:

		predator_max_rockets
		predator_max_slugs
		predator_start_rockets
		predator_start_slugs
		predator_start_health

1	Predator init, null 
	Clear all initialization cvars. 
	Ensure that the predator initialization proceeds properly and
	that the default values are used.

2	Max rockets, illegal
	Set the predator_max_rockets variable to an illegal value.
	Ensure that the predator initialization proceeds properly with
	the default value.

3	Max rockets, valid
	Set the predator_max_rockets variable to a valid value.
	Ensure that the predator initialization proceeds properly and
	that the new value is used.

4	Max slugs, illegal
	Set the predator_max_slugs variable to an illegal value.

5	Max slugs, valid
	Set the predator_max_slugs variable to a valid value.

6	Start rockets, illegal
	Set the predator_start_rockets variable to an illegal value.

7	Start rockets, valid
	Set the predator_start_rockets variable to a valid value.

8	Start slugs, illegal
	Set the predator_start_slugs variable to an illegal value.

9	Start slugs, valid
	Set the predator_start_slugs to a valid value.

10	Start health illegal
	Set the predator_start_health to an illegal value.
	
11	Start health, valid
	Set the predator_start_health to a valid value.

12	Suicide respawn, health
	After a suicide, the predator health should be set to a value
	exactly one half the value of predator_start_health. 

13	Available weapons
	The predator should only have access to the rocket launcher and
	the rail gun. It should not be possible to select other weapons.

14	Pickup items 
	The predator should not be able to pick up any item except
	the IR goggles.


Test Group 8: Predator Overload

Info: 	The predator may "overload" the rocket launcher. This will fire 
	2 rockets, side by side. The overload function will use more ammo
	obviously. 

	The "overload" command toggles the overload status of the predators
	weapon.

	There are two cvars controlling the overload function:

		enable_predator_overload
		predator_overload_cost

1	Overload, null
	Clear all the overload variables. 
	Ensure the server starts properly using the default values.

2	Overload, disabled
	Disable the predator overload. 
	Ensure that the server starts properly and that the predator
	overload functionality is unnavailable.

3	Overload, enabled
	Enable the predator overload. 
	Ensure that the server starts properly and that the predator
	overload functionality is available.

4	Overload cost, invalid
	Set predator_overload_cost to an illegal value.
	Ensure the server starts properly and that the default value
	is used.  

5	Overload cost, valid
	Set the predator_overload_cost to a valid value.
	Ensure the predator ammo is decremented by the proper amount.

6	Overload command, Enable
	Enable overload mode using the overload command.
	This should cause the "enable overload" sound to be played.
	The overload icon should be displayed in the ammo area.
 
7	Overload command, Disable
	Disable overload mode using the overload command.
	This should cause the "disable" overload" sound to be played.
	The standard ammo icon should be displayed in the ammo area. 

8	Overload command, Rail
	Attempt to use the overload command while the rail gun is 
	the selected weapon.
	This should result in no effect. 

9	Overload command, Marine
	Attempt to use the overload command while using the marine
	class. 
	This should result in no effect.

10	Overload, Out of ammo
	Enable overload mode.
	Fire the rocket launcher until out of ammo.
	Ensure that the hud displays properly when ammo is depleted.
	Ensure that weapon switching occurs properly.

11	Overload, ammo depletion
	Enable overload mode.
	Ensure that the ammo count in the hud is updated properly 
	by the amount specified in predator_overload_cost.


