#include "actors/wario/debris.txt"

// Debris
Actor BlockDebris 30500
{
	//$Category ZT2 - Toy Block Tower
	//$Title Wood Debris
	//$Sprite TBDLC0
	Radius 10
	Height 6
	-SOLID
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255,"Debris1","Debris2","Debris3","Debris4")
			Goto Debris1
			
		Debris1:
			TBDL C -1
			Stop
			
		Debris2:
			TBDL D -1
			Stop
			
		Debris3:
			TBDL E -1
			Stop
			
		Debris4:
			TBDL F -1
			Stop
	}
}

// Female Knight
Actor KnightFemale 30501
{
	//$Category ZT2 - Toy Block Tower
	//$Title Knight (Female)
	//$Sprite TBDLG0
	Radius 8
	Height 32
	+SOLID
	States
	{
		Spawn:
			TBDL G -1
			Stop
	}
}

ACTOR KnightMale : KnightFemale 30502
{
	//$Title Knight (Male)
	//$Sprite TBDLH0
	States
	{
		Spawn:
			TBDL H -1
			Stop
	}
}

ACTOR KnightGeneric : KnightFemale 30503
{
	//$Title Knight
	//$Sprite TBDLA0
	States
	{
		Spawn:
			TBDL A -1
			Stop
	}
}

ACTOR Keyzer : Inventory 30504
{
  Inventory.PickupMessage "You found Keyzer!"
  -INVENTORY.INVBAR
  Inventory.PickupSound "wario/keyzer"
  +FLOATBOB
  +NOGRAVITY
  //$Category ZT2 - Toy Block Tower
  //$Title Keyzer
  //$Sprite KYZRA0
  States
  {
  Spawn:
    KYZR ABCD 8
    Loop
  }
}

ACTOR ScienceGuy 30505
{
  Health 9999999
  Radius 16
  Height 40
  //$Category ZT2 - Toy Block Tower
  //$Title Aquatic Scienstein
  //$Sprite SCINA1
  Speed 1
  PainChance 200
  Monster
  -FLOORCLIP
  +FLOAT
  Gravity 0.75
  States
  {
  Spawn:
  See:
	SCIN AAAA 2 A_Wander
	SCIN A 0 A_Jump(32,"Drift")
	SCIN A 0 A_Jump(32,"SwimUp")
	SCIN A 0 A_JumpIf(waterlevel < 3,"ThrustDown")
	SCIN BB 2 A_Wander
	SCIN A 0 A_Jump(32,"SwimUp")
	SCIN A 0 A_JumpIf(waterlevel < 3,"ThrustDown")
	SCIN CC 2 A_Wander
	SCIN A 0 A_Jump(32,"SwimUp")
	SCIN A 0 A_JumpIf(waterlevel < 3,"ThrustDown")
	SCIN BB 2 A_Wander
	SCIN A 0 A_Jump(32,"SwimUp")
	SCIN A 0 A_JumpIf(waterlevel < 3,"ThrustDown")
    Loop
  Drift:
	SCIN A 2 thrustthingz(0, random(2,4), 1, 0)
	SCIN A 0 A_Jump(16,"See")
	Loop
  ThrustDown:
	TNT1 A 0 thrustthingz(0, random(8,16), 1, 0) 
	TNT1 A 0 A_Jump(32,"ThrustRandom")
	Goto See
  ThrustRandom:
	TNT1 A 0 ThrustThing(random(0,255),12,0,0)
	Goto See
  SwimUp:
	TNT1 A 0 ThrustThingZ(0, 12, 0, 1)
	SCIN B 1
	SCIN C 8
	SCIN B 1
	SCIN A 0 A_JumpIf(z-floorz > 64,"ThrustDown")
	Goto See
  Pain:
    SCIN A 1
    Goto See
  Death:
    TNT1 A 1
    Stop
  XDeath:
    TNT1 A 1
    Stop
  }
}

ACTOR BlockTriangle : KnightFemale 30506
{
	Radius 16
	Height 32
	//$Title Triangle
	//$Sprite TBDLB0
	States
	{
		Spawn:
			TBDL B -1
			Stop
	}
}

// -- == -- == -- == -- == -- //
// PIECE BOXES
// -- == -- == -- == -- == -- //

ACTOR PieceBoxTopLeft 30507
{
  //$Category ZT2 - Toy Block Tower
  //$Title Piecebox (TL)
  //$Sprite TBOXC0
  
  Health 1
  Mass 9999999999
  Radius 16
  Height 32
  +SOLID
  +SHOOTABLE
  +NOBLOOD
  +ACTIVATEMCROSS
  +DONTGIB
  +NOICEDEATH
  +OLDRADIUSDMG
  DeathSound "wario/fragmentopen"
  States
  {
  Spawn:
    TBOX C -1
    Stop
  Death:
	TNT1 A 0
	TNT1 A 0 A_UnsetSolid
	TBOX E 0 A_Scream
	TBOX E 4
	TBOX E 0 A_Jump(256,"SpawnPiece")
	Goto SpawnPiece
	
  SpawnPiece:
	TBOX E 0 A_SpawnItemEx("PieceTopLeft",0,0,32)
	Goto Flickering
	
  Flickering:
	TBOX E 16
	TBOX E 0 A_FadeOut(0.5)
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
	TBOX E 1
	TNT1 A 1
    Stop
  }
}

