Actor OperativeQuinzel : NewPlayer
{
  Player.StartItem "HQIntro"
  Player.StartItem "HQPistols"
  Player.StartItem "HQBaseballBat"
  Player.StartItem "PistolAmmo", 100
  Player.StartItem "HyenasLoaded", 20
  Player.StartItem "MagnumLoaded", 6
  Player.StartItem "870Loaded", 8
  Player.StartItem "M79Loaded", 1
  Player.StartItem "UzisLoaded", 60
  Player.StartItem "FlareLoaded", 3
  Player.StartItem "LMGLoaded", 100
  Player.StartItem "BattleRifleLoaded", 35
  Player.StartItem "SlugthrowerLoaded", 5
  Player.StartItem "BigRocketLoaded", 1
  Player.StartItem "ThrowableAmmo", 3
  Player.StartItem "StimAmmo", 2
  Player.StartItem "RageUser"
  Player.StartItem "UziTic2", 1
  Player.StartItem "HQBatToken", 1
  Player.StartItem "HQPistolsToken", 1
  Player.StartItem "OverHealth", 200
  Player.ViewHeight 55
  Player.CrouchSprite "HARC"
  Player.SoundClass "HQ"
  Player.DisplayName "Harley Quinn"
  Player.DamageScreenColor 0, 0, 0, 0.0
  DamageFactor "Slime", 0.5
  DamageFactor "Poison", 0.0
  Radius 14
  Height 46
  Player.ViewHeight 46.0
  Player.AttackZOffset 15
  Mass 100
  Player.JumpZ 12.0
  Speed 1.0
  Player.SideMove 1.0, 1.13
  Player.ForwardMove 1.0, 1.13
  Scale 0.85
  Player.Face "SHQ"
  States
   {
	Spawn:
		HARL A 1
		HARL A 0 A_JumpIf(momZ !=0, "Jumping")
		Loop
	See:
		HARL A 4 
		HARL A 0 A_JumpIf(MomZ!=0, "JumpingMoving")
		HARL B 4 
		HARL A 0 A_JumpIf(MomZ!=0, "JumpingMoving")
		HARL C 4 
		HARL A 0 A_JumpIf(MomZ!=0, "JumpingMoving")
		HARL D 4 
		HARL A 0 A_JumpIf(MomZ!=0, "JumpingMoving")
		Loop
	Jumping:
		HARL A 1
		HARC X 2
		HARC X 0 A_JumpIf(MomZ!=0, "InMidAir")
		Goto Spawn
	JumpingMoving:
		HARC X 1
		HARC X 2
		HARC X 0 A_JumpIf(MomZ!=0, "InMidAirMoving")
		Goto See
	InMidAir:
		HARC X 3
		HARC X 0 A_JumpIf(MomZ==0, "Landed")
		Loop
	InMidAirMoving:
		HARC X 3
		HARC X 0 A_JumpIf(MomZ==0, "LandedMoving")
		Loop
	MidAirAttack:
		HARC Y 3
		HARC Y 0 A_JumpIf(MomZ==0, "LandedMoving")
		Goto JumpingMoving
	Landed:
		HARC X 1
		HARL B 2
		Goto Spawn
	LandedMoving:
		HARL C 2
		HARL D 2
		Goto See
    Missile:
		HARC X 0 A_JumpIf(MomZ!=0, "MidAirAttack")
        HARL F 3 BRIGHT
        Goto Spawn
    Melee:
		HARC X 0 A_JumpIf(MomZ!=0, "MidAirAttack")
        HARL E 3 
        Goto Spawn
	Pain:
	    NULL A 0 A_JumpIfInventory("BasicArmor",1,"PainArmored")
		NULL A 0 A_SetAngle(Angle + FRandom(-4.0,4.0))
		NULL A 0 A_SetPitch(Pitch + FRandom(-4.0,4.0))
		HARL G 2 ACS_NamedExecute("AXPlayerPainFlash",0)
		HARL G 2 A_Pain
		Goto Spawn
	PainArmored:
		NULL A 0 A_SetAngle(Angle + FRandom(-2.0,2.0))
		NULL A 0 A_SetPitch(Pitch + FRandom(-2.0,2.0))
		HARL G 2
		HARL G 2 A_Pain
		Goto Spawn
	Death:
	    TNT1 A 0 A_JumpIfInventory("SpeedItem",1,"Death.Time")
	    TNT1 A 0 A_JumpIfInventory("ExtraLife",1,"ExtraInStore")
		TNT1 A 0 A_TakeInventory("HarleyTalk",99)
		TNT1 A 0 A_TakeInventory("HUDStart",99)
		TNT1 A 0 A_TakeInventory("ActiveRockit",99)
		TNT1 A 0 A_PlayerScream
		TNT1 A 0 A_NoBlocking
		HARL G 2 A_ClearOverlays(-3,6)
	    BSKL A 0 ACS_NamedExecute("HQDisconnected",0)
		HARL H 2
		HARL I 4 
		HARL J 4
		HARL K -1
		Stop
	XDeath:
	    TNT1 A 0 A_JumpIfInventory("SpeedItem",1,"Death.Time")
	    TNT1 A 0 A_JumpIfInventory("ExtraLife",1,"ExtraInStore")
	    BSKL A 0 ACS_NamedExecute("HQDisconnected",0)
		TNT1 A 0 A_TakeInventory("HarleyTalk",99)
		TNT1 A 0 A_TakeInventory("HUDStart",99)
		TNT1 A 0 A_TakeInventory("ActiveRockit",99)
		TNT1 A 0 A_XScream
		TNT1 A 0 A_NoBlocking
		HARL O 3 A_ClearOverlays(-3,6)
        SLOP ABCDEFG 3
        SLOP H -1
		Stop
	ExtraInStore:
		TNT1 A 0 A_TakeInventory("ActiveRockit",99)
        TNT1 AAAAA 0 A_SpawnItemEx("DisasterShotSmoke",0,0,0,frandom(-0.5,0.5),frandom(-0.5,0.5),frandom(-0.5,0.5),0,160)
        TNT1 AAAAA 0 A_SpawnItemEx("TaserDebris",random(-15,15),random(-15,15),random(-15,15),random(-1,1),random(-3,3),random(0,1))
        TNT1 A 0 A_ClearOverlays(-3,6)
		TNT1 A 1 A_NoBlocking
		TNT1 A -1
		Stop
	Death.Time:
	Death.Massacre:
		TNT1 A 0 A_ClearOverlays(-3,6)
		TNT1 A 0 A_TakeInventory("ExtraLife",99)
		TNT1 A 0 A_TakeInventory("ExtraLifeGod1",99)
		TNT1 A 0 A_TakeInventory("ExtraLifeGod2",99)
		TNT1 A 0 A_TakeInventory("HarleyTalk",99)
		TNT1 A 0 A_TakeInventory("HUDStart",99)
		TNT1 A 0 A_TakeInventory("ActiveRockit",99)
		TNT1 A 0 A_PlaySound("HQTIME",CHAN_VOICE)
		TNT1 A 0 A_SkullPop("HQBloodySkull")
		HARL O 3 A_ClearOverlays(-3,6)
        SLOP ABCDEFG 3
        SLOP H -1
		Stop
	}
}



