From e6d697922d041f685f132cf470303548d6cdce25 Mon Sep 17 00:00:00 2001 From: fallcon Date: Fri, 3 May 2024 14:09:28 -0500 Subject: [PATCH 01/20] this is already so much better --- .../chemistry/reagents/trickwine_reagents.dm | 99 ++++++++++++++++--- 1 file changed, 85 insertions(+), 14 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index df76f85b1f64..9b1d22b7c514 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -1,6 +1,24 @@ /datum/reagent/consumable/ethanol/trickwine name = "Trickwine" description = "How is this even possible" + var/datum/status_effect/trickwine/debuff/debuff_effect = null + var/datum/status_effect/trickwine/buff/buff_effect = null + +/datum/reagent/consumable/ethanol/trickwine/on_mob_metabolize(mob/living/consumer) + ..() + if(buff_effect) + consumer.apply_status_effect(buff_effect, src) + +/datum/reagent/consumable/ethanol/trickwine/on_mob_end_metabolize(mob/living/consumer) + if(buff_effect && consumer.has_status_effect(buff_effect)) + consumer.remove_status_effect((buff_effect)) + ..() + +/datum/reagent/consumable/ethanol/trickwine/expose_mob(mob/living/exposed_mob, method = TOUCH, reac_volume) + if(method == TOUCH) + if(debuff_effect) + exposed_mob.apply_status_effect(debuff_effect, src, reac_volume) + return ..() /datum/reagent/consumable/ethanol/trickwine/ash_wine name = "Ashwine" @@ -53,7 +71,6 @@ M.adjustFireLoss(-1) return ..() - /datum/reagent/consumable/ethanol/trickwine/ice_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) var/paralyze_dur @@ -176,6 +193,7 @@ glass_name = "Prismwine" glass_desc = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown." breakaway_flask_icon_state = "baflaskprismwine" + debuff_effect = /datum/status_effect/trickwine/debuff/prism /datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M) ..() @@ -195,17 +213,70 @@ /datum/reagent/consumable/ethanol/trickwine/prism_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) - if(istype(M, /mob/living/simple_animal/hostile/asteroid)) - var/mob/living/simple_animal/hostile/asteroid/the_animal = M - the_animal.armor.modifyRating(energy = -50) - spawn(reac_volume SECONDS) - the_animal.armor.modifyRating(energy = 50) - if(ishuman(M)) - var/mob/living/carbon/human/the_human = M - if(the_human.physiology.burn_mod < 2) - the_human.physiology.burn_mod *= 2 - the_human.visible_message("[the_human] seemed weakend!") - spawn(reac_volume SECONDS) - the_human.physiology.burn_mod *= 0.5 - the_human.visible_message("[the_human] has returned to normal!") + M.apply_status_effect(/datum/status_effect/speed_boost, reac_volume SECONDS) return ..() + +//////////////////// +// STATUS EFFECTS // +//////////////////// +/atom/movable/screen/alert/status_effect/trickwine + name = "Trickwine" + desc = "Your empowered or weakened by a trickwine!" + icon_state = "breakaway_flask" + +/datum/status_effect/trickwine + id = "trick_wine" + duration = 5 SECONDS + examine_text = span_notice("They seem to be affected by a trickwine.") + alert_type = /atom/movable/screen/alert/status_effect/trickwine + +/datum/status_effect/trickwine/on_creation(mob/living/new_owner, /datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + if(!trickwine_reagent) + CRASH("A trickwine status effect was created without a attached reagent") + . = ..() + +/////////// +// BUFFS // +/////////// +/datum/status_effect/trickwine/buff + id = "trick_wine_buff" + examine_text = span_notice("IDK what to make this yet") + +/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, /datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + examine_text = span_notice("They seem to be affected by [trickwine_reagent.name].") + . = ..() + +///////////// +// DEBUFFS // +///////////// +/datum/status_effect/trickwine/debuff + id = "trick_wine_debuff" + examine_text = span_notice("They seem to be covered in a trickwine.") + +/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, /datum/reagent/consumable/ethanol/trickwine/trickwine_reagent, set_duration) + if(isnum(set_duration)) + duration = set_duration + examine_text = span_notice("They seem to be covered in [trickwine_reagent.name].") + . = ..() + +/datum/status_effect/trickwine/debuff/prism + id = "prism_wine_debuff" + +/datum/status_effect/trickwine/debuff/prism/on_apply() + if(istype(owner, /mob/living/simple_animal/hostile/asteroid)) + var/mob/living/simple_animal/hostile/asteroid/the_animal = owner + the_animal.armor.modifyRating(energy = -50) + if(ishuman(owner)) + var/mob/living/carbon/human/the_human = owner + if(the_human.physiology.burn_mod < 2) + the_human.physiology.burn_mod *= 2 + the_human.visible_message(span_warning("[the_human] seems weakened!")) + +/datum/status_effect/trickwine/debuff/prism/on_remove() + if(istype(owner, /mob/living/simple_animal/hostile/asteroid)) + var/mob/living/simple_animal/hostile/asteroid/the_animal = owner + the_animal.armor.modifyRating(energy = 50) + if(ishuman(owner)) + var/mob/living/carbon/human/the_human = owner + the_human.physiology.burn_mod *= 0.5 + the_human.visible_message(span_warning("[the_human] has returned to normal!")) From 517445d0b2a7520bec43ae960bf454ce6486bc91 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sat, 4 May 2024 22:50:05 -0500 Subject: [PATCH 02/20] alot better code, soon --- .../chemistry/reagents/trickwine_reagents.dm | 75 ++++++++++++------- 1 file changed, 47 insertions(+), 28 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 9b1d22b7c514..42567bfca78e 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -1,13 +1,13 @@ /datum/reagent/consumable/ethanol/trickwine name = "Trickwine" description = "How is this even possible" - var/datum/status_effect/trickwine/debuff/debuff_effect = null - var/datum/status_effect/trickwine/buff/buff_effect = null + var/datum/status_effect/trickwine/debuff_effect = null + var/datum/status_effect/trickwine/buff_effect = null /datum/reagent/consumable/ethanol/trickwine/on_mob_metabolize(mob/living/consumer) - ..() if(buff_effect) consumer.apply_status_effect(buff_effect, src) + ..() /datum/reagent/consumable/ethanol/trickwine/on_mob_end_metabolize(mob/living/consumer) if(buff_effect && consumer.has_status_effect(buff_effect)) @@ -17,7 +17,7 @@ /datum/reagent/consumable/ethanol/trickwine/expose_mob(mob/living/exposed_mob, method = TOUCH, reac_volume) if(method == TOUCH) if(debuff_effect) - exposed_mob.apply_status_effect(debuff_effect, src, reac_volume) + exposed_mob.apply_status_effect(debuff_effect, src, reac_volume SECONDS) return ..() /datum/reagent/consumable/ethanol/trickwine/ash_wine @@ -159,18 +159,7 @@ glass_name = "Forcewine" glass_desc = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." breakaway_flask_icon_state = "baflaskforcewine" - -/datum/reagent/consumable/ethanol/trickwine/force_wine/on_mob_metabolize(mob/living/M) - ..() - ADD_TRAIT(M, TRAIT_ANTIMAGIC, "trickwine") - ADD_TRAIT(M, TRAIT_MINDSHIELD, "trickwine") - M.visible_message("[M] glows a dim grey aura") - -/datum/reagent/consumable/ethanol/trickwine/force_wine/on_mob_end_metabolize(mob/living/M) - M.visible_message("[M]'s aura fades away ") - REMOVE_TRAIT(M, TRAIT_ANTIMAGIC, "trickwine") - REMOVE_TRAIT(M, TRAIT_MINDSHIELD, "trickwine") - ..() + buff_effect = /datum/status_effect/trickwine/buff/force /datum/reagent/consumable/ethanol/trickwine/force_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) @@ -211,11 +200,6 @@ M.visible_message("[M] has returned to normal!") ..() -/datum/reagent/consumable/ethanol/trickwine/prism_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH) - M.apply_status_effect(/datum/status_effect/speed_boost, reac_volume SECONDS) - return ..() - //////////////////// // STATUS EFFECTS // //////////////////// @@ -224,17 +208,37 @@ desc = "Your empowered or weakened by a trickwine!" icon_state = "breakaway_flask" +/atom/movable/screen/alert/status_effect/trickwine/proc/setup(datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + name = trickwine_reagent.name + icon_state = "template" + cut_overlays() + var/icon/flask_icon = icon('icons/obj/drinks/drinks.dmi', trickwine_reagent.breakaway_flask_icon_state) + add_overlay(flask_icon) + /datum/status_effect/trickwine id = "trick_wine" - duration = 5 SECONDS examine_text = span_notice("They seem to be affected by a trickwine.") alert_type = /atom/movable/screen/alert/status_effect/trickwine + var/flask_icon_state + var/flask_icon = 'icons/obj/drinks/drinks.dmi' -/datum/status_effect/trickwine/on_creation(mob/living/new_owner, /datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) +/datum/status_effect/trickwine/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + flask_icon_state = trickwine_reagent.breakaway_flask_icon_state + . = ..() if(!trickwine_reagent) CRASH("A trickwine status effect was created without a attached reagent") - . = ..() + if(istype(linked_alert, /atom/movable/screen/alert/status_effect/trickwine)) + var/atom/movable/screen/alert/status_effect/trickwine/trickwine_alert = linked_alert + trickwine_alert.setup(trickwine_reagent) +/datum/status_effect/trickwine/on_apply() + owner.visible_message(span_notice("[owner] is affected by a wine!"), span_notice("You are affected by trickwine!")) + owner.add_filter(id, 2, list("type"="outline", "color"="#8FD7DF", "size"=1)) + return ..() + +/datum/status_effect/trickwine/on_remove() + owner.visible_message(span_notice("[owner] is no longer affected by a wine!"), span_notice("You are no longer affected by trickwine!")) + owner.remove_filter(id) /////////// // BUFFS // /////////// @@ -242,9 +246,23 @@ id = "trick_wine_buff" examine_text = span_notice("IDK what to make this yet") -/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, /datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) - examine_text = span_notice("They seem to be affected by [trickwine_reagent.name].") +/datum/status_effect/trickwine/buff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) . = ..() + examine_text = span_notice("They seem to be affected by [trickwine_reagent.name].") + +/datum/status_effect/trickwine/buff/force + id = "force_wine_buff" + +/datum/status_effect/trickwine/buff/force/on_apply() + ADD_TRAIT(owner, TRAIT_ANTIMAGIC, "trickwine") + ADD_TRAIT(owner, TRAIT_MINDSHIELD, "trickwine") + owner.visible_message(span_warning("[owner] glows a dim grey aura")) + return ..() + +/datum/status_effect/trickwine/buff/force/on_remove() + REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, "trickwine") + REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, "trickwine") + owner.visible_message(span_warning("[owner]'s aura fades away")) ///////////// // DEBUFFS // @@ -253,11 +271,11 @@ id = "trick_wine_debuff" examine_text = span_notice("They seem to be covered in a trickwine.") -/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, /datum/reagent/consumable/ethanol/trickwine/trickwine_reagent, set_duration) +/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent, set_duration = null) if(isnum(set_duration)) duration = set_duration - examine_text = span_notice("They seem to be covered in [trickwine_reagent.name].") . = ..() + examine_text = span_notice("They seem to be covered in [trickwine_reagent.name].") /datum/status_effect/trickwine/debuff/prism id = "prism_wine_debuff" @@ -271,6 +289,7 @@ if(the_human.physiology.burn_mod < 2) the_human.physiology.burn_mod *= 2 the_human.visible_message(span_warning("[the_human] seems weakened!")) + return ..() /datum/status_effect/trickwine/debuff/prism/on_remove() if(istype(owner, /mob/living/simple_animal/hostile/asteroid)) From 5c7d62ee545db19796885d2a2500659b4fd521c8 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 5 May 2024 12:06:31 -0500 Subject: [PATCH 03/20] more buff to wine --- .../chemistry/reagents/trickwine_reagents.dm | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 42567bfca78e..05fa1f60f0d4 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -182,24 +182,9 @@ glass_name = "Prismwine" glass_desc = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown." breakaway_flask_icon_state = "baflaskprismwine" + buff_effect = /datum/status_effect/trickwine/buff/prism debuff_effect = /datum/status_effect/trickwine/debuff/prism -/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M) - ..() - ADD_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") - if(M.physiology.burn_mod <= initial(M.physiology.burn_mod)) - M.physiology.burn_mod *= 0.5 - M.add_filter("prism-wine", 2, list("type"="outline", "color"="#8FD7DF", "size"=1)) - M.visible_message("[M] seems to shimmer with power!") - -/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_end_metabolize(mob/living/carbon/human/M) - REMOVE_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") - if(M.physiology.burn_mod > initial(M.physiology.burn_mod)) - M.physiology.burn_mod *= 2 - M.remove_filter("prism-wine") - M.visible_message("[M] has returned to normal!") - ..() - //////////////////// // STATUS EFFECTS // //////////////////// @@ -221,24 +206,27 @@ alert_type = /atom/movable/screen/alert/status_effect/trickwine var/flask_icon_state var/flask_icon = 'icons/obj/drinks/drinks.dmi' + var/reagent_color = "#FFFFFF" /datum/status_effect/trickwine/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) flask_icon_state = trickwine_reagent.breakaway_flask_icon_state . = ..() if(!trickwine_reagent) CRASH("A trickwine status effect was created without a attached reagent") + reagent_color = trickwine_reagent.color if(istype(linked_alert, /atom/movable/screen/alert/status_effect/trickwine)) var/atom/movable/screen/alert/status_effect/trickwine/trickwine_alert = linked_alert trickwine_alert.setup(trickwine_reagent) /datum/status_effect/trickwine/on_apply() owner.visible_message(span_notice("[owner] is affected by a wine!"), span_notice("You are affected by trickwine!")) - owner.add_filter(id, 2, list("type"="outline", "color"="#8FD7DF", "size"=1)) + owner.add_filter(id, 2, list("type"="outline", "color"=reagent_color, "size"=1)) return ..() /datum/status_effect/trickwine/on_remove() owner.visible_message(span_notice("[owner] is no longer affected by a wine!"), span_notice("You are no longer affected by trickwine!")) owner.remove_filter(id) + /////////// // BUFFS // /////////// @@ -254,15 +242,35 @@ id = "force_wine_buff" /datum/status_effect/trickwine/buff/force/on_apply() - ADD_TRAIT(owner, TRAIT_ANTIMAGIC, "trickwine") - ADD_TRAIT(owner, TRAIT_MINDSHIELD, "trickwine") + ADD_TRAIT(owner, TRAIT_ANTIMAGIC, id) + ADD_TRAIT(owner, TRAIT_MINDSHIELD, id) owner.visible_message(span_warning("[owner] glows a dim grey aura")) return ..() /datum/status_effect/trickwine/buff/force/on_remove() - REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, "trickwine") - REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, "trickwine") + REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, id) + REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, id) owner.visible_message(span_warning("[owner]'s aura fades away")) + ..() + +/datum/status_effect/trickwine/buff/prism + id = "prism_wine_buff" + +/datum/status_effect/trickwine/buff/prism/on_apply() + ADD_TRAIT(owner, TRAIT_REFLECTIVE, id) + if(ishuman(owner)) + var/mob/living/carbon/human/the_human = owner + the_human.physiology.burn_mod *= 0.5 + owner.visible_message(span_warning("[owner] seems to shimmer with power!")) + return ..() + +/datum/status_effect/trickwine/buff/prism/on_remove() + REMOVE_TRAIT(owner, TRAIT_REFLECTIVE, id) + if(ishuman(owner)) + var/mob/living/carbon/human/the_human = owner + the_human.physiology.burn_mod *= 2 + owner.visible_message(span_warning("[owner] has returned to normal!")) + ..() ///////////// // DEBUFFS // @@ -286,9 +294,8 @@ the_animal.armor.modifyRating(energy = -50) if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner - if(the_human.physiology.burn_mod < 2) - the_human.physiology.burn_mod *= 2 - the_human.visible_message(span_warning("[the_human] seems weakened!")) + the_human.physiology.burn_mod *= 2 + the_human.visible_message(span_warning("[the_human] seems weakened!")) return ..() /datum/status_effect/trickwine/debuff/prism/on_remove() @@ -299,3 +306,4 @@ var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 the_human.visible_message(span_warning("[the_human] has returned to normal!")) + ..() From a5eef19c143d82ba57d702a1a13607e064e98e8e Mon Sep 17 00:00:00 2001 From: fallcon Date: Mon, 6 May 2024 12:37:11 -0500 Subject: [PATCH 04/20] al lof them --- .../chemistry/reagents/trickwine_reagents.dm | 277 +++++++++++------- 1 file changed, 171 insertions(+), 106 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 05fa1f60f0d4..9eba9bc86ec8 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -1,6 +1,87 @@ +/////////////////// +// STATUS EFFECT // +/////////////////// +/atom/movable/screen/alert/status_effect/trickwine + name = "Trickwine" + desc = "Your empowered or weakened by a trickwine!" + icon_state = "breakaway_flask" + +/atom/movable/screen/alert/status_effect/trickwine/proc/setup(datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + name = trickwine_reagent.name + icon_state = "template" + cut_overlays() + var/icon/flask_icon = icon('icons/obj/drinks/drinks.dmi', trickwine_reagent.breakaway_flask_icon_state) + add_overlay(flask_icon) + +/datum/status_effect/trickwine + id = "trick_wine" + examine_text = span_notice("They seem to be affected by a trickwine.") + alert_type = /atom/movable/screen/alert/status_effect/trickwine + var/flask_icon_state + var/flask_icon = 'icons/obj/drinks/drinks.dmi' + var/reagent_color = "#FFFFFF" + var/message_apply_others = "is affected by a wine!" + var/message_apply_self = "You are affected by trickwine!" + var/message_remove_others = "is no longer affected by a wine!" + var/message_remove_self = "You are no longer affected by trickwine!" + var/trickwine_examine_text + var/alert_desc + +/datum/status_effect/trickwine/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + flask_icon_state = trickwine_reagent.breakaway_flask_icon_state + . = ..() + if(!trickwine_reagent) + CRASH("A trickwine status effect was created without a attached reagent") + reagent_color = trickwine_reagent.color + if(istype(linked_alert, /atom/movable/screen/alert/status_effect/trickwine)) + var/atom/movable/screen/alert/status_effect/trickwine/trickwine_alert = linked_alert + trickwine_alert.setup(trickwine_reagent) + if(alert_desc) + trickwine_alert.desc = alert_desc + +/datum/status_effect/trickwine/on_apply() + owner.visible_message(span_notice("[owner] " + message_apply_others), span_notice(message_apply_self)) + owner.add_filter(id, 2, list("type"="outline", "color"=reagent_color, "size"=1)) + return ..() + +/datum/status_effect/trickwine/on_remove() + owner.visible_message(span_notice("[owner] " + message_remove_others), span_notice(message_remove_self)) + owner.remove_filter(id) + +////////// +// BUFF // +////////// +/datum/status_effect/trickwine/buff + id = "trick_wine_buff" + +/datum/status_effect/trickwine/buff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) + . = ..() + if(trickwine_examine_text) + examine_text = span_notice(trickwine_examine_text) + else + examine_text = span_notice("SUBJECTPRONOUN seems to be affected by [trickwine_reagent.name].") + +//////////// +// DEBUFF // +//////////// +/datum/status_effect/trickwine/debuff + id = "trick_wine_debuff" + +/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent, set_duration = null) + if(isnum(set_duration)) + duration = set_duration + . = ..() + if(trickwine_examine_text) + examine_text = span_notice(trickwine_examine_text) + else + examine_text = span_notice("SUBJECTPRONOUN seems to be covered in [trickwine_reagent.name].") + +////////////// +// REAGENTS // +////////////// + /datum/reagent/consumable/ethanol/trickwine name = "Trickwine" - description = "How is this even possible" var/datum/status_effect/trickwine/debuff_effect = null var/datum/status_effect/trickwine/buff_effect = null @@ -20,6 +101,7 @@ exposed_mob.apply_status_effect(debuff_effect, src, reac_volume SECONDS) return ..() + /datum/reagent/consumable/ethanol/trickwine/ash_wine name = "Ashwine" description = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." @@ -30,6 +112,8 @@ glass_name = "Ashwine" glass_desc = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels." breakaway_flask_icon_state = "baflaskashwine" + buff_effect = /datum/status_effect/trickwine/buff/ash + debuff_effect = /datum/status_effect/trickwine/debuff/ash /datum/reagent/consumable/ethanol/trickwine/ash_wine/on_mob_life(mob/living/M) var/high_message = pick("You feel far more devoted to the cause", "You feel like you should go on a hunt") @@ -56,6 +140,15 @@ M.emote(pick("twitch","giggle")) return ..() +/datum/status_effect/trickwine/buff/ash + id = "ash_wine_buff" + trickwine_examine_text = "SUBJECTPRONOUN seems to be filled with energy and devotion. There eyes are dialated and they seem to be twitching." + +/datum/status_effect/trickwine/debuff/ash + id = "ash_wine_debuff" + trickwine_examine_text = "SUBJECTPRONOUN seems to be covered in a thin layer of ash. They seem to be twitching and jittery." + + /datum/reagent/consumable/ethanol/trickwine/ice_wine name = "Icewine" description = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown." @@ -65,6 +158,8 @@ glass_name = "Icewine" glass_desc = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown." breakaway_flask_icon_state = "baflaskicewine" + buff_effect = /datum/status_effect/trickwine/buff/ice + debuff_effect = /datum/status_effect/trickwine/debuff/ice /datum/reagent/consumable/ethanol/trickwine/ice_wine/on_mob_life(mob/living/M) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) @@ -88,6 +183,13 @@ M.apply_status_effect(/datum/status_effect/ice_block_talisman, paralyze_dur) return ..() +/datum/status_effect/trickwine/buff/ice + id = "ice_wine_buff" + +/datum/status_effect/trickwine/debuff/ice + id = "ice_wine_debuff" + + /datum/reagent/consumable/ethanol/trickwine/shock_wine name = "Shockwine" description = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" @@ -97,16 +199,8 @@ glass_name = "Shockwine" glass_desc = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown" breakaway_flask_icon_state = "baflaskshockwine" - -/datum/reagent/consumable/ethanol/trickwine/shock_wine/on_mob_metabolize(mob/living/M) - ..() - M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) - to_chat(M, "You feel faster the lightning!") - -/datum/reagent/consumable/ethanol/trickwine/shock_wine/on_mob_end_metabolize(mob/living/M) - M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) - to_chat(M, "You slow to a crawl...") - ..() + buff_effect = /datum/status_effect/trickwine/buff/shock + debuff_effect = /datum/status_effect/trickwine/debuff/shock /datum/reagent/consumable/ethanol/trickwine/shock_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) @@ -118,6 +212,29 @@ playsound(M, 'sound/machines/defib_zap.ogg', 100, TRUE) return ..() +/datum/status_effect/trickwine/buff/shock + id = "shock_wine_buff" + trickwine_examine_text = "SUBJECTPRONOUN seems to be crackling with energy." + message_apply_others = "seems to be crackling with energy!" + message_apply_self = "You feel faster than lightning!" + message_remove_others = "has lost their statis energy." + message_remove_self = "You feel sluggish." + alert_desc = "You feel faster then lightning and cracking with energy! Your immune to shock damage and move faster!" + +/datum/status_effect/trickwine/buff/shock/on_apply() + ADD_TRAIT(owner, TRAIT_SHOCKIMMUNE, id) + owner.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) + return ..() + +/datum/status_effect/trickwine/buff/shock/on_remove() + REMOVE_TRAIT(owner, TRAIT_SHOCKIMMUNE, id) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) + ..() + +/datum/status_effect/trickwine/debuff/shock + id = "shock_wine_debuff" + + /datum/reagent/consumable/ethanol/trickwine/hearth_wine name = "Hearthwine" description = "A fiery brew utilized by members of the Saint-Roumain Militia, engineered to cauterize wounds in the field. Goes out in a blaze of glory when thrown." @@ -127,6 +244,8 @@ glass_name = "Hearthwine" glass_desc = "Fiery brew utilized by members of the Saint-Roumain Militia, engineered to cauterize wounds in the field. Goes out in a blaze of glory when thrown." breakaway_flask_icon_state = "baflaskhearthwine" + buff_effect = /datum/status_effect/trickwine/buff/hearth + debuff_effect = /datum/status_effect/trickwine/debuff/hearth /datum/reagent/consumable/ethanol/trickwine/hearth_wine/on_mob_life(mob/living/M) M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) @@ -150,6 +269,13 @@ new /obj/effect/hotspot(otherT, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) return ..() +/datum/status_effect/trickwine/buff/hearth + id = "hearth_wine_buff" + +/datum/status_effect/trickwine/debuff/hearth + id = "hearth_wine_debuff" + + /datum/reagent/consumable/ethanol/trickwine/force_wine name = "Forcewine" description = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." @@ -160,19 +286,35 @@ glass_desc = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." breakaway_flask_icon_state = "baflaskforcewine" buff_effect = /datum/status_effect/trickwine/buff/force + debuff_effect = /datum/status_effect/trickwine/debuff/force -/datum/reagent/consumable/ethanol/trickwine/force_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH) - if(!iscarbon(M)) - reac_volume = reac_volume * 2 - var/turf/T = get_turf(M) - var/turf/otherT - new /obj/effect/forcefield/resin(T, reac_volume * 4) - for(var/direction in GLOB.cardinals) - otherT = get_step(T, direction) - new /obj/effect/forcefield/resin(otherT, reac_volume * 4) +/datum/status_effect/trickwine/buff/force + id = "force_wine_buff" + +/datum/status_effect/trickwine/buff/force/on_apply() + ADD_TRAIT(owner, TRAIT_MINDSHIELD, id) + owner.visible_message(span_warning("[owner] glows a dim grey aura")) return ..() +/datum/status_effect/trickwine/buff/force/on_remove() + REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, id) + owner.visible_message(span_warning("[owner]'s aura fades away")) + ..() + +/datum/status_effect/trickwine/debuff/force + id = "force_wine_debuff" + +/datum/status_effect/trickwine/debuff/force/on_apply() + if(!iscarbon(owner)) + duration = duration * 2 + var/turf/turf = get_turf(owner) + var/turf/other_turf + new /obj/effect/forcefield/resin(turf, duration * 4) + for(var/direction in GLOB.cardinals) + other_turf = get_step(turf, direction) + new /obj/effect/forcefield/resin(other_turf, duration * 4) + + /datum/reagent/consumable/ethanol/trickwine/prism_wine name = "Prismwine" description = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown." @@ -185,74 +327,6 @@ buff_effect = /datum/status_effect/trickwine/buff/prism debuff_effect = /datum/status_effect/trickwine/debuff/prism -//////////////////// -// STATUS EFFECTS // -//////////////////// -/atom/movable/screen/alert/status_effect/trickwine - name = "Trickwine" - desc = "Your empowered or weakened by a trickwine!" - icon_state = "breakaway_flask" - -/atom/movable/screen/alert/status_effect/trickwine/proc/setup(datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) - name = trickwine_reagent.name - icon_state = "template" - cut_overlays() - var/icon/flask_icon = icon('icons/obj/drinks/drinks.dmi', trickwine_reagent.breakaway_flask_icon_state) - add_overlay(flask_icon) - -/datum/status_effect/trickwine - id = "trick_wine" - examine_text = span_notice("They seem to be affected by a trickwine.") - alert_type = /atom/movable/screen/alert/status_effect/trickwine - var/flask_icon_state - var/flask_icon = 'icons/obj/drinks/drinks.dmi' - var/reagent_color = "#FFFFFF" - -/datum/status_effect/trickwine/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) - flask_icon_state = trickwine_reagent.breakaway_flask_icon_state - . = ..() - if(!trickwine_reagent) - CRASH("A trickwine status effect was created without a attached reagent") - reagent_color = trickwine_reagent.color - if(istype(linked_alert, /atom/movable/screen/alert/status_effect/trickwine)) - var/atom/movable/screen/alert/status_effect/trickwine/trickwine_alert = linked_alert - trickwine_alert.setup(trickwine_reagent) - -/datum/status_effect/trickwine/on_apply() - owner.visible_message(span_notice("[owner] is affected by a wine!"), span_notice("You are affected by trickwine!")) - owner.add_filter(id, 2, list("type"="outline", "color"=reagent_color, "size"=1)) - return ..() - -/datum/status_effect/trickwine/on_remove() - owner.visible_message(span_notice("[owner] is no longer affected by a wine!"), span_notice("You are no longer affected by trickwine!")) - owner.remove_filter(id) - -/////////// -// BUFFS // -/////////// -/datum/status_effect/trickwine/buff - id = "trick_wine_buff" - examine_text = span_notice("IDK what to make this yet") - -/datum/status_effect/trickwine/buff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) - . = ..() - examine_text = span_notice("They seem to be affected by [trickwine_reagent.name].") - -/datum/status_effect/trickwine/buff/force - id = "force_wine_buff" - -/datum/status_effect/trickwine/buff/force/on_apply() - ADD_TRAIT(owner, TRAIT_ANTIMAGIC, id) - ADD_TRAIT(owner, TRAIT_MINDSHIELD, id) - owner.visible_message(span_warning("[owner] glows a dim grey aura")) - return ..() - -/datum/status_effect/trickwine/buff/force/on_remove() - REMOVE_TRAIT(owner, TRAIT_ANTIMAGIC, id) - REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, id) - owner.visible_message(span_warning("[owner]'s aura fades away")) - ..() - /datum/status_effect/trickwine/buff/prism id = "prism_wine_buff" @@ -272,26 +346,15 @@ owner.visible_message(span_warning("[owner] has returned to normal!")) ..() -///////////// -// DEBUFFS // -///////////// -/datum/status_effect/trickwine/debuff - id = "trick_wine_debuff" - examine_text = span_notice("They seem to be covered in a trickwine.") - -/datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent, set_duration = null) - if(isnum(set_duration)) - duration = set_duration - . = ..() - examine_text = span_notice("They seem to be covered in [trickwine_reagent.name].") - /datum/status_effect/trickwine/debuff/prism id = "prism_wine_debuff" /datum/status_effect/trickwine/debuff/prism/on_apply() - if(istype(owner, /mob/living/simple_animal/hostile/asteroid)) - var/mob/living/simple_animal/hostile/asteroid/the_animal = owner + /* + if(istype(owner, /mob/living/simple_animal)) + var/mob/living/simple_animal/the_animal = owner the_animal.armor.modifyRating(energy = -50) + */ if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 @@ -299,9 +362,11 @@ return ..() /datum/status_effect/trickwine/debuff/prism/on_remove() - if(istype(owner, /mob/living/simple_animal/hostile/asteroid)) - var/mob/living/simple_animal/hostile/asteroid/the_animal = owner + /* + if(istype(owner, /mob/living/simple_animal)) + var/mob/living/simple_animal/the_animal = owner the_animal.armor.modifyRating(energy = 50) + */ if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 From 348addfd652c716b40b9d34fc4d0e865ca3e41f4 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 9 May 2024 12:00:21 -0500 Subject: [PATCH 05/20] rewrite manuel --- code/game/objects/items/manuals.dm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 693858bf1b2e..d101b56e5f86 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -256,8 +256,8 @@ -

