mirror of
https://github.com/Aurorastation/Aurora-Old.git
synced 2026-08-24 13:16:18 +01:00
+1
-3
@@ -476,9 +476,7 @@
|
||||
#include "code\game\mecha\equipment\tools\medical_tools.dm"
|
||||
#include "code\game\mecha\equipment\tools\tools.dm"
|
||||
#include "code\game\mecha\equipment\weapons\weapons.dm"
|
||||
#include "code\game\mecha\exo\exo.dm"
|
||||
#include "code\game\mecha\exo\exobase.dm"
|
||||
#include "code\game\mecha\exo\exoert.dm"
|
||||
#include "code\game\mecha\exo\exoskeleton.dm"
|
||||
#include "code\game\mecha\medical\medical.dm"
|
||||
#include "code\game\mecha\medical\odysseus.dm"
|
||||
#include "code\game\mecha\working\ripley.dm"
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
var/jobs_have_minimal_access = 0 //determines whether jobs use minimal access or expanded access.
|
||||
|
||||
var/cult_ghostwriter = 1 //Allows ghosts to write in blood in cult rounds...
|
||||
var/cult_ghostwriter_req_cultists = 10 //...so long as this many cultists are active.
|
||||
var/cult_ghostwriter_req_cultists = 3 //...so long as this many cultists are active.
|
||||
|
||||
var/disable_player_mice = 0
|
||||
var/uneducated_mice = 0 //Set to 1 to prevent newly-spawned mice from understanding human speech
|
||||
|
||||
@@ -11,10 +11,13 @@
|
||||
var/fire_volume = 50 //How loud it is played.
|
||||
var/auto_rearm = 0 //Does the weapon reload itself after each shot?
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/can_attach(var/obj/mecha/combat/M as obj)
|
||||
if(!istype(M))
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/can_attach(var/obj/mecha/combat/M)
|
||||
|
||||
if(istype(M))
|
||||
return ..()
|
||||
else
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/action_checks(atom/target)
|
||||
if(projectiles <= 0)
|
||||
@@ -324,10 +327,116 @@
|
||||
projectile = /obj/item/projectile/energy/electrode
|
||||
fire_sound = 'sound/weapons/Taser.ogg'
|
||||
|
||||
can_attach(var/obj/mecha/combat/exoskeleton/M as obj)
|
||||
if(!istype(M))
|
||||
return 0
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laserexo
|
||||
equip_cooldown = 8
|
||||
name = "Exoskeleton Immolater Weapon"
|
||||
icon_state = "mecha_laser"
|
||||
energy_drain = 30
|
||||
projectile = /obj/item/projectile/beam
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
|
||||
can_attach(var/obj/mecha/combat/exoskeleton/M as obj)
|
||||
if(!istype(M))
|
||||
return 0
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/handcuffs
|
||||
name = "handcuffs"
|
||||
desc = "Use this to keep prisoners in line."
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "handcuff"
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
w_class = 2.0
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
m_amt = 500
|
||||
origin_tech = "materials=1"
|
||||
var/dispenser = 0
|
||||
var/breakouttime = 1200 //Deciseconds = 120s = 2 minutes
|
||||
|
||||
/obj/item/weapon/handcuffs/attack(mob/living/carbon/C as mob, mob/user as mob)
|
||||
if(istype(src, /obj/item/weapon/handcuffs/cyborg) && isrobot(user))
|
||||
if(!C.handcuffed)
|
||||
var/turf/p_loc = user.loc
|
||||
var/turf/p_loc_m = C.loc
|
||||
playsound(src.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2)
|
||||
for(var/mob/O in viewers(user, null))
|
||||
O.show_message("\red <B>[user] is trying to put handcuffs on [C]!</B>", 1)
|
||||
spawn(30)
|
||||
if(!C) return
|
||||
if(p_loc == user.loc && p_loc_m == C.loc)
|
||||
C.handcuffed = new /obj/item/weapon/handcuffs(C)
|
||||
C.update_inv_handcuffed()
|
||||
|
||||
else
|
||||
if ((CLUMSY in usr.mutations) && prob(50))
|
||||
usr << "\red Uh ... how do those things work?!"
|
||||
if (istype(C, /mob/living/carbon/human))
|
||||
if(!C.handcuffed)
|
||||
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
|
||||
O.source = user
|
||||
O.target = user
|
||||
O.item = user.get_active_hand()
|
||||
O.s_loc = user.loc
|
||||
O.t_loc = user.loc
|
||||
O.place = "handcuff"
|
||||
C.requests += O
|
||||
spawn( 0 )
|
||||
O.process()
|
||||
return
|
||||
return
|
||||
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
||||
usr << "\red You don't have the dexterity to do this!"
|
||||
return
|
||||
if (istype(C, /mob/living/carbon/human))
|
||||
if(!C.handcuffed)
|
||||
|
||||
C.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been handcuffed (attempt) by [user.name] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Attempted to handcuff [C.name] ([C.ckey])</font>")
|
||||
log_attack("[user.name] ([user.ckey]) Attempted to handcuff [C.name] ([C.ckey])")
|
||||
|
||||
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
|
||||
O.source = user
|
||||
O.target = C
|
||||
O.item = user.get_active_hand()
|
||||
O.s_loc = user.loc
|
||||
O.t_loc = C.loc
|
||||
O.place = "handcuff"
|
||||
C.requests += O
|
||||
spawn( 0 )
|
||||
if(istype(src, /obj/item/weapon/handcuffs/cable))
|
||||
feedback_add_details("handcuffs","C")
|
||||
playsound(src.loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2)
|
||||
else
|
||||
feedback_add_details("handcuffs","H")
|
||||
playsound(src.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2)
|
||||
O.process()
|
||||
return
|
||||
else
|
||||
if(!C.handcuffed)
|
||||
var/obj/effect/equip_e/monkey/O = new /obj/effect/equip_e/monkey( )
|
||||
O.source = user
|
||||
O.target = C
|
||||
O.item = user.get_active_hand()
|
||||
O.s_loc = user.loc
|
||||
O.t_loc = C.loc
|
||||
O.place = "handcuff"
|
||||
C.requests += O
|
||||
spawn( 0 )
|
||||
if(istype(src, /obj/item/weapon/handcuffs/cable))
|
||||
playsound(src.loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2)
|
||||
else
|
||||
playsound(src.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2)
|
||||
O.process()
|
||||
return
|
||||
return
|
||||
@@ -1,100 +0,0 @@
|
||||
/obj/mecha/exoskeleton/exoskeletonother
|
||||
name = "Exoskeleton Mk. I"
|
||||
desc = "A prototype currently in development for special response and other purposes."
|
||||
icon_state = "exosuit" // need this
|
||||
initial_icon = "exosuit" // need this
|
||||
step_in = 2
|
||||
max_temperature = 20000 // DON'T FORGET TO TEST THIS
|
||||
health = 300
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/ripley
|
||||
internal_damage_threshold = 25
|
||||
deflect_chance = 50
|
||||
step_energy_drain = 8
|
||||
var/obj/item/clothing/glasses/hud/security/mech/hud
|
||||
|
||||
New()
|
||||
..()
|
||||
hud = new /obj/item/clothing/glasses/hud/security/mech(src)
|
||||
return
|
||||
|
||||
moved_inside(var/mob/living/carbon/human/H as mob)
|
||||
if(..())
|
||||
if(H.glasses)
|
||||
occupant_message("<font color='red'>[H.glasses] prevent you from using [src] [hud]</font>")
|
||||
else
|
||||
H.glasses = hud
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
go_out()
|
||||
if(ishuman(occupant))
|
||||
var/mob/living/carbon/human/H = occupant
|
||||
if(H.glasses == hud)
|
||||
H.glasses = null
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/mech
|
||||
name = "Integrated Security Hud"
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/mech/process_hud(var/mob/M)
|
||||
if(!M) return
|
||||
if(!M.client) return
|
||||
var/client/C = M.client
|
||||
var/image/holder
|
||||
for(var/mob/living/carbon/human/perp in view(get_turf(M)))
|
||||
if(M.see_invisible < perp.invisibility)
|
||||
continue
|
||||
if(!C) continue
|
||||
var/perpname = perp.name
|
||||
holder = perp.hud_list[ID_HUD]
|
||||
if(perp.wear_id)
|
||||
var/obj/item/weapon/card/id/I = perp.wear_id.GetID()
|
||||
if(I)
|
||||
perpname = I.registered_name
|
||||
holder.icon_state = "hud[ckey(I.GetJobName())]"
|
||||
C.images += holder
|
||||
else
|
||||
perpname = perp.name
|
||||
holder.icon_state = "hudunknown"
|
||||
C.images += holder
|
||||
else
|
||||
perpname = perp.name
|
||||
holder.icon_state = "hudunknown"
|
||||
C.images += holder
|
||||
|
||||
for(var/datum/data/record/E in data_core.general)
|
||||
if(E.fields["name"] == perpname)
|
||||
holder = perp.hud_list[WANTED_HUD]
|
||||
for (var/datum/data/record/R in data_core.security)
|
||||
if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
|
||||
holder.icon_state = "hudwanted"
|
||||
C.images += holder
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
|
||||
holder.icon_state = "hudprisoner"
|
||||
C.images += holder
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Parolled"))
|
||||
holder.icon_state = "hudparolled"
|
||||
C.images += holder
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Released"))
|
||||
holder.icon_state = "hudreleased"
|
||||
C.images += holder
|
||||
break
|
||||
for(var/obj/item/weapon/implant/I in perp)
|
||||
if(I.implanted)
|
||||
if(istype(I,/obj/item/weapon/implant/tracking))
|
||||
holder = perp.hud_list[IMPTRACK_HUD]
|
||||
holder.icon_state = "hud_imp_tracking"
|
||||
C.images += holder
|
||||
if(istype(I,/obj/item/weapon/implant/loyalty))
|
||||
holder = perp.hud_list[IMPLOYAL_HUD]
|
||||
holder.icon_state = "hud_imp_loyal"
|
||||
C.images += holder
|
||||
if(istype(I,/obj/item/weapon/implant/chem))
|
||||
holder = perp.hud_list[IMPCHEM_HUD]
|
||||
holder.icon_state = "hud_imp_chem"
|
||||
C.images += holder
|
||||
@@ -1,100 +0,0 @@
|
||||
/obj/mecha/exoskeleton/exoskeletonert
|
||||
name = ""
|
||||
desc = ""
|
||||
icon_state = "" // need this
|
||||
initial_icon = "" // need this
|
||||
step_in = 2
|
||||
max_temperature = 20000 // DON'T FORGET TO TEST THIS
|
||||
health = 300
|
||||
// wreckage = // need icon
|
||||
internal_damage_threshold = 25
|
||||
deflect_chance = 50
|
||||
step_energy_drain = 8
|
||||
var/obj/item/clothing/glasses/hud/security/mech/hud
|
||||
|
||||
New()
|
||||
..()
|
||||
hud = new /obj/item/clothing/glasses/hud/security/mech(src)
|
||||
return
|
||||
|
||||
moved_inside(var/mob/living/carbon/human/H as mob)
|
||||
if(..())
|
||||
if(H.glasses)
|
||||
occupant_message("<font color='red'>[H.glasses] prevent you from using [src] [hud]</font>")
|
||||
else
|
||||
H.glasses = hud
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
go_out()
|
||||
if(ishuman(occupant))
|
||||
var/mob/living/carbon/human/H = occupant
|
||||
if(H.glasses == hud)
|
||||
H.glasses = null
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/mech
|
||||
name = "Integrated Security Hud"
|
||||
|
||||
/obj/item/clothing/glasses/hud/security/mech/process_hud(var/mob/M)
|
||||
if(!M) return
|
||||
if(!M.client) return
|
||||
var/client/C = M.client
|
||||
var/image/holder
|
||||
for(var/mob/living/carbon/human/perp in view(get_turf(M)))
|
||||
if(M.see_invisible < perp.invisibility)
|
||||
continue
|
||||
if(!C) continue
|
||||
var/perpname = perp.name
|
||||
holder = perp.hud_list[ID_HUD]
|
||||
if(perp.wear_id)
|
||||
var/obj/item/weapon/card/id/I = perp.wear_id.GetID()
|
||||
if(I)
|
||||
perpname = I.registered_name
|
||||
holder.icon_state = "hud[ckey(I.GetJobName())]"
|
||||
C.images += holder
|
||||
else
|
||||
perpname = perp.name
|
||||
holder.icon_state = "hudunknown"
|
||||
C.images += holder
|
||||
else
|
||||
perpname = perp.name
|
||||
holder.icon_state = "hudunknown"
|
||||
C.images += holder
|
||||
|
||||
for(var/datum/data/record/E in data_core.general)
|
||||
if(E.fields["name"] == perpname)
|
||||
holder = perp.hud_list[WANTED_HUD]
|
||||
for (var/datum/data/record/R in data_core.security)
|
||||
if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "*Arrest*"))
|
||||
holder.icon_state = "hudwanted"
|
||||
C.images += holder
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Incarcerated"))
|
||||
holder.icon_state = "hudprisoner"
|
||||
C.images += holder
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Parolled"))
|
||||
holder.icon_state = "hudparolled"
|
||||
C.images += holder
|
||||
break
|
||||
else if((R.fields["id"] == E.fields["id"]) && (R.fields["criminal"] == "Released"))
|
||||
holder.icon_state = "hudreleased"
|
||||
C.images += holder
|
||||
break
|
||||
for(var/obj/item/weapon/implant/I in perp)
|
||||
if(I.implanted)
|
||||
if(istype(I,/obj/item/weapon/implant/tracking))
|
||||
holder = perp.hud_list[IMPTRACK_HUD]
|
||||
holder.icon_state = "hud_imp_tracking"
|
||||
C.images += holder
|
||||
if(istype(I,/obj/item/weapon/implant/loyalty))
|
||||
holder = perp.hud_list[IMPLOYAL_HUD]
|
||||
holder.icon_state = "hud_imp_loyal"
|
||||
C.images += holder
|
||||
if(istype(I,/obj/item/weapon/implant/chem))
|
||||
holder = perp.hud_list[IMPCHEM_HUD]
|
||||
holder.icon_state = "hud_imp_chem"
|
||||
C.images += holder
|
||||
@@ -1,16 +1,17 @@
|
||||
/obj/mecha/exoskeleton/exoskeleton
|
||||
name = "exoskeleton"
|
||||
desc = ""
|
||||
icon_state = "ripley" // need this
|
||||
initial_icon = "ripley" // need this
|
||||
/obj/mecha/combat/exoskeleton
|
||||
name = "Exoskeleton Mk. I"
|
||||
desc = "A prototype currently in development for special response and other purposes."
|
||||
icon_state = "exosuit" // need this
|
||||
initial_icon = "exosuit" // need this
|
||||
step_in = 2
|
||||
max_temperature = 7000 // DON'T FORGET TO TEST THIS
|
||||
health = 200
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/ripley
|
||||
wreckage = /obj/effect/decal/mecha_wreckage/exoskeleton
|
||||
internal_damage_threshold = 35
|
||||
deflect_chance = 25
|
||||
step_energy_drain = 4
|
||||
var/obj/item/clothing/glasses/hud/security/mech/hud
|
||||
max_equip = 3
|
||||
|
||||
New()
|
||||
..()
|
||||
@@ -99,7 +100,7 @@
|
||||
holder.icon_state = "hud_imp_chem"
|
||||
C.images += holder
|
||||
|
||||
/obj/mecha/exoskeleton/exoskeleton/melee_action(target as obj|mob|turf)
|
||||
/*/obj/mecha/exoskeleton/exoskeleton/melee_action(target as obj|mob|turf)
|
||||
force = 30
|
||||
var/melee_cooldown2 = 10
|
||||
var/melee_can_hit2 = 1
|
||||
@@ -179,12 +180,12 @@
|
||||
melee_can_hit2 = 1
|
||||
return
|
||||
|
||||
else
|
||||
/* else
|
||||
if(damtype == "brute")
|
||||
for(var/target_type in src.destroyable_obj)
|
||||
if(istype(target, target_type) && hascall(target, "attackby"))
|
||||
src.occupant_message("You hit [target].")
|
||||
src.visible_message("<font color='red'><b>[src.name] hits [target]</b></font>")
|
||||
src.visible_message("<font color='red'><b>[src.name] hits [target] for no damage.</b></font>")
|
||||
if(!istype(target, /turf/simulated/wall))
|
||||
target:attackby(src,src.occupant)
|
||||
/* else if(prob(5))
|
||||
@@ -196,4 +197,4 @@
|
||||
if(do_after(melee_cooldown2))
|
||||
melee_can_hit2 = 1
|
||||
break
|
||||
return
|
||||
return */ */
|
||||
@@ -93,6 +93,7 @@
|
||||
|
||||
"Exoskeleton"=list(
|
||||
/obj/item/mecha_parts/chassis/exoskeleton,
|
||||
/obj/item/mecha_parts/part/exoskeletonarmor,
|
||||
/obj/item/mecha_parts/part/hydraulicspack,
|
||||
/obj/item/mecha_parts/part/electricalpack
|
||||
|
||||
|
||||
@@ -586,7 +586,7 @@
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
return 0
|
||||
|
||||
|
||||
/datum/construction/reversible/mecha/firefighter
|
||||
@@ -888,7 +888,7 @@
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
return
|
||||
return 0
|
||||
|
||||
/datum/construction/reversible/mecha/durand
|
||||
result = "/obj/mecha/combat/durand"
|
||||
@@ -1391,9 +1391,9 @@
|
||||
|
||||
spawn_result()
|
||||
var/obj/item/mecha_parts/chassis/const_holder = holder
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/odysseus(const_holder)
|
||||
const_holder.construct = new /datum/construction/reversible/mecha/exoskeleton(const_holder)
|
||||
const_holder.icon = 'icons/mecha/mech_construction.dmi'
|
||||
const_holder.icon_state = "odysseus0"
|
||||
const_holder.icon_state = "exoskeleton0"
|
||||
const_holder.density = 1
|
||||
spawn()
|
||||
del src
|
||||
@@ -1401,7 +1401,7 @@
|
||||
|
||||
|
||||
/datum/construction/reversible/mecha/exoskeleton
|
||||
result = "/obj/mecha/working/exoskeleton"
|
||||
result = "/obj/mecha/combat/exoskeleton"
|
||||
steps = list(
|
||||
//1
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
@@ -1412,52 +1412,41 @@
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="External armor is installed."),
|
||||
//3
|
||||
list("key"=/obj/item/mecha_parts/part/exoskeletonarmor,
|
||||
"backkey"=/obj/item/weapon/weldingtool,
|
||||
"desc"="Internal armor is welded."),
|
||||
//4
|
||||
list("key"=/obj/item/weapon/weldingtool,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="Internal armor is wrenched"),
|
||||
//5
|
||||
//4
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Internal armor is installed"),
|
||||
//6
|
||||
//5
|
||||
list("key"=/obj/item/stack/sheet/metal,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Central control module is secured"),
|
||||
//7
|
||||
//6
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/crowbar,
|
||||
"desc"="Central control module is installed"),
|
||||
//8
|
||||
//7
|
||||
list("key"=/obj/item/weapon/circuitboard/mecha/exoskeleton/main,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is adjusted"),
|
||||
//9
|
||||
list("key"=/obj/item/mecha_parts/part/electricalpack,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="Electrical Pack"),
|
||||
//10
|
||||
//8
|
||||
list("key"=/obj/item/weapon/wirecutters,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//11
|
||||
//9
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//12
|
||||
//11
|
||||
list("key"=/obj/item/weapon/screwdriver,
|
||||
"backkey"=/obj/item/weapon/wrench,
|
||||
"desc"="The hydraulic systems are connected."),
|
||||
//13
|
||||
//12
|
||||
list("key"=/obj/item/weapon/wrench,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are disconnected."),
|
||||
//14
|
||||
list("key"=/obj/item/mecha_parts/part/hydraulicspack,
|
||||
"desc"="Hydraulic pack disconnected."),
|
||||
"desc"="The hydraulic systems are disconnected.")
|
||||
)
|
||||
|
||||
action(atom/used_atom,mob/user as mob)
|
||||
@@ -1469,106 +1458,93 @@
|
||||
|
||||
//TODO: better messages.
|
||||
switch(index)
|
||||
if(14)
|
||||
user.visible_message("[user] installs [holder] hydraulics pack", "You install [holder] hydraulics pack.")
|
||||
if(13)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
|
||||
holder.icon_state = ""
|
||||
else
|
||||
user.visible_message("[user] removes [holder] hydraulics pack", "You remove [holder] hydraulics pack.")
|
||||
holder.icon_state = ""
|
||||
if(12)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
|
||||
holder.icon_state = ""
|
||||
else
|
||||
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
|
||||
holder.icon_state = ""
|
||||
user.visible_message("[user] installs [holder] hydraulics pack", "You install [holder] hydraulics pack.")
|
||||
holder.icon_state = "exoskeleton1"
|
||||
if(11)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
|
||||
holder.icon_state = ""
|
||||
user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.")
|
||||
holder.icon_state = "exoskeleton2"
|
||||
else
|
||||
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
|
||||
holder.icon_state = ""
|
||||
user.visible_message("[user] removes [holder] hydraulics pack", "You remove [holder] hydraulics pack.")
|
||||
holder.icon_state = "exoskeleton0"
|
||||
if(10)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.")
|
||||
holder.icon_state = "exoskeleton3"
|
||||
else
|
||||
user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.")
|
||||
holder.icon_state = "exoskeleton1"
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].")
|
||||
holder.icon_state = "exoskeleton4"
|
||||
else
|
||||
user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.")
|
||||
holder.icon_state = "exoskeleton2"
|
||||
if(8)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton5"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = ""
|
||||
if(9)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] install [holder] electrical systems", "You install [holder] electrical systems.")
|
||||
holder.icon_state = ""
|
||||
else
|
||||
user.visible_message("[user] unfastens [holder] wiring", "You unfasten [holder] wiring systems.")
|
||||
holder.icon_state = ""
|
||||
if(8)
|
||||
holder.icon_state = "exoskeleton3"
|
||||
if(7)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].")
|
||||
del used_atom
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton7"
|
||||
else
|
||||
user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].")
|
||||
holder.icon_state = ""
|
||||
if(7)
|
||||
holder.icon_state = "exoskeleton5"
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures the mainboard.", "You secure the mainboard.")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton8"
|
||||
else
|
||||
user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].")
|
||||
new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder))
|
||||
holder.icon_state = ""
|
||||
if(6)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].")
|
||||
holder.icon_state = ""
|
||||
else
|
||||
user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton6"
|
||||
if(5)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton10"
|
||||
else
|
||||
user.visible_message("[user] pries internal armor layer from [holder].", "You prie internal armor layer from [holder].")
|
||||
var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton8"
|
||||
if(4)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton11"
|
||||
else
|
||||
user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton9"
|
||||
if(3)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton12"
|
||||
else
|
||||
user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton10"
|
||||
if(2)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] secures armor layer.", "You secure the reinforced armor layer.")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton13"
|
||||
else
|
||||
user.visible_message("[user] pries the armor layer from [holder].", "You prie the armor layer from [holder].")
|
||||
var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder))
|
||||
MS.amount = 5
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton11"
|
||||
if(1)
|
||||
if(diff==FORWARD)
|
||||
user.visible_message("[user] welds the armor layer to [holder].", "You weld the armor layer to [holder].")
|
||||
else
|
||||
user.visible_message("[user] unfastens the armor layer.", "You unfasten the armor layer.")
|
||||
holder.icon_state = ""
|
||||
holder.icon_state = "exoskeleton12"
|
||||
return 1
|
||||
|
||||
spawn_result()
|
||||
|
||||
@@ -397,9 +397,10 @@
|
||||
///////// Exoskeleton
|
||||
|
||||
|
||||
|
||||
/obj/item/mecha_parts/chassis/exoskeleton
|
||||
name = "Exoskeleton Chassis"
|
||||
icon = 'icons/mecha/mech_construction.dmi'
|
||||
icon_state = "exoskeleton0"
|
||||
|
||||
New()
|
||||
..()
|
||||
@@ -407,14 +408,16 @@
|
||||
|
||||
/obj/item/mecha_parts/part/exoskeletonarmor
|
||||
name="Exoskeleton Armor"
|
||||
icon_state = ""
|
||||
icon = 'icons/obj/clothing/suits.dmi'
|
||||
icon_state = "riot"
|
||||
construction_time = 120
|
||||
construction_cost = list("metal"=30000)
|
||||
origin_tech = "programming=3;materials=2"
|
||||
|
||||
/obj/item/mecha_parts/part/hydraulicspack
|
||||
name="Exoskeleton Hydraulics Pack"
|
||||
icon_state = ""
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "modkit"
|
||||
construction_time = 90
|
||||
construction_cost = list("metal"=20000,"glass"=6000)
|
||||
origin_tech = "programming=3;materials=2;engineering=2"
|
||||
@@ -422,7 +425,8 @@
|
||||
/obj/item/mecha_parts/part/electricalpack
|
||||
name="Exoskeleton Power Generator Pack"
|
||||
desc="Contains power unit and processing core for modifications."
|
||||
icon_state = ""
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "modkit"
|
||||
origin_tech = "programming=3;materials=2;engineering=2"
|
||||
construction_time = 90
|
||||
construction_cost = list("metal"=25000)
|
||||
@@ -448,7 +452,7 @@
|
||||
|
||||
exoskeleton/main
|
||||
name = "Exoskeleton Circuit Board"
|
||||
icon_state = "" // put something here.
|
||||
icon_state = "mainboard" // put something here.
|
||||
|
||||
ripley
|
||||
origin_tech = "programming=3"
|
||||
|
||||
@@ -217,4 +217,8 @@
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
return
|
||||
return
|
||||
|
||||
/obj/effect/decal/mecha_wreckage/exoskeleton
|
||||
name = "Useless Exoskeleton"
|
||||
icon_state = "exosuit-broken"
|
||||
@@ -115,6 +115,9 @@ var/global/normal_ooc_colour = "#002eb8"
|
||||
/* if(!ooc_allowed)
|
||||
src << "\red OOC is globally muted"
|
||||
return */
|
||||
if(!looc_allowed)
|
||||
src << "\red LOOC is muted."
|
||||
return
|
||||
if(!dooc_allowed && (mob.stat == DEAD))
|
||||
usr << "\red OOC for dead mobs has been turned off."
|
||||
return
|
||||
|
||||
+26
-5
@@ -48,11 +48,14 @@
|
||||
|
||||
var/msg = ""
|
||||
var/modmsg = ""
|
||||
var/custommsg = ""
|
||||
var/num_mods_online = 0
|
||||
var/num_admins_online = 0
|
||||
var/num_custom_online = 0
|
||||
|
||||
if(holder)
|
||||
for(var/client/C in admins)
|
||||
if(R_ADMIN & C.holder.rights || !(R_MOD & C.holder.rights))
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
msg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(C.holder.fakekey)
|
||||
@@ -70,7 +73,7 @@
|
||||
msg += "\n"
|
||||
|
||||
num_admins_online++
|
||||
else
|
||||
else if(R_MOD & C.holder.rights)
|
||||
modmsg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
@@ -85,15 +88,33 @@
|
||||
modmsg += "\n"
|
||||
num_mods_online++
|
||||
|
||||
else
|
||||
custommsg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
custommsg += " - Observing"
|
||||
else if(istype(C.mob,/mob/new_player))
|
||||
custommsg += " - Lobby"
|
||||
else
|
||||
custommsg += " - Playing"
|
||||
|
||||
if(C.is_afk())
|
||||
custommsg += " (AFK)"
|
||||
custommsg += "\n"
|
||||
num_custom_online++
|
||||
|
||||
else
|
||||
for(var/client/C in admins)
|
||||
if(R_ADMIN & C.holder.rights || !(R_MOD & C.holder.rights))
|
||||
if(R_ADMIN & C.holder.rights)
|
||||
if(!C.holder.fakekey)
|
||||
msg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_admins_online++
|
||||
else
|
||||
else if(R_MOD & C.holder.rights)
|
||||
modmsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_mods_online++
|
||||
else
|
||||
custommsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_custom_online++
|
||||
|
||||
msg = "<b>Current Admins ([num_admins_online]):</b>\n" + msg + "\n<b> Current Moderators([num_mods_online]):</b>\n" + modmsg
|
||||
msg = "<b>Current Admins ([num_admins_online]):</b>\n" + msg + "\n<b> Current Moderators([num_mods_online]):</b>\n" + modmsg + "\n<b> Current Custom Ranks([num_custom_online]):</b>\n" + custommsg
|
||||
src << msg
|
||||
@@ -92,6 +92,7 @@ var/datum/engine_eject/engine_eject_control = null
|
||||
var/host = null
|
||||
var/aliens_allowed = 0
|
||||
var/ooc_allowed = 1
|
||||
var/looc_allowed = 1
|
||||
var/dsay_allowed = 1
|
||||
var/dooc_allowed = 1
|
||||
var/traitor_scaling = 1
|
||||
|
||||
@@ -726,6 +726,21 @@ var/global/floorIsLava = 0
|
||||
message_admins("[key_name_admin(usr)] toggled OOC.", 1)
|
||||
feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/datum/admins/proc/togglelooc()
|
||||
set category = "Server"
|
||||
set desc="Globally Toggles LOOC"
|
||||
set name="Toggle LOOC"
|
||||
looc_allowed = !( looc_allowed )
|
||||
if (looc_allowed)
|
||||
world << "<B>The LOOC channel has been globally enabled!</B>"
|
||||
else
|
||||
world << "<B>The LOOC channel has been globally disabled!</B>"
|
||||
log_admin("[key_name(usr)] toggled LOOC.")
|
||||
message_admins("[key_name_admin(usr)] toggled LOOC.", 1)
|
||||
feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
|
||||
|
||||
/datum/admins/proc/toggledsay()
|
||||
set category = "Server"
|
||||
|
||||
@@ -55,6 +55,7 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/
|
||||
/client/proc/secrets,
|
||||
/datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/
|
||||
/datum/admins/proc/togglelooc,
|
||||
/datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/
|
||||
/datum/admins/proc/toggledsay, /*toggles dsay on/off for everyone*/
|
||||
/client/proc/game_panel, /*game panel, allows to change game-mode etc*/
|
||||
@@ -104,6 +105,7 @@ var/list/admin_verbs_fun = list(
|
||||
/client/proc/editappear
|
||||
)
|
||||
var/list/admin_verbs_dev = list(
|
||||
/client/proc/togglebuildmodeself,
|
||||
/datum/admins/proc/restart,
|
||||
/datum/admins/proc/delay,
|
||||
/client/proc/giveruntimelog,
|
||||
@@ -260,6 +262,8 @@ var/list/admin_verbs_hideable = list(
|
||||
/proc/release
|
||||
)
|
||||
var/list/admin_verbs_mod = list(
|
||||
/client/proc/cmd_admin_wind,
|
||||
/client/proc/cmd_admin_unwind,
|
||||
/client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/
|
||||
/client/proc/cmd_admin_pm_panel, /*admin-pm list*/
|
||||
/client/proc/debug_variables, /*allows us to -see- the variables of any instance in the game.*/
|
||||
|
||||
@@ -718,6 +718,15 @@ datum/design/honker_targ
|
||||
materials = list("$glass" = 2000, "sacid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/mecha/honker/targeting"
|
||||
|
||||
datum/design/exoskeleton
|
||||
name = "Circuit Design (\"Exoskeleton\" Control Module)"
|
||||
desc = "Allows for the construction of a \"Exoskeleton\" Control Module."
|
||||
id = "exoskeleton"
|
||||
req_tech = list("programming" = 4, "combat" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "sacid" = 20)
|
||||
build_path = "/obj/item/weapon/circuitboard/mecha/exoskeleton/main"
|
||||
|
||||
////////////////////////////////////////
|
||||
/////////// Mecha Equpment /////////////
|
||||
////////////////////////////////////////
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
Reference in New Issue
Block a user