ACTOR HQBloodySkull : PlayerChunk
{
  Radius 4
  Height 4
  +NOBLOCKMAP
  +DROPOFF
  +LOWGRAVITY
  +CANNOTPUSH
  +SKYEXPLODE
  +NOBLOCKMONST
  +NOSKIN
  States
  {
  Spawn:
    BSKL A 0
    BSKL A 2 A_CheckFloor("Hit")
    Goto Spawn2
  Spawn2:
	BSKL A 3 A_CheckFloor("Hit")
    BSKL BCDE 5 A_CheckFloor("Hit")
  Hit:
	BSKL A 0 ACS_NamedExecute("HQDisconnected",0)
    BSKL F 16 A_CheckPlayerDone
    Wait
  }
}

ACTOR HQWeapon : Weapon
{
    Weapon.BobStyle "InverseSmooth"
    Weapon.BobSpeed 1.6
	Weapon.BobRangeX 0.25
	Weapon.BobRangeY 0.25
    Weapon.SelectionOrder 9999
States
{
 QuickMelee:
    MGNR H 0 A_GiveInventory("SheKick", 1)
	PKFC A 0 A_JumpIf(GetPlayerInput(MODINPUT_BUTTONS) & BT_CROUCH && height<46, "CrouchSlide")
	PKFC A 0 A_CheckFloor("MainMelee")
	Goto JumpKick
  MainMelee:
	MELL A 0 A_PlayWeaponSound("FISTMiss")
    TNT1 A 0 A_Jump(256,"KickRight", "KickLeft")
	KickRight:
	WKIC AB 1
	NULL A 0 A_PlaySound("KickMiss",CHAN_7)
	NULL A 0 A_Recoil(-5.5)
	NULL A 0 A_Quake(2, 4, 0, 48576, "None")
	WKIC C 3 A_CustomPunch(15,True,CPF_NOTURN,"KickHit",105)
	WKIC D 2
	WKIC EFG 1
	TNT1 A 10
    MGNR H 0 A_TakeInventory("SheKick", 99)
	Stop
	KickLeft:
	WKIL AB 1
	NULL A 0 A_PlaySound("KickMiss",CHAN_7)
	NULL A 0 A_Recoil(-5.5)
	NULL A 0 A_Quake(2, 4, 0, 48576, "None")
	WKIL C 3 A_CustomPunch(15,True,CPF_NOTURN,"KickHit",105)
	WKIL D 2
	WKIL EFG 1
	TNT1 A 10
    MGNR H 0 A_TakeInventory("SheKick", 99)
	Stop
	JumpKick:
	TNT1 A 0 A_JumpIfInventory("AirChecker",1,"MainMelee")
	WKIA ABC 1
	NULL A 0 A_PlaySound("KickMiss",CHAN_7)
	NULL A 0 A_GiveInventory("AirChecker",1)
	NULL A 0 A_Quake(2, 4, 0, 48576, "None")
	NULL AA 0
		{
		If(pitch>-30)
		{ A_ChangeVelocity(Cos(Pitch)*8,0,Sin(Pitch)*-8,1); }
		Else 
		{A_Recoil(-10);}
		}
	WKIA D 3 A_CustomPunch(25,True,CPF_NOTURN,"FlyingKickHit",105)
	WKIA E 2
	WKIA F 2
	TNT1 A 10
    MGNR H 0 A_TakeInventory("SheKick", 99)
	Stop
	CrouchSlide:
	TNT1 A 1
	PKFC A 0 A_CheckFloor("BeginSlide")
	Goto JumpKick
	BeginSlide:
	CKIA AB 1 A_SetPitch(10)
	NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_CROUCH, "Slide")
	Goto SlideStop
	Slide:
    TNT1 A 0 A_GiveInventory("CrouchSlide",1)
	NULL A 0 A_PlaySound("SlideMiss",CHAN_7)
	CKIA A 0 ACS_NamedExecute("SlideCam1",0)
	CKIA C 1 { A_Recoil(-25.5); A_SetPitch(10); }
	CKIA C 1 { A_FireBullets(0,3.5,1,(10),"SlidingKickHit",0|FBF_EXPLICITANGLE|FBF_NOPITCH|FBF_NOFLASH,105); A_Recoil(-25.5); A_SetPitch(10); }
	NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_CROUCH, "KeepSlidin")
	Goto SlideStop
	KeepSlidin:
	TNT1 A 0 A_JumpIfInventory("SlideStop",1,"SlideStop")
	CKIA CC 1 { A_FireBullets(0,3.5,1,(10),"SlidingKickHit",0|FBF_EXPLICITANGLE|FBF_NOPITCH|FBF_NOFLASH,105); A_Recoil(-20.0); A_SetPitch(15); }
	NULL A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_CROUCH, "SlideSomeMore")
	Goto SlideStop
	SlideSomeMore:
	TNT1 A 0 A_JumpIfInventory("SlideStop",1,"SlideStop")
	CKIA CC 1 { A_FireBullets(0,3.5,1,(5),"SlidingKickHit",0|FBF_EXPLICITANGLE|FBF_NOPITCH|FBF_NOFLASH,105); A_Recoil(-15.0); A_SetPitch(15); }
	Goto SlideStop
	SlideStop:
	CKIA DDEEFF 1 A_SetPitch(10)
	CKIA A 0 A_Recoil(-2.5)
	PTNT I 0 A_RadiusThrust(320, 16, RTF_THRUSTZ)
    TNT1 A 0 A_TakeInventory("CrouchSlide",99)
    TNT1 A 0 A_TakeInventory("SlideStop",99)
	TNT1 A 1
	CKIA A 0 ACS_NamedExecute("SlideCam2",0)
	TNT1 A 9
    MGNR H 0 A_TakeInventory("SheKick", 99)
	Stop
 ThrowNao:
 	MELE A 0 A_Jump(210,3)
 	MELE A 0 A_JumpIfInventory("HarleyTalk",1,2)
	MELE A 0 { A_PlaySound("HQGRNAD",CHAN_VOICE,0.9); A_GiveInventory("HarleyTalk"); }
    TNT1 A 1 A_PlaySound("GRNDTHW",CHAN_7)
	TNT1 A 1 A_FireCustomMissile("PinCaseSpawn",345+random(-8,8),0,-7,-9,0)
    THRW A 0 A_TakeInventory("ThrowableAmmo",1)
	THRW AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	THRW C 1 A_FireCustomMissile("QuickGrenade",0,0,-5,2,FPF_NOAUTOAIM,0)
    THRW DE 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	TNT1 A 10
	Stop
 ThrowNao2:
 	MELE A 0 A_Jump(210,3)
 	MELE A 0 A_JumpIfInventory("HarleyTalk",1,2)
	MELE A 0 { A_PlaySound("HQGRNAD",CHAN_VOICE,0.9); A_GiveInventory("HarleyTalk"); }
    TNT1 A 1 A_PlaySound("GRNDTHW",CHAN_7)
	TNT1 A 1 A_FireCustomMissile("PinCaseSpawn",345+random(-8,8),0,-7,-9,0)
    THRW A 0 A_TakeInventory("ThrowableAmmo",1)
	THR2 AB 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	THR2 C 1 A_FireCustomMissile("QuickGrenade",0,0,-5,2,FPF_NOAUTOAIM,0)
    THR2 DE 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	TNT1 A 10
	Stop
 InjectorPlunge:
    INJT A 1 A_PlaySound("STIMUSE",CHAN_7)
	INJT A 1
    INJT B 2
	INJT C 3
	INJT DE 1
 	MELE A 0 A_Jump(210,2)
    MELE A 0 { A_PlaySound("HATESTI",CHAN_VOICE); A_GiveInventory("HarleyTalk"); }
	INJT F 0 A_TakeInventory("StimAmmo",1)
    INJT F 0 ACS_NamedExecute("StimFlash",0)
	INJT F 0 A_GiveInventory("35Heal",1)
    INJT F 0 A_SetPitch(Pitch +20)
    INJT F 0 A_Quake(2, 2, 0, 48576, "None")
	INJT F 2
	INJT G 5
	INJT F 2
	INJT H 1
	THR2 A 0 A_FireCustomMissile("StimCasing",0,0,-8,0)
	THR2 BC 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
    THR2 DE 1 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
	Stop
	ZeroFucksGiven:
	TNT1 A 0 A_Lower
	Loop
   Taunt:
   TAUN ABC 1
   FIFU C 0 A_PlaySound("HQTAUNT",CHAN_VOICE,1.0) 
   TAUN D 3
   FIFU C 0 A_AlertMonsters
   TAUN D 0 A_firebullets(0,0,1,0,"TauntPuff",0,256)
   TAUN EGFE 1
   TAUN D 3
   TAUN EGFE 1
   TAUN D 3
   TAUN EGFE 1
   TAUN D 3
   TAUN CBA 2
   Stop
   Taunt2:
   TAUT AB 1
   TAUN C 1
   FIFU C 0 A_PlaySound("HQTAUNT",CHAN_VOICE,1.0) 
   TAUN D 3
   FIFU C 0 A_AlertMonsters
   TAUN D 0 A_firebullets(0,0,1,0,"TauntPuff",0,256)
   TAUN EGFE 1
   TAUN D 3
   TAUN EGFE 1
   TAUN D 3
   TAUN EGFE 1
   TAUN D 3
   TAUN C 2
   TAUT BA 2
   Stop
   TauntFU:
   TAUN AB 1
   FIFU C 0 A_PlaySound("HQTAUNT",CHAN_VOICE,1.0) 
   TAUN HI 1
   TAUN D 0 A_firebullets(0,0,1,0,"TauntPuff",0,256)
   TAUN K 10
   TAUN JIH 2
   TAUN BA 2
   Stop
   TauntFU2:
   TAUT AB 1
   FIFU C 0 A_PlaySound("HQTAUNT",CHAN_VOICE,1.0) 
   TAUN HI 1
   TAUN D 0 A_firebullets(0,0,1,0,"TauntPuff",0,256)
   TAUN K 10
   TAUN JIH 2
   TAUT BA 2
   Stop
}
}

ACTOR 35Heal : Medikit
{
	Inventory.PickupMessage ""
	Health.LowMessage 25, 	""
	Inventory.Amount 35
	Tag "Combat Stim"
	Scale 0.4
	States
	{
	Spawn:
	MED2 A -1
	Stop
	}
}
