From f5d2a048332e12691aa726fd77bd909b3ca8694b Mon Sep 17 00:00:00 2001 From: keronshb Date: Wed, 11 Mar 2020 17:33:27 -0400 Subject: [PATCH] Ports Blob Buffs Ports blob buffs from TG --- code/__DEFINES/antagonists.dm | 5 +++-- .../antagonists/blob/blob/blobs/shield.dm | 2 +- code/modules/antagonists/blob/blob/powers.dm | 19 ++++++++++--------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 7a3f872666..145055206c 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -74,6 +74,7 @@ #define MARTIALART_HUNTER "hunter-fu" //Blob -/// blob gets a free reroll every X time -#define BLOB_REROLL_TIME 2400 +#define BLOB_REROLL_TIME 2400 // blob gets a free reroll every X time +#define BLOB_SPREAD_COST 4 +#define BLOB_ATTACK_REFUND 2 //blob refunds this much if it attacks and doesn't spread #define BLOB_REFLECTOR_COST 15 \ No newline at end of file diff --git a/code/modules/antagonists/blob/blob/blobs/shield.dm b/code/modules/antagonists/blob/blob/blobs/shield.dm index 481c5e6c8d..bc4e517ced 100644 --- a/code/modules/antagonists/blob/blob/blobs/shield.dm +++ b/code/modules/antagonists/blob/blob/blobs/shield.dm @@ -47,7 +47,7 @@ icon_state = "blob_glow" flags_1 = CHECK_RICOCHET_1 point_return = 8 - max_integrity = 50 + max_integrity = 100 brute_resist = 1 explosion_block = 2 diff --git a/code/modules/antagonists/blob/blob/powers.dm b/code/modules/antagonists/blob/blob/powers.dm index 641019ef33..947a12fabc 100644 --- a/code/modules/antagonists/blob/blob/powers.dm +++ b/code/modules/antagonists/blob/blob/powers.dm @@ -120,13 +120,13 @@ /mob/camera/blob/proc/create_shield(turf/T) var/obj/structure/blob/shield/S = locate(/obj/structure/blob/shield) in T if(S) - if(!can_buy(15)) + if(!can_buy(BLOB_REFLECTOR_COST)) return if(S.obj_integrity < S.max_integrity * 0.5) add_points(BLOB_REFLECTOR_COST) to_chat(src, "This shield blob is too damaged to be modified properly!") return - to_chat(src, "You secrete a reflective ooze over the shield blob, allowing it to reflect projectiles at the cost of reduced intregrity.") + to_chat(src, "You secrete a reflective ooze over the shield blob, allowing it to reflect projectiles at the cost of reduced integrity.") S.change_to(/obj/structure/blob/shield/reflective, src) else createSpecial(15, /obj/structure/blob/shield, 0, 0, T) @@ -247,8 +247,8 @@ /mob/camera/blob/verb/expand_blob_power() set category = "Blob" - set name = "Expand/Attack Blob (4)" - set desc = "Attempts to create a new blob in this tile. If the tile isn't clear, instead attacks it, damaging mobs and objects." + set name = "Expand/Attack Blob ([BLOB_SPREAD_COST])" + set desc = "Attempts to create a new blob in this tile. If the tile isn't clear, instead attacks it, damaging mobs and objects and refunding [BLOB_ATTACK_REFUND] points." var/turf/T = get_turf(src) expand_blob(T) @@ -261,7 +261,7 @@ if(!possibleblobs.len) to_chat(src, "There is no blob adjacent to the target tile!") return - if(can_buy(4)) + if(can_buy(BLOB_SPREAD_COST)) var/attacksuccess = FALSE for(var/mob/living/L in T) if(ROLE_BLOB in L.faction) //no friendly/dead fire @@ -271,11 +271,11 @@ blobstrain.attack_living(L) var/obj/structure/blob/B = locate() in T if(B) - if(attacksuccess) //if we successfully attacked a turf with a blob on it, don't refund shit + if(attacksuccess) //if we successfully attacked a turf with a blob on it, only give an attack refund B.blob_attack_animation(T, src) else to_chat(src, "There is a blob there!") - add_points(4) //otherwise, refund all of the cost + add_points(BLOB_SPREAD_COST) //otherwise, refund all of the cost else var/list/cardinalblobs = list() var/list/diagonalblobs = list() @@ -288,14 +288,15 @@ var/obj/structure/blob/OB if(cardinalblobs.len) OB = pick(cardinalblobs) - OB.expand(T, src) + if(!OB.expand(T, src)) + add_points(BLOB_ATTACK_REFUND) //assume it's attacked SOMETHING, possibly a structure else OB = pick(diagonalblobs) if(attacksuccess) OB.blob_attack_animation(T, src) playsound(OB, 'sound/effects/splat.ogg', 50, 1) else - add_points(4) //if we're attacking diagonally and didn't hit anything, refund + add_points(BLOB_SPREAD_COST) //if we're attacking diagonally and didn't hit anything, refund if(attacksuccess) last_attack = world.time + CLICK_CD_MELEE else