//	Mobility recoded
Actor Sheepman : SemiWeakArmorClass
{
Player.ScoreIcon "SHEEMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "SemiWeakArmor"
player.soundclass "SheepmanC"
player.displayname "Sheepman"
player.jumpz 16
Player.ViewHeight 33
player.startitem "ThunderWoolBoss"
player.startitem "Base28Ammo", 28
player.startitem "Base56Ammo", 56
player.startitem "UltimateAttackItem2", 1
player.startitem "UltSoundWatcherSpawn2"
player.startitem "IsFromMM10"
States
{
Spawn:
SHPM A 0
SHPM B 1 A_JumpIf(z-floorz>0, "Jumping")
SHPM A 0 A_JumpIf(z-floorz>0, "Jumping")
SHPM A 1 A_JumpIfInventory("BaseCustomFlag1",1,"CloudIdle")
Goto Spawn+2

See:
SHPM B 0 A_JumpIfInventory("BaseCustomFlag1",1,"CloudIdle")
SHPM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn

Jumping:
SHPM J 1 A_JumpIf(z-floorz<=0, "Land")
wait

Land:
SHPM III 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn+2

Missile:
SHPM F 0 A_JumpIfInventory("BaseCustomFlag1",1,"CloudFire")
SHPM FIFIGGGGGGG 1 A_JumpIfInventory("BaseCustomFlag1",1,"CloudFire")
Goto Spawn+1

Animation1:
SHP2 EFGIEFGI 1
goto Spawn

Animation2:
SHPM K 24

Animation3:
SHP2 JJAB 4
goto CloudIdle

Animation4:
SHP2 J 4
SHPM K 8
goto Spawn

Animation5:
SHPM J 4 

A5Loop:
SHPM J 1 A_JumpIf(z-floorz<=0, "Spawn")
wait

CloudFire:
SHP2 CCAADDBBEFGIEFGIEFGIEFGIEFGIEFGIEFGI 1
goto CloudIdle

CloudIdle:
SHP2 AB 4
loop

Pain.TimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
SHPM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1

ClassPain:
SHPM H 0 A_JumpIfInventory("BaseCustomFlag1",1,"SheepCloudPain")
SHPM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
SHPM H 0 A_JumpIfInventory("BaseCustomFlag1",1,"CloudIdle")
Goto Spawn+1
SheepCloudPain:
SHP2 HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
SHP2 H 0 A_JumpIfInventory("BaseCustomFlag1",1,"CloudIdle")
Goto Spawn+1

ClassDeath:
SHPM H 20 ACS_ExecuteAlways(999,0,0)
SHPM H 0 A_PlayerScream
NOFX A 0 A_SpawnItemEx("FakeDeathFXMM9",0,0,32)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
SHPM A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("ThunderWoolWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("ThunderWoolWepM")
goto ClassDeath
}
}

actor ThunderWoolBoss : VCBaseWeapon
{
weapon.ammotype "Base28Ammo"
weapon.ammouse 1
weapon.ammotype2 "Base56Ammo"
weapon.ammouse2 3 //0
Obituary "$OB_SHEEPMAN1"
States
{
Ready:
TNT1 A 0
SHEP A 1 A_WeaponReady SHEP A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SHEP A 1 A_WeaponReady SHEP A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SHEP A 1 A_WeaponReady SHEP A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
SHEP A 0 A_GiveInventory("Base28Ammo",1)
SHEP A 0 A_GiveInventory("Base56Ammo",1)
goto Ready

Ready.Ult:
SHEP J 1 A_WeaponReady(WRF_NOSECONDARY)
SHEP J 0 A_JumpIfInventory("BaseCustomFlag1",1,"Ready.Ult")
goto UltFinish

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SHEP A 1 A_Lower
Loop

Select:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(991,0,1904)
SelectX:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SHEP A 1 A_Raise
Loop

Fire:
SHEP A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Fire3")
SHEP A 0 A_JumpIfNoAmmo("NoAmmo")
SHEP B 2
SHEP B 0 A_GiveInventory("Base56Ammo",2)
SHEP A 0 A_PlaySound("weapon/sheepfire","Weapon")
SHEP A 0 A_FireCustomMissile("SheepManShock",0,1,0,-12)
SHEP CDCDCDCDCDCDCBA 1
SHEP A 1 A_Refire("Fire2")
SHEP A 0 A_ClearRefire
goto Ready+1

Fire2:
SHEP A 0 A_JumpIfNoAmmo("NoAmmo")
SHEP B 2
SHEP B 0 A_GiveInventory("Base56Ammo",2)
SHEP A 0 A_PlaySound("weapon/sheepfire","Weapon")
SHEP A 0 A_FireCustomMissile("SheepManShock2",0,1,0,-12)
SHEP CDCDCDCDCDCDCBA 1
SHEP A 1 A_Refire("Fire")
SHEP A 0 A_ClearRefire
Goto Ready+1

Fire3:
SHEP A 0 A_GiveInventory("SheepCloudAnim")
SHEP JKLM 2
TNT1 A 0 A_PlaySoundEx("weapon/thunderwoolelec", "Weapon")
TNT1 A 0 A_SpawnItemEx("SheepBolt2",0,0,-32,0,0,-40)
TNT1 A 0 A_SpawnItemEx("SheepBolt2",120,0,-32,0,0,-40)
TNT1 A 0 A_SpawnItemEx("SheepBolt2",120,0,-32,0,0,-40,90)
TNT1 A 0 A_SpawnItemEx("SheepBolt2",120,0,-32,0,0,-40,-90)
SHEP A 0 A_GiveInventory("WeaponCharge",1)
SHEP E 0 SetPlayerProperty(0,1,4)
SHEP NOPONOPONOPONOPONOPONOPONOPO 1 A_Stop
SHEP E 0 SetPlayerProperty(0,0,4)
SHEP A 0 A_JumpIfInventory("WeaponCharge",2,"UltFinish")
goto Ready.Ult

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
SHEP A 0 A_JumpIfInventory("Base56Ammo",14,"Altfire.Real")
Goto NoAmmo

Altfire.Real:
SHEP A 0 A_CheckFloor("Altfire.Ground")
SHEP A 0 A_JumpIf(callACS("core_CheckFooting")== 1 || (abs(z-floorz) < 30 && momz <= 0),"Altfire.Ground")//A_CheckFloor("Altfire.Ground")
SHEP A 0 A_GiveInventory("SheepmanAirAltStart_CI",1)
SHEP NOPONOPO 1
SHEP A 0 A_GiveInventory("GravityRestore")
goto Ready

Altfire.Ground:
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",5)
SHEP A 0 A_GiveInventory("SheepmanAltStart_CI",1)
SHEP AA 1 Offset(0,43) A_SpawnItemEx("SheepAltHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
SHEP AA 1 Offset(0,55) A_SpawnItemEx("SheepAltHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
SHEP AA 1 Offset(0,67) A_SpawnItemEx("SheepAltHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
SHEP A 0 A_JumpIfInventory("IsUnderWater",1,"Altfire.GroundLoopWater")

Altfire.GroundLoop:
//SHEP A 0 A_TakeInventory("JumpCancler",99)
SHEP A 0 A_SpawnItemEx("SheepAltHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
SHEP A 1 A_CheckFloor("Altfire.GroundEnd")
Loop

Altfire.GroundLoopWater:
//SHEP A 0 A_TakeInventory("JumpCancler",99)
SHEP A 0 A_SpawnItemEx("SheepAltHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 ThrustThingZ(0,7,1,1)
SHEP A 1 A_CheckFloor("Altfire.GroundEnd")
Loop

Altfire.GroundEnd:
SHEP A 1 Offset(0,87) A_GiveInventory("SheepmanAltEnd_CI",1)
SHEP A 1
SHEP A 1 Offset(0,67)
SHEP A 1 Offset(0,55)
SHEP A 1 Offset(0,43)
SHEP A 6 A_WeaponReady(WRF_NOFIRE)
Goto Ready+1

UltimateAttack:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,97)
TNT1 A 0 A_GiveInventory("UltBuildCooldownGiver",1)
FIRB C 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",2)
SHEP B 24 ThrustThingZ(0,90,0,0)
SHEP A 0 A_PlaySoundEx("weapon/thunderwool","Weapon")
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",3)
SHEP C 0 A_SpawnItemEx("SheepWool1",0,0,0,16,0,0,0,1)
SHEP C 0 A_SpawnItemEx("SheepWool2",0,0,0,16,0,0,90,1)
SHEP C 0 A_SpawnItemEx("SheepWool3",0,0,0,16,0,0,-90,1)
SHEP E 0 SetPlayerProperty(0,1,4)
SHEP EEFFGGHHIIJJ 1 A_Stop
SHEP E 0 SetPlayerProperty(0,0,4)
SHEP E 0 SetPlayerProperty(0,1,3)
TNT1 A 0 A_TakeInventory("UltAttackFlag")
SHEP C 0 A_GiveInventory("BaseCustomFlag1")
PUMH M 0 A_GunFlash
goto Ready.Ult

UltFinish:
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",4)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SheepCloudFX",24,0,random(0,36),4,0,random(-4,4),random(0,359),1)
PUMH L 0 A_GiveInventory("SheepEndAnim")
SHEP JJIIHHGGFFEE 1 A_Stop
SHEP J 0 A_TakeInventory("WeaponCharge",9)
SHEP A 0
SHEP E 0 SetPlayerProperty(0,0,3)
SHEP C 0 A_TakeInventory("BaseCustomFlag1")
PUMH M 0 A_TakeInventory("MediumShortUltimateAmmo",200)
goto Ready

Flash:
TNT1 A 0 A_TakeInventory("MediumShortUltimateAmmo",2)
TNT1 AAA 1 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("MediumShortUltimateAmmo",1,"Flash")
goto FlashStop

FlashStop:
TNT1 A 175 A_TakeInventory("BaseCustomFlag1")
TNT1 A 0 A_TakeInventory("PowerUltBuildCooldown")
stop

NoAmmo:
SHEP A 3
SHEP A 0 A_GiveInventory("Base28Ammo",1)
SHEP A 0 A_GiveInventory("Base56Ammo",1)
goto Ready
}
}

//yes I salvaged ric sheepman, why'd you ask
// -binary

Actor SheepManShock
{
PROJECTILE
Obituary "$OB_SHEEPMAN2"
Radius 16
Height 16
Damage (5)
Scale 2.5
Speed 35
DamageType "Sheepman"
+RIPPER
states {
spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
loopit:
TWOR ABCD 1 A_Weave(8,0,6,0)
loop
Death:
TNT1 A 0
stop
}
}

Actor SheepManShock2 : SheepManShock
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
loopit:
TWOR ABCD 1 A_Weave(-8,0,6,0)
loop
}
}

Actor SheepmanAltStart_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_PlaySoundEx("weapon/sheepjump", "Auto") //Temp
TNT1 A 0 A_PlaySoundEx("weapon/sheephop", "Weapon")
TNT1 A 0 A_TakeInventory("Base56Ammo",14,1)
TNT1 A 0 ThrustThingZ(0,25,0,0)
TNT1 A 0 A_Recoil(CallACS("VC_XYMob",-20))
HAZH D 0 A_TakeInventory("UnSolid",1)
HAZH D 0 A_ChangeFlag("SOLID",0)
//HAZH D 0 A_ChangeFlag("PICKUP",0) //?
stop
}
}

