From eada68657d196e6b905e860c97f68da72ef18e10 Mon Sep 17 00:00:00 2001 From: Duck- Date: Mon, 7 Apr 2014 17:11:29 -0400 Subject: [PATCH 1/5] Ghosts needed to write changed to 3. Ayup. --- code/controllers/configuration.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 46d9eba2..60275381 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -64,7 +64,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 From 53daf9f42de243f1afcddbcc646d269e94129c18 Mon Sep 17 00:00:00 2001 From: Dalekfodder Date: Sat, 12 Apr 2014 17:09:34 +0300 Subject: [PATCH 2/5] Changes to stuffs. Mostly flags. Name explains itself. --- code/game/verbs/ooc.dm | 3 +++ code/game/verbs/who.dm | 31 ++++++++++++++++++++++++++----- code/global.dm | 1 + code/modules/admin/admin.dm | 15 +++++++++++++++ code/modules/admin/admin_verbs.dm | 4 ++++ 5 files changed, 49 insertions(+), 5 deletions(-) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 8612e530..1c23f9b9 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -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 diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 09dc02eb..cad74466 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -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 = "Current Admins ([num_admins_online]):\n" + msg + "\n Current Moderators([num_mods_online]):\n" + modmsg + msg = "Current Admins ([num_admins_online]):\n" + msg + "\n Current Moderators([num_mods_online]):\n" + modmsg + "\n Current Custom Ranks([num_custom_online]):\n" + custommsg src << msg \ No newline at end of file diff --git a/code/global.dm b/code/global.dm index 1defaa5d..e94cec0a 100644 --- a/code/global.dm +++ b/code/global.dm @@ -90,6 +90,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 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 86fa0f52..8dbaf20b 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -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 << "The LOOC channel has been globally enabled!" + else + world << "The LOOC channel has been globally disabled!" + 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" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 83f3b2af..7e370acd 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -56,6 +56,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, @@ -259,6 +261,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.*/ From 80a2a1f2e63f05fb0952004e550a89316a38fc8a Mon Sep 17 00:00:00 2001 From: Dalekfodder Date: Sun, 13 Apr 2014 02:33:25 +0300 Subject: [PATCH 3/5] Exoskeletons Release! It's here! IT'S CLOSER THAN YOU THINK! --- aurora.dme | 4 +- code/game/mecha/equipment/weapons/weapons.dm | 117 +++++++++++++++- code/game/mecha/exo/exo.dm | 100 -------------- code/game/mecha/exo/exoert.dm | 100 -------------- .../mecha/exo/{exosec.dm => exoskeleton.dm} | 21 +-- code/game/mecha/mech_fabricator.dm | 1 + code/game/mecha/mecha_construction_paths.dm | 126 +++++++----------- code/game/mecha/mecha_parts.dm | 14 +- code/game/mecha/mecha_wreckage.dm | 6 +- icons/mecha/mech_construction.dmi | Bin 15640 -> 15944 bytes icons/mecha/mecha.dmi | Bin 160442 -> 160643 bytes 11 files changed, 191 insertions(+), 298 deletions(-) delete mode 100644 code/game/mecha/exo/exo.dm delete mode 100644 code/game/mecha/exo/exoert.dm rename code/game/mecha/exo/{exosec.dm => exoskeleton.dm} (93%) diff --git a/aurora.dme b/aurora.dme index 9f82c22e..3a018815 100644 --- a/aurora.dme +++ b/aurora.dme @@ -478,9 +478,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" diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 8774753c..3cbdf043 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -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' \ No newline at end of file + 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 [user] is trying to put handcuffs on [C]!", 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()]\] Has been handcuffed (attempt) by [user.name] ([user.ckey])") + user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [C.name] ([C.ckey])") + 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 \ No newline at end of file diff --git a/code/game/mecha/exo/exo.dm b/code/game/mecha/exo/exo.dm deleted file mode 100644 index 7560ecea..00000000 --- a/code/game/mecha/exo/exo.dm +++ /dev/null @@ -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("[H.glasses] prevent you from using [src] [hud]") - 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 \ No newline at end of file diff --git a/code/game/mecha/exo/exoert.dm b/code/game/mecha/exo/exoert.dm deleted file mode 100644 index 4cb8388c..00000000 --- a/code/game/mecha/exo/exoert.dm +++ /dev/null @@ -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("[H.glasses] prevent you from using [src] [hud]") - 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 \ No newline at end of file diff --git a/code/game/mecha/exo/exosec.dm b/code/game/mecha/exo/exoskeleton.dm similarity index 93% rename from code/game/mecha/exo/exosec.dm rename to code/game/mecha/exo/exoskeleton.dm index 29930193..3de2c6ee 100644 --- a/code/game/mecha/exo/exosec.dm +++ b/code/game/mecha/exo/exoskeleton.dm @@ -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("[src.name] hits [target]") + src.visible_message("[src.name] hits [target] for no damage.") 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 \ No newline at end of file + return */ */ \ No newline at end of file diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index cfbb4feb..d3ad3747 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -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 diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index c011a58f..6fa5b217 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -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() diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 101347a5..e3eb1a5a 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -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" diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm index ae039b4d..fe0caee1 100644 --- a/code/game/mecha/mecha_wreckage.dm +++ b/code/game/mecha/mecha_wreckage.dm @@ -217,4 +217,8 @@ var/part = pick(parts) welder_salvage += part parts -= part - return \ No newline at end of file + return + +/obj/effect/decal/mecha_wreckage/exoskeleton + name = "Useless Exoskeleton" + icon_state = "exosuit-broken" \ No newline at end of file diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index 9d86f97b20089eb6b2bf6186cc8a9c9bf451c3a6..5c817a9e6efea97580539ac5d73004a0b7ff36d2 100644 GIT binary patch literal 15944 zcmaib2Q*yI`~D(G5G&Dp649bZuZsjhv=Al2>Lt-xt1cpJL`xz;qDPeIlIUf1L9~dd ztF!7Vi?w#G|N4G^^>cpb{Li`9+`BXPotbyud1vN*9&yHoI#+2pXaE4fRow^o9{~Vl zxuiStG6m_E+56fy004Qg@k2AMwzf7P1HG)QEI=naoATv}CCb?O?Yj*iZgCr^BQ zd?F(wgMxyzw6u(jj7&^S+}zwusi=ZRS#)*vK_HN>uCA%6shypjuQyjx{H=fhh`hY~ zvq_1;6eDY2f5J9i5t{(9WASo#s5fPE0Cl@cny8~9< zYbyS2F7NE@;^rAdNlEGCq%v9z?zmM>Y2^bIp^ZeCtqguR}b z*<)?(2Pr8j4<8z+si~`~f>cygyuH0eMMYIqG+kU=MMOl5jEo~Aqh7y${p{IufB%5z z()`xe)>c+lHa51-&aMw0Jg~HU;^E<;sd*m)f%yCTi-?FjIXT(e+bbz4!Qt@x_wO4T z8d_RfSz20pdU`4=tE#D~iHb^)bf~GRsiC0}8yg!O98A*T4%cmCV`+Kv^d0i@hJh&CSj8^Ya>-%8E)d&?mQIe09sq%g+G-0Re%frKR)pb082n zIXQ_yAQBQ1R##UaMSvnb0OwZ$`uDECSCg@^u}Mu$l~VvwU%I4k02bupV$lWgK>>`6 zj7+q&j*gBrl#~ze-D?H_tOW!f%FDBmbjLzY(iq?Kx1FSCvVcd1rU3P|Nf(kus)U$X z2Hbb{cl2}j32^uJ0sw+C3(^O@UZ^w0Ozbh;uPgK&A&ND+%Ou91(%*jg;XyZ`_TZR* zjy+vqNs+OG>SyoEhWQ5Rb(s)wgh%b@ravQb{agQQ$3qq|-ZlHZjDn-q7RxUCs);Et z@PO81!5S|k!6uiqr)w#a559kU=3Oj#awo-G40SHmZ7&5EQ}F1sPv$!AvLEI;?y#?P z3bwlXg<9*i@s}%FCB|Q9wfc=I%A>;C@cA8*x+SJ zFT(uKOFrFaGJ|w|l@@bqyUeO2P4zr}U7f-K47U0@wS6Qy1Rh?pIugyc96tSZ6;~h zb>hN~u><8dp=v6t_m(lDn^Iy9{G>M)tM`-qqI#lAEc~fihEd7lK=7}^(Q2Nauy;SV zdAPT3dam&NzAEi@h&JW%i}Tb1zuwICw_(-sn24&jrS2KxV$=7x^B9cs{jMnKB~RUB zIID!WVlV!|C@0&*Q|GWuzp^^9#qE3ExGVL*DE}xBa#nN%G&mP9>WUvq003?Pbnk1J z1!e9a;~lyBtZwXy7pSTp3mM)PWS<#*Ko%(2bNp%arq}6eX0i^;Dj8MMa+0!orUYGb zOBvypQ_9Ird%>wo9qgCMj+<#YE6Xi!`&x3!^?j?Yp~{>Ym^;(KhJzsxi=$GPKO9EM zs?JtpHi)+}rt@YHh*88?Y#tL;_fKI*-fu?D%iN5LSfRDG$cS_ElUmQ!K=ZFv+o2xQ z2DGhK@2uDEo#FX*o551%!PJhs#jk4011`T}Z}{j#>mZ<5M&Dg0Ra>558&fQ`exBet zPj6&T{>H#;3V=*#Drl6Yo9_v?-Uy?fqtL$^6q?A=4y~$AYwuQlCTsYkDuzB>zO#IR z-f!3Gn-A$AHDM;LUJc$ zICQ>u6LQ>&ZKW2pF>9#tYDsRV62_t+t=7w-0j;5jvv#42ytB6beuliv(w9wJ3%1Uk^d90c@Pa-z7+PLpJk^Xc#!8&j3oqLJbr_EvS-*uxCd?;B< zrw{#s$N6PXV!UTWs>o2|CFg9X$(}t1ivoBlX%tFKwat!kV&jB3!kKQaR6r)VQ%50d+DJ zcv2zvEwXt5!F?Vh^HF7q`6VPp}~Rxk$|>&_i3!P+hK)PlLsJHldfj3L0dO zi>qAnuU!q@oMx&2u=blma%`5X$!t=sLCeY?97ZR)AjvJ6;??h(WT|UmtDfBCNHJhg zQjr*bqBg>Ff44*c`5w#{eTL89jXtArdBSQQJ82KR=?sk?XD|JJSOZ@$|77i$Op~p5 zo!iQIg6BnsyH}E`Xux~2)`IfH7OqzRqGHpD9<{JuwWH<354Cc~i%ns}?@+yTzNuQ-8*kcff$X=S~j+wZAxE6o!rj@1692;+1xS z+qP%B)g1GxocuAR2BN)dvLj!g`MP#|T*6pRBBCNdeL&Om+vUa(3B%+vOCrrO-@O(4 zalS=776e%sxp~}0uKZ(Xq1_Wc*}=Fyl1E{*GtYb4{)LxG4O}`nI4FH=x;_7`r#1X) zJx=&!)!)BnI!q!7SVfZb+|eY{c+y9XZy>eF-Q$qj$nzPCMJ9iG^uR*z#S({!GU z_CpF~&-<-BC^xrgu`T6R{GFz3T)+J2w~f%OukZ#B6T1F=051*n=_V4pToseSO&Io} zZ({}8oe|r7zxxXv+zX4oPp|6a#Y3^TJ7t97IT)+DOqQO*s46s1i>ln4`|a{4zUq?5 zXWBSt&d_TtPah}+aLnYrpw)#NIyRa4+}s#(_eiD@zs;=_vt!yGGsi6_N)2>Ki}HIz zBd!7O=sxQJ_MTPwY~NxacRR?j$5+9(qbc1Y+=#hn5L=lD{`DJ>pwYNTmHIX>rxpTd zJ$>U(k#!Kfh;*QCX4qn2d}YpU8=`Dk|B=~C$4kTzDS$TX%W5>3{rXNBl2LEU58Y(( zE$X+;na3@31v8DHqP#fL~!8g|mjOI2xP z*dbkJVEDH^?~dNyW;gd#)|aMlO}bbo>^t-T8oOOqGg4w~&3jo}lC9Itzw3^==)t|W zysx>Y5&MTKl&2^wV^}u1{CPmMceIQb(;(QsDR8u*i*Yi>C(Nx*aQ*4BP1B2;FPpd< z29c@%w2|SVC*@k{Og|>=wKLeK+uHPK@3304-Pr4Nho!4{xE)_R9!;)JZjBD#&aYyl zjBT!#K;t<&5eq3uWUUYJv=4oxJV=!zt(^Vq~tdkO9@6S4V?WIak zbuvw|=HO0D(F=MB4WTMZO?ZF90&^p@(!k5VuJ5b4uTFgmy23{usk&&} zi0?R4%j6EC=@I=K@|jG^4pAR*F4197x__T`ZIn9aMK!u=n_&5L1E6ILdmd_47+(Jw9>E#@wlwAC!y*7z+uJfNuj2uvEj_P? zQ?4svv$CVkjV`jrT@R%hx#{(kk*mxYGy~Pf10F>a` z#AG8={qM;U3Dsb{Y>(Qp@ATb4(3!r<<&~=FJHd`QKA*an`oVeD_4j^7Z@z`5H@6Sk z|6NFtRrwq}_MOV?F`FTZ9;JB6jR+bXK6lNO`VOp4t_Gh&PL6NVjSwO}=A2gsslUhn zQJcaVT#=_iRlc&Y`^8u}at&gs5UE^3SNQ9(8f`_#pHGWPn`8tjxqHeby6|UvxcN5w zZTVtBf&l2rS%%CD$|EJ9+;y!33rlAzu=_sYhAlUC^QR*HW0}~Rz`L-+$Q_UUYugJq zS^Skka!&}}_V>>Js%WDxACFPZs$V-&l7I2&b_6Bghb6zrcFzN#U!6`bJ5Q(LN*W7n@A)z0VFHaL|7=`x6YHf&UuEJsSLz|Si$Y>t~h>ln**K8$YY>5As9s!UGGFsu>y{<@=YN*sQ-pz^4w` zzHs1GEzfLlyU&~V`jBOF38AKHxR4**^NT&uW`2ujY}_wRZOZKv8ycQO@24-@>U(+_ z@;E}0YGMv7>{QX4jV<0es*PKspRRo|U*}re8{rqo2kbr0ckP{a*bsCFR`EjrBqpWQ zUiFi`n;?@LB>pM-D-9AI=k^F4SENAmwM*}Q)q zklh02EIv>UjU@oAUy(=lE{){a=kc1K`K((?^{wR^@i4;ZLe{zB3*D7^8Cd$j?Ke4} ze-`{{L$`eLy6e+Ab3c;jitD3m!{CZh#m5Ao_Icuu$I-`z8xfl&TvSJa+s=OGk`d0A z2(R||@>kDRD=l5JtrNAavW993QE>e$s13T6FcZ?ElSEo{Y)FevXbIjIn@`Av9aucn zPnmc4=nPSc%FO1?mYb_o_Jx{3m(eBYZlozPxruj``X~+Iu-fFDI{uY<6w_G%L&i1b zH*!KPAQI^8P1x+25UALV_hR|H%%^nd8QMY}=>o=jDYk9J1qZ1wnfRZXX>8_3SnD zi>8vMg$f_wtSOQL`x3v77iliZL;G;9W#EidC!C)yQ}L zdy!GjN6?F;g8e?%oU_|4S@E#@mwp;Ttz~j|BA4STqL!D!2IFQadl_vgdb@F-I2)*w z1RJT6;xV!ke!N^pPFJ~DQO{esse~jz-H&Dyn!3U5?=s%OEBD&4ZedV~R-NT0M|!gB z#6DNh6>vuDU_z(%KtQ1Tm7Qg7YG{nH6%c9IXu~nFQk2j_hDT85AyjP;mM)Xp!*Y?S4VQ zPkY6Uz?Hz@i@Ztdt$-?>v>b=RCdE5yDQM|M#y_hlx)}^fnIZ$-eF*bLIEo55B0pdL=w9KZLpQ-21z`RK z4(6Ku$996zRx+YsWr!RFZL{`cf$rmcH_-RdUm7?YGS+NYY(L@O;!8NSFcx~~6W{I? z0{u3y9u8ga-p_C5hd&o1Rd9Mc7bYhNl}IP&Mg|4Y>TthCAzacbBOi2LJ&#qwpBmK6Ew8cF4)=Fw7!sZ{#W+qj)oAHw&C7u}fOC-hL3BTw{bJy51g`x$*k6@) zo&30L0!YfaQtG>STb$t%J)@F|>Neq%2~=q^B_oF%;1)+S0!6cQADEqPHa&*c!?+X+&BuUF3jMc|K$&aR8y88HRS7JR`<3ej%U3^NV zf;_pajDo3;dpU&FJNqhwoet7uaKev(G%7r~jDkkl#@x@p0IteKxJ=@7D2Bmz55{=c zzg$wGxH)?#jz&?ve*YTm;5|ofN1AK!EGA8cjAmf%FXZaeKfKZZHX_(;aA2Ccv4{FN+%BMf2_Sbj zCqM4+>*|P6G3-_Vk=im21CQNlB-|!hXIA1XGKFiD3zw)OhfMw`pG7@F0k6)~;50<# zK{0*&1)3-`(`}Nm*28yl-XfeHAaoiM(?*Z|QMW))aa`w0LLHqbc8fxyta)O1iUSlu z%-r)w4fn1+FcyER&^u&P&oKMo47_EsVH`KX0?E#KG`EFfI?9b2{+Am#0EEGuomW*l z3xPDER3BDKtLizRw!*R^G9D#MBVw}3_kRC}0OIv7%2e|k zkJ5$&DSTke)7;#*sy{82e$yx03?tHlPdd^TSBYUL9py=i1*+*rjB{}hOKNj_%V-*B z0Rm=d0v~zWc%L)ZU&PGq?H#LG`;A8(7WTffXfs{1(GgpL^@I|QxS*l$LJ0ECy33R6H47kw$meDs-1dOZ~=E(r6yjJHsV9zbMsYQb+RI= z!q`~Wb1e_E`gVvSfO3|Nc;s8#mD4xmt%UH~P}#O6d9pT(Jayp70$tIoM~W*X^L|OxQdyuj|N=Jc`bgIvaoIII>c$7n3%$9}Ut% zE>s3hR)J$#V$EYXEf-ZgCdqk^FWM!k-_w3s&q79WRid3i3$yZ>{_2$`as06fE%-|k zAYL-(wh;Payu69Oq=%gpxYd<=&CeYmG2tI*tfM~UHbTK4!e#xq-YJN&&{6B*WyPij<=1_n&M-y?9m#Q3|R0#(~ZKL^>}6Zt zrlCBHOUtyY*K}`l@NLN_>bP z*Uh%F=qZf{)FkFQU}|otb+H}IB%{wOB<-(4-d~I3uSn-UX~pcNj&I?K{VgS^Owbu2cSD*{7W1Yuiw}>lMN1z51X9m zWv|jv71|4m6fdi=t^aqi_q)v|zV~jWN`N0y<)){d9f)>k@(wBTW}#Th-~@}((ue}3 zznK=~FFAP^OGV-UHfD7<`)-z{gQm%@Gg7A3vXu9>Oh81JJmsIz&p(?{k~kxEQSsNJ z`5!_7vx*+0-y)%i412@;faL80s(nEca~i4=a>to5;QBV3%t_A7j&lFG;^jI9cSpNxBFN}hw4Om;t`(JU*N!0FXSxq#n6{`--Zq{H?pS9-gou? z4brRjgFNMdRf~#D!)xv?<;QPNQZIeh|9A`3ZKgam$(uBMIVTPmiLtKzeI7DXi-4_g zjX6(qk4NhfG2I6iJ+>psTwlkZK@OF$N+H~LlDXP1_u+*9VEsrZxjEC`)(>-QS(GhF zwmPgeiwtZlMV4UP>yM=K+Y@urX{#TrI_8)hT5b#fX|^zPJK)o_Q;}_@dgkWQlPd7- z)gsG1?|6)LPlbO;*^ikcU3AJ(V3Vf)4-^OKuvM#oaNbr`3`p0V-CSUCzush)&dbEL zE;mkKlFmllJ#JUp)s*Qnp?*CVuz(XbS0NpoFc!b+GaTpjfY9*!AFp7dAM%U_!Dy1} z-QAyJF^&^BI>oTcHkqh2JxYp~YL0B?g7Tnljv(T|Bt@^gtVgVXdkA*}KdDs$0Uv{4 zuQL&vUi80wDbrtk6$HD3&PQ(R{i0o0j>`krZ>j~?h zk&W)JW?y4oF!hRzs6DPB zgKuy*-gu+}im}i}7o)q7kCBN@MUAXbFa+Vc+x!Z-q!mKoKBQMA=E`l#NhL!HMMiFK z(+n%OkjIaUJfrYxv2GzYi-Y({r~m&IBX0>o#jpmMrkLjS&MzHtXX%Swx++Z@!{V@G zJt7w06zBEM+8rbjeEX0*hBaRdRW$ioF5sUclztrQOSBwnqPml|tMtapllD?K#TF+o z-O6ZEqBW`1przjW99P?BaN_cD*5I~2gjR%Ko_}JkC|7x%9!iZgL25x8n${~ec^Z3> z_poNz(Qvd{<9z--(I@49;~C(HD|Mn-h^SQ5xbYLqs^0ras;@1U!FCZ%>J+pYNU1B% zy`tq+F$iXNqV;0orpqpfw^`7u6elbvwvYYAEi}u0XVy2ai8iK5KSo*H7n|#YE%xc< zN2@WR)tJ%sf1;tbD?ko-841N9a0YUVN;rV8*xdP?O8%p5r~{EUwLOs+6BriG!cy&^ zA+zAqlHX?}+yH$dX>8Ln-EP&cuhBlGf!ch`HtX|>wwXUvB)}urVu3j{#=w}?1pm;u zTjVnte2e6UQZc66LjT7AC;`<`o3d{E#Q_x>ADD87#>CBN~@;d9;v0O)ii;08#({rnlAViCCbQ$U6N2KvWUg{D_{UdDt^ zRNlFw*@?B+?j0owfC^UVqbK4m_Ps2GS!7`C%`Npu8Doh*>ne2R+jGDxvV+n;Yx#I zej;P`P8sQv%b@wU2c{mgmu9jO2+X~U^n6cCn#7@Oi;s|)`p(N~o05lbIxqiig1-3L zMz`Sd9spn$zTg7HmzOf!n5B*Z*sS(4bm)?E8yPqAzqIX;S^gZyv^=k6vv+--yw_22 zwp=9Ow%}N07gv!&Fi!Xz=Bjb+f8P(mhVb%@^+8%=jAl@0>4}W;OtkwkxvZp|QH>t{ z#-tmq2?hN)JnQ_?NHpN-a_{sLiA5LcMHdLlMI37Q${!k@*SrjuOtB+Wd3{N~olZ*5tvMYn)Ido*)?^g-ZF4EyETFZlF(`*A zO9G3^a$6he%XV^7mhmaAVF6FytqT%^wSs$wGol9c4?63FK`}XSZJcl|fvJCY;>7-$ zpORa+!O@m4f(Llb`qiAe^#c#`*sVsw``@9oM&o(dYGJmC%H=C6<=NZ=9M(^ro^L*K z=NexBY9_EvA3?4GdyQmg@0Gq@VY9l+Ga^;{JiuIYC4kQGU`yl2=i^{X=segeB`x7P zt_lNYODX+RqtiZ7{H5|}siz9#$VO+iQ_B`T73_wbevj`LZhmpZc1$FkX%k0sY0)oW*LnSnT*7Ns!80wFzJ+T)yq`KjHNy1Z%a!Wbs#G(Gg` z1K+wGzup)o>@?5C3u4E=H%9GD^ge)t2Y==8>MOuj_D*kNGvPgag|4zT&TxWmXP$fQ zGQ9gs(=TTFcwKC|AQuZMHVRe{J>GI{nj~&TUy=S%9k6xyn3*Q*~^9oHb)_1 z(?joON@jGST#HF5YZW51kg-|J%TQ8;v(;yQcfda7TNR8^saqa#w&U%1DYt3%;rOEx68K5x61x*G9jR|5O>(Y;|mTZadVhGe1k2>G1Tk_FI>h zf^tpe4R_5#oZ)JW{=+HUr}uw_BV55v!Tz3}X9D*ZW|+v_&NH^2Tb7ELKRX()x%1MwB{b0f%!AZp^9kE>b7llY#LqIdMHDCH`H6i2qYt&N z&sqy|_~x_z=t?hRO3b}9J%#LaQLaX_j{Ppj#S!Pzy%~9MOM|%$qQ-V7+Xk#KQ_wA2 z+$@F{d!@HfFBCjV_)xyjUYwcP<$foDN!ebO|6Kdv2Z8G!*ffzK_v3sgqPRjrlytRi zd-&S7oC51^lGiaKm~mp=B$sAoVvnwf)?xCYM)n1=A_oJ3$bmp! z+R6P)}~i= zTg?>C4K^rlp-w4Ktdeo8Ba9A`OV>+a+f-*y!b$wmI6asduko5tn28zr;o@q|P>8n5 zpRp;OOTvkv>m0n?4orEHmaDUVy1K}v$8d(<;Y7|bM532G zwt5o(iqbi`Ce9!^?eX(4*~6owk$ifyR05korf0wJW)C+u@?DatJi4CxeL!ZTZ?9_Z zm*qbR%IL+ztV=GxdGa)3ya!3RFN8xK>J`tKMwZ`Y3mDqYYD= zW|5-U`cNyhKNf#fW5HUYT_=m5PW(Q9hMwZA9IS2BhAfWP*oIHyB%WU7mqaZl2@{<3pTXff!vhJr`Z_5XVPqORcKMbi3+M(bhA#0~Pw7OI`|X>4m( zmH3)`%zT1!Dk(~lD~lY$Ov6j7M{qMSWMLoc7P4@r0J+P91zLOC) zR!X66(tM6SW*>K5QrjbBwJR@=FKR}RkRSFR!?_p{<2*qMnMpzxd`aUw;+ydBun~Ln zu-#5V;}^9kjkR4BI@epyH=k_w>Sys{9t0^!N8&U~;-93-=?Fn#zxWpAy=V}@e1j8w zV55B!A4>%-PNSc3BdJA2ZU1c7Xk|7(J%fUHX1$pD*vs_;%|L5!VV2sB>36ewzm}*@ zu{v{FE{|973E_xae`|kBk*WGgFQ(e}c`a@f-}5Q1>0ckeqVhn63>bkA45DES`W1Am z{}ESYhHsr&UF;$Yv^1cVVmGRQs<}lwenEM1a$sSJCq3-vE)}iy`Uq57MWq3@9qd&_ zQ&y#`T}1i&YgGL=ijumHK`wdR@<71zZ4HVEyR$6iY8FIbD`V@#3V_K+WO)Bt`V z)9_~1ZSoJBO|{>lhz!pNi<(=|H)4>nN3++HCC57tKm7d919sZ*)mmC&`;RTv-EiL0 zi7EUXo+mTFWc6?3k(x@o%s=Re;QaQv;Yqsi7T$>}zj!3a-fqNwWO|mPzX#3c!s>Yx zZ~?3BNK>-rg5Pr=FET~mmzPE^d3_i!3Pj-#vu(q$Bry16QbW7Tlqkrsx77$thjqw% z=b86!3S!bka7qL$g{Tzn+@uBmFCL;%kjo0FdWU&360=$EXIkG!?E8fa9_T+m!x5=Y zIg`_uxk_I|^T1941wu>YWfm`jCsP|`7v|3|DjHrrjB=_?`3ZrsU6s*Oi(PGyHH zp~p77E`k%ud1HSmS`7@BRI|H`3Z}0pf7duNZ(xV&`${j$2qmkEmQ8iln}kq{w*8ZQ z$XWJ(k`G@%{*-srRHt?2l}sg+{P{0t;Bz^S(W;^f&nRnmaaDly;9#|W%ub5+ds%FE zZyP!N7@71&Vc6QM4*{!`hxN*GRkL3H3DOZCKX)oi{c~;OMP? z6R<8Lhv<>IAPy!DR{ADf5DM)v&)JqWcj-A(m7!Gwc9prB@oJsj6?+Bs5?6o&+E^m! zd;mch0L||fddJ>vaU<%DXpn+)mYa~T@sgaC5lql#@^@kl`HhSu_62DpwP`yWK7N+X z?YQg+K$F5~>PHJqiA+Ty4S7vEO`Oj;_f%!orY=Y*(0J~Xyb{7DFX?al<6lm7e09u4 zUX0L^mH$m1jITF!mKZuoXYqg(kFfMzkOuWjBx1yM?4pUzU4kqd609s7C6>|Fmu=nhRR13GX;4r(2!6DYV*vF-I+b*kkH z{u_xS*#z~z7SgF&%jDsD@`{RC&AJ&*Mh@1)@cWJatU5x>tG+Iv)$eoH%x3)swhzT> z3XSaZzmiZtuxUCzP(IxJ2hu+e|E@KArLor*8~u@--n-HfkV?291YTFaKm{~C^ zt^eooe2CB_=~5l)Epvlv8{CA9h{*^|l)nLhqGw|si1rO7cWa5eT*3O%_#C!V1tcX> z>-ciyYLl3$Yn3A*KHE0}HY{H>OI@{@wkXmiFIP^|`VZ=#*y$|`!7D4-uK%I{F7*Bm zi*NlouB%yS3aHX)^NIOi)W1@)O^4ke<1>vTvRTbbOJx1N{2*tn8I0JE-l+fnQLp?3 zJlG6aLRz%|ZM#w`T~zbvJZiF$hRc8i8y#N4E-zt$dgNZCj{J49{{4%|NDF-xY^-`f z&&gA7<#1KaD*p<{!(onulJJtgV@dUqHKZ4*xXmkVQT1TbFl#lFJ7x#PBo%kQNd6a@ zkMLW;$A8x#R=GqiaalTSI@PB*+ukIyQS!BFt^u7mKgIjy3vP1hFEcwYRt$Ryz0C^n zaVH_q#FvEn&^6Vi?B`Q^pj6dfAgvsviWD<9o7Hn7&vkg4DNQ4Dr*sU(mlD%<=ruc?ANaeM?D$r>DKAL7d5HzvKla~q-soPXj{GNSZ;V9RlYLEt z{zKyQg@^bH1E^Z(9i6C!#)BJpdEE6QCS>L>rrZ;5)Z*fu=1W@#H-4umzg2ceYoiMr zSR2yTU@I^X{mw&fzGq%F+NjSm?spQGEyo^+G}!K~c$s_mvV8~yZzd_Ztk=e-4!iSR2b$Ggd$LcHWh%^-tNH)o;-$<_w|9E}4pmh` z6*OEUb=C3J0Om7Jq>Kk^c^bzJ4SktuYji+GX?|T*s5jWXwMGNg;@SM+8i|$n32`@N ztzXou9;ZXeoxEw60pF@xlF&_|QR6dKfoYP{S=$5q*p~d7-AD#tVo*QY^*>^FuxX(Lg=R~8C5mV4s5*^ zxBuR+G)5mkP)K>I4vYPv9wlW&>IVW?yOX<-6h(LK#C~;kcsh@b~@T*7Huh z1gaj5^Hho`xLt9(=KTmbmKst0mOIZj`@HbLLT@P{hiE(eEYBW4vo{iP*=T8pZg&yq zeK(?ji@p-96q|a)K~>}!rfArE;+L7UzZ!&|kHD*Sq2LU8_>F77RS|=z%J*Go9DJ^_ zpiXW-!7&>@`7u>Li80JMab|JZ2>1q#Bf&vm(*Uypuz^m$$pY_*=_&WUqZ2BIk5n-&Kh;WA3K{W&^-0S=GG<^#O+m7BhAXU+6AFH1&I~FqtY)Bc6 zvBTU$y9C^vB)kb_w|RiY=6|RERx8yoJbYIe)cu)+|4hNj3=Gj>EOQTBaSDe25wMg`G=`k6oqcmXL?V!KfFehC+G?n!}-`eZ-!JWUc3zB@!rc!dF(-qMOU7^ z48Yy9hrRyz7U2*_U^WeECTlQq4|}pjLW&F_E&+?gV|3p6 zJTDOxQ2W-cZBglmx9Nck7^m?EKni0qlW;9}L)BNadS^IfOgOeM)7QK61i3b(x60YR zObz5gC_Nrq1+o|ZG?LPSz5eO}AG}X|{gH^d=l9V1<&)58&&h@KK{o$%YaO)06?g+= zr6R-U;wAXX@Hrj}_L3{;o%d*+HG(m)yv=b?mGsA0JT!m}jAZ&^8@|6(eyw~3$_!;h z3!{(Duo-$pqwl+fTuD%O|1h{(1}D}TSm>*>T+!3=A_CDcMaZ?qSd{rS?cxiLUA{Lo z5OPVAy}6zM~;@(ACRCsE1ucG^G6d_+s0rfrDlM|?y}oz`t25E{G1UIL(3G{4@< zi4IJ^8h)eQeO6(_t3_RBWyq_QwtQ$3p!lzch6uzJQ;IO1nud>r8x+Yq0fYH0MiCD} z5mA=~=A9wDfosVfTiD`x+22pxCh5nv1?aUw$@_ReHvKFe%-m-3fp?eezrOe(HI zJQZf+%Bg5RDcYVz2c>{Y&(h8g>=6+2FTctKOK+_N8$@=b)Rk|iGzC+9_%jvGX0w+* zd6wW$g;riMENoiwDhyq*EkvD%t9(Ls+vMUmyie8*D<;+|)AL+C_+q!W#llMIh=>oP zk=}~`>w`1=-U%-oaACg)VPEt-Vqmgu^eQ;-E9&;be*Xe)g`N5B}Er9C1OEPVQq^9p)b0|NLQQ)QjJe-i+%G#L+~x~{Jjr7M!K z%Z98)>UtR~_cOI$K)Fv?{4ntIBcX_bOG(mCsfLmYb86bT1bupSArn_;A*M(SIkwqs zf)Ji*Pn`@p`oVz2jI9;DN8)-5$8cML%Ec4J32n_+sM4L0W0^cg3T{NWt4QS)ADN-O0}bMx(2B2?KWjnMol|Vwc&# z2I}b=-7x+nyIQ`x{zxXm`6-pP3{HNUkm}3sG-@-i{U3t1X4Vg^dz`DZ(sDizc(bRG zvD(01iz7(IpN5ct6R!(F^&|>hz=fcN&n>Nq0vDM!KPKu%S4j0n>Q_$G_4QwTnU}q&nUGJ=wI>z1iiN| z8q)Tk4QXdNJMuiZ5H?Z(-Dv- OfUcI|{R&OH7yl1XgcmFT literal 15640 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 diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index 26f17751a823316a04c6a27ebd540f27349806db..1344516678088606afbc34bb8440f4c24314ad18 100644 GIT binary patch delta 16436 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 Date: Fri, 18 Apr 2014 16:12:48 +0300 Subject: [PATCH 4/5] Whitelist.dm Fix ICPs now for whitelist. --- code/game/jobs/whitelist.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/jobs/whitelist.dm b/code/game/jobs/whitelist.dm index 453104c0..edcf82ce 100644 --- a/code/game/jobs/whitelist.dm +++ b/code/game/jobs/whitelist.dm @@ -36,8 +36,8 @@ var/list/whitelist = list() return 1 if(species == "human" || species == "Human") return 1 - if(species == "machine" || species == "Machine") - return 1 +// if(species == "machine" || species == "Machine") +// return 1 if(check_rights(R_ADMIN, 0)) return 1 if(!alien_whitelist) From 1939011064927e06916a413cd9c0c6b43a49e459 Mon Sep 17 00:00:00 2001 From: skull132 Date: Fri, 18 Apr 2014 16:16:10 +0300 Subject: [PATCH 5/5] Exoskeletons Now in the circuit printer for construction. --- code/modules/research/designs.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index e2a32d51..daa49123 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -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 ///////////// ////////////////////////////////////////