mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
Copy of Anonus' Blob tweak PR, with less commits.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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!
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
+1
-1
@@ -93,5 +93,5 @@ MMMiracles = Game Master
|
||||
bear1ake = Game Master
|
||||
CoreOverload = Game Master
|
||||
Jalleo = Game Master
|
||||
|
||||
Anonus Tanir = Game Master
|
||||
FoxPMcCloud = Game Master
|
||||
Reference in New Issue
Block a user