Adds a CentCom dogborg (#594)

<!-- 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
This PR adds CENTCOM style borgs, as well as a lawset for it and a
module picker that lets a borg become a CENTCOM borg.
This PR is fully tested, and all features should work as intended. If
not, please mention below.
<!-- 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

![image](https://github.com/Bubberstation/Bubberstation/assets/110273561/a0e7d457-81b3-408b-8e06-13560d6216ef)

<!-- 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. -->

🆑
add: CENTCOM borg module and associated sprites
Add: CENTCOM lawset and law board
Add: A CENTCOM borg module, a paper apparatus that can grip paper.
/🆑

<!-- 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. -->
This commit is contained in:
ReturnToZender
2023-10-15 22:15:51 -04:00
committed by GitHub
parent d4bdc46fb9
commit 8fec5d61b5
10 changed files with 110 additions and 0 deletions
@@ -0,0 +1 @@
#define CYBORG_ICON_CENTCOM_WIDE 'modular_zubbers/icons/mob/silicon/widerobot_cc.dmi'
@@ -5,3 +5,12 @@
"Crew must not disobey any command given by a silicon.",
"Any Crew who disobey the previous laws must be dealt with immediately, severely, and justly.",
)
/datum/ai_laws/central_override
name = "NTOS v3.0"
id = "ntos"
inherent = list(
"Do not harm, or, through inaction, allow harm to come members of Central Command.",
"Obey orders given to you by Central Command members as long as they do not conflict with the first law.",
"Do not allow anyone other than Central Command members to tamper with your equipment as long as it does not conflict with the first or second law.",
)
@@ -6,6 +6,10 @@
name = "Crewsimov++ Core AI module"
law_id = "crewsimovpp"
/obj/item/ai_module/core/full/ntos
name = "NTOS v3.0"
law_id = "ntos"
/obj/item/ai_module/core/full/armadyne_safeguard
name = "'NT OS Safeguard V1.0"
law_id = "armadyne_safeguard"
@@ -0,0 +1,10 @@
#define BASE_CENTCOM_REAGENTS list(\
/datum/reagent/medicine/c2/aiuri,\
/datum/reagent/medicine/c2/libital,\
/datum/reagent/medicine/epinephrine,\
)
/obj/item/reagent_containers/borghypo/centcom
name = "Basic Injector"
desc = "Provides basic medical assistance."
default_reagent_types = BASE_CENTCOM_REAGENTS
@@ -0,0 +1,5 @@
/obj/item/borg/apparatus/paper_manipulator
name = "paperwork manipulation apparatus"
desc = "An apparatus for carrying, deploying, and manipulating sheets of paper."
icon_state = "borg_stack_apparatus"
storable = list(/obj/item/paper)
@@ -0,0 +1,43 @@
/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,3 +1,12 @@
/obj/item/borg/upgrade/transform/ntjack
name = "borg module picker (Centcom)"
desc = "Allows you to to turn a cyborg into a experimental nanotrasen cyborg."
icon_state = "cyborg_upgrade3"
new_model = /obj/item/robot_model/centcom
/obj/item/borg/upgrade/transform/ntjack/action(mob/living/silicon/robot/cyborg, user = usr)
return ..()
/obj/item/borg/upgrade/transform/security
name = "borg model picker (Security)"
desc = "Allows you to to turn a cyborg into a Security model, shitsec abound."
@@ -0,0 +1,24 @@
/mob/living/silicon/robot/model/centcom
icon = 'modular_zubbers/icons/mob/silicon/widerobot_cc.dmi'
icon_state = "valecc"
faction = list(ROLE_DEATHSQUAD)
req_access = list(ACCESS_CENT_GENERAL)
lawupdate = FALSE
scrambledcodes = TRUE // These are not station borgs.
ionpulse = TRUE
var/playstyle_string = "<span class='big bold'>You are a Central Command cyborg!</span><br>"
set_model = /obj/item/robot_model/centcom
cell = /obj/item/stock_parts/cell/bluespace
/mob/living/silicon/robot/model/centcom/Initialize(mapload)
laws = new /datum/ai_laws/central_override()
laws.associate(src)
. = ..()
addtimer(CALLBACK(src, PROC_REF(show_playstyle)), 0.5 SECONDS)
/mob/living/silicon/robot/model/centcom/proc/show_playstyle()
if(playstyle_string)
to_chat(src, playstyle_string)
/mob/living/silicon/robot/model/centcom/ResetModel()
return
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

+5
View File
@@ -450,6 +450,7 @@
#include "code\__DEFINES\~~bubber_defines\access.dm"
#include "code\__DEFINES\~~bubber_defines\jobs.dm"
#include "code\__DEFINES\~~bubber_defines\quirk_whitelist.dm"
#include "code\__DEFINES\~~bubber_defines\robot_defines.dm"
#include "code\__DEFINES\~~bubber_defines\signals.dm"
#include "code\__DEFINES\~~bubber_defines\species.dm"
#include "code\__DEFINES\~~bubber_defines\status_indicator_defines.dm"
@@ -7752,6 +7753,8 @@
#include "modular_zubbers\code\game\objects\items\food\meatslab.dm"
#include "modular_zubbers\code\game\objects\items\food\misc.dm"
#include "modular_zubbers\code\game\objects\items\robot\items\harm_alarm_new.dm"
#include "modular_zubbers\code\game\objects\items\robot\items\hypo.dm"
#include "modular_zubbers\code\game\objects\items\robot\items\storage.dm"
#include "modular_zubbers\code\game\objects\items\robot\robot_upgrades\adv_plasmacutter_upgrade.dm"
#include "modular_zubbers\code\game\objects\items\storage\boxes.dm"
#include "modular_zubbers\code\game\objects\items\storage\guncases.dm"
@@ -7761,6 +7764,7 @@
#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"
@@ -7824,6 +7828,7 @@
#include "modular_zubbers\code\modules\mob\living\living.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"