// --------------------------------------------------------------------------
//
// Doom weapon base class
//
// --------------------------------------------------------------------------

ACTOR DoomWeapon : Weapon
{
	Weapon.Kickback 100
}

// --------------------------------------------------------------------------
//
// Fist
//
// --------------------------------------------------------------------------

ACTOR Fist : Weapon
{
	Game Doom
	Weapon.SelectionOrder 3700
	Weapon.Kickback 100
	Obituary "$OB_MPFIST"
	+WEAPON.WIMPY_WEAPON
	+WEAPON.MELEEWEAPON
	+WEAPON.ALLOW_WITH_RESPAWN_INVUL
	States
	{
	Ready:
		PUNG A 1 A_WeaponReady
		Loop
	Deselect:
		PUNG A 1 A_Lower
		Loop
	Select:
		PUNG A 1 A_Raise
		Loop
	Fire:
		PUNG B 4
		PUNG C 4 A_Punch
		PUNG D 5
		PUNG C 4
		PUNG B 5 A_ReFire
		Goto Ready
	}
}
	

// --------------------------------------------------------------------------
//
// Pistol 
//
// --------------------------------------------------------------------------

ACTOR Pistol : DoomWeapon 5010
{
	Game Doom
	Weapon.SelectionOrder 1900
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "Clip"
	Obituary "$OB_MPPISTOL"
	+WEAPON.WIMPY_WEAPON
	+WEAPON.ALLOW_WITH_RESPAWN_INVUL
	Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"
	Radius 20
	Height 16
	Attacksound "weapons/pistol"
	States
	{
	Ready:
		PISG A 1 A_WeaponReady
		Loop
	Deselect:
		PISG A 1 A_Lower
		Loop
	Select:
		PISG A 1 A_Raise
		Loop
	Fire:
		PISG A 4
		PISG B 6 A_FirePistol
		PISG C 4
		PISG B 5 A_ReFire
		Goto Ready
	Flash:
		PISF A 7 Bright A_Light1
		Goto LightDone
		PISF A 7 Bright A_Light1
		Goto LightDone
 	Spawn:
		PIST A -1
		Stop
	}
}
		
// --------------------------------------------------------------------------
//
// Chainsaw
//
// --------------------------------------------------------------------------

ACTOR Chainsaw : Weapon 2005
{
	Game Doom
	SpawnID 32
	Weapon.Kickback 0
	Weapon.SelectionOrder 2200
	Weapon.UpSound "weapons/sawup"
	Weapon.ReadySound "weapons/sawidle"
	Inventory.PickupMessage "$GOTCHAINSAW"
	Obituary "$OB_MPCHAINSAW"
	+WEAPON.MELEEWEAPON		
	+WEAPON.ALLOW_WITH_RESPAWN_INVUL
	States
	{
	Ready:
		SAWG CD 4 A_WeaponReady
		Loop
	Deselect:
		SAWG C 1 A_Lower
		Loop
	Select:
		SAWG C 1 A_Raise
		Loop
	Fire:
		SAWG AB 4 A_Saw
		SAWG B 0 A_ReFire
		Goto Ready
	Spawn:
		CSAW A -1
		Stop
	}
}
	

// --------------------------------------------------------------------------
//
// Shotgun
//
// --------------------------------------------------------------------------

ACTOR Shotgun : DoomWeapon 2001
{
	Game Doom
	SpawnID 27
	Weapon.SelectionOrder 1300
	Weapon.AmmoUse 1
	Weapon.AmmoGive 8
	Weapon.AmmoType "Shell"
	Inventory.PickupMessage "$GOTSHOTGUN"
	Obituary "$OB_MPSHOTGUN"
	Attacksound "weapons/shotgf"
	States
	{
	Ready:
		SHTG A 1 A_WeaponReady
		Loop
	Deselect:
		SHTG A 1 A_Lower
		Loop
	Select:
		SHTG A 1 A_Raise
		Loop
	Fire:
		SHTG A 3
		SHTG A 7 A_FireShotgun
		SHTG BC 5
		SHTG D 4
		SHTG CB 5
		SHTG A 3
		SHTG A 7 A_ReFire
		Goto Ready
	Flash:
		SHTF A 4 Bright A_Light1
		SHTF B 3 Bright A_Light2
		Goto LightDone
	Spawn:
		SHOT A -1
		Stop
	}
}	