Trickwines for idiots

- Okay, so you just joined the SRM and you want to make some brews! I'm tired of explaining all of this so I'm jotting it all down for you clowns.
+

Trickwines for brewers

+ Okay, so you just joined the SRM and you want to make some brews! I'm tired of explaining all of this so I'm jotting it all down for the new hires.
Trickwines almost all share the same effect. When you drink them, they provide a beneficial effect and when you toss them at someone it provides some sort of bad effect.

Breakaway flasks

Honestly, I love these things. I'm not a scientist so I cant exactly explain how it works but somehow when you fuse plasma into glass it makes it ultra sharp and makes it really good for cracking over fauna heads.
@@ -274,21 +274,22 @@ Once you have enough you can fabricate it the same way you would a normal barrel.

Ashwine

- It's kind of our trademark, and it's one of the simplest trickwines to make. The Montagnes love using this stuff in ceremonies as well so it should get you some good boy points.
+ It's kind of our trademark, and it's one of the simplest trickwines to make.
+ These are the most common wines used in ceremonies so we often stock ships with the moonflowers needed to make them.
It's made with a ratio of 3:1:1 absinthe, mushroom hallucinogen, and ash respectively.
Mushroom hallucinogens come from mushroom caps and you can ferment absinthe from moonflowers.
Its a mild hallucinogenic but seems to have powerful cleansing effects on the devoted SRM.
It can also really fuck someone up, causing their vision to go shaky and blurry which makes it difficult for them to fight.

