actor Plantman : SemiWeakArmorClass
{
Player.ScoreIcon "PLANMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Plantman"
player.soundclass "plantmanc"
player.startitem "PlantBarrierBoss"
player.startitem "UltimateAttackItem4", 1
player.startitem "UltSoundWatcherSpawn4"
player.startitem "Base112Ammo", 112
player.startitem "BaseAltFireAmmo", 112
player.startitem "IsFromMM6"
player.viewheight 51
player.forwardmove 0.8,0.8
player.sidemove 0.78,0.78
player.jumpz 12
States
{
Spawn:
PLAM B 0 
PLAM B 1 A_JumpIf(z-floorz>0, "Jumping")
Animation0:
PLAM A 0
PLAM A 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+2
See:
PLAM BBBCCCDDDEEE 1 A_JumpIf(z-floorz>0,"Jumping")
Goto Spawn+1
Jumping:
PLAM J 1 A_JumpIf(z-floorz<=0,"Spawn")
wait

Animation1:
Missile:
PLAM FFFFF 1 A_JumpIf(z-floorz>0,"JumpingMissile")
Animation2:
Missile2:
PLAM GGGGG 1 A_JumpIf(z-floorz>0,"JumpingMissile2")
Goto Spawn+2
JumpingMissile:
PLAM KKKKK 1 A_JumpIf(z-floorz<=0,"Missile")
JumpingMissile2:
PLAM LLLLL 1 A_JumpIf(z-floorz<=0,"Missile2")
Goto Jumping

Animation3:
SummonBarrier:
PLAM XXX 1 A_JumpIf(z-floorz>0,"JumpingSummonBarrier")
Goto Spawn+2
JumpingSummonBarrier:
PLAM MMM 1 A_JumpIf(z-floorz<=0,"SummonBarrier")
Goto Jumping

Animation4:
ThrowBarrier:
PLAM YYY 1 A_JumpIf(z-floorz>0,"JumpingThrowBarrier")
Goto Spawn+2
JumpingThrowBarrier:
PLAM NNN 1 A_JumpIf(z-floorz<=0,"ThrowBarrier")
Goto Jumping

Animation5:
PlantManPose:
PLAM XYXZZZZZZZ 5
Goto Spawn+2

ClassPain:
PLAM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
PLAM ] 0
PLAM ] 20 ACS_ExecuteAlways(999,0,0)
PLAM ] 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFX", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
PLAM H 0 A_JumpIfInTargetInventory("PlantBarrierWepM",1,2)
PLAM H 0 A_GiveToTarget("WeaponGetter")
PLAM H 0 A_GiveToTarget("PlantBarrierWepM")
goto ClassDeath
}
}


Actor PlantBarrierBoss : VCBaseWeapon
{
weapon.ammotype "Base112Ammo"
weapon.ammotype2 "BaseAltFireAmmo"
Obituary "$OB_PLANTMAN1"
States
{
Ready:
PBUS A 6 A_WeaponReady(WRF_NOFIRE)
Ready2:
TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",14,"Ready2.CanThirdFire")
PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
TNT1 A 0 A_GiveInventory("Base112Ammo",2) TNT1 A 0 A_GiveInventory("BaseAltFireAmmo",2)
loop
Ready2.CanThirdFire:
PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1") TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1") TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1") TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
TNT1 A 0 A_GiveInventory("Base112Ammo",2) TNT1 A 0 A_GiveInventory("BaseAltFireAmmo",2)
loop
Ready2.WithBarrier:
TNT1 A 0 A_JumpIfInventory("Base112Ammo",1,1) Goto Fire.Barrier PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,0)|WRF_NOSECONDARY)
TNT1 A 0 A_JumpIfInventory("Base112Ammo",1,1) Goto Fire.Barrier PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,0)|WRF_NOSECONDARY)
TNT1 A 0 A_JumpIfInventory("Base112Ammo",1,1) Goto Fire.Barrier PBUS A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,0)|WRF_NOSECONDARY)
TNT1 A 0 A_TakeInventory("Base112Ammo",2) TNT1 A 0 A_GiveInventory("BaseAltFireAmmo",2)
loop

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PBUS A 1 A_Lower
Loop
Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,824)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PBUS A 1 A_Raise
Loop

Fire:
TNT1 A 0 A_JumpIfInventory("IsBot",1,"Altfire.Ground")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Fire.Barrier")
TNT1 A 0 A_GiveInventory("PlantShieldHandler",1)
TNT1 A 0 A_GunFlash
PBUS A 1 Offset(0,37)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,42)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,47)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,52)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,57)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,62)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,67)ACS_NamedExecuteWithResult("VC_SetState",3)
PBUS A 1 Offset(0,72)ACS_NamedExecuteWithResult("VC_SetState",0)
PBUS A 1 Offset(0,67)
PBUS A 1 Offset(0,57)
PBUS A 1 Offset(0,52)
PBUS A 1 Offset(0,47)
PBUS A 1 Offset(0,42)
PBUS A 1 Offset(0,37)
Goto Ready2.WithBarrier
Fire.Barrier:
TNT1 A 0 A_GiveInventory("PlantM1Handler",1)
PBUS D 1 Offset(-40,62)ACS_NamedExecuteWithResult("VC_SetState",4)
PBUS D 1 Offset(-30,52)ACS_NamedExecuteWithResult("VC_SetState",4)
PBUS D 1 Offset(-20,32)ACS_NamedExecuteWithResult("VC_SetState",4)
PBUS D 1 Offset(-10,42)ACS_NamedExecuteWithResult("VC_SetState",4)
PBUS EEEEEEEEEEEEEEE 1 Offset(-1,32)ACS_NamedExecuteWithResult("VC_SetState",4)
PBUS D 1 Offset(-10,42)ACS_NamedExecuteWithResult("VC_SetState",0)
PBUS D 1 Offset(-20,52)
PBUS D 1 Offset(-30,62)
PBUS D 1 Offset(-40,62)
PBUS A 1 Offset(30,62)
PBUS A 1 Offset(20,52)
PBUS A 1 Offset(10,42)
Goto Ready2