Actor SheepmanAltEnd_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/sheepshockland", "Voice")
TNT1 A 0 A_SpawnItemEx("SheepManShockGround",8,0,3,35,0,0) //I think the pattern of these could be changed, or something else to make them a bit more useful
TNT1 A 0 A_SpawnItemEx("SheepManShockGround",-8,0,3,-35,0,0)
TNT1 A 0 A_SpawnItemEx("SheepManShockGround",0,8,3,0,35,0)
TNT1 A 0 A_SpawnItemEx("SheepManShockGround",0,-8,3,0,-35,0)
TNT1 A 0 A_Quake(3,4,0,256)
TNT1 A 0 A_SpawnItemEx("BassDashDust")
DRIA A 0 A_SpawnItemEx("ReSolidifier")
//TNT1 A 0 A_ChangeFlag("PICKUP",1) //Again, I dont think this is neccesary?
stop
}
}

Actor SheepmanAirAltStart_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 0 A_SetGravity(0.4)
TNT1 A 0 A_TakeInventory("Base56Ammo",14,1)
TNT1 A 0 A_PlaySoundEx("weapon/thunderwoolelec", "Weapon")
TNT1 A 0 A_SpawnItemEx("SheepBolt",0,0,-12,0,0,-40)
stop
}
}

actor SheepManShockGround
{
PROJECTILE
Obituary "$OB_SHEEPMAN4"
Radius 12
Height 12
Speed 50
Damage (7)
Scale 2.5
DamageType "Sheepman"
+RIPPER
+FLOORHUGGER
states {
spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
TWOR ABCD 1
Goto Spawn+2
}
}