ACTOR PieceBoxTopRight : PieceBoxTopLeft 30508
{
	//$Title Piecebox (TR)
  //$Sprite TBOXB0
  
	States
	{
		Spawn:
		TBOX B -1
		Stop
		SpawnPiece:
		TBOX E 0 A_SpawnItemEx("PieceTopRight",0,0,32)
		Goto Super::Flickering
	}
}

ACTOR PieceBoxBottomLeft : PieceBoxTopLeft 30509
{
	//$Title Piecebox (BL)
  //$Sprite TBOXA0
  
	States
	{
		Spawn:
		TBOX A -1
		Stop
		SpawnPiece:
		TBOX E 0 A_SpawnItemEx("PieceBottomLeft",0,0,32)
		Goto Super::Flickering
	}
}

ACTOR PieceBoxBottomRight : PieceBoxTopLeft 30510
{
  //$Title Piecebox (BR)
  //$Sprite TBOXD0
  
	States
	{
		Spawn:
		TBOX D -1
		Stop
		SpawnPiece:
		TBOX E 0 A_SpawnItemEx("PieceBottomRight",0,0,32)
		Goto Super::Flickering
	}
}

// -- == -- == -- == -- == -- //
// ACTUAL PIECES
// -- == -- == -- == -- == -- //

ACTOR PieceTopLeft : Inventory
{
  Inventory.PickupMessage "You found a jewel fragment!"
  -INVENTORY.INVBAR
  Inventory.PickupSound "wario/getfragment"
  +FLOATBOB
  +NOGRAVITY
  States
  {
  Spawn:
    TPIC GH 4 bright
    Loop
  }
}

ACTOR PieceTopRight : PieceTopLeft
{
  States
  {
  Spawn:
    TPIC AB 4 bright
    Loop
  }
}

ACTOR PieceBottomLeft : PieceTopLeft
{
  States
  {
  Spawn:
    TPIC EF 4 bright
    Loop
  }
}

ACTOR PieceBottomRight : PieceTopLeft
{
  States
  {
  Spawn:
    TPIC CD 4 bright
    Loop
  }
}

ACTOR GameAndWatch 30511
{
	//$Category ZT2 - Toy Block Tower
  //$Title Item Shop Guy
  //$Sprite GMWTA0
	Radius 24
	Height 50
	Scale 1.5
	States
	{
		Spawn:
		GMWT ABCBABCBA 3
		GMWT DE 2
		GMWT FGHGFGHGF 3
		GMWT ED 2
		Loop
	}
}

actor BlueWarioJewel : CustomInventory 30512
{
  //$Category ZT2 - Toy Block Tower
  //$Title Blue Jewel
  //$Sprite TGEMA0
  Inventory.PickupMessage "Blue Jewel - $2"
  Inventory.PickupSound "wario/bluegem"
  +INVENTORY.ALWAYSPICKUP
  +FLOAT
  +NOGRAVITY
  states
  {
  Spawn:
    TGEM AABCD 6 bright
    Loop
  Pickup:
    TNT1 A 0 A_GiveInventory ("Money",2)
    stop
  }
}

actor RedWarioJewel : CustomInventory 30513
{
  //$Category ZT2 - Toy Block Tower
  //$Title Red Jewel
  //$Sprite TGEME0
  Inventory.PickupMessage "Red Jewel - $10"
  Inventory.PickupSound "wario/redgem"
  +INVENTORY.ALWAYSPICKUP
  +FLOAT
  +NOGRAVITY
  states
  {
  Spawn:
    TGEM EEFGH 6 bright
    Loop
  Pickup:
    TNT1 A 0 A_GiveInventory ("Money",10)
    stop
  }
}

ACTOR CDSecretBox 30514
{
  //$Category ZT2 - Toy Block Tower
  //$Title CD Box
  //$Sprite CDBXA0
  
  Health 1
  Mass 9999999999
  Radius 16
  Height 32
  +SOLID
  +SHOOTABLE
  +NOBLOOD
  +ACTIVATEMCROSS
  +DONTGIB
  +NOICEDEATH
  +OLDRADIUSDMG
  DeathSound "wario/fragmentopen"
  States
  {
  Spawn:
    CDBX A -1
    Stop
  Death:
	TNT1 A 0
	TNT1 A 0 A_UnsetSolid
	TBOX E 0 A_Scream
	CDBX BCD 3
	TBOX E 0 A_Jump(256,"SpawnPiece")
	Goto SpawnPiece
	
  SpawnPiece:
	TBOX E 0 A_SpawnItemEx("CDPickup",0,0,32)
	Goto Flickering
	
  Flickering:
	CDBX D 16
	TBOX E 0 A_FadeOut(0.5)
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
	CDBX D 1
	TNT1 A 1
    Stop
  }
}

ACTOR CDPickup : CustomInventory
{
  Inventory.PickupMessage "You found a CD!"
  +INVENTORY.INVBAR
  Inventory.Icon "CDBXF0"
  Inventory.PickupSound "wario/getcd"
  +FLOATBOB
  +NOGRAVITY
  States
  {
  Spawn:
    TPIC IJ 4 bright
    Loop
  Use:
	TNT1 A 0 ACS_Execute(10,0,0,0,0)
	Fail
  }
}

ACTOR BrokenLock
{
	+CLIENTSIDEONLY
	+THRUACTORS
	-FLOORCLIP
	+NOCLIP
	Scale 1.5
	Gravity 0.5
	States
	{
		Spawn:
		KHOL A 32
		KHOL A 0 A_FadeOut(0.5)
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		KHOL A 1
		TNT1 A 1
		Stop
	}
}