Altfire:
TNT1 A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
TNT1 A 0 A_CheckFloor("Altfire.Ground")
TNT1 A 0 A_JumpIf(callACS("core_CheckFooting")== 1 || (abs(z-floorz) < 30 && momz <= 0),"Altfire.Ground")//A_JumpIf(z-floorz<8, "Altfire.Ground")
Goto Altfire.Air
Altfire.Ground:
TNT1 A 0 A_JumpIfInventory("PlantmanUltArmor",1,"Altfire.Ground.Ult")
TNT1 A 0 A_JumpIfInventory("PlantManTurretCount",3,"Altfire.NoAltfire")
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",28)
TNT1 A 0 A_GiveInventory("PlantManTurretCount",1)
TNT1 A 0 A_FireCustomMissile("PlantManPlantSeed",0,0,8,0)
Goto Altfire.Finish
Altfire.Ground.Ult:
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",28)
TNT1 A 0 A_FireCustomMissile("PlantManPlantSeedUlt",0,0,8,0)
Goto Altfire.Finish
Altfire.Air:
TNT1 A 0 A_JumpIfInventory("PlantmanUltArmor",1,"Altfire.Air.Ult")
TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",84,1)
Goto Ready2
TNT1 A 0 A_JumpIfInventory("FrenzyFlowerTimer",1,"Altfire.NoAltfire")
TNT1 A 0 A_GiveInventory("FrenzyFlowerTimer",175)
TNT1 A 0 A_SpawnItemEx("FrenzyFlowerWatcher",1)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",84)
TNT1 A 0 A_FireCustomMissile("FrenzyFlower",0,0,8,0)
Goto Altfire.Finish
Altfire.Air.Ult:
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",84)
TNT1 A 0 A_FireCustomMissile("FrenzyFlowerUlt",0,0,8,0)
Goto Altfire.Finish
Altfire.Finish:
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
PBUS BCCB 3
Altfire.NoAltfire:
PBUS A 3
Goto Ready2

User1:
TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",14,1)
Goto Ready2
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot", 12,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",  8,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",  4,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",  0,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot", -4,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot", -8,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",-12,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
PBUS BB 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1.Reverse")
Goto Ready2
User1.Reverse:
TNT1 A 0 A_JumpIfInventory("BaseAltFireAmmo",14,1)
Goto Ready2
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",-12,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot", -8,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot", -4,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",  0,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",  4,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot",  8,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon") TNT1 A 0 A_FireCustomMissile("PlantManShot", 12,0,8,0)
TNT1 A 0 A_TakeInventory("BaseAltFireAmmo",2) PBUS BBCC 1 A_GiveInventory("PlantBusterReady_CI",1)//ACS_NamedExecuteWithResult("VC_SetState",2)
PBUS BB 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
Goto Ready2

UltimateAttack:
PBUS AA 1
TNT1 A 0 A_GiveInventory("PlantManUltStartPickUp",1)
PBUS AAAAAAAAAAAAAAAAAA 1 A_Stop
TNT1 A 0 A_PlaySoundEx("mm6/ult","Auto")
TNT1 A 0 A_GiveInventory("TotalWhiteColor")
PBUS FFFF 1 A_Stop
TNT1 A 0 A_GiveInventory("PlantManColor")
PBUS AAAAAA 1 A_Stop
TNT1 A 0 A_GiveInventory("TotalWhiteColor")
PBUS FFFF 1 A_Stop
TNT1 A 0 A_GiveInventory("PlantManColor")
PBUS AAAAAA 1 A_Stop
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"TeamUltL")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"TeamUltW")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"TeamUltC")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"TeamUltK")
TNT1 A 0 A_GiveInventory("PlantManBulbPickUp",1)
TNT1 A 1 A_JumpIfInventory("PlantUltEnder",1,1)
wait
PBUS A 1 Offset(30,62)A_GiveInventory("PlantManUltEndPickUp",1)
PBUS A 1 Offset(25,57)
PBUS A 1 Offset(20,52)
PBUS A 1 Offset(15,47)
PBUS A 1 Offset(10,42)
PBUS A 1 Offset(5,37)
Goto Ready2
TeamUltL: PBUS B 0 A_FireCustomMissile("PlantManYasichiL",0,0,8,0) Goto TeamUltContinue
TeamUltW: PBUS B 0 A_FireCustomMissile("PlantManYasichiW",0,0,8,0) Goto TeamUltContinue
TeamUltC: PBUS B 0 A_FireCustomMissile("PlantManYasichiC",0,0,8,0) Goto TeamUltContinue
TeamUltK: PBUS B 0 A_FireCustomMissile("PlantManYasichiK",0,0,8,0) Goto TeamUltContinue
TeamUltContinue:
TNT1 A 0 A_GiveInventory("PlantManUltEndTeamPickUp",1)
PBUS BCBA 5
Goto Ready

