actor SexActor : SwitchingDecoration
{
	Damage 0
	Activation THINGSPEC_Switch|THINGSPEC_ThingTargets
	+USESPECIAL
	States
	{
	SexDone:
		"####" # 0 A_ChangeFlag("USESPECIAL", false)
		"####" # 0 A_ChangeFlag("SOLID", false)
		"####" # 0 A_ActiveSound
        "####" # 0 A_NoBlocking
		"####" # 0 A_CheckFlag("BOSSDEATH", 2, AAPTR_MASTER)
		"####" # 0 A_Jump(256, "Finish")
		"####" # 0 ACS_NamedExecuteAlways("RemoveMaster", 0)
		"####" # 0 A_Jump(256, "Finish")
	Active:
		// Prevent multiple sex activations
		"####" # 0 A_ChangeFlag("USESPECIAL", false)
		"####" # 0 ACS_NamedExecuteAlways("SexHandler", 0)
		"####" # 1
		wait
	TooLate:
		"####" # 0 A_ChangeFlag("USESPECIAL", false)
		"####" # 0 A_ChangeFlag("SOLID", false)
		"####" # 0 A_Pain
		"####" # 0 A_NoBlocking
		"####" # 0 A_CheckFlag("BOSSDEATH", 2, AAPTR_MASTER)
		"####" # 0 A_Jump(256, "Finish")
		"####" # 0 ACS_NamedExecuteAlways("RemoveMaster", 0)
		"####" # 0 A_Jump(256, "Finish")
	SexStart:
		goto ChangeState
	ChangeState:
		"####" # 0 ACS_NamedExecuteAlways("DoActionFromMonster", 0, 5)
		"####" # 1
		wait
	RandomScene:
		"####" # 0 ACS_NamedExecuteAlways("DoActionFromMonster", 0, 4)
		"####" # 1
		wait
	}
}

actor StaticSexActor : SexActor
{
	States
	{
	TooLate:
	SexDone:
		"####" # 0 A_ChangeFlag("USESPECIAL", true)
		"####" # 0 A_Jump(256, "Spawn")
	}
}

#include "decorate/sex/baroness.txt"
#include "decorate/sex/helldame.txt"
#include "decorate/sex/imp.txt"
#include "decorate/sex/pinky.txt"
#include "decorate/sex/lostsoul.txt"
#include "decorate/sex/cacodemoness.txt"
#include "decorate/sex/cyberdemoness.txt"
#include "decorate/sex/imp_chair.txt"
#include "decorate/sex/mancubus.txt"
