New Mech - The Nkarrdem, Janitor Supreme (#26453)

* Nkarrdem Mech - Initial Commit

* Fabricator category, garbage bag, module designs

* Added combat tech requirement to cleaning grenade launcher

* Fixed a comment's spacing

* Construction codersprites

* Construction path updated

* Open and Broken sprites

* Codersprites, Construction fixes, Wreckage

* Better spacing for equalities, better return bool

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Equality spacing

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* playsound boolean fix

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Mech part comment spacing

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Parts list parenthesis spacing

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Spacing and boolean returns

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Another boolean return

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* More comment spacing

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* More comment spacing

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Ditto

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Comment spacing

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Comment spacing

Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Snake cased floor_buffer, removed excess comment

* Enhanced floor buffer

* Whole lot of time format changes

* HUD warning message update

* Cutting cargo

* Max equipment fix

* Spray fixes

* Light replacer fixes and defines moved

* Mop sound cooldowns

* Formatting, autodoc, spacing, and chat alert fixes

* Emag warning

* Removed excess returns, added click when spray empty

* Minor refactor of cleaning_act, removed the async mopping

* Excess user

* Formatting, Typecaching

* Replaces to_chat with occupant_message

* Type def, attack log, and timer for CGL

* Moved light replacement logic to light object as fix() proc

* Free performance is free performance

* To chat fix

* replaceLight changes

* Ranged fix

* Moved autodoc

* Early return in mop refilling

* Reordered early returns in mop action

* Applied change to cleaning documentation

* Moved acrtion, removed excess subtype

* Spray moved to internal spray item, various fixes

* Removed excess

* Internal garbage storage for garbage magnet

* Janimech storage handling, effect when emptying into disposals, user check in handle_item_insertion

* Extraneous Return

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Var declaration fix

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
PollardTheDragon
2024-10-10 09:40:48 +00:00
committed by GitHub
co-authored by Burzah 1080pCat Luc
parent 62b65f8a91
commit ff8e0404b9
22 changed files with 915 additions and 46 deletions
+9 -5
View File
@@ -13,7 +13,9 @@
//Can normally be left alone, but needs to be defined if the thing being cleaned isn't necessarily the thing being clicked on,
//such as /obj/effect/rune/cleaning_act() bouncing to turf/simulated/cleaning_act().
/atom/proc/cleaning_act(mob/user, atom/cleaner, cleanspeed = 5 SECONDS, text_verb = "clean", text_description = " with [cleaner].", text_targetname = name)
// skip_do_after - When TRUE, do after and visible messages are disabled
/atom/proc/cleaning_act(mob/user, atom/cleaner, cleanspeed = 5 SECONDS, text_verb = "clean", text_description = " with [cleaner].", text_targetname = name, skip_do_after = FALSE)
var/is_cmagged = FALSE
if(user.client && (src in user.client.screen)) //You can't clean items you're wearing for technical reasons
@@ -25,9 +27,10 @@
text_verb = "clean the ooze off"
cleanspeed = CMAG_CLEANTIME
user.visible_message("<span class='warning'>[user] begins to [text_verb] \the [text_targetname][text_description]</span>", "<span class='warning'>You begin to [text_verb] \the [text_targetname][text_description]</span>")
if(!do_after(user, cleanspeed, target = src))
return FALSE
if(!skip_do_after)
user.visible_message("<span class='warning'>[user] begins to [text_verb] \the [text_targetname][text_description]</span>", "<span class='warning'>You begin to [text_verb] \the [text_targetname][text_description]</span>")
if(!do_after(user, cleanspeed, target = src))
return FALSE
if(!cleaner.can_clean())
cleaner.post_clean(src, user)
@@ -35,7 +38,8 @@
cleaner.post_clean(src, user)
to_chat(user, "<span class='notice'>You [text_verb] \the [text_targetname][text_description]</span>")
if(!skip_do_after)
to_chat(user, "<span class='notice'>You [text_verb] \the [text_targetname][text_description]</span>")
if(is_cmagged) //If we've cleaned a cmagged object
REMOVE_TRAIT(src, TRAIT_CMAGGED, CLOWN_EMAG)
@@ -31,13 +31,6 @@
// access to them, and only one of them can emag their device.
//
// The explosion cannot insta-kill anyone with 30% or more health.
#define LIGHT_OK 0
#define LIGHT_EMPTY 1
#define LIGHT_BROKEN 2
#define LIGHT_BURNED 3
/obj/item/lightreplacer
name = "light replacer"
desc = "A device to automatically replace lights. Refill with broken or working light bulbs, or sheets of glass."
@@ -198,21 +191,10 @@
if(CanUse(U))
if(!Use(U))
return
to_chat(U, "<span class='notice'>You replace the light [target.fitting] with [src].</span>")
if(target.status != LIGHT_EMPTY)
AddShards(1, U)
target.status = LIGHT_EMPTY
var/obj/item/light/replacement = target.light_type
target.status = LIGHT_OK
target.switchcount = 0
target.rigged = emagged
target.brightness_range = initial(replacement.brightness_range)
target.brightness_power = initial(replacement.brightness_power)
target.brightness_color = initial(replacement.brightness_color)
target.on = target.has_power()
target.update(TRUE, TRUE, FALSE)
target.fix(U, src, emagged)
else
to_chat(U, "[src]'s refill light blinks red.")
@@ -270,8 +252,3 @@
/obj/item/lightreplacer/bluespace/emag_act()
return // long range explosions are stupid
#undef LIGHT_OK
#undef LIGHT_EMPTY
#undef LIGHT_BROKEN
#undef LIGHT_BURNED
@@ -464,7 +464,8 @@
if(observer.client && observer.s_active != src)
observer.client.screen -= I
I.dropped(user, TRUE)
add_fingerprint(user)
if(user)
add_fingerprint(user)
if(!prevent_warning)
// all mobs with clients attached, sans the item's user
@@ -481,10 +482,10 @@
// restrict player list to include only those in view
for(var/mob/M in oviewers(7, user))
M.show_message("<span class='notice'>[user] puts [I] into [src].</span>")
orient2hud(user)
if(user.s_active)
user.s_active.show_to(user)
if(user)
if(user.s_active)
user.s_active.show_to(user)
I.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt
I.in_inventory = TRUE