Flash:
TNT1 A 0 A_SpawnItemEx("PlantBarrierDamager",0,0,32)
TNT1 A 0 A_SpawnItemEx("PlantBarrierBlocker",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 1 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Flash")
stop
}
}

actor PlantShieldHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("BaseCustomFlag1",1)
TNT1 A 0 A_GiveInventory("PlantmanDamageProtection",1)
TNT1 A 0 A_SpawnItemEx("PlantBarrierVisual")
TNT1 A 0 A_PlaySoundEx("weapon/blizzardattack","Weapon")
stop
}
}

actor PlantBarrierTrigger : Powerup
{
    powerup.duration 8
}

actor PlantBarrierVisual
{
Height 0
Radius 0
scale 2.5
+NOCLIP
-SOLID
+NOGRAVITY
+NOINTERACTION
+MISSILE
States
{
Spawn:
TNT1 A 0
Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 B 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 C 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 D 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 E 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 F 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 G 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 H 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 I 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 J 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 K 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 L 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 M 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 N 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 O 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 P 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 Q 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantBarrierTrigger",1,"Death") PLN2 R 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
loop
Death:
TNT1 A 0
stop
}
}

actor PlantBarrierBlocker
{
PROJECTILE
Height 68
Radius 34
health 99999
+NOBLOOD
Damage (0)
Species "PlantSentryBullet"
Damagefactor "Beam", 0.0
Damagefactor "FireTrap", 0.0
Damagefactor "FirePillar", 0.0
+THRUSPECIES
+SHOOTABLE
+NORADIUSDMG
-NOBLOCKMAP
+DONTREFLECT
+GHOST
+NOTARGETSWITCH
Speed 5
scale 2.5
painchance 256
mass 99999
+DONTRIP
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Pain:
TNT1 A 0 A_GiveToTarget("Health",1)
TNT1 A 0 A_PlaySoundEx("item/energyup","SoundSlot5")
TNT1 A 0 A_PlaySoundEx("item/protoreflect","SoundSlot6")
TNT1 A 0 A_SpawnItemEx("PlantHealFX",random(-64,64),random(-64,64),random(0,80),0,0,Random(1,10))
stop
}
}

actor PlantBarrierDamager : BasicExplosion
{
Obituary "$OB_PLANTMAN1"
Damagetype "PlantmanBarrier"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(4,85,0,0,85)//(9,85,0,0,85)
stop
}
}

Actor PlantmanBarrierProtect : PowerProtection
{
	Powerup.Duration 12
	DamageFactor "PlantmanBarrier", 0.0
}

actor PlantHealFX : BasicClientSide
{
Scale 4.0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PLN3 AABBAABBCCDDCCDDEEFFEEFF 1 A_ScaleVelocity(0.8)
stop
}
}

actor PlantM1Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("Base112Ammo",28)
TNT1 A 0 A_TakeInventory("BaseCustomFlag1",1)
TNT1 A 0 A_TakeInventory("PlantmanDamageProtection",1)
TNT1 A 0 A_GiveInventory("PlantBarrierTrigger",1)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
TNT1 A 0 A_FireCustomMissile("PlantBarrierRM",0,0,0,-12)
stop
}
}

//&Ze
actor PlantmanDamageProtection : PowerProtection
{
Powerup.Duration 0x7FFFFFFD
damagefactor "Normal", 0.75
}

actor PlantBarrierRM
{
PROJECTILE
+THRUSPECIES
Obituary "$OB_PLANTMAN1"
Damagetype "Plantman"
Species "PlantSentryBullet"
Damage(25)//(30)
height 32
radius 24
Speed 30
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
PLN2 ABCDEFGHIJKLMNOPQR 1
TNT1 A 0 A_ChangeFlag("ThruSpecies",False)
Goto Spawn+2
}
}

