Merge pull request #1621 from ProbablyCarl/dogborg_fixes

Borg QoL Material
This commit is contained in:
Dahlular
2022-05-17 04:28:05 -06:00
committed by GitHub
11 changed files with 115 additions and 21 deletions
@@ -86,11 +86,11 @@
to_chat(user, "<span class='warning'>Your [src] is already occupied.</span>")
return
user.visible_message("<span class='warning'>[hound.name] is carefully inserting [target.name] into their [src].</span>",
user.visible_message("<span class='warning'>[hound.name] is carefully inserting [target.name] into their [src].</span>",
"<span class='notice'>You start placing [target] into your [src]...</span>")
if(!patient && iscarbon(target) && !target.buckled && do_after (user, 100, target = target))
if(!in_range(src, target))
if(!in_range(src, target))
return
if(patient)
return
@@ -217,7 +217,7 @@
data["occupant"]["fireLoss"] = mob_occupant.getFireLoss()
data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss()
data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN)
if(mob_occupant.reagents.reagent_list.len)
for(var/datum/reagent/R in mob_occupant.reagents.reagent_list)
chemical_list += list(list("name" = R.name, "volume" = R.volume))
@@ -393,7 +393,7 @@
H.playsound_local(source, null, 45, falloff = 0, S = pred_digest)
else if(H in contents)
H.playsound_local(source, null, 65, falloff = 0, S = prey_digest)
UpdateGut(hound)
if(cleaning)
addtimer(CALLBACK(src, .proc/clean_cycle, hound), 50)
@@ -515,7 +515,7 @@
trashman.reset_perspective(src)
user.visible_message("<span class='warning'>[hound.name]'s garbage processor groans lightly as [trashman] slips inside.</span>", "<span class='notice'>Your garbage compactor groans lightly as [trashman] slips inside.</span>")
playsound(hound, 'sound/effects/bin_close.ogg', 80, 1)
UpdateGut(hound)
@@ -523,4 +523,11 @@
var/current_belly = ..()
if(length(contents) > 11)
current_belly = BORGBELLY_RED
return current_belly
return current_belly
/obj/item/dogborg/sleeper/compactor/ore//identical to janihound for moment
name = "ore processor"
desc = "A mounted compactor unit with fuel processor."
icon = 'icons/mob/dogborg.dmi'
icon_state = "compactorb"//needs its own icon
@@ -67,6 +67,12 @@
syndie = TRUE
if(keyslot.independent)
independent = TRUE
//Skyrat edit start
if(extra_channels)
for(var/ch_name in extra_channels)
if(!(ch_name in channels))
channels[ch_name] = extra_channels[ch_name]
//Skyrat edit end
for(var/ch_name in channels)
secure_radio_connections[ch_name] = add_radio(src, GLOB.radiochannels[ch_name])
@@ -200,6 +200,10 @@
INVOKE_ASYNC(RM, .proc/do_transform_animation)
SEND_SIGNAL(R, COMSIG_CYBORG_MODULE_CHANGE) //hyperstation edit
qdel(src)
//Skyrat change start
R.radio.extra_channels = RM.added_channels
R.radio.recalculateChannels()
//Skyrat change stop
return RM
/obj/item/robot_module/proc/be_transformed_to(obj/item/robot_module/old_module)
@@ -0,0 +1,2 @@
/obj/item/radio
var/list/extra_channels = list() //Allows indivudal channels, used for borgs
@@ -0,0 +1,8 @@
/mob/living/silicon/robot/proc/examine_bellies_borg()
var/message = ""
for(var/belly in vore_organs)
var/obj/belly/B = belly
message += B.get_examine_msg()
return message
@@ -1,3 +1,3 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
/mob/living/silicon/robot
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
var/datum/action/cyborg_small_sprite/small_sprite_action //This gets replaced every time the cyborg changes modules --Cyanosis
@@ -1,11 +1,60 @@
//This file is empty right now, but leaves room for people to put shit here in the future for those who are lazy
/obj/item/robot_module
var/list/added_channels = list() //Borg radio stuffs
//service
/obj/item/robot_module/butler
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/clown
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/janitor
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
//engineering
/obj/item/robot_module/engineering
added_channels = list(RADIO_CHANNEL_ENGINEERING = 1)
//medical
/obj/item/robot_module/medical
added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
//security
/obj/item/robot_module/peacekeeper
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
/obj/item/robot_module/security
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
//supply
/obj/item/robot_module/miner
added_channels = list(RADIO_CHANNEL_SUPPLY = 1) // Probably already handled by other code when spawned with pre-set module, but whatever.
//dogborgs
/obj/item/robot_module/k9
added_channels = list(RADIO_CHANNEL_SECURITY = 1)
/obj/item/robot_module/medihound
added_channels = list(RADIO_CHANNEL_MEDICAL = 1)
/obj/item/robot_module/scrubpup
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/borgi
added_channels = list(RADIO_CHANNEL_SERVICE = 1)
/obj/item/robot_module/orepup
added_channels = list(RADIO_CHANNEL_SUPPLY = 1)
//This proc gets called whenever a new robot module is being applied --Cyanosis
/obj/item/robot_module/proc/handle_sprite_action(mob/living/silicon/robot/R, is_huge = FALSE)
ASSERT(istype(R))
if(R.small_sprite_action)
QDEL_NULL(R.small_sprite_action)
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
if(!is_huge) //only from the expander upgrade. The borg won't have an action if they don't have the expander upgrade
return
for(var/P in typesof(/datum/action/cyborg_small_sprite))
var/datum/action/cyborg_small_sprite/action = P
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