actor SheepBolt
{
PROJECTILE
Obituary "$OB_SHEEPMAN1"
Radius 16
Height 16
Speed 0
Damage (1)
Scale 2.5
DamageType "SheepmanWool"
+RIPPER
+DONTREFLECT
states 
{
spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
XWSS HI 1 A_SpawnItemEx("SheepBoltTrail",0,0,4)
Goto Spawn+2
Death:
XWSS J 0 A_PlaySoundEx("weapon/sheepshockland","Body")
TNT1 A 0 A_SpawnItemEx("SheepBoltShock",32,0,3,35,0,0,45)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock",32,0,3,35,0,0,135)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock",32,0,3,35,0,0,225)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock",32,0,3,35,0,0,315)
XWSS JKJK 1
stop
}
}

actor SheepBoltShock : SheepManShockGround
{
Obituary "$OB_SHEEPMAN1"
Damage (13)
-RIPPER
}

actor SheepBoltTrail : SheepBolt
{
Damage (1)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XWSS ABABABABAB 1
stop
Death:
TNT1 A 0
stop
}
}

actor SheepBolt2 : SheepBolt
{
damagetype "SheepmanUlt"
species "SheepCloudType"
+THRUSPECIES
damage(5)
Obituary "$OB_SHEEPMAN3"
States
{
spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
XWSS HI 1 A_SpawnItemEx("SheepBoltTrail2",0,0,4)
Goto Spawn+2
Death:
XWSS J 0 A_PlaySoundEx("weapon/sheepshockland","Body")
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,45)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,135)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,225)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,315)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,0)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,90)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,180)
TNT1 A 0 A_SpawnItemEx("SheepBoltShock2",32,0,3,35,0,0,270)
TNT1 A 0 A_SpawnItemEx("SheepShockField")
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
XWSS JKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJK 1
stop
}
}

