diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 1e9b0431a79..b00f42ae443 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -71,7 +71,9 @@ var/radiation_mod = 1 // Radiation modifier var/flash_mod = 1 // Stun from blindness modifier. var/fall_mod = 1 // Fall damage modifier, further modified by brute damage modifier + var/grab_mod = 1 // How easy it is to grab the species. Higher is harder to grab. var/metabolism_mod = 1 // Reagent metabolism modifier + var/vision_flags = DEFAULT_SIGHT // Same flags as glasses. var/inherent_eye_protection // If set, this species has this level of inherent eye protection. var/eyes_are_impermeable = FALSE // If TRUE, this species' eyes are not damaged by phoron. diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index 5c2469fe1f1..f52413de972 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -27,6 +27,7 @@ brute_mod = 2 burn_mod = 4 virus_immune = 1 + grab_mod = 2 warning_low_pressure = 50 //golems can into space now hazard_low_pressure = 0 diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index 7083f723276..a38819d437d 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -33,6 +33,7 @@ brute_mod = 1.5 burn_mod = 1.5 fall_mod = 0.5 + grab_mod = 2 natural_climbing = 1 spawn_flags = IS_RESTRICTED diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index d5283d15b02..b2919dcf276 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -55,6 +55,7 @@ gluttonous = 1 slowdown = 0.5 brute_mod = 0.8 + grab_mod = 0.75 fall_mod = 1.2 ethanol_resistance = 0.4 taste_sensitivity = TASTE_SENSITIVE @@ -223,6 +224,8 @@ name_language = LANGUAGE_SKRELLIAN rarity_value = 3 + grab_mod = 1.25 + spawn_flags = CAN_JOIN | IS_WHITELISTED appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_SOCKS flags = NO_SLIP @@ -291,6 +294,8 @@ even the simplest concepts of other minds. Their alien physiology allows them survive happily off a diet of nothing but light, \ water and other radiation." + grab_mod = 1.1 + has_organ = list( "nutrient channel" = /obj/item/organ/diona/nutrients, "neural strata" = /obj/item/organ/diona/strata, diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm index 8ab48e27167..eff56938be4 100644 --- a/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm +++ b/code/modules/mob/living/carbon/human/species/station/vaurca_subspecies.dm @@ -11,6 +11,7 @@ burn_mod = 1.2 oxy_mod = 1 radiation_mod = 0.5 + grab_mod = 1.25 mob_size = 10 //fairly lighter than the worker type. taste_sensitivity = TASTE_DULL blurb = "Type BA, a sub-type of the generic Type B Warriors, are the second most prominent type of Vaurca society, taking the form of hive security and military grunts. \ @@ -51,6 +52,7 @@ eyes_icons = 'icons/mob/human_face/eyes48x48.dmi' brute_mod = 0.1 //note to self: remove is_synthetic checks for brmod and burnmod burn_mod = 0.8 //2x was a bit too much. we'll see how this goes. + grab_mod = 4 toxins_mod = 1 //they're not used to all our weird human bacteria. breakcuffs = list(MALE,FEMALE,NEUTER) mob_size = 30 @@ -104,6 +106,7 @@ burn_mod = 0.1 fall_mod = 0 toxins_mod = 1 + grab_mod = 10 total_health = 200 breakcuffs = list(MALE,FEMALE,NEUTER) mob_size = 30 diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm index 1d93cfb7b95..99d9e5f363f 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm @@ -16,6 +16,7 @@ allowed_eat_types = TYPE_ORGANIC | TYPE_SYNTHETIC | TYPE_HUMANOID mob_size = 14 fall_mod = 0 + grab_mod = 4 has_limbs = list( "chest" = list("path" = /obj/item/organ/external/chest/unbreakable), diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 83bcb600d54..bd79889b601 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -235,12 +235,19 @@ return if(!assailant.canClick()) return - if(world.time < (last_action + UPGRADE_COOLDOWN)) - return if(!assailant.canmove || assailant.lying) qdel(src) return + var/grab_coeff = 1 + if(ishuman(affecting)) + var/mob/living/carbon/human/H = affecting + if(H.species) + grab_coeff = H.species.grab_mod + + if(world.time < (last_action + (UPGRADE_COOLDOWN * grab_coeff))) + return + last_action = world.time if(state < GRAB_AGGRESSIVE) diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm index bdfdd060612..0de34b81588 100644 --- a/code/modules/mob/mob_grab_specials.dm +++ b/code/modules/mob/mob_grab_specials.dm @@ -90,6 +90,12 @@ attacker.visible_message("[attacker] thrusts \his head into [target]'s skull!") var/damage = 20 + if(attacker.mob_size >= 10) + damage += min(attacker.mob_size, 20) + + if(isunathi(attacker)) + damage += 5 + var/obj/item/clothing/hat = attacker.head if(istype(hat)) damage += hat.force * 3 diff --git a/html/changelogs/bullforamerica.yml b/html/changelogs/bullforamerica.yml new file mode 100644 index 00000000000..4b075ff857f --- /dev/null +++ b/html/changelogs/bullforamerica.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: LordFowl + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "It is easier to grab Unathi, and harder to grab Skrell, Dionaea, and Vaurca Warriors." + - rscadd: "Unathi and large species are more effective at headbutting."