mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 16:10:02 +01:00
Adds bluespace borg (#6507)
This commit is contained in:
@@ -76,3 +76,62 @@
|
||||
else
|
||||
icon_state = module_sprites[icontype]
|
||||
|
||||
/mob/living/silicon/robot/bluespace
|
||||
modtype = "Bluespace"
|
||||
spawn_module = /obj/item/weapon/robot_module/bluespace
|
||||
cell_type = /obj/item/weapon/cell/infinite
|
||||
overclocked = 1
|
||||
lawupdate = 0
|
||||
scrambledcodes = 1
|
||||
status_flags = GODMODE
|
||||
|
||||
/mob/living/silicon/robot/bluespace/verb/bstwalk()
|
||||
set name = "Ruin Everything"
|
||||
set desc = "Uses bluespace technology to phase through solid matter and move quickly."
|
||||
set category = "BST"
|
||||
set popup_menu = 0
|
||||
|
||||
if(!src.incorporeal_move)
|
||||
src.incorporeal_move = 2
|
||||
to_chat(src, span("notice", "You will now phase through solid matter."))
|
||||
else
|
||||
src.incorporeal_move = 0
|
||||
to_chat(src, span("notice", "You will no-longer phase through solid matter."))
|
||||
return
|
||||
|
||||
/mob/living/silicon/robot/bluespace/verb/bstrecover()
|
||||
set name = "Rejuv"
|
||||
set desc = "Use the bluespace within you to restore your health"
|
||||
set category = "BST"
|
||||
set popup_menu = 0
|
||||
|
||||
src.revive()
|
||||
|
||||
/mob/living/silicon/robot/bluespace/verb/bstquit()
|
||||
set name = "Teleport out"
|
||||
set desc = "Activate bluespace to leave and return to your original mob (if you have one)."
|
||||
set category = "BST"
|
||||
|
||||
src.custom_emote(1,"politely beeps with all ligth starting to flash.")
|
||||
spark(src, 5, alldirs)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/qdel, src), 10, TIMER_CLIENT_TIME)
|
||||
animate(src, alpha = 0, time = 9, easing = QUAD_EASING)
|
||||
|
||||
if(key)
|
||||
if(client.holder && client.holder.original_mob)
|
||||
client.holder.original_mob.key = key
|
||||
else
|
||||
var/mob/abstract/observer/ghost = new(src) //Transfer safety to observer spawning proc.
|
||||
ghost.key = key
|
||||
ghost.mind.name = "[ghost.key] BSTech"
|
||||
ghost.name = "[ghost.key] BSTech"
|
||||
ghost.real_name = "[ghost.key] BSTech"
|
||||
ghost.voice_name = "[ghost.key] BSTech"
|
||||
|
||||
/mob/living/silicon/robot/bluespace/verb/tgm()
|
||||
set name = "Toggle Godmode"
|
||||
set desc = "Enable or disable god mode. For testing things that require you to be vulnerable."
|
||||
set category = "BST"
|
||||
|
||||
status_flags ^= GODMODE
|
||||
to_chat(src, span("notice", "God mode is now [status_flags & GODMODE ? "enabled" : "disabled"]"))
|
||||
@@ -1038,4 +1038,176 @@ var/global/list/robot_modules = list(
|
||||
src.modules += new /obj/item/weapon/weldingtool/robotic(src)
|
||||
supported_upgrades = list(/obj/item/robot_parts/robot_component/jetpack)
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/weapon/robot_module/bluespace
|
||||
name = "bluespace robot module"
|
||||
languages = list(
|
||||
LANGUAGE_TCB = 1,
|
||||
LANGUAGE_GUTTER = 1,
|
||||
LANGUAGE_SIGN = 1,
|
||||
LANGUAGE_TRADEBAND = 1,
|
||||
LANGUAGE_UNATHI = 1,
|
||||
LANGUAGE_AZAZIBA = 1,
|
||||
LANGUAGE_SIIK_MAAS = 1,
|
||||
LANGUAGE_SIIK_TAJR = 1,
|
||||
LANGUAGE_SIGN_TAJARA = 1,
|
||||
LANGUAGE_SKRELLIAN = 1,
|
||||
LANGUAGE_SOL_COMMON = 1,
|
||||
LANGUAGE_ROOTSONG = 1,
|
||||
LANGUAGE_VAURCA = 1,
|
||||
LANGUAGE_RESOMI = 1,
|
||||
LANGUAGE_ROBOT = 1,
|
||||
LANGUAGE_DRONE = 1,
|
||||
LANGUAGE_EAL = 1,
|
||||
LANGUAGE_VOX = 1,
|
||||
LANGUAGE_XENOMORPH = 1,
|
||||
LANGUAGE_HIVEMIND = 1,
|
||||
LANGUAGE_CHANGELING = 1,
|
||||
LANGUAGE_BORER = 1
|
||||
)
|
||||
channels = list(
|
||||
"Service" = 1,
|
||||
"Supply" = 1,
|
||||
"Science" = 1,
|
||||
"Security" = 1,
|
||||
"Engineering" = 1,
|
||||
"Medical" = 1,
|
||||
"Command" = 1,
|
||||
"Response Team" = 1,
|
||||
"AI Private" = 1
|
||||
)
|
||||
subsystems = list(
|
||||
/mob/living/silicon/proc/subsystem_crew_monitor,
|
||||
/mob/living/silicon/proc/subsystem_power_monitor
|
||||
)
|
||||
sprites = list("Roller" = "droid-combat") //TMP
|
||||
can_be_pushed = 0
|
||||
|
||||
|
||||
/obj/item/weapon/robot_module/bluespace/New(var/mob/living/silicon/robot/R)
|
||||
..()
|
||||
loc = R
|
||||
src.modules += new /obj/item/device/flash(src)
|
||||
src.modules += new /obj/item/borg/sight/meson(src)
|
||||
src.modules += new /obj/item/borg/sight/hud/med(src)
|
||||
src.modules += new /obj/item/borg/sight/hud/sec(src)
|
||||
src.modules += new /obj/item/weapon/rcd/borg/infinite(src)
|
||||
src.modules += new /obj/item/weapon/extinguisher(src)
|
||||
src.modules += new /obj/item/weapon/weldingtool/largetank(src)
|
||||
src.modules += new /obj/item/weapon/screwdriver(src)
|
||||
src.modules += new /obj/item/weapon/wrench(src)
|
||||
src.modules += new /obj/item/weapon/crowbar(src)
|
||||
src.modules += new /obj/item/weapon/wirecutters(src)
|
||||
src.modules += new /obj/item/device/multitool(src)
|
||||
src.modules += new /obj/item/device/t_scanner(src)
|
||||
src.modules += new /obj/item/device/analyzer(src)
|
||||
src.modules += new /obj/item/weapon/gripper(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/loader(src)
|
||||
src.modules += new /obj/item/device/lightreplacer(src)
|
||||
src.modules += new /obj/item/weapon/inflatable_dispenser(src)
|
||||
// Medical
|
||||
src.modules += new /obj/item/device/healthanalyzer(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/borghypo/medical(src)
|
||||
src.modules += new /obj/item/weapon/scalpel(src)
|
||||
src.modules += new /obj/item/weapon/hemostat(src)
|
||||
src.modules += new /obj/item/weapon/retractor(src)
|
||||
src.modules += new /obj/item/weapon/cautery(src)
|
||||
src.modules += new /obj/item/weapon/bonegel(src)
|
||||
src.modules += new /obj/item/weapon/FixOVein(src)
|
||||
src.modules += new /obj/item/weapon/bonesetter(src)
|
||||
src.modules += new /obj/item/weapon/circular_saw(src)
|
||||
src.modules += new /obj/item/weapon/surgicaldrill(src)
|
||||
src.modules += new /obj/item/weapon/gripper/chemistry(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/dropper/industrial(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/borghypo/rescue(src)
|
||||
src.modules += new /obj/item/roller_holder(src)
|
||||
// Security
|
||||
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/melee/baton/robot(src)
|
||||
src.modules += new /obj/item/weapon/gun/energy/taser/mounted/cyborg/overclocked(src)
|
||||
src.modules += new /obj/item/weapon/gun/energy/laser/mounted/cyborg/overclocked(src)
|
||||
src.modules += new /obj/item/weapon/melee/hammer/powered(src)
|
||||
src.modules += new /obj/item/weapon/gun/energy/lasercannon/mounted/cyborg/overclocked(src)
|
||||
src.modules += new /obj/item/borg/combat/shield(src)
|
||||
src.modules += new /obj/item/borg/combat/mobility(src)
|
||||
// BST
|
||||
src.modules += new/obj/item/weapon/card/id/bst(src)
|
||||
|
||||
var/datum/matter_synth/metal = new /datum/matter_synth/metal(60000)
|
||||
var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000)
|
||||
var/datum/matter_synth/plasteel = new /datum/matter_synth/plasteel(20000)
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire(45)
|
||||
var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(10000)
|
||||
synths += metal
|
||||
synths += glass
|
||||
synths += plasteel
|
||||
synths += wire
|
||||
synths += medicine
|
||||
|
||||
var/obj/item/weapon/matter_decompiler/MD = new /obj/item/weapon/matter_decompiler(src)
|
||||
MD.metal = metal
|
||||
MD.glass = glass
|
||||
src.modules += MD
|
||||
|
||||
var/obj/item/stack/material/cyborg/steel/M = new (src)
|
||||
M.synths = list(metal)
|
||||
src.modules += M
|
||||
|
||||
var/obj/item/stack/material/cyborg/glass/G = new (src)
|
||||
G.synths = list(glass)
|
||||
src.modules += G
|
||||
|
||||
var/obj/item/stack/rods/cyborg/RO = new /obj/item/stack/rods/cyborg(src)
|
||||
RO.synths = list(metal)
|
||||
src.modules += RO
|
||||
|
||||
var/obj/item/stack/cable_coil/cyborg/C = new /obj/item/stack/cable_coil/cyborg(src)
|
||||
C.synths = list(wire)
|
||||
src.modules += C
|
||||
|
||||
var/obj/item/stack/tile/floor/cyborg/S = new /obj/item/stack/tile/floor/cyborg(src)
|
||||
S.synths = list(metal)
|
||||
src.modules += S
|
||||
|
||||
var/obj/item/stack/material/cyborg/glass/reinforced/RG = new (src)
|
||||
RG.synths = list(metal, glass)
|
||||
src.modules += RG
|
||||
|
||||
var/obj/item/stack/material/cyborg/plasteel/PL = new (src)
|
||||
PL.synths = list(plasteel)
|
||||
src.modules += PL
|
||||
|
||||
var/obj/item/stack/tile/floor_dark/cyborg/FTD = new (src)
|
||||
FTD.synths = list(plasteel)
|
||||
src.modules += FTD
|
||||
|
||||
var/obj/item/stack/nanopaste/N = new /obj/item/stack/nanopaste(src)
|
||||
var/obj/item/stack/medical/advanced/bruise_pack/B = new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
N.uses_charge = 1
|
||||
N.charge_costs = list(1000)
|
||||
N.synths = list(medicine)
|
||||
B.uses_charge = 1
|
||||
B.charge_costs = list(1000)
|
||||
B.synths = list(medicine)
|
||||
src.modules += N
|
||||
src.modules += B
|
||||
|
||||
/obj/item/weapon/robot_module/bluespace/respawn_consumable(var/mob/living/silicon/robot/R, var/amount)
|
||||
..()
|
||||
var/obj/item/weapon/gun/energy/taser/mounted/cyborg/T = locate() in src.modules
|
||||
if(T.power_supply.charge < T.power_supply.maxcharge)
|
||||
T.power_supply.give(T.charge_cost * amount)
|
||||
T.update_icon()
|
||||
else
|
||||
T.charge_tick = 0
|
||||
var/obj/item/weapon/melee/baton/robot/B = locate() in src.modules
|
||||
if(B && B.bcell)
|
||||
B.bcell.give(amount)
|
||||
var/obj/item/weapon/reagent_containers/syringe/S = locate() in src.modules
|
||||
if(S.mode == 2)
|
||||
S.reagents.clear_reagents()
|
||||
S.mode = initial(S.mode)
|
||||
S.desc = initial(S.desc)
|
||||
S.update_icon()
|
||||
|
||||
Reference in New Issue
Block a user