actor SheepShockField
{
species "SheepCloudType"
+THRUSPECIES
radius 1
height 1
+NOINTERACTION
Obituary "$OB_SHEEPMAN3"
damagetype "SheepmanUlt"
speed 0
scale 2.5
damage(0)
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XWSS CDEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEG 1 A_Explode(3,128,0,0,64)
stop
}
}

actor SheepBoltTrail2 : SheepBoltTrail
{
species "SheepCloudType"
+THRUSPECIES
damage(5)
Obituary "$OB_SHEEPMAN3"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
XWSS ABABABABABABABABABABABABABABABAB 1
stop
Death:
TNT1 A 0
stop
}
}

actor SheepBoltShock2 : SheepManShockGround
{
damagetype "SheepmanUlt"
Obituary "$OB_SHEEPMAN3"
species "SheepCloudType"
+THRUSPECIES
Damage (20)
-RIPPER
}

actor SheepWool1
{
Speed 0
+DONTSPLASH
+NOEXPLODEFLOOR
+FLOORCLIP
+NOGRAVITY
Damage (0)
Height 8
Radius 8
health 99999
scale 2.5
+SHOOTABLE
+NOBLOOD
+NOBLOCKMAP
-SOLID
+NOCLIP
painchance 256
bloodtype ""
species "SheepCloudType"
+THRUSPECIES
+DONTRIP
+GHOST
+NORADIUSDMG
meleerange 0
States
{
Spawn:
SHP2 J 8
SHP2 J 0 A_Stop
loopit:
SHP2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 B 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 B 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 B 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 B 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 B 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 B 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 B 0 A_JumpIfInTargetInventory("SheepCloudAnim",1,"Bolt")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 B 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loop
Bolt:

SHP2 C 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 C 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 D 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 D 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 B 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 B 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_PlaySoundEx("weapon/thunderwoolelec", "Body")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 E 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 F 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 G 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_SpawnItemEx("SheepGuard",0,0,0)
SHP2 I 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 I 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
SHP2 A 0 A_JumpIfInTargetInventory("ThunderWoolBoss",1,"loopit")
SHP2 A 1 A_Warp(AAPTR_TARGET,120,0,0,meleerange,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
SHP2 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
SHP2 A 0 A_JumpIfInTargetInventory("SheepEndAnim",1,"Death")
goto Death

Death:
SHP2 HHHH 1 A_Stop
stop
}
}

actor SheepEndAnim : Powerup
{
Powerup.Duration 7
}

actor SheepCloudAnim : Powerup
{
Powerup.Duration 7
}

actor SheepWool2 : SheepWool1
{
meleerange 90
}

actor SheepWool3 : SheepWool1
{
meleerange 270
}

actor SheepCloudFX : BasicClientSide
{
States
{
Spawn:
SHP2 J 12
stop
}
}

actor SheepGuard
{
Damage (0)
Height 24
Radius 24
health 99999
scale 2.5
+SHOOTABLE
+NOBLOOD
+NOGRAVITY
-SOLID
+MISSILE
-RIPPER
painchance 256
bloodtype ""
species "SheepCloudType"
+THRUSPECIES
+DONTRIP
+NORADIUSDMG
States
{
Spawn:
TNT1 A 1
stop
}
}

actor SheepAltHitbox
{
Obituary "$OB_SHEEPMAN4"
PROJECTILE
+NOEXPLODEFLOOR
Radius 32
Height 32
scale 2.5
speed 0
damage (13)
Damagetype "SheepmanAlt"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor SheepmanAltProtect : PowerProtection
{
	powerup.duration 25
	DamageFactor "SheepmanAlt", 0.0
}