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 9d86f97b..5c817a9e 100644 Binary files a/icons/mecha/mech_construction.dmi and b/icons/mecha/mech_construction.dmi differ diff --git a/icons/mecha/mecha.dmi b/icons/mecha/mecha.dmi index 26f17751..13445166 100644 Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