Merge branch 'master' into movespeed_modifiers_take_two

This commit is contained in:
kevinz000
2020-02-21 01:38:09 -07:00
committed by GitHub
365 changed files with 4129 additions and 4231 deletions
+2 -2
View File
@@ -183,7 +183,7 @@
burn_dam += burn
//We've dealt the physical damages, if there's room lets apply the stamina damage.
stamina_dam += round(CLAMP(stamina, 0, max_stamina_damage - stamina_dam), DAMAGE_PRECISION)
stamina_dam += round(clamp(stamina, 0, max_stamina_damage - stamina_dam), DAMAGE_PRECISION)
if(owner && updating_health)
@@ -288,7 +288,7 @@
C = source
if(!original_owner)
original_owner = source
else
else
C = owner
if(original_owner && owner != original_owner) //Foreign limb
no_update = TRUE
@@ -16,7 +16,7 @@
return FALSE
var/obj/item/bodypart/affecting = C.get_bodypart(BODY_ZONE_CHEST)
affecting.receive_damage(CLAMP(brute_dam/2 * affecting.body_damage_coeff, 15, 50), CLAMP(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage
affecting.receive_damage(clamp(brute_dam/2 * affecting.body_damage_coeff, 15, 50), clamp(burn_dam/2 * affecting.body_damage_coeff, 0, 50)) //Damage the chest based on limb's existing damage
C.visible_message("<span class='danger'><B>[C]'s [src.name] has been violently dismembered!</B></span>")
C.emote("scream")
SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered)
+7 -2
View File
@@ -103,7 +103,7 @@
/datum/surgery_step/saw
name = "saw bone"
implements = list(TOOL_SAW = 100,/obj/item/melee/arm_blade = 75,
/obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25)
/obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25, /obj/item = 20) //20% success (sort of) with any sharp item with a force>=10
time = 54
/datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
@@ -111,7 +111,12 @@
"<span class='notice'>[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)].</span>")
/datum/surgery_step/saw/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
/datum/surgery_step/saw/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !(tool.get_sharpness() && (tool.force >= 10)))
return FALSE
return TRUE
/datum/surgery_step/saw/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
target.apply_damage(50, BRUTE, "[target_zone]")
display_results(user, target, "<span class='notice'>You saw [target]'s [parse_zone(target_zone)] open.</span>",
"<span class='notice'>[user] saws [target]'s [parse_zone(target_zone)] open!</span>",
@@ -164,10 +164,10 @@
desc = "A sleek, sturdy box."
icon_state = "cyber_implants"
var/list/boxed = list(
/obj/item/autosurgeon/thermal_eyes,
/obj/item/autosurgeon/xray_eyes,
/obj/item/autosurgeon/anti_stun,
/obj/item/autosurgeon/reviver)
/obj/item/autosurgeon/syndicate/thermal_eyes,
/obj/item/autosurgeon/syndicate/xray_eyes,
/obj/item/autosurgeon/syndicate/anti_stun,
/obj/item/autosurgeon/syndicate/reviver)
var/amount = 5
/obj/item/storage/box/cyber_implants/PopulateContents()
+12 -4
View File
@@ -12,6 +12,10 @@
var/uses = INFINITE
var/starting_organ
/obj/item/autosurgeon/syndicate
name = "suspicious autosurgeon"
icon_state = "syndicate_autoimplanter"
/obj/item/autosurgeon/Initialize(mapload)
. = ..()
if(starting_organ)
@@ -82,15 +86,19 @@
uses = 1
starting_organ = /obj/item/organ/cyberimp/eyes/hud/medical
/obj/item/autosurgeon/syndicate/laser_arm
desc = "A single use autosurgeon that contains a combat arms-up laser augment. A screwdriver can be used to remove it, but implants can't be placed back in."
uses = 1
starting_organ = /obj/item/organ/cyberimp/arm/gun/laser
/obj/item/autosurgeon/thermal_eyes
/obj/item/autosurgeon/syndicate/thermal_eyes
starting_organ = /obj/item/organ/eyes/robotic/thermals
/obj/item/autosurgeon/xray_eyes
/obj/item/autosurgeon/syndicate/xray_eyes
starting_organ = /obj/item/organ/eyes/robotic/xray
/obj/item/autosurgeon/anti_stun
/obj/item/autosurgeon/syndicate/anti_stun
starting_organ = /obj/item/organ/cyberimp/brain/anti_stun
/obj/item/autosurgeon/reviver
/obj/item/autosurgeon/syndicate/reviver
starting_organ = /obj/item/organ/cyberimp/chest/reviver
+1 -1
View File
@@ -252,7 +252,7 @@
return
var/range = input(user, "Enter range (0 - [max_light_beam_distance])", "Range Select", 0) as null|num
set_distance(CLAMP(range, 0, max_light_beam_distance))
set_distance(clamp(range, 0, max_light_beam_distance))
assume_rgb(C)
/obj/item/organ/eyes/robotic/glow/proc/assume_rgb(newcolor)
+3 -3
View File
@@ -113,7 +113,7 @@
if(safe_oxygen_max)
if(O2_pp > safe_oxygen_max)
var/ratio = (breath_gases[/datum/gas/oxygen][MOLES]/safe_oxygen_max) * 10
H.apply_damage_type(CLAMP(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type)
H.apply_damage_type(clamp(ratio, oxy_breath_dam_min, oxy_breath_dam_max), oxy_damage_type)
H.throw_alert("too_much_oxy", /obj/screen/alert/too_much_oxy)
else
H.clear_alert("too_much_oxy")
@@ -141,7 +141,7 @@
if(safe_nitro_max)
if(N2_pp > safe_nitro_max)
var/ratio = (breath_gases[/datum/gas/nitrogen][MOLES]/safe_nitro_max) * 10
H.apply_damage_type(CLAMP(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type)
H.apply_damage_type(clamp(ratio, nitro_breath_dam_min, nitro_breath_dam_max), nitro_damage_type)
H.throw_alert("too_much_nitro", /obj/screen/alert/too_much_nitro)
else
H.clear_alert("too_much_nitro")
@@ -207,7 +207,7 @@
if(safe_toxins_max)
if(Toxins_pp > safe_toxins_max)
var/ratio = (breath_gases[/datum/gas/plasma][MOLES]/safe_toxins_max) * 10
H.apply_damage_type(CLAMP(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type)
H.apply_damage_type(clamp(ratio, tox_breath_dam_min, tox_breath_dam_max), tox_damage_type)
H.throw_alert("too_much_tox", /obj/screen/alert/too_much_tox)
else
H.clear_alert("too_much_tox")
@@ -135,7 +135,7 @@
return
if(maximum < damage)
return
damage = CLAMP(damage + d, 0, maximum)
damage = clamp(damage + d, 0, maximum)
var/mess = check_damage_thresholds(owner)
prev_damage = damage
if(mess && owner)
+1 -1
View File
@@ -124,4 +124,4 @@
to_chat(owner, "<span class='notice'>You absorb some of the shock into your body!</span>")
/obj/item/organ/stomach/ethereal/proc/adjust_charge(amount)
crystal_charge = CLAMP(crystal_charge + amount, ETHEREAL_CHARGE_NONE, ETHEREAL_CHARGE_DANGEROUS)
crystal_charge = clamp(crystal_charge + amount, ETHEREAL_CHARGE_NONE, ETHEREAL_CHARGE_DANGEROUS)