// --------------------------------------------------------------------------
//
// SuperShotgun
//
// --------------------------------------------------------------------------

ACTOR SuperShotgun : DoomWeapon 82
{
	Game Doom
	SpawnID 33
	Weapon.SelectionOrder 400
	Weapon.AmmoUse 2
	Weapon.AmmoGive 8
	Weapon.AmmoType "Shell"
	Inventory.PickupMessage "$GOTSHOTGUN2"
	Obituary "$OB_MPSSHOTGUN"
	Attacksound "weapons/sshotf"
	States
	{
	Ready:
		SHT2 A 1 A_WeaponReady
		Loop
	Deselect:
		SHT2 A 1 A_Lower
		Loop
	Select:
		SHT2 A 1 A_Raise
		Loop
	Fire:
		SHT2 A 3
		SHT2 A 7 A_FireShotgun2
		SHT2 B 7
		SHT2 C 7 A_CheckReload
		SHT2 D 7 A_OpenShotgun2
		SHT2 E 7
		SHT2 F 7 A_LoadShotgun2
		SHT2 G 6
		SHT2 H 6 A_CloseShotgun2
		SHT2 A 5 A_ReFire
		Goto Ready
	// unused states
		SHT2 B 7
		SHT2 A 3
		Goto Deselect
	Flash:
		SHT2 I 4 Bright A_Light1
		SHT2 J 3 Bright A_Light2
		Goto LightDone
	Spawn:
		SGN2 A -1
		Stop
	}
}

// --------------------------------------------------------------------------
//
// Chaingun
//
// --------------------------------------------------------------------------

ACTOR Chaingun : DoomWeapon 2002
{
	Game Doom
	SpawnID 28
	Weapon.SelectionOrder 700
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "Clip"
	Inventory.PickupMessage "$GOTCHAINGUN"
	Obituary "$OB_MPCHAINGUN"
	Attacksound "weapons/chngun"
	States
	{
	Ready:
		CHGG A 1 A_WeaponReady
		Loop
	Deselect:
		CHGG A 1 A_Lower
		Loop
	Select:
		CHGG A 1 A_Raise
		Loop
	Fire:
		CHGG AB 4 A_FireCGun
		CHGG B 0 A_ReFire
		Goto Ready
	Flash:
		CHGF A 5 Bright A_Light1
		Goto LightDone
		CHGF B 5 Bright A_Light2
		Goto LightDone
	Spawn:
		MGUN A -1
		Stop
	}
}

// --------------------------------------------------------------------------
//
// Rocket launcher
//
// --------------------------------------------------------------------------

ACTOR RocketLauncher : DoomWeapon 2003
{
	Game Doom
	SpawnID 29
	Weapon.SelectionOrder 2500
	Weapon.AmmoUse 1
	Weapon.AmmoGive 2
	Weapon.AmmoType "RocketAmmo"
	+WEAPON.NOAUTOFIRE
	Inventory.PickupMessage "$GOTLAUNCHER"
	States
	{
	Ready:
		MISG A 1 A_WeaponReady
		Loop
	Deselect:
		MISG A 1 A_Lower
		Loop
	Select:
		MISG A 1 A_Raise
		Loop
	Fire:
		MISG B 8 A_GunFlash
		MISG B 12 A_FireMissile
		MISG B 0 A_ReFire
		Goto Ready
	Flash:
		MISF A 3 Bright A_Light1
		MISF B 4 Bright
		MISF CD 4 Bright A_Light2
		Goto LightDone
	Spawn:
		LAUN A -1
		Stop
	}
}

