From 3ebb3464b67baa2b29c38efaba2a35687d7e69b9 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 25 Oct 2019 22:53:49 -0700 Subject: [PATCH 1/4] makes it so ripley, firefighter, ody, and honk take capaictors and scanners to build --- code/game/mecha/mecha_construction_paths.dm | 274 ++++++++++++++++---- 1 file changed, 221 insertions(+), 53 deletions(-) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 071fe184..076492cc 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -116,7 +116,7 @@ //9 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Peripherals control module is secured." @@ -126,10 +126,40 @@ list( "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_CROWBAR, - "desc" = "The power cell is installed." + "desc" = "Scanner module is installed." ), //11 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //14 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //15 list( "key" = /obj/item/stack/sheet/metal, "amount" = 5, @@ -137,21 +167,21 @@ "desc" = "The power cell is secured." ), - //12 + //16 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "Internal armor is installed." ), - //13 + //17 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, "desc" = "Internal armor is wrenched." ), - //14 + //18 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -159,14 +189,14 @@ "desc" = "Internal armor is welded." ), - //15 + //19 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "External armor is installed." ), - //16 + //20 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, @@ -222,36 +252,56 @@ else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures [I].", "You secure [I].") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs [I].", "You install [I].") + else + user.visible_message("[user] unsecures the capacitor from [parent].", "You unsecure the capacitor from [parent].") + if(14) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(11) + if(15) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(12) + if(16) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(13) + if(17) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(14) + if(18) if(diff==FORWARD) user.visible_message("[user] installs the external reinforced armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") - if(15) + if(19) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else user.visible_message("[user] pries external armor layer from [parent].", "You pry external armor layer from [parent].") - if(16) + if(20) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") else @@ -629,7 +679,7 @@ //9 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Peripherals control module is secured." @@ -639,10 +689,40 @@ list( "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_CROWBAR, - "desc" = "The power cell is installed." + "desc" = "Scanner module is installed." ), //11 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //14 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + + //15 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -650,21 +730,21 @@ "desc" = "The power cell is secured." ), - //12 + //16 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "Internal armor is installed." ), - //13 + //17 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, "desc" = "Internal armor is wrenched." ), - //14 + //18 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -672,7 +752,7 @@ "desc" = "Internal armor is welded." ), - //15 + //19 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -680,14 +760,14 @@ "desc" = "External armor is being installed." ), - //16 + //20 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "External armor is installed." ), - //17 + //21 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, @@ -744,41 +824,61 @@ else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(12) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(13) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(14) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + if(15) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(11) + if(16) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(12) + if(17) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(13) + if(18) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(14) + if(19) if(diff==FORWARD) user.visible_message("[user] starts to install the external armor layer to [parent].", "You install the external armor layer to [parent].") else user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") - if(15) + if(20) if(diff==FORWARD) user.visible_message("[user] installs the external reinforced armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else user.visible_message("[user] removes the external armor from [parent].", "You remove the external armor from [parent].") - if(16) + if(21) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else user.visible_message("[user] pries external armor layer from [parent].", "You pry external armor layer from [parent].") - if(17) + if(22) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") else @@ -825,47 +925,63 @@ list( "key" = /obj/item/bikehorn ), - //6 list( "key" = /obj/item/circuitboard/mecha/honker/targeting, "action" = ITEM_DELETE ), - //7 list( "key" = /obj/item/bikehorn ), - //8 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE ), - //9 list( "key" = /obj/item/bikehorn ), - //10 list( - "key" = /obj/item/clothing/mask/gas/clown_hat, - "action" = ITEM_DELETE + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE ), - //11 list( "key" = /obj/item/bikehorn ), //12 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE + ), + + //13 + list( + "key" = /obj/item/bikehorn + ), + + //14 + list( + "key" = /obj/item/clothing/mask/gas/clown_hat, + "action" = ITEM_DELETE + ), + + //15 + list( + "key" = /obj/item/bikehorn + ), + + //16 list( "key" = /obj/item/clothing/shoes/clown_shoes, "action" = ITEM_DELETE ), - //13 + //17 list( "key" = /obj/item/bikehorn ), @@ -898,8 +1014,12 @@ if(8) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(10) - user.visible_message("[user] puts [I] on [parent].", "You put [I] on [parent].") + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(12) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + if(14) + user.visible_message("[user] puts [I] on [parent].", "You put [I] on [parent].") + if(16) user.visible_message("[user] puts [I] on [parent].", "You put [I] on [parent].") return TRUE @@ -1629,7 +1749,7 @@ //9 list( - "key" = /obj/item/stock_parts/cell, + "key" = /obj/item/stock_parts/scanning_module, "action" = ITEM_MOVE_INSIDE, "back_key" = TOOL_SCREWDRIVER, "desc" = "Peripherals control module is secured." @@ -1639,32 +1759,60 @@ list( "key" = TOOL_SCREWDRIVER, "back_key" = TOOL_CROWBAR, - "desc" = "The power cell is installed." + "desc" = "Scanner module is installed." ), //11 + list( + "key" = /obj/item/stock_parts/capacitor, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Scanner module is secured." + ), + + //12 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "Capacitor is installed." + ), + + //13 + list( + "key" = /obj/item/stock_parts/cell, + "action" = ITEM_MOVE_INSIDE, + "back_key" = TOOL_SCREWDRIVER, + "desc" = "Capacitor is secured." + ), + + //14 list( "key" = /obj/item/stack/sheet/metal, "amount" = 5, "back_key" = TOOL_SCREWDRIVER, "desc" = "The power cell is secured." ), - - //12 + //15 + list( + "key" = TOOL_SCREWDRIVER, + "back_key" = TOOL_CROWBAR, + "desc" = "The power cell is installed." + ), + //16 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "Internal armor is installed." ), - //13 + //17 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, "desc" = "Internal armor is wrenched." ), - //14 + //18 list( "key" = /obj/item/stack/sheet/plasteel, "amount" = 5, @@ -1672,14 +1820,14 @@ "desc" = "Internal armor is welded." ), - //15 + //19 list( "key" = TOOL_WRENCH, "back_key" = TOOL_CROWBAR, "desc" = "External armor is installed." ), - //16 + //20 list( "key" = TOOL_WELDER, "back_key" = TOOL_WRENCH, @@ -1736,36 +1884,56 @@ else user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.") if(10) + if(diff==FORWARD) + user.visible_message("[user] secures the scanner module.", "You secure the scanner module.") + else + user.visible_message("[user] removes the scanner module from [parent].", "You remove the scanner module from [parent].") + if(11) + if(diff==FORWARD) + user.visible_message("[user] installs [I] to [parent].", "You install [I] to [parent].") + else + user.visible_message("[user] unfastens the scanner module.", "You unfasten the scanner module.") + if(12) + if(diff==FORWARD) + user.visible_message("[user] secures the capacitor.", "You secure the capacitor.") + else + user.visible_message("[user] removes the capacitor from [parent].", "You remove the capacitor from [parent].") + if(13) + if(diff==FORWARD) + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + else + user.visible_message("[user] unfastens the capacitor.", "You unfasten the capacitor.") + if(14) if(diff==FORWARD) user.visible_message("[user] secures the power cell.", "You secure the power cell.") else user.visible_message("[user] pries the power cell from [parent].", "You pry the power cell from [parent].") - if(11) + if(15) if(diff==FORWARD) user.visible_message("[user] installs the internal armor layer to [parent].", "You install the internal armor layer to [parent].") else user.visible_message("[user] unfastens the power cell.", "You unfasten the power cell.") - if(12) + if(16) if(diff==FORWARD) user.visible_message("[user] secures the internal armor layer.", "You secure the internal armor layer.") else user.visible_message("[user] pries internal armor layer from [parent].", "You pry internal armor layer from [parent].") - if(13) + if(17) if(diff==FORWARD) user.visible_message("[user] welds the internal armor layer to [parent].", "You weld the internal armor layer to [parent].") else user.visible_message("[user] unfastens the internal armor layer.", "You unfasten the internal armor layer.") - if(14) + if(18) if(diff==FORWARD) user.visible_message("[user] installs the external armor layer to [parent].", "You install the external reinforced armor layer to [parent].") else user.visible_message("[user] cuts the internal armor layer from [parent].", "You cut the internal armor layer from [parent].") - if(15) + if(19) if(diff==FORWARD) user.visible_message("[user] secures the external armor layer.", "You secure the external reinforced armor layer.") else user.visible_message("[user] pries the external armor layer from [parent].", "You pry the external armor layer from [parent].") - if(16) + if(20) if(diff==FORWARD) user.visible_message("[user] welds the external armor layer to [parent].", "You weld the external armor layer to [parent].") else From f122fc73f0a8debf95f52d876650cb1834e3aac3 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 25 Oct 2019 23:33:50 -0700 Subject: [PATCH 2/4] indent fix --- code/game/mecha/mecha_construction_paths.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 076492cc..ee7be296 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -1014,7 +1014,7 @@ if(8) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(10) - user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") + user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(12) user.visible_message("[user] installs [I] into [parent].", "You install [I] into [parent].") if(14) From e8348196b743904641c5197e8857cea64c26a1c5 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Fri, 25 Oct 2019 23:34:00 -0700 Subject: [PATCH 3/4] sprite fix --- icons/mecha/mech_construction.dmi | Bin 17377 -> 19203 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index 42cc8eeb57416a14af3e1daaf2096d6a751ca160..cdb0721578f10fcc444fb641d3b18b9a4a5147f5 100644 GIT binary patch literal 19203 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 literal 17377 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�*Z{Z32vdL*!U789U=BJIYpXqX)v`yFvI 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 From a6ff0cb5de994c0af60394f6c98fd66c0a0a0427 Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Sat, 26 Oct 2019 00:49:25 -0700 Subject: [PATCH 4/4] Code Improvements for mech made by Nemvar at tg --- code/__DEFINES/mecha.dm | 17 ++++++++++ code/game/mecha/equipment/mecha_equipment.dm | 7 ++-- .../mecha/equipment/tools/medical_tools.dm | 6 ++-- .../game/mecha/equipment/tools/other_tools.dm | 8 ++--- code/game/mecha/equipment/tools/work_tools.dm | 4 +-- code/game/mecha/equipment/weapons/weapons.dm | 6 ++-- code/game/mecha/mecha.dm | 24 +++---------- code/game/mecha/mecha_defense.dm | 34 +++++++++---------- code/game/mecha/mecha_topic.dm | 16 ++++----- .../simple_animal/hostile/mecha_pilot.dm | 8 ++--- tgstation.dme | 1 + 11 files changed, 68 insertions(+), 63 deletions(-) create mode 100644 code/__DEFINES/mecha.dm diff --git a/code/__DEFINES/mecha.dm b/code/__DEFINES/mecha.dm new file mode 100644 index 00000000..bf62e6b6 --- /dev/null +++ b/code/__DEFINES/mecha.dm @@ -0,0 +1,17 @@ +#define MECHA_INT_FIRE (1<<0) +#define MECHA_INT_TEMP_CONTROL (1<<1) +#define MECHA_INT_SHORT_CIRCUIT (1<<2) +#define MECHA_INT_TANK_BREACH (1<<3) +#define MECHA_INT_CONTROL_LOST (1<<4) + +#define MECHA_MELEE (1 << 0) +#define MECHA_RANGED (1 << 1) + +#define MECHA_FRONT_ARMOUR 1 +#define MECHA_SIDE_ARMOUR 2 +#define MECHA_BACK_ARMOUR 3 + +#define MECHA_LOCKED 0 +#define MECHA_SECURE_BOLTS 1 +#define MECHA_LOOSE_BOLTS 2 +#define MECHA_OPEN_HATCH 3 diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm index b5a579f3..ef9a1374 100644 --- a/code/game/mecha/equipment/mecha_equipment.dm +++ b/code/game/mecha/equipment/mecha_equipment.dm @@ -11,7 +11,8 @@ var/equip_ready = 1 //whether the equipment is ready for use. (or deactivated/activated for static stuff) var/energy_drain = 0 var/obj/mecha/chassis = null - var/range = MELEE //bitFflags + ///Bitflag. Determines the range of the equipment. + var/range = MECHA_MELEE var/salvageable = 1 var/selectable = 1 // Set to 0 for passive equipment such as mining scanner or armor plates var/harmful = FALSE //Controls if equipment can be used to attack by a pacifist. @@ -59,10 +60,10 @@ return txt /obj/item/mecha_parts/mecha_equipment/proc/is_ranged()//add a distance restricted equipment. Why not? - return range&RANGED + return range&MECHA_RANGED /obj/item/mecha_parts/mecha_equipment/proc/is_melee() - return range&MELEE + return range&MECHA_MELEE /obj/item/mecha_parts/mecha_equipment/proc/action_checks(atom/target) diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 29a5100b..a2f8bb57 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -34,7 +34,7 @@ icon = 'icons/obj/machines/sleeper.dmi' icon_state = "sleeper" energy_drain = 20 - range = MELEE + range = MECHA_MELEE equip_cooldown = 20 var/mob/living/carbon/patient = null var/inject_amount = 10 @@ -252,7 +252,7 @@ var/synth_speed = 5 //[num] reagent units per cycle energy_drain = 10 var/mode = 0 //0 - fire syringe, 1 - analyze reagents. - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED equip_cooldown = 10 /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/Initialize() @@ -527,7 +527,7 @@ desc = "Equipment for medical exosuits. Generates a focused beam of medical nanites." icon_state = "mecha_medigun" energy_drain = 10 - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED equip_cooldown = 0 var/obj/item/gun/medbeam/mech/medigun materials = list(MAT_METAL = 15000, MAT_GLASS = 8000, MAT_PLASMA = 3000, MAT_GOLD = 8000, MAT_DIAMOND = 2000) diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm index a8ba9850..7fb86b9d 100644 --- a/code/game/mecha/equipment/tools/other_tools.dm +++ b/code/game/mecha/equipment/tools/other_tools.dm @@ -10,7 +10,7 @@ icon_state = "mecha_teleport" equip_cooldown = 150 energy_drain = 1000 - range = RANGED + range = MECHA_RANGED /obj/item/mecha_parts/mecha_equipment/teleporter/action(atom/target) if(!action_checks(target) || is_centcom_level(loc.z)) @@ -30,7 +30,7 @@ icon_state = "mecha_wholegen" equip_cooldown = 50 energy_drain = 300 - range = RANGED + range = MECHA_RANGED /obj/item/mecha_parts/mecha_equipment/wormhole_generator/action(atom/target) @@ -73,7 +73,7 @@ icon_state = "mecha_teleport" equip_cooldown = 10 energy_drain = 100 - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED var/atom/movable/locked var/mode = 1 //1 - gravsling 2 - gravpush @@ -350,7 +350,7 @@ name = "exosuit plasma converter" desc = "An exosuit module that generates power using solid plasma as fuel. Pollutes the environment." icon_state = "tesla" - range = MELEE + range = MECHA_MELEE var/coeff = 100 var/obj/item/stack/sheet/fuel var/max_fuel = 150000 diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index ea946518..9ffd40b1 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -164,7 +164,7 @@ icon_state = "mecha_exting" equip_cooldown = 5 energy_drain = 0 - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED /obj/item/mecha_parts/mecha_equipment/extinguisher/Initialize() . = ..() @@ -231,7 +231,7 @@ icon_state = "mecha_rcd" equip_cooldown = 10 energy_drain = 250 - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED item_flags = NO_MAT_REDEMPTION var/mode = 0 //0 - deconstruct, 1 - wall or floor, 2 - airlock. diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index c0c3795e..bce75278 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -1,6 +1,6 @@ /obj/item/mecha_parts/mecha_equipment/weapon name = "mecha weapon" - range = RANGED + range = MECHA_RANGED var/projectile var/fire_sound var/projectiles_per_shot = 1 @@ -154,7 +154,7 @@ icon_state = "mecha_honker" energy_drain = 200 equip_cooldown = 150 - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED kickback = FALSE /obj/item/mecha_parts/mecha_equipment/weapon/honker/can_attach(obj/mecha/combat/honker/M) @@ -405,7 +405,7 @@ icon_state = "mecha_punching_glove" energy_drain = 250 equip_cooldown = 20 - range = MELEE|RANGED + range = MECHA_MELEE|MECHA_RANGED missile_range = 5 projectile = /obj/item/punching_glove fire_sound = 'sound/items/bikehorn.ogg' diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index caac0739..2d182516 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1,17 +1,3 @@ -#define MECHA_INT_FIRE (1<<0) -#define MECHA_INT_TEMP_CONTROL (1<<1) -#define MECHA_INT_SHORT_CIRCUIT (1<<2) -#define MECHA_INT_TANK_BREACH (1<<3) -#define MECHA_INT_CONTROL_LOST (1<<4) - -#define MELEE 1 -#define RANGED 2 - -#define FRONT_ARMOUR 1 -#define SIDE_ARMOUR 2 -#define BACK_ARMOUR 3 - - /obj/mecha name = "mecha" desc = "Exosuit" @@ -35,9 +21,9 @@ max_integrity = 300 //max_integrity is base health var/deflect_chance = 10 //chance to deflect the incoming projectiles, hits, or lesser the effect of ex_act. armor = list("melee" = 20, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - var/list/facing_modifiers = list(FRONT_ARMOUR = 1.5, SIDE_ARMOUR = 1, BACK_ARMOUR = 0.5) + var/list/facing_modifiers = list(MECHA_FRONT_ARMOUR = 1.5, MECHA_SIDE_ARMOUR = 1, MECHA_BACK_ARMOUR = 0.5) var/obj/item/stock_parts/cell/cell - var/state = 0 + var/construction_state = MECHA_LOCKED var/list/log = new var/last_message = 0 var/add_req_access = 1 @@ -436,7 +422,7 @@ return if(user.incapacitated()) return - if(state) + if(construction_state) occupant_message("Maintenance protocols in effect.") return if(!get_charge()) @@ -519,7 +505,7 @@ occupant_message("Unable to move while connected to the air system port!") last_message = world.time return 0 - if(state) + if(construction_state) occupant_message("Maintenance protocols in effect.") return return domove(direction) @@ -689,7 +675,7 @@ //Transfer from core or card to mech. Proc is called by mech. switch(interaction) if(AI_TRANS_TO_CARD) //Upload AI from mech to AI card. - if(!state) //Mech must be in maint mode to allow carding. + if(construction_state) //Mech must be in maint mode to allow carding. to_chat(user, "[name] must have maintenance protocols active in order to allow a transfer.") return AI = occupant diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index 62a62b56..b7d59c6a 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -1,11 +1,11 @@ /obj/mecha/proc/get_armour_facing(relative_dir) switch(relative_dir) if(0) // BACKSTAB! - return facing_modifiers[BACK_ARMOUR] + return facing_modifiers[MECHA_BACK_ARMOUR] if(45, 90, 270, 315) - return facing_modifiers[SIDE_ARMOUR] + return facing_modifiers[MECHA_SIDE_ARMOUR] if(225, 180, 135) - return facing_modifiers[FRONT_ARMOUR] + return facing_modifiers[MECHA_FRONT_ARMOUR] return 1 //always return non-0 /obj/mecha/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) @@ -199,23 +199,23 @@ else to_chat(user, "Maintenance protocols disabled by operator.") else if(istype(W, /obj/item/wrench)) - if(state==1) - state = 2 + if(construction_state==1) + construction_state = 2 to_chat(user, "You undo the securing bolts.") - else if(state==2) - state = 1 + else if(construction_state==2) + construction_state = 1 to_chat(user, "You tighten the securing bolts.") return else if(istype(W, /obj/item/crowbar)) - if(state==2) - state = 3 + if(construction_state==2) + construction_state = 3 to_chat(user, "You open the hatch to the power unit.") - else if(state==3) - state=2 + else if(construction_state==3) + construction_state=2 to_chat(user, "You close the hatch to the power unit.") return else if(istype(W, /obj/item/stack/cable_coil)) - if(state == 3 && (internal_damage & MECHA_INT_SHORT_CIRCUIT)) + if(construction_state == 3 && (internal_damage & MECHA_INT_SHORT_CIRCUIT)) var/obj/item/stack/cable_coil/CC = W if(CC.use(2)) clearInternalDamage(MECHA_INT_SHORT_CIRCUIT) @@ -227,19 +227,19 @@ if(internal_damage & MECHA_INT_TEMP_CONTROL) clearInternalDamage(MECHA_INT_TEMP_CONTROL) to_chat(user, "You repair the damaged temperature controller.") - else if(state==3 && cell) + else if(construction_state==3 && cell) cell.forceMove(loc) cell = null - state = 4 + construction_state = 4 to_chat(user, "You unscrew and pry out the powercell.") log_message("Powercell removed") - else if(state==4 && cell) - state=3 + else if(construction_state==4 && cell) + construction_state=3 to_chat(user, "You screw the cell in place.") return else if(istype(W, /obj/item/stock_parts/cell)) - if(state==4) + if(construction_state==4) if(!cell) if(!user.transferItemToLoc(W, src)) return diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 79ee7435..0bab48da 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -199,8 +199,8 @@ [add_req_access?"Edit operation keycodes":null] - [maint_access?"[(state>0) ? "Terminate" : "Initiate"] maintenance protocol":null] - [(state>0) ?"Set Cabin Air Pressure":null] + [maint_access?"[(construction_state > MECHA_LOCKED) ? "Terminate" : "Initiate"] maintenance protocol":null] + [(construction_state > MECHA_LOCKED) ?"Set Cabin Air Pressure":null] "} user << browse(., "window=exosuit_maint_console") @@ -231,15 +231,15 @@ if(href_list["maint_access"] && maint_access) var/mob/user = afilter.getMob("user") if(user) - if(state==0) - state = 1 + if(construction_state == MECHA_LOCKED) + construction_state = MECHA_SECURE_BOLTS to_chat(user, "The securing bolts are now exposed.") - else if(state==1) - state = 0 + else if(construction_state == MECHA_SECURE_BOLTS) + construction_state = MECHA_LOCKED to_chat(user, "The securing bolts are now hidden.") output_maintenance_dialog(afilter.getObj("id_card"),user) - if(href_list["set_internal_tank_valve"] && state >=1) + if(href_list["set_internal_tank_valve"] && construction_state) var/mob/user = afilter.getMob("user") if(user) var/new_pressure = input(user,"Input new output pressure","Pressure setting",internal_tank_valve) as num @@ -305,7 +305,7 @@ send_byjax(src.occupant,"exosuit.browser","t_id_upload","[add_req_access?"L":"Unl"]ock ID upload panel") if(href_list["toggle_maint_access"]) - if(state) + if(construction_state) occupant_message("Maintenance protocols in effect") return maint_access = !maint_access diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm index 2e783d84..0846b695 100644 --- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm @@ -78,7 +78,7 @@ var/do_ranged = 0 for(var/equip in mecha.equipment) var/obj/item/mecha_parts/mecha_equipment/ME = equip - if(ME.range & RANGED) + if(ME.range & MECHA_RANGED) do_ranged = 1 break if(do_ranged) @@ -144,7 +144,7 @@ ME.rearm() -/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/get_mecha_equip_by_flag(flag = RANGED) +/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/get_mecha_equip_by_flag(flag = MECHA_RANGED) . = list() if(mecha) for(var/equip in mecha.equipment) @@ -160,7 +160,7 @@ if(mecha) mecha_reload() mecha_face_target(A) - var/list/possible_weapons = get_mecha_equip_by_flag(RANGED) + var/list/possible_weapons = get_mecha_equip_by_flag(MECHA_RANGED) if(possible_weapons.len) var/obj/item/mecha_parts/mecha_equipment/ME = pick(possible_weapons) //so we don't favor mecha.equipment[1] forever if(ME.action(A)) @@ -173,7 +173,7 @@ /mob/living/simple_animal/hostile/syndicate/mecha_pilot/AttackingTarget() if(mecha) - var/list/possible_weapons = get_mecha_equip_by_flag(MELEE) + var/list/possible_weapons = get_mecha_equip_by_flag(MECHA_MELEE) if(possible_weapons.len) var/obj/item/mecha_parts/mecha_equipment/ME = pick(possible_weapons) mecha_face_target(target) diff --git a/tgstation.dme b/tgstation.dme index 641379d1..e9c6c7ec 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -61,6 +61,7 @@ #include "code\__DEFINES\maps.dm" #include "code\__DEFINES\maths.dm" #include "code\__DEFINES\MC.dm" +#include "code\__DEFINES\mecha.dm" #include "code\__DEFINES\medal.dm" #include "code\__DEFINES\melee.dm" #include "code\__DEFINES\menu.dm"