Skip to content

Commit

Permalink
Woah! Nice Clock(work tools)! (Citadel-Station-13#6068)
Browse files Browse the repository at this point in the history
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

![image](https://github.com/Citadel-Station-13/Citadel-Station-13-RP/assets/58029438/352582f6-4b38-4a9f-9f68-2f0d976ade69)

While Clockwork content is currently still InDev™, this doesn't mean we
can't add a few crumbs from them early. This adds a new loot pool, new
tools, and a new crafting recipe.

Clockwork tools: Equal in power (stronger in the welder's case) to the
Alien Versions, with different use sounds, and a description for each.
In addition: The clockwork multitool has wirevision, equal to the alien
multi, and thus, the code has been changed accordingly.

The Replica Clockwork Welder: Looks like the real clockwork welder, but
has half the capacity, and .4 use speed, with no eye protection. It
regenerates on its own, though, and requires an experimental welder to
make. A nice minor upgrade, and not a complete hazard to use.
 

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
These things were bound to make it into the game one way or another, so
why not get that small piece of the bandaid done and over with. We can
corrupt them later when Clockwork Content shifts from InDev, to
something more tangible.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

:cl:
add: Adds clockwork tools, replica clockwork welders, and the clockwork
tool spawning pool. Currently, it's hooked up to the rouge miner
generation so they can appear in game, at prob(1)
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: TheObserver-sys <[email protected]>
  • Loading branch information
TheObserver-sys and TheObserver-sys authored Oct 20, 2023
1 parent 3c1e91b commit 000b602
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 1 deletion.
15 changes: 15 additions & 0 deletions code/__DEFINES/spans.dm
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
#define SPAN_ALERTSYNDIE(str) ("<span class='alertsyndie'>[str]</span>")
#define SPAN_ALERTWARNING(str) ("<span class='alertwarning'>[str]</span>")
#define SPAN_ALIEN(str) ("<span class='alien'>[str]</span>")
#define SPAN_ALLOY(str) ("<span class = 'alloy'>[str]</span>")
#define SPAN_ALLOYH(str) ("<span class = 'heavy_alloy'>[str]</span>")
#define SPAN_ANNOUNCE(str) ("<span class='announce'>[str]</span>")
#define SPAN_BIG(str) ("<span class='big'>[str]</span>")
#define SPAN_BIGICON(str) ("<span class='bigicon'>[str]</span>")
Expand All @@ -27,6 +29,10 @@
#define SPAN_BOLDNICEGREEN(str) ("<span class='boldnicegreen'>[str]</span>")
#define SPAN_BOLDNOTICE(str) ("<span class='boldnotice'>[str]</span>")
#define SPAN_BOLDWARNING(str) ("<span class='boldwarning'>[str]</span>")
#define SPAN_BRASS(str) ("<span class = 'brass'>[str]</span>")
#define SPAN_BRASSH(str) ("<span class = 'heavy_brass'>[str]</span>")
#define SPAN_BRASSL(str) ("<span class = 'large_brass'>[str]</span>")
#define SPAN_BRASSBIG(str) ("<span class = 'big_brass'>[str]</span>")
#define SPAN_CAUTION(str) ("<span class='caution'>[str]</span>")
#define SPAN_CENTCOMRADIO(str) ("<span class='centcomradio'>[str]</span>")
#define SPAN_CHANGELING(str) ("<span class='changeling'>[str]</span>")
Expand Down Expand Up @@ -70,6 +76,8 @@
#define SPAN_HOLOPARASITE(str) ("<span class='holoparasite'>[str]</span>")
#define SPAN_HYPNOPHRASE(str) ("<span class='hypnophrase'>[str]</span>")
#define SPAN_ICON(str) ("<span class='icon'>[str]</span>")
#define SPAN_INATHNEQ(str) ("<span class = 'inathneq'>[str]</span>")
#define SPAN_INATHNEQL(str) ("<span class = 'inathneq_large'>[str]</span>")
#define SPAN_INFO(str) ("<span class='info'>[str]</span>")
#define SPAN_INFOPLAIN(str) ("<span class='infoplain'>[str]</span>")
#define SPAN_INTERFACE(str) ("<span class='interface'>[str]</span>")
Expand All @@ -87,6 +95,12 @@
#define SPAN_NAME(str) ("<span class='name'>[str]</span>")
#define SPAN_NARSIE(str) ("<span class='narsie'>[str]</span>")
#define SPAN_NARSIESMALL(str) ("<span class='narsiesmall'>[str]</span>")
#define SPAN_NEOVGRE(str) ("<span class = 'neovgre'> [str]</span>")
#define SPAN_NEOVGREL(str) ("<span class = 'neovgre_large'> [str]</span>")
#define SPAN_NEZBERE(str) ("<span class = 'nezbere'>[str]</span>")
#define SPAN_NEZBIG(str) ("<span class = 'nezbere_large'>[str]</span>")
#define SPAN_NZCRENTR(str) ("<span class = 'nzcrentr'>[str]</span>")
#define SPAN_NZCRENTRL(str) ("<span class = 'nzcrentr_large'>[str]</span>")
#define SPAN_NICEGREEN(str) ("<span class='nicegreen'>[str]</span>")
#define SPAN_NOTICE(str) ("<span class='notice'>[str]</span>")
#define SPAN_NOTICEALIEN(str) ("<span class='noticealien'>[str]</span>")
Expand All @@ -96,6 +110,7 @@
#define SPAN_PREFIX(str) ("<span class='prefix'>[str]</span>")
#define SPAN_PURPLE(str) ("<span class='purple'>[str]</span>")
#define SPAN_RADIO(str) ("<span class='radio'>[str]</span>")
#define SPAN_RATVAR(str) ("<span class = 'ratvar'> [str]</span>")
#define SPAN_REALLYBIG(str) ("<span class='reallybig'>[str]</span>")
#define SPAN_RED(str) ("<span class='red'>[str]</span>")
#define SPAN_REDTEAMRADIO(str) ("<span class='redteamradio'>[str]</span>")
Expand Down
15 changes: 15 additions & 0 deletions code/datums/recipe/crafting_recipes/recipes_misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,21 @@
subcategory = CAT_TOOL
category = CAT_MISCELLANEOUS

/datum/crafting_recipe/clockwelder
name = "Replica Clockwork Welding Tool"
tools = list(/obj/item/cell/high,
/obj/item/reagent_containers/glass/beaker)
result = /obj/item/weldingtool/experimental/brass
reqs = list(/obj/item/weldingtool/experimental = 1,
/obj/item/stack/cable_coil = 20,
/obj/item/stack/material/brass = 5,
/datum/reagent/water = 25
)
time = 40
//always_available = FALSE
subcategory = CAT_TOOL
category = CAT_MISCELLANEOUS

/datum/crafting_recipe/brass_wirecutters
name = "Brass Wirecutters"
tools = list(/obj/item/cell/high,
Expand Down
2 changes: 1 addition & 1 deletion code/datums/wires/wires.dm
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@
// if(user.can_admin_interact())
// return TRUE
var/obj/item/I = user.get_active_held_item()
if(istype(I, /obj/item/multitool/alien))
if(istype(I, /obj/item/multitool/alien) || istype(I, /obj/item/multitool/clockwork))
return TRUE
return FALSE

Expand Down
12 changes: 12 additions & 0 deletions code/game/objects/items/devices/multitool.dm
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,18 @@
origin_tech = list(TECH_MAGNET = 5, TECH_ENGINEERING = 5)
colorable = 0

/obj/item/multitool/clockwork
name = "clockwork multitool"
desc = "A slender brass device, adorned with three prongs pulsing with energy, a faintly glowing red gem, and a screen in the shape of an eye."
icon = 'icons/obj/clockwork.dmi'
icon_state = "multitool"
tool_speed = 0.1
colorable = 0

/obj/item/multitool/clockwork/examine(mob/user, dist)
. = ..()
. += SPAN_NZCRENTR("The multitool seems to flash and pulse with impatience, the 'eye' appearing to be both bored and frustrated.")

//Colored Variants
/obj/item/multitool/red
color_overlay = "multi_r"
Expand Down
12 changes: 12 additions & 0 deletions code/game/objects/items/tools/crowbar.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,18 @@
icon_state = "crowbar_brass"
tool_speed = 0.75

/obj/item/tool/crowbar/clockwork
name = "clockwork crowbar"
desc = "An engraved piece of compressed brass, capable of prying things up and open with un-natural ease."
icon = 'icons/obj/clockwork.dmi'
icon_state = "crowbar_clock"
tool_sound = 'sound/magic/clockwork/fellowship_armory.ogg'
tool_speed = 0.1

/obj/item/tool/crowbar/clockwork/examine(mob/user, dist)
. = ..()
. += SPAN_BRASS("The handle feels almost frozen when moving to pry, cementing the hand grippping it to the handle, making leverage easier.")

/datum/category_item/catalogue/anomalous/precursor_a/alien_crowbar
name = "Precursor Alpha Object - Hard Light Pry Tool"
desc = "An object which bears striking resemblence to the common crowbar. \
Expand Down
13 changes: 13 additions & 0 deletions code/game/objects/items/tools/screwdriver.dm
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,19 @@
tool_speed = 0.75
random_color = FALSE

/obj/item/tool/screwdriver/clockwork
name = "clockwork screwdriver"
desc = "An all-brass screwdriver with what looks to be an uncut driver. Despite that, it seems to fit any channel it is put in."
icon = 'icons/obj/clockwork.dmi'
icon_state = "screwdriver_clock"
tool_sound = 'sound/machines/clockcult/integration_cog_install.ogg'
tool_speed = 0.1
random_color = FALSE

/obj/item/tool/screwdriver/clockwork/examine(mob/user, dist)
. = ..()
. += SPAN_NEZBERE("When focused intensely upon, the screwdriver's head seems to shift between multiple states all at once, common and uncommon drivers for various screw channels. Additionally, when inserted into a screw channel, it exhibits intense magnetism.")

/datum/category_item/catalogue/anomalous/precursor_a/alien_screwdriver
name = "Precursor Alpha Object - Hard Light Torgue Tool"
desc = "This appears to be a tool, with a solid handle, and a thin hard light \
Expand Down
26 changes: 26 additions & 0 deletions code/game/objects/items/tools/weldingtool.dm
Original file line number Diff line number Diff line change
Expand Up @@ -447,6 +447,32 @@
nextrefueltick = world.time + 10
reagents.add_reagent("fuel", 1)

/obj/item/weldingtool/experimental/brass
name = "replica clockwork welding tool"
desc = "A re-engineered experimental welder. It sports anti-corrosive brass fittings, and a further refined fuel system."
icon = 'icons/obj/clockwork.dmi'
icon_state = "clockwelder"
max_fuel = 50
tool_speed = 0.4
flame_color = "#990000" // deep red, as the sprite shows
change_icons = 0

/obj/item/weldingtool/experimental/clockwork
name = "clockwork welding tool"
desc = "An antique welding tool, adorned with brass, and a brilliant red gem as the fuel tank. It neither runs out of fuel, nor harms the unprotected eye."
icon = 'icons/obj/clockwork.dmi'
icon_state = "clockwelder"
max_fuel = 100
eye_safety_modifier = 2
tool_sound = 'sound/machines/clockcult/steam_whoosh.ogg'
tool_speed = 0.1
flame_color = "#990000" // deep red, as above, so below
change_icons = 0

/obj/item/weldingtool/experimental/clockwork/examine(mob/user, dist)
. = ..()
. += SPAN_NEZBERE("Sometimes, the best masterworks are lessons in rediscovering simplicity. Thousands upon thousands of these passed through the Great Forgeworks, and out into the void. Treasure this find, friend.")

/obj/item/weldingtool/experimental/hybrid
name = "strange welding tool"
desc = "An experimental welder capable of synthesizing its own fuel from spatial waveforms. It's like welding with a star!"
Expand Down
12 changes: 12 additions & 0 deletions code/game/objects/items/tools/wirecutters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@
tool_speed = 0.75
random_color = FALSE

/obj/item/tool/wirecutters/clockwork
name = "clockwork wirecutters"
desc = "An antiquated pair of wirecutters, fashioned out of extremely dense brass."
icon = 'icons/obj/clockwork.dmi'
icon_state = "cutters_clock"
tool_speed = 0.1
random_color = FALSE

/obj/item/tool/wirecutters/clockwork/examine(mob/user, dist)
. = ..()
. += SPAN_NEZBERE("The blades are utterly dull and impotent when placed against flesh, yet cuts with an unreasonable, almost murderously sharp edge when set upon wires and metal sheets.")

/datum/category_item/catalogue/anomalous/precursor_a/alien_wirecutters
name = "Precursor Alpha Object - Wire Seperator"
desc = "An object appearing to have a tool shape. It has two handles, and two \
Expand Down
13 changes: 13 additions & 0 deletions code/game/objects/items/tools/wrench.dm
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,19 @@
tool_speed = 0.75
random_color = FALSE

/obj/item/tool/wrench/clockwork
name = "clockwork wrench"
desc = "A wrench cast completely out of brass, with a head that perfectly affixes to anything it's braced around."
icon = 'icons/obj/clockwork.dmi'
icon_state = "wrench_clock"
tool_sound = 'sound/machines/clockcult/integration_cog_install.ogg'
tool_speed = 0.1
random_color = FALSE

/obj/item/tool/wrench/clockwork/examine(mob/user, dist)
. = ..()
. += SPAN_BRASS("Holding onto the tool makes it thrum in your hand, as if anticipating the work that needs to be done.")

/obj/item/tool/wrench/cyborg
name = "automatic wrench"
desc = "An advanced robotic wrench. Can be found in industrial synthetic shells."
Expand Down
14 changes: 14 additions & 0 deletions code/game/objects/random/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,19 @@
/obj/item/stack/cable_coil/alien,
/obj/item/multitool/alien)

/obj/random/tool/clockwork
name = "random clockwork tool"
desc = "This is a random clockwork tool"
icon_state = "clockwelder"

/obj/random/tool/clockwork/item_to_spawn()
return pick (/obj/item/tool/screwdriver/clockwork,
/obj/item/tool/wirecutters/clockwork,
/obj/item/weldingtool/experimental/clockwork,
/obj/item/tool/crowbar/clockwork,
/obj/item/tool/wrench/clockwork,
/obj/item/multitool/clockwork)

/obj/random/technology_scanner
name = "random scanner"
desc = "This is a random technology scanner."
Expand Down Expand Up @@ -975,6 +988,7 @@
prob(2);/obj/random/multiple/minevault,
prob(1);/obj/random/coin,
prob(1);/obj/random/drinkbottle,
prob(1);/obj/random/tool/clockwork,
prob(1);/obj/random/tool/alien)

/obj/random/slimecore
Expand Down
Binary file added icons/obj/clockwork.dmi
Binary file not shown.

0 comments on commit 000b602

Please sign in to comment.