actor Changeling : G2_Ghost
{
	speed 16
	height 56
	radius 16
	scale 0.03
	alpha 0.2
	renderstyle translucent
	+LOOKALLAROUND
	-FLOORCLIP
	+FLOORHUGGER
	States
	{
		Spawn:
			FRTH A 0 bright
			FRTH A 0 bright A_GiveInventory("G2_LightLover",1)
			FRTH A 0 bright ACS_NamedExecuteAlways("Player_SanityScript", 0, 0, 0, 0)
			FRTH A 0 bright A_Look
			FRTH A 21 bright A_Wander
			FRTH A 1 bright A_Chase
			loop
		See:
			FRTH A 1 bright A_JumpIfInventory("G2_Lightsources",2,"Shining")
			FRTH AAA 0 A_Chase
			FRTH A 1 A_Chase
			FRTH AAA 0 A_Chase
			FRTH A 1 A_Chase
			FRTH AAA 0 A_Chase
			
			loop
		Shining:
			FRTH A 0 bright
			FRTH A 0 bright A_PlaySound("Man/Enraged")
		ShiningLoop:
			FRTH A 0 bright A_FaceTarget
			FRTH AAAAAAA 10 bright A_Recoil(1)
			FRTH A 0 A_Jump(32,"ShiningForce")
			FRTH A 0 bright A_JumpIfInventory("G2_Lightsources",2,"Shining")
			goto See
		ShiningForce:
			FRTH A 1 bright A_TakeInventory("G2_LightLover",1)
			FRTH AAA 3 bright A_Wander
			FRTH A 1 bright A_GiveInventory("G2_LightLover",1)
			FRTH AAAAAAAAAAA 1 bright A_Chase
			FRTH A 0 bright A_JumpIfInventory("G2_Lightsources",2,"Shining")
			goto See
		/*See:
			FRTH AA 2 bright A_Wander
			FRTH A 0 A_SetTranslucent(1.0,0)
			FRTH A 0 A_LookEx(LOF_NOSOUNDCHECK,2000,4096,0,360,"Watch")
			FRTH AA 0 bright A_Chase
			loop

		Watch: //Watching player from large distance... just watching
			FRTH AAAAA 4 A_SetTranslucent(0.1,0)
			FRTH A 0 A_LookEx(LOF_NOSOUNDCHECK,1200,4096,0,360,"Watch")
			goto See
		PretendPlayer:
			FRTH A 0
			stop*/
			
	}
}



actor PlayerFakers {
	States {
		Spawn:
		TNT1 AAAAAAAAAAA 50 A_SpawnItemEx("PlayerFaker",0,0,150,0,0,-10)
		stop
	}
}