actor PlantManPlantSeed
{
PROJECTILE
-NOGRAVITY
+HITMASTER
+SKYEXPLODE
+THRUSPECIES
+BOUNCEONWALLS
+NOEXPLODEFLOOR
+BOUNCEONCEILINGS
+DONTREFLECT
Obituary "$OB_PLANTMAN2"
damagetype "Plantman"
Species "PlantSentryBullet"
BounceFactor 1.0
WallBounceFactor 1.0
Gravity 1.6
Damage (24)
Speed 18
Height 16
Radius 16
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 2
PLNT A 1 A_CheckFloor(1)
wait
PLNT A 2 ThrustThingZ(0,48,0,0)
PLNT A 1 A_CheckFloor(1)
wait
PLNT A 2 ThrustThingZ(0,24,0,0)
PLNT A 1 A_CheckFloor(1)
wait
PLNT BBCC 1 A_Stop
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",0,0,4,8,0,14,90)
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",0,0,4,8,0,14,-90)
TNT1 A 0 A_GiveInventory("TurretFlowerSpawn_CI")//TNT1 A 0 A_SpawnItemEx("TurretFlower",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_JumpIfInTargetInventory("LightTeamFlag",1,"HealthL")
TNT1 A 0 A_JumpIfInTargetInventory("WilyTeamFlag",1,"HealthW")
TNT1 A 0 A_JumpIfInTargetInventory("CossackTeamFlag",1,"HealthC")
TNT1 A 0 A_JumpIfInTargetInventory("KingTeamFlag",1,"HealthK")
stop
HealthL: TNT1 A 0 A_SpawnItemEx("SentryFlowerHealthL",0,0,0,0,0,14) stop
HealthW: TNT1 A 0 A_SpawnItemEx("SentryFlowerHealthW",0,0,0,0,0,14) stop
HealthC: TNT1 A 0 A_SpawnItemEx("SentryFlowerHealthC",0,0,0,0,0,14) stop
HealthK: TNT1 A 0 A_SpawnItemEx("SentryFlowerHealthK",0,0,0,0,0,14) stop
XDeath:
TNT1 A 0 A_JumpIfInventory("CanBeGrabBustered",1,"TeamCheck",AAPTR_MASTER)
Goto Death
Death:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_GiveToTarget("PlantManGroundCountHandler",1)
TNT1 A 1
stop
TeamCheck:
TNT1 A 0 A_JumpIfInTargetInventory("LightTeamFlag",1,"TeamCheckL")
TNT1 A 0 A_JumpIfInTargetInventory("WilyTeamFlag",1,"TeamCheckW")
TNT1 A 0 A_JumpIfInTargetInventory("CossackTeamFlag",1,"TeamCheckC")
TNT1 A 0 A_JumpIfInTargetInventory("KingTeamFlag",1,"TeamCheckK")
Goto MobileFlower
TeamCheckL: TNT1 A 0 A_JumpIfInventory("LightTeamFlag", 1, "TeamHealing", AAPTR_MASTER) Goto MobileFlower
TeamCheckW: TNT1 A 0 A_JumpIfInventory("WilyTeamFlag", 1, "TeamHealing", AAPTR_MASTER) Goto MobileFlower
TeamCheckC: TNT1 A 0 A_JumpIfInventory("CossackTeamFlag", 1, "TeamHealing", AAPTR_MASTER) Goto MobileFlower
TeamCheckK: TNT1 A 0 A_JumpIfInventory("KingTeamFlag", 1, "TeamHealing", AAPTR_MASTER) Goto MobileFlower
MobileFlower:
TNT1 A 0 A_SpawnItemEx("TurretFlowerMobile",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
stop
TeamHealing:
TNT1 A 0 A_PlaySoundEx("weapon/blizzardattack","SoundSlot5")
TNT1 A 0 A_JumpIfInventory("SeedLatchedOn",1,"Death",AAPTR_MASTER)
TNT1 A 0 A_GiveInventory("SeedLatchedOnHelper",1,AAPTR_MASTER)//TNT1 A 0 A_GiveInventory("SeedLatchedOn",1,AAPTR_MASTER)
//TNT1 A 0 A_GiveInventory("SeedLatchedOnCount",6,AAPTR_MASTER)
TNT1 A 0 A_SpawnItemEx("TurretFlowerMobile",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
Goto TeamHealingWaiting
TeamHealingWaiting:
TNT1 A 0 A_GiveInventory("PlantManHealPickUp3", 1, AAPTR_MASTER)
TNT1 A 0 A_SpawnItemEx("PlantHealFX",random(-64,64),random(-64,64),random(0,64),0,0,15)
TNT1 A 1 A_Warp(AAPTR_MASTER,0,0,0,0,24) TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 1 A_Warp(AAPTR_MASTER,0,0,0,0,24) TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 1 A_Warp(AAPTR_MASTER,0,0,0,0,24) TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 1 A_Warp(AAPTR_MASTER,0,0,0,0,24) TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 1 A_Warp(AAPTR_MASTER,0,0,0,0,24) TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",11,1)//A_JumpIfInventory("CutterFlag",42,1)
loop
Nope:
TNT1 A 0
stop
}
}

actor PlantManPlantSeedUlt : PlantManPlantSeed
{
States
{
Death:
TNT1 A 1
stop
MobileFlower:
TNT1 A 0 A_SpawnItemEx("TurretFlowerMobileFree",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
stop
TeamHealing:
TNT1 A 0 A_PlaySoundEx("weapon/blizzardattack","SoundSlot5")
TNT1 A 0 A_JumpIfInventory("SeedLatchedOn",1,"Death",AAPTR_MASTER)
TNT1 A 0 A_GiveInventory("SeedLatchedOnHelper",1,AAPTR_MASTER)//A_GiveInventory("SeedLatchedOn",1,AAPTR_MASTER)
TNT1 A 0 A_SpawnItemEx("TurretFlowerMobileFree",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
Goto TeamHealingWaiting
}
}

actor TurretFlowerSpawn_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInTargetInventory("PlantmanUltArmor",1,"Free")
TNT1 A 0 A_SpawnItemEx("TurretFlower",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
stop
Free:
TNT1 A 0 A_SpawnItemEx("TurretFlowerFree",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_GiveToTarget("PlantManUltBuildCooldownGiverAltfire")
stop
}
}

Actor PlantManUltBuildCooldownGiverAltfire : UltBuildCooldownGiver
{
	Powerup.Duration 210
}

actor PlantManGroundCountHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_TakeInventory("PlantManTurretCount",1)
stop
}
}

actor SeedLatchedOn : Powerup 
{
powerup.duration 210
}

actor SeedLatchedOnCount : Inventory
{
inventory.amount 1
inventory.maxamount 6
}

actor SeedLatchedOnHelper : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_GiveInventory("SeedLatchedOn",1)
TNT1 A 0 A_GiveInventory("SeedLatchedOnCount",6)
TNT1 A 0 ACS_NamedExecuteAlways("vc_plantthing",0)
stop
}
}

