Fandom

Mega Man 8-Bit Deathmatch Wiki

Proto Buster

277pages on
this wiki
Add New Page
Talk0 Share
WepIconDLN000-Proto Proto Buster Protomansprite
ProtoBusterWeaponPicture
Weapon code ProtoBuster
Comes from Mega Man 9
Weapon color scheme Red-on-Gray
Fire rate Slow
Missile speed Slow-Medium (Weak and mid-charged missile)

Fast (Charged shot)

Capacity Infinite
Weapon hotkey/type [1] Buster
Damage 20 (Uncharged pellet)

21 (Mid-charged energy shot)
50 (Fully charged attack)

Appears in
these maps
MM2CrashMM5CrystalMM5Darkman4MM5DarkmanMM3HardMM3MagnetMM2MetalMM5NapalmMM4PharaohMM7Wily3MM3WilyMM6TomahawkMM6Yamato

The Proto Buster fires regular pellets like the Mega Buster, but can be charged to fire powerful, fast moving energy blasts. While charging, the user is guarded by a shield that blocks all frontal attacks. It replaces the Mega Buster when the Proto Buster Upgrade is used.

Tactics

Using Proto Buster

The charge Shot is a very damaging attack, and it moves very fast. Keep your enemy in sight and block attacks with the shield while charging then fire when you get an opening. Always try to face your opponent and don't fire too soon. Because its speed outmatches almost everything in the game, you can also try to snipe at opponents clear across the map.

Vs. Proto Buster

This weapon is very difficult to counter when used effectively. Area of effect and explosive weapons will get through the shield. It is also possible to hit your foe from the side to get past it, so circle strafe without stopping while firing a rapid fire weapon like Yamato Spear. There is also a small window of opportunity after a shot is fired when their shield is down. If you keep up a strong attack though, they'll be very reluctant to do so.

Code