ACTOR Rocket
{
	Game Doom
	SpawnID 127
	Radius 11
	Height 8
	Speed 20
	Damage 20
	DamageType Fire
	Projectile
	+RANDOMIZE
	+DEHEXPLOSION
	+ROCKETTRAIL
	+EXPLODEONDEATH
	SeeSound "weapons/rocklf"
	DeathSound "weapons/rocklx"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
		MISL A 1 Bright
		Loop
	Death:
		MISL B 8 Bright A_Explode
		MISL C 6 Bright
		MISL D 4 Bright
		Stop
	}
}

// --------------------------------------------------------------------------
//
// Plasma rifle
//
// --------------------------------------------------------------------------

ACTOR PlasmaRifle : DoomWeapon 2004
{
	Game Doom
	SpawnID 30
	Weapon.SelectionOrder 100
	Weapon.AmmoUse 1
	Weapon.AmmoGive 40
	Weapon.AmmoType "Cell"
	Inventory.PickupMessage "$GOTPLASMA"
	States
	{
	Ready:
		PLSG A 1 A_WeaponReady
		Loop
	Deselect:
		PLSG A 1 A_Lower
		Loop
	Select:
		PLSG A 1 A_Raise
		Loop
	Fire:
		PLSG A 3 A_FirePlasma
		PLSG B 20 A_ReFire
		Goto Ready
	Flash:
		PLSF A 4 Bright A_Light1
		Goto LightDone
		PLSF B 4 Bright A_Light1
		Goto LightDone
	Spawn:
		PLAS A -1
		Stop
	}
}

ACTOR PlasmaBall
{
	Game Doom
	SpawnID 51
	Radius 13
	Height 8
	Speed 25
	Damage 5
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 0.75
	SeeSound "weapons/plasmaf"
	DeathSound "weapons/plasmax"
	Obituary "$OB_MPPLASMARIFLE"
	States
	{
	Spawn:
		PLSS AB 6 Bright
		Loop
	Death:
		PLSE ABCDE 4 Bright
		Stop
	}
}
	


// --------------------------------------------------------------------------
//
// BFG 9000
//
// --------------------------------------------------------------------------

ACTOR BFG9000 : DoomWeapon 2006
{
	Game Doom
	Height 20
	SpawnID 31
	Weapon.SelectionOrder 2800
	Weapon.AmmoUse 40
	Weapon.AmmoGive 40
	Weapon.AmmoType "Cell"
	+WEAPON.NOAUTOFIRE
	+WEAPON.NOLMS
	Inventory.PickupMessage "$GOTBFG9000"
	States
	{
	Ready:
		BFGG A 1 A_WeaponReady
		Loop
	Deselect:
		BFGG A 1 A_Lower
		Loop
	Select:
		BFGG A 1 A_Raise
		Loop
	Fire:
		BFGG A 20 A_BFGsound
		BFGG B 10 A_GunFlash
		BFGG B 10 A_FireBFG
		BFGG B 20 A_ReFire
		Goto Ready
	Flash:
		BFGF A 11 Bright A_Light1
		BFGF B 6 Bright A_Light2
		Goto LightDone
	Spawn:
		BFUG A -1
		Stop
	}
}


ACTOR BFGBall
{
	Game Doom
	SpawnID 128
	Radius 13
	Height 8
	Speed 25
	Damage 100
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 0.75
	DeathSound "weapons/bfgx"
	Obituary "$OB_MPBFG_BOOM"
	States
	{
	Spawn:
		BFS1 AB 4 Bright
		Loop
	Death:
		BFE1 AB 8 Bright
		BFE1 C 8 Bright A_BFGSpray
		BFE1 DEF 8 Bright
		Stop
	}
}
		
ACTOR BFGExtra
{
	+NOBLOCKMAP
	+NOGRAVITY
	RenderStyle Add
	Alpha 0.75
	States
	{
	Spawn:
		BFE2 ABCD 8 Bright
		Stop
	}
}