actor PlayerFaker {
	height 72
	radius 16
	monster
	+SOLID
	+SHOOTABLE
	+FRIENDLY
	+CLIENTSIDEONLY
	+THRUACTORS

	yscale 1.3
	xscale 1.22

	States {
		Spawn:
		PLAY A 0
		PLAY A 0 ACS_ExecuteAlways(552,0,0,0,0) 
		SpawnLoop:
		PLAY AAAA 1 A_Recoil(-1)
		PLAY A 0 A_SpawnItemEx("PFAKER_Sensor",0,0,32,50,0,0, 0, SXF_CLIENTSIDE)

		PLAY A 0 A_JumpIfInventory("PFAKER_Direction",1,1)
		PLAY A 0 A_GiveInventory("PFAKER_Direction",2)
		PLAY A 0 A_TakeInventory("PFAKER_Direction",1)

		//PLAY A 0 A_SetAngle(angle + random(-55,55))
		PLAY BBBB 1 A_Recoil(-1)
		PLAY A 0 A_JumpIfInventory("PFAKER_HitWall",1,"Turn")
		PLAY A 0 A_SetAngle(angle + random(-15,15))

		SpawnLoopCD:
		PLAY A 0 A_SpawnItemEx("PFAKER_Sensor",0,0,32,50,0,0, 0, SXF_CLIENTSIDE)
		PLAY CCCC 1 A_Recoil(-1)
		//PLAY A 0 A_SetAngle(angle + random(-55,55))
		PLAY A 0 A_JumpIfInventory("PFAKER_HitWall",1,"Turn2")
		PLAY DDDD 1 A_Recoil(-1)
		PLAY A 0 A_SetAngle(angle + random(-15,15))
		
		PLAY A 0 A_Jump(10,"StopMoving")
		PLAY A 0 A_Jump(5,"RetardedAction1","RetardedAction2", "RetardedAction3")
		loop
		Turn:
		PLAY A 0
		PLAY A 0 A_Jump(2,"RetardedAction1","RetardedAction2", "RetardedAction3")
		PLAY A 0 A_JumpIfInventory("PFAKER_Direction",1,2)
		PLAY A 0 A_SetAngle(angle + 50)
		PLAY A 0 A_Jump(256, 1)
		PLAY A 0 A_SetAngle(angle - 50)
		PLAY A 0 A_TakeInventory("PFAKER_HitWall")
		PLAY A 0 A_Jump(252,10)
		PLAY A 0 A_PlaySound("weapons/flashlight_switch")
		PLAY E 5
		PLAY A 0 A_PlaySound("weapons/flashlight_switch")
		PLAY E 5
		PLAY A 0 A_Jump(252,2)
		PLAY A 0 A_PlaySound("PlayerFaker/Taunt" ,CHAN_7)
		PLAY A 0
		PLAY A 0
		goto SpawnLoop
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		goto SpawnLoopCD
		Turn2:
		PLAY A 0
		PLAY A 0 A_Jump(2,"RetardedAction1","RetardedAction2", "RetardedAction3")
		PLAY A 0 A_JumpIfInventory("PFAKER_Direction",1,2)
		PLAY A 0 A_SetAngle(angle + 50)
		PLAY A 0 A_Jump(256, 1)
		PLAY A 0 A_SetAngle(angle - 50)
		PLAY A 0 A_TakeInventory("PFAKER_HitWall")
		PLAY A 0 A_Jump(250,10)
		PLAY A 0 A_PlaySound("weapons/flashlight_switch")
		PLAY E 5
		PLAY A 0 A_PlaySound("weapons/flashlight_switch")
		PLAY E 5
		goto SpawnLoop
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY A 0
		PLAY DDDD 1 //A_Recoil(-1)
		goto SpawnLoop


		StopMoving:
		PLAY ABCD 4
		PLAY A 0 A_JumpIf(momx + momy == 0,"Standing")
		loop
		Standing:
		PLAY A 5
		PLAY A 0 A_Jump(7,"RetardedAction1","RetardedAction2", "RetardedAction3")
		PLAY A 2 A_SetAngle(angle + random(-15,15))
		PLAY A 0 A_Jump(15,"SpawnLoop")
		loop

		RetardedAction1:
		PLAY E 0 A_SetAngle(angle + 36)
		PLAY E 5 A_PlaySound("weapons/flashlight_switch")
		PLAY E 0 A_PlaySound("PlayerFaker/Taunt" ,CHAN_7)
		PLAY E 0 A_Recoil(random(-1,1))
		PLAY E 0 A_Jump(10,"RetardedAction2", "RetardedAction3")
		PLAY E 0 A_Jump(20,"SpawnLoop")
		loop
		RetardedAction2:
		PLAY E 0 A_SetAngle(angle + random(-120,120))
		PLAY E 0 ThrustThingZ (0, 32, 0,0)
		PLAY E 5 A_PlaySound("weapons/flashlight_switch")
		PLAY E 0 A_SetAngle(angle + random(-120,120))
		PLAY E 5 A_PlaySound("weapons/flashlight_switch")
		PLAY E 0 A_SetAngle(angle + random(-120,120))
		PLAY E 5 A_PlaySound("weapons/flashlight_switch")
		PLAY E 0 A_SetAngle(angle + random(-120,120))
		PLAY E 5 A_PlaySound("weapons/flashlight_switch")
		PLAY E 0 A_SetAngle(angle + random(-120,120))
		PLAY E 5 A_PlaySound("weapons/flashlight_switch")
		PLAY E 0 A_Recoil(random(-1,1))
		PLAY E 0 A_Jump(10,"RetardedAction1", "RetardedAction3")
		PLAY E 0 A_Jump(20,"SpawnLoop")
		loop
		RetardedAction3:
		PDNC DCBAEFGHFEABC 2
		PDNC DCBAEFGHFEABC 2
		goto SpawnLoop
	}
}

actor PFAKER_Sensor {
	PROJECTILE
	height 8
	radius 15
	damage 0
	-NOBLOCKMONST
	+CLIENTSIDEONLY
	States {
		Spawn:
		TNT1 AAA 1
		stop
		Death:
		TNT1 A 1 A_GiveToTarget("PFAKER_HitWall",1)
		stop
	}
}

actor PFAKER_HitWall : Inventory {
	Inventory.Amount 1
	Inventory.MaxAmount 1
}

actor PFAKER_Direction : Inventory {
	Inventory.Amount 1
	Inventory.MaxAmount 2
}