Adds Red-Eye & a gateway to traitor chemistry (#19441)

* start

* see you space cowboy

* a

* red eye

* woopsie

* bad

* can_synth = false so no you cant duplicate redspace

* misplaced

* examine but its prolly a little messy

* s
This commit is contained in:
azzzertyy
2023-07-04 19:33:38 +01:00
committed by GitHub
parent 89830f21a5
commit 615b83f0fc
12 changed files with 198 additions and 2 deletions

View File

@@ -246,6 +246,11 @@
#define set_confusion(duration) set_timed_status_effect(duration, /datum/status_effect/confusion)
#define set_confusion_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/confusion, TRUE)
#define adjust_red_eye(duration) adjust_timed_status_effect(duration, /datum/status_effect/red_eye)
#define adjust_red_eye_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/red_eye, up_to)
#define set_red_eye(duration) set_timed_status_effect(duration, /datum/status_effect/red_eye)
#define set_red_eye_if_lower(duration) set_timed_status_effect(duration, /datum/status_effect/red_eye, TRUE)
#define adjust_drugginess(duration) adjust_timed_status_effect(duration, /datum/status_effect/drugginess)
#define adjust_drugginess_up_to(duration, up_to) adjust_timed_status_effect(duration, /datum/status_effect/drugginess, up_to)
#define set_drugginess(duration) set_timed_status_effect(duration, /datum/status_effect/drugginess)

View File

@@ -211,6 +211,11 @@
blend_mode = BLEND_ADD
show_when_dead = TRUE
/atom/movable/screen/fullscreen/red_eye
icon_state = "red_eye"
plane = FULLSCREEN_PLANE
layer = CURSE_LAYER
//Triggered by übercharge activation
/atom/movable/screen/fullscreen/uber
icon_state = "uberoverlay"

View File

@@ -2,6 +2,10 @@
mood_change = 6
description = "<span class='nicegreen'>Woooow duudeeeeee...I'm tripping baaalls...</span>\n"
/datum/mood_event/red_eye
mood_change = 10
description = "<span class='nicegreen'>Keep those eyes open...</span>\n"
/datum/mood_event/smoked
description = "<span class='nicegreen'>I have had a smoke recently.</span>\n"
mood_change = 2

View File

@@ -0,0 +1,35 @@
/// Red eye effect, makes your screen a swirling red
/datum/status_effect/red_eye
id = "red_eye"
alert_type = /atom/movable/screen/alert/status_effect/red_eye
remove_on_fullheal = TRUE
examine_text = "Their eyes are bright red and bulging out their skull!"
/datum/status_effect/red_eye/on_creation(mob/living/new_owner, duration = 10 SECONDS)
src.duration = duration
return ..()
/datum/status_effect/red_eye/on_apply()
RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(remove_red_eye))
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, id, /datum/mood_event/high)
owner.overlay_fullscreen(id, /atom/movable/screen/fullscreen/red_eye)
return TRUE
/datum/status_effect/red_eye/on_remove()
UnregisterSignal(owner, COMSIG_LIVING_DEATH)
SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, id)
owner.clear_fullscreen(id)
/// Removes all of our red_eye (self delete) on signal
/datum/status_effect/red_eye/proc/remove_red_eye(datum/source, admin_revive)
SIGNAL_HANDLER
qdel(src)
/atom/movable/screen/alert/status_effect/red_eye
name = "Red-Eye"
desc = "DRAKHARFR PLEGH-WE GALBARTOK USINAR"
icon = 'yogstation/icons/mob/screen_alert.dmi'
icon_state = "red_eye"

View File