actor ProtoBuster : Weapon
{
Weapon.AmmoUse 1
Weapon.AmmoGive 3
Weapon.SlotNumber 1
scale 2.0
Obituary "%o was sniped by %k's Proto Buster."
Inventory.Pickupmessage "You got the Proto Buster!"
weapon.ammotype "BusterAmmo"
+WEAPON.AMMO_OPTIONAL
+WEAPON.DONTBOB
States
{
Spawn:
WEA2 Q 1
stop
Ready:
PROC J 0 A_JumpIfInventory("Once",1,"Ready2")
PROC J 0 A_GiveInventory("Once",1)
Goto Ready2+1
Ready2:
PROC J 0 ACS_ExecuteAlways(998,0,36)
PROC J 0 A_TakeInventory("ProtoCharge",999)
PROC J 0 A_TakeInventory("StopShield",1)
PROC J 0 A_GunFlash
PROC LK 1 A_WeaponReady
PROC J 1 A_WeaponReady
Goto Ready2+6
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PROC J 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PROC J 1 A_Raise
Loop
Fire:
PROC D 0 A_JumpIfNoAmmo("Hold")
PROC D 0 A_GiveInventory("StopShield",1)
PROC D 0 A_PlaySoundEx("weapon/mbuster","Weapon")
PROC D 0 A_FireCustomMissile("ProtoShot",0,0,8,0)
PROC KLD 1 A_TakeInventory("ProtoCharge",999)
PROC EF 3
PROC D 3 A_Refire
goto Ready2+2
Fire2:
PROC D 0 A_TakeInventory("ProtoCharge",999)
PROC D 0 A_GiveInventory("StopShield",1)
PROC F 3 A_PlaySoundEx("weapon/pshot","Weapon")
PROC F 3 A_FireCustomMissile("ProtoShot2",0,0,8,0)
PROC EFD 3
PROC D 0 A_Refire
goto Ready2+2
Fire3:
PROC D 0 A_TakeInventory("ProtoCharge",999)
PROC D 0 A_GiveInventory("StopShield",1)
PROC D 0 A_PlaySoundEx("weapon/pshot","Weapon")
PROC F 3 //A_FireCustomMissile("ProtoShotFX",0,0,8,0)
PROC F 3 A_FireCustomMissile("ProtoShot3",0,0,8,0)
PROC ED 3
PROC D 9
PROC D 0 A_Refire
goto Ready2+1
Hold:
PROC D 0 A_JumpIfInventory("ProtoCharge",32,"BotCheck")
PROC D 0 A_JumpIfInventory("ProtoCharge",18,"Charge")
PROC D 1 A_GiveInventory("ProtoCharge",1)
PROC D 0 A_Refire
Goto Ready2+1
Charge:
PROC D 0 A_JumpIfInventory("ProtoCharge",32,"Charge2")
PROC D 0 A_JumpIfInventory("ProtoCharge",19,"Charge1")
PROC D 0 A_PlaySoundEx("weapon/pcharge","Weapon")
PROC LK 1
PROC J 0 A_GunFlash
Goto Charge1
Charge1:
PROC J 0 A_JumpIfInventory("ProtoCharge",32,"Charge2")
PROC J 1 ACS_ExecuteAlways(991,0,63)
PROC H 3 ACS_ExecuteAlways(991,0,36)
PROC H 0 A_GiveInventory("ProtoCharge",2)
PROC J 0 A_GunFlash
PROC H 0 A_Refire
Goto Fire2
BotCheck:
PROC H 0 A_Jump(224, "Charge2")
PROC H 0 ACS_ExecuteAlways(974,0)
Goto Charge2
Charge2:
PROC I 1 ACS_ExecuteAlways(991,0,64)
PROC H 1 ACS_ExecuteAlways(991,0,36)
PROC J 0 A_GunFlash
PROC H 0 A_Refire
Goto Fire3
Flash:
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
TNT1 A 1 A_JumpIfInventory("StopShield",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("CutterFlag",999,"NoFlash")
loop
NoFlash:
TNT1 A 0
Stop
}
}

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

/*
actor ProtoBuster : Weapon
{
Weapon.AmmoUse 1
Weapon.AmmoGive 3
Weapon.SlotNumber 1
scale 2.0
Obituary "%o was bombed by %k's Proto Buster."
Inventory.Pickupmessage "You got the Proto Buster!"
weapon.ammotype "BusterAmmo"
+WEAPON.AMMO_OPTIONAL
+WEAPON.DONTBOB
States
{
Spawn:
WEA2 Q 1
stop
Ready:
PROC J 0 A_JumpIfInventory("Once",1,"Ready2")
PROC J 0 A_GiveInventory("Once",1)
Goto Ready2+1
Ready2:
PROC J 0 ACS_ExecuteAlways(998,0,36)
PROC J 0 A_TakeInventory("ProtoCharge",999)
PROC LK 1 A_WeaponReady
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 1 A_WeaponReady
Goto Ready2+4
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PROC J 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PROC J 1 A_Raise
Loop
Fire:
PROC D 0 A_JumpIfNoAmmo("Hold")
PROC D 0 A_PlaySoundEx("weapon/mbuster","Weapon")
PROC D 0 A_FireCustomMissile("ProtoShot",0,0,8,0)
PROC KLD 1 A_TakeInventory("ProtoCharge",999)
PROC EF 3
PROC D 3 A_Refire
goto Ready2+2
Fire2:
PROC D 0 A_TakeInventory("ProtoCharge",999)
PROC F 3 A_PlaySoundEx("weapon/pshot","Weapon")
PROC F 3 A_FireCustomMissile("ProtoShot2",0,0,8,0)
PROC EFD 3
PROC D 0 A_Refire
goto Ready2+2
Fire3:
PROC D 0 A_TakeInventory("ProtoCharge",999)
PROC D 0 A_PlaySoundEx("weapon/pshot","Weapon")
PROC F 3 //A_FireCustomMissile("ProtoShotFX",0,0,8,0)
PROC F 3 A_FireCustomMissile("ProtoShot3",0,0,8,0)
PROC ED 3
PROC D 9
PROC D 0 A_Refire
goto Ready2+1
Hold:
PROC D 0 A_JumpIfInventory("ProtoCharge",32,"Charge2")
PROC D 0 A_JumpIfInventory("ProtoCharge",18,"Charge")
PROC D 1 A_GiveInventory("ProtoCharge",1)
PROC D 0 A_Refire
Goto Ready2+1
Charge:
PROC D 0 A_JumpIfInventory("ProtoCharge",32,"Charge2")
PROC D 0 A_JumpIfInventory("ProtoCharge",19,"Charge1")
PROC D 0 A_PlaySoundEx("weapon/pcharge","Weapon")
PROC LK 1 
Goto Charge1
Charge1:
PROC J 0 A_JumpIfInventory("ProtoCharge",32,"BotCheck")
PROC H 0 
PROC H 0 ACS_ExecuteAlways(991,0,63)
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 1 A_GiveInventory("ProtoCharge",1)
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC H 1 A_GiveInventory("ProtoCharge",1)
PROC H 0 ACS_ExecuteAlways(991,0,36)
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC H 1
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC H 1
PROC H 0 A_Refire
Goto Fire2
BotCheck:
SAPT A 0 ACS_ExecuteAlways(974,0)
Goto Charge2
Charge2:
PROC H 0 ACS_ExecuteAlways(991,0,64)
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC I 1
PROC H 0 ACS_ExecuteAlways(991,0,36)
PROC J 0 A_SpawnItemEx("ProtoShieldX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC J 0 A_SpawnItemEx("ProtoShieldFX",23,-17,8,momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)
PROC H 1
PROC H 0 A_Refire
Goto Fire3
}
}
*/
actor ProtoCharge : Inventory
{
inventory.amount 1
inventory.maxamount 52
}

actor ProtoShot
{
PROJECTILE
+LOOKALLAROUND
+SKYEXPLODE
+THRUGHOST
+DONTBLAST
+DONTREFLECT
damagetype "ProtoBuster"
//seesound "weapon/mbuster"
Speed 26
Damage (20)
radius 5
height 5
scale 2.5
States
{
Spawn:
TNT1 A 2
BUST A 1
goto spawn+1
Death:
BUST A 1
stop
}
}

actor ProtoShot2
{
PROJECTILE
+LOOKALLAROUND
+SKYEXPLODE
+DONTBLAST
damagetype "Buster"
//seesound "weapon/mbuster"
Speed 26
Damage (21)
radius 20
height 20
scale 2.5
States
{
Spawn:
MMFX D 4
loop
}
}


actor ProtoShot3
{
PROJECTILE
+LOOKALLAROUND
+SKYEXPLODE
+DONTBLAST
//seesound "weapon/mbuster"
Speed 60
Damage (50)
radius 20
height 20
scale 2.5
States
{
Spawn:
PROC ABC 2
loop
}
}


actor ProtoShotFX
{
+CLIENTSIDEONLY
-SOLID
+NOGRAVITY
scale 2.5
States
{
Spawn:
MMFX BCD 1
stop
}
}

actor ProtoShieldX
{
+MISSILE
Speed 0
+DONTSPLASH
Damage 0
Height 32
Radius 25
health 9999
scale 2.5
damagefactor "ProtoBuster", 0.0
+SHOOTABLE
+NOBLOOD
-SOLID
//+NOBLOCKMAP
painchance 256
bloodtype ""
//+DONTRIP
+DONTRIP
+GHOST
//+NOINTERACTION
+NORADIUSDMG
//+REFLECTIVE
States
{
Spawn:
TNT1 A 0
TNT1 A 2
stop
Death:
TNT1 A 0 //A_PlaySound("item/protoreflect")
TNT1 A 1
stop
Pain:
TNT1 A 0 
TNT1 A 2 A_PlaySound("item/protoreflect")
stop
}
}

actor ProtoShieldFX
{
-SOLID
+NOGRAVITY
+NOBLOCKMAP
+FIXMAPTHINGPOS
Height 0
Radius 0
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
States
{
Spawn:
TNT1 A 0
PROS A 2
stop
}
}

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.