Merge remote-tracking branch 'citadel/master' into combat_v7

This commit is contained in:
silicons
2021-06-27 10:44:51 -07:00
209 changed files with 13698 additions and 2095 deletions

View File

@@ -73,6 +73,8 @@
myseed.adjust_yield(rand(-3,2))
myseed.adjust_production(rand(-3,3))
myseed.endurance = clamp(myseed.endurance + rand(-3,2), 0, 100) // adjust_endurance has a min value of 10, need to edit directly
// Scale health to endurance
max_integrity = obj_integrity = 10 + myseed.endurance / 2
delay_spread = delay_spread - myseed.production * 100 //So the delay goes DOWN with better stats instead of up. :I
var/datum/plant_gene/trait/glow/G = myseed.get_gene(/datum/plant_gene/trait/glow)
if(ispath(G)) // Seeds were ported to initialize so their genes are still typepaths here, luckily their initializer is smart enough to handle us doing this
@@ -193,8 +195,14 @@
/obj/structure/glowshroom/proc/Decay(spread, amount)
if (spread) // Decay due to spread
myseed.endurance -= amount
max_integrity = min(max_integrity, 10 + myseed.endurance / 2)
if(obj_integrity > max_integrity)
obj_integrity = max_integrity
else // Timed decay
myseed.endurance -= 1
max_integrity = min(max_integrity, 10 + myseed.endurance / 2)
if(obj_integrity > max_integrity)
obj_integrity = max_integrity
if (myseed.endurance > 0)
addtimer(CALLBACK(src, .proc/Decay), delay_decay, FALSE) // Recall decay timer
return

View File

@@ -399,7 +399,7 @@
on_sound = 'sound/weapons/batonextend.ogg'
on_icon_state = "telebaton_1"
off_icon_state = "telebaton_0"
on_item_state = "nullrod"
on_item_state = "telebaton_1"
force_on = 10
force_off = 0
weight_class_on = WEIGHT_CLASS_BULKY
@@ -472,7 +472,7 @@
on_stun_sound = 'sound/effects/contractorbatonhit.ogg'
on_icon_state = "contractor_baton_1"
off_icon_state = "contractor_baton_0"
on_item_state = "contractor_baton"
on_item_state = "contractor_baton_1"
force_on = 16
force_off = 5
weight_class_on = WEIGHT_CLASS_NORMAL
@@ -695,11 +695,14 @@
playsound(src, 'sound/weapons/batonextend.ogg', 50, 1)
/obj/item/melee/roastingstick/proc/finish_roasting(user, atom/target)
if(!held_sausage || held_sausage.roasted)
return // no
to_chat(user, "You finish roasting [held_sausage]")
playsound(src,'sound/items/welder2.ogg',50,1)
held_sausage.add_atom_colour(rgb(103,63,24), FIXED_COLOUR_PRIORITY)
held_sausage.name = "[target.name]-roasted [held_sausage.name]"
held_sausage.desc = "[held_sausage.desc] It has been cooked to perfection on \a [target]."
held_sausage.roasted = TRUE
update_icon()
/obj/item/melee/cleric_mace

View File

@@ -4,10 +4,10 @@
desc = "A handheld tracking device that locks onto certain signals."
icon = 'icons/obj/device.dmi'
icon_state = "pinpointer"
item_state = "pinpointer"
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
throw_speed = 3
@@ -97,6 +97,7 @@
name = "crew pinpointer"
desc = "A handheld tracking device that points to crew suit sensors."
icon_state = "pinpointer_crew"
item_state = "pinpointer_crew"
custom_price = PRICE_ABOVE_EXPENSIVE
var/has_owner = FALSE
var/pinpointer_owner = null
@@ -208,6 +209,7 @@
name = "fugitive pinpointer"
desc = "A handheld tracking device that locates the bounty hunter shuttle for quick escapes."
icon_state = "pinpointer_hunter"
item_state = "pinpointer_black"
var/obj/shuttleport
/obj/item/pinpointer/shuttle/Initialize(mapload)
@@ -231,4 +233,4 @@
/obj/item/pinpointer/custom
resets_target = FALSE

View File

@@ -280,7 +280,7 @@
if(lube & NO_SLIP_WHEN_WALKING)
if(C.m_intent == MOVE_INTENT_WALK)
return FALSE
if(ishuman(C) && !(lube & SLIP_WHEN_JOGGING))
if(ishuman(C) && !(lube & SLIP_WHEN_JOGGING) && CONFIG_GET(flag/sprint_enabled))
var/mob/living/carbon/human/H = C
if(!(H.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) && H.getStaminaLoss() <= 20)
return FALSE

View File

@@ -579,7 +579,7 @@ GLOBAL_LIST_EMPTY(station_turfs)
/turf/AllowDrop()
return TRUE
/turf/proc/add_vomit_floor(mob/living/M, toxvomit = NONE)
/turf/proc/add_vomit_floor(mob/living/M, toxvomit = NONE, purge_ratio = 0.1)
var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src, M.get_static_viruses())
//if the vomit combined, apply toxicity and reagents to the old vomit
@@ -587,21 +587,24 @@ GLOBAL_LIST_EMPTY(station_turfs)
V = locate() in src
if(!V) //the decal was spawned on a wall or groundless turf and promptly qdeleted.
return
// Make toxins and blazaam vomit look different
// Apply the proper icon set based on vomit type
if(toxvomit == VOMIT_PURPLE)
V.icon_state = "vomitpurp_[pick(1,4)]"
else if (toxvomit == VOMIT_TOXIC)
V.icon_state = "vomittox_[pick(1,4)]"
if (iscarbon(M))
var/mob/living/carbon/C = M
if(C.reagents)
clear_reagents_to_vomit_pool(C,V)
else if (toxvomit == VOMIT_NANITE)
V.name = "metallic slurry"
V.desc = "A puddle of metallic slurry that looks vaguely like very fine sand. It almost seems like it's moving..."
V.icon_state = "vomitnanite_[pick(1,4)]"
if (purge_ratio && iscarbon(M))
clear_reagents_to_vomit_pool(M, V, purge_ratio)
/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V)
/proc/clear_reagents_to_vomit_pool(mob/living/carbon/M, obj/effect/decal/cleanable/vomit/V, purge_ratio = 0.1)
for(var/datum/reagent/consumable/R in M.reagents.reagent_list) //clears the stomach of anything that might be digested as food
if(R.nutriment_factor > 0)
M.reagents.del_reagent(R.type)
M.reagents.trans_to(V, M.reagents.total_volume / 10)
var/chemicals_lost = M.reagents.total_volume * purge_ratio
M.reagents.trans_to(V, chemicals_lost)
//Whatever happens after high temperature fire dies out or thermite reaction works.
//Should return new turf