Skip to content

Commit 88510f2

Browse files
SorenonXander3359
andauthored
Misc bug fixes, added large scarves to loadout and resized choice beacon (#5619)
## About The Pull Request ### Enhancements / QoL - Turns the choice beacon into a small item instead of normal - Adds large scarfs to the loadout store ### Fixes - Fixes the top few pixels of anime implant ears getting trimmed for tallest humans - Resized `anime_head.dmi` to be 32x48 - Fixes QMs showing up on lifeline in blueshield mode - #5333 - Fixes having missing / disabled legs slowing down flying players - #4066 - Fixes ballistic guns with `bolt_type = BOLT_TYPE_NO_BOLT` not deleting caseless bullets when fired - #1651 - Fixes the speen emote not making sound - #4700 - Fixes latejoin borgs with an AI connection being told they are not linked - #4843 - Fixes the muzzle preventing custom emotes - #2760 - Fixes players being unable to resist to get out of vents/scrubbers - It could be worth changing how escaping ventcrawling works to require resisting rather than being automatic, this would allow 'those who vent' to sit inside vents/scrubbers without getting kicked out after 2.5 seconds. - #4255 - Fixes seclights being unattachable to the lawbringer - #1402 ## Why It's Good For The Game - I don't believe shrinking the choice beacon should cause any balance issues, all this change should do is make it easier to keep the beacon stored and only use it when desired (e.g. for spawning pets or instruments) - Let people use large scarfs if they want to! - Excluding #4255 none of the bugs hurt players too badly but the codebase would still be better of without them ## Changelog :cl: add: added large scarves to the loadout store qol: shrunk the choice beacon item to be pocket sized fix: fixed the top few pixels of anime implant ears getting trimmed for tallest humans fix: fixed QMs showing up on lifeline's blueshield mode fix: fixed missing / disabled legs slowing down flying players fix: fixed the number displayed number of bullets in fingerguns not decreasing fix: fixed the speen emote not making sound fix: fixed latejoin borgs with an AI connection being told they were unlinked fix: fixed the muzzle preventing custom emotes fix: fixed players being unable to resist to get out of vents/scrubbers while ventcrawling fix: fixed seclights being unattachable to the lawbringer /:cl: --------- Co-authored-by: Xander3359 <[email protected]>
1 parent 5bfb090 commit 88510f2

File tree

17 files changed

+48
-11
lines changed

17 files changed

+48
-11
lines changed

code/game/machinery/harvester.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@
204204
/obj/machinery/harvester/Exited(atom/movable/gone, direction)
205205
if (!state_open && gone == occupant)
206206
container_resist_act(gone)
207+
return ..()
207208

208209
/obj/machinery/harvester/relaymove(mob/living/user, direction)
209210
if (!state_open)

code/modules/atmospherics/machinery/components/components_base.dm

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,3 +293,8 @@
293293

294294
/obj/machinery/atmospherics/components/update_layer()
295295
layer = initial(layer) + (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE + (GLOB.pipe_colors_ordered[pipe_color] * 0.001)
296+
297+
// monkestation edit start
298+
/obj/machinery/atmospherics/components/container_resist_act(mob/living/user)
299+
INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living, handle_ventcrawl), src)
300+
// monkestation edit end

code/modules/jobs/job_types/_job.dm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,10 @@
639639
if(!GLOB.current_anonymous_theme && player_client.prefs.read_preference(/datum/preference/name/cyborg) != DEFAULT_CYBORG_NAME)
640640
apply_pref_name(/datum/preference/name/cyborg, player_client)
641641

642+
// monkestation edit start
643+
TryConnectToAI() // needs to happen before the client is transfered to the mob
644+
// monkestation edit end
645+
642646
/**
643647
* Called after a successful roundstart spawn.
644648
* Client is not yet in the mob.

code/modules/jobs/job_types/cyborg.dm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
spawned.gender = NEUTER
5353
var/mob/living/silicon/robot/robot_spawn = spawned
5454
robot_spawn.notify_ai(AI_NOTIFICATION_NEW_BORG)
55-
robot_spawn.TryConnectToAI()
5655
if(!robot_spawn.connected_ai) // Only log if there's no Master AI
5756
robot_spawn.log_current_laws()
5857
return TRUE

code/modules/mob/living/emote.dm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,8 @@ monkestation edit end */
626626
key = "me"
627627
key_third_person = "custom"
628628
message = null
629+
muzzle_ignore = TRUE // monkestation addition
630+
stat_allowed = SOFT_CRIT // monkestation addition
629631

630632
/datum/emote/living/custom/can_run_emote(mob/user, status_check, intentional)
631633
. = ..() && intentional

code/modules/movespeed/modifiers/mobs.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
variable = TRUE
9898
movetypes = GROUND
9999
flags = IGNORE_NOSLOW
100+
blacklisted_movetypes = FLOATING|FLYING // monkestation addition
100101

101102
/datum/movespeed_modifier/simplemob_varspeed
102103
variable = TRUE

code/modules/projectiles/boxes_magazines/_box_magazine.dm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,3 +216,9 @@
216216
/obj/item/ammo_box/magazine/handle_atom_del(atom/A)
217217
stored_ammo -= A
218218
update_ammo_count()
219+
220+
// monkestation edit start
221+
/obj/item/ammo_box/handle_atom_del(atom/A)
222+
stored_ammo.Remove(A)
223+
return ..()
224+
// monkestation edit end

