mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 13:05:44 +01:00
Reworks aut'akh augments (#9079)
This pr changes all aut'akh augments and adds a couple of new ones, with effects and the like. Requested by sleepy.
This commit is contained in:
@@ -67,192 +67,181 @@
|
||||
|
||||
//internal organs
|
||||
|
||||
/obj/item/organ/internal/kidneys/autakh
|
||||
name = "toxin screen"
|
||||
icon_state = "screen"
|
||||
robotic = 1
|
||||
robotic_name = null
|
||||
robotic_sprite = null
|
||||
|
||||
/obj/item/organ/internal/kidneys/autakh/Initialize()
|
||||
mechassist()
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/anchor
|
||||
name = "soul anchor"
|
||||
icon_state = "anchor"
|
||||
organ_tag = "anchor"
|
||||
parent_organ = BP_HEAD
|
||||
robotic = 2
|
||||
var/suffered_revelation = FALSE
|
||||
|
||||
/obj/item/organ/internal/anchor/Initialize()
|
||||
robotize()
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh
|
||||
name = "bionic eyeballs"
|
||||
icon_state = "mk1eyes"
|
||||
singular_name = "bionic eye"
|
||||
action_button_name = "Toggle Bionic Eyes Sensors"
|
||||
robotic_name = null
|
||||
robotic_sprite = null
|
||||
robotic = 2
|
||||
/obj/item/organ/internal/anchor/process()
|
||||
|
||||
var/static/list/hud_types = list(
|
||||
"Disabled",
|
||||
"Security",
|
||||
"Medical")
|
||||
|
||||
var/selected_hud = "Disabled"
|
||||
var/disabled = FALSE
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/Initialize()
|
||||
robotize()
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/refresh_action_button()
|
||||
. = ..()
|
||||
if(.)
|
||||
action.button_icon_state = "mk1eyes"
|
||||
if(action.button)
|
||||
action.button.UpdateIcon()
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/attack_self(var/mob/user)
|
||||
. = ..()
|
||||
|
||||
if(.)
|
||||
|
||||
if(owner.last_special > world.time)
|
||||
to_chat(owner, "<span class='danger'>\The [src] is still recharging!</span>")
|
||||
return
|
||||
|
||||
if(owner.stat || owner.paralysis || owner.stunned || owner.weakened)
|
||||
to_chat(owner, "<span class='danger'>You can not use your \the [src] in your current state!</span>")
|
||||
return
|
||||
|
||||
if(disabled || is_broken())
|
||||
to_chat(owner, "<span class='danger'>\The [src] shudders and sparks, unable to change its sensors!</span>")
|
||||
return
|
||||
|
||||
owner.last_special = world.time + 100
|
||||
|
||||
var/choice = input("Select the Sensor Type.", "Bionic Eyes Sensors") as null|anything in hud_types
|
||||
|
||||
selected_hud = choice
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/process()
|
||||
..()
|
||||
|
||||
if(!owner)
|
||||
return
|
||||
if(disabled)
|
||||
return
|
||||
|
||||
switch(selected_hud)
|
||||
if(!suffered_revelation)
|
||||
if(prob(0.1))
|
||||
revelation()
|
||||
suffered_revelation = TRUE
|
||||
|
||||
if("Security")
|
||||
req_access = list(access_security)
|
||||
if(allowed(owner))
|
||||
process_sec_hud(owner, 1)
|
||||
|
||||
if("Medical")
|
||||
req_access = list(access_medical)
|
||||
if(allowed(owner))
|
||||
process_med_hud(owner, 1)
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/flash_act()
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='notice'>Your [singular_name]'s retinal overlays are overloaded by the strong light!</span>")
|
||||
owner.eye_blind = 5
|
||||
owner.eye_blurry = 5
|
||||
spark(get_turf(owner), 3)
|
||||
disabled = TRUE
|
||||
selected_hud = "Disabled"
|
||||
addtimer(CALLBACK(src, .proc/rearm), 40 SECONDS)
|
||||
return
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/emp_act(severity)
|
||||
/obj/item/organ/internal/anchor/emp_act(severity)
|
||||
..()
|
||||
disabled = TRUE
|
||||
selected_hud = "Disabled"
|
||||
addtimer(CALLBACK(src, .proc/rearm), 40 SECONDS)
|
||||
|
||||
/obj/item/organ/internal/eyes/autakh/proc/rearm()
|
||||
if(!disabled)
|
||||
return
|
||||
disabled = FALSE
|
||||
revelation()
|
||||
|
||||
/obj/item/organ/internal/anchor/proc/revelation()
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='notice'>\The [singular_name]'s retinal overlays clicks and shifts!</span>")
|
||||
owner.hallucination += 20
|
||||
|
||||
/obj/item/organ/internal/augment/adrenal
|
||||
name = "adrenal management system"
|
||||
/obj/item/organ/internal/augment/calf_override
|
||||
name = "calf overdrive"
|
||||
icon_state = "ams"
|
||||
organ_tag = "adrenal"
|
||||
organ_tag = BP_AUG_CALF_OVERRIDE
|
||||
parent_organ = BP_GROIN
|
||||
|
||||
/obj/item/organ/internal/augment/calf_override/proc/do_run_act()
|
||||
owner.apply_damage(1, BRUTE, BP_GROIN)
|
||||
|
||||
/obj/item/organ/internal/augment/protein_valve
|
||||
name = "protein breakdown valve"
|
||||
icon_state = "screen"
|
||||
organ_tag = "protein valve"
|
||||
parent_organ = BP_CHEST
|
||||
action_button_icon = "ams"
|
||||
action_button_name = "Activate Adrenal Management System"
|
||||
action_button_icon = "screen"
|
||||
action_button_name = "Activate Protein Breakdown Valve"
|
||||
cooldown = 300
|
||||
activable = TRUE
|
||||
|
||||
/obj/item/organ/internal/augment/adrenal/attack_self(var/mob/user)
|
||||
/obj/item/organ/internal/augment/protein_valve/attack_self(var/mob/user)
|
||||
. = ..()
|
||||
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
to_chat(owner, "<span class='notice'>\The [src] activates, releasing a stream of chemicals into your veins!</span>")
|
||||
|
||||
if(owner.reagents)
|
||||
var/obj/item/organ/F = owner.internal_organs_by_name[BP_STOMACH]
|
||||
|
||||
owner.vessel.remove_reagent("blood",rand(15,30))
|
||||
owner.reagents.add_reagent("paracetamol", 5)
|
||||
owner.reagents.add_reagent("norepinephrine", 5)
|
||||
if(isnull(F))
|
||||
return FALSE
|
||||
|
||||
/obj/item/organ/internal/augment/adrenal/do_broken_act()
|
||||
if(owner.reagents)
|
||||
owner.reagents.add_reagent("toxin", 25)
|
||||
return TRUE
|
||||
if(F.is_broken())
|
||||
return FALSE
|
||||
|
||||
/obj/item/organ/internal/augment/adrenal/do_bruised_act()
|
||||
if(owner.reagents)
|
||||
owner.reagents.add_reagent("toxin", 10)
|
||||
return FALSE
|
||||
F.take_damage(10)
|
||||
|
||||
to_chat(owner, "<span class='notice'>\The [src] activates, releasing a stream of chemicals into your veins!</span>")
|
||||
|
||||
/obj/item/organ/internal/augment/haemodynamic
|
||||
name = "haemodynamic control system"
|
||||
owner.reagents.add_reagent("adrenaline", 15)
|
||||
|
||||
/obj/item/organ/internal/augment/venomous_rest
|
||||
name = "venomous rest implant"
|
||||
icon_state = "stabilizer"
|
||||
organ_tag = "haemodynamic"
|
||||
organ_tag = "venomous rest"
|
||||
parent_organ = BP_CHEST
|
||||
action_button_name = "Activate Haemodynamic Control System"
|
||||
action_button_name = "Activate Venomous Rest Implant"
|
||||
action_button_icon = "stabilizer"
|
||||
cooldown = 300
|
||||
activable = TRUE
|
||||
|
||||
/obj/item/organ/internal/augment/haemodynamic/attack_self(var/mob/user)
|
||||
/obj/item/organ/internal/augment/venomous_rest/attack_self(var/mob/user)
|
||||
. = ..()
|
||||
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
owner.adjustNutritionLoss(300)
|
||||
owner.adjustHydrationLoss(300)
|
||||
|
||||
to_chat(owner, "<span class='notice'>\The [src] activates, releasing a stream of chemicals into your veins!</span>")
|
||||
|
||||
if(owner.reagents)
|
||||
owner.reagents.add_reagent("coagulant", 15)
|
||||
owner.reagents.add_reagent("norepinephrine", 10)
|
||||
owner.reagents.add_reagent("tricordrazine", 10)
|
||||
owner.reagents.add_reagent("stoxin", 15)
|
||||
take_damage(15)
|
||||
to_chat(owner, "<span class='notice'>\The [src] activates, releasing a stream of chemicals into your veins!</span>")
|
||||
|
||||
/obj/item/organ/internal/augment/haemodynamic/do_broken_act()
|
||||
if(owner.reagents)
|
||||
owner.vessel.remove_reagent("blood",rand(50,75))
|
||||
return TRUE
|
||||
/obj/item/organ/internal/augment/farseer_eye
|
||||
name = "farseer eye"
|
||||
icon_state = "hunterseye"
|
||||
organ_tag = "farseer eye"
|
||||
parent_organ = BP_HEAD
|
||||
action_button_name = "Activate Farseer Eye"
|
||||
action_button_icon = "hunterseye"
|
||||
cooldown = 30
|
||||
activable = TRUE
|
||||
|
||||
/obj/item/organ/internal/augment/haemodynamic/do_bruised_act()
|
||||
if(owner.reagents)
|
||||
owner.vessel.remove_reagent("blood",rand(25,50))
|
||||
return FALSE
|
||||
/obj/item/organ/internal/augment/farseer_eye/attack_self(var/mob/user)
|
||||
. = ..()
|
||||
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
owner.visible_message("<b>[user]'s</b> eyes whirrs loudly as they focus ahead.")
|
||||
take_damage(1)
|
||||
zoom(owner,7,3, FALSE)
|
||||
|
||||
/obj/item/organ/internal/augment/eye_flashlight
|
||||
name = "eye flashlight"
|
||||
icon_state = "mk1eyes"
|
||||
organ_tag = "eye flashlight"
|
||||
parent_organ = BP_HEAD
|
||||
action_button_name = "Activate Eye Flashlight"
|
||||
action_button_icon = "mk1eyes"
|
||||
cooldown = 50
|
||||
activable = TRUE
|
||||
var/online = FALSE
|
||||
var/warning_level = 0
|
||||
|
||||
/obj/item/organ/internal/augment/eye_flashlight/attack_self(var/mob/user)
|
||||
. = ..()
|
||||
|
||||
if(!.)
|
||||
return FALSE
|
||||
|
||||
if(!online)
|
||||
set_light(3, 2, LIGHT_COLOR_RED, uv = 0, angle = LIGHT_WIDE)
|
||||
owner.change_eye_color(250, 130, 130)
|
||||
owner.update_eyes()
|
||||
online = TRUE
|
||||
addtimer(CALLBACK(src, .proc/add_warning), 5 MINUTES)
|
||||
addtimer(CALLBACK(src, .proc/add_warning), 6 MINUTES)
|
||||
else
|
||||
turn_off()
|
||||
|
||||
/obj/item/organ/internal/augment/eye_flashlight/proc/turn_off()
|
||||
online = FALSE
|
||||
set_light(0)
|
||||
if(owner.client)
|
||||
owner.change_eye_color(owner.client.prefs.r_eyes, owner.client.prefs.g_eyes, owner.client.prefs.b_eyes)
|
||||
owner.update_eyes()
|
||||
warning_level = 0
|
||||
|
||||
/obj/item/organ/internal/augment/eye_flashlight/emp_act(severity)
|
||||
..()
|
||||
turn_off()
|
||||
|
||||
/obj/item/organ/internal/augment/eye_flashlight/proc/add_warning()
|
||||
if(online)
|
||||
|
||||
warning_level = min(warning_level+1,2)
|
||||
|
||||
if(warning_level >= 1)
|
||||
to_chat(owner, SPAN_DANGER ("Your eyes are feeling warm!"))
|
||||
|
||||
/obj/item/organ/internal/augment/eye_flashlight/process()
|
||||
|
||||
..()
|
||||
|
||||
if(!owner)
|
||||
return
|
||||
|
||||
if(warning_level >= 2)
|
||||
var/obj/item/organ/internal/eyes/E = owner.get_eyes()
|
||||
if(!E)
|
||||
return
|
||||
E.take_damage(1)
|
||||
|
||||
//limb implants
|
||||
|
||||
|
||||
Reference in New Issue
Block a user