actor TurretFlower
{
+MISSILE
+THRUACTORS
-NOGRAVITY
+LOOKALLAROUND
+SEEKERMISSILE
+NOTARGETSWITCH
+DONTREFLECT
Gravity 1.0
height 24
radius 16
scale 2.5
reactiontime 210
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 0 A_PlaySoundEx("weapon/leafshield","SoundSlot5")
PLNT F 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT F 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT F 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT F 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT G 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT G 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT G 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT G 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT H 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT H 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT H 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT H 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT I 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT I 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT I 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
PLNT I 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope") TNT1 A 0 A_Countdown
FlowerLook:
TNT1 A 0 A_Countdown
TNT1 A 0 A_SeekerMissile(0, 0, SMF_LOOK, 256)
TNT1 A 0 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
PLNT J 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
loop
Missile:
PLNT K 1 A_FaceTracer(0,0) TNT1 A 0 A_Countdown
PLNT K 1 A_FaceTracer(0,0) TNT1 A 0 A_Countdown
PLNT K 1 A_FaceTracer(0,0) TNT1 A 0 A_Countdown
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Auto")
TNT1 A 0 A_CustomMissile("TurretBullet",32,0,0,CMF_AIMDIRECTION,pitch)
PLNT L 1 A_FaceTracer(0,0) TNT1 A 0 A_Countdown
PLNT L 1 A_FaceTracer(0,0) TNT1 A 0 A_Countdown
PLNT L 1 A_FaceTracer(0,0) TNT1 A 0 A_Countdown
PLNT JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 1 A_Countdown
TNT1 A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL)
Goto FlowerLook
Death:
TNT1 A 1 A_Jump(256,"Death2")
wait
Death2:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_GiveToTarget("PlantManGroundCountHandler",1)
TNT1 A 1
stop
Nope:
TNT1 A 0
stop
}
}

actor TurretFlowerFree : TurretFlower
{
States
{
Death2:
TNT1 A 1 A_SpawnItemEx("ExplosionEffect1")
stop
}
}

actor TurretFlowerMobile : TurretFlower
{
+NOGRAVITY
+NOINTERACTION
const int OFS = 55;
var int User_X;
var int User_Y;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1) TNT1 A 0 A_PlaySoundEx("weapon/leafshield", "Auto")
TNT1 A 0 A_setUserVar("User_X",Random(-40,40))
TNT1 A 0 A_setUserVar("User_Y",Random(-40,40))
PLNT B 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT B 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT C 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT C 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",User_X,User_Y,OFS,8,0,14,90)
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",User_X,User_Y,OFS,8,0,14,-90)
PLNT F 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT F 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT F 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT F 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT G 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT G 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT G 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT G 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT H 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT H 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT H 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT H 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT I 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT I 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT I 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
PLNT I 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
FlowerLook:
TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_GiveInventory("CantSeekOn",1,AAPTR_MASTER)
TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK, 256)
TNT1 A 0 A_GiveInventory("CantSeekOff",1,AAPTR_MASTER)
TNT1 A 0 A_JumpIfTargetInLOS("Missile", 0, JLOSF_PROJECTILE)
PLNT J 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loop
Missile:
TNT1 A 0 A_FaceTracer(0,0) PLNT K 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_FaceTracer(0,0) PLNT K 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown 
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_FaceTracer(0,0) PLNT K 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Auto")
TNT1 A 0 A_CustomMissile("TurretBullet",32,0,0,CMF_AIMDIRECTION,pitch)
TNT1 A 0 A_FaceTracer(0,0) PLNT L 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_FaceTracer(0,0) PLNT L 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_FaceTracer(0,0) PLNT L 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,angle,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)  TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER) TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_GiveInventory("CutterFlag",30)
FlowerStall:
TNT1 A 0 A_Countdown
TNT1 A 0 A_JumpIfInventory("IsDead",1,"Death",AAPTR_MASTER)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_TakeInventory("CutterFlag",1)
PLNT J 1 A_Warp(AAPTR_MASTER,User_X,User_Y,OFS,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("CutterFlag",1,"FlowerStall")
goto FlowerLook
Death:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Nope")
TNT1 A 0 A_GiveToTarget("PlantManGroundCountHandler",1)
TNT1 A 1
stop
}
}

