Makes it actually, actually work
This commit is contained in:
@@ -64,7 +64,7 @@
|
|||||||
|
|
||||||
/obj/item/organ/heart/gland/heal/proc/reject_implant(obj/item/organ/cyberimp/implant)
|
/obj/item/organ/heart/gland/heal/proc/reject_implant(obj/item/organ/cyberimp/implant)
|
||||||
owner.visible_message("<span class='warning'>[owner] vomits up his [implant.name]!</span>", "<span class='userdanger'>You suddenly vomit up your [implant.name]!</span>")
|
owner.visible_message("<span class='warning'>[owner] vomits up his [implant.name]!</span>", "<span class='userdanger'>You suddenly vomit up your [implant.name]!</span>")
|
||||||
owner.vomit(0, TRUE, TRUE, 1, FALSE, FALSE, FAL SE, TRUE)
|
owner.vomit(0, TRUE, TRUE, 1, FALSE, FALSE, FALSE, TRUE)
|
||||||
implant.Remove()
|
implant.Remove()
|
||||||
implant.forceMove(owner.drop_location())
|
implant.forceMove(owner.drop_location())
|
||||||
|
|
||||||
|
|||||||
@@ -502,17 +502,17 @@
|
|||||||
return 0
|
return 0
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, vomit_type = VOMIT_TOXIC, purge_ratio = 0.1)
|
/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, vomit_type = VOMIT_TOXIC, harm = TRUE, force = FALSE, purge_ratio = 0.1)
|
||||||
if((HAS_TRAIT(src, TRAIT_NOHUNGER) || HAS_TRAIT(src, TRAIT_TOXINLOVER)) && !force)
|
if((HAS_TRAIT(src, TRAIT_NOHUNGER) || HAS_TRAIT(src, TRAIT_TOXINLOVER)) && !force)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
if(nutrition < 100 && !blood)
|
if(nutrition < 100 && !blood && !force)
|
||||||
if(message)
|
if(message)
|
||||||
visible_message("<span class='warning'>[src] dry heaves!</span>", \
|
visible_message("<span class='warning'>[src] dry heaves!</span>", \
|
||||||
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
|
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
|
||||||
if(stun)
|
if(stun)
|
||||||
DefaultCombatKnockdown(200)
|
DefaultCombatKnockdown(200)
|
||||||
return 1
|
return TRUE
|
||||||
|
|
||||||
if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious
|
if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious
|
||||||
if(message)
|
if(message)
|
||||||
@@ -525,10 +525,11 @@
|
|||||||
visible_message("<span class='danger'>[src] throws up!</span>", "<span class='userdanger'>You throw up!</span>")
|
visible_message("<span class='danger'>[src] throws up!</span>", "<span class='userdanger'>You throw up!</span>")
|
||||||
if(!isflyperson(src))
|
if(!isflyperson(src))
|
||||||
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit)
|
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit)
|
||||||
|
|
||||||
if(stun)
|
if(stun)
|
||||||
Stun(80)
|
Stun(80)
|
||||||
|
|
||||||
playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1)
|
playsound(get_turf(src), 'sound/effects/splat.ogg', 50, TRUE)
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
if(!blood)
|
if(!blood)
|
||||||
adjust_nutrition(-lost_nutrition)
|
adjust_nutrition(-lost_nutrition)
|
||||||
@@ -538,21 +539,15 @@
|
|||||||
if(blood)
|
if(blood)
|
||||||
if(T)
|
if(T)
|
||||||
add_splatter_floor(T)
|
add_splatter_floor(T)
|
||||||
if(stun)
|
if(harm)
|
||||||
adjustBruteLoss(3)
|
adjustBruteLoss(3)
|
||||||
else
|
else
|
||||||
if(T)
|
if(T)
|
||||||
T.add_vomit_floor(src, vomit_type, purge_ratio) //toxic barf looks different || call purge when doing detoxicfication to pump more chems out of the stomach.
|
T.add_vomit_floor(src, vomit_type, purge_ratio) //toxic barf looks different || call purge when doing detoxicfication to pump more chems out of the stomach.
|
||||||
else if(src.reagents.has_reagent(/datum/reagent/consumable/ethanol/blazaam))
|
|
||||||
if(T)
|
|
||||||
T.add_vomit_floor(src, VOMIT_PURPLE)
|
|
||||||
else
|
|
||||||
if(T)
|
|
||||||
T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different
|
|
||||||
T = get_step(T, dir)
|
T = get_step(T, dir)
|
||||||
if (is_blocked_turf(T))
|
if (is_blocked_turf(T))
|
||||||
break
|
break
|
||||||
return 1
|
return TRUE
|
||||||
|
|
||||||
/mob/living/carbon/proc/spew_organ(power = 5, amt = 1)
|
/mob/living/carbon/proc/spew_organ(power = 5, amt = 1)
|
||||||
var/list/spillable_organs = list()
|
var/list/spillable_organs = list()
|
||||||
|
|||||||
@@ -841,8 +841,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/mob/living/carbon/human/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, vomit_type = VOMIT_TOXIC, harm = TRUE, force = FALSE, purge_ratio = 0.1)
|
/mob/living/carbon/human/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, vomit_type = VOMIT_TOXIC, harm = TRUE, force = FALSE, purge_ratio = 0.1)
|
||||||
if(blood && (NOBLOOD in dna.species.species_traits) && !HAS_TRAIT(src, TRAIT_TOXINLOVER))
|
if(blood && dna?.species && (NOBLOOD in dna.species.species_traits) && !HAS_TRAIT(src, TRAIT_TOXINLOVER))
|
||||||
if(blood && dna?.species && (NOBLOOD in dna.species.species_traits))
|
|
||||||
if(message)
|
if(message)
|
||||||
visible_message("<span class='warning'>[src] dry heaves!</span>", \
|
visible_message("<span class='warning'>[src] dry heaves!</span>", \
|
||||||
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
|
"<span class='userdanger'>You try to throw up, but there's nothing in your stomach!</span>")
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
/obj/machinery/nanite_program_hub/update_overlays()
|
/obj/machinery/nanite_program_hub/update_overlays()
|
||||||
. = ..()
|
. = ..()
|
||||||
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
||||||
if((machine_stat & (NOPOWER|MAINT|BROKEN)) || panel_open)
|
if((stat & (NOPOWER|MAINT|BROKEN)) || panel_open)
|
||||||
return
|
return
|
||||||
SSvis_overlays.add_vis_overlay(src, icon, "nanite_program_hub_on", layer, plane)
|
SSvis_overlays.add_vis_overlay(src, icon, "nanite_program_hub_on", layer, plane)
|
||||||
SSvis_overlays.add_vis_overlay(src, icon, "nanite_program_hub_on", EMISSIVE_LAYER, EMISSIVE_PLANE)
|
SSvis_overlays.add_vis_overlay(src, icon, "nanite_program_hub_on", EMISSIVE_LAYER, EMISSIVE_PLANE)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
/obj/machinery/nanite_programmer/update_overlays()
|
/obj/machinery/nanite_programmer/update_overlays()
|
||||||
. = ..()
|
. = ..()
|
||||||
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
||||||
if((machine_stat & (NOPOWER|MAINT|BROKEN)) || panel_open)
|
if((stat & (NOPOWER|MAINT|BROKEN)) || panel_open)
|
||||||
return
|
return
|
||||||
SSvis_overlays.add_vis_overlay(src, icon, "nanite_programmer_on", layer, plane)
|
SSvis_overlays.add_vis_overlay(src, icon, "nanite_programmer_on", layer, plane)
|
||||||
SSvis_overlays.add_vis_overlay(src, icon, "nanite_programmer_on", EMISSIVE_LAYER, EMISSIVE_PLANE)
|
SSvis_overlays.add_vis_overlay(src, icon, "nanite_programmer_on", EMISSIVE_LAYER, EMISSIVE_PLANE)
|
||||||
|
|||||||
@@ -90,6 +90,16 @@
|
|||||||
|
|
||||||
/datum/nanite_program/protocol/offline/active_effect()
|
/datum/nanite_program/protocol/offline/active_effect()
|
||||||
nanites.adjust_nanites(null, boost)
|
nanites.adjust_nanites(null, boost)
|
||||||
|
/datum/nanite_program/protocol/synergy
|
||||||
|
name = "Synergy Protocol"
|
||||||
|
desc = "Replication Protocol: the nanites syncronize their tasks and processes within a host, leading to an increase in replication speed proportional to the current nanite volume."
|
||||||
|
use_rate = 0
|
||||||
|
rogue_types = list(/datum/nanite_program/necrotic)
|
||||||
|
protocol_class = NANITE_PROTOCOL_REPLICATION
|
||||||
|
var/max_boost = 2 //The maximum boost this program applies to the nanite replication, multiplied with the current nanite 'saturation' percentage
|
||||||
|
|
||||||
|
/datum/nanite_program/protocol/synergy/active_effect()
|
||||||
|
nanites.adjust_nanites(null, round(max_boost * (nanites.nanite_volume / nanites.max_nanites), 0.1))
|
||||||
|
|
||||||
/datum/nanite_program/protocol/hive
|
/datum/nanite_program/protocol/hive
|
||||||
name = "Hive Protocol"
|
name = "Hive Protocol"
|
||||||
|
|||||||
Reference in New Issue
Block a user