From a22d31f35057d74b6d96f190ac7ab139f8f5bc92 Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sat, 30 Mar 2019 02:16:30 +0100 Subject: [PATCH 1/6] Complete Blob UI, Blob mobs now use complementary colors, special blob tiles refund, node requirement verb, minor refactors, remove shortcut improvement, dark matter removed from blob reagents, custom icons --- code/_onclick/hud/blob_overmind.dm | 28 +++++++++ code/_onclick/overmind.dm | 2 +- code/game/gamemodes/blob/blobs/blob_mobs.dm | 8 +-- code/game/gamemodes/blob/blobs/core.dm | 4 +- code/game/gamemodes/blob/blobs/factory.dm | 3 +- code/game/gamemodes/blob/blobs/node.dm | 1 + code/game/gamemodes/blob/blobs/resource.dm | 1 + code/game/gamemodes/blob/blobs/shield.dm | 2 + code/game/gamemodes/blob/blobs/storage.dm | 1 + code/game/gamemodes/blob/overmind.dm | 3 + code/game/gamemodes/blob/powers.dm | 58 +++++++++++++++---- code/game/gamemodes/blob/theblob.dm | 1 + .../reagents/chemistry/reagents/blob.dm | 4 +- 13 files changed, 95 insertions(+), 21 deletions(-) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 09d076c0726..feb57d83c05 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -57,6 +57,16 @@ var/mob/camera/blob/B = usr B.create_blobbernaut() +/obj/screen/blob/StorageBlob + icon_state = "ui_storage" + name = "Produce Storage Blob (40)" + desc = "Produces a storage blob for 40 resources.
Storage blobs will raise your max resource cap by 50." + +/obj/screen/blob/StorageBlob/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.create_storage() + /obj/screen/blob/ResourceBlob icon_state = "ui_resource" name = "Produce Resource Blob (40)" @@ -113,6 +123,16 @@ var/mob/camera/blob/B = usr B.relocate_core() +/obj/screen/blob/Split + icon_state = "ui_split" + name = "Split consciousness (100)" + desc = "Creates another Blob Overmind at the nearest node. One use only.
Offsprings are be unable to use this ability." + +/obj/screen/blob/Split/Click() + if(isovermind(usr)) + var/mob/camera/blob/B = usr + B.split_consciousness() + /datum/hud/blob_overmind/New(mob/user) ..() var/obj/screen/using @@ -143,6 +163,10 @@ static_inventory += using using = new /obj/screen/blob/Blobbernaut() + using.screen_loc = ui_id + static_inventory += using + + using = new /obj/screen/blob/StorageBlob() using.screen_loc = ui_belt static_inventory += using @@ -165,4 +189,8 @@ using = new /obj/screen/blob/RelocateCore() using.screen_loc = ui_storage2 + static_inventory += using + + using = new /obj/screen/blob/Split() + using.screen_loc = ui_acti static_inventory += using \ No newline at end of file diff --git a/code/_onclick/overmind.dm b/code/_onclick/overmind.dm index 612a5df2482..8ace273dd8f 100644 --- a/code/_onclick/overmind.dm +++ b/code/_onclick/overmind.dm @@ -32,4 +32,4 @@ /mob/camera/blob/AltClickOn(atom/A) //Remove a blob var/turf/T = get_turf(A) if(T) - revert(T) \ No newline at end of file + remove_blob(T) \ No newline at end of file diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index b1ea3c199c4..9cd3ac5343f 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -135,9 +135,9 @@ ..() if(overmind && overmind.blob_reagent_datum) - adjustcolors(overmind.blob_reagent_datum.color) + adjustcolors(overmind.blob_reagent_datum.complementary_color) else - adjustcolors(color) //to ensure zombie/other overlays update + adjustcolors(overmind.blob_reagent_datum.complementary_color) //to ensure zombie/other overlays update /mob/living/simple_animal/hostile/blob/blobspore/adjustcolors(var/a_color) @@ -147,8 +147,8 @@ overlays.Cut() overlays = human_overlays var/image/I = image('icons/mob/blob.dmi', icon_state = "blob_head") - I.color = color - color = initial(color)//looks better. + I.color = overmind.blob_reagent_datum.complementary_color + color = initial(overmind.blob_reagent_datum.complementary_color)//looks better. overlays += I ///////////////// diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index 4bdc2cafddd..d43e4dc3b38 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -4,6 +4,7 @@ icon_state = "blank_blob" health = 200 fire_resist = 2 + point_return = -1 var/mob/camera/blob/overmind = null // the blob core's overmind var/overmind_get_delay = 0 // we don't want to constantly try to find an overmind, do it every 5 minutes var/resource_delay = 0 @@ -120,7 +121,8 @@ B.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND spawn(0) if(is_offspring) - B.verbs -= /mob/camera/blob/verb/split_consciousness + B.is_offspring = TRUE + /obj/structure/blob/core/proc/lateblobtimer() addtimer(CALLBACK(src, .proc/lateblobcheck), 50) diff --git a/code/game/gamemodes/blob/blobs/factory.dm b/code/game/gamemodes/blob/blobs/factory.dm index 81d3ab47493..fde2c9bf8a3 100644 --- a/code/game/gamemodes/blob/blobs/factory.dm +++ b/code/game/gamemodes/blob/blobs/factory.dm @@ -4,6 +4,7 @@ icon_state = "blob_factory" health = 100 fire_resist = 2 + point_return = 18 var/list/spores = list() var/max_spores = 3 var/spore_delay = 0 @@ -27,7 +28,7 @@ return 0 spore_delay = world.time + 100 // 10 seconds var/mob/living/simple_animal/hostile/blob/blobspore/BS = new/mob/living/simple_animal/hostile/blob/blobspore(src.loc, src) - BS.color = color + BS.color = overmind.blob_reagent_datum.complementary_color BS.overmind = overmind overmind.blob_mobs.Add(BS) return 0 diff --git a/code/game/gamemodes/blob/blobs/node.dm b/code/game/gamemodes/blob/blobs/node.dm index 32b6ce1f408..e1a08555a10 100644 --- a/code/game/gamemodes/blob/blobs/node.dm +++ b/code/game/gamemodes/blob/blobs/node.dm @@ -4,6 +4,7 @@ icon_state = "blank_blob" health = 100 fire_resist = 2 + point_return = 18 var/mob/camera/blob/overmind /obj/structure/blob/node/New(loc, var/h = 100) diff --git a/code/game/gamemodes/blob/blobs/resource.dm b/code/game/gamemodes/blob/blobs/resource.dm index f5d838fd0a2..7198d3ef081 100644 --- a/code/game/gamemodes/blob/blobs/resource.dm +++ b/code/game/gamemodes/blob/blobs/resource.dm @@ -4,6 +4,7 @@ icon_state = "blob_resource" health = 30 fire_resist = 2 + point_return = 12 var/mob/camera/blob/overmind = null var/resource_delay = 0 diff --git a/code/game/gamemodes/blob/blobs/shield.dm b/code/game/gamemodes/blob/blobs/shield.dm index 696a33d94b9..8d13625acb9 100644 --- a/code/game/gamemodes/blob/blobs/shield.dm +++ b/code/game/gamemodes/blob/blobs/shield.dm @@ -5,6 +5,7 @@ desc = "Some blob creature thingy" health = 75 fire_resist = 2 + point_return = 4 var/maxHealth = 75 /obj/structure/blob/shield/update_icon() @@ -27,6 +28,7 @@ brute_resist = 0 health = 50 maxHealth = 50 + point_return = 9 flags_2 = CHECK_RICOCHET_1 var/reflect_chance = 80 //80% chance to reflect diff --git a/code/game/gamemodes/blob/blobs/storage.dm b/code/game/gamemodes/blob/blobs/storage.dm index 8c9da104edf..00f6d7b4e0c 100644 --- a/code/game/gamemodes/blob/blobs/storage.dm +++ b/code/game/gamemodes/blob/blobs/storage.dm @@ -4,6 +4,7 @@ icon_state = "blob_resource" health = 30 fire_resist = 2 + point_return = 12 var/mob/camera/blob/overmind = null /obj/structure/blob/storage/update_icon() diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 382fc8dd953..27906bc80ec 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -15,6 +15,9 @@ var/blob_points = 0 var/max_blob_points = 100 var/last_attack = 0 + var/nodes_required = 1 //if the blob needs nodes to place resource and factory blobs + var/split_used = FALSE + var/is_offspring = FALSE var/datum/reagent/blob/blob_reagent_datum = new/datum/reagent/blob() var/list/blob_mobs = list() var/ghostimage = null diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index a3c219fefdc..6ede85e60c9 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -31,6 +31,16 @@ if(chosen_node) src.loc = chosen_node.loc +/mob/camera/blob/verb/toggle_node_req() + set category = "Blob" + set name = "Toggle Node Requirement" + set desc = "Toggle requiring nodes to place resource and factory blobs." + nodes_required = !nodes_required + if(nodes_required) + to_chat(src, "You now require a nearby node or core to place factory and resource blobs.") + else + to_chat(src, "You no longer require a nearby node or core to place factory and resource blobs.") + /mob/camera/blob/verb/create_shield_power() set category = "Blob" set name = "Create/Upgrade Shield Blob (15)" @@ -103,6 +113,11 @@ to_chat(src, "There is a resource blob nearby, move more than 4 tiles away from it!") return + if(nodes_required) + if(!(locate(/obj/structure/blob/node) in orange(3, T)) && !(locate(/obj/structure/blob/core) in orange(4, T))) + to_chat(src, "You need to place this blob closer to a node or core!") + return //handholdotron 2000 + if(!can_buy(40)) return @@ -174,6 +189,11 @@ to_chat(src, "There is a factory blob nearby, move more than 7 tiles away from it!") return + if(nodes_required) + if(!(locate(/obj/structure/blob/node) in orange(3, T)) && !(locate(/obj/structure/blob/core) in orange(4, T))) + to_chat(src, "You need to place this blob closer to a node or core!") + return //handholdotron 2000 + if(!can_buy(60)) return @@ -210,7 +230,7 @@ var/mob/living/simple_animal/hostile/blob/blobbernaut/blobber = new /mob/living/simple_animal/hostile/blob/blobbernaut (get_turf(B)) if(blobber) qdel(B) - blobber.color = blob_reagent_datum.color + blobber.color = blob_reagent_datum.complementary_color blobber.overmind = src blob_mobs.Add(blobber) return @@ -248,18 +268,25 @@ set desc = "Removes a blob." var/turf/T = get_turf(src) - if(!T) - return + remove_blob(T) + +/mob/camera/blob/proc/remove_blob(var/turf/T) var/obj/structure/blob/B = locate(/obj/structure/blob) in T + if(!T) + return if(!B) - to_chat(src, "You must be on a blob!") + to_chat(src, "There is no blob there!") return - - if(istype(B, /obj/structure/blob/core)) - to_chat(src, "Unable to remove this blob.") + if(B.point_return < 0) + to_chat(src, "Unable to remove this blob.") return - + if(max_blob_points < B.point_return + blob_points) + to_chat(src, "You have too many resources to remove this blob!") + return + if(B.point_return) + add_points(B.point_return) + to_chat(src, "Gained [B.point_return] resources from removing \the [B].") qdel(B) return @@ -331,8 +358,14 @@ /mob/camera/blob/verb/split_consciousness() set category = "Blob" set name = "Split consciousness (100) (One use)" - set desc = "Expend resources to attempt to produce another sentient overmind" + set desc = "Expend resources to attempt to produce another sentient overmind." + if(split_used) + to_chat(src, "You have already produced an offspring.") + return + if(is_offspring) + to_chat(src, "You cannot split as an offspring of another Blob.") + return if(!blob_nodes || !blob_nodes.len) to_chat(src, "A node is required to birth your offspring...") return @@ -340,11 +373,12 @@ if(!N) to_chat(src, "A node is required to birth your offspring...") return - + if(!can_buy(100)) return - verbs -= /mob/camera/blob/verb/split_consciousness //we've used our split_consciousness + split_used = TRUE + new /obj/structure/blob/core/ (get_turf(N), 200, null, blob_core.point_rate, "offspring") qdel(N) @@ -423,7 +457,7 @@ BL.adjustcolors(blob_reagent_datum.color) for(var/mob/living/simple_animal/hostile/blob/BLO) - BLO.adjustcolors(blob_reagent_datum.color) + BLO.adjustcolors(blob_reagent_datum.complementary_color) to_chat(src, "Your reagent is now: [blob_reagent_datum.name] - [blob_reagent_datum.description]") diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 68f0c12f6ba..bf56d1687c5 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -7,6 +7,7 @@ density = 0 opacity = 0 anchored = 1 + var/point_return = 0 //How many points the blob gets back when it removes a blob of that type. If less than 0, blob cannot be removed. var/health = 30 var/health_timestamp = 0 var/brute_resist = 4 diff --git a/code/modules/reagents/chemistry/reagents/blob.dm b/code/modules/reagents/chemistry/reagents/blob.dm index d06ab6443ad..864f39044d3 100644 --- a/code/modules/reagents/chemistry/reagents/blob.dm +++ b/code/modules/reagents/chemistry/reagents/blob.dm @@ -104,7 +104,7 @@ M.adjustStaminaLoss(0.4*volume) M.reagents.add_reagent("frostoil", 0.4*volume) -/datum/reagent/blob/dark_matter +/* /datum/reagent/blob/dark_matter name = "Dark Matter" description = "Deals High Brute damage and sucks everyone and everything closer, creating a vortex of death." id = "dark_matter" @@ -118,7 +118,7 @@ volume = ..() M.apply_damage(0.6*volume, BRUTE) - +*/ /datum/reagent/blob/b_sorium name = "Sorium" description = "Deals High Brute damage, and sends people flying away." From 53ba1b73bbea3cfb3fc622376d7ca670330bd85e Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sat, 30 Mar 2019 02:17:04 +0100 Subject: [PATCH 2/6] Custom icons --- icons/mob/blob.dmi | Bin 483817 -> 486762 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi index ef70ac3155e59ee32d8e4083124a2646a7801ac0..4797c79496e736ab851adc7b5d02e522810ef60c 100644 GIT binary patch delta 28024 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 TxJR9|00000NkvXXu0mjf)!CJo From e2b0324970c96c1e2e790c8c06557a248c86a96c Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sat, 30 Mar 2019 02:28:50 +0100 Subject: [PATCH 3/6] Code improvement --- code/game/gamemodes/blob/overmind.dm | 2 +- code/game/gamemodes/blob/powers.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 27906bc80ec..ca1dffbfa74 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -15,7 +15,7 @@ var/blob_points = 0 var/max_blob_points = 100 var/last_attack = 0 - var/nodes_required = 1 //if the blob needs nodes to place resource and factory blobs + var/nodes_required = TRUE //if the blob needs nodes to place resource and factory blobs var/split_used = FALSE var/is_offspring = FALSE var/datum/reagent/blob/blob_reagent_datum = new/datum/reagent/blob() diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 6ede85e60c9..748823829b5 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -265,7 +265,7 @@ /mob/camera/blob/verb/revert() set category = "Blob" set name = "Remove Blob" - set desc = "Removes a blob." + set desc = "Removes a blob. You will receive 30% cost refund for special Blob structures." var/turf/T = get_turf(src) remove_blob(T) From 8669ea1716109294e2960a2b703f612ea2f214d0 Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sat, 30 Mar 2019 15:00:12 +0100 Subject: [PATCH 4/6] Removed Dark Matter for real, improved descriptions and added Blob Overminds to Check Antagonists verb --- code/datums/mind.dm | 5 +++++ code/game/gamemodes/blob/blob.dm | 2 ++ code/game/gamemodes/blob/blobs/core.dm | 4 ++-- code/modules/admin/player_panel.dm | 3 +++ code/modules/events/blob.dm | 2 +- .../mob/living/simple_animal/friendly/mouse.dm | 1 - code/modules/reagents/chemistry/reagents/blob.dm | 15 --------------- 7 files changed, 13 insertions(+), 19 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 0658c81d90f..b51cfbd4a68 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1442,6 +1442,11 @@ ticker.mode.greet_changeling(src) ticker.mode.update_change_icons_added(src) +/datum/mind/proc/make_Overmind() + if(!(src in ticker.mode.blob_overminds)) + ticker.mode.blob_overminds += src + special_role = SPECIAL_ROLE_BLOB_OVERMIND + /datum/mind/proc/make_Wizard() if(!(src in ticker.mode.wizards)) ticker.mode.wizards += src diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 41068876a54..30934a07214 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -3,6 +3,8 @@ var/list/blobs = list() var/list/blob_cores = list() var/list/blob_nodes = list() +/datum/game_mode + var/list/blob_overminds = list() /datum/game_mode/blob name = "blob" diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index d43e4dc3b38..b0dc48aba93 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -118,7 +118,7 @@ src.overmind = B color = overmind.blob_reagent_datum.color if(B.mind && !B.mind.special_role) - B.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND + B.mind.make_Overmind() spawn(0) if(is_offspring) B.is_offspring = TRUE @@ -131,7 +131,7 @@ if(overmind) overmind.add_points(60) if(overmind.mind) - overmind.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND + overmind.mind.make_Overmind() else log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks a overmind.mind.") else diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 0a943e6a170..92cd3eb2803 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -477,6 +477,9 @@ else dat += "Blob not found!" dat += "" + + if(ticker.mode.blob_overminds.len) + dat += check_role_table("Blob Overminds", ticker.mode.blob_overminds) if(ticker.mode.changelings.len) dat += check_role_table("Changelings", ticker.mode.changelings) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 7ea71547123..6f23bbc5fcd 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -9,7 +9,7 @@ var/turf/T = pick(blobstart) if(!T) return kill() - var/list/candidates = pollCandidates("Do you want to play as a blob?", ROLE_BLOB, 1) + var/list/candidates = pollCandidates("Do you want to play as a blob infested mouse?", ROLE_BLOB, 1) if(!candidates.len) return kill() var/list/vents = list() diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index c84947c7363..f0b27c0dfdd 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -196,7 +196,6 @@ var/datum/mind/blobmind = mind var/client/C = client if(istype(blobmind) && istype(C)) - blobmind.special_role = SPECIAL_ROLE_BLOB var/obj/structure/blob/core/core = new(T, 200, C, 3) core.lateblobtimer() else diff --git a/code/modules/reagents/chemistry/reagents/blob.dm b/code/modules/reagents/chemistry/reagents/blob.dm index 864f39044d3..1dcd414b702 100644 --- a/code/modules/reagents/chemistry/reagents/blob.dm +++ b/code/modules/reagents/chemistry/reagents/blob.dm @@ -104,21 +104,6 @@ M.adjustStaminaLoss(0.4*volume) M.reagents.add_reagent("frostoil", 0.4*volume) -/* /datum/reagent/blob/dark_matter - name = "Dark Matter" - description = "Deals High Brute damage and sucks everyone and everything closer, creating a vortex of death." - id = "dark_matter" - color = "#61407E" - complementary_color = "#8f7ca0" - message = "You feel a thrum as the blob strikes you, and everything flies at you" - -/datum/reagent/blob/dark_matter/reaction_mob(mob/living/M, method=TOUCH, volume) - if(method == TOUCH) - reagent_vortex(M, 0, volume) - volume = ..() - M.apply_damage(0.6*volume, BRUTE) - -*/ /datum/reagent/blob/b_sorium name = "Sorium" description = "Deals High Brute damage, and sends people flying away." From 9e36da5d3af527c0d599277e228d92543dace8fa Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sat, 30 Mar 2019 15:03:46 +0100 Subject: [PATCH 5/6] Code improvement --- code/modules/mob/living/simple_animal/friendly/mouse.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index f0b27c0dfdd..c84947c7363 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -196,6 +196,7 @@ var/datum/mind/blobmind = mind var/client/C = client if(istype(blobmind) && istype(C)) + blobmind.special_role = SPECIAL_ROLE_BLOB var/obj/structure/blob/core/core = new(T, 200, C, 3) core.lateblobtimer() else