mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 13:09:11 +01:00
~Promethean Tweaks: The one with the chemicals, and the other thing. (#5201)
* Promethean Tweaks Round Howevermany We're On Now * Tweak again. Drinks only plink damage that can be regenned. Multiple drinks, or other sources of tox will still mean these are dangerous. * Add Blurb other than just "What has science done?" * Adds the changelog. * Fixes the stupid. * Fixfix @ Ater
This commit is contained in:
@@ -661,12 +661,13 @@
|
||||
I = internal_organs_by_name[O_EYES]
|
||||
if(I.is_broken())
|
||||
return FLASH_PROTECTION_MAJOR
|
||||
else // They can't be flashed if they don't have eyes.
|
||||
else if(!species.dispersed_eyes) // They can't be flashed if they don't have eyes, or widespread sensing surfaces.
|
||||
return FLASH_PROTECTION_MAJOR
|
||||
|
||||
var/number = get_equipment_flash_protection()
|
||||
number = I.get_total_protection(number)
|
||||
I.additional_flash_effects(number)
|
||||
if(I)
|
||||
number = I.get_total_protection(number)
|
||||
I.additional_flash_effects(number)
|
||||
return number
|
||||
|
||||
#define add_clothing_protection(A) \
|
||||
|
||||
@@ -107,6 +107,11 @@
|
||||
|
||||
tally += item_tally
|
||||
|
||||
if(CE_SLOWDOWN in chem_effects)
|
||||
if (tally >= 0 )
|
||||
tally = (tally + tally/4) //Add a quarter of penalties on top.
|
||||
tally += 1
|
||||
|
||||
if(CE_SPEEDBOOST in chem_effects)
|
||||
if (tally >= 0) // cut any penalties in half
|
||||
tally = tally/2
|
||||
|
||||
@@ -75,13 +75,14 @@
|
||||
/datum/unarmed_attack/bite
|
||||
)
|
||||
var/list/unarmed_attacks = null // For empty hand harm-intent attack
|
||||
var/brute_mod = 1 // Physical damage multiplier.
|
||||
var/burn_mod = 1 // Burn damage multiplier.
|
||||
var/oxy_mod = 1 // Oxyloss modifier
|
||||
var/toxins_mod = 1 // Toxloss modifier
|
||||
var/radiation_mod = 1 // Radiation modifier
|
||||
var/flash_mod = 1 // Stun from blindness modifier.
|
||||
var/chemOD_mod = 1 // Damage modifier for overdose
|
||||
var/brute_mod = 1 // Physical damage multiplier.
|
||||
var/burn_mod = 1 // Burn damage multiplier.
|
||||
var/oxy_mod = 1 // Oxyloss modifier
|
||||
var/toxins_mod = 1 // Toxloss modifier
|
||||
var/radiation_mod = 1 // Radiation modifier
|
||||
var/flash_mod = 1 // Stun from blindness modifier.
|
||||
var/sound_mod = 1 // Stun from sounds, I.E. flashbangs.
|
||||
var/chemOD_mod = 1 // Damage modifier for overdose
|
||||
var/vision_flags = SEE_SELF // Same flags as glasses.
|
||||
|
||||
// Death vars.
|
||||
@@ -189,6 +190,7 @@
|
||||
O_EYES = /obj/item/organ/internal/eyes
|
||||
)
|
||||
var/vision_organ // If set, this organ is required for vision. Defaults to "eyes" if the species has them.
|
||||
var/dispersed_eyes // If set, the species will be affected by flashbangs regardless if they have eyes or not, as they see in large areas.
|
||||
|
||||
var/list/has_limbs = list(
|
||||
BP_TORSO = list("path" = /obj/item/organ/external/chest),
|
||||
|
||||
@@ -5,7 +5,11 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
|
||||
name = SPECIES_PROMETHEAN
|
||||
name_plural = "Prometheans"
|
||||
blurb = "What has Science done?"
|
||||
blurb = "Prometheans (Macrolimus artificialis) are a species of artificially-created gelatinous humanoids, \
|
||||
chiefly characterized by their primarily liquid bodies and ability to change their bodily shape and color in order to \
|
||||
mimic many forms of life. Derived from the Aetolian giant slime (Macrolimus vulgaris) inhabiting the warm, tropical planet \
|
||||
of Aetolus, they are a relatively new lab-created sapient species, and as such many things about them have yet to be comprehensively studied. \
|
||||
What has Science done?"
|
||||
show_ssd = "totally quiescent"
|
||||
death_message = "rapidly loses cohesion, splattering across the ground..."
|
||||
knockout_message = "collapses inwards, forming a disordered puddle of goo."
|
||||
@@ -46,6 +50,8 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
brute_mod = 0.75
|
||||
burn_mod = 2
|
||||
oxy_mod = 0
|
||||
flash_mod = 0.5 //No centralized, lensed eyes.
|
||||
item_slowdown_mod = 1.33
|
||||
|
||||
cloning_modifier = /datum/modifier/cloning_sickness/promethean
|
||||
|
||||
@@ -66,6 +72,9 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/slime_glomp)
|
||||
has_organ = list(O_BRAIN = /obj/item/organ/internal/brain/slime) // Slime core.
|
||||
|
||||
dispersed_eyes = TRUE
|
||||
|
||||
has_limbs = list(
|
||||
BP_TORSO = list("path" = /obj/item/organ/external/chest/unbreakable/slime),
|
||||
BP_GROIN = list("path" = /obj/item/organ/external/groin/unbreakable/slime),
|
||||
@@ -143,22 +152,37 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
var/turf/T = H.loc
|
||||
if(istype(T))
|
||||
var/obj/effect/decal/cleanable/C = locate() in T
|
||||
if(C)
|
||||
if(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)))
|
||||
return
|
||||
if(C && !(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & FEET))))
|
||||
qdel(C)
|
||||
if (istype(T, /turf/simulated))
|
||||
var/turf/simulated/S = T
|
||||
S.dirt = 0
|
||||
H.nutrition += rand(15, 45)
|
||||
H.nutrition = min(500, max(0, H.nutrition + rand(15, 30)))
|
||||
|
||||
// Heal remaining damage.
|
||||
if(H.fire_stacks >= 0)
|
||||
if(H.getBruteLoss() || H.getFireLoss() || H.getOxyLoss() || H.getToxLoss())
|
||||
H.adjustBruteLoss(-heal_rate)
|
||||
H.adjustFireLoss(-heal_rate)
|
||||
H.adjustOxyLoss(-heal_rate)
|
||||
H.adjustToxLoss(-heal_rate)
|
||||
var/nutrition_cost = 0
|
||||
var/nutrition_debt = H.getBruteLoss()
|
||||
var/starve_mod = 1
|
||||
if(H.nutrition <= 25)
|
||||
starve_mod = 0.75
|
||||
H.adjustBruteLoss(-heal_rate * starve_mod)
|
||||
nutrition_cost += nutrition_debt - H.getBruteLoss()
|
||||
|
||||
nutrition_debt = H.getFireLoss()
|
||||
H.adjustFireLoss(-heal_rate * starve_mod)
|
||||
nutrition_cost += nutrition_debt - H.getFireLoss()
|
||||
|
||||
nutrition_debt = H.getOxyLoss()
|
||||
H.adjustOxyLoss(-heal_rate * starve_mod)
|
||||
nutrition_cost += nutrition_debt - H.getOxyLoss()
|
||||
|
||||
nutrition_debt = H.getToxLoss()
|
||||
H.adjustToxLoss(-heal_rate * starve_mod)
|
||||
nutrition_cost += nutrition_debt - H.getToxLoss()
|
||||
H.nutrition -= (2 * nutrition_cost) //Costs Nutrition when damage is being repaired, corresponding to the amount of damage being repaired.
|
||||
H.nutrition = max(0, H.nutrition) //Ensure it's not below 0.
|
||||
else
|
||||
H.adjustToxLoss(2*heal_rate) // Doubled because 0.5 is miniscule, and fire_stacks are capped in both directions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user