Removes the majority of brute/burn mods from species, replaces them with interesting downsides. (#18501)

* species rebalance

* IPC rework PRT 2

* geneless

* grammar

* affected's suggestion

Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>

* Review pass

Co-authored-by: Farie82 <farie82@users.noreply.github.com>

* farie review

* static list

Co-authored-by: AffectedArc07 <25063394+AffectedArc07@users.noreply.github.com>
Co-authored-by: Farie82 <farie82@users.noreply.github.com>
This commit is contained in:
Charlie
2022-07-31 14:28:43 +02:00
committed by GitHub
co-authored by AffectedArc07 Farie82
parent 222f9ae800
commit 9a663e3b1f
9 changed files with 64 additions and 33 deletions
@@ -34,18 +34,25 @@
/datum/weather/rad_storm/weather_act(mob/living/L)
var/resist = L.getarmor(null, RAD)
if(prob(40))
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(!HAS_TRAIT(H, TRAIT_RADIMMUNE))
if(prob(max(0, 100 - resist)))
randmuti(H) // Applies bad mutation
if(prob(50))
if(prob(90))
randmutb(H)
else
randmutg(H)
domutcheck(H, MUTCHK_FORCED)
if(!prob(60))
return
if(!ishuman(L))
return
var/mob/living/carbon/human/H = L
if(HAS_TRAIT(H, TRAIT_RADIMMUNE))
return
if(prob(max(0, 100 - resist)) && !HAS_TRAIT(H, TRAIT_GENELESS))
randmuti(H) // Applies bad mutation
if(prob(50))
if(prob(90))
randmutb(H)
else
randmutg(H)
domutcheck(H, MUTCHK_FORCED)
L.rad_act(20)
+1 -2
View File
@@ -603,8 +603,7 @@
return
if(getBrainLoss() >= 100) // braindeath
AdjustLoseBreath(20 SECONDS, bound_lower = 0, bound_upper = 50 SECONDS)
Weaken(60 SECONDS)
dna.species.handle_brain_death(src)
if(!check_death_method())
if(health <= HEALTH_THRESHOLD_DEAD)
@@ -1002,6 +1002,10 @@ It'll return null if the organ doesn't correspond, so include null checks when u
/datum/species/proc/spec_WakeUp(mob/living/carbon/human/H)
return FALSE
/datum/species/proc/handle_brain_death(mob/living/carbon/human/H)
H.AdjustLoseBreath(20 SECONDS, bound_lower = 0, bound_upper = 50 SECONDS)
H.Weaken(60 SECONDS)
/**
* Species-specific runechat colour handler
*
@@ -8,8 +8,7 @@
unarmed_type = /datum/unarmed_attack/diona
remains_type = /obj/effect/decal/cleanable/ash
burn_mod = 1.25
heatmod = 1.5
heatmod = 3
var/pod = FALSE //did they come from a pod? If so, they're stronger than normal Diona.
blurb = "Commonly referred to (erroneously) as 'plant people', the Dionaea are a strange space-dwelling collective \
@@ -103,7 +102,6 @@
if(!pod && H.health <= 0)
return
H.adjustBruteLoss(-1)
H.adjustFireLoss(-1)
H.adjustToxLoss(-1)
H.adjustOxyLoss(-1)
@@ -14,7 +14,7 @@
male_sneeze_sound = 'sound/voice/drasksneeze.ogg'
female_sneeze_sound = 'sound/voice/drasksneeze.ogg'
burn_mod = 2
burn_mod = 1.5
//exotic_blood = "cryoxadone"
body_temperature = 273
@@ -45,7 +45,7 @@
heat_level_1 = 310 //Default 370 - Higher is better
heat_level_2 = 340 //Default 400
heat_level_3 = 400 //Default 460
heatmod = 2
heatmod = 3 // 4.5 * more damage from body temp
flesh_color = "#a3d4eb"
reagent_tag = PROCESS_ORG
@@ -16,8 +16,6 @@
"eyes" = /obj/item/organ/internal/eyes/grey //5 darksight.
)
brute_mod = 1.25 //greys are fragile
species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS, NO_HAIR)
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_BODY_MARKINGS | HAS_BODYACC_COLOR
@@ -40,14 +38,8 @@
. = ..()
if(method == REAGENT_TOUCH)
if(H.wear_mask)
to_chat(H, "<span class='danger'>Your [H.wear_mask] protects you from the acid!</span>")
if((H.head?.flags & THICKMATERIAL) && (H.wear_suit?.flags & THICKMATERIAL)) // fully pierce proof clothing is also water proof!
return
if(H.head)
to_chat(H, "<span class='danger'>Your [H.wear_mask] protects you from the acid!</span>")
return
if(volume > 25)
if(prob(75))
H.take_organ_damage(5, 10)
@@ -14,15 +14,15 @@
skinned_type = /obj/item/stack/sheet/metal // Let's grind up IPCs for station resources!
eyes = "blank_eyes"
brute_mod = 2.28 // 100% * 2.28 * 0.66 (robolimbs) ~= 150%
burn_mod = 2.28 // So they take 50% extra damage from brute/burn overall
brute_mod = 1 / 0.66 // 1 * 0.66 (robolimbs) * 1/0.66 = 1
burn_mod = 1 / 0.66 // so no damage mod overall.
tox_mod = 0
clone_mod = 0
death_message = "gives a short series of shrill beeps, their chassis shuddering before falling limp, nonfunctional."
death_sounds = list('sound/voice/borg_deathsound.ogg') //I've made this a list in the event we add more sounds for dead robots.
species_traits = list(IS_WHITELISTED, NO_BLOOD, NO_CLONESCAN, NO_INTORGANS)
inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_NOBREATH, TRAIT_RADIMMUNE, TRAIT_NOGERMS, TRAIT_NODECAY, TRAIT_NOPAIN, TRAIT_GENELESS) //Computers that don't decay? What a lie!
inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_NOBREATH, TRAIT_NOGERMS, TRAIT_NODECAY, TRAIT_NOPAIN, TRAIT_GENELESS) //Computers that don't decay? What a lie!
inherent_biotypes = MOB_ROBOTIC | MOB_HUMANOID
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_SKIN_COLOR | HAS_HEAD_MARKINGS | HAS_HEAD_ACCESSORY | ALL_RPARTS
@@ -161,3 +161,35 @@
H.change_hair(new_style, 1) // The 1 is to enable custom sprites
if(new_color)
H.change_hair_color(new_color)
/datum/species/machine/spec_electrocute_act(mob/living/carbon/human/H, shock_damage, source, siemens_coeff, flags)
H.adjustBrainLoss(shock_damage)
H.adjust_nutrition(shock_damage)
/datum/species/machine/handle_mutations_and_radiation(mob/living/carbon/human/H)
H.adjustBrainLoss(H.radiation / 100)
H.AdjustHallucinate(H.radiation)
H.radiation = 0
return TRUE
/datum/species/machine/handle_brain_death(mob/living/carbon/human/H)
H.Weaken(60 SECONDS)
H.adjustBrainLoss(1) // 40 seconds to live
if(prob(20))
var/static/list/error_messages = list("Error 196: motor functions failing.",
"Error 32: Process %^~#/£ cannot be reached, being used by another file.",
"Error 39: Cannot write to central memory unit, storage full.",
"Error -1: isogjiohrj90903744kfgkgrpopK!!",
"Error -1: poafejOIDAIJjamfooooWADm!afe!",
"Error -1: PIKFAjgaiosafjiGGIGHasksid!!",
"Error 534: Arithmetic result exceeded 512 bits.",
"Error 0: Operation completed successfully.",
"WARNING, CRITICAL COMPONENT ERROR, attempting to troubleshoot....",
"runtime in sentience.dm, cannot modify null.som, STACK TRACE:",
"master controller timed out, likely infinite recursion loop.",
"Error 6344: Cannot delete file ~/2tmp1/8^33, no space left on device",
"Error 42: Unable to display error message.",
"Daisy.... Daisy...."
)
var/error_message = pick(error_messages)
to_chat(H, "<span class='boldwarning'>[error_message]</span>")
@@ -36,7 +36,6 @@
default_headacc = "Simple"
default_headacc_colour = "#404040"
butt_sprite = "unathi"
brute_mod = 1.05
has_organ = list(
"heart" = /obj/item/organ/internal/heart/unathi,
@@ -16,7 +16,7 @@
smell.<br/><br/>Most humans will never meet a Vox raider, instead learning of this insular species through \
dealing with their traders and merchants; those that do rarely enjoy the experience."
brute_mod = 1.2 //20% more brute damage. Fragile bird bones.
oxy_mod = 2 // die slightly faster in crit or areas without N2
breathid = "n2"