[MODULAR] Refactors (hopefully) all borg modular changes into one module, adds raptor borgs (#777)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Originally I was supposed to only add raptor borgs, but I am simply too
insane to let this shitcode slide.

Moves most if not all borg modular changes into one module folder
because by god these were spread out over like 8 files.
Improves modularity a bit by moving some borg related bubber edits on
skyrat into our modular files.
Adds raptor borgs

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

<!-- Please make sure to actually test your PRs. If you have not tested
your PR mention it. -->

## Why It's Good For The Game

Modularity good.
Code organizing good.

https://en.wikipedia.org/wiki/Technical_debt

Also new borg sprites are cool, I guess. See icondiff bot for those
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
image: New borg sprites: Raptor
refactor: Moved most if not all bubber borg code into one modular folder
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

<!-- By opening a pull request. You have read and understood the
repository rules located on the main README.md on this project. -->
This commit is contained in:
Waterpig
2023-11-27 21:31:30 -05:00
committed by GitHub
parent 03b0672a65
commit b5e095e380
19 changed files with 168 additions and 58 deletions
@@ -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'
@@ -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"
@@ -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),
@@ -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
@@ -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)),
)
@@ -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)
@@ -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
@@ -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)),
)

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

+4 -5
View File
@@ -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"