Icewine

- This one helps stopping foes in their tracks. It's also got a nice taste. + This one helps stopping foes in their tracks. One of my favorite flavor wise. Its made with 3:1:1 saké, polar bear fur, frost oil(grind chilled peppers).
You can get polar bear fur and frost oil from grinding up polar bear hides and chilled peppers.
It's pretty good at sealing burns and lowering your temperature quickly.
However, it completely encases foes in ice and drops their temperature substantially.

Shockwine

- Easily my favorite, this thing is great at scorching most fauna.
+ Easily my favorite for its splashed effect, this thing is great at scorching most fauna.
Its made with vodka, calcium, and lemon juice.
If you did not know, vodka requires enzymes instead of the normal fermenting process.
It's a nice upper. Great if you're trying to run away.
@@ -301,10 +302,13 @@ Its made out of ground up fireblossems with some nice hard cider and a bit of welding fuel with of course a ratio of 3:1:1.

Forcewine

- I once had a duel with a wizard and and I was able to completly ignore a few of his spells! Its like they just fizzled out when they hit me.
- Would recomend for any esoteric senarios even though I have only been in a few of those.
- You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and laugh at them.
- 3:1:1 Tequila, Space Montain Wind, and I know its strange but hollow water, Its that stuff you can extract from geysers
+ Two intresting effects from the consumption of Forcewine.
+ First it seems to give you an "anti magic" effect, I only have one exprience with this but it fizzled out ancient rune that we could best trace back to a blood cult.
+ Second is it protects the mind from cohersion and mind control.
+ From my research this seems to act like nanotrasen mindshield implants.
+ Would recomend for any esoteric senarios. We wont see these alot but its always smart to prepare for the worst.
+ You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and prepare an attack.
+ 3:1:1 Tequila, Space Montain Wind, and I know its one of the most difficult things to come by but hollow water, Its that stuff you can extract from geysers

