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 @@
"}
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