Skip to content

Commit

Permalink
add: New drugs and implant for IPC (ss220-space#3743)
Browse files Browse the repository at this point in the history
  • Loading branch information
Mindfri authored and Etrnlmelancholy committed Jan 3, 2024
1 parent 291433f commit 6fa255a
Show file tree
Hide file tree
Showing 5 changed files with 142 additions and 0 deletions.
8 changes: 8 additions & 0 deletions code/datums/uplink_item.dm
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 3
race = list("Machine")

/datum/uplink_item/racial/supercharge
name = "Supercharge Implant"
desc = "An implant injected into the body, and later activated manually to inject a chemical cocktail, which has the effect of removing and reducing the time of all stuns and increasing movement speed. Can be activated up to 3 times."
reference = "SSI"
item = /obj/item/implanter/supercharge
cost = 8
race = list("Machine")

// DANGEROUS WEAPONS

/datum/uplink_item/dangerous
Expand Down
24 changes: 24 additions & 0 deletions code/game/objects/items/weapons/implants/implant_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,30 @@
qdel(src)


/obj/item/implant/supercharge
name = "supercharge bio-chip"
desc = "Removes all stuns and knockdowns."
icon_state = "adrenal"
origin_tech = "materials=3;combat=5;syndicate=2"
uses = 3

/obj/item/implant/supercharge/activate()
uses--
to_chat(imp_in, "<span class='notice'>You feel an electric sensation as your components enter overdrive!</span>")
imp_in.SetStunned(0)
imp_in.SetWeakened(0)
imp_in.SetParalysis(0)
imp_in.adjustStaminaLoss(-100)
imp_in.lying = 0
imp_in.update_canmove()

imp_in.reagents.add_reagent("surge_plus", 10)
imp_in.reagents.add_reagent("liquid_solder", 10)
imp_in.reagents.add_reagent("combatlube", 10)
if(!uses)
qdel(src)


/obj/item/implant/emp
name = "emp implant"
desc = "Triggers an EMP."
Expand Down
8 changes: 8 additions & 0 deletions code/game/objects/items/weapons/implants/implantcase.dm
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,14 @@
imp = new /obj/item/implant/adrenalin(src)
..()

/obj/item/implantcase/supercharge
name = "implant case - 'Supercharge'"
desc = "A glass case containing a supercharge implant."

/obj/item/implantcase/supercharge/New()
imp = new /obj/item/implant/supercharge(src)
..()

/obj/item/implantcase/death_alarm
name = "Glass Case- 'Death Alarm'"
desc = "A case containing a death alarm implant."
Expand Down
8 changes: 8 additions & 0 deletions code/game/objects/items/weapons/implants/implanter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,14 @@
..()


/obj/item/implanter/supercharge
name = "implanter (supercharge)"

/obj/item/implanter/supercharge/New()
imp = new /obj/item/implant/supercharge(src)
..()


/obj/item/implanter/emp
name = "implanter (EMP)"

Expand Down
94 changes: 94 additions & 0 deletions code/modules/reagents/chemistry/reagents/drugs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -972,3 +972,97 @@
update_flags |= M.adjustFireLoss(rand(1,5) / 2, FALSE)
update_flags |= M.adjustBruteLoss(rand(1,5) / 2, FALSE)
return list(0, update_flags)

//surge+, used in supercharge implants
/datum/reagent/surge_plus
name = "Surge Plus"
id = "surge_plus"
description = "A superconducting gel that overloads processors, causing an effect reportedly similar to benzodiazepines in synthetic units."
reagent_state = LIQUID
color = "#28b581"

process_flags = SYNTHETIC
overdose_threshold = 30
addiction_chance = 1
addiction_chance_additional = 20
addiction_threshold = 5
taste_description = "silicon"

/datum/reagent/surge_plus/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
M.AdjustParalysis(-8 SECONDS)
M.AdjustStunned(-8 SECONDS)
M.AdjustWeakened(-8 SECONDS)
update_flags |= M.adjustStaminaLoss(-25, FALSE)
if(prob(5))
var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
if(prob(10))
high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!"
to_chat(M, "<span class='notice'>[high_message]</span>")

return ..() | update_flags

/datum/reagent/surge_plus/overdose_process(mob/living/M, severity)
var/update_flags = STATUS_UPDATE_NONE
var/recent_consumption = holder.addiction_threshold_accumulated[type]
M.Jitter(40 SECONDS)
M.Stuttering(10 SECONDS)
if(prob(5))
to_chat(M, "<span class='notice'>Your circuits overheat!</span>") // synth fever
M.bodytemperature += 30 * recent_consumption
M.Confused(2 SECONDS * recent_consumption)
if(prob(10))
to_chat(M, "<span class='danger'>You experience a violent electrical discharge!</span>")
playsound(get_turf(M), 'sound/effects/eleczap.ogg', 75, TRUE)
var/icon/I = new('icons/obj/zap.dmi', "lightningend")
I.Turn(-135)
var/obj/effect/overlay/beam/B = new(get_turf(M))
B.pixel_x = rand(-20, 0)
B.pixel_y = rand(-20, 0)
B.icon = I
update_flags |= M.adjustFireLoss(rand(1, 5))
update_flags |= M.adjustBruteLoss(rand(1, 5))
return list(0, update_flags)

//Servo Lube, supercharge
/datum/reagent/lube/combat
name = "Combat-Lube"
id = "combatlube"
description = "Combat-Lube is a refined and enhanced lubricant which induces effect stronger than Methamphetamine in synthetic users by drastically reducing internal friction and increasing cooling capabilities."
process_flags = SYNTHETIC
overdose_threshold = 30
addiction_chance = 1
addiction_chance_additional = 20

/datum/reagent/lube/combat/on_mob_add(mob/living/L)
ADD_TRAIT(L, TRAIT_GOTTAGOFAST, id)

/datum/reagent/lube/combat/on_mob_life(mob/living/M)
M.SetSleeping(0)
M.SetDrowsy(0)

var/high_message = pick("You feel your servos whir!", "You feel like you need to go faster.", "You feel like you were just overclocked!")
if(prob(10))
high_message = "0100011101001111010101000101010001000001010001110100111101000110010000010101001101010100!"
if(prob(5))
to_chat(M, "<span class='notice'>[high_message]</span>")
return ..()

/datum/reagent/lube/combat/on_mob_delete(mob/living/M)
REMOVE_TRAIT(M, TRAIT_GOTTAGOFAST, id)
..()

/datum/reagent/lube/combat/overdose_process(mob/living/M, severity)
var/list/overdose_info = ..()
var/effect = overdose_info[REAGENT_OVERDOSE_EFFECT]
var/update_flags = overdose_info[REAGENT_OVERDOSE_FLAGS]
if(prob(20))
M.emote("ping")
if(prob(33))
M.visible_message("<span class='danger'>[M]'s hands flip out and flail everywhere!</span>")
var/obj/item/I = M.get_active_hand()
if(I)
M.drop_from_active_hand()
update_flags |= M.adjustFireLoss(5, FALSE)
update_flags |= M.adjustBrainLoss(3, FALSE)
return list(effect, update_flags)

0 comments on commit 6fa255a

Please sign in to comment.