code/modules/projectiles/guns/ballistic.dm

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,13 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
718718
chamber_round()
719719
update_appearance()
720720

721+
// monkestation edit start
722+
/obj/item/gun/ballistic/handle_atom_del(atom/A)
723+
if (istype(A, /obj/item/ammo_casing) && magazine)
724+
magazine.handle_atom_del(A)
725+
return ..()
726+
// monkestation edit end
727+
721728
/obj/item/suppressor
722729
name = "suppressor"
723730
desc = "A syndicate small-arms suppressor for maximum espionage."

monkestation/code/game/objects/items/choice_beacon.dm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
/obj/item/choice_beacon
2+
w_class = WEIGHT_CLASS_SMALL
3+
14
// Pet Beacon for Monkecoin shop
25

36
/obj/item/choice_beacon/pet

monkestation/code/modules/emotes/code/emote.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,7 @@
486486
/datum/emote/spin/speen
487487
key = "speen"
488488
key_third_person = "speens"
489+
message = "speens!"
489490
emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE
490491
mob_type_allowed_typecache = /mob/living
491492
mob_type_blacklist_typecache = list(/mob/living/brain)

monkestation/code/modules/loadouts/items/neck.dm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ GLOBAL_LIST_INIT(loadout_necks, generate_loadout_items(/datum/loadout_item/neck)
9595
item_path = /obj/item/clothing/neck/ascot
9696
requires_purchase = FALSE
9797

98+
/datum/loadout_item/neck/large_scarf
99+
name = "Large Scarf"
100+
item_path = /obj/item/clothing/neck/large_scarf
101+
98102
/*
99103
* NECKTIES
100104
*/

monkestation/code/modules/mob/dead/new_player/sprite_accessories/anime.dm

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040

4141
/datum/sprite_accessory/anime_head/tallhorns
4242
name = "Tall Horns"
43-
icon = 'monkestation/icons/mob/anime/anime_head32x48.dmi'
4443
icon_state = "tallhorns"
4544

4645
/datum/sprite_accessory/anime_head/antlers
@@ -49,7 +48,6 @@
4948

5049
/datum/sprite_accessory/anime_head/bigantlers
5150
name = "Big Antlers"
52-
icon = 'monkestation/icons/mob/anime/anime_head32x48.dmi'
5351
icon_state = "bigantlers"
5452

5553

@@ -65,7 +63,6 @@
6563

6664
/datum/sprite_accessory/anime_head/rabbit
6765
name = "Rabbit Ears"
68-
icon = 'monkestation/icons/mob/anime/anime_head32x48.dmi'
6966
icon_state = "rabbit"
7067

7168
/datum/sprite_accessory/anime_head/mouse
@@ -75,7 +72,6 @@
7572

7673
/datum/sprite_accessory/anime_head/playbunny
7774
name = "Bunny Ears"
78-
icon = 'monkestation/icons/mob/anime/anime_head32x48.dmi'
7975
icon_state = "playbunny"
8076

8177
/datum/sprite_accessory/anime_middle

monkestation/code/modules/security/code/weapons/lawbringer.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@
154154
owner_dna = null
155155
update_id(user)
156156
return TRUE
157+
return ..()
157158

158159
/obj/item/gun/energy/e_gun/lawbringer/attack_self(mob/living/user as mob)
159160
if(!iscarbon(user))

monkestation/code/modules/store/store_items/neck.dm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ GLOBAL_LIST_INIT(store_neck, generate_store_items(/datum/store_item/neck))
7474
item_path = /obj/item/clothing/neck/infinity_scarf
7575
item_cost = 7500
7676

77+
/datum/store_item/neck/large_scarf
78+
name = "Large Scarf"
79+
item_path = /obj/item/clothing/neck/large_scarf
80+
7781
/datum/store_item/neck/boatcloak
7882
name = "Boat cloak"
7983
item_path = /obj/item/clothing/neck/boatcloak
1.44 KB
Binary file not shown.
-958 Bytes
Binary file not shown.

tgui/packages/tgui/interfaces/NtosLifeline.tsx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,17 @@ const NtosLifelineContent = () => {
8686
(crew: CrewSensor) => crew.name + crew.assignment,
8787
);
8888

89+
const jobIsCommand = (jobId: number) => {
90+
return (
91+
(jobIsHead(jobId) &&
92+
jobId !== 50) /* QMs are heads of staff but not command */ ||
93+
(jobId >= 200 && jobId < 300)
94+
);
95+
};
96+
8997
const sorted = sensors
9098
.filter(nameSearch)
91-
.filter(
92-
(sensor) =>
93-
!blueshield ||
94-
jobIsHead(sensor.ijob) ||
95-
(sensor.ijob >= 200 && sensor.ijob < 300),
96-
)
99+
.filter((sensor) => !blueshield || jobIsCommand(sensor.ijob))
97100
.sort((a, b) => {
98101
if (a.dist < 0 || b.dist < 0) {
99102
return b.dist - a.dist;

0 commit comments

Comments
 (0)