mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 07:46:20 +00:00
Adds Kinetic Prosthetics (#4861)
## About The Pull Request Adds kinetic prosthetics! These prosthetics are simple, yet elegant affairs. Offers a non-robotic alternative to surplus prosthetic limbs that are nicer looking than peg limbs. Kinetics: - Are immune to EMPs - Attach/detach easily - Cause no wounds - Don't hit hard - Don't allow you to use guns (or anything locked by big hands) - Have no feeling - Look nicer than peg limbs. Available at roundstart (via Augments+) or via cargo crate. ## Why It's Good For The Game Kinetics provide a simpler alternative to the surplus prosthetic limbs, that aren't robotic, and are more advanced than peg limbs. Offers a middle ground between pegs and surplus prosthetics. They're also available at roundstart and via cargo crate order, unlike peg limbs which need to be crafted. More variety is always a nice thing! ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> <img width="71" height="72" alt="3f796af75db3578c47279e8d40a24e7b" src="https://github.com/user-attachments/assets/0e1d30bb-0d9e-4419-9d99-81738d47068d" /> <img width="68" height="67" alt="a15f7441914d6a2032160bd9319bba07" src="https://github.com/user-attachments/assets/647cb95e-6994-4f57-9ecb-eceadd807b8b" /> <img width="68" height="70" alt="506d69ae2eb0e5057291a1494c43a4d7" src="https://github.com/user-attachments/assets/3ce7da3d-7a08-487e-b9cd-ea3d3ca8d408" /> <img width="66" height="66" alt="85ad4d9c4d550d1e98050c1a1474630d" src="https://github.com/user-attachments/assets/3df9f39e-8284-44fe-abc4-cf9f25a33c07" /> <br> <img width="397" height="372" alt="f29384d507fb0dd21faff1769f9db6f3" src="https://github.com/user-attachments/assets/cb6cbee8-3dc8-4af8-b73d-53eae80bf37e" /> <img width="632" height="81" alt="f0b7048ea1c926fbe94eba55923ac1a9" src="https://github.com/user-attachments/assets/e80f8930-0678-41d7-b859-5e5c5927c480" /> </details> ## Changelog 🆑 add: Added new prosthetics: simple kinetic prosthetics! They offer a middle ground prosthetic between peg limbs and surplus robotics. add: New options to Augments+ to have roundstart kinetic prosthetics. add: Kinetic prosthetic limb cargo pack: includes two full sets of kinetics. Costs 1000cr, needs medical access. /🆑 --------- Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
This commit is contained in:
@@ -167,6 +167,10 @@
|
||||
#define BODYSHAPE_HIDE_SHOES (1<<12)
|
||||
///The limb causes glasses and hats to be drawn on layers 5 and 4 respectively. Currently used for snouts with the (Top) suffix, which are drawn on layer 6 and would normally cover facewear
|
||||
#define BODYSHAPE_ALT_FACEWEAR_LAYER (1<<13)
|
||||
// BUBBER EDIT ADDITION: START - Adding the kinetic bodytype
|
||||
///The limb is a kinetic prosthetic.
|
||||
#define BODYTYPE_KINETIC (1<<14)
|
||||
// BUBBER EDIT ADDITION: END
|
||||
|
||||
// SKYRAT EDIT END
|
||||
|
||||
@@ -225,7 +229,7 @@
|
||||
#define BODYPART_ID_PSYKER "psyker"
|
||||
#define BODYPART_ID_MEAT "meat"
|
||||
#define BODYPART_ID_PEG "peg"
|
||||
|
||||
#define BODYPART_ID_KINETIC "kinetic" // BUBBER EDIT ADDITION: kinetic bodypart id
|
||||
|
||||
//See: datum/species/var/digitigrade_customization
|
||||
///The species does not have digitigrade legs in generation.
|
||||
|
||||
1
code/__DEFINES/~~bubber_defines/bodyparts.dm
Normal file
1
code/__DEFINES/~~bubber_defines/bodyparts.dm
Normal file
@@ -0,0 +1 @@
|
||||
#define LIMB_BODY_DAMAGE_COEFFICIENT_KINETIC 0 //Used by kinetic prosthetics
|
||||
13
modular_zubbers/code/modules/cargo/packs/medical.dm
Normal file
13
modular_zubbers/code/modules/cargo/packs/medical.dm
Normal file
@@ -0,0 +1,13 @@
|
||||
/datum/supply_pack/medical/kinetics
|
||||
name = "Kinetic Prosthetic Limbs Crate"
|
||||
desc = "Contains two sets of four kinetic prosthetic limbs to provide a \
|
||||
simpler alternative to advanced prosthetics."
|
||||
cost = CARGO_CRATE_VALUE * 5
|
||||
contains = list(
|
||||
/obj/item/bodypart/arm/left/kinetic = 2,
|
||||
/obj/item/bodypart/arm/right/kinetic = 2,
|
||||
/obj/item/bodypart/leg/left/kinetic = 2,
|
||||
/obj/item/bodypart/leg/right/kinetic = 2,
|
||||
)
|
||||
crate_name = "kinetics crate"
|
||||
crate_type = /obj/structure/closet/crate/medical
|
||||
@@ -0,0 +1,23 @@
|
||||
/datum/augment_item/limb/l_arm/kinetic
|
||||
name = "Kinetic prosthetic left arm"
|
||||
path = /obj/item/bodypart/arm/left/kinetic
|
||||
cost = -2
|
||||
uses_robotic_styles = FALSE
|
||||
|
||||
/datum/augment_item/limb/r_arm/kinetic
|
||||
name = "Kinetic prosthetic right arm"
|
||||
path = /obj/item/bodypart/arm/right/kinetic
|
||||
cost = -2
|
||||
uses_robotic_styles = FALSE
|
||||
|
||||
/datum/augment_item/limb/l_leg/kinetic
|
||||
name = "Kinetic prosthetic left leg"
|
||||
path = /obj/item/bodypart/leg/left/kinetic
|
||||
cost = -2
|
||||
uses_robotic_styles = FALSE
|
||||
|
||||
/datum/augment_item/limb/r_leg/kinetic
|
||||
name = "Kinetic prosthetic right leg"
|
||||
path = /obj/item/bodypart/leg/right/kinetic
|
||||
cost = -2
|
||||
uses_robotic_styles = FALSE
|
||||
93
modular_zubbers/code/modules/surgery/bodyparts/kinetic.dm
Normal file
93
modular_zubbers/code/modules/surgery/bodyparts/kinetic.dm
Normal file
@@ -0,0 +1,93 @@
|
||||
/obj/item/bodypart/arm/left/kinetic
|
||||
name = "left kinetic prosthetic arm"
|
||||
desc = "A simple, yet elegantly designed, prosthetic. Intended to give some functionality back to the user and retain the appearance of an organic arm, but its use is limited to simple actions, as it lacks fine motor control."
|
||||
icon_static = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon_state = "kinetic_l_arm"
|
||||
limb_id = BODYPART_ID_KINETIC
|
||||
bodytype = BODYTYPE_KINETIC
|
||||
should_draw_greyscale = FALSE
|
||||
attack_verb_simple = list("bashed", "slashed")
|
||||
unarmed_damage_low = 1
|
||||
unarmed_damage_high = 5
|
||||
unarmed_effectiveness = 0
|
||||
max_damage = LIMB_MAX_HP_PROSTHESIS
|
||||
body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_KINETIC
|
||||
bodypart_traits = list(TRAIT_CHUNKYFINGERS, TRAIT_EASYDISMEMBER)
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = BIO_INORGANIC
|
||||
|
||||
/obj/item/bodypart/arm/left/kinetic/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_EASY_ATTACH, INNATE_TRAIT)
|
||||
|
||||
/obj/item/bodypart/arm/right/kinetic
|
||||
name = "right kinetic prosthetic arm"
|
||||
desc = "A simple, yet elegantly designed, prosthetic. Intended to give some functionality back to the user and retain the appearance of an organic arm, but its use is limited to simple actions, as it lacks fine motor control."
|
||||
icon_static = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon_state = "kinetic_r_arm"
|
||||
limb_id = BODYPART_ID_KINETIC
|
||||
bodytype = BODYTYPE_KINETIC
|
||||
should_draw_greyscale = FALSE
|
||||
attack_verb_simple = list("bashed", "slashed")
|
||||
unarmed_damage_low = 1
|
||||
unarmed_damage_high = 5
|
||||
unarmed_effectiveness = 0
|
||||
max_damage = LIMB_MAX_HP_PROSTHESIS
|
||||
body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_KINETIC
|
||||
bodypart_traits = list(TRAIT_CHUNKYFINGERS, TRAIT_EASYDISMEMBER)
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = BIO_INORGANIC
|
||||
|
||||
/obj/item/bodypart/arm/right/kinetic/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_EASY_ATTACH, INNATE_TRAIT)
|
||||
|
||||
/obj/item/bodypart/leg/left/kinetic
|
||||
name = "left kinetic prosthetic leg"
|
||||
desc = "A simple, yet elegantly designed, prosthetic. Rather than a normal foot on the end, this prosthetic is fitted with a simple blade style foot, allowing the user to walk as normal."
|
||||
icon_static = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon_state = "kinetic_r_leg"
|
||||
limb_id = BODYPART_ID_KINETIC
|
||||
bodytype = BODYTYPE_KINETIC
|
||||
should_draw_greyscale = FALSE
|
||||
unarmed_damage_low = 1
|
||||
unarmed_damage_high = 5
|
||||
unarmed_effectiveness = 0
|
||||
max_damage = LIMB_MAX_HP_PROSTHESIS
|
||||
body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_KINETIC
|
||||
bodypart_traits = list(TRAIT_EASYDISMEMBER)
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = BIO_INORGANIC
|
||||
|
||||
/obj/item/bodypart/leg/left/kinetic/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_EASY_ATTACH, INNATE_TRAIT)
|
||||
|
||||
/obj/item/bodypart/leg/right/kinetic
|
||||
name = "right kinetic prosthetic leg"
|
||||
desc = "A simple, yet elegantly designed, prosthetic. Rather than a normal foot on the end, this prosthetic is fitted with a simple blade style foot, allowing the user to walk as normal."
|
||||
icon_static = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon = 'modular_zubbers/icons/mob/human/kinetic.dmi'
|
||||
icon_state = "kinetic_l_leg"
|
||||
limb_id = BODYPART_ID_KINETIC
|
||||
bodytype = BODYTYPE_KINETIC
|
||||
should_draw_greyscale = FALSE
|
||||
unarmed_damage_low = 1
|
||||
unarmed_damage_high = 5
|
||||
unarmed_effectiveness = 0
|
||||
max_damage = LIMB_MAX_HP_PROSTHESIS
|
||||
body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_KINETIC
|
||||
bodypart_traits = list(TRAIT_EASYDISMEMBER)
|
||||
disabling_threshold_percentage = 1
|
||||
bodypart_flags = BODYPART_UNHUSKABLE
|
||||
biological_state = BIO_INORGANIC
|
||||
|
||||
/obj/item/bodypart/leg/right/kinetic/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_EASY_ATTACH, INNATE_TRAIT)
|
||||
BIN
modular_zubbers/icons/mob/human/kinetic.dmi
Normal file
BIN
modular_zubbers/icons/mob/human/kinetic.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
@@ -510,6 +510,7 @@
|
||||
#include "code\__DEFINES\~skyrat_defines\traits\declarations.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\access.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\bloodsucker.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\bodyparts.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\cameranets.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\changeling_zombie.dm"
|
||||
#include "code\__DEFINES\~~bubber_defines\chat.dm"
|
||||
@@ -9199,6 +9200,7 @@
|
||||
#include "modular_zubbers\code\modules\cargo\packs\contraband.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\general.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\goodies.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\medical.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\metalsheets.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\security.dm"
|
||||
#include "modular_zubbers\code\modules\cargo\packs\service.dm"
|
||||
@@ -9271,6 +9273,7 @@
|
||||
#include "modular_zubbers\code\modules\credits\credits.dm"
|
||||
#include "modular_zubbers\code\modules\customization\height_scaling\icons.dm"
|
||||
#include "modular_zubbers\code\modules\customization\height_scaling\preferences.dm"
|
||||
#include "modular_zubbers\code\modules\customization\modules\client\augment\limbs.dm"
|
||||
#include "modular_zubbers\code\modules\customization\modules\reagents\drink_reagents.dm"
|
||||
#include "modular_zubbers\code\modules\customization\quad_eyes\preferences.dm"
|
||||
#include "modular_zubbers\code\modules\customization\species\lycans\__DEFINES.dm"
|
||||
@@ -9743,6 +9746,7 @@
|
||||
#include "modular_zubbers\code\modules\surgery\advanced\trauma_surgery.dm"
|
||||
#include "modular_zubbers\code\modules\surgery\bodyparts\_bodyparts.dm"
|
||||
#include "modular_zubbers\code\modules\surgery\bodyparts\dismemberment.dm"
|
||||
#include "modular_zubbers\code\modules\surgery\bodyparts\kinetic.dm"
|
||||
#include "modular_zubbers\code\modules\surgery\bodyparts\species_parts\misc_bodyparts.dm"
|
||||
#include "modular_zubbers\code\modules\surgery\organs\ear_surgery.dm"
|
||||
#include "modular_zubbers\code\modules\surgery\organs\eye_surgery.dm"
|
||||
|
||||
Reference in New Issue
Block a user