actor EnvironmentGravity : CustomInventory
{//Gravity, Shade, Ground, Bearer
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("IsUnderWater",1,"UnderWater")
TNT1 A 0 A_SetGravity(0.8)
stop
UnderWater:
TNT1 A 0 A_SetGravity(0.25)
stop
}
}

actor LadderDisable : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("CANPUSHWALLS",0)
stop
}
}

actor LadderEnable : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("CANPUSHWALLS",1)
stop
}
}

actor NOGRAVITY_FlightP : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"No")
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
stop
No:
TNT1 A 0
stop
}
}

actor YesGravityPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
stop
}
}

actor NoGravityPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
stop
}
}

actor TeleDisable : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOTELEPORT",1)
TNT1 A 0 A_ChangeFlag("NOTELEOTHER",1)
stop
}
}

actor TeleEnable : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_ChangeFlag("NOTELEPORT",0)
TNT1 A 0 A_ChangeFlag("NOTELEOTHER",0)
stop
}
}

actor FlightDisable : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("FlightDisableFlag",1)
TNT1 A 0 SetPlayerProperty(0,0,3)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
stop
}
}

actor FlightDisableFlag : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor FlightEnable : CustomInventory
{//Gravityman, Freezeman, Coldman, RaThor
States
{
Pickup:
TNT1 A 0 A_TakeInventory("FlightDisableFlag",999)
//TNT1 A 0 A_JumpIfInventory("TrebleFlightFlag",1,"Fly")
TNT1 A 0 A_JumpIfInventory("PlayerPropertyFlight",1,"Fly")
//TNT1 A 0 A_JumpIfInventory("FlyCounter",1,"NoGrav")
stop
Fly:
TNT1 A 0 SetPlayerProperty(0,1,3)
stop
NoGrav:
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
stop
}
}

actor FlightDisableCheck : FlightEnable
{//ItemC, JetBuster, SniperJoe
States
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,3)
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"No")
goto Super::Pickup+1
No:
TNT1 A 0
stop
}
}


actor TornadoThrusterLOSC : TornadoThrusterLOS replaces TornadoThrusterLOS
{
states
{
Lift:
TNT1 A 0 A_GiveToTarget("TornadoThrusterC",1)
stop
}
}

actor TornadoThrusterC : TornadoThruster
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"No")
goto Super::Pickup
No:
TNT1 A 0
stop
}
}

actor ConcreteWatcherC : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("ConcreteGravityC",1)
TNT1 A 0 A_TakeFromTarget("ConcreteTime",1)
TNT1 A 0 A_JumpIfInTargetInventory("ConcreteTime",1,"Spawn")
TNT1 A 0 A_GiveToTarget("FlightEnable",1)
TNT1 A 0 A_TakeFromTarget("ConcreteVision",1)
stop
}
}

actor ConcreteGravityC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("FlightDisable",1)
TNT1 A 0 A_JumpIfInventory("CeilingFlag",1,"Gravityman")
TNT1 AAAAAA 0 A_SpawnItemEx("ConcreteFX",random(-20,20),random(-20,20),0)
TNT1 A 0 A_JumpIf(z-floorz<5,"End")
TNT1 A 0 ThrustThingZ(0,20,1,1)
stop
Gravityman:
TNT1 AAAAAA 0 A_SpawnItemEx("ConcreteFX",random(-20,20),random(-20,20),56)
TNT1 A 0 A_JumpIf(z-ceilingz+56>-5,"End")
TNT1 A 0 ThrustThingZ(0,20,0,1)
stop
End:
TNT1 A 0
stop
}
}
