/*

==MOURNING STAR==
A pump action mace wasn't high up there on the list of
weapons you'd want to see, but the results speak for
themselves: high velocity steel spheres smash demons
to a pulp. Really this weapon is still a shotgun at
heart, it's just the pellets are way bigger.

It also doubles as a proper bludgeoning tool, the
grip and stock are shaped just right to make this
easy!
*/


actor MourningStar : Rend
{
	Weapon.SelectionOrder 800
	Weapon.AmmoType "SlayerMettle"
	Weapon.AmmoUse 10
	-UNDROPPABLE
	-CHEATNOTWEAPON
	Inventory.RestrictedTo "DoomSlayer"
	Tag "Mourning Star"
	states
	{
	spawn:
		SHOT A 1
		loop
	select:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("doomslayer/shotgunup")
		TNT1 A 1 A_GunFlash ("GadgetStarter",GFF_NOEXTCHANGE)
	draw:
		TNT1 AAAAAA 0 A_Raise
		TNT1 A 0 A_GiveInventory ("UsingSlayerGun",1)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_GiveInventory ("UsingSlayerGun",1)
		TNT1 A 1 A_Raise
		loop
	ready:
		MST1 ABCDEF 1 A_WeaponReady
		Goto RealReady
	RealReady:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1, "BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		MST1 F 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory ("BFGReady", 1, "DrawBFG")
		loop
	deselect:
		TNT1 A 0
		TNT1 A 0 A_JumpIfHealthLower (1, "DeadLower")
		TNT1 A 0 A_PlaySound ("doomslayer/holster",0)
		MST5 EDCBA 1
	holster:
		TNT1 A 0
		TNT1 AAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		loop

	Fire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelToss")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelToss")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "FireBFG")
		MST1 F 1 A_JumpIfInventory ("SlayerMettle",10,"RealFire")
		TNT1 A 0 A_PlaySound ("doomslayer/click",0)
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1,"BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		MST5 DBA 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST4 CC 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		Goto MeleeSwing


	RealFire:
		TNT1 A 0
		TNT1 A 0 A_Quake(3, 8, 0, 10)
		MST1 F 1 
		TNT1 A 0 A_PlaySound ("DoomSlayer/MourningStarShot",0)
		TNT1 A 0 A_FireBullets (0,0,1,0,"flickpuff",FBF_NOFLASH)
		TNT1 A 0 A_FireBullets (5.6, 2, 14, 10, "MourningStarPuff",FBF_NORANDOM|FBF_USEAMMO)
		MST2 A 1 bright
		MST2 B 1 bright
		TNT1 A 0 A_JumpIfInventory ("BarrelToken",1,"BarrelGet")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelGet")
		MST2 C 2 
		MST2 DCDC 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY|WRF_NOSWITCH)
		MST2 EFG 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY|WRF_NOSWITCH)
		MST1 F 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY|WRF_NOSWITCH)
		MST3 ABCD 2 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY|WRF_NOSWITCH)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MourningStarPumpDown",6)
		MST3 E 2 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY|WRF_NOSWITCH)
		TNT1 A 0 A_FireCustomMissile ("GMOTASlayerCasingSpawner2",0,0,-2,-2)
		//TNT1 A 0 A_Refire ("PumpGun")
		//TNT1 A 0 A_Jump (256, "PreMeleeSwing")
		
	PumpGun:
		MST3 FF 2 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		TNT1 A 0 A_StopSound (6)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MourningStarPumpUp",5)
		MST3 GH 2 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST3 IIJJ 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST3 A 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST1 F 2 A_WeaponReady (WRF_NOPRIMARY)
		Goto RealReady
	PreMeleeSwing:
		MST4 AB 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST4 CC 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		TNT1 A 0 A_StopSound (6)
		TNT1 A 0 A_PlaySound ("DoomSlayer/MourningStarPumpUp",5)
	MeleeSwing:
		TNT1 A 0 
		TNT1 A 0 A_JumpIfInventory ("ATKringpowerup",1,"MightyMace")
		MST4 DEE 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST4 FGHH 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		TNT1 A 0 A_FireCustomMissile ("MourningStarMelee",0,0,0,1)
		MST4 I 1 
		TNT1 A 0 A_PlaySound ("DoomSlayer/Sword3",0)
		TNT1 A 0 A_JumpIfInventory ("MourningStarHit", 1, "HitStop")
		MST4 J 1
		TNT1 A 0 A_JumpIfInventory ("MourningStarHit", 1, "HitStop")
		Goto MeleeSwingEnd
	
	MightyMace:
		MST4 DEE 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		MST4 FGHH 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		TNT1 A 0 A_FireCustomMissile ("MightyMourningStarMelee",0,0,0,1)
		MST4 I 1 
		TNT1 A 0 A_PlaySound ("DoomSlayer/Sword3",0)
		TNT1 A 0 A_JumpIfInventory ("MourningStarHit", 1, "HitStop")
		MST4 J 1
		TNT1 A 0 A_JumpIfInventory ("MourningStarHit", 1, "HitStop")
		Goto MeleeSwingEnd
	
	HitStop:
		MST7 ABA 1
		Goto MeleeSwingEnd
	MeleeSwingEnd:
		MST4 KLLMM 1 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		TNT1 A 3 A_WeaponReady(WRF_NOBOB|WRF_NOPRIMARY)
		goto Ready
	Altfire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("BarrelToken", 1, "BarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("GoldenBarrelToken",1, "GoldenBarrelCancel")
		TNT1 A 0 A_JumpIfInventory ("BFGArmed", 1, "HolsterBFG")
		MST5 EDCBA 1
		TNT1 A 0 A_PlaySound ("doomslayer/SwordUp")
		TNT1 A 0 A_Jump (256, "StartSlash")
		Goto AltfireEnd
	BarrelGet:
		TNT1 A 0
		TNT1 A 0 A_ClearReFire
		MST5 EDCBA 1
		TNT1 A 0 A_PlaySound ("doomslayer/holster",0)
		TNT1 A 0 A_TakeInventory ("UsingSlayerGun",99)
		TNT1 A 2
		TNT1 A 0 A_Jump (256, "BarrelStart")
		Goto ToolEnd


	AltfireEnd:
		TNT1 A 0 A_PlaySound ("doomslayer/SwordDown")
		TNT1 A 4 A_WeaponReady
		goto Ready
	ToolEnd:
		TNT1 A 1 A_ClearReFire
		TNT1 A 4 A_WeaponReady
		goto Ready
		
	GadgetStarter:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_Jump (256, "GadgetReady")
		goto Ready
	
	}
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//========================
//======PROJECTILE========
//========================



