//WEAPON BY MEGAVILE 
actor HoneycombHiveWep_NormalBar : NormalBar{args 4, 216}
actor HoneycombHiveWep : BaseMM8BDMWep 
{
Weapon.AmmoUse 5
Weapon.AmmoGive 28
Weapon.SlotNumber 4
Inventory.Pickupmessage "$PU_HONEYCOMBHIVE"
Obituary "$OB_HONEYCOMBHIVE"
Tag "$TAG_HONEYCOMBHIVE"
weapon.ammotype "HoneycombHiveAmmo"
inventory.icon "HNYHICON"
States
{
SpawnLoop:
HNYH Z 1
loop
Ready:
HNYH A 0 ACS_NamedExecuteWithResult("core_weaponcolor",COLOR_HONEYCOMBHIVE)
HNYH A 0 A_JumpIfNoAmmo("ReadyNoAmmo")
HNYH A 1 A_WeaponReady
Goto Ready+2
ReadyC: Goto Ready+2
ReadyNoAmmo:
HNYH I 1 A_WeaponReady
HNYH I 0 A_JumpIfNoAmmo("ReadyNoAmmo")
Goto Ready+1
Deselect:
HNYH A 0 
goto DeselectSwap
Select:
HNYH A 0 
goto SelectSwap
Fire:
HNYH A 0 A_JumpIfNoAmmo("NoAmmo")
HNYH A 0 A_PlaySoundEx("weapon/honeycombhive","Weapon")
HNYH BC 2
HNYH A 0 A_FireCustomMissile("HoneycombHiveBomb",0,1,8,0)
HNYH DEFG 2
TNT1 A 4
HNYH BB 1
HNYH I 0 A_JumpIfNoAmmo("ReadyNoAmmo")
HNYH A 2
HNYH A 0 A_Refire
Goto Ready+1
NoAmmo:
HNYH I 1 ACS_NamedExecuteAlways("core_noammo",0)
Goto ReadyNoAmmo
ReadyC:
Goto Ready+1
}
}

actor HoneycombHiveAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}


actor HoneycombHiveBomb : BasicProjectile
{
Translation "199:199=216:216", "202:202=4:4"
PROJECTILE
damagetype "HoneycombHive"
Obituary "$OB_HONEYCOMBHIVE"
-NOGRAVITY
Damage (CallACS("vile_cbm_damage",12))
Radius 12
Height 10
speed 25
Scale 2.5
States
{
Spawn:
HNYC A 0
HNYC A 0 ThrustThingZ(0,12,0,1)
HNYC A 1
wait
Death:
TNT1 A 0 A_JumpIf(z-floorz<16,"Floor")
TNT1 A 0 A_JumpIf(ceilingz-z<=10, "Ceiling")
Wall:
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(10,80),1)
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(100,170),1)
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(190,260),1)
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(280,350),1)
Goto RealDeath
XDeath:
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(10,80),1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(100,170),1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(190,260),1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,random(6,12),0,random(4,10),random(280,350),1)
Goto RealDeath
Floor:
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,3,45,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,3,135,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,3,225,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,3,315,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,7,45,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,7,135,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,7,225,1)
TNT1 A 0 A_SpawnItemEx("HoneycombHiveShot",0,0,8,6,0,7,315,1)
Goto RealDeath
Ceiling:
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,-8,random(6,12),0,random(-1,-7),random(10,80),1)
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,-8,random(6,12),0,random(-1,-7),random(100,170),1)
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,-8,random(6,12),0,random(-1,-7),random(190,260),1)
TNT1 AA 0 A_SpawnItemEx("HoneycombHiveShot",0,0,-8,random(6,12),0,random(-1,-7),random(280,350),1)
Goto RealDeath
RealDeath:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/honeycomb","Weapon")
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_Explode(CallACS("vile_cbm_damage",10),80,0,0,16)
TNT1 A 0 A_SpawnItemEx("ExplosionEffect2")
TNT1 A 0 A_SetScale(2.75)
HORH L 2
HORH MN 3
stop
}
}