@@ -10,6 +10,9 @@
/mob/living/silicon/robot/modules/borgi
set_module = /obj/item/robot_module/borgi
/mob/living/silicon/robot/modules/orepup
set_module = /obj/item/robot_module/orepup
/mob/living/silicon/robot/proc/get_cit_modules()
var/list/modulelist = list()
modulelist["MediHound"] = /obj/item/robot_module/medihound
@@ -17,6 +20,7 @@
modulelist["Security K-9"] = /obj/item/robot_module/k9
modulelist["Scrub Puppy"] = /obj/item/robot_module/scrubpup
modulelist["Borgi"] = /obj/item/robot_module/borgi
modulelist["Orepup"] = /obj/item/robot_module/orepup
return modulelist
/obj/item/robot_module
@@ -261,14 +265,13 @@
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
has_snowflake_deadsprite = TRUE
/*
/obj/item/robot_module/orepup
name = "Ore Pup"
basic_modules = list(
/obj/item/storage/bag/ore/cyborg,
/obj/item/analyzer/nose,
/obj/item/storage/bag/borgdelivery,
/obj/item/dogborg/sleeper/ore,
/obj/item/dogborg/sleeper/compactor/ore,
/obj/item/pickaxe/drill/cyborg,
/obj/item/shovel,
/obj/item/crowbar/cyborg,
@@ -282,20 +285,33 @@
/obj/item/clockwork/slab/cyborg/miner,
/obj/item/clockwork/weapon/ratvarian_spear,
/obj/item/borg/sight/xray/truesight_lens)
cyborg_base_icon = "orepup"
moduleselect_icon = "orepup"
sleeper_overlay = "osleeper"
cyborg_base_icon = "blade"
moduleselect_icon = "miner"
sleeper_overlay = "bladesleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
cyborg_pixel_offset = -16
/obj/item/robot_module/miner/do_transform_animation()
/obj/item/robot_module/orepup/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
R.cut_overlays()
R.setDir(SOUTH)
flick("orepup_transform", R)
do_transform_delay()
R.update_headlamp()
*/
var/static/list/orepup_models
if(!orepup_models)
orepup_models = list(
"blade" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "blade"),
"vale" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "valemine")
)
orepup_models = sortList(orepup_models)
var/orepup_borg_icon = show_radial_menu(R, R , orepup_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE)
if(!orepup_borg_icon)
return
switch(orepup_borg_icon)
if("blade")
cyborg_base_icon = "blade"
if("vale")
cyborg_base_icon = "valemine"
sleeper_overlay = "valeminesleeper"
has_snowflake_deadsprite = TRUE
return ..()
/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
@@ -353,7 +369,7 @@
cyborg_base_icon = "haydeemedical"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
hat_offset = 3
if("qualified_doctor")
cyborg_base_icon = "qualified_doctor"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 KiB

After

Width:  |  Height:  |  Size: 706 KiB

+2
View File
@@ -3115,6 +3115,7 @@
#include "hyperstation\code\game\objects\items\coconutcannon.dm"
#include "hyperstation\code\game\objects\items\cosmetics.dm"
#include "hyperstation\code\game\objects\items\lovedice.dm"
#include "hyperstation\code\game\objects\items\devices\radio\radio.dm"
#include "hyperstation\code\game\objects\items\stacks\tiles\tile_types.dm"
#include "hyperstation\code\game\objects\items\storage\big_bag.dm"
#include "hyperstation\code\game\objects\structures\bench.dm"
@@ -3189,6 +3190,7 @@
#include "hyperstation\code\modules\mob\living\carbon\carbon.dm"
#include "hyperstation\code\modules\mob\living\carbon\human\cosmetic_part_handler.dm"
#include "hyperstation\code\modules\mob\living\carbon\human\species_types\ipc.dm"
#include "hyperstation\code\modules\mob\living\silicon\robot\examine_vr.dm"
#include "hyperstation\code\modules\mob\living\silicon\robot\robot.dm"
#include "hyperstation\code\modules\mob\living\silicon\robot\robot_modules.dm"
#include "hyperstation\code\modules\mob\living\simple_animal\friendly\chicken_types.dm"