diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index b3056465ffe..b4abfdc9e57 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -3,8 +3,8 @@ icon = 'icons/mob/blob.dmi' icon_state = "blank_blob" desc = "A huge, pulsating yellow mass." - health = 200 - fire_resist = 2 + health = 400 + maxhealth = 400 explosion_block = 6 var/overmind_get_delay = 0 // we don't want to constantly try to find an overmind, do it every 30 seconds var/resource_delay = 0 @@ -68,7 +68,7 @@ if(resource_delay <= world.time) resource_delay = world.time + 10 // 1 second overmind.add_points(point_rate) - health = min(initial(health), health + 1) + health = min(maxhealth, health+health_regen) if(overmind) overmind.update_health() pulseLoop(0) diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index ea5c39267ea..f3e15c06ee2 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -3,8 +3,8 @@ icon = 'icons/mob/blob.dmi' icon_state = "blob_factory" desc = "A thick spire of tendrils." - health = 100 - fire_resist = 2 + health = 200 + maxhealth = 200 var/list/spores = list() var/max_spores = 3 var/spore_delay = 0 diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index 8d2ef8caa7c..e7882bf60a8 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -3,8 +3,8 @@ icon = 'icons/mob/blob.dmi' icon_state = "blank_blob" desc = "A large, pulsating yellow mass." - health = 100 - fire_resist = 2 + health = 200 + maxhealth = 200 /obj/effect/blob/node/New(loc, var/h = 100) blob_nodes += src diff --git a/code/game/gamemodes/blob/blobs/resource.dm b/code/game/gamemodes/blob/blobs/resource.dm index 2996265ee2c..3237540e385 100644 --- a/code/game/gamemodes/blob/blobs/resource.dm +++ b/code/game/gamemodes/blob/blobs/resource.dm @@ -3,8 +3,8 @@ icon = 'icons/mob/blob.dmi' icon_state = "blob_resource" desc = "A thin spire of slightly swaying tendrils." - health = 30 - fire_resist = 2 + health = 60 + maxhealth = 60 var/resource_delay = 0 /obj/effect/blob/resource/update_icon() diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index 68e29f221ee..97b6174d35e 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -3,9 +3,9 @@ icon = 'icons/mob/blob.dmi' icon_state = "blob_idle" desc = "A solid wall of slightly twitching tendrils." - health = 75 + health = 150 + maxhealth = 150 explosion_block = 3 - fire_resist = 2 /obj/effect/blob/shield/update_icon() @@ -17,6 +17,9 @@ /obj/effect/blob/shield/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) return +/obj/effect/blob/shield/CanAtmosPass(turf/T) + return 0 + /obj/effect/blob/shield/CanPass(atom/movable/mover, turf/target, height=0) if(istype(mover) && mover.checkpass(PASSBLOB)) return 1 return 0 diff --git a/code/game/gamemodes/blob/blobs/storage.dm b/code/game/gamemodes/blob/blobs/storage.dm index a09e58915f3..282fe9fca53 100644 --- a/code/game/gamemodes/blob/blobs/storage.dm +++ b/code/game/gamemodes/blob/blobs/storage.dm @@ -3,8 +3,8 @@ icon = 'icons/mob/blob.dmi' icon_state = "blob_resource" desc = "A huge, smooth mass supported by tendrils." - health = 30 - fire_resist = 2 + health = 60 + maxhealth = 60 /obj/effect/blob/storage/update_icon() if(health <= 0) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index c0dd7fa6a8b..3945dc31164 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -4,13 +4,15 @@ icon = 'icons/mob/blob.dmi' luminosity = 3 desc = "A thick wall of writhing tendrils." - density = 0 + density = 0 //this being 0 causes two bugs, being able to attack blob tiles behind other blobs and being unable to move on blob tiles in no gravity, but turning it to 1 causes the blob mobs to be unable to path through blobs, which is probably worse. opacity = 0 anchored = 1 explosion_block = 1 var/health = 30 + var/maxhealth = 30 + var/health_regen = 2 var/health_timestamp = 0 - var/brute_resist = 4 + var/brute_resist = 2 var/fire_resist = 1 var/mob/camera/blob/overmind @@ -59,10 +61,9 @@ // All blobs heal over time when pulsed, but it has a cool down if(health_timestamp > world.time) return 0 - if(health < initial(health)) - health++ - update_icon() - health_timestamp = world.time + 10 // 1 seconds + health = min(maxhealth, health+health_regen) + update_icon() + health_timestamp = world.time + 10 // 1 seconds /obj/effect/blob/proc/pulseLoop(num) var/a_color @@ -110,7 +111,6 @@ /obj/effect/blob/proc/expand(turf/T = null, prob = 1, a_color) if(prob && !prob(health)) return - if(istype(T, /turf/space) && prob(75)) return if(!T) var/list/dirs = list(1,2,4,8) for(var/i = 1 to 4) @@ -121,12 +121,15 @@ else T = null if(!T) return 0 - var/obj/effect/blob/normal/B = new /obj/effect/blob/normal(src.loc, min(src.health, 30)) + var/obj/effect/blob/B = new /obj/effect/blob/normal(src.loc) + if(istype(T, /turf/space) && prob(65)) + B.health = 0 B.color = a_color B.density = 1 if(T.Enter(B,src))//Attempt to move into the tile B.density = initial(B.density) B.loc = T + B.update_icon() else T.blob_act()//If we cant move in hit the turf B.loc = null //So we don't play the splat sound, see Destroy() @@ -208,7 +211,7 @@ /obj/effect/blob/examine(mob/user) ..() - user << "It looks like it's of a [get_chem_name()] kind." + user << "It seems to be made of [get_chem_name()]." return /obj/effect/blob/proc/get_chem_name() @@ -221,14 +224,23 @@ icon_state = "blob" luminosity = 0 health = 21 + maxhealth = 25 + health_regen = 1 + brute_resist = 4 /obj/effect/blob/normal/update_icon() if(health <= 0) qdel(src) - else if(health <= 15) + else if(health <= 10) icon_state = "blob_damaged" + name = "fragile blob" + desc = "A thin lattice of slightly twitching tendrils." + brute_resist = 2 else icon_state = "blob" + name = "blob" + desc = "A thick wall of writhing tendrils." + brute_resist = 4 /* // Used to create the glow sprites. Remember to set the animate loop to 1, instead of infinite! diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index d93940987eb..02518d344c4 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -13,9 +13,8 @@ bang(get_turf(M), M) for(var/obj/effect/blob/B in get_hear(8,flashbang_turf)) //Blob damage here - var/damage = round(30/(get_dist(B,get_turf(src))+1)) - B.health -= damage - B.update_icon() + var/damage = round(40/(get_dist(B,get_turf(src))+1)) + B.take_damage(damage, BURN) qdel(src) /obj/item/weapon/grenade/flashbang/proc/bang(turf/T , mob/living/M) diff --git a/config/admins.txt b/config/admins.txt index b1dd2072f34..b4a042557de 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -93,5 +93,5 @@ MMMiracles = Game Master bear1ake = Game Master CoreOverload = Game Master Jalleo = Game Master - +Anonus Tanir = Game Master FoxPMcCloud = Game Master \ No newline at end of file