Skip to content

Commit

Permalink
some unimplented stuff FTM
Browse files Browse the repository at this point in the history
  • Loading branch information
Paxilmaniac committed Dec 8, 2024
1 parent 0da69fb commit dba9b03
Show file tree
Hide file tree
Showing 8 changed files with 224 additions and 0 deletions.
2 changes: 2 additions & 0 deletions code/__DEFINES/machines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
// DOPPLER EDIT ADDITION
/// Can be made by the orderable colony fabricator
#define COLONY_FABRICATOR (1<<11)
/// Can be made in emergency damage lathes
#define DAMAGE_FAB (1<<12)
// DOPPLER EDIT END

#define HYPERTORUS_INACTIVE 0 // No or minimal energy
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/~doppler_defines/techweb_nodes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
#define TECHWEB_NODE_COLONY_FLATPACKS "colony_fabricator_flatpacks"
#define TECHWEB_NODE_COLONY_STRUCTURES "colony_fabricator_structures"
#define TECHWEB_NODE_COLONY_TOOLS "colony_fabricator_tools"
#define TECHWEB_NODE_EMERGENCY_FAB "emergency_fab_designs"
7 changes: 7 additions & 0 deletions modular_doppler/damage_control/code/breach_gear.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
// Yellow tank but empty, for the printer

/obj/item/tank/internals/oxygen/yellow/empty

/obj/item/tank/internals/oxygen/yellow/empty/populate_gas()
return

// Breach helmet, its a hardhat but cooler

/obj/item/clothing/head/utility/hardhat/welding/doppler_dc
Expand Down
82 changes: 82 additions & 0 deletions modular_doppler/damage_control/code/emergency_fab.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
/obj/machinery/rnd/production/damage_control_fab
name = "emergency repair lathe"
desc = "A small little machine with no material insertion ports and no power connectors. \
Able to use the small trickle of power an internal source creates to slowly create \
essential damage control equipment."
icon = 'modular_doppler/damage_control/icons/machines.dmi'
icon_state = "damage_fab"
base_icon_state = "damage_fab"
circuit = null
production_animation = "damage_fab_working"
light_color = LIGHT_COLOR_INTENSE_RED
light_power = 5
allowed_buildtypes = DAMAGE_FAB
/// The item we turn into when repacked
var/repacked_type = /obj/item/flatpacked_machine/damage_lathe

/obj/machinery/rnd/production/damage_control_fab/Initialize(mapload)
. = ..()
AddElement(/datum/element/repackable, repacked_type, 5 SECONDS)
stored_research = locate(/datum/techweb/admin) in SSresearch.techwebs
if(!mapload)
flick("damage_fab_deploy", src)

// formerly NO_DECONSTRUCTION
/obj/machinery/rnd/production/damage_control_fab/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/screwdriver)
return NONE

/obj/machinery/rnd/production/damage_control_fab/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct)
return NONE

/obj/machinery/rnd/production/damage_control_fab/default_pry_open(obj/item/crowbar, close_after_pry, open_density, closed_density)
return NONE

/obj/machinery/rnd/production/damage_control_fab/start_printing_visuals()
set_light(l_range = 1.5)
icon_state = "colony_lathe_working"
update_appearance()

/obj/machinery/rnd/production/damage_control_fab/finalize_build()
. = ..()
set_light(l_range = 0)
icon_state = base_icon_state
update_appearance()
flick("colony_lathe_finish_print", src)

/obj/machinery/rnd/production/damage_control_fab/build_efficiency()
return 1

// We take from all nodes even unresearched ones
/obj/machinery/rnd/production/damage_control_fab/update_designs()
var/previous_design_count = cached_designs.len

cached_designs.Cut()

for(var/design_id in SSresearch.techweb_designs)
var/datum/design/design = SSresearch.techweb_designs[design_id]

if((isnull(allowed_department_flags) || (design.departmental_flags & allowed_department_flags)) && (design.build_type & allowed_buildtypes))
cached_designs |= design

var/design_delta = cached_designs.len - previous_design_count

if(design_delta > 0)
say("Received [design_delta] new design[design_delta == 1 ? "" : "s"].")
playsound(src, 'sound/machines/beep/twobeep_high.ogg', 50, TRUE)

update_static_data_for_all_viewers()

// Item for carrying the lathe around and building it

/obj/item/flatpacked_machine/damage_lathe
name = "packed emergency repair lathe"
/// For all flatpacked machines, set the desc to the type_to_deploy followed by ::desc to reuse the type_to_deploy's description
desc = /obj/machinery/rnd/production/damage_control_fab::desc
icon = 'modular_doppler/damage_control/icons/packed_machines.dmi'
icon_state = "damage_lathe_packed"
w_class = WEIGHT_CLASS_BULKY
type_to_deploy = /obj/machinery/rnd/production/damage_control_fab
deploy_time = 4 SECOND

