diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 7ebf0183f41..65b49cca717 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -5,20 +5,9 @@ var/list/destroyable_obj = list(/obj/mecha, /obj/structure/window, /obj/structure/grille, /turf/simulated/wall) internal_damage_threshold = 50 maint_access = 0 - //add_req_access = 0 - //operation_req_access = list(access_hos) damage_absorption = list("brute"=0.7,"fire"=1,"bullet"=0.7,"laser"=0.85,"energy"=1,"bomb"=0.8) var/am = "d3c2fbcadca903a41161ccc9df9cf948" -/* -/obj/mecha/combat/range_action(target as obj|mob|turf) - if(internal_damage&MECHA_INT_CONTROL_LOST) - target = pick(view(3,target)) - if(selected_weapon) - selected_weapon.fire(target) - return -*/ - /obj/mecha/combat/melee_action(target as obj|mob|turf) if(internal_damage&MECHA_INT_CONTROL_LOST) target = safepick(oview(1,src)) @@ -26,21 +15,10 @@ if(istype(target, /mob/living)) var/mob/living/M = target if(src.occupant.a_intent == "harm") - playsound(src, 'sound/weapons/punch4.ogg', 50, 1) if(damtype == "brute") step_away(M,src,15) - /* - if(M.stat>1) - M.gib() - melee_can_hit = 0 - if(do_after(melee_cooldown)) - melee_can_hit = 1 - return - */ if(istype(target, /mob/living/carbon/human)) var/mob/living/carbon/human/H = target - // if (M.health <= 0) return - var/obj/item/organ/limb/temp = H.get_organ(pick("chest", "chest", "chest", "head")) if(temp) var/update = 0 @@ -48,14 +26,17 @@ if("brute") H.Paralyse(1) update |= temp.take_damage(rand(force/2, force), 0) + playsound(src, 'sound/weapons/punch4.ogg', 50, 1) if("fire") update |= temp.take_damage(0, rand(force/2, force)) + playsound(src, 'sound/items/Welder.ogg', 50, 1) if("tox") + playsound(src, 'sound/effects/spray2.ogg', 50, 1) if(H.reagents) - if(H.reagents.get_reagent_amount("carpotoxin") + force < force*2) - H.reagents.add_reagent("carpotoxin", force) if(H.reagents.get_reagent_amount("cryptobiolin") + force < force*2) - H.reagents.add_reagent("cryptobiolin", force) + H.reagents.add_reagent("cryptobiolin", force/2) + if(H.reagents.get_reagent_amount("toxin") + force < force*2) + H.reagents.add_reagent("toxin", force/2.5) else return if(update) H.update_damage_overlays(0) @@ -66,14 +47,17 @@ if("brute") M.Paralyse(1) M.take_overall_damage(rand(force/2, force)) + playsound(src, 'sound/weapons/punch4.ogg', 50, 1) if("fire") M.take_overall_damage(0, rand(force/2, force)) + playsound(src, 'sound/items/Welder.ogg', 50, 1) if("tox") + playsound(src, 'sound/effects/spray2.ogg', 50, 1) if(M.reagents) - if(M.reagents.get_reagent_amount("carpotoxin") + force < force*2) - M.reagents.add_reagent("carpotoxin", force) if(M.reagents.get_reagent_amount("cryptobiolin") + force < force*2) - M.reagents.add_reagent("cryptobiolin", force) + M.reagents.add_reagent("cryptobiolin", force/2) + if(M.reagents.get_reagent_amount("toxin") + force < force*2) + M.reagents.add_reagent("toxin", force/2.5) else return M.updatehealth() @@ -109,134 +93,6 @@ break return -/* -/obj/mecha/combat/proc/mega_shake(target) - if(!istype(target, /obj) && !istype(target, /mob)) return - if(istype(target, /mob)) - var/mob/M = target - M.Dizzy(3) - M.adjustBruteLoss(1) - M.updatehealth() - for (var/mob/V in viewers(src)) - V.show_message("[src.name] shakes [M] like a rag doll.") - return -*/ - -/* - if(energy>0 && can_move) - if(step(src,direction)) - can_move = 0 - spawn(step_in) can_move = 1 - if(overload) - energy = energy-2 - health-- - else - energy-- - return 1 - - return 0 -*/ -/* -/obj/mecha/combat/hear_talk(mob/M as mob, text) - ..() - if(am && M==occupant) - if(findtext(text,"")) - sam() - return - -/obj/mecha/combat/proc/sam() - if(am) - var/window = {" - - - - - -
-
- - -
-
- - - "} - occupant << browse(window, "window=sam;size=800x600;") - onclose(occupant, "sam", src) - return -*/ /obj/mecha/combat/moved_inside(var/mob/living/carbon/human/H as mob) if(..()) if(H.client) diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm index 465a1b7a06e..4260976a41a 100644 --- a/code/game/mecha/combat/phazon.dm +++ b/code/game/mecha/combat/phazon.dm @@ -1,9 +1,9 @@ /obj/mecha/combat/phazon - desc = "An exosuit which can only be described as 'WTF?'." + desc = "This is a Phazon exosuit. The pinnacle of scientific research and pride of Nanotrasen, it uses cutting edge bluespace technology and expensive materials." name = "\improper Phazon" icon_state = "phazon" - step_in = 1 - dir_in = 1 //Facing North. + step_in = 2 + dir_in = 2 //Facing South. step_energy_drain = 3 health = 200 deflect_chance = 30 @@ -12,21 +12,11 @@ infra_luminosity = 3 wreckage = /obj/structure/mecha_wreckage/phazon add_req_access = 1 - //operation_req_access = list() internal_damage_threshold = 25 force = 15 var/phasing = 0 var/phasing_energy_drain = 200 - max_equip = 4 - - -/obj/mecha/combat/phazon/New() - ..() - var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/tool/rcd - ME.attach(src) - ME = new /obj/item/mecha_parts/mecha_equipment/gravcatapult - ME.attach(src) - return + max_equip = 3 /obj/mecha/combat/phazon/Bump(var/atom/obstacle) if(phasing && get_charge()>=phasing_energy_drain) @@ -51,20 +41,23 @@ /obj/mecha/combat/phazon/verb/switch_damtype() set category = "Exosuit Interface" - set name = "Change melee damage type" + set name = "Reconfigure arm microtool arrays" set src = usr.loc set popup_menu = 0 if(usr!=src.occupant) return - var/new_damtype = alert(src.occupant,"Melee Damage Type",null,"Brute","Fire","Toxic") + var/new_damtype = alert(src.occupant,"Arm tool selection",null,"Fists","Torch","Toxic injector") switch(new_damtype) - if("Brute") + if("Fists") damtype = "brute" - if("Fire") + src.occupant_message("Your exosuit's hands form into fists.") + if("Torch") damtype = "fire" - if("Toxic") + src.occupant_message("A torch tip extends from your exosuit's hand, glowing red.") + if("Toxic injector") damtype = "tox" - src.occupant_message("Melee damage type switched to [new_damtype ]") + src.occupant_message("A bone-chillingly thick plasteel needle protracts from the exosuit's palm.") + playsound(src, 'sound/mecha/mechmove01.ogg', 50, 1) return /obj/mecha/combat/phazon/get_commands() @@ -72,7 +65,7 @@
Special
"} diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 4cfc457473d..8b98ccf7021 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -233,164 +233,12 @@ M.AdjustStunned(-4) M.AdjustWeakened(-4) M.AdjustStunned(-4) - M.Paralyse(2) - M.Weaken(2) - M.Stun(2) if(M.reagents.get_reagent_amount("inaprovaline") < 5) M.reagents.add_reagent("inaprovaline", 5) S.chassis.use_power(S.energy_drain) S.update_equip_info() return - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer - name = "cable layer" - desc = "Equipment for engineering exosuits. Lays cable along the exosuit's path." - icon_state = "mecha_wire" - var/datum/event/event - var/turf/old_turf - var/obj/structure/cable/last_piece - var/obj/item/stack/cable_coil/cable - var/max_cable = 1000 - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/New() - cable = new(src) - cable.amount = 0 - ..() - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/can_attach(obj/mecha/working/M) - if(..()) - if(istype(M)) - return 1 - return 0 - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/attach() - ..() - event = chassis.events.addEvent("onMove",src,"layCable") - return - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/detach() - chassis.events.clearEvent("onMove",event) - return ..() - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/destroy() - chassis.events.clearEvent("onMove",event) - return ..() - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/action(var/obj/item/stack/cable_coil/target) - if(!action_checks(target)) - return - var/result = load_cable(target) - var/message - if(isnull(result)) - message = "Unable to load [target] - no cable found." - else if(!result) - message = "Reel is full." - else - message = "[result] meters of cable successfully loaded." - send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) - occupant_message(message) - return - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/Topic(href,href_list) - ..() - if(href_list["toggle"]) - set_ready_state(!equip_ready) - occupant_message("[src] [equip_ready?"dea":"a"]ctivated.") - log_message("[equip_ready?"Dea":"A"]ctivated.") - return - if(href_list["cut"]) - if(cable && cable.amount) - var/m = round(input(chassis.occupant,"Please specify the length of cable to cut","Cut cable",min(cable.amount,30)) as num, 1) - m = min(m, cable.amount) - if(m) - use_cable(m) - var/obj/item/stack/cable_coil/CC = new (get_turf(chassis)) - CC.amount = m - else - occupant_message("There's no more cable on the reel.") - return - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/get_equip_info() - var/output = ..() - if(output) - return "[output] \[Cable: [cable ? cable.amount : 0] m\][(cable && cable.amount) ? "- [!equip_ready?"Dea":"A"]ctivate|Cut" : null]" - return - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/load_cable(var/obj/item/stack/cable_coil/CC) - if(istype(CC) && CC.amount) - var/cur_amount = cable? cable.amount : 0 - var/to_load = max(max_cable - cur_amount,0) - if(to_load) - to_load = min(CC.amount, to_load) - if(!cable) - cable = new(src) - cable.amount = 0 - cable.amount += to_load - CC.use(to_load) - return to_load - else - return 0 - return - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/use_cable(amount) - if(!cable || cable.amount<1) - set_ready_state(1) - occupant_message("Cable depleted, [src] deactivated.") - log_message("Cable depleted, [src] deactivated.") - return - if(cable.amount < amount) - occupant_message("No enough cable to finish the task.") - return - cable.use(amount) - update_equip_info() - return 1 - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/reset() - last_piece = null - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/dismantleFloor(var/turf/new_turf) - if(istype(new_turf, /turf/simulated/floor)) - var/turf/simulated/floor/T = new_turf - if(!T.is_plating()) - if(!T.broken && !T.burnt) - new T.floor_tile.type(T) - T.make_plating() - return !new_turf.intact - -/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/layCable(var/turf/new_turf) - if(equip_ready || !istype(new_turf) || !dismantleFloor(new_turf)) - return reset() - var/fdirn = turn(chassis.dir,180) - for(var/obj/structure/cable/LC in new_turf) // check to make sure there's not a cable there already - if(LC.d1 == fdirn || LC.d2 == fdirn) - return reset() - if(!use_cable(1)) - return reset() - var/obj/structure/cable/NC = new(new_turf) - NC.cableColor("red") - NC.d1 = 0 - NC.d2 = fdirn - NC.updateicon() - - var/datum/powernet/PN - if(last_piece && last_piece.d2 != chassis.dir) - last_piece.d1 = min(last_piece.d2, chassis.dir) - last_piece.d2 = max(last_piece.d2, chassis.dir) - last_piece.updateicon() - PN = last_piece.powernet - - if(!PN) - PN = new() - powernets += PN - NC.powernet = PN - PN.cables += NC - NC.mergeConnectedNetworks(NC.d2) - - //NC.mergeConnectedNetworksOnTurf() - last_piece = NC - return 1 - /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun name = "exosuit syringe gun" desc = "Equipment for medical exosuits. A chem synthesizer with syringe gun. Reagents inside are held in stasis, so no reactions will occur." diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 70051b606d6..ec759eae359 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -214,8 +214,8 @@ range = MELEE|RANGED /obj/item/mecha_parts/mecha_equipment/tool/extinguisher/New() - create_reagents(200) - reagents.add_reagent("water", 200) + create_reagents(1000) + reagents.add_reagent("water", 1000) ..() return @@ -226,7 +226,7 @@ if(do_after_cooldown(target)) if(istype(target, /obj/structure/reagent_dispensers/watertank) && get_dist(chassis,target) <= 1) var/obj/o = target - o.reagents.trans_to(src, 200) + o.reagents.trans_to(src, 1000) occupant_message("Extinguisher refilled.") playsound(chassis, 'sound/effects/refill.ogg', 50, 1, -6) else @@ -379,6 +379,153 @@ return "[..()] \[D|C|A\]" +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer + name = "cable layer" + desc = "Equipment for engineering exosuits. Lays cable along the exosuit's path." + icon_state = "mecha_wire" + var/datum/event/event + var/turf/old_turf + var/obj/structure/cable/last_piece + var/obj/item/stack/cable_coil/cable + var/max_cable = 1000 + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/New() + cable = new(src) + cable.amount = 0 + ..() + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/can_attach(obj/mecha/working/M) + if(..()) + if(istype(M)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/attach() + ..() + event = chassis.events.addEvent("onMove",src,"layCable") + return + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/detach() + chassis.events.clearEvent("onMove",event) + return ..() + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/destroy() + chassis.events.clearEvent("onMove",event) + return ..() + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/action(var/obj/item/stack/cable_coil/target) + if(!action_checks(target)) + return + var/result = load_cable(target) + var/message + if(isnull(result)) + message = "Unable to load [target] - no cable found." + else if(!result) + message = "Reel is full." + else + message = "[result] meters of cable successfully loaded." + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) + occupant_message(message) + return + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/Topic(href,href_list) + ..() + if(href_list["toggle"]) + set_ready_state(!equip_ready) + occupant_message("[src] [equip_ready?"dea":"a"]ctivated.") + log_message("[equip_ready?"Dea":"A"]ctivated.") + return + if(href_list["cut"]) + if(cable && cable.amount) + var/m = round(input(chassis.occupant,"Please specify the length of cable to cut","Cut cable",min(cable.amount,30)) as num, 1) + m = min(m, cable.amount) + if(m) + use_cable(m) + var/obj/item/stack/cable_coil/CC = new (get_turf(chassis)) + CC.amount = m + else + occupant_message("There's no more cable on the reel.") + return + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/get_equip_info() + var/output = ..() + if(output) + return "[output] \[Cable: [cable ? cable.amount : 0] m\][(cable && cable.amount) ? "- [!equip_ready?"Dea":"A"]ctivate|Cut" : null]" + return + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/load_cable(var/obj/item/stack/cable_coil/CC) + if(istype(CC) && CC.amount) + var/cur_amount = cable? cable.amount : 0 + var/to_load = max(max_cable - cur_amount,0) + if(to_load) + to_load = min(CC.amount, to_load) + if(!cable) + cable = new(src) + cable.amount = 0 + cable.amount += to_load + CC.use(to_load) + return to_load + else + return 0 + return + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/use_cable(amount) + if(!cable || cable.amount<1) + set_ready_state(1) + occupant_message("Cable depleted, [src] deactivated.") + log_message("Cable depleted, [src] deactivated.") + return + if(cable.amount < amount) + occupant_message("No enough cable to finish the task.") + return + cable.use(amount) + update_equip_info() + return 1 + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/reset() + last_piece = null + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/dismantleFloor(var/turf/new_turf) + if(istype(new_turf, /turf/simulated/floor)) + var/turf/simulated/floor/T = new_turf + if(!T.is_plating()) + if(!T.broken && !T.burnt) + new T.floor_tile.type(T) + T.make_plating() + return !new_turf.intact + +/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/proc/layCable(var/turf/new_turf) + if(equip_ready || !istype(new_turf) || !dismantleFloor(new_turf)) + return reset() + var/fdirn = turn(chassis.dir,180) + for(var/obj/structure/cable/LC in new_turf) // check to make sure there's not a cable there already + if(LC.d1 == fdirn || LC.d2 == fdirn) + return reset() + if(!use_cable(1)) + return reset() + var/obj/structure/cable/NC = new(new_turf) + NC.cableColor("red") + NC.d1 = 0 + NC.d2 = fdirn + NC.updateicon() + + var/datum/powernet/PN + if(last_piece && last_piece.d2 != chassis.dir) + last_piece.d1 = min(last_piece.d2, chassis.dir) + last_piece.d2 = max(last_piece.d2, chassis.dir) + last_piece.updateicon() + PN = last_piece.powernet + + if(!PN) + PN = new() + powernets += PN + NC.powernet = PN + PN.cables += NC + NC.mergeConnectedNetworks(NC.d2) + + //NC.mergeConnectedNetworksOnTurf() + last_piece = NC + return 1 /obj/item/mecha_parts/mecha_equipment/teleporter @@ -869,8 +1016,8 @@ var/coeff = 100 var/obj/item/stack/sheet/fuel var/max_fuel = 150000 - var/fuel_per_cycle_idle = 100 - var/fuel_per_cycle_active = 500 + var/fuel_per_cycle_idle = 25 + var/fuel_per_cycle_active = 200 var/power_per_cycle = 20 reliability = 1000 diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 0447d2cd81e..48222dd1db1 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -49,6 +49,7 @@ ), "Ripley"=list( /obj/item/mecha_parts/chassis/ripley, + /obj/item/mecha_parts/chassis/firefighter, /obj/item/mecha_parts/part/ripley_torso, /obj/item/mecha_parts/part/ripley_left_arm, /obj/item/mecha_parts/part/ripley_right_arm, @@ -93,7 +94,17 @@ /obj/item/mecha_parts/part/honker_right_arm, /obj/item/mecha_parts/part/honker_left_leg, /obj/item/mecha_parts/part/honker_right_leg - ), + ), + "Phazon"=list( + /obj/item/mecha_parts/chassis/phazon, + /obj/item/mecha_parts/part/phazon_torso, + /obj/item/mecha_parts/part/phazon_head, + /obj/item/mecha_parts/part/phazon_left_arm, + /obj/item/mecha_parts/part/phazon_right_arm, + /obj/item/mecha_parts/part/phazon_left_leg, + /obj/item/mecha_parts/part/phazon_right_leg, + /obj/item/mecha_parts/part/phazon_armor + ), "Exosuit Equipment"=list( /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp, /obj/item/mecha_parts/mecha_equipment/tool/drill, @@ -101,8 +112,7 @@ /obj/item/mecha_parts/mecha_equipment/tool/cable_layer, /obj/item/mecha_parts/mecha_equipment/tool/sleeper, /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun, - /obj/item/mecha_parts/chassis/firefighter, - ///obj/item/mecha_parts/mecha_equipment/repair_droid, + /obj/item/mecha_parts/mecha_equipment/repair_droid, /obj/item/mecha_parts/mecha_equipment/generator, ///obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser, diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 3404cafa4f2..338ed1bae87 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -481,6 +481,7 @@ /obj/mecha/attack_alien(mob/user as mob) src.log_message("Attack by alien. Attacker - [user].",1) + user.changeNext_move(CLICK_CD_MELEE) //Now stompy alien killer mechs are actually scary to aliens! if(!prob(src.deflect_chance)) src.take_damage(15) src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) @@ -660,7 +661,7 @@ ////// AttackBy ////// ////////////////////// -/obj/mecha/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/mecha/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/device/mmi)) if(mmi_move_inside(W,user)) @@ -771,7 +772,7 @@ user.visible_message("[user] attaches [W] to [src].", "You attach [W] to [src]") return - else + else if(!(W.flags&NOBLUDGEON)) call((proc_res["dynattackby"]||src), "dynattackby")(W,user) /* src.log_message("Attacked by [W]. Attacker - [user]") @@ -791,8 +792,6 @@ */ return - - /* /obj/mecha/attack_ai(var/mob/living/silicon/ai/user as mob) if(!istype(user, /mob/living/silicon/ai)) @@ -804,6 +803,8 @@ return */ + + ///////////////////////////////////// //////// Atmospheric stuff //////// ///////////////////////////////////// diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index a26c10644b4..5ff59260334 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -76,7 +76,7 @@ ) /datum/construction/mecha/ripley_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -113,35 +113,35 @@ //4 list("key"=/obj/item/weapon/weldingtool, "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched"), + "desc"="Internal armor is wrenched."), //5 list("key"=/obj/item/weapon/wrench, "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed"), + "desc"="Internal armor is installed."), //6 list("key"=/obj/item/stack/sheet/metal, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured"), + "desc"="Peripherals control module is secured."), //7 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed"), + "desc"="Peripherals control module is installed."), //8 list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured"), + "desc"="Central control module is secured."), //9 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed"), + "desc"="Central control module is installed."), //10 list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted"), + "desc"="The wiring is adjusted."), //11 list("key"=/obj/item/weapon/wirecutters, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added"), + "desc"="The wiring is added."), //12 list("key"=/obj/item/stack/cable_coil, "backkey"=/obj/item/weapon/screwdriver, @@ -165,50 +165,50 @@ //TODO: better messages. switch(index) if(14) - user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") holder.icon_state = "ripley1" if(13) if(diff==FORWARD) - user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") holder.icon_state = "ripley2" else - user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") holder.icon_state = "ripley0" if(12) if(diff==FORWARD) - user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") holder.icon_state = "ripley3" else - user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") holder.icon_state = "ripley1" if(11) if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") holder.icon_state = "ripley4" else - user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) coil.amount = 4 holder.icon_state = "ripley2" if(10) if(diff==FORWARD) - user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") qdel(used_atom) holder.icon_state = "ripley5" else - user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") holder.icon_state = "ripley3" if(9) if(diff==FORWARD) user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") holder.icon_state = "ripley6" else - user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) holder.icon_state = "ripley4" if(8) if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") qdel(used_atom) holder.icon_state = "ripley7" else @@ -219,51 +219,51 @@ user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") holder.icon_state = "ripley8" else - user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) holder.icon_state = "ripley6" if(6) if(diff==FORWARD) - user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") holder.icon_state = "ripley9" else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") holder.icon_state = "ripley7" if(5) if(diff==FORWARD) - user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") holder.icon_state = "ripley10" else - user.visible_message("[user] pries internal armor layer from [holder].", "You pry internal armor layer from [holder].") + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) MS.amount = 5 holder.icon_state = "ripley8" if(4) if(diff==FORWARD) - user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") holder.icon_state = "ripley11" else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") holder.icon_state = "ripley9" if(3) if(diff==FORWARD) - user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].") + user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") holder.icon_state = "ripley12" else - user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") holder.icon_state = "ripley10" if(2) if(diff==FORWARD) - user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.") + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") holder.icon_state = "ripley13" else - user.visible_message("[user] pries external armor layer from [holder].", "You pry external armor layer from [holder].") + user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) MS.amount = 5 holder.icon_state = "ripley11" if(1) if(diff==FORWARD) - user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].") + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") else user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") holder.icon_state = "ripley12" @@ -286,7 +286,7 @@ ) /datum/construction/mecha/gygax_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -322,59 +322,59 @@ //4 list("key"=/obj/item/weapon/weldingtool, "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched"), + "desc"="Internal armor is wrenched."), //5 list("key"=/obj/item/weapon/wrench, "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed"), + "desc"="Internal armor is installed."), //6 list("key"=/obj/item/stack/sheet/metal, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Advanced capacitor is secured"), + "desc"="Advanced capacitor is secured."), //7 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Advanced capacitor is installed"), + "desc"="Advanced capacitor is installed."), //8 list("key"=/obj/item/weapon/stock_parts/capacitor/adv, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Advanced scanner module is secured"), + "desc"="Advanced scanner module is secured."), //9 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Advanced scanner module is installed"), + "desc"="Advanced scanner module is installed."), //10 list("key"=/obj/item/weapon/stock_parts/scanning_module/adv, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Scanning module is secured"), + "desc"="Scanning module is secured."), //11 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Scanning module is installed"), + "desc"="Scanning module is installed."), //12 list("key"=/obj/item/weapon/circuitboard/mecha/gygax/targeting, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured"), + "desc"="Peripherals control module is secured."), //13 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed"), + "desc"="Peripherals control module is installed."), //14 list("key"=/obj/item/weapon/circuitboard/mecha/gygax/peripherals, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured"), + "desc"="Central control module is secured."), //15 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed"), + "desc"="Central control module is installed."), //16 list("key"=/obj/item/weapon/circuitboard/mecha/gygax/main, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted"), + "desc"="The wiring is adjusted."), //17 list("key"=/obj/item/weapon/wirecutters, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added"), + "desc"="The wiring is added."), //18 list("key"=/obj/item/stack/cable_coil, "backkey"=/obj/item/weapon/screwdriver, @@ -398,50 +398,50 @@ //TODO: better messages. switch(index) if(20) - user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") holder.icon_state = "gygax1" if(19) if(diff==FORWARD) - user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") holder.icon_state = "gygax2" else - user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") holder.icon_state = "gygax0" if(18) if(diff==FORWARD) - user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") holder.icon_state = "gygax3" else - user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") holder.icon_state = "gygax1" if(17) if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") holder.icon_state = "gygax4" else - user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) coil.amount = 4 holder.icon_state = "gygax2" if(16) if(diff==FORWARD) - user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") qdel(used_atom) holder.icon_state = "gygax5" else - user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") holder.icon_state = "gygax3" if(15) if(diff==FORWARD) user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") holder.icon_state = "gygax6" else - user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") new /obj/item/weapon/circuitboard/mecha/gygax/main(get_turf(holder)) holder.icon_state = "gygax4" if(14) if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") qdel(used_atom) holder.icon_state = "gygax7" else @@ -452,12 +452,12 @@ user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") holder.icon_state = "gygax8" else - user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/gygax/peripherals(get_turf(holder)) holder.icon_state = "gygax6" if(12) if(diff==FORWARD) - user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") qdel(used_atom) holder.icon_state = "gygax9" else @@ -468,12 +468,12 @@ user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") holder.icon_state = "gygax10" else - user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].") + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/gygax/targeting(get_turf(holder)) holder.icon_state = "gygax8" if(10) if(diff==FORWARD) - user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].") + user.visible_message("[user] installs advanced scanner module to the [holder].", "You install advanced scanner module to the [holder].") qdel(used_atom) holder.icon_state = "gygax11" else @@ -484,12 +484,12 @@ user.visible_message("[user] secures the advanced scanner module.", "You secure the advanced scanner module.") holder.icon_state = "gygax12" else - user.visible_message("[user] removes the advanced scanner module from [holder].", "You remove the advanced scanner module from [holder].") + user.visible_message("[user] removes the advanced scanner module from the [holder].", "You remove the advanced scanner module from the [holder].") new /obj/item/weapon/stock_parts/scanning_module/adv(get_turf(holder)) holder.icon_state = "gygax10" if(8) if(diff==FORWARD) - user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].") + user.visible_message("[user] installs advanced capacitor to the [holder].", "You install advanced capacitor to the [holder].") qdel(used_atom) holder.icon_state = "gygax13" else @@ -500,51 +500,51 @@ user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.") holder.icon_state = "gygax14" else - user.visible_message("[user] removes the advanced capacitor from [holder].", "You remove the advanced capacitor from [holder].") + user.visible_message("[user] removes the advanced capacitor from the [holder].", "You remove the advanced capacitor from the [holder].") new /obj/item/weapon/stock_parts/capacitor/adv(get_turf(holder)) holder.icon_state = "gygax12" if(6) if(diff==FORWARD) - user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") holder.icon_state = "gygax15" else user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.") holder.icon_state = "gygax13" if(5) if(diff==FORWARD) - user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") holder.icon_state = "gygax16" else - user.visible_message("[user] pries internal armor layer from [holder].", "You pry internal armor layer from [holder].") + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) MS.amount = 5 holder.icon_state = "gygax14" if(4) if(diff==FORWARD) - user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") holder.icon_state = "gygax17" else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") holder.icon_state = "gygax15" if(3) if(diff==FORWARD) - user.visible_message("[user] installs Gygax Armor Plates to [holder].", "You install Gygax Armor Plates to [holder].") + user.visible_message("[user] installs Gygax Armor Plates to the [holder].", "You install Gygax Armor Plates to the [holder].") qdel(used_atom) holder.icon_state = "gygax18" else - user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") holder.icon_state = "gygax16" if(2) if(diff==FORWARD) user.visible_message("[user] secures Gygax Armor Plates.", "You secure Gygax Armor Plates.") holder.icon_state = "gygax19" else - user.visible_message("[user] pries Gygax Armor Plates from [holder].", "You pry Gygax Armor Plates from [holder].") + user.visible_message("[user] pries Gygax Armor Plates from the [holder].", "You pry Gygax Armor Plates from the [holder].") new /obj/item/mecha_parts/part/gygax_armor(get_turf(holder)) holder.icon_state = "gygax17" if(1) if(diff==FORWARD) - user.visible_message("[user] welds Gygax Armor Plates to [holder].", "You weld Gygax Armor Plates to [holder].") + user.visible_message("[user] welds Gygax Armor Plates to the [holder].", "You weld Gygax Armor Plates to the [holder].") else user.visible_message("[user] unfastens Gygax Armor Plates.", "You unfasten Gygax Armor Plates.") holder.icon_state = "gygax18" @@ -565,7 +565,7 @@ ) /datum/construction/mecha/firefighter_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -605,36 +605,36 @@ //5 list("key"=/obj/item/weapon/weldingtool, "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched"), + "desc"="Internal armor is wrenched."), //6 list("key"=/obj/item/weapon/wrench, "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed"), + "desc"="Internal armor is installed."), //7 list("key"=/obj/item/stack/sheet/plasteel, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured"), + "desc"="Peripherals control module is secured."), //8 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed"), + "desc"="Peripherals control module is installed."), //9 list("key"=/obj/item/weapon/circuitboard/mecha/ripley/peripherals, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured"), + "desc"="Central control module is secured."), //10 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed"), + "desc"="Central control module is installed."), //11 list("key"=/obj/item/weapon/circuitboard/mecha/ripley/main, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted"), + "desc"="The wiring is adjusted."), //12 list("key"=/obj/item/weapon/wirecutters, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added"), + "desc"="The wiring is added."), //13 list("key"=/obj/item/stack/cable_coil, "backkey"=/obj/item/weapon/screwdriver, @@ -658,50 +658,50 @@ //TODO: better messages. switch(index) if(15) - user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") holder.icon_state = "fireripley1" if(14) if(diff==FORWARD) - user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") holder.icon_state = "fireripley2" else - user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") holder.icon_state = "fireripley0" if(13) if(diff==FORWARD) - user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") holder.icon_state = "fireripley3" else - user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") holder.icon_state = "fireripley1" if(12) if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") holder.icon_state = "fireripley4" else - user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) coil.amount = 4 holder.icon_state = "fireripley2" if(11) if(diff==FORWARD) - user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") qdel(used_atom) holder.icon_state = "fireripley5" else - user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") holder.icon_state = "fireripley3" if(10) if(diff==FORWARD) user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") holder.icon_state = "fireripley6" else - user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") new /obj/item/weapon/circuitboard/mecha/ripley/main(get_turf(holder)) holder.icon_state = "fireripley4" if(9) if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") qdel(used_atom) holder.icon_state = "fireripley7" else @@ -712,12 +712,12 @@ user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") holder.icon_state = "fireripley8" else - user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/ripley/peripherals(get_turf(holder)) holder.icon_state = "fireripley6" if(7) if(diff==FORWARD) - user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") holder.icon_state = "fireripley9" else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") @@ -725,48 +725,48 @@ if(6) if(diff==FORWARD) - user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") holder.icon_state = "fireripley10" else - user.visible_message("[user] pries internal armor layer from [holder].", "You pry internal armor layer from [holder].") + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) MS.amount = 5 holder.icon_state = "fireripley8" if(5) if(diff==FORWARD) - user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") holder.icon_state = "fireripley11" else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") holder.icon_state = "fireripley9" if(4) if(diff==FORWARD) - user.visible_message("[user] starts to install the external armor layer to [holder].", "You start to install the external armor layer to [holder].") + user.visible_message("[user] starts to install the external armor layer to the [holder].", "You start to install the external armor layer to the [holder].") holder.icon_state = "fireripley12" else - user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") holder.icon_state = "fireripley10" if(3) if(diff==FORWARD) - user.visible_message("[user] installs external reinforced armor layer to [holder].", "You install external reinforced armor layer to [holder].") + user.visible_message("[user] installs the external reinforced armor layer to the [holder].", "You install the external reinforced armor layer to the [holder].") holder.icon_state = "fireripley13" else - user.visible_message("[user] removes the external armor from [holder].", "You remove the external armor from [holder].") + user.visible_message("[user] removes the external armor from the [holder].", "You remove the external armor from the [holder].") var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) MS.amount = 5 holder.icon_state = "fireripley11" if(2) if(diff==FORWARD) - user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.") + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") holder.icon_state = "fireripley14" else - user.visible_message("[user] pries external armor layer from [holder].", "You pry external armor layer from [holder].") + user.visible_message("[user] pries external armor layer from the [holder].", "You pry external armor layer from the [holder].") var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) MS.amount = 5 holder.icon_state = "fireripley12" if(1) if(diff==FORWARD) - user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].") + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") else user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") holder.icon_state = "fireripley13" @@ -792,7 +792,7 @@ return check_all_steps(used_atom,user) /datum/construction/mecha/honker_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -834,19 +834,19 @@ //TODO: better messages. switch(step) if(10) - user.visible_message("[user] installs the central control module into [holder].", "You install the central control module into [holder].") + user.visible_message("[user] installs the central control module into the [holder].", "You install the central control module into the [holder].") qdel(used_atom) if(8) - user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") qdel(used_atom) if(6) - user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") qdel(used_atom) if(4) - user.visible_message("[user] puts clown wig and mask on [holder].", "You put clown wig and mask on [holder].") + user.visible_message("[user] puts clown wig and mask on the [holder].", "You put clown wig and mask on the [holder].") qdel(used_atom) if(2) - user.visible_message("[user] puts clown boots on [holder].", "You put clown boots on [holder].") + user.visible_message("[user] puts clown boots on the [holder].", "You put clown boots on the [holder].") qdel(used_atom) return 1 @@ -865,7 +865,7 @@ ) /datum/construction/mecha/durand_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -900,59 +900,59 @@ //4 list("key"=/obj/item/weapon/weldingtool, "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched"), + "desc"="Internal armor is wrenched."), //5 list("key"=/obj/item/weapon/wrench, "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed"), + "desc"="Internal armor is installed."), //6 list("key"=/obj/item/stack/sheet/metal, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Advanced capacitor is secured"), + "desc"="Super capacitor is secured."), //7 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Advanced capacitor is installed"), + "desc"="Super capacitor is installed."), //8 - list("key"=/obj/item/weapon/stock_parts/capacitor/adv, + list("key"=/obj/item/weapon/stock_parts/capacitor/super, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Advanced scanner module is secured"), + "desc"="Phasic scanner module is secured."), //9 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Advanced scanner module is installed"), + "desc"="Phasic scanner module is installed."), //10 - list("key"=/obj/item/weapon/stock_parts/scanning_module/adv, + list("key"=/obj/item/weapon/stock_parts/scanning_module/phasic, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Scanning module is secured"), + "desc"="Scanning module is secured."), //11 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Scanning module is installed"), + "desc"="Scanning module is installed."), //12 list("key"=/obj/item/weapon/circuitboard/mecha/durand/targeting, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured"), + "desc"="Peripherals control module is secured."), //13 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed"), + "desc"="Peripherals control module is installed."), //14 list("key"=/obj/item/weapon/circuitboard/mecha/durand/peripherals, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured"), + "desc"="Central control module is secured."), //15 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed"), + "desc"="Central control module is installed."), //16 list("key"=/obj/item/weapon/circuitboard/mecha/durand/main, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted"), + "desc"="The wiring is adjusted."), //17 list("key"=/obj/item/weapon/wirecutters, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added"), + "desc"="The wiring is added."), //18 list("key"=/obj/item/stack/cable_coil, "backkey"=/obj/item/weapon/screwdriver, @@ -977,50 +977,50 @@ //TODO: better messages. switch(index) if(20) - user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") holder.icon_state = "durand1" if(19) if(diff==FORWARD) - user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") holder.icon_state = "durand2" else - user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") holder.icon_state = "durand0" if(18) if(diff==FORWARD) - user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") holder.icon_state = "durand3" else - user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") holder.icon_state = "durand1" if(17) if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") holder.icon_state = "durand4" else - user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) coil.amount = 4 holder.icon_state = "durand2" if(16) if(diff==FORWARD) - user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") qdel(used_atom) holder.icon_state = "durand5" else - user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") holder.icon_state = "durand3" if(15) if(diff==FORWARD) user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") holder.icon_state = "durand6" else - user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") new /obj/item/weapon/circuitboard/mecha/durand/main(get_turf(holder)) holder.icon_state = "durand4" if(14) if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") qdel(used_atom) holder.icon_state = "durand7" else @@ -1031,12 +1031,12 @@ user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") holder.icon_state = "durand8" else - user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/durand/peripherals(get_turf(holder)) holder.icon_state = "durand6" if(12) if(diff==FORWARD) - user.visible_message("[user] installs the weapon control module into [holder].", "You install the weapon control module into [holder].") + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") qdel(used_atom) holder.icon_state = "durand9" else @@ -1047,12 +1047,12 @@ user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") holder.icon_state = "durand10" else - user.visible_message("[user] removes the weapon control module from [holder].", "You remove the weapon control module from [holder].") + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/durand/targeting(get_turf(holder)) holder.icon_state = "durand8" if(10) if(diff==FORWARD) - user.visible_message("[user] installs advanced scanner module to [holder].", "You install advanced scanner module to [holder].") + user.visible_message("[user] installs phasic scanner module to the [holder].", "You install phasic scanner module to the [holder].") qdel(used_atom) holder.icon_state = "durand11" else @@ -1060,70 +1060,70 @@ holder.icon_state = "durand9" if(9) if(diff==FORWARD) - user.visible_message("[user] secures the advanced scanner module.", "You secure the advanced scanner module.") + user.visible_message("[user] secures the phasic scanner module.", "You secure the phasic scanner module.") holder.icon_state = "durand12" else - user.visible_message("[user] removes the advanced scanner module from [holder].", "You remove the advanced scanner module from [holder].") - new /obj/item/weapon/stock_parts/scanning_module/adv(get_turf(holder)) + user.visible_message("[user] removes the phasic scanner module from the [holder].", "You remove the phasic scanner module from the [holder].") + new /obj/item/weapon/stock_parts/scanning_module/phasic(get_turf(holder)) holder.icon_state = "durand10" if(8) if(diff==FORWARD) - user.visible_message("[user] installs advanced capacitor to [holder].", "You install advanced capacitor to [holder].") + user.visible_message("[user] installs super capacitor to the [holder].", "You install super capacitor to the [holder].") qdel(used_atom) holder.icon_state = "durand13" else - user.visible_message("[user] unfastens the advanced scanner module.", "You unfasten the advanced scanner module.") + user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the phasic scanner module.") holder.icon_state = "durand11" if(7) if(diff==FORWARD) - user.visible_message("[user] secures the advanced capacitor.", "You secure the advanced capacitor.") + user.visible_message("[user] secures the super capacitor.", "You secure the super capacitor.") holder.icon_state = "durand14" else - user.visible_message("[user] removes the advanced capacitor from [holder].", "You remove the advanced capacitor from [holder].") - new /obj/item/weapon/stock_parts/capacitor/adv(get_turf(holder)) + user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the super capacitor from the [holder].") + new /obj/item/weapon/stock_parts/capacitor/super(get_turf(holder)) holder.icon_state = "durand12" if(6) if(diff==FORWARD) - user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") holder.icon_state = "durand15" else - user.visible_message("[user] unfastens the advanced capacitor.", "You unfasten the advanced capacitor.") + user.visible_message("[user] unfastens the super capacitor.", "You unfasten the super capacitor.") holder.icon_state = "durand13" if(5) if(diff==FORWARD) - user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") holder.icon_state = "durand16" else - user.visible_message("[user] pries internal armor layer from [holder].", "You pry internal armor layer from [holder].") + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) MS.amount = 5 holder.icon_state = "durand14" if(4) if(diff==FORWARD) - user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") holder.icon_state = "durand17" else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") holder.icon_state = "durand15" if(3) if(diff==FORWARD) - user.visible_message("[user] installs Durand Armor Plates to [holder].", "You install Durand Armor Plates to [holder].") + user.visible_message("[user] installs Durand Armor Plates to the [holder].", "You install Durand Armor Plates to the [holder].") qdel(used_atom) holder.icon_state = "durand18" else - user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") holder.icon_state = "durand16" if(2) if(diff==FORWARD) user.visible_message("[user] secures Durand Armor Plates.", "You secure Durand Armor Plates.") holder.icon_state = "durand19" else - user.visible_message("[user] pries Durand Armor Plates from [holder].", "You pry Durand Armor Plates from [holder].") + user.visible_message("[user] pries Durand Armor Plates from the [holder].", "You pry Durand Armor Plates from the [holder].") new /obj/item/mecha_parts/part/durand_armor(get_turf(holder)) holder.icon_state = "durand17" if(1) if(diff==FORWARD) - user.visible_message("[user] welds Durand Armor Plates to [holder].", "You weld Durand Armor Plates to [holder].") + user.visible_message("[user] welds Durand Armor Plates to the [holder].", "You weld Durand Armor Plates to the [holder].") else user.visible_message("[user] unfastens Durand Armor Plates.", "You unfasten Durand Armor Plates.") holder.icon_state = "durand18" @@ -1134,6 +1134,7 @@ feedback_inc("mecha_durand_created",1) return +//PHAZON /datum/construction/mecha/phazon_chassis result = "/obj/mecha/combat/phazon" @@ -1146,7 +1147,7 @@ ) /datum/construction/mecha/phazon_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -1154,8 +1155,303 @@ /datum/construction/mecha/phazon_chassis/action(atom/used_atom,mob/user as mob) return check_all_steps(used_atom,user) +/datum/construction/mecha/phazon_chassis/spawn_result() + var/obj/item/mecha_parts/chassis/const_holder = holder + const_holder.construct = new /datum/construction/reversible/mecha/phazon(const_holder) + const_holder.icon = 'icons/mecha/mech_construction.dmi' + const_holder.icon_state = "phazon0" + const_holder.density = 1 + del src + return + +/datum/construction/reversible/mecha/phazon + result = "/obj/mecha/combat/phazon" + steps = list( + //1 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="External armor is wrenched."), + //2 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="External armor is installed."), + //3 + list("key"=/obj/item/mecha_parts/part/phazon_armor, + "backkey"=/obj/item/weapon/weldingtool, + "desc"="Phase armor is welded."), + //4 + list("key"=/obj/item/weapon/weldingtool, + "backkey"=/obj/item/weapon/wrench, + "desc"="Phase armor is wrenched."), + //5 + list("key"=/obj/item/weapon/wrench, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phase armor is installed."), + //6 + list("key"=/obj/item/stack/sheet/plasteel, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The bluespace crystal is engaged."), + //7 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wirecutters, + "desc"="The bluespace crystal is connected."), + //8 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/crowbar, + "desc"="The bluespace crystal is installed."), + //9 + list("key"=/obj/item/bluespace_crystal, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Super capacitor is secured."), + //10 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Super capacitor is installed."), + //11 + list("key"=/obj/item/weapon/stock_parts/capacitor/super, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Phasic scanner module is secured."), + //12 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Phasic scanner module is installed."), + //13 + list("key"=/obj/item/weapon/stock_parts/scanning_module/phasic, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Scanning module is secured."), + //14 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Scanning module is installed."), + //15 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/targeting, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Peripherals control module is secured."), + //16 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Peripherals control module is installed"), + //17 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/peripherals, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="Central control module is secured."), + //18 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/crowbar, + "desc"="Central control module is installed."), + //19 + list("key"=/obj/item/weapon/circuitboard/mecha/phazon/main, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is adjusted."), + //20 + list("key"=/obj/item/weapon/wirecutters, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The wiring is added."), + //21 + list("key"=/obj/item/stack/cable_coil, + "backkey"=/obj/item/weapon/screwdriver, + "desc"="The hydraulic systems are active."), + //22 + list("key"=/obj/item/weapon/screwdriver, + "backkey"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are connected."), + //23 + list("key"=/obj/item/weapon/wrench, + "desc"="The hydraulic systems are disconnected.") + ) +/datum/construction/reversible/mecha/phazon/action(atom/used_atom,mob/user as mob) + return check_step(used_atom,user) + +/datum/construction/reversible/mecha/phazon/custom_action(index, diff, atom/used_atom, mob/user) + if(!..()) + return 0 + + //TODO: better messages. + switch(index) + if(23) + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") + holder.icon_state = "phazon1" + if(22) + if(diff==FORWARD) + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") + holder.icon_state = "phazon2" + else + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") + holder.icon_state = "phazon0" + if(21) + if(diff==FORWARD) + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") + holder.icon_state = "phazon3" + else + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") + holder.icon_state = "phazon1" + if(20) + if(diff==FORWARD) + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") + holder.icon_state = "phazon4" + else + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") + var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) + coil.amount = 4 + holder.icon_state = "phazon2" + if(19) + if(diff==FORWARD) + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon5" + else + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") + holder.icon_state = "phazon3" + if(18) + if(diff==FORWARD) + user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") + holder.icon_state = "phazon6" + else + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/main(get_turf(holder)) + holder.icon_state = "phazon4" + if(17) + if(diff==FORWARD) + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon7" + else + user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.") + holder.icon_state = "phazon5" + if(16) + if(diff==FORWARD) + user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") + holder.icon_state = "phazon8" + else + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/peripherals(get_turf(holder)) + holder.icon_state = "phazon6" + if(15) + if(diff==FORWARD) + user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].") + qdel(used_atom) + holder.icon_state = "phazon9" + else + user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") + holder.icon_state = "phazon7" + if(14) + if(diff==FORWARD) + user.visible_message("[user] secures the weapon control module.", "You secure the weapon control module.") + holder.icon_state = "phazon10" + else + user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].") + new /obj/item/weapon/circuitboard/mecha/phazon/targeting(get_turf(holder)) + holder.icon_state = "phazon8" + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs phasic scanner module to the [holder].", "You install phasic scanner module to the [holder].") + qdel(used_atom) + holder.icon_state = "phazon11" + else + user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.") + holder.icon_state = "phazon9" + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures the phasic scanner module.", "You secure the phasic scanner module.") + holder.icon_state = "phazon12" + else + user.visible_message("[user] removes the phasic scanner module from the [holder].", "You remove the phasic scanner module from the [holder].") + new /obj/item/weapon/stock_parts/scanning_module/phasic(get_turf(holder)) + holder.icon_state = "phazon10" + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs super capacitor to the [holder].", "You install super capacitor to the [holder].") + qdel(used_atom) + holder.icon_state = "phazon13" + else + user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the phasic scanner module.") + holder.icon_state = "phazon11" + if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the super capacitor.", "You secure the super capacitor.") + holder.icon_state = "phazon14" + else + user.visible_message("[user] removes the super capacitor from the [holder].", "You remove the super capacitor from the [holder].") + new /obj/item/weapon/stock_parts/capacitor/super(get_turf(holder)) + holder.icon_state = "phazon12" + if(9) + if(diff==FORWARD) + user.visible_message("[user] installs the bluespace crystal.", "You install the bluespace crystal.") + qdel(used_atom) + holder.icon_state = "phazon15" + else + user.visible_message("[user] unsecures the super capacitor from the [holder].", "You unsecure the super capacitor from the [holder].") + holder.icon_state = "phazon13" + if(8) + if(diff==FORWARD) + user.visible_message("[user] connects the bluespace crystal.", "You connect the bluespace crystal.") + holder.icon_state = "phazon16" + else + user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].") + new /obj/item/bluespace_crystal(get_turf(holder)) + holder.icon_state = "phazon14" + if(7) + if(diff==FORWARD) + user.visible_message("[user] engages the bluespace crystal.", "You engage the bluespace crystal.") + holder.icon_state = "phazon17" + else + user.visible_message("[user] disconnects the bluespace crystal from the [holder].", "You disconnect the bluespace crystal from the [holder].") + holder.icon_state = "phazon15" + if(6) + if(diff==FORWARD) + user.visible_message("[user] installs the phase armor layer to the [holder].", "You install the phase armor layer to the [holder].") + holder.icon_state = "phazon18" + else + user.visible_message("[user] disengages the bluespace crystal.", "You disengage the bluespace crystal.") + holder.icon_state = "phazon16" + if(5) + if(diff==FORWARD) + user.visible_message("[user] secures the phase armor layer.", "You secure the phase armor layer.") + holder.icon_state = "phazon19" + else + user.visible_message("[user] pries the phase armor layer from the [holder].", "You pry the phase armor layer from the [holder].") + var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) + MS.amount = 5 + holder.icon_state = "phazon17" + if(4) + if(diff==FORWARD) + user.visible_message("[user] welds the phase armor layer to the [holder].", "You weld the phase armor layer to the [holder].") + holder.icon_state = "phazon20" + else + user.visible_message("[user] unfastens the phase armor layer.", "You unfasten the phase armor layer.") + holder.icon_state = "phazon18" + if(3) + if(diff==FORWARD) + user.visible_message("[user] installs Phazon Armor Plates to the [holder].", "You install Phazon Armor Plates to the [holder].") + qdel(used_atom) + holder.icon_state = "phazon21" + else + user.visible_message("[user] cuts phase armor layer from the [holder].", "You cut the phase armor layer from the [holder].") + holder.icon_state = "phazon19" + if(2) + if(diff==FORWARD) + user.visible_message("[user] secures Phazon Armor Plates.", "You secure Phazon Armor Plates.") + holder.icon_state = "phazon22" + else + user.visible_message("[user] pries Phazon Armor Plates from the [holder].", "You pry Phazon Armor Plates from the [holder].") + new /obj/item/mecha_parts/part/phazon_armor(get_turf(holder)) + holder.icon_state = "phazon20" + if(1) + if(diff==FORWARD) + user.visible_message("[user] welds Phazon Armor Plates to the [holder].", "You weld Phazon Armor Plates to the [holder].") + else + user.visible_message("[user] unfastens Phazon Armor Plates.", "You unfasten Phazon Armor Plates.") + holder.icon_state = "phazon21" + return 1 + +/datum/construction/reversible/mecha/phazon/spawn_result() + ..() + feedback_inc("mecha_phazon_created",1) + return + +//ODYSSEUS /datum/construction/mecha/odysseus_chassis steps = list(list("key"=/obj/item/mecha_parts/part/odysseus_torso),//1 @@ -1167,7 +1463,7 @@ ) /datum/construction/mecha/odysseus_chassis/custom_action(step, atom/used_atom, mob/user) - user.visible_message("[user] has connected [used_atom] to [holder].", "You connect [used_atom] to [holder]") + user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]") holder.overlays += used_atom.icon_state+"+o" qdel(used_atom) return 1 @@ -1203,35 +1499,35 @@ //4 list("key"=/obj/item/weapon/weldingtool, "backkey"=/obj/item/weapon/wrench, - "desc"="Internal armor is wrenched"), + "desc"="Internal armor is wrenched."), //5 list("key"=/obj/item/weapon/wrench, "backkey"=/obj/item/weapon/crowbar, - "desc"="Internal armor is installed"), + "desc"="Internal armor is installed."), //6 list("key"=/obj/item/stack/sheet/metal, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Peripherals control module is secured"), + "desc"="Peripherals control module is secured."), //7 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Peripherals control module is installed"), + "desc"="Peripherals control module is installed."), //8 list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/peripherals, "backkey"=/obj/item/weapon/screwdriver, - "desc"="Central control module is secured"), + "desc"="Central control module is secured."), //9 list("key"=/obj/item/weapon/screwdriver, "backkey"=/obj/item/weapon/crowbar, - "desc"="Central control module is installed"), + "desc"="Central control module is installed."), //10 list("key"=/obj/item/weapon/circuitboard/mecha/odysseus/main, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is adjusted"), + "desc"="The wiring is adjusted."), //11 list("key"=/obj/item/weapon/wirecutters, "backkey"=/obj/item/weapon/screwdriver, - "desc"="The wiring is added"), + "desc"="The wiring is added."), //12 list("key"=/obj/item/stack/cable_coil, "backkey"=/obj/item/weapon/screwdriver, @@ -1255,50 +1551,50 @@ //TODO: better messages. switch(index) if(14) - user.visible_message("[user] connects [holder] hydraulic systems", "You connect [holder] hydraulic systems.") + user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.") holder.icon_state = "odysseus1" if(13) if(diff==FORWARD) - user.visible_message("[user] activates [holder] hydraulic systems.", "You activate [holder] hydraulic systems.") + user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.") holder.icon_state = "odysseus2" else - user.visible_message("[user] disconnects [holder] hydraulic systems", "You disconnect [holder] hydraulic systems.") + user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.") holder.icon_state = "odysseus0" if(12) if(diff==FORWARD) - user.visible_message("[user] adds the wiring to [holder].", "You add the wiring to [holder].") + user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].") holder.icon_state = "odysseus3" else - user.visible_message("[user] deactivates [holder] hydraulic systems.", "You deactivate [holder] hydraulic systems.") + user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.") holder.icon_state = "odysseus1" if(11) if(diff==FORWARD) - user.visible_message("[user] adjusts the wiring of [holder].", "You adjust the wiring of [holder].") + user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].") holder.icon_state = "odysseus4" else - user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].") + user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].") var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder)) coil.amount = 4 holder.icon_state = "odysseus2" if(10) if(diff==FORWARD) - user.visible_message("[user] installs the central control module into [holder].", "You install the central computer mainboard into [holder].") + user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].") qdel(used_atom) holder.icon_state = "odysseus5" else - user.visible_message("[user] disconnects the wiring of [holder].", "You disconnect the wiring of [holder].") + user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].") holder.icon_state = "odysseus3" if(9) if(diff==FORWARD) user.visible_message("[user] secures the mainboard.", "You secure the mainboard.") holder.icon_state = "odysseus6" else - user.visible_message("[user] removes the central control module from [holder].", "You remove the central computer mainboard from [holder].") + user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].") new /obj/item/weapon/circuitboard/mecha/odysseus/main(get_turf(holder)) holder.icon_state = "odysseus4" if(8) if(diff==FORWARD) - user.visible_message("[user] installs the peripherals control module into [holder].", "You install the peripherals control module into [holder].") + user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].") qdel(used_atom) holder.icon_state = "odysseus7" else @@ -1309,52 +1605,52 @@ user.visible_message("[user] secures the peripherals control module.", "You secure the peripherals control module.") holder.icon_state = "odysseus8" else - user.visible_message("[user] removes the peripherals control module from [holder].", "You remove the peripherals control module from [holder].") + user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].") new /obj/item/weapon/circuitboard/mecha/odysseus/peripherals(get_turf(holder)) holder.icon_state = "odysseus6" if(6) if(diff==FORWARD) - user.visible_message("[user] installs internal armor layer to [holder].", "You install internal armor layer to [holder].") + user.visible_message("[user] installs the internal armor layer to the [holder].", "You install the internal armor layer to the [holder].") holder.icon_state = "odysseus9" else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") holder.icon_state = "odysseus7" if(5) if(diff==FORWARD) - user.visible_message("[user] secures internal armor layer.", "You secure internal armor layer.") + user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") holder.icon_state = "odysseus10" else - user.visible_message("[user] pries internal armor layer from [holder].", "You pry internal armor layer from [holder].") + user.visible_message("[user] pries internal armor layer from the [holder].", "You pry internal armor layer from the [holder].") var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/metal(get_turf(holder)) MS.amount = 5 holder.icon_state = "odysseus8" if(4) if(diff==FORWARD) - user.visible_message("[user] welds internal armor layer to [holder].", "You weld the internal armor layer to [holder].") + user.visible_message("[user] welds the internal armor layer to the [holder].", "You weld the internal armor layer to the [holder].") holder.icon_state = "odysseus11" else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") holder.icon_state = "odysseus9" if(3) if(diff==FORWARD) - user.visible_message("[user] installs [used_atom] layer to [holder].", "You install external reinforced armor layer to [holder].") + user.visible_message("[user] installs [used_atom] layer to the [holder].", "You install the external reinforced armor layer to the [holder].") holder.icon_state = "odysseus12" else - user.visible_message("[user] cuts internal armor layer from [holder].", "You cut the internal armor layer from [holder].") + user.visible_message("[user] cuts the internal armor layer from the [holder].", "You cut the internal armor layer from the [holder].") holder.icon_state = "odysseus10" if(2) if(diff==FORWARD) - user.visible_message("[user] secures external armor layer.", "You secure external reinforced armor layer.") + user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") holder.icon_state = "odysseus13" else var/obj/item/stack/sheet/plasteel/MS = new /obj/item/stack/sheet/plasteel(get_turf(holder)) MS.amount = 5 - user.visible_message("[user] pries [MS] from [holder].", "You pry [MS] from [holder].") + user.visible_message("[user] pries [MS] from the [holder].", "You pry [MS] from the [holder].") holder.icon_state = "odysseus11" if(1) if(diff==FORWARD) - user.visible_message("[user] welds external armor layer to [holder].", "You weld external armor layer to [holder].") + user.visible_message("[user] welds the external armor layer to the [holder].", "You weld the external armor layer to the [holder].") holder.icon_state = "odysseus14" else user.visible_message("[user] unfastens the external armor layer.", "You unfasten the external armor layer.") diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index e360a94d5c5..068d175c06e 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -296,7 +296,7 @@ /obj/item/mecha_parts/chassis/phazon name = "\improper Phazon chassis" - origin_tech = "materials=7" + origin_tech = "materials=6" /obj/item/mecha_parts/chassis/phazon/New() ..() @@ -304,20 +304,23 @@ /obj/item/mecha_parts/part/phazon_torso name="\improper Phazon torso" + desc="A Phazon torso part. The socket for the bluespace core that powers the exosuit's unique phase drives is located in the middle." icon_state = "phazon_harness" construction_time = 300 construction_cost = list("metal"=35000,"glass"=10000,"plasma"=20000) - origin_tech = "programming=5;materials=7;bluespace=6;powerstorage=6" + origin_tech = "programming=5;materials=6;bluespace=5;powerstorage=5" /obj/item/mecha_parts/part/phazon_head name="\improper Phazon head" + desc="A Phazon head. Its sensors are carefully calibrated to provide vision and data even when the exosuit is phasing." icon_state = "phazon_head" construction_time = 200 construction_cost = list("metal"=15000,"glass"=5000,"plasma"=10000) - origin_tech = "programming=4;materials=5;magnets=6" + origin_tech = "programming=4;materials=5;magnets=5" /obj/item/mecha_parts/part/phazon_left_arm name="\improper Phazon left arm" + desc="A Phazon left arm. Several microtool arrays are located under the armor plating, which can be adjusted to the situation at hand." icon_state = "phazon_l_arm" construction_time = 200 construction_cost = list("metal"=20000,"plasma"=10000) @@ -325,6 +328,7 @@ /obj/item/mecha_parts/part/phazon_right_arm name="\improper Phazon right arm" + desc="A Phazon right arm. Several microtool arrays are located under the armor plating, which can be adjusted to the situation at hand." icon_state = "phazon_r_arm" construction_time = 200 construction_cost = list("metal"=20000,"plasma"=10000) @@ -332,6 +336,7 @@ /obj/item/mecha_parts/part/phazon_left_leg name="\improper Phazon left leg" + desc="A Phazon left leg. It contains the unique phase drives that allow the exosuit to phase through solid matter when engaged." icon_state = "phazon_l_leg" construction_time = 200 construction_cost = list("metal"=20000,"plasma"=10000) @@ -339,11 +344,19 @@ /obj/item/mecha_parts/part/phazon_right_leg name="\improper Phazon right leg" + desc="A Phazon right leg. It contains the unique phase drives that allow the exosuit to phase through solid matter when engaged." icon_state = "phazon_r_leg" construction_time = 200 construction_cost = list("metal"=20000,"plasma"=10000) origin_tech = "materials=5;bluespace=3;magnets=3" +/obj/item/mecha_parts/part/phazon_armor + name="Phazon armor" + desc="Phazon armor plates. They are layered with plasma to protect the pilot from the stress of phasing and have unusual properties." + icon_state = "phazon_armor" + construction_time = 300 + construction_cost = list("metal"=45000,"plasma"=30000) + origin_tech = "materials=6;bluespace=5;magnets=5" ///////// Odysseus @@ -494,4 +507,16 @@ name = "circuit board (Odysseus Central Control module)" icon_state = "mainboard" +/obj/item/weapon/circuitboard/mecha/phazon + origin_tech = "programming=5" +/obj/item/weapon/circuitboard/mecha/phazon/peripherals + name = "circuit board (Phazon Peripherals Control module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/phazon/targeting + name = "circuit board (Phazon Weapon Control and Targeting module)" + icon_state = "mcontroller" + +/obj/item/weapon/circuitboard/mecha/phazon/main + name = "circuit board (Phazon Central Control module)" \ No newline at end of file diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 73c06025803..0b74b55d837 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -1,10 +1,13 @@ /obj/mecha/working/ripley - desc = "Autonomous Power Loader Unit. The workhorse of the exosuit world." + desc = "Autonomous Power Loader Unit. This newer model is refitted with powerful armour against the dangers of the EVA mining process." name = "\improper APLU \"Ripley\"" icon_state = "ripley" - step_in = 6 + step_in = 5 max_temperature = 20000 health = 200 + lights_power = 7 + deflect_chance = 15 + damage_absorption = list("brute"=0.6,"bomb"=0.2) wreckage = /obj/structure/mecha_wreckage/ripley var/list/cargo = new var/cargo_capacity = 15 @@ -16,19 +19,49 @@ */ /obj/mecha/working/ripley/Destroy() + while(src.damage_absorption.["brute"] < 0.6) + new /obj/item/asteroid/goliath_hide(src.loc) + src.damage_absorption.["brute"] = src.damage_absorption.["brute"] + 0.1 //If a goliath-plated ripley gets killed, all the plates drop for(var/atom/movable/A in src.cargo) A.loc = loc step_rand(A) cargo.Cut() ..() +/obj/mecha/working/ripley/go_out() + ..() + if (src.damage_absorption.["brute"] < 0.6 && src.damage_absorption.["brute"] > 0.3) + src.overlays = null + src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-open") + else if (src.damage_absorption.["brute"] == 0.3) + src.overlays = null + src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full-open") + +/obj/mecha/working/ripley/moved_inside(var/mob/living/carbon/human/H as mob) + ..() + if (src.damage_absorption.["brute"] < 0.6 && src.damage_absorption.["brute"] > 0.3) + src.overlays = null + src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g") + else if (src.damage_absorption.["brute"] == 0.3) + src.overlays = null + src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full") + +/obj/mecha/working/ripley/mmi_moved_inside(var/obj/item/device/mmi/mmi_as_oc as obj,mob/user as mob) + ..() + if (src.damage_absorption.["brute"] < 0.6 && src.damage_absorption.["brute"] > 0.3) + src.overlays = null + src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g") + else if (src.damage_absorption.["brute"] == 0.3) + src.overlays = null + src.overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full") + /obj/mecha/working/ripley/firefighter desc = "Standart APLU chassis was refitted with additional thermal protection and cistern." name = "\improper APLU \"Firefighter\"" icon_state = "firefighter" max_temperature = 65000 health = 250 - lights_power = 8 + lights_power = 7 damage_absorption = list("fire"=0.5,"bullet"=0.8,"bomb"=0.5) wreckage = /obj/structure/mecha_wreckage/ripley/firefighter @@ -38,7 +71,7 @@ icon_state = "deathripley" step_in = 3 opacity=0 - lights_power = 60 + lights_power = 7 wreckage = /obj/structure/mecha_wreckage/ripley/deathripley step_energy_drain = 0 diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 362b3eeb27b..70ebc8bc021 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -85,7 +85,7 @@ /obj/effect/anomaly/flux/New() ..() - aSignal.origin_tech = "powerstorage=5;programming=3;plasmatech=2" + aSignal.origin_tech = "powerstorage=6;programming=4;plasmatech=4" ///////////////////// @@ -97,7 +97,7 @@ /obj/effect/anomaly/bluespace/New() ..() - aSignal.origin_tech = "bluespace=5;magnets=3;powerstorage=2" + aSignal.origin_tech = "bluespace=5;magnets=5;powerstorage=3" /obj/effect/anomaly/bluespace/Bumped(atom/A) if(isliving(A)) @@ -112,7 +112,7 @@ /obj/effect/anomaly/pyro/New() ..() - aSignal.origin_tech = "plasmatech=5;powerstorage=3;biotech=3" + aSignal.origin_tech = "plasmatech=5;powerstorage=4;biotech=6" /obj/effect/anomaly/pyro/anomalyEffect() ..() @@ -129,7 +129,7 @@ /obj/effect/anomaly/bhole/New() ..() - aSignal.origin_tech = "materials=5;combat=4;engineering=3" + aSignal.origin_tech = "materials=5;combat=4;engineering=4" /obj/effect/anomaly/bhole/anomalyEffect() ..() diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index e4d8a1dc467..8118a8f4412 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -117,7 +117,6 @@ trashtype = /obj/item/weapon/restraints/handcuffs/cable/zipties/used /obj/item/weapon/restraints/handcuffs/cable/zipties/used - name = "used zipties" desc = "A pair of broken zipties." icon_state = "cuff_white_used" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 7412a768e39..95ec12426c6 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -794,26 +794,39 @@ var/global/floorIsLava = 0 if(!ai_number) usr << "No AIs located" //Just so you know the thing is actually working and not just ignoring you. -/datum/admins/proc/list_free_slots() +/datum/admins/proc/manage_free_slots() if(!check_rights()) return - var/dat = "List Free Slots" + var/dat = "Manage Free Slots" var/count = 0 + if(ticker && !ticker.mode) + alert(usr, "You cannot manage jobs before the round starts!") + return + if(job_master) for(var/datum/job/job in job_master.occupations) count++ var/J_title = html_encode(job.title) + var/J_opPos = html_encode(job.total_positions - (job.total_positions - job.current_positions)) var/J_totPos = html_encode(job.total_positions) - dat += "[J_title]: [J_totPos]
" + if(job.total_positions <= 0) + dat += "[J_title]: [J_opPos]" + else + dat += "[J_title]: [J_opPos]/[J_totPos]" + if(initial(job.total_positions) > 0) + dat += " Add | " + if(job.total_positions > job.current_positions) + dat += "Remove" + else + dat += "Remove" + dat += "
" dat += "" var/winheight = 100 + (count * 20) winheight = min(winheight, 690) usr << browse(dat, "window=players;size=316x[winheight]") - - // // //ALL DONE diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index f188e1f34ff..d40e4a1a1d3 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1324,6 +1324,30 @@ src.owner << "[special_role_description]" src.owner << "(PM) (PP) (VV) (SM) (JMP) (CA)" + else if(href_list["addjobslot"]) + if(!check_rights(R_ADMIN)) return + + var/Add = href_list["addjobslot"] + + for(var/datum/job/job in job_master.occupations) + if(job.title == Add) + job.total_positions += 1 + break + + src.manage_free_slots() + + else if(href_list["removejobslot"]) + if(!check_rights(R_ADMIN)) return + + var/Remove = href_list["removejobslot"] + + for(var/datum/job/job in job_master.occupations) + if(job.title == Remove && job.total_positions - job.current_positions > 0) + job.total_positions -= 1 + break + + src.manage_free_slots() + else if(href_list["adminspawncookie"]) if(!check_rights(R_ADMIN|R_FUN)) return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 1e63312b6f2..67d8d55ff8a 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -449,13 +449,13 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/cmd_admin_list_open_jobs() set category = "Admin" - set name = "List free slots" + set name = "Manage Job Slots" if (!holder) src << "Only administrators may use this command." return - holder.list_free_slots() - feedback_add_details("admin_verb","LFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + holder.manage_free_slots() + feedback_add_details("admin_verb","MFS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) set category = "Special Verbs" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index a5fbc8e3d6d..e3b75febb8b 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -1,97 +1,55 @@ /obj/item/clothing/suit/labcoat name = "labcoat" desc = "A suit that protects against minor chemical spills." - icon_state = "labcoat_open" + icon_state = "labcoat" item_state = "labcoat" blood_overlay_type = "coat" body_parts_covered = CHEST|ARMS allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/telebaton) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) + var/open = 0 - verb/toggle() - set name = "Toggle Labcoat Buttons" - set category = "Object" - set src in usr +/obj/item/clothing/suit/labcoat/verb/toggle() + set name = "Toggle Labcoat Buttons" + set category = "Object" + set src in usr - if(!usr.canmove || usr.stat || usr.restrained()) - return 0 + if(!usr.canmove || usr.stat || usr.restrained()) + return 0 - switch(icon_state) //n-nooooo - if("labcoat_open") - src.icon_state = "labcoat" - usr << "You button up the labcoat." - if("labcoat") - src.icon_state = "labcoat_open" - usr << "You unbutton the labcoat." - if("labcoat_cmo_open") - src.icon_state = "labcoat_cmo" - usr << "You button up the labcoat." - if("labcoat_cmo") - src.icon_state = "labcoat_cmo_open" - usr << "You unbutton the labcoat." - if("labcoat_gen_open") - src.icon_state = "labcoat_gen" - usr << "You button up the labcoat." - if("labcoat_gen") - src.icon_state = "labcoat_gen_open" - usr << "You unbutton the labcoat." - if("labcoat_chem_open") - src.icon_state = "labcoat_chem" - usr << "You button up the labcoat." - if("labcoat_chem") - src.icon_state = "labcoat_chem_open" - usr << "You unbutton the labcoat." - if("labcoat_vir_open") - src.icon_state = "labcoat_vir" - usr << "You button up the labcoat." - if("labcoat_vir") - src.icon_state = "labcoat_vir_open" - usr << "You unbutton the labcoat." - if("labcoat_tox_open") - src.icon_state = "labcoat_tox" - usr << "You button up the labcoat." - if("labcoat_tox") - src.icon_state = "labcoat_tox_open" - usr << "You unbutton the labcoat." - if("labgreen_open") - src.icon_state = "labgreen" - usr << "You button up the labcoat." - if("labgreen") - src.icon_state = "labgreen_open" - usr << "You unbutton the labcoat." - else - usr << "You attempt to button-up the velcro on your [src], before promptly realising how retarded you are." - return - usr.update_inv_wear_suit() //so our overlays update + open = !open + icon_state = "[initial(icon_state)][open ? "_open":""]" + usr << "You [open ? "unbutton":"button up"] the labcoat" + usr.update_inv_wear_suit() /obj/item/clothing/suit/labcoat/cmo name = "chief medical officer's labcoat" desc = "Bluer than the standard model." - icon_state = "labcoat_cmo_open" + icon_state = "labcoat_cmo" item_state = "labcoat_cmo" /obj/item/clothing/suit/labcoat/mad name = "\improper The Mad's labcoat" desc = "It makes you look capable of konking someone on the noggin and shooting them into space." - icon_state = "labgreen_open" + icon_state = "labgreen" item_state = "labgreen" /obj/item/clothing/suit/labcoat/genetics name = "geneticist labcoat" desc = "A suit that protects against minor chemical spills. Has a blue stripe on the shoulder." - icon_state = "labcoat_gen_open" + icon_state = "labcoat_gen" /obj/item/clothing/suit/labcoat/chemist name = "chemist labcoat" desc = "A suit that protects against minor chemical spills. Has an orange stripe on the shoulder." - icon_state = "labcoat_chem_open" + icon_state = "labcoat_chem" /obj/item/clothing/suit/labcoat/virologist name = "virologist labcoat" desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder." - icon_state = "labcoat_vir_open" + icon_state = "labcoat_vir" /obj/item/clothing/suit/labcoat/science name = "scientist labcoat" desc = "A suit that protects against minor chemical spills. Has a purple stripe on the shoulder." - icon_state = "labcoat_tox_open" + icon_state = "labcoat_tox" diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 0fa1779d52f..2e331e46790 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -2,13 +2,14 @@ desc = "A standard issue colored jumpsuit. Variety is the spice of life!" /obj/item/clothing/under/color/random/New() + ..() var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color) var/obj/item/clothing/under/color/C = pick(typesof(/obj/item/clothing/under/color) - excluded) name = initial(C.name) icon_state = initial(C.icon_state) item_state = initial(C.item_state) item_color = initial(C.item_color) - + suit_color = initial(C.item_color) /obj/item/clothing/under/color/black name = "black jumpsuit" diff --git a/code/modules/events/anomaly.dm b/code/modules/events/anomaly.dm index 9062ed7e4a3..6ffb171e387 100644 --- a/code/modules/events/anomaly.dm +++ b/code/modules/events/anomaly.dm @@ -1,5 +1,5 @@ /datum/round_event_control/anomaly - name = "Energetic Flux" + name = "Anomaly: Energetic Flux" typepath = /datum/round_event/anomaly max_occurrences = 0 //This one probably shouldn't occur! It'd work, but it wouldn't be very fun. weight = 15 @@ -23,7 +23,7 @@ setup(safety_loop) /datum/round_event/anomaly/announce() - priority_announce("Localized hyper-energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") + priority_announce("Localized energetic flux wave detected on long range scanners. Expected location of impact: [impact_area.name].", "Anomaly Alert") /datum/round_event/anomaly/start() var/turf/T = pick(get_area_turfs(impact_area)) diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index 256a4322c81..04a18bfc9cd 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -1,5 +1,5 @@ /datum/round_event_control/anomaly/anomaly_bluespace - name = "Bluespace Anomaly" + name = "Anomaly: Bluespace" typepath = /datum/round_event/anomaly/anomaly_bluespace max_occurrences = 1 weight = 5 @@ -7,7 +7,7 @@ /datum/round_event/anomaly/anomaly_bluespace startWhen = 3 announceWhen = 10 - endWhen = 55 + endWhen = 95 /datum/round_event/anomaly/anomaly_bluespace/announce() @@ -52,9 +52,7 @@ var/x_distance = TO.x - FROM.x for (var/atom/movable/A in range(12, FROM )) // iterate thru list of mobs in the area if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid - if(A.anchored && istype(A, /obj/machinery)) continue - if(istype(A, /obj/structure/disposalpipe )) continue - if(istype(A, /obj/structure/cable )) continue + if(A.anchored) continue var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place if(!A.Move(newloc)) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index dc7e9d4b219..04dac78b664 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -1,13 +1,13 @@ /datum/round_event_control/anomaly/anomaly_flux - name = "Energetic Flux" + name = "Anomaly: Hyper-Energetic Flux" typepath = /datum/round_event/anomaly/anomaly_flux - max_occurrences = 2 - weight = 15 + max_occurrences = 5 + weight = 20 /datum/round_event/anomaly/anomaly_flux startWhen = 3 announceWhen = 20 - endWhen = 60 + endWhen = 80 /datum/round_event/anomaly/anomaly_flux/announce() diff --git a/code/modules/events/anomaly_grav.dm b/code/modules/events/anomaly_grav.dm index 69d38c62231..4b44e18ba2a 100644 --- a/code/modules/events/anomaly_grav.dm +++ b/code/modules/events/anomaly_grav.dm @@ -1,13 +1,13 @@ /datum/round_event_control/anomaly/anomaly_grav - name = "Gravitational Anomaly" + name = "Anomaly: Gravitational" typepath = /datum/round_event/anomaly/anomaly_grav - max_occurrences = 2 - weight = 15 + max_occurrences = 5 + weight = 20 /datum/round_event/anomaly/anomaly_grav startWhen = 3 announceWhen = 20 - endWhen = 50 + endWhen = 120 /datum/round_event/anomaly/anomaly_grav/announce() diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index 49600a58136..e5e88eb8549 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -1,17 +1,17 @@ /datum/round_event_control/anomaly/anomaly_pyro - name = "Pyroclastic Anomaly" + name = "Anomaly: Pyroclastic" typepath = /datum/round_event/anomaly/anomaly_pyro - max_occurrences = 2 - weight = 15 + max_occurrences = 5 + weight = 20 /datum/round_event/anomaly/anomaly_pyro startWhen = 10 announceWhen = 3 - endWhen = 70 + endWhen = 85 /datum/round_event/anomaly/anomaly_pyro/announce() - priority_announce("Atmospheric anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") + priority_announce("Pyroclastic anomaly detected on long range scanners. Expected location: [impact_area.name].", "Anomaly Alert") /datum/round_event/anomaly/anomaly_pyro/start() var/turf/T = pick(get_area_turfs(impact_area)) @@ -23,4 +23,14 @@ kill() return if(IsMultiple(activeFor, 5)) - newAnomaly.anomalyEffect() \ No newline at end of file + newAnomaly.anomalyEffect() + + +/datum/round_event/anomaly/anomaly_pyro/end() + if(newAnomaly) + explosion(get_turf(newAnomaly), -1,0,3, flame_range = 4) + + var/mob/living/carbon/slime/S = new/mob/living/carbon/slime(get_turf(newAnomaly)) + S.colour = pick("red", "orange") + + qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_vortex.dm b/code/modules/events/anomaly_vortex.dm index 993bec48862..aed3d4a1320 100644 --- a/code/modules/events/anomaly_vortex.dm +++ b/code/modules/events/anomaly_vortex.dm @@ -1,13 +1,13 @@ /datum/round_event_control/anomaly/anomaly_vortex - name = "Vortex Anomaly" + name = "Anomaly: Vortex" typepath = /datum/round_event/anomaly/anomaly_vortex - max_occurrences = 5 - weight = 2 + max_occurrences = 2 + weight = 5 /datum/round_event/anomaly/anomaly_vortex startWhen = 10 announceWhen = 3 - endWhen = 80 + endWhen = 95 /datum/round_event/anomaly/anomaly_vortex/announce() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index e64fb179545..f6eaebd924c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -578,13 +578,13 @@ else switch(H.radiation) - if(1 to 49) + if(0 to 50) H.radiation-- if(prob(25)) H.adjustToxLoss(1) H.updatehealth() - if(50 to 74) + if(50 to 75) H.radiation -= 2 H.adjustToxLoss(1) if(prob(5)) diff --git a/code/modules/mob/living/simple_animal/friendly/drone.dm b/code/modules/mob/living/simple_animal/friendly/drone.dm index 7883cb6fe8d..32adbf515fd 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone.dm @@ -94,6 +94,8 @@ health = health_repair_max stat = CONSCIOUS icon_state = icon_living + dead_mob_list -= src + living_mob_list += src D.visible_message("[D] reactivates [src]!") alert_drones(DRONE_NET_CONNECT) if(G) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 5a36143768c..7fb8c527436 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -416,6 +416,7 @@ desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." icon = 'icons/obj/items.dmi' icon_state = "goliath_hide" + flags = NOBLUDGEON w_class = 3 layer = 4 @@ -423,11 +424,32 @@ if(proximity_flag) if(istype(target, /obj/item/clothing/suit/space/hardsuit/mining) || istype(target, /obj/item/clothing/head/helmet/space/hardsuit/mining)) var/obj/item/clothing/C = target - var/current_armor = C.armor + var/list/current_armor = C.armor if(current_armor.["melee"] < 80) current_armor.["melee"] = min(current_armor.["melee"] + 10, 80) user << "You strengthen [target], improving its resistance against melee attacks." qdel(src) else user << "You can't improve [C] any further." - return + return + if(istype(target, /obj/mecha/working/ripley)) + var/obj/mecha/D = target + var/list/damage_absorption = D.damage_absorption + if(damage_absorption.["brute"] > 0.3) + damage_absorption.["brute"] = max(damage_absorption.["brute"] - 0.1, 0.3) + user << "You strengthen [target], improving its resistance against melee attacks." + qdel(src) + if(D.icon_state == "ripley-open") + D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-open") + D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates." + else + user << "You can't add armour onto the mech while someone is inside!" + if(damage_absorption.["brute"] == 0.3) + if(D.icon_state == "ripley-open") + D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-full-open") + D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - the pilot must be an experienced monster hunter." + else + user << "You can't add armour onto the mech while someone is inside!" + else + user << "You can't improve [D] any further." + return \ No newline at end of file diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index f50c4b9b256..82a242fa775 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -119,6 +119,33 @@ datum/design/honker_targ materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting +datum/design/phazon_main + name = "Exosuit Design (\"Phazon\" Central Control module)" + desc = "Allows for the construction of a \"Phazon\" Central Control module." + id = "phazon_main" + req_tech = list("programming" = 5, "materials" = 7, "powerstorage" = 6) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/phazon/main + +datum/design/phazon_peri + name = "Exosuit Design (\"Phazon\" Peripherals Control module)" + desc = "Allows for the construction of a \"Phazon\" Peripheral Control module." + id = "phazon_peri" + req_tech = list("programming" = 5, "bluespace" = 6) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals + +datum/design/phazon_targ + name = "Exosuit Design (\"Phazon\" Weapons & Targeting Control module)" + desc = "Allows for the construction of a \"Phazon\" Weapons & Targeting Control module." + id = "phazon_targ" + req_tech = list("programming" = 5, "magnets" = 6) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting + //////////////////////////////////////// /////////// Mecha Equpment ///////////// //////////////////////////////////////// diff --git a/html/changelogs/Patchi-mechs-phazons.yml b/html/changelogs/Patchi-mechs-phazons.yml new file mode 100644 index 00000000000..7990ef7ea6d --- /dev/null +++ b/html/changelogs/Patchi-mechs-phazons.yml @@ -0,0 +1,14 @@ +author: Patchouli Knowledge +delete-after: true +changes: + - rscadd: "In light of the recent achievements of the Robotics department, new and upgraded exosuit schematics were delivered to SS13 exosuit fabricators as a reward from CentComm. + - rscadd: "The countless hours of research, experimentation, and reverse-engineering of wrecks from the mining asteroid have paid off - the Research team has rediscovered the process of building Phazon exosuits. The parts and circuits have been made available in the exofabs and circuit printers." + - rscadd: "The APLU Ripley exosuit has been refitted with asteroid mining purposes in mind. Its armour plating will provide extra protection against the brute attacks of asteroid alien lifeforms, and protect from gibtonite explosions. The leg servos were upgraded to provide faster movement." + - rscadd: "There are rumours of some creative shaft miners discovering a way of augmenting APLU Ripley armour with trophy hides from goliath-type asteroid lifeforms..." + - tweak: "Durand construction routines now require a phasic scanner module and a super capacitor to match Nanotrasen industry standards." + - tweak: "The exosuit fire extinguisher now boasts a larger watertank, and carries a whole 1000u of water from the old 200u tank." + - tweak: "The exosuit plasma converter's efficiency has been vastly improved upon, and its fuel consumption has been cut to nearly half of old values." + - bugfix: "The exosuit sleeper interiors have been refitted to allow the occupants more freedom of movement, and the occupants may now eject at will. + - bugfix: "The armour plating on all exosuits was fitted with reactive deflection systems specifically designed to stop the rapid slashes from xenomorph threats." + - bugfix: "The Firefighter Ripley chassis were moved from the Exosuit Equipment section to the APLU Ripley section of exofab menus." + - spellcheck: "Fixed some minor errors in the exosuit construction message syntax." \ No newline at end of file diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index bdce08c8022..bf8ba802916 100644 Binary files a/icons/mecha/mech_construct.dmi and b/icons/mecha/mech_construct.dmi differ diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index d0a145caff5..393cead765e 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 772b4fa1513..c9e3455fa55 100644 Binary files a/icons/mecha/mecha.dmi and b/icons/mecha/mecha.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index c9de1a58cc2..ff3137d0e70 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 6155eca303e..4623677765c 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