diff --git a/code/__DEFINES/~skyrat_defines/robot_defines.dm b/code/__DEFINES/~skyrat_defines/robot_defines.dm index af29c2aaf90..8dde8079fb6 100644 --- a/code/__DEFINES/~skyrat_defines/robot_defines.dm +++ b/code/__DEFINES/~skyrat_defines/robot_defines.dm @@ -34,7 +34,6 @@ #define CYBORG_ICON_SEC 'modular_skyrat/modules/borgs/icons/robots_sec.dmi' #define CYBORG_ICON_SEC_WIDE 'modular_skyrat/modules/borgs/icons/widerobot_sec.dmi' #define CYBORG_ICON_SEC_TALL 'modular_skyrat/modules/borgs/icons/tallrobot_sec.dmi' -#define CYBORG_ICON_SEC_TALL_ALT 'modular_zubbers/altborgs/tallborg/tallrobot_bluesec.dmi' // BUBBER EDIT ADDITION #define CYBORG_ICON_ENG 'modular_skyrat/modules/borgs/icons/robots_eng.dmi' #define CYBORG_ICON_ENG_WIDE 'modular_skyrat/modules/borgs/icons/widerobot_eng.dmi' diff --git a/code/__DEFINES/~~bubber_defines/robot_defines.dm b/code/__DEFINES/~~bubber_defines/robot_defines.dm index a5b611ab3c8..58ecc626dde 100644 --- a/code/__DEFINES/~~bubber_defines/robot_defines.dm +++ b/code/__DEFINES/~~bubber_defines/robot_defines.dm @@ -1 +1,25 @@ -#define CYBORG_ICON_CENTCOM_WIDE 'modular_zubbers/icons/mob/silicon/widerobot_cc.dmi' +// Bubberstation custom borg sprites, add new defines in line with code\__DEFINES\~skyrat_defines\robot_defines.dm format +// To add new sprites, see modular_zubbers\modules\borgs and the respective dmi +#define CYBORG_ICON_CENTCOM_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_cc.dmi' + +#define CYBORG_ICON_MED_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_med.dmi' + +#define CYBORG_ICON_CARGO_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_cargo.dmi' + +#define CYBORG_ICON_SEC_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_sec.dmi' +#define CYBORG_ICON_SEC_TALL_BUBBER 'modular_zubbers/modules/borgs/sprites/tallrobot_bluesec.dmi' + +#define CYBORG_ICON_ENG_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_eng.dmi' + +#define CYBORG_ICON_PEACEKEEPER_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_pk.dmi' + +#define CYBORG_ICON_SERVICE_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_serv.dmi' + +#define CYBORG_ICON_MINING_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_mine.dmi' + +#define CYBORG_ICON_JANI_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_jani.dmi' + +#define CYBORG_ICON_SYNDIE_WIDE_BUBBER 'modular_zubbers/modules/borgs/sprites/widerobot_syndie.dmi' + + +#define CYBORG_ICON_TYPE_RAPTOR "raptor" diff --git a/modular_skyrat/modules/borgs/code/robot_model.dm b/modular_skyrat/modules/borgs/code/robot_model.dm index 5c98ce21299..35d6bff3448 100644 --- a/modular_skyrat/modules/borgs/code/robot_model.dm +++ b/modular_skyrat/modules/borgs/code/robot_model.dm @@ -301,7 +301,6 @@ "K4T" = list(SKIN_ICON_STATE = "k4tsec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), "NiKA" = list(SKIN_ICON_STATE = "fmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), "NiKO" = list(SKIN_ICON_STATE = "mmekasec", SKIN_ICON = CYBORG_ICON_SEC_TALL, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), - "Meka (Alt)" = list(SKIN_ICON_STATE = "mekasecalt", SKIN_ICON = CYBORG_ICON_SEC_TALL_ALT, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), // BUBBER EDIT ADDITION "Default - Treads" = list(SKIN_ICON_STATE = "sec-tread", SKIN_LIGHT_KEY = "sec", SKIN_ICON = CYBORG_ICON_SEC), "Sleek" = list(SKIN_ICON_STATE = "sleeksec", SKIN_ICON = CYBORG_ICON_SEC), "Marina" = list(SKIN_ICON_STATE = "marinasec", SKIN_ICON = CYBORG_ICON_SEC), diff --git a/modular_zubbers/code/modules/altborgs/code/robot_model.dm b/modular_zubbers/code/modules/altborgs/code/robot_model.dm deleted file mode 100644 index 1fe573c0575..00000000000 --- a/modular_zubbers/code/modules/altborgs/code/robot_model.dm +++ /dev/null @@ -1,43 +0,0 @@ -/obj/item/robot_model/centcom //Sprites by QuartzAdachi - name = "Central Command" - basic_modules = list( - /obj/item/assembly/flash/cyborg, - /obj/item/pen/cyborg, - /obj/item/clipboard/cyborg, - /obj/item/hand_labeler/cyborg, - /obj/item/stamp/centcom, - /obj/item/borg/paperplane_crossbow, - /obj/item/weldingtool/mini, - /obj/item/megaphone/command, - /obj/item/paint/anycolor/cyborg, - /obj/item/soap/nanotrasen/cyborg, - /obj/item/borg/cyborghug/medical, - /obj/item/borg/lollipop, - /obj/item/reagent_containers/borghypo/centcom, - /obj/item/extinguisher/mini, - /obj/item/borg/apparatus/paper_manipulator, - /obj/item/screwdriver/cyborg, - /obj/item/crowbar/cyborg, - /obj/item/picket_sign/cyborg, - /obj/item/borg/stun, - ) - radio_channels = list(RADIO_CHANNEL_CENTCOM, RADIO_CHANNEL_COMMAND) - model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NOFLASH) - emag_modules = list( - /obj/item/reagent_containers/spray/cyborg_lube, - /obj/item/paperplane/syndicate/hardlight - ) - special_light_key = null - borg_skins = list( - "Vale" = list(SKIN_ICON_STATE = "valecc", SKIN_ICON = CYBORG_ICON_CENTCOM_WIDE, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) - ) - -/obj/item/robot_model/centcom/rebuild_modules() - ..() - var/mob/living/silicon/robot/cyborg = loc - cyborg.faction |= ROLE_DEATHSQUAD //You're part of CENTCOM now - -/obj/item/robot_model/syndicate/remove_module(obj/item/removed_module, delete_after) - ..() - var/mob/living/silicon/robot/cyborg = loc - cyborg.faction -= ROLE_DEATHSQUAD //You're no longer part of CENTCOM diff --git a/modular_zubbers/code/modules/mob/living/silicon/robot/robot_model.dm b/modular_zubbers/code/modules/mob/living/silicon/robot/robot_model.dm deleted file mode 100644 index 180c39cfd2a..00000000000 --- a/modular_zubbers/code/modules/mob/living/silicon/robot/robot_model.dm +++ /dev/null @@ -1,6 +0,0 @@ -/obj/item/robot_model/syndicatejack/Initialize() - .=..() - borg_skins |= list( - "Vale" = list(SKIN_ICON_STATE = "vale", SKIN_ICON = 'modular_zubbers/icons/mob/silicon/widerobot_syndie.dmi', SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), - "Pupdozer" = list(SKIN_ICON_STATE = "pupdozer", SKIN_ICON = 'modular_zubbers/icons/mob/silicon/widerobot_syndie.dmi', SKIN_FEATURES = list(R_TRAIT_WIDE)), - ) diff --git a/modular_zubbers/code/modules/mob/living/silicon/robot/robot_defines.dm b/modular_zubbers/modules/borgs/code/robot_defines.dm similarity index 92% rename from modular_zubbers/code/modules/mob/living/silicon/robot/robot_defines.dm rename to modular_zubbers/modules/borgs/code/robot_defines.dm index ec5cdee97bb..96355998b99 100644 --- a/modular_zubbers/code/modules/mob/living/silicon/robot/robot_defines.dm +++ b/modular_zubbers/modules/borgs/code/robot_defines.dm @@ -1,5 +1,5 @@ /mob/living/silicon/robot/model/centcom - icon = 'modular_zubbers/icons/mob/silicon/widerobot_cc.dmi' + icon = CYBORG_ICON_CENTCOM_WIDE_BUBBER icon_state = "valecc" faction = list(ROLE_DEATHSQUAD) req_access = list(ACCESS_CENT_GENERAL) diff --git a/modular_zubbers/modules/cargoborg/code/robot_items.dm b/modular_zubbers/modules/borgs/code/robot_items.dm similarity index 50% rename from modular_zubbers/modules/cargoborg/code/robot_items.dm rename to modular_zubbers/modules/borgs/code/robot_items.dm index e5290be5069..77951ebae13 100644 --- a/modular_zubbers/modules/cargoborg/code/robot_items.dm +++ b/modular_zubbers/modules/borgs/code/robot_items.dm @@ -47,3 +47,52 @@ log_silicon("[user] unloaded [extracted_item] onto [chute] ([AREACOORD(chute)]).") in_use = FALSE return +/** + * Cargoborg specific items + * + * Refer to modular_skyrat/modules/cargoborg/code/robot_items.dm for original definitions + */ + +// Override the mail clamp to be able to dispense into mail chutes +/obj/item/borg/hydraulic_clamp/mail/pre_attack(atom/attacked_atom, mob/living/silicon/robot/user, params) + var/obj/machinery/disposal/delivery_chute/chute = attacked_atom + if(istype(attacked_atom, /obj/structure/plasticflaps)) // If we attacked flaps, try locating the chute under them + var/obj/structure/plasticflaps/flaps = attacked_atom + chute = locate(/obj/machinery/disposal/delivery_chute) in flaps.loc.contents + if(!istype(chute)) // This is one way to say we didn't attack a chute or flaps over a chute + return ..() + + if(!istype(user) || !user.Adjacent(attacked_atom) || !COOLDOWN_FINISHED(src, clamp_cooldown) || in_use) + return + + // Not enough charge + if(user?.cell.charge < charge_cost) + balloon_alert(user, "low charge!") + return + + user.cell.use(charge_cost) + in_use = TRUE + COOLDOWN_START(src, clamp_cooldown, cooldown_duration) + + if(!contents.len) + in_use = FALSE + return + + var/extraction_index = selected_item_index ? selected_item_index : contents.len + var/atom/movable/extracted_item = contents[extraction_index] + selected_item_index = 0 + + if (unloading_time > 0.5 SECONDS) // Chat spam reduction + balloon_alert(user, "unloading") + playsound(src, clamp_sound, clamp_sound_volume, FALSE, -5) + COOLDOWN_START(src, clamp_cooldown, cooldown_duration) + + if(!do_after(user, unloading_time, attacked_atom)) + in_use = FALSE + return + + chute.place_item_in_disposal(extracted_item) + visible_message(span_notice("[src.loc] unloads [extracted_item] from [src].")) + log_silicon("[user] unloaded [extracted_item] onto [chute] ([AREACOORD(chute)]).") + in_use = FALSE + return diff --git a/modular_zubbers/modules/borgs/code/robot_model.dm b/modular_zubbers/modules/borgs/code/robot_model.dm new file mode 100644 index 00000000000..c2109f43864 --- /dev/null +++ b/modular_zubbers/modules/borgs/code/robot_model.dm @@ -0,0 +1,89 @@ +/obj/item/robot_model/centcom //Sprites by QuartzAdachi + name = "Central Command" + basic_modules = list( + /obj/item/assembly/flash/cyborg, + /obj/item/pen/cyborg, + /obj/item/clipboard/cyborg, + /obj/item/hand_labeler/cyborg, + /obj/item/stamp/centcom, + /obj/item/borg/paperplane_crossbow, + /obj/item/weldingtool/mini, + /obj/item/megaphone/command, + /obj/item/paint/anycolor/cyborg, + /obj/item/soap/nanotrasen/cyborg, + /obj/item/borg/cyborghug/medical, + /obj/item/borg/lollipop, + /obj/item/reagent_containers/borghypo/centcom, + /obj/item/extinguisher/mini, + /obj/item/borg/apparatus/paper_manipulator, + /obj/item/screwdriver/cyborg, + /obj/item/crowbar/cyborg, + /obj/item/picket_sign/cyborg, + /obj/item/borg/stun, + ) + radio_channels = list(RADIO_CHANNEL_CENTCOM, RADIO_CHANNEL_COMMAND) + model_traits = list(TRAIT_PUSHIMMUNE, TRAIT_NOFLASH) + emag_modules = list( + /obj/item/reagent_containers/spray/cyborg_lube, + /obj/item/paperplane/syndicate/hardlight + ) + special_light_key = null + borg_skins = list( + "Vale" = list(SKIN_ICON_STATE = "valecc", SKIN_ICON = CYBORG_ICON_CENTCOM_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + ) + +/obj/item/robot_model/centcom/rebuild_modules() + ..() + var/mob/living/silicon/robot/cyborg = loc + cyborg.faction |= ROLE_DEATHSQUAD //You're part of CENTCOM now + +/obj/item/robot_model/syndicate/remove_module(obj/item/removed_module, delete_after) + ..() + var/mob/living/silicon/robot/cyborg = loc + cyborg.faction -= ROLE_DEATHSQUAD //You're no longer part of CENTCOM + + +/* BUBBER SPRITE ADDITIONS BELOW */ +/obj/item/robot_model/medical/Initialize(mapload) + . = ..() + borg_skins |= list( + "Raptor" = list(SKIN_ICON_STATE = CYBORG_ICON_TYPE_RAPTOR, SKIN_ICON = CYBORG_ICON_MED_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + ) + +/obj/item/robot_model/engineering/Initialize(mapload) + . = ..() + borg_skins |= list( + "Raptor" = list(SKIN_ICON_STATE = CYBORG_ICON_TYPE_RAPTOR, SKIN_ICON = CYBORG_ICON_ENG_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + ) + +/obj/item/robot_model/janitor/Initialize(mapload) + . = ..() + borg_skins |= list( + "Raptor" = list(SKIN_ICON_STATE = CYBORG_ICON_TYPE_RAPTOR, SKIN_ICON = CYBORG_ICON_JANI_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + ) + +/obj/item/robot_model/miner/Initialize(mapload) + . = ..() + borg_skins |= list( + "Raptor" = list(SKIN_ICON_STATE = CYBORG_ICON_TYPE_RAPTOR, SKIN_ICON = CYBORG_ICON_MINING_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + ) + +/obj/item/robot_model/security/Initialize() + . = ..() + borg_skins |= list( + "Meka - Bluesec" = list(SKIN_ICON_STATE = "mekasecalt", SKIN_ICON = CYBORG_ICON_SEC_TALL_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_UNIQUETIP, R_TRAIT_TALL), SKIN_HAT_OFFSET = 15), + "Raptor" = list(SKIN_ICON_STATE = CYBORG_ICON_TYPE_RAPTOR, SKIN_ICON = CYBORG_ICON_SEC_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + ) + +/obj/item/robot_model/service/Initialize(mapload) + . = ..() + borg_skins |= list( + "Raptor" = list(SKIN_ICON_STATE = CYBORG_ICON_TYPE_RAPTOR, SKIN_ICON = CYBORG_ICON_SERVICE_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)) + ) + +/obj/item/robot_model/syndicatejack/Initialize() + . = ..() + borg_skins |= list( + "Vale" = list(SKIN_ICON_STATE = "vale", SKIN_ICON = CYBORG_ICON_SYNDIE_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_UNIQUEWRECK, R_TRAIT_WIDE)), + "Pupdozer" = list(SKIN_ICON_STATE = "pupdozer", SKIN_ICON = CYBORG_ICON_SYNDIE_WIDE_BUBBER, SKIN_FEATURES = list(R_TRAIT_WIDE)), + ) diff --git a/modular_zubbers/code/modules/altborgs/code/robot_upgrade.dm b/modular_zubbers/modules/borgs/code/robot_upgrade.dm similarity index 100% rename from modular_zubbers/code/modules/altborgs/code/robot_upgrade.dm rename to modular_zubbers/modules/borgs/code/robot_upgrade.dm diff --git a/modular_zubbers/altborgs/tallborg/tallrobot_bluesec.dmi b/modular_zubbers/modules/borgs/sprites/tallrobot_bluesec.dmi similarity index 100% rename from modular_zubbers/altborgs/tallborg/tallrobot_bluesec.dmi rename to modular_zubbers/modules/borgs/sprites/tallrobot_bluesec.dmi diff --git a/modular_zubbers/icons/mob/silicon/widerobot_cc.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_cc.dmi similarity index 100% rename from modular_zubbers/icons/mob/silicon/widerobot_cc.dmi rename to modular_zubbers/modules/borgs/sprites/widerobot_cc.dmi diff --git a/modular_zubbers/modules/borgs/sprites/widerobot_eng.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_eng.dmi new file mode 100644 index 00000000000..659cd3ccac2 Binary files /dev/null and b/modular_zubbers/modules/borgs/sprites/widerobot_eng.dmi differ diff --git a/modular_zubbers/modules/borgs/sprites/widerobot_jani.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_jani.dmi new file mode 100644 index 00000000000..45c4746ad8d Binary files /dev/null and b/modular_zubbers/modules/borgs/sprites/widerobot_jani.dmi differ diff --git a/modular_zubbers/modules/borgs/sprites/widerobot_med.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_med.dmi new file mode 100644 index 00000000000..e34b32356fd Binary files /dev/null and b/modular_zubbers/modules/borgs/sprites/widerobot_med.dmi differ diff --git a/modular_zubbers/modules/borgs/sprites/widerobot_mine.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_mine.dmi new file mode 100644 index 00000000000..099a65b22a4 Binary files /dev/null and b/modular_zubbers/modules/borgs/sprites/widerobot_mine.dmi differ diff --git a/modular_zubbers/modules/borgs/sprites/widerobot_sec.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_sec.dmi new file mode 100644 index 00000000000..d6464d0e956 Binary files /dev/null and b/modular_zubbers/modules/borgs/sprites/widerobot_sec.dmi differ diff --git a/modular_zubbers/modules/borgs/sprites/widerobot_serv.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_serv.dmi new file mode 100644 index 00000000000..d2d31751fa8 Binary files /dev/null and b/modular_zubbers/modules/borgs/sprites/widerobot_serv.dmi differ diff --git a/modular_zubbers/icons/mob/silicon/widerobot_syndie.dmi b/modular_zubbers/modules/borgs/sprites/widerobot_syndie.dmi similarity index 100% rename from modular_zubbers/icons/mob/silicon/widerobot_syndie.dmi rename to modular_zubbers/modules/borgs/sprites/widerobot_syndie.dmi diff --git a/tgstation.dme b/tgstation.dme index 41f20354efb..a4e07eb97fb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8024,8 +8024,6 @@ #include "modular_zubbers\code\game\turf\space.dm" #include "modular_zubbers\code\modules\_defines.dm" #include "modular_zubbers\code\modules\admin\verbs\debug.dm" -#include "modular_zubbers\code\modules\altborgs\code\robot_model.dm" -#include "modular_zubbers\code\modules\altborgs\code\robot_upgrade.dm" #include "modular_zubbers\code\modules\alternative_job_titles\code\alt_job_titles.dm" #include "modular_zubbers\code\modules\antagonists\ashwalker\ashwalker.dm" #include "modular_zubbers\code\modules\asset_cache\assets\arcade.dm" @@ -8119,8 +8117,6 @@ #include "modular_zubbers\code\modules\mob\living\basic\trooper\nanotrasen.dm" #include "modular_zubbers\code\modules\mob\living\carbon\human\human.dm" #include "modular_zubbers\code\modules\mob\living\carbon\human\species_types\shadekin.dm" -#include "modular_zubbers\code\modules\mob\living\silicon\robot\robot_defines.dm" -#include "modular_zubbers\code\modules\mob\living\silicon\robot\robot_model.dm" #include "modular_zubbers\code\modules\mob\living\simple_animal\guardian\guardian.dm" #include "modular_zubbers\code\modules\mob\living\simple_animal\hostile\megafauna\drake.dm" #include "modular_zubbers\code\modules\mod\mod_ai.dm" @@ -8192,7 +8188,10 @@ #include "modular_zubbers\master_files\code\modules\research\designs\weapon_designs.dm" #include "modular_zubbers\modules\ashwalkers\code\effects\ash_rituals.dm" #include "modular_zubbers\modules\automapper\code\area_spawn_entries.dm" -#include "modular_zubbers\modules\cargoborg\code\robot_items.dm" +#include "modular_zubbers\modules\borgs\code\robot_defines.dm" +#include "modular_zubbers\modules\borgs\code\robot_items.dm" +#include "modular_zubbers\modules\borgs\code\robot_model.dm" +#include "modular_zubbers\modules\borgs\code\robot_upgrade.dm" #include "modular_zubbers\modules\clothing\head\helmet.dm" #include "modular_zubbers\modules\customization\modules\mob\dead\new_player\sprite_accessories\skrell_hair.dm" #include "modular_zubbers\modules\customization\modules\mob\living\carbon\human\species\akula.dm"