@@ -7,6 +7,7 @@
w_class = WEIGHT_CLASS_TINY
max_amount = 50
item_flags = NOBLUDGEON
grind_results = list(/datum/reagent/redspace = 20)
/obj/item/stack/telecrystal/attack_self(mob/user)
if(!isliving(user))
@@ -23,7 +24,7 @@
new /obj/effect/particle_effect/sparks(loc)
playsound(loc, "sparks", 50, 1)
if(!do_teleport(L, destination, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
if(!do_teleport(L, destination, asoundin = 'sound/effects/phaseinred.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
L.visible_message(span_warning("[src] refuses to be crushed by [L]! There must be something interfering!"), span_danger("[src] suddenly hardens in your hand! There must be something interfering!"))
return

View File

@@ -537,6 +537,120 @@
M.adjust_dizzy(4)
..()
//traitor only drug made with telecrystals
/datum/reagent/drug/red_eye
name = "Red-Eye" //i love cowboy bebop
description = "An experimental drug developed by the Syndicate in attempt to recreate wizards"
reagent_state = GAS
color = "#fd1a5e"
addiction_threshold = 20
overdose_threshold = 40
metabolization_rate = 1.5 * REAGENTS_METABOLISM
can_synth = FALSE
//Teleport like normal telecrystals
/datum/reagent/drug/red_eye/proc/tele_teleport(mob/living/L)
var/turf/destination = get_teleport_loc(L.loc, L, rand(3,6))
if(!istype(destination))
return
new /obj/effect/particle_effect/sparks(L.loc)
playsound(L.loc, "sparks", 50, 1)
if(!do_teleport(L, destination, asoundin = 'sound/effects/phaseinred.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
return
L.throw_at(get_edge_target_turf(L, L.dir), 1, 3, spin = FALSE, diagonals_first = TRUE)
if(iscarbon(L))
var/mob/living/carbon/C = L
C.adjust_disgust(15)
/datum/reagent/drug/red_eye/on_mob_metabolize(mob/living/L)
L.next_move_modifier *= 0.8
L.action_speed_modifier *= 0.5
tele_teleport(L)
..()
/datum/reagent/drug/red_eye/on_mob_end_metabolize(mob/living/L)
L.next_move_modifier *= 1.25
L.action_speed_modifier *= 2
..()
/datum/reagent/drug/red_eye/on_mob_life(mob/living/carbon/M)
var/mob/living/carbon/human/H = M
H.eye_color = "fd1a5e"
H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
H.update_body()
M.adjust_red_eye_up_to(15,40)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(0,1))
M.AdjustKnockdown(-15, FALSE)
M.adjustStaminaLoss(-4, 0)
M.AdjustUnconscious(-5, FALSE)
M.AdjustParalyzed(-20, FALSE)
M.adjust_jitter(2 SECONDS)
if(prob(10))
to_chat(M, span_notice("[pick("TOK-LYR RQA-NAP", "BAPR NTNVA", "ZL-YVTUG FUVARF", "MAH'WEYH PLEGGH AT E'NTRATH", "TARCOL MINTI ZHERI.", "G'OLT-ULOFT")]"))
if(prob(5))
M.visible_message(span_danger("[M]'s eyes start bulging out of [M.p_their()] skull!"))
if(prob(5))
M.emote(pick("twitch","drool","moan","giggle"))
if(prob(1))
tele_teleport(M)
..()
/datum/reagent/drug/red_eye/overdose_process(mob/living/M)
M.adjustToxLoss(2, 0)
if(isturf(M.loc) && !isspaceturf(M.loc) && prob(10))
if(M.mobility_flags & MOBILITY_MOVE)
step(M, pick(GLOB.cardinals))
if(prob(8))
M.visible_message(span_danger("[M]'s fingers curl into occult shapes!"))
M.drop_all_held_items()
if(prob(4))
M.adjustToxLoss(1, 0)
tele_teleport(M)
if(prob(1))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4))
M.adjustToxLoss(4, 0)
tele_teleport(M)
tele_teleport(M)
..()
/datum/reagent/drug/red_eye/addiction_act_stage1(mob/living/M)
M.adjust_jitter(5 SECONDS)
if(prob(20))
M.emote(pick("twitch","drool","moan","giggle"))
..()
/datum/reagent/drug/red_eye/addiction_act_stage2(mob/living/M)
M.adjust_jitter(10 SECONDS)
M.adjust_dizzy(10)
if(prob(30))
M.emote(pick("twitch","drool","moan","giggle"))
..()
/datum/reagent/drug/red_eye/addiction_act_stage3(mob/living/M)
if((M.mobility_flags & MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 4, i++)
step(M, pick(GLOB.cardinals))
M.adjust_jitter(12 SECONDS)
M.adjust_dizzy(12)
if(prob(40))
M.emote(pick("twitch","drool","moan","giggle"))
..()
/datum/reagent/drug/red_eye/addiction_act_stage4(mob/living/carbon/human/M)
if((M.mobility_flags & MOBILITY_MOVE) && !ismovable(M.loc))
for(var/i = 0, i < 8, i++)
step(M, pick(GLOB.cardinals))
M.adjust_jitter(15 SECONDS)
M.adjust_dizzy(15)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1,4))
M.adjustToxLoss(2, 0)
if(prob(50))
M.emote(pick("twitch","drool","moan","giggle"))
..()
if(prob(10))
M.visible_message(span_danger("[M]'s fingers curl into occult shapes!"))
M.drop_all_held_items()
. = 1
/datum/reagent/drug/pumpup
name = "Pump-Up"
description = "Take on the world! A fast acting, hard hitting drug that pushes the limit on what you can handle."

View File

@@ -1086,7 +1086,32 @@
/mob/living/proc/bluespace_shuffle()
do_teleport(src, get_turf(src), 5, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
//Gateway to traitor chemistry, want a drug to be traitor only? use this
/datum/reagent/redspace
name = "Redspace Dust"
description = "A sinister looking dust composed of grinded Syndicate telecrystals, the red colouration a result of impurities within their manufacturing process."
reagent_state = SOLID
color = "#db0735"
taste_description = "bitter evil"
process_flags = ORGANIC | SYNTHETIC
metabolization_rate = 0.2 * REAGENTS_METABOLISM
can_synth = FALSE
//Teleport like normal telecrystals
/datum/reagent/redspace/on_mob_metabolize(mob/living/L)
var/turf/destination = get_teleport_loc(L.loc, L, rand(3,6))
if(!istype(destination))
return
new /obj/effect/particle_effect/sparks(L.loc)
playsound(L.loc, "sparks", 50, 1)
if(!do_teleport(L, destination, asoundin = 'sound/effects/phaseinred.ogg', channel = TELEPORT_CHANNEL_BLUESPACE))
return
L.throw_at(get_edge_target_turf(L, L.dir), 1, 3, spin = FALSE, diagonals_first = TRUE)
if(iscarbon(L))
var/mob/living/carbon/C = L
C.adjust_disgust(15)
/datum/reagent/aluminium
name = "Aluminium"
description = "A silvery white and ductile member of the boron group of chemical elements."

View File

@@ -63,6 +63,12 @@
required_reagents = list(/datum/reagent/nitrous_oxide = 2, /datum/reagent/medicine/epinephrine = 1, /datum/reagent/consumable/ethanol = 1)
required_catalysts = list(/datum/reagent/toxin/plasma = 5)
/datum/chemical_reaction/red_eye
name = "Red-Eye"
id = /datum/reagent/drug/red_eye
results = list(/datum/reagent/drug/red_eye = 4) //1tc = 40u of red_eye
required_reagents = list(/datum/reagent/medicine/diphenhydramine = 1, /datum/reagent/redspace = 2, /datum/reagent/iodine = 1, /datum/reagent/hydrogen = 1, /datum/reagent/consumable/sugar = 1)
/datum/chemical_reaction/pumpup
name = "Pump-Up"
id = /datum/reagent/drug/pumpup

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 MiB

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

View File

@@ -731,6 +731,7 @@
#include "code\datums\status_effects\debuffs\hallucination.dm"
#include "code\datums\status_effects\debuffs\jitteriness.dm"
#include "code\datums\status_effects\debuffs\knuckleroot.dm"
#include "code\datums\status_effects\debuffs\red_eye.dm"
#include "code\datums\status_effects\debuffs\speech_debuffs.dm"
#include "code\datums\traits\_quirk.dm"
#include "code\datums\traits\good.dm"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 99 KiB