mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 09:08:30 +01:00
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  <!-- 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:
@@ -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 |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user