ACTOR MourningStarPuff : BulletPuff
{
	+NOBLOCKMAP
	+NOGRAVITY
	+ALLOWPARTICLES
	+RANDOMIZE
	+thruspecies
	+MTHRUSPECIES
	+PUFFONACTORS
	+PUFFGETSOWNER
	+bright
	species "Friendly"
	RenderStyle add
	Alpha 0.90
	scale 0.90
	VSpeed 0
	Mass 5
	decal "BulletChip"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 2
		// Intentional fall-through
	Xdeath:
		TNT1 A 1
		TNT1 A 0 A_PlaySound ("DoomSlayer/ShotGunHit",0,0.70)
		TNT1 A 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		GB1X ABCD 2 
		Stop
	Crash:
		TNT1 A 1
		TNT1 A 0 a_setscale (0.50,0.50)
		TNT1 A 0 A_SpawnItemEx ("MacePelletHit",-5,-5,0,frandom(-2,-8),frandom(-8,8),frandom(5,10),0,SXF_NOCHECKPOSITION)
		GB1X ABCD 2 
		Stop		
	}
}


actor MacePelletHit
{
	projectile
	+THRUACTORS
	+CLIENTSIDEONLY
	+bright
	-NOGRAVITY
	gravity 1.5
	+hexenbounce
	+NOTELEPORT
	radius 8
	bouncecount 5
	reactiontime 20
	bouncefactor 0.8
	renderstyle Translucent
	Alpha 0.70
	seesound "cannon/lilclang"
	states
	{
	spawn:
		TNT1 A 0
		GBAL C 1
		TNT1 A 1
		TNT1 A 0 A_Countdown
		loop
	death:
		TNT1 A 1
		stop
	}
}



