diff --git a/.github/workflows/docker_publish.yml b/.github/workflows/docker_publish.yml deleted file mode 100644 index 32d160b840..0000000000 --- a/.github/workflows/docker_publish.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Docker Build - -on: - push: - branches: - - master - -jobs: - publish: - if: "!contains(github.event.head_commit.message, '[ci skip]')" - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - - name: Build and Publish Docker Image to Registry - uses: elgohr/Publish-Docker-Github-Action@master - with: - name: tgstation/tgstation - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - dockerfile: Dockerfile - tags: "latest" - cache: true diff --git a/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm b/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm index c4bc93225b..6e6d2b7117 100644 --- a/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm +++ b/_maps/map_files/Snaxi/IcemoonUnderground_Above.dmm @@ -2,9 +2,6 @@ "aa" = ( /turf/open/genturf, /area/icemoon/underground/unexplored/rivers) -"ab" = ( -/turf/open/genturf, -/area/icemoon/underground/unexplored) "ac" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/unexplored/rivers) @@ -356,6 +353,7 @@ "aK" = ( /obj/vehicle/ridden/atv/snowmobile, /obj/effect/turf_decal/bot, +/obj/item/key, /turf/open/floor/plasteel/dark, /area/mine/eva) "aL" = ( @@ -550,6 +548,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/item/key, /turf/open/floor/plasteel/dark, /area/mine/eva) "bh" = ( @@ -46146,30 +46145,30 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -46403,30 +46402,30 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa bT bT bT -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -46660,14 +46659,14 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa bS bS bT @@ -46678,12 +46677,12 @@ bT bS bS bS -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa aa aa aa @@ -46917,13 +46916,13 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa bS bS bT @@ -46936,11 +46935,11 @@ bT bS bS bS -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa aa aa aa @@ -47174,12 +47173,12 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa bS bS bS @@ -47194,10 +47193,10 @@ bS bS bS bS -ab -ab -ab -ab +aa +aa +aa +aa aa aa aa @@ -47431,11 +47430,11 @@ aa aa aa aa -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa bS bS bS @@ -47452,9 +47451,9 @@ bS bS bS bS -ab -ab -ab +aa +aa +aa aa aa aa @@ -47688,10 +47687,10 @@ aa aa aa aa -ab -ab -ab -ab +aa +aa +aa +aa bS bS bT @@ -47709,9 +47708,9 @@ bT bT bS bS -ab -ab -ab +aa +aa +aa aa aa aa @@ -47945,9 +47944,9 @@ aa aa aa aa -ab -ab -ab +aa +aa +aa bS bS bT @@ -47966,9 +47965,9 @@ ax bT bT bS -ab -ab -ab +aa +aa +aa aa aa aa @@ -48202,9 +48201,9 @@ aa aa aa aa -ab -ab -ab +aa +aa +aa bS bS bT @@ -48224,8 +48223,8 @@ ax bT bS bS -ab -ab +aa +aa aa aa aa @@ -48459,9 +48458,9 @@ aa aa aa aa -ab -ab -ab +aa +aa +aa bS bT bT @@ -48481,8 +48480,8 @@ aJ bT bT bS -ab -ab +aa +aa aa aa aa @@ -48716,9 +48715,9 @@ aa aa aa aa -ab -ab -ab +aa +aa +aa bT bT ad @@ -48738,8 +48737,8 @@ ax ax bT bS -ab -ab +aa +aa aa aa aa @@ -48973,9 +48972,9 @@ aa aa aa aa -ab -ab -ab +aa +aa +aa bT ad ad @@ -48995,8 +48994,8 @@ bJ bJ bJ bS -ab -ab +aa +aa aa aa aa @@ -49230,8 +49229,8 @@ aa aa aa aa -ab -ab +aa +aa bT bT ad @@ -49252,8 +49251,8 @@ cr bO bJ bS -ab -ab +aa +aa aa aa aa @@ -49487,8 +49486,8 @@ aa aa aa aa -ab -ab +aa +aa bT bT ae @@ -49509,8 +49508,8 @@ bZ bP bJ bS -ab -ab +aa +aa aa aa aa @@ -49744,8 +49743,8 @@ aa aa aa aa -ab -ab +aa +aa bT bT ad @@ -49766,8 +49765,8 @@ ca bQ bJ bS -ab -ab +aa +aa aa aa aa @@ -50001,8 +50000,8 @@ aa aa aa aa -ab -ab +aa +aa bS bT ad @@ -50023,8 +50022,8 @@ bJ bJ bJ bS -ab -ab +aa +aa aa aa aa @@ -50258,8 +50257,8 @@ aa aa aa aa -ab -ab +aa +aa bS bT bT @@ -50280,8 +50279,8 @@ ad ad bS bS -ab -ab +aa +aa aa aa aa @@ -50515,8 +50514,8 @@ aa aa aa aa -ab -ab +aa +aa bS bS bT @@ -50537,8 +50536,8 @@ ad bS bS bS -ab -ab +aa +aa aa aa aa @@ -50772,9 +50771,9 @@ aa aa aa aa -ab -ab -ab +aa +aa +aa bS bS bT @@ -50793,9 +50792,9 @@ ad ad bS bS -ab -ab -ab +aa +aa +aa aa aa aa @@ -51029,10 +51028,10 @@ aa aa aa aa -ab -ab -ab -ab +aa +aa +aa +aa bS bT bT @@ -51049,10 +51048,10 @@ ad ad bS bS -ab -ab -ab -ab +aa +aa +aa +aa aa aa aa @@ -51286,10 +51285,10 @@ aa aa aa aa -ab -ab -ab -ab +aa +aa +aa +aa bS bS bT @@ -51306,10 +51305,10 @@ bS bS bS bS -ab -ab -ab -ab +aa +aa +aa +aa aa aa aa @@ -51543,13 +51542,13 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa bS bT bX @@ -51562,11 +51561,11 @@ bS bS bS bS -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa aa aa aa @@ -51800,13 +51799,13 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa bS bS bS @@ -51816,14 +51815,14 @@ bS bS bS bS -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -52057,30 +52056,30 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -52314,30 +52313,30 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index b9283bbfcf..42cbbe7f8e 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -1285,6 +1285,9 @@ }, /obj/item/reagent_containers/dropper, /obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "acj" = ( @@ -1470,6 +1473,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "acH" = ( @@ -2223,6 +2229,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, +/obj/machinery/light/small{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "adT" = ( @@ -4995,9 +5004,9 @@ dir = 1; name = "north facing firelock" }, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" +/obj/machinery/door/airlock/command{ + name = "Corporate Showroom"; + req_access_txt = "19" }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, @@ -39035,6 +39044,12 @@ }, /turf/open/floor/plasteel/grimy, /area/commons/fitness/recreation) +"rUV" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "rVy" = ( /obj/effect/spawner/structure/window/plasma/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -59047,7 +59062,7 @@ aex aeN afa afo -fTg +rUV afX fTg afW @@ -76780,7 +76795,7 @@ avT xUL vcG lzB -avT +xiw avT ydp ydp @@ -78836,7 +78851,7 @@ nGx nGx xtV lzB -avT +xiw avT avT avT diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 5e36abac15..e8ab7899db 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -532,7 +532,7 @@ // /datum/component/storage signals #define COMSIG_CONTAINS_STORAGE "is_storage" //() - returns bool. #define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" //(obj/item/inserting, mob/user, silent, force) - returns bool -#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" //(mob/show_to, force) - returns bool. +#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" //(mob/show_to, force, trigger_on_found) - returns bool. #define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" //(mob/hide_from) - returns bool #define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" //returns bool #define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" //(newstate) diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index df0a2a091a..75d00bbfcd 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -52,7 +52,7 @@ /datum/crafting_recipe/armwraps name = "Armwraps" - result = /obj/item/clothing/gloves/fingerless/pugilist + result = /obj/item/clothing/gloves/fingerless/pugilist/crafted time = 60 tools = list(TOOL_WIRECUTTER) reqs = list(/obj/item/stack/sheet/cloth = 4, diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index 8c4e62979b..ec5ec19a6b 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -159,7 +159,7 @@ /datum/component/embedded/proc/jostleCheck() var/mob/living/carbon/victim = parent - var/damage = weapon.w_class * pain_mult + var/damage = weapon.w_class * jostle_pain_mult var/pain_chance_current = jostle_chance if(victim.m_intent == MOVE_INTENT_WALK || !(victim.mobility_flags & MOBILITY_STAND)) pain_chance_current *= 0.5 diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index 8014cf17c2..3744e833ac 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -37,7 +37,7 @@ to_chat(M, "You start dumping out tier/cell rating [lowest_rating] parts from [parent].") var/turf/T = get_turf(A) var/datum/progressbar/progress = new(M, length(things), T) - while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress, TRUE, M))) stoplag(1) qdel(progress) A.do_squish(0.8, 1.2) @@ -81,7 +81,7 @@ to_chat(M, "You start dumping out tier/cell rating [lowest_rating] parts from [parent].") var/turf/T = get_turf(A) var/datum/progressbar/progress = new(M, length(things), T) - while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress, TRUE, M))) stoplag(1) qdel(progress) A.do_squish(0.8, 1.2) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 7968caed54..cf0b3d6920 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -271,20 +271,20 @@ var/turf/T = get_turf(A) var/list/things = contents() var/datum/progressbar/progress = new(M, length(things), T) - while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) + while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress, TRUE, M))) stoplag(1) qdel(progress) A.do_squish(0.8, 1.2) -/datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE) +/datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE, mob/user) var/atom/real_location = real_location() for(var/obj/item/I in things) things -= I if(I.loc != real_location) continue - remove_from_storage(I, target) - if(trigger_on_found && I.on_found()) + if(trigger_on_found && user && (user.active_storage != src) && I.on_found(user)) return FALSE + remove_from_storage(I, target) if(TICK_CHECK) progress.update(progress.goal - length(things)) return TRUE @@ -429,7 +429,7 @@ return FALSE // this must come before the screen objects only block, dunno why it wasn't before if(over_object == M) - user_show_to_mob(M) + user_show_to_mob(M, trigger_on_found = TRUE) return if(isrevenant(M)) RevenantThrow(over_object, M, source) @@ -448,15 +448,28 @@ return A.add_fingerprint(M) -/datum/component/storage/proc/user_show_to_mob(mob/M, force = FALSE) +/datum/component/storage/proc/user_show_to_mob(mob/M, force = FALSE, trigger_on_found = FALSE) var/atom/A = parent if(!istype(M)) return FALSE A.add_fingerprint(M) if(!force && (check_locked(null, M) || !M.CanReach(parent, view_only = TRUE))) return FALSE + if(trigger_on_found) + if(check_on_found(M)) + return ui_show(M) +/** + * Check if we should trigger on_found() + * If this returns TRUE, it means an on_found() returned TRUE and immediately broke the chain. + * In most contexts, this should mean to stop. + */ +/datum/component/storage/proc/check_on_found(mob/user) + for(var/obj/item/I in contents()) + if(I.on_found(user)) + return TRUE + /datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M) if(isitem(O)) var/obj/item/I = O @@ -579,8 +592,8 @@ /datum/component/storage/proc/show_to_ghost(datum/source, mob/dead/observer/M) return user_show_to_mob(M, TRUE) -/datum/component/storage/proc/signal_show_attempt(datum/source, mob/showto, force = FALSE) - return user_show_to_mob(showto, force) +/datum/component/storage/proc/signal_show_attempt(datum/source, mob/showto, force = FALSE, trigger_on_found = TRUE) + return user_show_to_mob(showto, force, trigger_on_found = trigger_on_found) /datum/component/storage/proc/on_check() return TRUE @@ -649,7 +662,7 @@ if(A.loc == user) . = COMPONENT_NO_ATTACK_HAND if(!check_locked(source, user, TRUE)) - ui_show(user) + user_show_to_mob(user, trigger_on_found = TRUE) A.do_jiggle() /datum/component/storage/proc/signal_on_pickup(datum/source, mob/user) @@ -679,7 +692,7 @@ var/atom/A = parent if(!quickdraw) A.add_fingerprint(user) - user_show_to_mob(user) + user_show_to_mob(user, trigger_on_found = TRUE) if(rustle_sound) playsound(A, "rustle", 50, 1, -5) return TRUE diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index 946090c571..6b8d1c9ce5 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -207,3 +207,101 @@ if(!key_valid) GLOB.topic_status_cache = . +/datum/world_topic/jsonstatus + keyword = "jsonstatus" + +/datum/world_topic/jsonstatus/Run(list/input, addr) + . = list() + .["mode"] = "hidden" // GLOB.master_mode - woops we don't want people to know if there's secret/extended :) + .["round_id"] = "[GLOB.round_id]" + .["players"] = GLOB.clients.len + var/list/adm = get_admin_counts() + var/list/presentmins = adm["present"] + var/list/afkmins = adm["afk"] + .["admins"] = presentmins.len + afkmins.len //equivalent to the info gotten from adminwho + .["security_level"] = "[NUM2SECLEVEL(GLOB.security_level)]" + .["round_duration"] = WORLDTIME2TEXT("hh:mm:ss") + .["map"] = SSmapping.config.map_name + return json_encode(.) + +/datum/world_topic/jsonplayers + keyword = "jsonplayers" + +/datum/world_topic/jsonplayers/Run(list/input, addr) + . = list() + for(var/client/C in GLOB.clients) + if(C.holder?.fakekey) + . += C.holder.fakekey + continue + . += C.key + return json_encode(.) + +/datum/world_topic/jsonmanifest + keyword = "jsonmanifest" + +/datum/world_topic/jsonmanifest/Run(list/input, addr) + var/list/command = list() + var/list/security = list() + var/list/engineering = list() + var/list/medical = list() + var/list/science = list() + var/list/cargo = list() + var/list/civilian = list() + var/list/misc = list() + for(var/datum/data/record/R in GLOB.data_core.general) + var/name = R.fields["name"] + var/rank = R.fields["rank"] + var/real_rank = rank // make_list_rank(R.fields["real_rank"]) + if(real_rank in GLOB.security_positions) + security[name] = rank + else if(real_rank in GLOB.engineering_positions) + engineering[name] = rank + else if(real_rank in GLOB.medical_positions) + medical[name] = rank + else if(real_rank in GLOB.science_positions) + science[name] = rank + else if(real_rank in GLOB.supply_positions) + cargo[name] = rank + else if(real_rank in GLOB.civilian_positions) + civilian[name] = rank + else + misc[name] = rank + // mixed departments, /datum/department when + if(real_rank in GLOB.command_positions) + command[name] = rank + + . = list() + .["Command"] = command + .["Security"] = security + .["Engineering"] = engineering + .["Medical"] = medical + .["Science"] = science + .["Cargo"] = cargo + .["Civilian"] = civilian + .["Misc"] = misc + return json_encode(.) + +/datum/world_topic/jsonrevision + keyword = "jsonrevision" + +/datum/world_topic/jsonrevision/Run(list/input, addr) + var/datum/getrev/revdata = GLOB.revdata + var/list/data = list( + "date" = copytext(revdata.date, 1, 11), + "dd_version" = world.byond_version, + "dd_build" = world.byond_build, + "dm_version" = DM_VERSION, + "dm_build" = DM_BUILD, + "revision" = revdata.commit, + "round_id" = "[GLOB.round_id]", + "testmerge_base_url" = "[CONFIG_GET(string/githuburl)]/pull/" + ) + if (revdata.testmerge.len) + for (var/datum/tgs_revision_information/test_merge/TM in revdata.testmerge) + data["testmerges"] += list(list( + "id" = TM.number, + "desc" = TM.title, + "author" = TM.author + )) + + return json_encode(data) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 3009831da7..7752dfb8d5 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -800,6 +800,8 @@ var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) var/datum/component/storage/STR = GetComponent(/datum/component/storage) + if(STR == src_object) + return while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress))) stoplag(1) qdel(progress) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 93735f1079..fa566c5225 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -386,7 +386,7 @@ GLOBAL_LIST_EMPTY(station_turfs) var/list/things = src_object.contents() var/datum/progressbar/progress = new(user, things.len, src) - while (do_after(usr, 1 SECONDS, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress))) + while (do_after(usr, 1 SECONDS, TRUE, src, FALSE, CALLBACK(src_object, /datum/component/storage.proc/mass_remove_from_storage, src, things, progress, TRUE, user))) stoplag(1) qdel(progress) diff --git a/code/modules/admin/view_variables/mark_datum.dm b/code/modules/admin/view_variables/mark_datum.dm index 9f1b333750..b608c57aba 100644 --- a/code/modules/admin/view_variables/mark_datum.dm +++ b/code/modules/admin/view_variables/mark_datum.dm @@ -6,7 +6,7 @@ holder.marked_datum = D vv_update_display(D, "marked", VV_MSG_MARKED) -/client/proc/mark_datum_mapview(datum/D as mob|obj|turf|area in view(view)) +/client/proc/mark_datum_mapview(datum/D in world) set category = "Debug" set name = "Mark Object" mark_datum(D) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index a337439931..86468a0269 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -76,6 +76,18 @@ if(!silent) to_chat(user, "With [src] off of your arms, you feel less ready to punch things.") +/obj/item/clothing/gloves/fingerless/pugilist/crafted + unique_reskin = list("Short" = "armwraps", + "Extended" = "armwraps_extended" + ) + +/obj/item/clothing/gloves/fingerless/pugilist/crafted/reskin_obj(mob/M) + . = ..() + if(icon_state == "armwraps_extended") + item_state = "armwraps_extended" + else + return + /obj/item/clothing/gloves/fingerless/pugilist/chaplain name = "armwraps of unyielding resolve" desc = "A series of armwraps, soaked in holy water. Makes you pretty keen to smite evil magic users." diff --git a/html/changelog.html b/html/changelog.html index bdb83c99f9..44759e048b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,32 @@ -->
+

17 June 2021

+

Vynzill updated:

+ +

timothyteakettle updated:

+ + +

16 June 2021

+

silicons updated:

+ + +

15 June 2021

+

EmeraldSundisk updated:

+ +

14 June 2021

EmeraldSundisk updated:

GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 299da311a2..e42ab17fb7 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29478,3 +29478,20 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - imageadd: new bank machine sprite - imagedel: unused goon coffin sprite - imageadd: new water cooler sprite +2021-06-15: + EmeraldSundisk: + - rscadd: Xenobiology now has proper lighting + - bugfix: The Corporate Showroom now has a proper front door + - bugfix: Mining snowmobiles now have keys + - bugfix: Adjusts area designations so GENTURF icons should no longer be visible + in-game +2021-06-16: + silicons: + - bugfix: on_found works again +2021-06-17: + Vynzill: + - rscadd: ability to change crafted armwrap sprite to alternate one. + - imageadd: extended armwrap icon and sprite + timothyteakettle: + - bugfix: fixes an oversight causing embed jostling to do 2x as much damage as it + should diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 5155f06134..556bc4fd9d 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 25cde38df9..9df096d19b 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