From 36877fcacda09710677277d96f73cfa539f57229 Mon Sep 17 00:00:00 2001 From: Erthilo Date: Sat, 9 Jun 2012 15:24:47 +0100 Subject: [PATCH] Blob code cleanup. --- code/defines/obj/decal.dm | 3 +++ code/game/gamemodes/blob/theblob.dm | 20 ++++++++++---------- code/game/objects/effect_system.dm | 1 + 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/code/defines/obj/decal.dm b/code/defines/obj/decal.dm index 222e22ed0a8..92a66b79b07 100644 --- a/code/defines/obj/decal.dm +++ b/code/defines/obj/decal.dm @@ -1,3 +1,6 @@ +/obj/effect/decal + pass_flags = PASSBLOB + /obj/effect/decal/ash name = "ashes" desc = "Ashes to ashes, dust to dust, and into space." diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index f8487668f66..d2b1c1923e9 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -16,6 +16,7 @@ var/fire_resist = 3 var/blobtype = "Blob" var/blobdebug = 0 + var/list/blob_attributes = list("fire","brute","cold","elec","acid") var/weakness = null //What works best var/strength = null //What doesn't/heals them /*Types @@ -61,7 +62,6 @@ CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if((air_group && blobtype != "Shield") || (height==0)) return 1 if(istype(mover) && mover.pass_flags&PASSBLOB) return 1 - if(istype(mover, /obj/effect/decal) || istype(mover, /obj/effect/effect/chem_smoke)) return 1 return 0 @@ -88,10 +88,10 @@ blobtype = "Core" blob_cores += src processing_objects.Add(src) - weakness = pick("fire", "brute", "cold", "acid", "elec") - strength = pick("fire", "brute", "cold", "acid", "elec") - if(src.strength == src.weakness) //Yes, they could have the same weakness and strength, but this should reduce the odds. - src.strength = pick("fire", "brute", "cold", "acid", "elec") + var/list/a = blob_attributes + weakness = pick(a) + a -= weakness + strength = pick(a) var/w = src.weakness if(w) if(w == "fire") @@ -300,7 +300,7 @@ damage = damage*2 if(src.strength == "brute") damage = damage*0.5 - src.visible_message("\red \The [src] abosrbs \the [Proj]!") + src.visible_message("\red \The [src] absorbs \the [Proj]!") else damage = Proj.damage src.health -= damage @@ -403,10 +403,10 @@ spawn() src.blobdebug = 1 src.Life() - src.weakness = pick("fire", "brute", "cold", "acid", "elec") - src.strength = pick("fire", "brute", "cold", "acid", "elec") - if(src.strength == src.weakness) //Yes, they could have the same weakness and strength, but this should reduce the odds. - src.strength = pick("fire", "brute", "cold", "acid", "elec") + var/list/a = blob_attributes + weakness = pick(a) + a -= weakness + strength = pick(a) var/w = src.weakness if(w) if(w == "fire") diff --git a/code/game/objects/effect_system.dm b/code/game/objects/effect_system.dm index 1c0d6480d01..3e80c869db6 100644 --- a/code/game/objects/effect_system.dm +++ b/code/game/objects/effect_system.dm @@ -393,6 +393,7 @@ steam.start() -- spawns the effect opacity = 1 anchored = 0.0 mouse_opacity = 0 + pass_flags = PASSBLOB var/amount = 6.0 var/divisor = 1