actor TurretFlowerMobileFree : TurretFlowerMobile
{
States
{
Death:
TNT1 A 1 A_SpawnItemEx("ExplosionEffect1")
stop
}
}

actor TurretBullet : FastProjectile
{
PROJECTILE
+THRUSPECIES
Obituary "$OB_PLANTMAN3"
damagetype "PlantSentry"
Species "PlantSentryBullet"
Damage(8)
Speed 35
Height 24
Radius 16
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
PLNT M 1
wait
}
}

actor SentryFlowerHealthL : CustomInventory
{
+NOGRAVITY
+BOUNCEONCEILINGS
Scale 2.5
ReactionTime 210
States
{
Spawn:
TNT1 A 0
HBAL A 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL A 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL A 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL A 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL A 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL A 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL B 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL B 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL B 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL B 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL B 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
HBAL B 1 A_ScaleVelocity(0.8) TNT1 A 0 A_CountDown
loop
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Give")
Goto GiveLesser
Give:
TNT1 A 0 A_PlaySoundEx("item/energyup","Body")
TNT1 A 0 A_JumpIfInventory("PlantBarrierBoss",1,"GiveLess")
TNT1 AAAAAAAA 0 A_SpawnItemEx("PlantHealFX",Random(-24,24),Random(-24,24),Random(0,24),0,0,Random(1,10))
TNT1 A 0 A_GiveInventory("PlantManHealPickUp",1)
stop
GiveLess:
TNT1 AAAA 0 A_SpawnItemEx("PlantHealFX",Random(-24,24),Random(-24,24),Random(0,24),0,0,Random(1,10))
TNT1 A 0 A_GiveInventory("PlantManHealPickUp2",1)
stop
GiveLesser:
TNT1 AA 0 A_PlaySoundEx("weapon/DudHyperBomb","Body")
TNT1 A 0 A_SpawnItemEx("PlantHealFX",Random(-24,24),Random(-24,24),Random(0,24),0,0,Random(1,10))
TNT1 A 0 A_GiveInventory("PlantManHealPickUp3",1)
stop
Death:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
HBAL AAAAAA 1 A_FadeOut(0.95)
HBAL BBBBBB 1 A_FadeOut(0.95)
HBAL AAAAAA 1 A_FadeOut(0.95)
HBAL BBBBBB 1 A_FadeOut(0.95)
stop
}
}

actor SentryFlowerHealthW : SentryFlowerHealthL
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Give")
Goto GiveLesser
}
}

actor SentryFlowerHealthC : SentryFlowerHealthL
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Give")
Goto GiveLesser
}
}

actor SentryFlowerHealthK : SentryFlowerHealthL
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Give")
Goto GiveLesser
}
}

actor PlantManHealPickUp : CustomInventory
{
reactiontime 35
Scale 2.0
States
{
Spawn:
TNT1 A 1 A_Countdown
wait
Pickup:
TNT1 A 0 A_GiveInventory("Health",11)
stop
Death:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
TNT1 A 10
TNT1 A 1 A_Fadeout
wait
}
}

actor PlantManHealPickUp2 : PlantManHealPickUp
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("Health",11)
stop
}
}

actor PlantManHealPickUp3 : PlantManHealPickUp
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("Health",1)
stop
}
}

actor FrenzyFlower
{
PROJECTILE
+RIPPER
+SKYEXPLODE
+HEXENBOUNCE
Obituary "$OB_PLANTMAN4"
Damagetype "Plantman"
WallBounceFactor 1.0
BounceFactor 1.0
Damage (0)
speed 25
Height 24
Radius 12
scale 2.5
reactiontime 175
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
PLNT A 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT A 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT A 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT A 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT B 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT B 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT C 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
PLNT C 1 A_Explode(1,16,0,0,16) TNT1 A 0 A_CountDown
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",0,0,0,0,8,14,0)
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",0,0,0,0,8,14,180)
PLNT N 1 A_Explode(3,32,0,0,32) TNT1 A 0 A_CountDown
PLNT N 1 A_Explode(3,32,0,0,32) TNT1 A 0 A_CountDown
PLNT O 1 A_Explode(3,32,0,0,32) TNT1 A 0 A_CountDown
PLNT O 1 A_Explode(3,32,0,0,32) TNT1 A 0 A_CountDown
PLNT P 1 A_Explode(3,32,0,0,32) TNT1 A 0 A_CountDown
PLNT P 1 A_Explode(3,32,0,0,32) TNT1 A 0 A_CountDown
Spawn2:
TNT1 A 0 A_PlaySoundEx("weapon/gyrofly","Weapon") 
PLNT Q 1 A_Explode(5,48,0,0,48) TNT1 A 0 A_CountDown
PLNT R 1 A_Explode(5,48,0,0,48) TNT1 A 0 A_CountDown
PLNT S 1 A_Explode(5,48,0,0,48) TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1 A_SpawnItemEx("ExplosionEffect1")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Nope")
TNT1 A 0 A_GiveToTarget("PlantManGroundCountHandler",1)
TNT1 A 1
stop
Nope:
TNT1 A 0
stop
}
}

actor FrenzyFlowerUlt : FrenzyFlower
{
States
{
Death:
TNT1 A 0 A_SpawnItemEx("ExplosionEffect1")
stop
}
}

