mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-10 15:45:05 +01:00
410cebd7d1
## About The Pull Request Reworks Sleeping Carp significantly. ### Returning Moves: Stomach Knee and Wrist Wrench Stomach Knee, much like the previous incarnation, causes the victim to be winded and stunned, though this version only briefly stuns the victim. It also deals stamina damage and silences the victim for five seconds. It is performed by a Grab Punch combo. Named Kraken Wrack. Wrist Wrench, much like the previous incarnation, disarms the victim of their held items. It also potentially dislocates or breaks their arm, as it rolls with a very high wound chance. It is performed by a Harm Grab combo. Stole Gnashing Teeth's name. ### Gnashing Teeth (as it was) is gone This move didn't do very much at all other than being a harmful punch with more damage. Throwing a bunch of normal punches won't result in anything now. ### Harm Punches are no longer have special overrides, but Sleeping Carp does grant perfect accuracy. Rather than use a bespoke override, Sleeping Carp now merely uses your normal unarmed punch for its standard normal punch. However, rather than leave things to chance, Sleeping Carp grants you perfect accuracy with those standard punches. ### Grabs are treated as one stage higher Now that martial arts can directly interact with grab state, as well as some prior changes to how effective compared to actual grab state is determined, I've reintroduced Sleeping Carp's stickier grabbing by making it so that they elevate the effective grab state by one stage. This is not instant aggro-grabbing like they used to have. This just makes it so that if they try to resist out of a passive grab, they may fail as though it was an aggressive grab, but it won't stun them until it is elevated to a proper aggressive grab. ### What you wear is important for determining the effectiveness of your Attack Dodging (and attack dodging is broader) Sleeping Carp's projectile dodging and now attack dodging is based on whether or not you're 'on theme'. That is, if you are wearing nautical themed clothing and other factors. At a baseline, Sleeping Carp has perfect projectile dodging and no melee/unarmed avoidance. To improve your chances, you need to; - Wear martial arts or carp themed clothing on your head. (20% if one is present, but it only counts one) - Wear martial arts or carp themed clothing on your chest (20% if one is present, but only counts one) - Wear appropriate footwear, like sandals. (20%) - Be a literal carp. (75% flat) - Mutate yourself into a carp person. (20%) However, your chances of avoidance diminishes if: - You wear armored clothing on your head and chest. (based on Melee armor) - While lying on the floor (30%) Holding objects diminishes your chances as well, This is based on the weight of the object, and whether or not the object is wielded. Normal sized objects, for instance, are -30%, and would be -60% if wielded. It will not diminish your chances if: - The object is Small or smaller. - The object is an abstract object or hand grafted object and it doesn't have block chance. - The object is in the exceptions list. - **The exception list is as follows:** - Nunchaku (this is spies exclusive) - Bo Staff (the unobtainable one) - Monk's Staff (the chaplain's null rod) - Bamboo staff - Cane (like, walking cane) - Knives - Bolas - Toolboxes - Spears - Shortswords (the ones from the medieval pirates) - Nullblade (it's a shortsword) - Extendohands (because lol) - Mops - Push Brooms - Baseball Bats - Claw Hammers - Carp plushies. <details> <summary>A list of appropriate clothing</summary> Headwear - Strange Bandana (which come in the kit) - Maid headband - Fancy Hairpin - Carp Mask - Carp-skinned Fedora - Carp Costume Hood (this comes with the costume) - Carp Costume Spacesuit Helmet (as above) Chestwear - Martial Gi (which come in the kit) - Carpskin Suit - Carp Costume - Carp Spacesuit - Maid Outfit - Kimono - Yakuta - Trenchcoats - Geisha Outfit - [Swag Outfit](https://www.youtube.com/watch?v=l6DmoPlq3S4) - Eastern Monk's Outfit (the chaplain outfit) - Buttoned down line of clothes - Blazer jacket - Lawyer jackets Footwear - Sandals (which come in the kit) - Swag Shoes - Laceup Shoes </details> As an example of being OFF theme, being in a full security outfit would reduce your avoidance chance by a whopping 80%. You avoid attacks while in combat mode, much like projectile deflection does on live. You can only get up to a 75% chance melee/unarmed avoidance. ## Why It's Good For The Game > Returning Moves People quite liked some of the older moves, and there weren't as many dials around at the time to make them particularly more interesting when I first removed them. We were aiming for an out and out stun removal as a whole codebase, but largely we're ended up still being comfortable with minor stuns here and there. Stomach Knee can be one of them. Wrist Wrench was something I realized I could reintroduce with literal limb breaking thanks to wound changes. Arm dislocations/breakages are surprisingly rare as a wound type, and since it is an attack on a specific arm, not quite as good for bringing someone to death, but quite good for leaving someone with a maiming wound they now need to fix to keep pursuing you. Highly useful for those stubborn stun immune targets, who Sleeping Carp struggles to fight. As in, they can't really fight them. > Grab Stage A bit of my work and a bit of Melbert's has resulted in this being a lot more reasonable to reintroduce as a benefit. The original instant aggro-grabbing was definitely very oppressive, since it was a pseudo-hardstun that lead into a hardstun. Now this is a bit softer by comparison, and surprisingly quite important. I think the loss of good grabbing ended up filtering a lot of folk somewhat hard. > Removal of the override I was really taken with Spider Bite using baseline punches as the groundwork for the martial art and I wanted to work into that. Not only does it mean becoming a carp person is actually a great idea beyond the avoidance mechanic, but also for your actual basic punches improving. It just in general feels like it opens up possibilities in the game world to experiment and the design of martial arts in general. We should make more martial arts work like this. > Avoidance My original rework had one glaring flaw that continues to haunt it to this day. Defense stacking on Sleeping Carp is ridiculous. Layering defense upon defense makes the one particular immunity it grants, projectile immunity, all the more oppressive. Hiding behind high block and high armor makes you a menace. The end result is that more people utilize Sleeping Carp not for the martial art part, but for the projectile immunity part, usually using something else instead like a baton. This rubs me the wrong way. You would think and hope that the reason people take the martial art is to be a goofy martial artist in space. So, I'm implementing an idea I knew I could never pull off in the framework at the time. I'm implementing Unarmored Defense, bitch. (I was totally also not inspired by Payday 2 in any fashion, nope, not at all) I like the idea of forcing a choice between the goofy outfit that gives you bonuses over just getting the biggest armor you can find and turtling like a motherfucker. And I want people to focus on the martial arts and benefit from the martial arts when you're specifically unarmed. Maybe right now some of the restrictions are a little severe, so if anyone has any opinions, lemme know. ## Changelog 🆑 balance: Completely reworks Sleeping Carp, again. balance: The return of Stomach Knee (Kraken Wrack) and Wrist Wrench (Gnashing Teeth). Time is a flat circle. balance: Sleeping Carp has better grabs (no instant aggro grabs) balance: Sleeping Carp integrates normal unarmed punch by not overriding your normal punches. balance: Sleeping Carp's deflection weakens if you wear armored headwear and body armor, or while carrying objects. However, by wearing martial arts (or carp) themed outfits, you can improve your defenses instead, allowing you to not just dodge bullets, but also incoming melee attacks. balance: Some objects are exempt, like staff weapons (such as mops or the monk's staff), short blades (like knives and shortswords), club-like (baseball bats and toolboxes), or thematic (like extendo hands and carp plushies) balance: You can also get these improvements by being a literal carp or being a carp person. /🆑 --------- Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
215 lines
7.3 KiB
Plaintext
215 lines
7.3 KiB
Plaintext
/obj/item/clothing/suit/jacket
|
|
icon = 'icons/obj/clothing/suits/jacket.dmi'
|
|
worn_icon = 'icons/mob/clothing/suits/jacket.dmi'
|
|
abstract_type = /obj/item/clothing/suit/jacket
|
|
allowed = list(
|
|
/obj/item/flashlight,
|
|
/obj/item/tank/internals/emergency_oxygen,
|
|
/obj/item/tank/internals/plasmaman,
|
|
/obj/item/toy,
|
|
/obj/item/storage/fancy/cigarettes,
|
|
/obj/item/lighter,
|
|
/obj/item/radio,
|
|
)
|
|
body_parts_covered = CHEST|GROIN|ARMS
|
|
cold_protection = CHEST|GROIN|ARMS
|
|
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
|
species_exception = list(/datum/species/golem)
|
|
|
|
/obj/item/clothing/suit/jacket/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.personal_carry_allowed
|
|
|
|
/obj/item/clothing/suit/toggle/jacket
|
|
icon = 'icons/obj/clothing/suits/jacket.dmi'
|
|
worn_icon = 'icons/mob/clothing/suits/jacket.dmi'
|
|
abstract_type = /obj/item/clothing/suit/toggle/jacket
|
|
allowed = list(
|
|
/obj/item/flashlight,
|
|
/obj/item/tank/internals/emergency_oxygen,
|
|
/obj/item/tank/internals/plasmaman,
|
|
/obj/item/tank/jetpack/captain,
|
|
/obj/item/toy,
|
|
/obj/item/storage/fancy/cigarettes,
|
|
/obj/item/lighter,
|
|
/obj/item/radio,
|
|
)
|
|
body_parts_covered = CHEST|GROIN|ARMS
|
|
cold_protection = CHEST|GROIN|ARMS
|
|
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
|
species_exception = list(/datum/species/golem)
|
|
|
|
/obj/item/clothing/suit/toggle/jacket/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.personal_carry_allowed
|
|
|
|
/obj/item/clothing/suit/toggle/jacket/sweater
|
|
name = "sweater jacket"
|
|
desc = "A sweater jacket."
|
|
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
|
|
icon_state = "/obj/item/clothing/suit/toggle/jacket/sweater"
|
|
post_init_icon_state = "sweater"
|
|
greyscale_config = /datum/greyscale_config/sweater
|
|
greyscale_config_worn = /datum/greyscale_config/sweater/worn
|
|
greyscale_colors = "#414344"
|
|
flags_1 = IS_PLAYER_COLORABLE_1
|
|
|
|
/obj/item/clothing/suit/toggle/jacket/trenchcoat
|
|
name = "trenchcoat"
|
|
desc = "A multi-purpose trenchcoat."
|
|
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
|
|
icon_state = "/obj/item/clothing/suit/toggle/jacket/trenchcoat"
|
|
post_init_icon_state = "trenchcoat"
|
|
greyscale_config = /datum/greyscale_config/trenchcoat
|
|
greyscale_config_worn = /datum/greyscale_config/trenchcoat/worn
|
|
greyscale_colors = "#414344"
|
|
flags_1 = IS_PLAYER_COLORABLE_1
|
|
blood_overlay_type = "coat"
|
|
flags_inv = HIDEBELT
|
|
clothing_flags = parent_type::clothing_flags | CARP_STYLE_FACTOR // I know kung-fu
|
|
|
|
/obj/item/clothing/suit/toggle/jacket/trenchcoat/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/blazer
|
|
name = "blazer jacket"
|
|
desc = "A blazer jacket."
|
|
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
|
|
icon_state = "/obj/item/clothing/suit/jacket/blazer"
|
|
post_init_icon_state = "blazer"
|
|
greyscale_config = /datum/greyscale_config/blazer
|
|
greyscale_config_worn = /datum/greyscale_config/blazer/worn
|
|
greyscale_colors = "#414344"
|
|
flags_1 = IS_PLAYER_COLORABLE_1
|
|
clothing_flags = parent_type::clothing_flags | CARP_STYLE_FACTOR
|
|
|
|
/obj/item/clothing/suit/jacket/oversized
|
|
name = "oversized jacket"
|
|
desc = "An oversized jacket."
|
|
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
|
|
icon_state = "/obj/item/clothing/suit/jacket/oversized"
|
|
post_init_icon_state = "jacket_oversized"
|
|
greyscale_config = /datum/greyscale_config/jacket_oversized
|
|
greyscale_config_worn = /datum/greyscale_config/jacket_oversized/worn
|
|
greyscale_colors = "#414344"
|
|
flags_1 = IS_PLAYER_COLORABLE_1
|
|
|
|
/obj/item/clothing/suit/jacket/fancy
|
|
name = "fancy fur coat"
|
|
desc = "Rated 10 out of 10 in Cosmo for best coat brand."
|
|
icon = 'icons/map_icons/clothing/suit/_suit.dmi'
|
|
icon_state = "/obj/item/clothing/suit/jacket/fancy"
|
|
post_init_icon_state = "fancy_coat"
|
|
body_parts_covered = CHEST|GROIN|LEGS|ARMS
|
|
cold_protection = CHEST|GROIN|LEGS|ARMS
|
|
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
|
supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON
|
|
greyscale_config = /datum/greyscale_config/fancy_coat
|
|
greyscale_config_worn = /datum/greyscale_config/fancy_coat/worn
|
|
greyscale_colors = "#EDE3DC#414344"
|
|
flags_1 = IS_PLAYER_COLORABLE_1
|
|
|
|
/obj/item/clothing/suit/jacket/bomber
|
|
name = "bomber jacket"
|
|
desc = "Aviators not included."
|
|
icon_state = "bomberjacket"
|
|
inhand_icon_state = "brownjsuit"
|
|
|
|
/obj/item/clothing/suit/jacket/bomber/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/leather
|
|
name = "leather jacket"
|
|
desc = "Pompadour not included."
|
|
icon_state = "leatherjacket"
|
|
inhand_icon_state = "hostrench"
|
|
resistance_flags = NONE
|
|
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
|
|
|
/obj/item/clothing/suit/jacket/leather/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/leather/biker
|
|
name = "biker jacket"
|
|
desc = "You think I'm not even worth a single dollar, but I feel like a millionare."
|
|
icon_state = "leatherjacket_biker"
|
|
|
|
/obj/item/clothing/suit/jacket/puffer
|
|
name = "puffer jacket"
|
|
desc = "A thick jacket with a rubbery, water-resistant shell."
|
|
icon_state = "pufferjacket"
|
|
inhand_icon_state = "hostrench"
|
|
armor_type = /datum/armor/jacket_puffer
|
|
|
|
/datum/armor/jacket_puffer
|
|
bio = 50
|
|
|
|
/obj/item/clothing/suit/jacket/puffer/vest
|
|
name = "puffer vest"
|
|
desc = "A thick vest with a rubbery, water-resistant shell."
|
|
icon_state = "puffervest"
|
|
inhand_icon_state = "armor"
|
|
body_parts_covered = CHEST|GROIN
|
|
cold_protection = CHEST|GROIN
|
|
armor_type = /datum/armor/puffer_vest
|
|
|
|
/datum/armor/puffer_vest
|
|
bio = 30
|
|
|
|
/obj/item/clothing/suit/jacket/miljacket
|
|
name = "military jacket"
|
|
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
|
|
icon_state = "militaryjacket"
|
|
inhand_icon_state = null
|
|
|
|
/obj/item/clothing/suit/jacket/miljacket/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/letterman
|
|
name = "letterman jacket"
|
|
desc = "A classic brown letterman jacket. Looks pretty hot and heavy."
|
|
icon_state = "letterman"
|
|
inhand_icon_state = null
|
|
species_exception = list(/datum/species/golem)
|
|
|
|
/obj/item/clothing/suit/jacket/letterman/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/letterman_red
|
|
name = "red letterman jacket"
|
|
desc = "A letterman jacket in a sick red color. Radical."
|
|
icon_state = "letterman_red"
|
|
inhand_icon_state = null
|
|
species_exception = list(/datum/species/golem)
|
|
|
|
/obj/item/clothing/suit/jacket/letterman_red/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/letterman_syndie
|
|
name = "blood-red letterman jacket"
|
|
desc = "Oddly, this jacket seems to have a large S on the back..."
|
|
icon_state = "letterman_s"
|
|
inhand_icon_state = null
|
|
species_exception = list(/datum/species/golem)
|
|
|
|
/obj/item/clothing/suit/jacket/letterman_syndie/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|
|
|
|
/obj/item/clothing/suit/jacket/letterman_nanotrasen
|
|
name = "blue letterman jacket"
|
|
desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China."
|
|
icon_state = "letterman_n"
|
|
inhand_icon_state = null
|
|
species_exception = list(/datum/species/golem)
|
|
|
|
/obj/item/clothing/suit/jacket/letterman_nanotrasen/Initialize(mapload)
|
|
. = ..()
|
|
allowed += GLOB.improvised_firearm_allowed
|