diff --git a/code/defines/obj.dm b/code/defines/obj.dm index e33be656382..0ddaf6e5ce5 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -27,8 +27,8 @@ anchored = 1 /obj/blob/idle - name = "blob" - desc = "it looks... frightened" + name = "magma" + desc = "it looks... calm" icon_state = "blobidle0" /obj/mark diff --git a/code/game/dna.dm b/code/game/dna.dm index d7e1acceffd..17df988a7bb 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -591,7 +591,7 @@ /obj/machinery/dna_scannernew/blob_act() - if(prob(50)) + if(prob(75)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc del(src) @@ -613,7 +613,7 @@ /obj/machinery/scan_consolenew/blob_act() - if(prob(50)) + if(prob(75)) del(src) /obj/machinery/scan_consolenew/power_change() diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 0a644255c4f..cc7dbc02f6e 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -66,7 +66,7 @@ if(T.Enter(B,src) && !(locate(/obj/blob) in T)) B.loc = T // open cell, so expand else - if(prob(50)) // closed cell, 50% chance to not expand + if(prob(70)) // closed cell, 50% chance to not expand if(!locate(/obj/blob) in T) for(var/atom/A in T) // otherwise explode contents of turf A.blob_act() @@ -114,16 +114,13 @@ /obj/blob/attackby(var/obj/item/weapon/W, var/mob/user) playsound(src.loc, 'attackblob.ogg', 50, 1) - src.visible_message("\red The blob has been attacked with \the [W][(user ? " by [user]." : ".")]") + src.visible_message("\red The magma has been attacked with \the [W][(user ? " by [user]." : ".")]") var/damage = W.force / 4.0 - if(istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - - if(WT.welding) - damage = 15 - playsound(src.loc, 'Welder.ogg', 100, 1) + if(istype(W, /obj/item/weapon/extinguisher)) + damage = 25 + playsound(src.loc, 'extinguish.ogg', 100, 1) else if(istype(W, /obj/item/weapon/plantbgone)) var/obj/item/weapon/plantbgone/PBG = W @@ -136,7 +133,7 @@ /obj/blob/examine() set src in oview(1) - usr << "A mysterious alien blob-like organism." + usr << "Mysterious magma." /datum/station_state/proc/count() for(var/turf/T in world) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index ca64d8fe1e1..de43da80426 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -53,7 +53,7 @@ del(P) if(4) event = 1 - command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed anomaly type SPC-MGM-152 aboard [station_name()]. All personnel must destroy the anomaly.", "Anomaly Alert") world << sound('outbreak5.ogg') var/turf/T = pick(blobstart) var/obj/blob/bl = new /obj/blob( T.loc, 30 ) diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm index 597c1db04fd..232736ce7d7 100644 --- a/code/game/machinery/OpTable.dm +++ b/code/game/machinery/OpTable.dm @@ -25,7 +25,7 @@ return /obj/machinery/optable/blob_act() - if(prob(50)) + if(prob(75)) del(src) /obj/machinery/optable/hand_p(mob/user as mob) diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index a301988d426..2301a8d4c42 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -485,7 +485,7 @@ return /obj/machinery/bot/medbot/blob_act() - if(prob(25)) + if(prob(50)) src.explode() return diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index a58d20ce586..b36455a2a1c 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -687,7 +687,7 @@ Auto Patrol: []"}, return blob_act() - if(prob(25)) + if(prob(50)) src.explode() return diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 11ff7e082ad..c3982f53f05 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -78,7 +78,7 @@ Pod/Blast Doors computer return /obj/machinery/computer/blob_act() - if (prob(50)) + if (prob(75)) for(var/x in src.verbs) src.verbs -= x set_broken() diff --git a/code/game/machinery/dispenser.dm b/code/game/machinery/dispenser.dm index de309396dd7..fdf3357d440 100644 --- a/code/game/machinery/dispenser.dm +++ b/code/game/machinery/dispenser.dm @@ -21,7 +21,7 @@ return /obj/machinery/dispenser/blob_act() - if (prob(25)) + if (prob(50)) while(src.o2tanks > 0) new /obj/item/weapon/tank/oxygen( src.loc ) src.o2tanks-- diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index d92d7a7a2df..704e099f606 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -135,7 +135,7 @@ return /obj/machinery/door/blob_act() - if(prob(20)) + if(prob(40)) del(src) /obj/machinery/door/ex_act(severity) diff --git a/code/game/machinery/main.dm b/code/game/machinery/main.dm index ed764cc7a2d..8f593641219 100644 --- a/code/game/machinery/main.dm +++ b/code/game/machinery/main.dm @@ -26,5 +26,5 @@ return /obj/machinery/blob_act() - if(prob(25)) + if(prob(50)) del(src) \ No newline at end of file diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index d820a942e19..7cb5dcd886d 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -50,7 +50,7 @@ return /obj/machinery/vending/blob_act() - if (prob(25)) + if (prob(50)) spawn(0) src.malfunction() del(src) diff --git a/code/game/magic/magicmonster.dm b/code/game/magic/magicmonster.dm index ca8952ebb02..e89c8cc9a38 100644 --- a/code/game/magic/magicmonster.dm +++ b/code/game/magic/magicmonster.dm @@ -97,7 +97,7 @@ return blob_act() - if(prob(25)) + if(prob(50)) src.death() return diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index dfa92f9e349..7f1dca320eb 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -110,7 +110,7 @@ return blob_act() - if(prob(25)) + if(prob(50)) src.death() return diff --git a/code/game/objects/closets.dm b/code/game/objects/closets.dm index 3ee11dbd781..74c52637e8d 100644 --- a/code/game/objects/closets.dm +++ b/code/game/objects/closets.dm @@ -124,7 +124,7 @@ // this should probably use dump_contents() /obj/closet/blob_act() - if (prob(50)) + if (prob(75)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc del(src) diff --git a/code/game/objects/displaycase.dm b/code/game/objects/displaycase.dm index 5a63b409fb4..cc7733a03a0 100644 --- a/code/game/objects/displaycase.dm +++ b/code/game/objects/displaycase.dm @@ -32,7 +32,7 @@ /obj/displaycase/blob_act() - if (prob(50)) + if (prob(75)) new /obj/item/weapon/shard( src.loc ) if (occupied) new /obj/item/weapon/gun/energy/laser_gun/captain( src.loc ) diff --git a/code/game/objects/grille.dm b/code/game/objects/grille.dm index dd9fc487418..7eda92bc2a7 100644 --- a/code/game/objects/grille.dm +++ b/code/game/objects/grille.dm @@ -30,9 +30,8 @@ return /obj/grille/blob_act() - src.health-- - src.healthcheck() - + if (prob(70)) + del(src) /obj/grille/meteorhit(var/obj/M) if (M.icon_state == "flaming") diff --git a/code/game/objects/items/weapons/metals_rods.dm b/code/game/objects/items/weapons/metals_rods.dm index 7423b7b406d..354eb339aa7 100644 --- a/code/game/objects/items/weapons/metals_rods.dm +++ b/code/game/objects/items/weapons/metals_rods.dm @@ -428,9 +428,8 @@ LATTICE /obj/lattice/blob_act() - if(prob(75)) - del(src) - return + del(src) + return /obj/lattice/ex_act(severity) switch(severity) diff --git a/code/game/objects/lamarr.dm b/code/game/objects/lamarr.dm index 576500dd047..65aae69bd1a 100644 --- a/code/game/objects/lamarr.dm +++ b/code/game/objects/lamarr.dm @@ -45,7 +45,7 @@ /obj/lamarr/blob_act() - if (prob(50)) + if (prob(75)) new /obj/item/weapon/shard( src.loc ) if (occupied) var/obj/alien/facehugger/A = new /obj/alien/facehugger( src.loc ) diff --git a/code/game/objects/secure_area.dm b/code/game/objects/secure_area.dm index 64c2a4fc79e..a0859467124 100644 --- a/code/game/objects/secure_area.dm +++ b/code/game/objects/secure_area.dm @@ -12,7 +12,7 @@ return /obj/securearea/blob_act() - if (prob(50)) + if (prob(75)) del(src) return return \ No newline at end of file diff --git a/code/game/objects/secure_closets.dm b/code/game/objects/secure_closets.dm index 8f75b8b99ce..a6084491d94 100644 --- a/code/game/objects/secure_closets.dm +++ b/code/game/objects/secure_closets.dm @@ -100,7 +100,7 @@ del(src) /obj/secure_closet/blob_act() - if (prob(50)) + if (prob(75)) for(var/atom/movable/A as mob|obj in src) A.loc = src.loc del(src) diff --git a/code/game/objects/stool.dm b/code/game/objects/stool.dm index 9f9633dd9df..9379fc942ed 100644 --- a/code/game/objects/stool.dm +++ b/code/game/objects/stool.dm @@ -19,7 +19,7 @@ return /obj/stool/blob_act() - if(prob(50)) + if(prob(75)) new /obj/item/weapon/sheet/metal( src.loc ) del(src) @@ -194,7 +194,7 @@ return /obj/stool/chair/blob_act() - if(prob(50)) + if(prob(75)) for(var/mob/M in src.loc) if(M.buckled == src) M.buckled = null diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index cf8a25cb59a..db6dbcae93c 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -109,4 +109,8 @@ obj/structure del(src) return else - ..() \ No newline at end of file + ..() + +/obj/structure/girder/blob_act() + if(prob(10)) + del(src) \ No newline at end of file diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 13a26099c89..356c8fcdc1d 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -18,7 +18,7 @@ /obj/table/blob_act() - if(prob(50)) + if(prob(75)) new /obj/item/weapon/table_parts( src.loc ) del(src) @@ -173,7 +173,7 @@ return /obj/rack/blob_act() - if(prob(50)) + if(prob(75)) del(src) return else if(prob(50)) diff --git a/code/game/objects/tank.dm b/code/game/objects/tank.dm index 2a5aa64a132..86b48d364cf 100644 --- a/code/game/objects/tank.dm +++ b/code/game/objects/tank.dm @@ -1,5 +1,5 @@ /obj/item/weapon/tank/blob_act() - if(prob(25)) + if(prob(50)) var/turf/location = src.loc if (!( istype(location, /turf) )) del(src) diff --git a/code/game/objects/window.dm b/code/game/objects/window.dm index d97bc2fcd49..734774fe130 100644 --- a/code/game/objects/window.dm +++ b/code/game/objects/window.dm @@ -38,11 +38,9 @@ return /obj/window/blob_act() - if(prob(50)) - new /obj/item/weapon/shard( src.loc ) - if(reinf) new /obj/item/weapon/rods( src.loc) - density = 0 - del(src) + if(reinf) new /obj/item/weapon/rods( src.loc) + density = 0 + del(src) /obj/window/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(istype(mover, /obj/beam)) diff --git a/code/game/turf.dm b/code/game/turf.dm index 6435b6e48aa..9112aaba69b 100644 --- a/code/game/turf.dm +++ b/code/game/turf.dm @@ -270,7 +270,7 @@ return /turf/simulated/wall/blob_act() - if(prob(20)) + if(prob(50)) dismantle_wall() /turf/simulated/wall/attack_paw(mob/user as mob) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d85d9a3c7f3..2fab9833d31 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1103,7 +1103,7 @@ var/showadminmessages = 1 spawn(rand(300,600)) del(P) if("goblob") - command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed anomaly type SPC-MGM-152 aboard [station_name()]. All personnel must destroy the anomaly.", "Anomaly Alert") world << sound('outbreak5.ogg') var/turf/T = pick(blobstart) var/obj/blob/bl = new /obj/blob( T.loc, 30 ) @@ -1479,7 +1479,7 @@ var/showadminmessages = 1 Spawn a wave of meteors
Spawn a gravitational anomaly (Untested)
Spawn wormholes (Untested)
-Spawn the bob(Untested)
+Spawn magma(Untested)
Trigger an Alien infestation
Ghost Mode
Remove all urine/poo from station
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 79563f3f716..e8d20b39a05 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -261,15 +261,15 @@ to clean it up, or just beat the shit out of it (which takes ages). shielded = 1 var/damage = null if (src.stat != 2) - damage = rand(1,20) + damage = rand(10,30) if(shielded) damage /= 4 - src.show_message("\red The blob attacks you!") + src.show_message("\red The magma splashes on you!") - src.bruteloss += damage + src.fireloss += damage return diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index ebc9cdf25fd..2b66403a8d2 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -224,16 +224,16 @@ to clean it up, or just beat the shit out of it (which takes ages). var/damage = null if (src.stat != 2) - damage = rand(1,20) + damage = rand(10,30) if(shielded) damage /= 4 //src.paralysis += 1 - src.show_message("\red The blob attacks you!") + src.show_message("\red The magma splashes on you!") - src.bruteloss += damage + src.fireloss += damage src.updatehealth() return diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a3feb2b8a30..b7b3104fef3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -482,14 +482,14 @@ shielded = 1 var/damage = null if (src.stat != 2) - damage = rand(1,20) + damage = rand(10,30) if(shielded) damage /= 4 //src.paralysis += 1 - src.show_message("\red The blob attacks you!") + src.show_message("\red The magma splashes on you!") var/list/zones = list("head","chest","chest", "groin", "l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot") @@ -509,7 +509,7 @@ if (src.weakened < 10) src.weakened = rand(10, 15) for(var/mob/O in viewers(src, null)) - O.show_message(text("\red The blob has weakened []!", src), 1, "\red You hear someone fall.", 2) + O.show_message(text("\red The magma has weakened []!", src), 1, "\red You hear someone fall.", 2) temp.take_damage(damage) if ("chest") if ((((src.wear_suit && src.wear_suit.body_parts_covered & UPPER_TORSO) || (src.w_uniform && src.w_uniform.body_parts_covered & UPPER_TORSO)) && prob(85))) @@ -520,12 +520,12 @@ if (src.weakened < 5) src.weakened = 5 for(var/mob/O in viewers(src, null)) - O.show_message(text("\red The blob has knocked down []!", src), 1, "\red You hear someone fall.", 2) + O.show_message(text("\red The magma has knocked down []!", src), 1, "\red You hear someone fall.", 2) else if (src.stunned < 5) src.stunned = 5 for(var/mob/O in viewers(src, null)) - if(O.client) O.show_message(text("\red The blob has stunned []!", src), 1) + if(O.client) O.show_message(text("\red The magma has stunned []!", src), 1) if(src.stat != 2) src.stat = 1 temp.take_damage(damage) if ("groin") diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 00f0c69700c..840353fb306 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -403,7 +403,7 @@ /mob/living/carbon/monkey/blob_act() if (src.stat != 2) - src.bruteloss += 30 + src.fireloss += 60 src.health = 100 - src.oxyloss - src.toxloss - src.fireloss - src.bruteloss if (prob(50)) src.paralysis += 10 diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index e3da1de39ec..dda88448fb0 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -114,7 +114,7 @@ /mob/living/silicon/ai/blob_act() if (src.stat != 2) - src.bruteloss += 30 + src.bruteloss += 60 src.updatehealth() return 1 return 0 diff --git a/code/modules/mob/living/silicon/hivebot/hivebot.dm b/code/modules/mob/living/silicon/hivebot/hivebot.dm index 9c37963f672..38e86f749a4 100644 --- a/code/modules/mob/living/silicon/hivebot/hivebot.dm +++ b/code/modules/mob/living/silicon/hivebot/hivebot.dm @@ -34,7 +34,7 @@ /mob/living/silicon/hivebot/blob_act() if (src.stat != 2) - src.bruteloss += 30 + src.bruteloss += 60 src.updatehealth() return 1 return 0 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 6d8e0bd799f..f3ed82bb431 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -130,7 +130,7 @@ /mob/living/silicon/robot/blob_act() if (src.stat != 2) - src.bruteloss += 30 + src.bruteloss += 60 src.updatehealth() return 1 return 0 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index ecca7745871..9e5eaca89ab 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -924,7 +924,7 @@ return /obj/machinery/power/apc/blob_act() - if (prob(50)) + if (prob(75)) set_broken() diff --git a/code/modules/power/engine.dm b/code/modules/power/engine.dm index 3f5651df789..b08a1e19b2c 100644 --- a/code/modules/power/engine.dm +++ b/code/modules/power/engine.dm @@ -33,7 +33,7 @@ return /turf/simulated/floor/engine/blob_act() - if (prob(15)) + if (prob(25)) ReplaceWithSpace() del(src) return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index ab12fbb92be..cf5e4f1b12f 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -297,7 +297,7 @@ //blob effect /obj/machinery/light/blob_act() - if(prob(50)) + if(prob(75)) broken() diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index ffb9519d974..689dfabdd05 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -103,7 +103,7 @@ return /obj/machinery/power/solar/blob_act() - if(prob(50)) + if(prob(75)) broken() src.density = 0 @@ -289,6 +289,6 @@ return /obj/machinery/power/solar_control/blob_act() - if (prob(50)) + if (prob(75)) broken() src.density = 0 diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi index 0c44c4a6613..e95f6b6f26f 100644 Binary files a/icons/mob/blob.dmi and b/icons/mob/blob.dmi differ