[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. -->
@@ -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 |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 75 KiB |
@@ -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"
|
||||
|
||||