actor PlantManSeedShell
{
PROJECTILE
-NOGRAVITY
+THRUACTORS
gravity 1.6
Radius 8
Height 8
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
PLNT EED 1
wait
}
}

actor PlantManShot
{
PROJECTILE
+THRUSPECIES
Obituary "$OB_PLANTMAN5"
damagetype "Plantman"
Species "PlantSentryBullet"
Scale 2.5
Damage(5)
Speed 50//40
radius 8
height 8
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
TNT1 A 1
6ULT X 1 A_ChangeFlag("THRUSPECIES",False)
wait
}
}

actor PlantManYasichiL
{
PROJECTILE
-NOGRAVITY
+HITTRACER
+THRUACTORS
+SKYEXPLODE
+BOUNCEONWALLS
+NOEXPLODEFLOOR
+BOUNCEONCEILINGS
WallBounceFactor 1.0
Damage (0)
speed 30
Radius 16
Height 24
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 ThrustThingZ(0,16,0,1)
Spawn2:
PLNT AAA 1 A_CheckFloor("Yasichi")
TNT1 A 0 A_SpawnItemEx("UltSparkle",random(0,64),0,random(-32,32),0,0,0,random(0,360))
goto Spawn+3
Yasichi:
TNT1 A 0 A_ChangeFlag("THRUACTORS",False)
PLNT BBCC 1 A_Stop
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",0,0,8,0,8,14,0)
TNT1 A 0 A_SpawnItemEx("PlantManSeedShell",0,0,8,0,8,14,180)
YasichiWait:
YASH C 4 A_SpawnItemEx("PlantHealFX",random(0,48),0,random(0,32),0,0,random(2,8),random(0,359))
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",30,"GiveBack")
TNT1 A 0 A_JumpIfCloser(48,"YasichiGive")
loop
YasichiGive:
TNT1 A 0 A_GiveInventory("PlantManBulbPickUp",1)
stop
GiveBack:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",True)
TNT1 A 0 A_PlaySoundEx("misc/teleport2","Auto")
TNT1 A 0 A_TakeFromTarget("PowerUltBuildCooldown",1)
TNT1 A 0 A_GiveToTarget("MediumLongUltimateAmmo",400)
TFOG ABC 2
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"Next",AAPTR_TRACER)
Goto GiveBack
Next:
TNT1 A 0 A_GiveInventory("PlantManBulbPickUp",1,AAPTR_TRACER)
TNT1 A 0 A_GiveToTarget("PlantBulbInstantBuffPickUp",1)
stop
}
}

actor PlantManYasichiW : PlantManYasichiL
{
States
{
Crash:
XDeath:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"Next",AAPTR_TRACER)
Goto GiveBack
}
}

actor PlantManYasichiC : PlantManYasichiL
{
States
{
Crash:
XDeath:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"Next",AAPTR_TRACER)
Goto GiveBack
}
}

actor PlantManYasichiK : PlantManYasichiL
{
States
{
Crash:
XDeath:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"Next",AAPTR_TRACER)
Goto GiveBack
}
}

actor PlantManBulbPickUp : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("PlantManBulbWarper")
stop
}
}

actor PlantManBulbWarper
{
Height 8
Radius 8
scale 2.5
+NOCLIP
-SOLID
+NOGRAVITY
+NOINTERACTION
+MISSILE
+DONTREFLECT
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_PlaySoundEx("weapon/shad_poof","SoundSlot6")
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowPoof2",random(-120,120),0,random(-20,60),0,0,0,random(0,359))
Spawn2:
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT T 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT T 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT U 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT U 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT V 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT V 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT W 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT W 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT X 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT X 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT Y 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) PLNT Y 1 A_GiveToTarget("PlantBulbActivatePickUp",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",9,1)
loop
TNT1 A 0 A_PlaySoundEx("misc/partyball","SoundSlot5")
TNT1 A 0 A_PlaySoundEx("weapon/shad_poof","SoundSlot6")
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("PlantBulbLeafFX",0,0,0,random(-20,20),random(-20,20),random(-20,20),random(0,360))
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("ShadowPoof2",random(-120,120),0,random(-20,60),0,0,0,random(0,359))
TNT1 A 1 A_GiveToTarget("PlantBulbDeactivatePickUp",1)
Death:
TNT1 A 0
stop
}
}

actor PlantBulbActivatePickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Stop
TNT1 A 0 A_SetTranslucent(0.0,0)
TNT1 A 0 SetPlayerProperty(0,1,3)
TNT1 A 0 SetPlayerProperty(0,1,4)
TNT1 A 0 A_GiveInventory("Health",2)
TNT1 A 0 A_PlaySound("item/energyup",1)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
TNT1 A 0 A_SpawnItemEx("PlantHealFX",random(-96,96),random(-96,96),random(0,96),0,0,10)
stop
}
}

actor PlantBulbDeactivatePickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SetTranslucent(1.0,0)
TNT1 A 0 SetPlayerProperty(0,0,3)
TNT1 A 0 SetPlayerProperty(0,0,4)
TNT1 A 0 ThrustThingZ(0, 60, 0, 1)
TNT1 A 0 A_TakeInventory("NoSpeed",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_GiveInventory("PlantUltEnder",1)
TNT1 A 0 A_JumpIfInventory("PlantBarrierBoss",1,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_GiveInventory("PlantBulbExtraStatsPickUp",1)
stop
}
}

actor PlantBulbExtraStatsPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("HalfDamageProtection")
TNT1 A 0 A_GiveInventory("PlantmanUltArmor",1050)
TNT1 A 0 A_SpawnItemEx("PlantManArmorWatcher")
TNT1 A 0 A_SpawnItemEx("PlantManArmorFXWatcher")
stop
}
}

actor PlantBulbInstantBuffPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("misc/partyball","SoundSlot5")
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("PlantBulbLeafFX",0,0,0,random(-20,20),random(-20,20),random(-20,20),random(0,360))
TNT1 A 0 A_GiveInventory("HalfDamageProtection")
TNT1 A 0 A_GiveInventory("PlantmanUltArmor",1050)
TNT1 A 0 A_SpawnItemEx("PlantManArmorWatcher")
TNT1 A 0 A_SpawnItemEx("PlantManArmorFXWatcher")
stop
}
}

actor PlantBulbLeafFX : BasicClientSide
{
Translation "192:192=216:216", "198:198=41:41"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
PLNT Z 20
stop
}
}

actor PlantHealedFX : BasicClientSide
{
Translation "192:192=104:104", "198:198=60:60"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode", 1)
PLNT ZZZZZZZZZZZZZZZZZZZZ 1 A_FadeOut(0.05)
stop
}
}

actor FrenzyFlowerWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 1 A_TakeFromTarget("FrenzyFlowerTimer",1)
TNT1 A 0 A_JumpIfInTargetInventory("FrenzyFlowerTimer",1,"Spawn")
Death:
TNT1 A 1
stop
}
}

actor PlantManArmorWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_TakeFromTarget("PlantmanUltArmor",1)
TNT1 A 0 A_GiveToTarget("BaseAltFireAmmo",4) TNT1 A 0 A_GiveToTarget("PlantManUltBuildCooldownGiver",1)
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_TakeFromTarget("PlantmanUltArmor",1)
TNT1 A 0 A_GiveToTarget("BaseAltFireAmmo",4) TNT1 A 0 A_GiveToTarget("PlantManUltBuildCooldownGiver",1)
TNT1 A 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION) TNT1 A 0 A_TakeFromTarget("PlantmanUltArmor",1)
TNT1 A 0 A_GiveToTarget("BaseAltFireAmmo",4) TNT1 A 0 A_GiveToTarget("PlantManUltBuildCooldownGiver",1)
TNT1 AAA 0 A_JumpIfInTargetInventory("PlantmanUltArmor",1,"Spawn")
Death:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("EndPlantBuffsPickUp",1)
stop
}
}

actor PlantManArmorFXWatcher : PlantManArmorWatcher
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("IsDead",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PlantUltTrigger",1,"Death")
TNT1 AAA 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("PlantHealedFX",random(-64,64),random(-64,64),random(0,64))
loop
Death:
TNT1 A 0
TNT1 A 1
stop
}
}

actor EndPlantBuffsPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 A_TakeInventory("HalfDamageProtection",1)
TNT1 A 0 A_GiveInventory("PlantUltTrigger",5)
stop
}
}

actor PlantUltTrigger : Powerup 
{
powerup.duration 5
}

actor PlantManColor : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
+INVENTORY.AUTOACTIVATE
+COUNTITEM
+INVBAR
states
{
Pickup:
TNT1 A 1 ACS_ExecuteAlways(991,0,824,0)
stop
}
}

actor PlantUltEnder : Powerup 
{
powerup.duration 5
}
 
actor PlantManFrenzyCount : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor PlantManTurretCount : Inventory
{
inventory.amount 1
inventory.maxamount 3
}

actor FrenzyFlowerTimer : Inventory
{
inventory.amount 1
inventory.maxamount 175
}

actor PlantmanUltArmor : Inventory
{
inventory.amount 1
inventory.maxamount 1050
}

actor PlantManAirCountHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 1 A_TakeInventory("PlantManFrenzyCount",1)
stop
}
}

actor CantSeekOn : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("CANTSEEK",true)
stop
}
}

actor CantSeekOff : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_ChangeFlag("CANTSEEK",false)
stop
}
}


actor PlantManUltStartPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("NoSpeed",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",True)
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",5)
TNT1 A 0 A_SpawnItemEx("MM6UltFXSpawner",0,0,28)
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",400)
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,56)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
stop
}
}

actor PlantManUltEndPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("PlantmanUltArmor",1050)
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 A_SpawnItemEx("PlantManArmorWatcher")
TNT1 A 0 A_SpawnItemEx("PlantManArmorFXWatcher")
TNT1 A 0 A_GiveInventory("HalfDamageProtection")
stop
}
}

actor PlantManUltEndTeamPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("NoSpeed",999)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 A_ChangeFlag("INVULNERABLE",False)
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
TNT1 A 0 A_PlaySoundEx("weapon/enemyweapon","Weapon")
stop
}
}


Actor PlantManUltBuildCooldownGiver : UltBuildCooldownGiver
{
	Powerup.Duration -1
}



actor PlantBusterReady_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",2,28)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,28))
stop
}
}
