mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-14 17:45:02 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -129,7 +129,7 @@
|
||||
// SKYRAT EDIT BEGIN
|
||||
if(owner.dna.features["body_size"] < 1 || isteshari(owner))
|
||||
to_chat(owner, "You feel your body try to shrink, but your organs don't! Uh oh!")
|
||||
owner.adjustBruteLoss(25)
|
||||
owner.adjust_brute_loss(25)
|
||||
return
|
||||
// SKYRAT EDIT END
|
||||
ADD_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION)
|
||||
@@ -200,7 +200,7 @@
|
||||
// SKYRAT EDIT BEGIN
|
||||
if(owner.dna.features["body_size"] > 1)
|
||||
to_chat(owner, "You feel your body expanding even further, but it feels like your bones are expanding too much!")
|
||||
owner.adjustBruteLoss(25) // take some DAMAGE
|
||||
owner.adjust_brute_loss(25) // take some DAMAGE
|
||||
return
|
||||
// SKYRAT EDIT END
|
||||
ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION)
|
||||
@@ -726,9 +726,9 @@
|
||||
return
|
||||
// Gives you 30 seconds of being in soft crit... give or take
|
||||
if(HAS_TRAIT(owner, TRAIT_TOXIMMUNE) || HAS_TRAIT(owner, TRAIT_TOXINLOVER))
|
||||
owner.adjustBruteLoss(1 * seconds_per_tick * GET_MUTATION_SYNCHRONIZER(src), forced = TRUE)
|
||||
owner.adjust_brute_loss(1 * seconds_per_tick * GET_MUTATION_SYNCHRONIZER(src), forced = TRUE)
|
||||
else
|
||||
owner.adjustToxLoss(0.5 * seconds_per_tick * GET_MUTATION_SYNCHRONIZER(src), forced = TRUE)
|
||||
owner.adjustBruteLoss(0.5 * seconds_per_tick * GET_MUTATION_SYNCHRONIZER(src), forced = TRUE)
|
||||
owner.adjust_tox_loss(0.5 * seconds_per_tick * GET_MUTATION_SYNCHRONIZER(src), forced = TRUE)
|
||||
owner.adjust_brute_loss(0.5 * seconds_per_tick * GET_MUTATION_SYNCHRONIZER(src), forced = TRUE)
|
||||
// Offsets suffocation but not entirely
|
||||
owner.adjustOxyLoss(-0.5 * seconds_per_tick, forced = TRUE)
|
||||
owner.adjust_oxy_loss(-0.5 * seconds_per_tick, forced = TRUE)
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
if(!collateral_mob.density || collateral_mob == yeeted_person)
|
||||
continue
|
||||
|
||||
yeeted_person.adjustBruteLoss(step*0.5)
|
||||
yeeted_person.adjust_brute_loss(step*0.5)
|
||||
playsound(collateral_mob,'sound/items/weapons/punch1.ogg',50,TRUE)
|
||||
log_combat(the_hulk, collateral_mob, "has smacked with tail swing victim")
|
||||
log_combat(the_hulk, yeeted_person, "has smacked this person into someone while tail swinging") // i have no idea how to better word this
|
||||
@@ -192,14 +192,14 @@
|
||||
if(collateral_mob == the_hulk) // if the hulk moves wrong and crosses himself
|
||||
the_hulk.visible_message(span_warning("[the_hulk] smacks [the_hulk.p_them()]self with [yeeted_person]!"), span_userdanger("You end up smacking [yeeted_person] into yourself!"), ignored_mobs = yeeted_person)
|
||||
to_chat(yeeted_person, span_userdanger("[the_hulk] smacks you into [the_hulk.p_them()]self, turning you free!"))
|
||||
the_hulk.adjustBruteLoss(step)
|
||||
the_hulk.adjust_brute_loss(step)
|
||||
return
|
||||
|
||||
yeeted_person.visible_message(span_warning("[the_hulk] swings [yeeted_person] directly into [collateral_mob], sending [collateral_mob.p_them()] flying!"), \
|
||||
span_userdanger("You're smacked into [collateral_mob]!"), ignored_mobs = collateral_mob)
|
||||
to_chat(collateral_mob, span_userdanger("[the_hulk] swings [yeeted_person] directly into you, sending you flying!"))
|
||||
|
||||
collateral_mob.adjustBruteLoss(step*0.5)
|
||||
collateral_mob.adjust_brute_loss(step*0.5)
|
||||
collateral_mob.throw_at(collat_throw_target, round(step * 0.25) + 1, round(step * 0.25) + 1)
|
||||
step -= 5
|
||||
delay += 5
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
if(iscarbon(cast_on))
|
||||
var/mob/living/carbon/carbon_cast_on = cast_on
|
||||
carbon_cast_on.adjustOrganLoss(ORGAN_SLOT_EYES, eye_damage)
|
||||
carbon_cast_on.adjust_organ_loss(ORGAN_SLOT_EYES, eye_damage)
|
||||
|
||||
///X-ray Vision lets you see through walls.
|
||||
/datum/mutation/xray
|
||||
|
||||
@@ -220,9 +220,9 @@
|
||||
. = FALSE
|
||||
|
||||
// Damage to heal
|
||||
var/brute_to_heal = min(hurtguy.getBruteLoss(), 35 * heal_multiplier)
|
||||
var/brute_to_heal = min(hurtguy.get_brute_loss(), 35 * heal_multiplier)
|
||||
// no double dipping
|
||||
var/burn_to_heal = min(hurtguy.getFireLoss(), (35 - brute_to_heal) * heal_multiplier)
|
||||
var/burn_to_heal = min(hurtguy.get_fire_loss(), (35 - brute_to_heal) * heal_multiplier)
|
||||
|
||||
// Get at least organic limb to transfer the damage to
|
||||
var/list/mendicant_organic_limbs = list()
|
||||
@@ -241,11 +241,11 @@
|
||||
mendicant_transfer_limb.receive_damage(brute_to_heal * pain_multiplier, burn_to_heal * pain_multiplier, forced = TRUE, wound_bonus = CANT_WOUND)
|
||||
|
||||
if(brute_to_heal)
|
||||
hurtguy.adjustBruteLoss(-brute_to_heal)
|
||||
hurtguy.adjust_brute_loss(-brute_to_heal)
|
||||
. = TRUE
|
||||
|
||||
if(burn_to_heal)
|
||||
hurtguy.adjustFireLoss(-burn_to_heal)
|
||||
hurtguy.adjust_fire_loss(-burn_to_heal)
|
||||
. = TRUE
|
||||
|
||||
if(!.)
|
||||
@@ -306,49 +306,43 @@
|
||||
iter_wound.remove_wound()
|
||||
iter_wound.apply_wound(mendicant_transfer_limb)
|
||||
|
||||
if(HAS_TRAIT(mendicant, TRAIT_NOBLOOD))
|
||||
if(!CAN_HAVE_BLOOD(mendicant) || !CAN_HAVE_BLOOD(hurtguy))
|
||||
return .
|
||||
|
||||
// 10% base
|
||||
var/max_blood_transfer = (BLOOD_VOLUME_NORMAL * 0.10) * heal_multiplier
|
||||
// Too little blood
|
||||
if(hurtguy.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
var/max_blood_to_hurtguy = min(mendicant.blood_volume, BLOOD_VOLUME_NORMAL - hurtguy.blood_volume)
|
||||
var/blood_to_hurtguy = min(max_blood_transfer, max_blood_to_hurtguy)
|
||||
if(!blood_to_hurtguy)
|
||||
return .
|
||||
|
||||
if(hurtguy.get_blood_volume() < BLOOD_VOLUME_NORMAL)
|
||||
// We ignore incompatibility here.
|
||||
if(!mendicant.transfer_blood_to(hurtguy, blood_to_hurtguy, forced = TRUE, ignore_incompatibility = TRUE))
|
||||
var/blood_transferred = mendicant.transfer_blood_to(hurtguy, max_blood_transfer, ignore_low_blood = TRUE, ignore_incompatibility = TRUE)
|
||||
|
||||
if(!blood_transferred)
|
||||
return
|
||||
|
||||
to_chat(mendicant, span_notice("Your veins (and brain) feel a bit lighter."))
|
||||
. = TRUE
|
||||
// Because we do our own spin on it!
|
||||
if(hurtguy.get_blood_compatibility(mendicant) == FALSE)
|
||||
hurtguy.adjustToxLoss((blood_to_hurtguy * 0.1) * pain_multiplier) // 1 dmg per 10 blood
|
||||
hurtguy.adjust_tox_loss((blood_transferred * 0.1) * pain_multiplier) // 1 dmg per 10 blood
|
||||
to_chat(hurtguy, span_notice("Your veins feel thicker, but they itch a bit."))
|
||||
else
|
||||
to_chat(hurtguy, span_notice("Your veins feel thicker!"))
|
||||
return
|
||||
|
||||
if(hurtguy.blood_volume < BLOOD_VOLUME_MAXIMUM)
|
||||
if(hurtguy.get_blood_volume() < BLOOD_VOLUME_EXCESS)
|
||||
return
|
||||
|
||||
// Too MUCH blood
|
||||
var/max_blood_to_mendicant = BLOOD_VOLUME_EXCESS - hurtguy.blood_volume
|
||||
var/blood_to_mendicant = min(max_blood_transfer, max_blood_to_mendicant)
|
||||
// mender always gonna have blood
|
||||
|
||||
// We ignore incompatibility here.
|
||||
if(!hurtguy.transfer_blood_to(mendicant, hurtguy.blood_volume - BLOOD_VOLUME_EXCESS, forced = TRUE, ignore_incompatibility = TRUE))
|
||||
var/blood_received = hurtguy.transfer_blood_to(mendicant, hurtguy.get_blood_volume() - BLOOD_VOLUME_EXCESS, ignore_incompatibility = TRUE)
|
||||
|
||||
if(!blood_received)
|
||||
return
|
||||
|
||||
to_chat(hurtguy, span_notice("Your veins don't feel quite so swollen anymore."))
|
||||
. = TRUE
|
||||
// Because we do our own spin on it!
|
||||
if(mendicant.get_blood_compatibility(hurtguy) == FALSE)
|
||||
mendicant.adjustToxLoss((blood_to_mendicant * 0.1) * pain_multiplier) // 1 dmg per 10 blood
|
||||
mendicant.adjust_tox_loss((blood_received * 0.1) * pain_multiplier) // 1 dmg per 10 blood
|
||||
to_chat(mendicant, span_notice("Your veins swell and itch!"))
|
||||
else
|
||||
to_chat(mendicant, span_notice("Your veins swell!"))
|
||||
|
||||
Reference in New Issue
Block a user