Prismwine

Gives you a nice shiny layer of armour, fire seems to have alot harder time sticking to me when i tested it.
@@ -318,7 +322,6 @@ "} - // Wiki books that are linked to the configured wiki link. // A book that links to the wiki From 5698258822fa8f4f76b2412403182b30262f145d Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 19 Sep 2024 08:32:32 -0500 Subject: [PATCH 06/20] toggling ai like this was bad the line below it is even worse --- code/modules/reagents/chemistry/reagents/trickwine_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 9eba9bc86ec8..7ad4da1c2315 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -132,7 +132,7 @@ if(!iscarbon(M)) var/mob/living/simple_animal/hostile/hostile_target = M var/hostile_ai_status = hostile_target.AIStatus - hostile_target.AIStatus = AI_OFF + hostile_target.toggle_ai(AI_OFF) addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) M.Jitter(3 * reac_volume) M.Dizzy(2 * reac_volume) From 826e4123b37043472a6060ef6dbde444171c898b Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 19 Sep 2024 08:41:29 -0500 Subject: [PATCH 07/20] magic is not real. --- code/game/objects/items/manuals.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index b30c2f147ce7..9dd4f866f8cb 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -308,12 +308,13 @@

Forcewine

Two intresting effects from the consumption of Forcewine.
First it seems to give you an "anti magic" effect, I have read about of tales of how it fizzled out some sort of great curse that we could best trace back to a ancient cult.
- Second is it protects the mind from cohersion and mind control.
- From my research this seems to act like nanotrasen mindshield implants.
- Would recomend for any esoteric senarios. We wont see these alot but its always smart to prepare for the worst.
+ I doubt it does anything in that regards but as magic is not real its difficult to test.
You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and prepare an attack.
3:1:1. Tequila, Space Montain Wind, and I know its one of the most difficult things to come by but hollow water, Its that stuff you can extract from geysers
+ +

Prismwine

