From d4643f032caec86fc40fe0ef7e7eb1e99b0509b6 Mon Sep 17 00:00:00 2001 From: Joan Lung Date: Fri, 4 Nov 2016 10:35:00 -0400 Subject: [PATCH] Proselytizer conversion now accounts for existing materials better (#21334) * Proselytizer conversion now accounts for existing materials better * shitfuck. * move the god damn defines --- code/__DEFINES/clockcult.dm | 6 ++++ code/__DEFINES/construction.dm | 8 ++++++ .../clock_helpers/proselytizer_helpers.dm | 28 +++++++++++++++---- code/game/objects/structures/girders.dm | 6 ---- tgstation.dme | 1 + 5 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 code/__DEFINES/construction.dm diff --git a/code/__DEFINES/clockcult.dm b/code/__DEFINES/clockcult.dm index 89a39c9ab56..6f3fd6e9088 100644 --- a/code/__DEFINES/clockcult.dm +++ b/code/__DEFINES/clockcult.dm @@ -51,6 +51,12 @@ var/global/clockwork_gateway_activated = FALSE //if a gateway to the celestial d #define REPLICANT_WALL_TOTAL REPLICANT_WALL_MINUS_FLOOR+REPLICANT_FLOOR //how much alloy is in a clockwork wall and the floor under it +#define REPLICANT_ROD REPLICANT_ALLOY_UNIT*0.01 //amount of replicant alloy in one rod + +#define REPLICANT_METAL REPLICANT_ALLOY_UNIT*0.02 //amount of replicant alloy in one sheet of metal + +#define REPLICANT_PLASTEEL REPLICANT_ALLOY_UNIT*0.05 //amount of replicant alloy in one sheet of plasteel + #define RATVAR_ALLOY_CHECK "ratvar?" //when passed into can_use_alloy(), converts it into a check for if ratvar has woken/the proselytizer is debug //clockcult power defines diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm new file mode 100644 index 00000000000..f94a898fb88 --- /dev/null +++ b/code/__DEFINES/construction.dm @@ -0,0 +1,8 @@ +//Defines for construction states of various objects + +//girder construction states +#define GIRDER_NORMAL 0 +#define GIRDER_REINF_STRUTS 1 +#define GIRDER_REINF 2 +#define GIRDER_DISPLACED 3 +#define GIRDER_DISASSEMBLED 4 \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm index 3ba031ab064..ed270c74058 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -9,8 +9,20 @@ return FALSE //Turf conversion -/turf/closed/wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = SOUTH) +/turf/closed/wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //four sheets of metal + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 4), "spawn_dir" = SOUTH) + +/turf/closed/wall/mineral/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 2), "spawn_dir" = SOUTH) + +/turf/closed/wall/mineral/iron/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal, five rods + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 2) - (REPLICANT_ROD * 5), "spawn_dir" = SOUTH) + +/turf/closed/wall/mineral/cult/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //no metal + return list("operation_time" = 80, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL, "spawn_dir" = SOUTH) + +/turf/closed/wall/shuttle/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) //two sheets of metal + return list("operation_time" = 50, "new_obj_type" = /turf/closed/wall/clockwork, "alloy_cost" = REPLICANT_WALL_TOTAL - (REPLICANT_METAL * 2), "spawn_dir" = SOUTH) /turf/closed/wall/r_wall/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) return FALSE @@ -85,8 +97,7 @@ if(!proselytizer.metal_to_alloy) return FALSE var/prosel_cost = -amount*REPLICANT_FLOOR - var/prosel_time = -amount - return list("operation_time" = -prosel_time, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_cost, "spawn_dir" = SOUTH) + return list("operation_time" = amount, "new_obj_type" = /obj/effect/overlay/temp/ratvar/beam/itemconsume, "alloy_cost" = prosel_cost, "spawn_dir" = SOUTH) //Airlock conversion /obj/machinery/door/airlock/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) @@ -109,6 +120,10 @@ new_dir = FALSE prosel_time = 30 prosel_cost = REPLICANT_STANDARD + if(reinf) + prosel_cost -= REPLICANT_ROD + if(reinf) + prosel_cost -= REPLICANT_ROD for(var/obj/structure/grille/G in get_turf(src)) addtimer(proselytizer, "proselytize", 0, FALSE, G, user) return list("operation_time" = prosel_time, "new_obj_type" = windowtype, "alloy_cost" = prosel_cost, "spawn_dir" = dir, "dir_in_new" = new_dir) @@ -137,7 +152,10 @@ //Girder conversion /obj/structure/girder/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - return list("operation_time" = 20, "new_obj_type" = /obj/structure/destructible/clockwork/wall_gear, "alloy_cost" = REPLICANT_GEAR, "spawn_dir" = SOUTH) + var/prosel_cost = REPLICANT_GEAR - (REPLICANT_METAL * 2) + if(state == GIRDER_REINF_STRUTS || state == GIRDER_REINF) + prosel_cost -= REPLICANT_PLASTEEL + return list("operation_time" = 20, "new_obj_type" = /obj/structure/destructible/clockwork/wall_gear, "alloy_cost" = prosel_cost, "spawn_dir" = SOUTH) //Hitting a clockwork structure will try to repair it. /obj/structure/destructible/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 7311da106e4..c64769834f6 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -1,9 +1,3 @@ -#define GIRDER_NORMAL 0 -#define GIRDER_REINF_STRUTS 1 -#define GIRDER_REINF 2 -#define GIRDER_DISPLACED 3 -#define GIRDER_DISASSEMBLED 4 - /obj/structure/girder name = "girder" icon_state = "girder" diff --git a/tgstation.dme b/tgstation.dme index 787508193e4..9ff61073718 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -27,6 +27,7 @@ #include "code\__DEFINES\clockcult.dm" #include "code\__DEFINES\clothing.dm" #include "code\__DEFINES\combat.dm" +#include "code\__DEFINES\construction.dm" #include "code\__DEFINES\contracts.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\flags.dm"