Merge remote-tracking branch 'citadel/master' into combat_v7
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user