ACTOR D4Stridicus : D4Demon replaces FlemoidusCycloptisCommonus
{
	SeeSound "demon/sight"
	AttackSound "demon/melee"
	PainSound "demon/pain"
	DeathSound "demon/death"
	ActiveSound "demon/active"
	Obituary "$OB_STRIDICUS"
	Tag "Stridicus"
	BloodColor "Green"
	States
	{
	Spawn:
		SARG A 0 NODELAY A_SetUserVar(user_bigmonstersound,1)
		Goto Idle
	Idle:
		SARG A 10 A_Look
		Wait
	See:
		SARG A 0 A_JumpIf(user_chargecooldown<1,"RegularChase")
		
		ChaseNoCharge:
			SARG AABBCCDD 2 A_Chase("Melee","")
			SARG A 0 A_SetUserVar(user_chargecooldown,user_chargecooldown-1)
			Goto See
			
		RegularChase:
			SARG AABBCCDD 2 A_Chase
			SARG A 0 A_SetUserVar(user_chargecooldown,user_chargecooldown-1)
			Loop
			
	Missile:
		SARG A 0 A_SetUserVar(user_accelerator,3)
		SARG A 0 A_SetUserVar(user_chargecooldown,5)
		SARG A 0 A_PlaySound("demon/sight",1.0,false,1.2)
		SARG AB 4 A_FaceTarget
		SARG A 0 A_Recoil(-user_accelerator-2)
		// full acceleration round 1
		SARG A 4 A_Recoil(-user_accelerator)
		TNT1 A 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 A 0 A_SetUserVar(user_accelerator,user_accelerator+2)
		SARG B 4 A_Recoil(-user_accelerator)
		TNT1 B 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 B 0 A_SetUserVar(user_accelerator,user_accelerator+2)
		SARG C 4 A_Recoil(-user_accelerator)
		TNT1 C 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 C 0 A_SetUserVar(user_accelerator,user_accelerator+2)
		SARG D 4 A_Recoil(-user_accelerator)
		TNT1 D 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 D 0 A_SetUserVar(user_accelerator,user_accelerator+2)
		// full acceleration round 2
		SARG A 4 A_Recoil(-user_accelerator)
		TNT1 A 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		SARG B 4 A_Recoil(-user_accelerator)
		TNT1 B 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		SARG C 4 A_Recoil(-user_accelerator)
		TNT1 C 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		SARG D 4 A_Recoil(-user_accelerator)
		TNT1 D 0 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		//slowing down
		SARG A 4 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 A 0 A_ChangeVelocity(velx*0.8,vely*0.8,velz*0.8,CVF_REPLACE)
		SARG B 4 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 B 0 A_ChangeVelocity(velx*0.8,vely*0.8,velz*0.8,CVF_REPLACE)
		SARG C 4 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 C 0 A_ChangeVelocity(velx*0.8,vely*0.8,velz*0.8,CVF_REPLACE)
		SARG D 4 A_JumpIf(velx==0 && vely==0,"CrashedSomewhere")
		TNT1 D 0 A_ChangeVelocity(velx*0.8,vely*0.8,velz*0.8,CVF_REPLACE)
		Goto See
		
		CrashedSomewhere:
			SARG A 0 A_PlaySound("Doom4/Monsters/PinkyCrash",7,0.8,0,2.0)
			SARG A 0 A_SpawnItemEx("PinkyDustCloud",20,0,32,0,0,0,0,SXF_NOCHECKPOSITION)
			SARG A 0 A_SetDamageType("PinkieRam")
			SARG A 0 A_Explode(30,50,XF_NOTMISSILE,0,50)
			SARG A 0 A_SetDamageType("Normal")
			SARG A 20 A_Quake(sqrt(user_accelerator),user_accelerator/2,0,256)
			Goto See
			
	Melee:
		SARG E 0 A_PlaySound("demon/melee",7,1.0,false,1.2)
		SARG F 4 A_FaceTarget
		SARG G 20 A_SargAttack
		Goto See
		
	Pain:
		SARG H 2 
		SARG H 2  A_Pain
		Goto See
		
	Death:
		"####" "#" 0  A_SpawnItemEx("SituationalPinata",0,0,32,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
		SARG I 8 
		SARG J 8 A_Scream
		SARG K 4
		SARG L 4 A_NoBlocking
		SARG M 4
		SARG N -1 
		Stop
	XDeath:
		"####" "#" 0 A_BossDeath
		Goto Super::XDeath
		
	Raise:
		SARG N 5
		SARG MLKJI 5
		Goto See
		
	//-------------------------
	// Regular chainsaw kill
	Death.ChainsawKill:
		TNT1 A 0 A_SpawnItemEx("D4PinataHealth",0,0,0,frandom(-4,4),frandom(-4,4),frandom(1,5),0,SXF_NOCHECKPOSITION)
		Goto XDeath
	//-------------------------
	// Chainsaw execution	
	Death.ChainsawPinata:	
		TNT1 A 0 A_GiveToTarget("SuccessfulExecutionToken",1)
		TNT1 A 0 A_SpawnItemEx("ChainsawExecutionPinata",0,0,32,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
		Goto XDeath
	//-------------------------		
	// BerserkKill
	Death.BerserkKill:
		TNT1 AA 0 A_SpawnItemEx("D4PinataHealth",0,0,0,frandom(-4,4),frandom(-4,4),frandom(1,5),0,SXF_NOCHECKPOSITION)
		Goto XDeath
		

	//------------------------------------------------------------------------
	// Start of Stagger / Glory Kill states
	//------------------------------------------------------------------------
	Wound:
		SARG H 0 A_SetUserVar(user_healto,60)
		Goto WoundStagger	// see MonsterBase.AED
		
	Death.GloryKill:
		SARG H 0
		Goto GloryKillGeneric // see MonsterBase.AED
		
	GloryEnd:	//depending on the monster, is what and how much will spawn
		TNT1 A 1 A_SpawnItemEx("GloryKillPinata",0,0,32,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS)
		Goto XDeath
	}
}

//================================================================================================================
//================================================================================================================
//
//	"No drops" version
//
//================================================================================================================
//================================================================================================================

Actor D4StridicusND : D4Stridicus
{
	//$Angled
	//$Category "D4T Monsters (No Drops)"
	//$Color 12
	//$Title "Demon"
	DropItem ""
}