Merge pull request #5 from Aurorastation/master

Update
This commit is contained in:
skull132
2014-04-22 20:03:03 +03:00
18 changed files with 250 additions and 304 deletions
+1 -3
View File
@@ -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"
+1 -1
View File
@@ -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
+113 -4
View File
@@ -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
-100
View File
@@ -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
-100
View File
@@ -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 */ */
+1
View File
@@ -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
+51 -75
View File
@@ -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()
+9 -5
View File
@@ -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"
+5 -1
View File
@@ -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"
+3
View File
@@ -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
View File
@@ -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
+1
View File
@@ -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
+15
View File
@@ -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"
+4
View File
@@ -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.*/
+9
View File
@@ -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