actor HoneycombHiveShot : BasicProjectile
{
Translation "199:199=216:216", "202:202=215:215"
PROJECTILE
damagetype "HoneycombHive"
Obituary "$OB_HONEYCOMBHIVE"
-NOGRAVITY
Damage (CallACS("vile_cbm_damage",7))
Radius 12
Height 10
speed 25
Scale 2.0
States
{
Spawn:
TNT1 A 0
SpawnLOOP:
Y_1H U 0
Y_1H U 0 ThrustThingZ(0,1,0,1)
Y_1H U 1
loop
Crash:
XDeath:
Y_1H U 1
stop
Death:
Y_1H U 0 
Y_1H U 0 A_JumpIf(z-floorz<=0,"Death2")
Y_1H U 1 A_GiveInventory("CutterFlag",1)
Y_1H U 0 A_JumpIfInventory("CutterFlag",175,"Xdeath")
loop
Death2:
Y_1H U 1 A_SpawnItemEx("HoneycombHiveBlob",0,0,0,0,0,0,0,1)
stop
}
}

Actor HoneycombHiveBlob : BasicProjectile
{
damagetype "HoneycombHive"
Obituary "$OB_HONEYCOMBHIVE"
+MISSILE
+DONTSPLASH
+NOEXPLODEFLOOR
reactiontime 100
Damage (CallACS("vile_cbm_damage",8))
Radius 12
Height 10
scale 2.5
states
{
Spawn:
Y_1H W 0
Y_1H W 1 A_PlaySoundEx("weapon/oilshot","Weapon")
Y_1H W 1 A_Stop
goto SpawnW
SpawnW:
Y_1H V 1
Y_1H V 0 A_JumpIf(z-floorz>0,"NewShot")
Y_1H V 0 A_CountDown
loop
NewShot:
Y_1H V 0 A_CheckFlag("BLASTED","NewShotX")
Goto Death
NewShotX:
Y_1H V 0 A_SpawnItemEx("HoneycombHiveBlob",0,0,0,momx,momy,momz,0,8)
Goto Death
Death:
Y_1H VVVVV 1 A_FadeOut(0.2)
stop
}
}

actor PowerHoneySlow : PowerSpeed
{
Speed 0.67
powerup.duration 105
+POWERSPEED.NOTRAIL
}


actor PowerHoneySlowGiver : PowerupGiver
{
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
Inventory.PickupSound ""
Inventory.MaxAmount 0
Powerup.Type "PowerHoneySlow"
}

actor HoneycombSlowPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("PowerHoneySlow",1,2)
TNT1 A 0 A_SpawnItemEx("PowerHoneySlowWatcher")
TNT1 A 0 A_GiveInventory("PowerHoneySlowGiver",1)
stop
}
}

actor PowerHoneySlowWatcher : BasicWatcher
{
States
{
Spawn:
TNT1 A 0 
TNT1 A 3 A_GiveToTarget("PowerHoneySlowFX_P",1)
TNT1 A 0 A_JumpIfInTargetInventory("PowerHoneySlow",1,"Spawn")
stop
}
}

actor PowerHoneySlowFX_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("PowerHoneySlowFX",random(18,56),0,Random(18,56),0,0,0,random(0,71)*5,1)
stop
}
}

actor PowerHoneySlowFX : BasicGraphicEffect
{
+MISSILE
+FLOATBOB
+NOGRAVITY
+DONTBLAST
+DONTSPLASH
+THRUACTORS
+CLIENTSIDEONLY
+FORCEXYBILLBOARD
Damage(0)
Height 2
Radius 2
Scale 2.5
States
{
SpawnFrame:
TNT1 A 0
TNT1 A 0 A_SetScale(frandom(1.5,2.5))
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2")
Spawn1:
ICEB YZYZX 4 A_Fadeout(frandom(0.15,0.2))
stop
Spawn2:
ICEB ZYZYX 4 A_Fadeout(frandom(0.15,0.2))
stop
}
}