Gives you a nice shiny layer of armour, fire seems to have alot harder time sticking to me when i tested it.
+ Throwing it seeems to do the reverse acting like a magnifying glass to burns and lasers
3:1:1. Good ol Gin, then add plasma and tinea luxor which is found from mushroom stems
Some of these can be a bit situatinal but its always nice to have a few in your bag for emergecys.
From 56aad30c8b58d4400de586062f68111fd6cd55e4 Mon Sep 17 00:00:00 2001 From: fallcon Date: Thu, 19 Sep 2024 09:34:37 -0500 Subject: [PATCH 08/20] remind me to do this --- code/modules/reagents/chemistry/reagents/trickwine_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index af1d05b84e7d..bd8a3ccf3886 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -133,7 +133,7 @@ var/mob/living/simple_animal/hostile/hostile_target = M var/hostile_ai_status = hostile_target.AIStatus hostile_target.toggle_ai(AI_OFF) - addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) + addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) //This needs to be a callback to toggle_ai M.Jitter(3 * reac_volume) M.Dizzy(2 * reac_volume) M.set_drugginess(3 * reac_volume) From 44dfc4a1ccd15ad72c8fad9d9471bdbf23858188 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 24 Sep 2024 09:21:39 -0500 Subject: [PATCH 09/20] trickwine tweaks --- .../chemistry/reagents/trickwine_reagents.dm | 67 ++++++++++++------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index bd8a3ccf3886..efc76502a168 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -17,6 +17,7 @@ id = "trick_wine" examine_text = span_notice("They seem to be affected by a trickwine.") alert_type = /atom/movable/screen/alert/status_effect/trickwine + var/reac_volume var/flask_icon_state var/flask_icon = 'icons/obj/drinks/drinks.dmi' var/reagent_color = "#FFFFFF" @@ -130,10 +131,13 @@ /datum/reagent/consumable/ethanol/trickwine/ash_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) if(!iscarbon(M)) + + // This all needs to be refactored var/mob/living/simple_animal/hostile/hostile_target = M var/hostile_ai_status = hostile_target.AIStatus hostile_target.toggle_ai(AI_OFF) - addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) //This needs to be a callback to toggle_ai + addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) + M.Jitter(3 * reac_volume) M.Dizzy(2 * reac_volume) M.set_drugginess(3 * reac_volume) @@ -167,27 +171,43 @@ /datum/reagent/consumable/ethanol/trickwine/ice_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) - var/paralyze_dur - if(!iscarbon(M)) - reac_volume = reac_volume * 2 - paralyze_dur = reac_volume - else - if(reac_volume <= 50) - paralyze_dur = reac_volume - else - paralyze_dur = 50 + ((reac_volume - 50) / 4) - M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT, 50) - M.Paralyze(paralyze_dur) - walk(M, 0) //stops them mid pathing even if they're stunimmunee - M.apply_status_effect(/datum/status_effect/ice_block_talisman, paralyze_dur) + return ..() /datum/status_effect/trickwine/buff/ice id = "ice_wine_buff" +/datum/status_effect/trickwine/buff/ice/on_apply() + ADD_TRAIT(owner, TRAIT_NOFIRE, id) + return ..() + +/datum/status_effect/trickwine/buff/ice/on_remove() + REMOVE_TRAIT(owner, TRAIT_NOFIRE, id) + return ..() + /datum/status_effect/trickwine/debuff/ice id = "ice_wine_debuff" +/datum/status_effect/trickwine/debuff/ice/on_apply() + walk(M, 0) //stops them mid pathing even if they're stunimmunee + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) + M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT, 50) + M.Paralyze(duration) + to_chat(owner, span_userdanger("You become frozen in a cube!")) + cube = icon('icons/effects/freeze.dmi', "ice_cube") + var/icon/size_check = icon(owner.icon, owner.icon_state) + cube.Scale(size_check.Width(), size_check.Height()) + owner.add_overlay(cube) + return ..() + +/// Blocks movement from the status effect owner +/datum/status_effect/trickwine/debuff/ice/proc/owner_moved() + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +/datum/status_effect/trickwine/debuff/ice/on_remove() + to_chat(owner, span_notice("The cube melts!")) + owner.cut_overlay(cube) + UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) /datum/reagent/consumable/ethanol/trickwine/shock_wine name = "Shockwine" @@ -203,9 +223,6 @@ /datum/reagent/consumable/ethanol/trickwine/shock_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) - //simple mobs are so tanky and i want this to be useful on them - if(iscarbon(M)) - reac_volume = reac_volume / 4 M.electrocute_act(reac_volume, src, siemens_coeff = 1, flags = SHOCK_NOSTUN|SHOCK_TESLA) do_sparks(5, FALSE, M) playsound(M, 'sound/machines/defib_zap.ogg', 100, TRUE) @@ -246,6 +263,7 @@ buff_effect = /datum/status_effect/trickwine/buff/hearth debuff_effect = /datum/status_effect/trickwine/debuff/hearth +//This needs a buff /datum/reagent/consumable/ethanol/trickwine/hearth_wine/on_mob_life(mob/living/M) M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal()) if(ishuman(M)) @@ -255,8 +273,6 @@ /datum/reagent/consumable/ethanol/trickwine/hearth_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH) - if(!iscarbon(M)) - reac_volume = reac_volume * 2 M.fire_act() var/turf/T = get_turf(M) T.IgniteTurf(reac_volume) @@ -287,16 +303,17 @@ buff_effect = /datum/status_effect/trickwine/buff/force debuff_effect = /datum/status_effect/trickwine/debuff/force +//Completenly useless rn. /datum/status_effect/trickwine/buff/force id = "force_wine_buff" /datum/status_effect/trickwine/buff/force/on_apply() - ADD_TRAIT(owner, TRAIT_MINDSHIELD, id) + //ADD_TRAIT(owner, TRAIT_MINDSHIELD, id) owner.visible_message(span_warning("[owner] glows a dim grey aura")) return ..() /datum/status_effect/trickwine/buff/force/on_remove() - REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, id) + //REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, id) owner.visible_message(span_warning("[owner]'s aura fades away")) ..() @@ -304,14 +321,12 @@ id = "force_wine_debuff" /datum/status_effect/trickwine/debuff/force/on_apply() - if(!iscarbon(owner)) - duration = duration * 2 var/turf/turf = get_turf(owner) var/turf/other_turf - new /obj/effect/forcefield/resin(turf, duration * 4) + new /obj/effect/forcefield/resin(turf, duration) for(var/direction in GLOB.cardinals) other_turf = get_step(turf, direction) - new /obj/effect/forcefield/resin(other_turf, duration * 4) + new /obj/effect/forcefield/resin(other_turf, duration) /datum/reagent/consumable/ethanol/trickwine/prism_wine @@ -331,6 +346,7 @@ /datum/status_effect/trickwine/buff/prism/on_apply() ADD_TRAIT(owner, TRAIT_REFLECTIVE, id) + if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 @@ -339,6 +355,7 @@ /datum/status_effect/trickwine/buff/prism/on_remove() REMOVE_TRAIT(owner, TRAIT_REFLECTIVE, id) + REMOVE_TRAIT(owner, TRAIT_NOFIRE, id) if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 From 93faa11572b020ac646002ae88f93d749234ceb1 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 24 Sep 2024 09:21:46 -0500 Subject: [PATCH 10/20] trait repath --- code/__DEFINES/traits.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c97fa62ffc5d..a7c0da04cf97 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -281,7 +281,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai //non-mob traits /// Used for limb-based paralysis, where replacing the limb will fix it. #define TRAIT_PARALYSIS "paralysis" - +/// Granted by prismwine, reflects lasers +#define TRAIT_REFLECTIVE "reflective" #define TRAIT_HEARING_SENSITIVE "hearing_sensitive" /* @@ -446,8 +447,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_FISH_SAFE_STORAGE "fish_case" /// Stuff that can go inside fish cases #define TRAIT_FISH_CASE_COMPATIBILE "fish_case_compatibile" -/// Granted by prismwine -#define TRAIT_REFLECTIVE "reflective" /// Self-explainatory. #define BEAUTY_ELEMENT_TRAIT "beauty_element" #define MOOD_COMPONENT_TRAIT "mood_component" From 1d27be74c28e4858f3bf3a2ee2f31d8fdd47bb5c Mon Sep 17 00:00:00 2001 From: fallcon Date: Tue, 24 Sep 2024 10:14:52 -0500 Subject: [PATCH 11/20] yea --- .../chemistry/reagents/alcohol_reagents.dm | 5 +- .../chemistry/reagents/trickwine_reagents.dm | 107 +++++++++--------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index ad27b15207a8..899b68e6048c 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1,18 +1,19 @@ #define ALCOHOL_THRESHOLD_MODIFIER 1 //Greater numbers mean that less alcohol has greater intoxication potential #define ALCOHOL_RATE 0.005 //The rate at which alcohol affects you #define ALCOHOL_EXPONENT 1.6 //The exponent applied to boozepwr to make higher volume alcohol at least a little bit damaging to the liver - +#define ETHANOL_METABOLISM 0.5 * REAGENTS_METABOLISM ////////////// I don't know who made this header before I refactored alcohols but I'm going to fucking strangle them because it was so ugly, holy Christ // ALCOHOLS // ////////////// + /datum/reagent/consumable/ethanol name = "Ethanol" description = "A well-known alcohol with a variety of applications." color = "#404030" // rgb: 64, 64, 48 nutriment_factor = 0 taste_description = "alcohol" - metabolization_rate = 0.5 * REAGENTS_METABOLISM + metabolization_rate = ETHANOL_METABOLISM var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning accelerant_quality = 5 diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index efc76502a168..94a9d8f358a9 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -17,9 +17,12 @@ id = "trick_wine" examine_text = span_notice("They seem to be affected by a trickwine.") alert_type = /atom/movable/screen/alert/status_effect/trickwine - var/reac_volume + // Try to match normal reagent tick rate based on on_mob_life + tick_interval = 20 + // Used to make icon for status_effect var/flask_icon_state var/flask_icon = 'icons/obj/drinks/drinks.dmi' + // Used for mod outline var/reagent_color = "#FFFFFF" var/message_apply_others = "is affected by a wine!" var/message_apply_self = "You are affected by trickwine!" @@ -27,6 +30,8 @@ var/message_remove_self = "You are no longer affected by trickwine!" var/trickwine_examine_text var/alert_desc + // Applied and removes with reagent + var/trait /datum/status_effect/trickwine/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) flask_icon_state = trickwine_reagent.breakaway_flask_icon_state @@ -43,11 +48,15 @@ /datum/status_effect/trickwine/on_apply() owner.visible_message(span_notice("[owner] " + message_apply_others), span_notice(message_apply_self)) owner.add_filter(id, 2, list("type"="outline", "color"=reagent_color, "size"=1)) + if(trait) + ADD_TRAIT(owner, trait, id) return ..() /datum/status_effect/trickwine/on_remove() owner.visible_message(span_notice("[owner] " + message_remove_others), span_notice(message_remove_self)) owner.remove_filter(id) + if(trait) + REMOVE_TRAIT(owner, trait, id) ////////// // BUFF // @@ -99,7 +108,7 @@ /datum/reagent/consumable/ethanol/trickwine/expose_mob(mob/living/exposed_mob, method = TOUCH, reac_volume) if(method == TOUCH) if(debuff_effect) - exposed_mob.apply_status_effect(debuff_effect, src, reac_volume SECONDS) + exposed_mob.apply_status_effect(debuff_effect, src, (reac_volume * ETHANOL_METABOLISM) * 2) //Goal is it have the same duration as when you drink it. return ..() @@ -120,7 +129,7 @@ var/high_message = pick("You feel far more devoted to the cause", "You feel like you should go on a hunt") var/cleanse_message = pick("Divine light purifies you.", "You are purged of foul spirts.") if(prob(10)) - M.set_drugginess(10) + M.adjust_drugginess(5) to_chat(M, "[high_message]") if(M.faction && ("roumain" in M.faction)) M.adjustToxLoss(-2) @@ -137,10 +146,6 @@ var/hostile_ai_status = hostile_target.AIStatus hostile_target.toggle_ai(AI_OFF) addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) - - M.Jitter(3 * reac_volume) - M.Dizzy(2 * reac_volume) - M.set_drugginess(3 * reac_volume) return ..() /datum/status_effect/trickwine/buff/ash @@ -151,6 +156,17 @@ id = "ash_wine_debuff" trickwine_examine_text = "SUBJECTPRONOUN seems to be covered in a thin layer of ash. They seem to be twitching and jittery." +/datum/status_effect/trickwine/debuff/ash/tick() + // I probally cant do this but im on my laptop + pick(owner.Jitter(3), owner.Dizzy(2), owner.adjust_drugginess(3)) + + switch(pick(list("jitter", "dizzy", "drug"))) + if("jitter") + owner.Jitter(3) + if("dizzy") + owner.Dizzy(2) + if("drug") + owner.adjust_drugginess(3) /datum/reagent/consumable/ethanol/trickwine/ice_wine name = "Icewine" @@ -169,30 +185,18 @@ M.adjustFireLoss(-1) return ..() -/datum/reagent/consumable/ethanol/trickwine/ice_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH) - - return ..() - /datum/status_effect/trickwine/buff/ice id = "ice_wine_buff" - -/datum/status_effect/trickwine/buff/ice/on_apply() - ADD_TRAIT(owner, TRAIT_NOFIRE, id) - return ..() - -/datum/status_effect/trickwine/buff/ice/on_remove() - REMOVE_TRAIT(owner, TRAIT_NOFIRE, id) - return ..() + trait = TRAIT_NOFIRE /datum/status_effect/trickwine/debuff/ice id = "ice_wine_debuff" + var/icon/cube /datum/status_effect/trickwine/debuff/ice/on_apply() - walk(M, 0) //stops them mid pathing even if they're stunimmunee + walk(owner, 0) //stops them mid pathing even if they're stunimmunee RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) - M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT, 50) - M.Paralyze(duration) + owner.Paralyze(duration) to_chat(owner, span_userdanger("You become frozen in a cube!")) cube = icon('icons/effects/freeze.dmi', "ice_cube") var/icon/size_check = icon(owner.icon, owner.icon_state) @@ -200,6 +204,11 @@ owner.add_overlay(cube) return ..() +/datum/status_effect/trickwine/debuff/ice/tick() + owner.adjust_bodytemperature((-1 * duration) * TEMPERATURE_DAMAGE_COEFFICIENT, 50) + if(owner.bodytemperature >= owner.get_body_temp_normal()) + qdel(src) + /// Blocks movement from the status effect owner /datum/status_effect/trickwine/debuff/ice/proc/owner_moved() return COMPONENT_MOVABLE_BLOCK_PRE_MOVE @@ -236,20 +245,22 @@ message_remove_others = "has lost their statis energy." message_remove_self = "You feel sluggish." alert_desc = "You feel faster then lightning and cracking with energy! Your immune to shock damage and move faster!" + trait = TRAIT_SHOCKIMMUNE /datum/status_effect/trickwine/buff/shock/on_apply() - ADD_TRAIT(owner, TRAIT_SHOCKIMMUNE, id) owner.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) return ..() /datum/status_effect/trickwine/buff/shock/on_remove() - REMOVE_TRAIT(owner, TRAIT_SHOCKIMMUNE, id) owner.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine) ..() /datum/status_effect/trickwine/debuff/shock id = "shock_wine_debuff" +/datum/status_effect/trickwine/debuff/shock/tick() + if(rand(25)) + do_sparks(5, FALSE, M) /datum/reagent/consumable/ethanol/trickwine/hearth_wine name = "Hearthwine" @@ -262,6 +273,7 @@ breakaway_flask_icon_state = "baflaskhearthwine" buff_effect = /datum/status_effect/trickwine/buff/hearth debuff_effect = /datum/status_effect/trickwine/debuff/hearth + trait = TRAIT_RESISTCOLD //This needs a buff /datum/reagent/consumable/ethanol/trickwine/hearth_wine/on_mob_life(mob/living/M) @@ -271,34 +283,28 @@ H.heal_bleeding(0.25) return ..() -/datum/reagent/consumable/ethanol/trickwine/hearth_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH) - M.fire_act() - var/turf/T = get_turf(M) - T.IgniteTurf(reac_volume) - new /obj/effect/hotspot(T, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) - var/turf/otherT - for(var/direction in GLOB.cardinals) - otherT = get_step(T, direction) - otherT.IgniteTurf(reac_volume) - new /obj/effect/hotspot(otherT, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) - return ..() - /datum/status_effect/trickwine/buff/hearth id = "hearth_wine_buff" +/datum/status_effect/trickwine/buff/hearth/on_apply() + /datum/status_effect/trickwine/debuff/hearth id = "hearth_wine_debuff" +/datum/status_effect/trickwine/debuff/hearth/tick() + owner.fire_act() + var/turf/owner_turf = get_turf(owner) + owner_truf.IgniteTurf(duration) + new /obj/effect/hotspot(owner_turf, duration, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + duration * 10) /datum/reagent/consumable/ethanol/trickwine/force_wine name = "Forcewine" - description = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." + description = "Creates a barrier on the skin that catches sharpnel and when reversed locks threats down with a barrier" color = "#709AAF" boozepwr = 70 taste_description = "the strength of your convictions" glass_name = "Forcewine" - glass_desc = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown." + glass_desc = "Creates a barrier on the skin that catches sharpnel and when reversed locks threats down with a barrier" breakaway_flask_icon_state = "baflaskforcewine" buff_effect = /datum/status_effect/trickwine/buff/force debuff_effect = /datum/status_effect/trickwine/debuff/force @@ -306,16 +312,12 @@ //Completenly useless rn. /datum/status_effect/trickwine/buff/force id = "force_wine_buff" - -/datum/status_effect/trickwine/buff/force/on_apply() - //ADD_TRAIT(owner, TRAIT_MINDSHIELD, id) - owner.visible_message(span_warning("[owner] glows a dim grey aura")) - return ..() - -/datum/status_effect/trickwine/buff/force/on_remove() - //REMOVE_TRAIT(owner, TRAIT_MINDSHIELD, id) - owner.visible_message(span_warning("[owner]'s aura fades away")) - ..() + message_apply_others = "glows a dim grey aura." + message_apply_self = "You feel faster than lightning!" + message_remove_others = "'s aura fades away." + message_remove_self = "You feel sluggish." + // No shrapnel seems useful + trait = TRAIT_PIERCEIMMUNE /datum/status_effect/trickwine/debuff/force id = "force_wine_debuff" @@ -343,10 +345,9 @@ /datum/status_effect/trickwine/buff/prism id = "prism_wine_buff" + trait = TRAIT_REFLECTIVE /datum/status_effect/trickwine/buff/prism/on_apply() - ADD_TRAIT(owner, TRAIT_REFLECTIVE, id) - if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 @@ -354,8 +355,6 @@ return ..() /datum/status_effect/trickwine/buff/prism/on_remove() - REMOVE_TRAIT(owner, TRAIT_REFLECTIVE, id) - REMOVE_TRAIT(owner, TRAIT_NOFIRE, id) if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 From 4b05c937d78c76ac96e4e61624017f1a7c41f5c5 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 24 Sep 2024 11:28:36 -0500 Subject: [PATCH 12/20] dropshadow looks so much better then outline --- .../chemistry/reagents/trickwine_reagents.dm | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 94a9d8f358a9..88b746e626eb 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -35,19 +35,18 @@ /datum/status_effect/trickwine/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) flask_icon_state = trickwine_reagent.breakaway_flask_icon_state - . = ..() if(!trickwine_reagent) CRASH("A trickwine status effect was created without a attached reagent") reagent_color = trickwine_reagent.color + . = ..() if(istype(linked_alert, /atom/movable/screen/alert/status_effect/trickwine)) var/atom/movable/screen/alert/status_effect/trickwine/trickwine_alert = linked_alert trickwine_alert.setup(trickwine_reagent) - if(alert_desc) - trickwine_alert.desc = alert_desc + trickwine_alert.desc = alert_desc /datum/status_effect/trickwine/on_apply() owner.visible_message(span_notice("[owner] " + message_apply_others), span_notice(message_apply_self)) - owner.add_filter(id, 2, list("type"="outline", "color"=reagent_color, "size"=1)) + owner.add_filter(id, 2, drop_shadow_filter(x = 0, y = -1, size = 2, color = reagent_color)) if(trait) ADD_TRAIT(owner, trait, id) return ..() @@ -63,6 +62,7 @@ ////////// /datum/status_effect/trickwine/buff id = "trick_wine_buff" + alert_desc = "Your empowered a trickwine!" /datum/status_effect/trickwine/buff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent) . = ..() @@ -76,6 +76,7 @@ //////////// /datum/status_effect/trickwine/debuff id = "trick_wine_debuff" + alert_desc = "Your weakened a trickwine!" /datum/status_effect/trickwine/debuff/on_creation(mob/living/new_owner, datum/reagent/consumable/ethanol/trickwine/trickwine_reagent, set_duration = null) if(isnum(set_duration)) @@ -204,11 +205,6 @@ owner.add_overlay(cube) return ..() -/datum/status_effect/trickwine/debuff/ice/tick() - owner.adjust_bodytemperature((-1 * duration) * TEMPERATURE_DAMAGE_COEFFICIENT, 50) - if(owner.bodytemperature >= owner.get_body_temp_normal()) - qdel(src) - /// Blocks movement from the status effect owner /datum/status_effect/trickwine/debuff/ice/proc/owner_moved() return COMPONENT_MOVABLE_BLOCK_PRE_MOVE @@ -260,7 +256,7 @@ /datum/status_effect/trickwine/debuff/shock/tick() if(rand(25)) - do_sparks(5, FALSE, M) + do_sparks(5, FALSE, owner) /datum/reagent/consumable/ethanol/trickwine/hearth_wine name = "Hearthwine" @@ -273,7 +269,6 @@ breakaway_flask_icon_state = "baflaskhearthwine" buff_effect = /datum/status_effect/trickwine/buff/hearth debuff_effect = /datum/status_effect/trickwine/debuff/hearth - trait = TRAIT_RESISTCOLD //This needs a buff /datum/reagent/consumable/ethanol/trickwine/hearth_wine/on_mob_life(mob/living/M) @@ -285,8 +280,7 @@ /datum/status_effect/trickwine/buff/hearth id = "hearth_wine_buff" - -/datum/status_effect/trickwine/buff/hearth/on_apply() + trait = TRAIT_RESISTCOLD /datum/status_effect/trickwine/debuff/hearth id = "hearth_wine_debuff" @@ -294,7 +288,7 @@ /datum/status_effect/trickwine/debuff/hearth/tick() owner.fire_act() var/turf/owner_turf = get_turf(owner) - owner_truf.IgniteTurf(duration) + owner_turf.IgniteTurf(duration) new /obj/effect/hotspot(owner_turf, duration, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + duration * 10) /datum/reagent/consumable/ethanol/trickwine/force_wine @@ -329,7 +323,7 @@ for(var/direction in GLOB.cardinals) other_turf = get_step(turf, direction) new /obj/effect/forcefield/resin(other_turf, duration) - + return ..() /datum/reagent/consumable/ethanol/trickwine/prism_wine name = "Prismwine" From e43406398848abd82e23ff9cef70b84ac73f2534 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 24 Sep 2024 11:50:50 -0500 Subject: [PATCH 13/20] tryna make hearth wines not remove all o2 from rooms --- .../chemistry/reagents/trickwine_reagents.dm | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 88b746e626eb..70a850a1f681 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -109,7 +109,7 @@ /datum/reagent/consumable/ethanol/trickwine/expose_mob(mob/living/exposed_mob, method = TOUCH, reac_volume) if(method == TOUCH) if(debuff_effect) - exposed_mob.apply_status_effect(debuff_effect, src, (reac_volume * ETHANOL_METABOLISM) * 2) //Goal is it have the same duration as when you drink it. + exposed_mob.apply_status_effect(debuff_effect, src, (reac_volume / ETHANOL_METABOLISM) * 2) //Goal is it have the same duration as when you drink it. return ..() @@ -138,17 +138,6 @@ to_chat(M, "[cleanse_message]") return ..() -/datum/reagent/consumable/ethanol/trickwine/ash_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(method == TOUCH) - if(!iscarbon(M)) - - // This all needs to be refactored - var/mob/living/simple_animal/hostile/hostile_target = M - var/hostile_ai_status = hostile_target.AIStatus - hostile_target.toggle_ai(AI_OFF) - addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume) - return ..() - /datum/status_effect/trickwine/buff/ash id = "ash_wine_buff" trickwine_examine_text = "SUBJECTPRONOUN seems to be filled with energy and devotion. There eyes are dialated and they seem to be twitching." @@ -158,10 +147,7 @@ trickwine_examine_text = "SUBJECTPRONOUN seems to be covered in a thin layer of ash. They seem to be twitching and jittery." /datum/status_effect/trickwine/debuff/ash/tick() - // I probally cant do this but im on my laptop - pick(owner.Jitter(3), owner.Dizzy(2), owner.adjust_drugginess(3)) - - switch(pick(list("jitter", "dizzy", "drug"))) + switch(pick("jitter", "dizzy", "drug")) if("jitter") owner.Jitter(3) if("dizzy") @@ -286,10 +272,10 @@ id = "hearth_wine_debuff" /datum/status_effect/trickwine/debuff/hearth/tick() - owner.fire_act() + //owner.fire_act() var/turf/owner_turf = get_turf(owner) owner_turf.IgniteTurf(duration) - new /obj/effect/hotspot(owner_turf, duration, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + duration * 10) + //new /obj/effect/hotspot(owner_turf, 1) /datum/reagent/consumable/ethanol/trickwine/force_wine name = "Forcewine" From 1381bbf0dafd3cba34eef29c1fe905acddbe5bbd Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Tue, 29 Oct 2024 11:42:20 -0500 Subject: [PATCH 14/20] improvments to prism and force --- code/__DEFINES/dcs/signals/signals.dm | 3 ++ .../effects/effect_system/effects_foam.dm | 16 ++++++++ code/game/objects/effects/forcefields.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 5 ++- .../chemistry/reagents/trickwine_reagents.dm | 39 ++++++++++++------- 5 files changed, 49 insertions(+), 16 deletions(-) diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index 38f7d8692853..d3c31df7d7c2 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -735,3 +735,6 @@ ///sent when the access on an id is changed/updated, ensures wallets get updated once ids generate there access #define COSMIG_ACCESS_UPDATED "acces_updated" + +///sent by carbons to check if they can reflect a projectile +#define COMSIG_CHECK_REFLECT "check_reflect" diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 51020d8f60dc..03925bdcbbbf 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -328,6 +328,22 @@ for(var/obj/item/Item in O) Item.extinguish() +/obj/structure/foamedmetal/forcewine + name = "resin" + desc = "It's rapidly decaying!" + opacity = FALSE + icon_state = "atmos_resin" + alpha = 120 + max_integrity = 10 + var/timeleft = 50 + +/obj/structure/foamedmetal/forcewine/Initialize(mapload, new_timeleft) + . = ..() + if(new_timeleft) + timeleft = new_timeleft + if(timeleft) + QDEL_IN(src, timeleft) + #undef ALUMINIUM_FOAM #undef IRON_FOAM #undef RESIN_FOAM diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index e46d8d92e82a..2d22fca11d18 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -45,4 +45,4 @@ name = "resin" icon_state = "atmos_resin" CanAtmosPass = ATMOS_PASS_NO - timeleft = 1 + timeleft = 50 diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 7a7bc349b26c..097432862d0c 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -97,8 +97,9 @@ for(var/obj/item/I in held_items) if(I.IsReflect(def_zone)) return TRUE - ///Granted by prismwine - if(HAS_TRAIT(src, TRAIT_REFLECTIVE) && prob(50)) + if(SEND_SIGNAL(src, COMSIG_CHECK_REFLECT, def_zone)) + return TRUE + if(HAS_TRAIT(src, TRAIT_REFLECTIVE)) return TRUE return FALSE diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 70a850a1f681..45d0b3c7b726 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -305,10 +305,10 @@ /datum/status_effect/trickwine/debuff/force/on_apply() var/turf/turf = get_turf(owner) var/turf/other_turf - new /obj/effect/forcefield/resin(turf, duration) + new /obj/structure/foamedmetal/forcewine(turf, duration) for(var/direction in GLOB.cardinals) other_turf = get_step(turf, direction) - new /obj/effect/forcefield/resin(other_turf, duration) + new /obj/structure/foamedmetal/forcewine(other_turf, duration) return ..() /datum/reagent/consumable/ethanol/trickwine/prism_wine @@ -323,14 +323,16 @@ buff_effect = /datum/status_effect/trickwine/buff/prism debuff_effect = /datum/status_effect/trickwine/debuff/prism +#define MAX_REFLECTS 3 /datum/status_effect/trickwine/buff/prism id = "prism_wine_buff" - trait = TRAIT_REFLECTIVE + var/reflect_count = MAX_REFLECTS /datum/status_effect/trickwine/buff/prism/on_apply() if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 + RegisterSignal(owner, COMSIG_CHECK_REFLECT, PROC_REF(on_check_reflect)) owner.visible_message(span_warning("[owner] seems to shimmer with power!")) return ..() @@ -338,18 +340,32 @@ if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 + UnregisterSignal(owner, COMSIG_CHECK_REFLECT) owner.visible_message(span_warning("[owner] has returned to normal!")) ..() +/datum/status_effect/trickwine/buff/prism/tick() + . = ..() + if(prob(25) && reflect_count < MAX_REFLECTS) + adjust_charge(1) + to_chat(owner, span_notice("Your resin sweat builds up another layer!")) + +/datum/status_effect/trickwine/buff/prism/proc/adjust_charge(change) + reflect_count = clamp(reflect_count + change, 0, MAX_REFLECTS) + owner.add_filter(id, 2, drop_shadow_filter(x = 0, y = -1, size = 1 + reflect_count, color = reagent_color)) + +/datum/status_effect/trickwine/buff/prism/proc/on_check_reflect(mob/living/carbon/human/owner, def_zone) + SIGNAL_HANDLER + if(reflect_count > 0) + to_chat(owner, span_notice("Your resin sweat protects you!")) + adjust_charge(-1) + return TRUE +#undef MAX_REFLECTS + /datum/status_effect/trickwine/debuff/prism id = "prism_wine_debuff" /datum/status_effect/trickwine/debuff/prism/on_apply() - /* - if(istype(owner, /mob/living/simple_animal)) - var/mob/living/simple_animal/the_animal = owner - the_animal.armor.modifyRating(energy = -50) - */ if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 @@ -357,13 +373,10 @@ return ..() /datum/status_effect/trickwine/debuff/prism/on_remove() - /* - if(istype(owner, /mob/living/simple_animal)) - var/mob/living/simple_animal/the_animal = owner - the_animal.armor.modifyRating(energy = 50) - */ if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 the_human.visible_message(span_warning("[the_human] has returned to normal!")) ..() + + From 9816422abc26358ec9746f39eeb14db02b5c8059 Mon Sep 17 00:00:00 2001 From: fallcon Date: Tue, 29 Oct 2024 12:32:40 -0500 Subject: [PATCH 15/20] trickwines cost more, keep moving for prism buff --- .../blackmarket_items/consumables.dm | 18 ++++++++++-------- .../chemistry/reagents/trickwine_reagents.dm | 15 +++++++++++---- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm index 2d9f3af83c06..1fcae594bea9 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm @@ -69,19 +69,21 @@ desc = "The SRM keeps the recipes for their trickwines a closely guarded secret. The Hunters carrying those bottles? Less so." item = /datum/reagent/consumable/ethanol/trickwine/ash_wine - price_min = 200 + price_min = 300 price_max = 600 stock_min = 3 stock_max = 7 - availability_prob = 40 + availability_prob = 30 /datum/blackmarket_item/consumable/trickwine/spawn_item(loc) - var/trickwine = pick(list(/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, - /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine)) + var/trickwine = pick(list( + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine, + /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine + )) return new trickwine(loc) /datum/blackmarket_item/consumable/stimpack diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 45d0b3c7b726..099c547e7ecb 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -327,12 +327,14 @@ /datum/status_effect/trickwine/buff/prism id = "prism_wine_buff" var/reflect_count = MAX_REFLECTS + var/recent_movement = FALSE /datum/status_effect/trickwine/buff/prism/on_apply() if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 RegisterSignal(owner, COMSIG_CHECK_REFLECT, PROC_REF(on_check_reflect)) + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) owner.visible_message(span_warning("[owner] seems to shimmer with power!")) return ..() @@ -340,15 +342,16 @@ if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 - UnregisterSignal(owner, COMSIG_CHECK_REFLECT) + UnregisterSignal(owner, list(COMSIG_CHECK_REFLECT, COMSIG_MOVABLE_MOVED)) owner.visible_message(span_warning("[owner] has returned to normal!")) ..() /datum/status_effect/trickwine/buff/prism/tick() . = ..() - if(prob(25) && reflect_count < MAX_REFLECTS) + if(prob(50) && reflect_count < MAX_REFLECTS && recent_movement) adjust_charge(1) to_chat(owner, span_notice("Your resin sweat builds up another layer!")) + recent_movement = FALSE /datum/status_effect/trickwine/buff/prism/proc/adjust_charge(change) reflect_count = clamp(reflect_count + change, 0, MAX_REFLECTS) @@ -360,23 +363,27 @@ to_chat(owner, span_notice("Your resin sweat protects you!")) adjust_charge(-1) return TRUE + +// The idea is that its a resin made of sweat, therfore stay moving +/datum/status_effect/trickwine/buff/prism/proc/on_move() + recent_movement = TRUE #undef MAX_REFLECTS /datum/status_effect/trickwine/debuff/prism id = "prism_wine_debuff" + message_apply_others = " seems weakend!" + message_remove_others = " has returned to normal!" /datum/status_effect/trickwine/debuff/prism/on_apply() if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 2 - the_human.visible_message(span_warning("[the_human] seems weakened!")) return ..() /datum/status_effect/trickwine/debuff/prism/on_remove() if(ishuman(owner)) var/mob/living/carbon/human/the_human = owner the_human.physiology.burn_mod *= 0.5 - the_human.visible_message(span_warning("[the_human] has returned to normal!")) ..() From 29bbd392ba4f2fe7518f66f656d7fb6825c526c6 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 29 Dec 2024 19:53:21 -0600 Subject: [PATCH 16/20] readds force and prism --- .../food_and_drinks/drinks/drinks/breakawayflask.dm | 10 ++++++++++ .../food_and_drinks/recipes/drinks_recipes.dm | 12 ++++++++++++ .../chemistry/reagents/trickwine_reagents.dm | 13 ++++++++----- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm b/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm index 45dc05531ba8..d13dc4e69774 100644 --- a/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm +++ b/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm @@ -72,3 +72,13 @@ name = "Vintage Hearthflame" list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/hearth_wine = 45, /datum/reagent/consumable/ethanol/hcider = 5) desc = "Hearthflame is one of the most important tonics devised by the SRM – both for its potent abilities in staunching wounds or setting enemies aflame, and for its closeness to the divine fire associated with the Ashen Huntsman." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine + name = "Vintage Saint-Roumain Forcewine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/force_wine = 45, /datum/reagent/consumable/ethanol/tequila = 5) + desc = "Forcewine was originally created as a means to create temporary shelters during long tracking expeditions. While the structures proved to be not as versatile in shape as its brewers had hoped, its utility in creating barricades or heming in hostiles was still greatly appreciated." + +/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine + name = "Vintage Saint-Roumain Prismwine" + list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/prism_wine = 45, /datum/reagent/consumable/ethanol/gin = 5) + desc = "Prismwine is one of the most recent additions to the Saint-Roumain Militia's reserve of trickwines. It was purpose-created for fighting hostiles that utilized more advanced energy projection attacks, such as the cryonic beams of watchers or the laser guns of interstellar pirates." diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 8be72cd786db..156f1e03b1c1 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -637,6 +637,18 @@ required_container = /obj/structure/fermenting_barrel/distiller mix_sound ='sound/items/welder.ogg' +/datum/chemical_reaction/force_wine + results = list(/datum/reagent/consumable/ethanol/trickwine/force_wine = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 3, /datum/reagent/calcium = 1, /datum/reagent/consumable/comet_trail = 1) + required_container = /obj/structure/fermenting_barrel/distiller + mix_sound ='sound/magic/forcewall.ogg' + +/datum/chemical_reaction/prism_wine + results = list(/datum/reagent/consumable/ethanol/trickwine/prism_wine = 5) + required_reagents = list(/datum/reagent/consumable/ethanol/gin = 3, /datum/reagent/toxin/plasma = 1, /datum/reagent/consumable/tinlux = 1) + required_container = /obj/structure/fermenting_barrel/distiller + mix_sound ='sound/weapons/laser.ogg' + /datum/chemical_reaction/molten_bubbles results = list(/datum/reagent/consumable/molten = 30) required_reagents = list(/datum/reagent/clf3 = 10, /datum/reagent/consumable/space_cola = 20, /datum/reagent/medicine/leporazine = 1, /datum/reagent/medicine/lavaland_extract = 1) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index cfd0aa0382df..a123fcbc7af9 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -96,7 +96,7 @@ var/datum/status_effect/trickwine/debuff_effect = null var/datum/status_effect/trickwine/buff_effect = null -/datum/reagent/consumable/ethanol/trickwine/on_mob_metabolize(mob/living/consumer) +/datum/reagent/consumable/ethanol/trickwine/on_mob_metabolize(mob/living/conasumer) if(buff_effect) consumer.apply_status_effect(buff_effect, src) ..() @@ -109,7 +109,7 @@ /datum/reagent/consumable/ethanol/trickwine/expose_mob(mob/living/exposed_mob, method = TOUCH, reac_volume) if(method == TOUCH) if(debuff_effect) - exposed_mob.apply_status_effect(debuff_effect, src, (reac_volume / ETHANOL_METABOLISM) * 2) //Goal is it have the same duration as when you drink it. + exposed_mob.apply_status_effect(debuff_effect, src, (reac_volume / ETHANOL_METABOLISM) * 10) return ..() @@ -350,9 +350,12 @@ /datum/status_effect/trickwine/buff/prism/tick() . = ..() - if(prob(50) && reflect_count < MAX_REFLECTS && recent_movement) - adjust_charge(1) - to_chat(owner, span_notice("Your resin sweat builds up another layer!")) + if(prob(50) && reflect_count < MAX_REFLECTS) + if(recent_movement) + adjust_charge(1) + to_chat(owner, span_notice("Your resin sweat builds up another layer!")) + else + to_chat(owner, span_warning("You need to keep moving to build up resin sweat!")) recent_movement = FALSE /datum/status_effect/trickwine/buff/prism/proc/adjust_charge(change) From 78a087454008902025ac83228fb1f2ebfcc4dd14 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 29 Dec 2024 20:20:26 -0600 Subject: [PATCH 17/20] tweaks to prism, fix a compile eror --- .../chemistry/reagents/trickwine_reagents.dm | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index a123fcbc7af9..6da107e47678 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -96,7 +96,7 @@ var/datum/status_effect/trickwine/debuff_effect = null var/datum/status_effect/trickwine/buff_effect = null -/datum/reagent/consumable/ethanol/trickwine/on_mob_metabolize(mob/living/conasumer) +/datum/reagent/consumable/ethanol/trickwine/on_mob_metabolize(mob/living/consumer) if(buff_effect) consumer.apply_status_effect(buff_effect, src) ..() @@ -225,9 +225,9 @@ id = "shock_wine_buff" trickwine_examine_text = "SUBJECTPRONOUN seems to be crackling with energy." message_apply_others = "seems to be crackling with energy!" - message_apply_self = "You feel faster than lightning!" + message_apply_self = "You feel like a bolt of lightning!" message_remove_others = "has lost their statis energy." - message_remove_self = "You feel sluggish." + message_remove_self = "Inertia leaves your body!" alert_desc = "You feel faster then lightning and cracking with energy! Your immune to shock damage and move faster!" trait = TRAIT_SHOCKIMMUNE @@ -291,7 +291,6 @@ buff_effect = /datum/status_effect/trickwine/buff/force debuff_effect = /datum/status_effect/trickwine/debuff/force -//Completenly useless rn. /datum/status_effect/trickwine/buff/force id = "force_wine_buff" message_apply_others = "glows a dim grey aura." @@ -328,29 +327,21 @@ #define MAX_REFLECTS 3 /datum/status_effect/trickwine/buff/prism id = "prism_wine_buff" - var/reflect_count = MAX_REFLECTS + var/reflect_count = 0 var/recent_movement = FALSE /datum/status_effect/trickwine/buff/prism/on_apply() - if(ishuman(owner)) - var/mob/living/carbon/human/the_human = owner - the_human.physiology.burn_mod *= 0.5 RegisterSignal(owner, COMSIG_CHECK_REFLECT, PROC_REF(on_check_reflect)) RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) - owner.visible_message(span_warning("[owner] seems to shimmer with power!")) return ..() /datum/status_effect/trickwine/buff/prism/on_remove() - if(ishuman(owner)) - var/mob/living/carbon/human/the_human = owner - the_human.physiology.burn_mod *= 2 UnregisterSignal(owner, list(COMSIG_CHECK_REFLECT, COMSIG_MOVABLE_MOVED)) - owner.visible_message(span_warning("[owner] has returned to normal!")) ..() /datum/status_effect/trickwine/buff/prism/tick() . = ..() - if(prob(50) && reflect_count < MAX_REFLECTS) + if(prob(25) && reflect_count < MAX_REFLECTS) if(recent_movement) adjust_charge(1) to_chat(owner, span_notice("Your resin sweat builds up another layer!")) @@ -376,8 +367,8 @@ /datum/status_effect/trickwine/debuff/prism id = "prism_wine_debuff" - message_apply_others = " seems weakend!" - message_remove_others = " has returned to normal!" + message_apply_others = "seems weakend!" + message_remove_others = "has returned to normal!" /datum/status_effect/trickwine/debuff/prism/on_apply() if(ishuman(owner)) From 3d1e2ced3ec84e15753a5073f6be711ef205fcef Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 29 Dec 2024 20:37:14 -0600 Subject: [PATCH 18/20] descriptioning --- .../chemistry/reagents/trickwine_reagents.dm | 65 +++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 6da107e47678..565faf023a51 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -141,10 +141,20 @@ /datum/status_effect/trickwine/buff/ash id = "ash_wine_buff" trickwine_examine_text = "SUBJECTPRONOUN seems to be filled with energy and devotion. There eyes are dialated and they seem to be twitching." + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" /datum/status_effect/trickwine/debuff/ash id = "ash_wine_debuff" trickwine_examine_text = "SUBJECTPRONOUN seems to be covered in a thin layer of ash. They seem to be twitching and jittery." + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" /datum/status_effect/trickwine/debuff/ash/tick() switch(pick("jitter", "dizzy", "drug")) @@ -176,14 +186,25 @@ /datum/status_effect/trickwine/buff/ice id = "ice_wine_buff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" trait = TRAIT_NOFIRE /datum/status_effect/trickwine/debuff/ice id = "ice_wine_debuff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" var/icon/cube /datum/status_effect/trickwine/debuff/ice/on_apply() - walk(owner, 0) //stops them mid pathing even if they're stunimmunee RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(owner_moved)) owner.Paralyze(duration) to_chat(owner, span_userdanger("You become frozen in a cube!")) @@ -241,6 +262,12 @@ /datum/status_effect/trickwine/debuff/shock id = "shock_wine_debuff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" /datum/status_effect/trickwine/debuff/shock/tick() if(rand(25)) @@ -253,7 +280,7 @@ boozepwr = 70 taste_description = "apple cut apart by tangy pricks" glass_name = "Hearthflame" - glass_desc = "Fiery brew utilized by members of the Saint-Roumain Militia, engineered to heat the body and cauterize wounds. Goes out in a blaze of glory when thrown." + glass_desc = "A fiery brew utilized by members of the Saint-Roumain Militia, engineered to heat the body and cauterize wounds. Goes out in a blaze of glory when thrown." breakaway_flask_icon_state = "baflaskhearthwine" buff_effect = /datum/status_effect/trickwine/buff/hearth debuff_effect = /datum/status_effect/trickwine/debuff/hearth @@ -268,10 +295,22 @@ /datum/status_effect/trickwine/buff/hearth id = "hearth_wine_buff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" trait = TRAIT_RESISTCOLD /datum/status_effect/trickwine/debuff/hearth id = "hearth_wine_debuff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" /datum/status_effect/trickwine/debuff/hearth/tick() //owner.fire_act() @@ -293,15 +332,23 @@ /datum/status_effect/trickwine/buff/force id = "force_wine_buff" + trickwine_examine_text = "" message_apply_others = "glows a dim grey aura." message_apply_self = "You feel faster than lightning!" message_remove_others = "'s aura fades away." message_remove_self = "You feel sluggish." + alert_desc = "" // No shrapnel seems useful trait = TRAIT_PIERCEIMMUNE /datum/status_effect/trickwine/debuff/force id = "force_wine_debuff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" /datum/status_effect/trickwine/debuff/force/on_apply() var/turf/turf = get_turf(owner) @@ -327,6 +374,12 @@ #define MAX_REFLECTS 3 /datum/status_effect/trickwine/buff/prism id = "prism_wine_buff" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" var/reflect_count = 0 var/recent_movement = FALSE @@ -367,8 +420,12 @@ /datum/status_effect/trickwine/debuff/prism id = "prism_wine_debuff" - message_apply_others = "seems weakend!" - message_remove_others = "has returned to normal!" + trickwine_examine_text = "" + message_apply_others = "" + message_apply_self = "" + message_remove_others = "" + message_remove_self = " + alert_desc = "" /datum/status_effect/trickwine/debuff/prism/on_apply() if(ishuman(owner)) From 3e37a1ec749c35a0c51e5ad6a05c2266c52a6e91 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Sun, 29 Dec 2024 20:41:03 -0600 Subject: [PATCH 19/20] unterminated text expecting " --- .../chemistry/reagents/trickwine_reagents.dm | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 565faf023a51..ea70c8dc9558 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -144,7 +144,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" /datum/status_effect/trickwine/debuff/ash @@ -153,7 +153,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" /datum/status_effect/trickwine/debuff/ash/tick() @@ -190,7 +190,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" trait = TRAIT_NOFIRE @@ -200,7 +200,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" var/icon/cube @@ -266,7 +266,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" /datum/status_effect/trickwine/debuff/shock/tick() @@ -299,7 +299,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" trait = TRAIT_RESISTCOLD @@ -309,7 +309,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" /datum/status_effect/trickwine/debuff/hearth/tick() @@ -347,7 +347,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" /datum/status_effect/trickwine/debuff/force/on_apply() @@ -378,7 +378,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" var/reflect_count = 0 var/recent_movement = FALSE @@ -424,7 +424,7 @@ message_apply_others = "" message_apply_self = "" message_remove_others = "" - message_remove_self = " + message_remove_self = "" alert_desc = "" /datum/status_effect/trickwine/debuff/prism/on_apply() From d67b31d6285415fdae8c461cdb5d671eebd61b86 Mon Sep 17 00:00:00 2001 From: FalloutFalcon Date: Mon, 6 Jan 2025 07:22:06 -0600 Subject: [PATCH 20/20] move defines to.. defines --- code/__DEFINES/mobs.dm | 7 +++++++ .../chemistry/reagents/alcohol_reagents/ethanol.dm | 9 --------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index bffd861b10d3..7230e7cfab9b 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -356,6 +356,13 @@ #define ELZUOSE_CHARGE_FACTOR (0.05 * ELZUOSE_CHARGE_SCALING_MULTIPLIER) //factor at which ethereal's charge decreases #define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default. #define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism +///Greater numbers mean that less alcohol has greater intoxication potential +#define ALCOHOL_THRESHOLD_MODIFIER 1 +///The rate at which alcohol affects you +#define ALCOHOL_RATE 0.005 +///The exponent applied to boozepwr to make higher volume alcohol at least a little bit damaging to the liver +#define ALCOHOL_EXPONENT 1.6 +#define ETHANOL_METABOLISM 0.5 * REAGENTS_METABOLISM // Eye protection #define FLASH_PROTECTION_SENSITIVE -1 diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm index aae1799c5de0..e30948925de6 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents/ethanol.dm @@ -2,15 +2,6 @@ // ALCOHOLS // ////////////// - -///Greater numbers mean that less alcohol has greater intoxication potential -#define ALCOHOL_THRESHOLD_MODIFIER 1 -///The rate at which alcohol affects you -#define ALCOHOL_RATE 0.005 -///The exponent applied to boozepwr to make higher volume alcohol at least a little bit damaging to the liver -#define ALCOHOL_EXPONENT 1.6 -#define ETHANOL_METABOLISM 0.5 * REAGENTS_METABOLISM - /datum/reagent/consumable/ethanol name = "Ethanol" description = "A well-known alcohol with a variety of applications."