ACTOR MourningStarMelee : SlayerMelee
{
	-bloodsplatter
	+BLOODLESSIMPACT
	damage (90)
	decal SlayerFistDecal
	species "friendly"
	scale 1.50
	ProjectileKickBack 800
	states
	{
	xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_PlaySound ("Doomslayer/RightFistHit",0)
		TNT1 AAAAAAAA 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 A 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		TNT1 A 0 A_GiveInventory ("MourningStarHit",1, AAPTR_TARGET)
		GB2X ABCDD 1
		stop
	Death:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 0 A_FadeOut (0.70)
		TNT1 A 0 A_PlaySound("Doomslayer/FistWall",0)
		DSM1 ABCDEFG 1
		Stop 
	Crash:
		TNT1 A 0
		VFX2 A 0
		TNT1 A 1
		TNT1 A 0 A_SetScale (0.60,0.60)
		TNT1 A 0 A_FadeOut (0.70)
		TNT1 A 0 A_PlaySound("Doomslayer/FistWall",0)
		DSM1 ABCDEFG 1
		Stop
	}
}




ACTOR MightyMourningStarMelee : MourningStarMelee
{
	Damage (240)
	scale 0.70
	states
	{
	Xdeath:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_FadeOut (0.40)
		TNT1 A 0 A_PlaySound ("Doomslayer/RightFistHit",0)
		TNT1 A 0 A_PlaySound ("Doomslayer/wrathnormal",CHAN_VOICE,0.60,0,1.20)
		TNT1 AAAAAAAAAAAAA 0 A_GiveInventory ("SlayerMPCharger2",1, AAPTR_TARGET)
		TNT1 AAA 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		TNT1 A 0 A_GiveInventory ("MourningStarHit",1, AAPTR_TARGET)
		WRML B 2 bright A_Explode (10,180,0,1)
		TNT1 A 0 Radius_Quake (2,6,0,10,0)
		TNT1 AAAAAAAA 0 Bright A_SpawnItemEx("LavaLazerTrail",frandom(-21,21),frandom(-21,21),frandom(10,31),frandom(-6,6),frandom(-4,8),frandom(2,3))
		TNT1 AAAAAAAA 0 Bright A_SpawnItemEx("LavaLazerEmber2",frandom(-16,16),frandom(-16,16),frandom(16,26),frandom(-1,1),frandom(-7,6),frandom(3,5))
		TNT1 AAAAAAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke2",frandom(-4,4),frandom(-4,4),frandom(4,8),frandom(-4,6),frandom(-5,6),frandom(2,5))
		TNT1 AAAAAAA 0 Bright A_SpawnItemEx("LavaLazerSmoke",frandom(-4,4),frandom(-4,4),frandom(4,8),frandom(-4,6),frandom(-5,6),frandom(2,6))
		WRML C 1 bright
		WRML EFGH 1 bright
		stop
	}
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//========================
//========TOKENS==========
//========================



Actor MourningStarHit : Powerup
{
  Powerup.Duration 5
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//========================
//========UNUSED==========
//========================

//I'm leaving this here cus a few other actors 
//inherit from it and I'm lazy.

actor MacePellet : FastProjectile
{
	+notimefreeze
    +FORCEXYBILLBOARD	
	+thruspecies
	+bright
	obituary "%o got %k's balls in their face."
	damage (15)
	species "Friendly"
    missileheight 1
	speed 120
	height 4
	radius 4
	gravity 0.01
    Scale 1
	alpha 0.95
	-NOGRAVITY
	+BLOODSPLATTER
	+NOEXTREMEDEATH
	decal "BulletChip"
	states
	{
	Spawn:
		GBAL C 1
		loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_Stop
		TNT1 A 1 A_SpawnItemEx ("MacePelletHit",-5,-5,0,frandom(-2,-8),frandom(-8,8),frandom(5,10),0,SXF_NOCHECKPOSITION)
		stop
	XDeath:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_PlaySound ("DoomSlayer/ShotGunHit",0)
		TNT1 A 0 A_GiveInventory ("SlayerToolCharger",1, AAPTR_TARGET)
		GB1X ABCD 2 
		stop
	}
}