Check failure on line 79 in modular_doppler/damage_control/code/emergency_fab.dm

View workflow job for this annotation

GitHub Actions / Run Linters

got 'SECOND', expected one of: operator, field access, 'as', 'in', ';'

Check failure on line 79 in modular_doppler/damage_control/code/emergency_fab.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of object statement

Check failure on line 79 in modular_doppler/damage_control/code/emergency_fab.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected dedent

Check failure on line 79 in modular_doppler/damage_control/code/emergency_fab.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0001: Expected end of object statement

Check warning on line 79 in modular_doppler/damage_control/code/emergency_fab.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD0000: Error recovery had to skip to modular_doppler/damage_control/code/emergency_fab.dm:81:1

/obj/item/flatpacked_machine/damage_lathe/give_manufacturer_examine()
return
130 changes: 130 additions & 0 deletions modular_doppler/damage_control/code/emergency_fab_designs.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
/datum/techweb_node/emergency_fab_designs
id = TECHWEB_NODE_EMERGENCY_FAB
display_name = "Emergency Repair Lathe Designs"
description = "All of the designs that work for the emergency repair lathe."
design_ids = list(
"breach_bag_doppla",
"breach_helmet_doppla",
"empty_yellow_tank_doppla",
"door_seal_doppla",
"damage_fab_plastic_wall_panel",
"damage_fab_medbed",
"damage_fab_crowbar",
"damage_fab_flare",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 50000000000000) // God save you
hidden = TRUE
show_on_wiki = FALSE
starting_node = TRUE

// Breach helmet

/datum/design/breach_helmet_doppla
name = "Breach Helmet"
id = "breach_helmet_doppla"
build_type = DAMAGE_FAB
build_path = /obj/item/storage/bag/breach_bag
construction_time = 2 MINUTES
materials = list()
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ATMOSPHERICS,
)

// Entire filled breach bag

/datum/design/breach_bag_doppla
name = "Damage Control Ensemble Bag"
id = "breach_bag_doppla"
build_type = DAMAGE_FAB
build_path = /obj/item/storage/bag/breach_bag
construction_time = 7 MINUTES
materials = list()
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ATMOSPHERICS,
)

// Entire filled breach bag

/datum/design/empty_yellow_tank_doppla
name = "Empty Internals Tank"
id = "empty_yellow_tank_doppla"
build_type = DAMAGE_FAB
build_path = /obj/item/tank/internals/oxygen/yellow/empty
construction_time = 1 MINUTES
materials = list()
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ATMOSPHERICS,
)

// Door seals

/datum/design/door_seal_doppla
name = "Door Seal"
id = "door_seal_doppla"
build_type = DAMAGE_FAB
build_path = /obj/item/door_seal
construction_time = 2 MINUTES
materials = list()
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING,
)

// Plastic wall panels are good for sealing holes in the wall

/datum/design/damage_fab_plastic_wall
name = "Plastic Paneling"
id = "damage_fab_plastic_wall_panel"
build_type = DAMAGE_FAB
materials = list()
build_path = /obj/item/stack/sheet/plastic_wall_panel
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING,
)
construction_time = 10 SECONDS

// Rollerbeds for saving people

/datum/design/damage_fab_rollerbed
name = "Emergency Medical Bed"
id = "damage_fab_medbed"
build_type = DAMAGE_FAB
materials = list()
build_path = /obj/item/emergency_bed
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL,
)
construction_time = 1 MINUTES

// Bar with crows in it

/datum/design/damage_fab_rollerbed
name = "Emergency Crowbar"
id = "damage_fab_crowbar"
build_type = DAMAGE_FAB
materials = list()
build_path = /obj/item/crowbar/red
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING,
)
construction_time = 1 MINUTES

// Flare

/datum/design/damage_fab_flare
name = "Flare"
id = "damage_fab_flare"
build_type = DAMAGE_FAB
materials = list()
build_path = /obj/item/flashlight/flare
category = list(
RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_ENGINEERING,
)
construction_time = 30 SECONDS
Binary file not shown.
Binary file not shown.
2 changes: 2 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6626,6 +6626,8 @@
#include "modular_doppler\cryosleep\code\objective.dm"
#include "modular_doppler\cryosleep\code\objects\structures\signs\signs_maps.dm"
#include "modular_doppler\damage_control\code\breach_gear.dm"
#include "modular_doppler\damage_control\code\emergency_fab.dm"
#include "modular_doppler\damage_control\code\emergency_fab_designs.dm"
#include "modular_doppler\deathmatch\deathmatch_loadouts.dm"
#include "modular_doppler\deathmatch\deathmatch_maps.dm"
#include "modular_doppler\deathmatch\deathmatch_structures.dm"
Expand Down

0 comments on commit dba9b03

Please sign in to comment.