WZ_0EREo-887cFa|cNcBzt=sORWli+nqOJCt
z)%F8Zl&uXOy+u1yOYDoV_sJLBLNj-Vr3lfuqiCDkz|FD
z9^vQ>cQqdq)v4Rj@qd>1v?2WCmn<FOOGfV8(5@RFY
z)Etg*))Ji&k8oy*&WJ~NuvNT?(N^&$s%
zAFh#--OJ91M>u5nGF+C(TB0N3P0b}?`NkyQs;|d$Xpctd_z0`VBzhe_#L7+tv>)03R4wU89`01F1^8_Z
zYQ!T9|8l4p!yRQmKEjzLJP0Fi%~7N5a9gpOZ`CliVm04@go_Th6|4DH+e%if<{LCi
zWG#_|9}v!3A_*6SGfO1lg79eXDzGrzy9z9n{#+|o^EG!uN81?vkE
zl5jydWR?iE%n#Q{$?jzmE(nM0UWUsOSxa<8ys0@H;gGdNDA9!@oLS2-AM#(TsG~
z^>|js(Fh%%_fq}Dj^9!~8lmI!!1FIlz@~Qgm;K>dqV*e2V8Xp$mhhx^7u*wiZpJ*}
z7Vj?D5i(z&0q=yCF|7f#&A^)Iy+u2*CVFqtvgNJ2X!V4>SMA=Sr3rhBmL}{i+6II<
zP}G?|xK)Xn(poG@sjZ!KDzFlnN1En0gF
zldIU)qQwcf@U#;eunChU`qrYg$8hUqJSke7u=B~6s!?JR7N2~f>rKVfAsf0|;}F?-Ct9VN$g2gy|PG`Gb5>Qz9XT`Zb*}
z*u86a!to}KaD=_rUmhQxnVz!m?ToJ<7(0000
Date: Fri, 24 Nov 2023 11:43:49 +0000
Subject: [PATCH 14/81] Automatic changelog for PR #4995 [ci skip]
---
html/changelogs/AutoChangeLog-pr-4995.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-4995.yml
diff --git a/html/changelogs/AutoChangeLog-pr-4995.yml b/html/changelogs/AutoChangeLog-pr-4995.yml
new file mode 100644
index 000000000000..ac34444539f3
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4995.yml
@@ -0,0 +1,5 @@
+author: "Doubleumc"
+delete-after: True
+changes:
+ - imageadd: "2-wide dropship side doors"
+ - maptweak: "changed dropship side doors to a lone doublewide door"
\ No newline at end of file
From 622a284606c5c575a135527216a8cd053b2b310e Mon Sep 17 00:00:00 2001
From: Doubleumc
Date: Fri, 24 Nov 2023 05:34:05 -0500
Subject: [PATCH 15/81] More accurate directions for trackers and messages
(#4961)
# About the pull request
![image](https://github.com/cmss13-devs/cmss13/assets/14267245/cd0fcfba-04ae-4494-b0bf-106a645f69ef)
Swaps out `get_dir()` for `Get_Compass_Dir()` in multiple places. The
criteria for the swap was:
- subject can be more than one tile away (otherwise results identical to
`get_dir()`)
- is fed into a pointer or a warning message
- not used outside the pointer or message
This should not effect any actual game logic, only informative
indicators.
# Explain why it's good for the game
Directional indicators should mean what people generally understand them
to be. "Northeast" should be more accurate than "east and one tile
north".
# Testing Photographs and Procedure
Screenshots & Videos
Before:
![image](https://github.com/cmss13-devs/cmss13/assets/14267245/a5512b1f-7082-4990-9711-83dcef9204b6)
After:
![image](https://github.com/cmss13-devs/cmss13/assets/14267245/af10fbad-138f-4761-b988-76fbdd0ef1d8)
# Changelog
:cl:
qol: directions in trackers and messages are more accurate
/:cl:
---
code/datums/agents/tools/tracker.dm | 2 +-
code/game/cas_manager/datums/cas_fire_mission.dm | 4 ++--
code/game/objects/items/devices/multitool.dm | 4 ++--
.../game/objects/items/devices/personal_data_transmitter.dm | 2 +-
code/game/objects/items/devices/pinpointer.dm | 6 +++---
code/modules/cm_marines/equipment/mortar/mortars.dm | 4 ++--
code/modules/cm_marines/orbital_cannon.dm | 4 ++--
code/modules/cm_marines/overwatch.dm | 2 +-
code/modules/cm_preds/yaut_bracers.dm | 4 ++--
code/modules/mob/living/carbon/human/human.dm | 6 +++---
.../mob/living/carbon/human/species/yautja/yautja_sound.dm | 2 +-
code/modules/mob/living/carbon/xenomorph/life.dm | 4 ++--
code/modules/projectiles/guns/boltaction.dm | 2 +-
code/modules/shuttle/shuttles/crashable/crashable.dm | 2 +-
14 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/code/datums/agents/tools/tracker.dm b/code/datums/agents/tools/tracker.dm
index 1d6d6d4801b4..508db286b970 100644
--- a/code/datums/agents/tools/tracker.dm
+++ b/code/datums/agents/tools/tracker.dm
@@ -12,7 +12,7 @@
overlays.Cut()
if(active && tracked_object)
- overlays += icon(icon, "+tracker_arrow", get_dir(src, tracked_object))
+ overlays += icon(icon, "+tracker_arrow", Get_Compass_Dir(src, tracked_object))
/obj/item/device/tracker/attack_self(mob/user)
if(!skillcheckexplicit(user, SKILL_ANTAG, SKILL_ANTAG_AGENT))
diff --git a/code/game/cas_manager/datums/cas_fire_mission.dm b/code/game/cas_manager/datums/cas_fire_mission.dm
index 0a04876414e7..cb43caec30bb 100644
--- a/code/game/cas_manager/datums/cas_fire_mission.dm
+++ b/code/game/cas_manager/datums/cas_fire_mission.dm
@@ -114,7 +114,7 @@
if(get_turf(M) == initial_turf)
relative_dir = 0
else
- relative_dir = get_dir(M, initial_turf)
+ relative_dir = Get_Compass_Dir(M, initial_turf)
var/ds_identifier = "LARGE BIRD"
if (M.mob_flags & KNOWS_TECHNOLOGY)
@@ -132,7 +132,7 @@
if(get_turf(M) == initial_turf)
relative_dir = 0
else
- relative_dir = get_dir(M, initial_turf)
+ relative_dir = Get_Compass_Dir(M, initial_turf)
var/ds_identifier = "LARGE BIRD"
if (M.mob_flags & KNOWS_TECHNOLOGY)
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 273ced980b44..a92135b9d7ed 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -53,8 +53,8 @@
var/area/A = get_area(src)
var/APC = A? A.get_apc() : null
if(APC)
- to_chat(user, SPAN_NOTICE("The local APC is located at [SPAN_BOLD("[get_dist(src, APC)] units [dir2text(get_dir(src, APC))]")]."))
- user.balloon_alert(user, "[get_dist(src, APC)] units [dir2text(get_dir(src, APC))]")
+ to_chat(user, SPAN_NOTICE("The local APC is located at [SPAN_BOLD("[get_dist(src, APC)] units [dir2text(Get_Compass_Dir(src, APC))]")]."))
+ user.balloon_alert(user, "[get_dist(src, APC)] units [dir2text(Get_Compass_Dir(src, APC))]")
else
to_chat(user, SPAN_WARNING("ERROR: Could not locate local APC."))
user.balloon_alert(user, "could not locate!")
diff --git a/code/game/objects/items/devices/personal_data_transmitter.dm b/code/game/objects/items/devices/personal_data_transmitter.dm
index 6e8aa001cad3..98f8c60452ea 100644
--- a/code/game/objects/items/devices/personal_data_transmitter.dm
+++ b/code/game/objects/items/devices/personal_data_transmitter.dm
@@ -122,7 +122,7 @@
return
var/dist = get_dist(self_turf, bracelet_turf)
- var/direction = dir2text_short(get_dir(self_turf, bracelet_turf))
+ var/direction = dir2text_short(Get_Compass_Dir(self_turf, bracelet_turf))
if(dist > 1)
to_chat(user, SPAN_BOLDNOTICE("The display on \the [src] lights up: [dist]-[direction]"))
else
diff --git a/code/game/objects/items/devices/pinpointer.dm b/code/game/objects/items/devices/pinpointer.dm
index 7ec3118ef96b..8a624d616d5b 100644
--- a/code/game/objects/items/devices/pinpointer.dm
+++ b/code/game/objects/items/devices/pinpointer.dm
@@ -31,7 +31,7 @@
if(!the_disk)
icon_state = "pinonnull"
return
- setDir(get_dir(src,the_disk))
+ setDir(Get_Compass_Dir(src,the_disk))
switch(get_dist(src,the_disk))
if(0)
icon_state = "pinondirect"
@@ -80,7 +80,7 @@
if(!location)
icon_state = "pinonnull"
return
- setDir(get_dir(src,location))
+ setDir(Get_Compass_Dir(src,location))
switch(get_dist(src,location))
if(0)
icon_state = "pinondirect"
@@ -99,7 +99,7 @@
if(!target)
icon_state = "pinonnull"
return
- setDir(get_dir(src,target))
+ setDir(Get_Compass_Dir(src,target))
switch(get_dist(src,target))
if(0)
icon_state = "pinondirect"
diff --git a/code/modules/cm_marines/equipment/mortar/mortars.dm b/code/modules/cm_marines/equipment/mortar/mortars.dm
index 86bc3f5917c0..a4d4cfdc1bf5 100644
--- a/code/modules/cm_marines/equipment/mortar/mortars.dm
+++ b/code/modules/cm_marines/equipment/mortar/mortars.dm
@@ -314,7 +314,7 @@
if(get_turf(M) == target)
relative_dir = 0
else
- relative_dir = get_dir(M, target)
+ relative_dir = Get_Compass_Dir(M, target)
M.show_message( \
SPAN_DANGER("A SHELL IS COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \
SPAN_DANGER("YOU HEAR SOMETHING COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \
@@ -324,7 +324,7 @@
if(get_turf(M) == target)
relative_dir = 0
else
- relative_dir = get_dir(M, target)
+ relative_dir = Get_Compass_Dir(M, target)
M.show_message( \
SPAN_HIGHDANGER("A SHELL IS ABOUT TO IMPACT [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_VISIBLE, \
SPAN_HIGHDANGER("YOU HEAR SOMETHING VERY CLOSE COMING DOWN [SPAN_UNDERLINE(relative_dir ? uppertext(("TO YOUR " + dir2text(relative_dir))) : uppertext("right above you"))]!"), SHOW_MESSAGE_AUDIBLE \
diff --git a/code/modules/cm_marines/orbital_cannon.dm b/code/modules/cm_marines/orbital_cannon.dm
index edcb5a836b5d..45701c3b593c 100644
--- a/code/modules/cm_marines/orbital_cannon.dm
+++ b/code/modules/cm_marines/orbital_cannon.dm
@@ -397,7 +397,7 @@ var/list/ob_type_fuel_requirements
if(get_turf(M) == target)
relative_dir = 0
else
- relative_dir = get_dir(M, target)
+ relative_dir = Get_Compass_Dir(M, target)
M.show_message( \
SPAN_HIGHDANGER("The sky erupts into flames [SPAN_UNDERLINE(relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you")]!"), SHOW_MESSAGE_VISIBLE, \
SPAN_HIGHDANGER("You hear a very loud sound coming from above to the [SPAN_UNDERLINE(relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you")]!"), SHOW_MESSAGE_AUDIBLE \
@@ -408,7 +408,7 @@ var/list/ob_type_fuel_requirements
if(get_turf(M) == target)
relative_dir = 0
else
- relative_dir = get_dir(M, target)
+ relative_dir = Get_Compass_Dir(M, target)
M.show_message( \
SPAN_HIGHDANGER("The sky roars louder [SPAN_UNDERLINE(relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you")]!"), SHOW_MESSAGE_VISIBLE, \
SPAN_HIGHDANGER("The sound becomes louder [SPAN_UNDERLINE(relative_dir ? ("to the " + dir2text(relative_dir)) : "right above you")]!"), SHOW_MESSAGE_AUDIBLE \
diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm
index 3cf33ebd391e..ab084cb52b79 100644
--- a/code/modules/cm_marines/overwatch.dm
+++ b/code/modules/cm_marines/overwatch.dm
@@ -205,7 +205,7 @@
acting_sl = " (acting SL)"
is_squad_leader = TRUE
else if(current_turf && (current_turf.z == SL_z))
- distance = "[get_dist(marine_human, current_squad.squad_leader)] ([dir2text_short(get_dir(current_squad.squad_leader, marine_human))])"
+ distance = "[get_dist(marine_human, current_squad.squad_leader)] ([dir2text_short(Get_Compass_Dir(current_squad.squad_leader, marine_human))])"
switch(marine_human.stat)
diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm
index 7173575710b1..437f9245a17e 100644
--- a/code/modules/cm_preds/yaut_bracers.dm
+++ b/code/modules/cm_preds/yaut_bracers.dm
@@ -496,7 +496,7 @@
if(dist < closest)
closest = dist
closest_item = tracked_item
- direction = get_dir(M,loc)
+ direction = Get_Compass_Dir(M,loc)
areaLoc = loc
for(var/mob/living/carbon/human/Y as anything in GLOB.yautja_mob_list)
if(Y.stat != DEAD)
@@ -513,7 +513,7 @@
var/dist = get_dist(M,Y)
if(dist < closest)
closest = dist
- direction = get_dir(M,Y)
+ direction = Get_Compass_Dir(M,Y)
areaLoc = loc
var/output = FALSE
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 95fd393d12b5..45726fad902f 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -1330,7 +1330,7 @@
else if(C.z != src.z || get_dist(src,C) < 1)
hud_used.locate_leader.icon_state = "trackondirect_lz"
else
- hud_used.locate_leader.setDir(get_dir(src,C))
+ hud_used.locate_leader.setDir(Get_Compass_Dir(src,C))
hud_used.locate_leader.icon_state = "trackon_lz"
return
if(TRACKER_FTL)
@@ -1360,7 +1360,7 @@
if(H.z != src.z || get_dist(src,H) < 1 || src == H)
hud_used.locate_leader.icon_state = "trackondirect[tracking_suffix]"
else
- hud_used.locate_leader.setDir(get_dir(src,H))
+ hud_used.locate_leader.setDir(Get_Compass_Dir(src,H))
hud_used.locate_leader.icon_state = "trackon[tracking_suffix]"
/mob/living/carbon/proc/locate_nearest_nuke()
@@ -1378,7 +1378,7 @@
if(get_dist(src,N) < 1)
hud_used.locate_nuke.icon_state = "nuke_trackondirect"
else
- hud_used.locate_nuke.setDir(get_dir(src,N))
+ hud_used.locate_nuke.setDir(Get_Compass_Dir(src,N))
hud_used.locate_nuke.icon_state = "nuke_trackon"
diff --git a/code/modules/mob/living/carbon/human/species/yautja/yautja_sound.dm b/code/modules/mob/living/carbon/human/species/yautja/yautja_sound.dm
index a6a9a659f215..afd138fec2bb 100644
--- a/code/modules/mob/living/carbon/human/species/yautja/yautja_sound.dm
+++ b/code/modules/mob/living/carbon/human/species/yautja/yautja_sound.dm
@@ -65,6 +65,6 @@
return
for(var/mob/current_mob as anything in get_mobs_in_z_level_range(get_turf(user), 18) - user)
- var/relative_dir = get_dir(current_mob, user)
+ var/relative_dir = Get_Compass_Dir(current_mob, user)
var/final_dir = dir2text(relative_dir)
to_chat(current_mob, SPAN_HIGHDANGER("You hear a loud roar coming from [final_dir ? "the [final_dir]" : "nearby"]!"))
diff --git a/code/modules/mob/living/carbon/xenomorph/life.dm b/code/modules/mob/living/carbon/xenomorph/life.dm
index 65839e9c8caf..09a4f5014bc4 100644
--- a/code/modules/mob/living/carbon/xenomorph/life.dm
+++ b/code/modules/mob/living/carbon/xenomorph/life.dm
@@ -455,7 +455,7 @@ Make sure their actual health updates immediately.*/
var/area/A = get_area(loc)
var/area/QA = get_area(tracking_atom.loc)
if(A.fake_zlevel == QA.fake_zlevel)
- QL.setDir(get_dir(src, tracking_atom))
+ QL.setDir(Get_Compass_Dir(src, tracking_atom))
QL.icon_state = "trackon"
else
QL.icon_state = "trackondirect"
@@ -484,7 +484,7 @@ Make sure their actual health updates immediately.*/
ML.overlays |= image('icons/mob/hud/xeno_markers.dmi', "all_direction")
return
else if(A.fake_zlevel == MA.fake_zlevel) //normal tracking
- ML.setDir(get_dir(src, tracked_marker_turf))
+ ML.setDir(Get_Compass_Dir(src, tracked_marker_turf))
ML.overlays |= image(tracked_marker.seenMeaning, "pixel_y" = 0)
ML.overlays |= image('icons/mob/hud/xeno_markers.dmi', "center_glow")
ML.overlays |= image('icons/mob/hud/xeno_markers.dmi', "direction")
diff --git a/code/modules/projectiles/guns/boltaction.dm b/code/modules/projectiles/guns/boltaction.dm
index c18e45e38d3e..d21cb5b87254 100644
--- a/code/modules/projectiles/guns/boltaction.dm
+++ b/code/modules/projectiles/guns/boltaction.dm
@@ -214,7 +214,7 @@
return .
for(var/mob/current_mob as anything in get_mobs_in_z_level_range(get_turf(user), fire_message_range) - user)
- var/relative_dir = get_dir(current_mob, user)
+ var/relative_dir = Get_Compass_Dir(current_mob, user)
var/final_dir = dir2text(relative_dir)
to_chat(current_mob, SPAN_HIGHDANGER("You hear a massive boom coming from [final_dir ? "the [final_dir]" : "nearby"]!"))
if(current_mob.client)
diff --git a/code/modules/shuttle/shuttles/crashable/crashable.dm b/code/modules/shuttle/shuttles/crashable/crashable.dm
index de1c5cc8e4fb..f07be5f0c93a 100644
--- a/code/modules/shuttle/shuttles/crashable/crashable.dm
+++ b/code/modules/shuttle/shuttles/crashable/crashable.dm
@@ -26,7 +26,7 @@
found_turf.ChangeTurf(/turf/open/floor)
for(var/mob/current_mob as anything in get_mobs_in_z_level_range(destination.return_center_turf(), 18))
- var/relative_dir = get_dir(current_mob, destination.return_center_turf())
+ var/relative_dir = Get_Compass_Dir(current_mob, destination.return_center_turf())
var/final_dir = dir2text(relative_dir)
to_chat(current_mob, SPAN_HIGHDANGER("You hear something crashing down from above [final_dir ? "to the [final_dir]" : "nearby"]!"))
From 323e9f5c36a2b68457978fc058cd62cbb239b8bf Mon Sep 17 00:00:00 2001
From: cm13-github <128137806+cm13-github@users.noreply.github.com>
Date: Fri, 24 Nov 2023 11:56:33 +0000
Subject: [PATCH 16/81] Automatic changelog for PR #4961 [ci skip]
---
html/changelogs/AutoChangeLog-pr-4961.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-4961.yml
diff --git a/html/changelogs/AutoChangeLog-pr-4961.yml b/html/changelogs/AutoChangeLog-pr-4961.yml
new file mode 100644
index 000000000000..cb24b6f1d59a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4961.yml
@@ -0,0 +1,4 @@
+author: "Doubleumc"
+delete-after: True
+changes:
+ - qol: "directions in trackers and messages are more accurate"
\ No newline at end of file
From 8e711c0f9f4afe4396819348ab58a81471c665c0 Mon Sep 17 00:00:00 2001
From: Kozmos <31109792+HeresKozmos@users.noreply.github.com>
Date: Fri, 24 Nov 2023 10:59:31 +0000
Subject: [PATCH 17/81] Adds Pizza to Requisitions (#4998)
# About the pull request
Adds a box of pizza and a replica of PIZZA TIME to Requisitions.
# Explain why it's good for the game
I miss the days of Requisitions having pizza... I also miss PIZZA
TIME...
# Testing Photographs and Procedure
![image](https://github.com/cmss13-devs/cmss13/assets/31109792/f8862ccc-56d0-4e22-8dfa-953f04440483)
# Changelog
:cl:
add: Added pizza and pizza cutter to Req
del: Deleted a random kepler crisps bag
/:cl:
---
maps/map_files/USS_Almayer/USS_Almayer.dmm | 32 ++++++++++++++--------
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm
index f3074bd4d7d0..c8daef1600fd 100644
--- a/maps/map_files/USS_Almayer/USS_Almayer.dmm
+++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm
@@ -64391,17 +64391,24 @@
/area/almayer/engineering/upper_engineering/port)
"rDe" = (
/obj/structure/surface/table/almayer,
-/obj/item/reagent_container/food/snacks/kepler_crisps{
+/obj/structure/sign/safety/cryo{
pixel_x = 8;
- pixel_y = 4
+ pixel_y = 33
},
/obj/item/toy/deck{
pixel_x = -4;
- pixel_y = 1
+ pixel_y = 10
},
-/obj/structure/sign/safety/cryo{
- pixel_x = 8;
- pixel_y = 33
+/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{
+ pixel_x = 9;
+ pixel_y = 12
+ },
+/obj/item/ashtray/plastic{
+ pixel_y = -4
+ },
+/obj/item/trash/cigbutt{
+ pixel_x = 1;
+ pixel_y = 5
},
/turf/open/floor/almayer{
dir = 6;
@@ -72487,14 +72494,15 @@
/area/almayer/hallways/stern_hallway)
"uWI" = (
/obj/structure/surface/table/almayer,
-/obj/item/ashtray/plastic,
-/obj/item/trash/cigbutt{
- pixel_x = 1;
+/obj/item/pizzabox/margherita{
pixel_y = 8
},
-/obj/item/reagent_container/food/drinks/cans/souto/diet/cherry{
- pixel_x = -9;
- pixel_y = 12
+/obj/item/weapon/pizza_cutter{
+ force = 20;
+ name = "\improper Replica PIZZA TIME";
+ desc = "A cheap replica of the fabled PIZZA TIME novelty pizza cutter, this one is not as sharp as the original which legends said could slice any pizza....";
+ pixel_x = -6;
+ pixel_y = 8
},
/turf/open/floor/almayer{
dir = 1;
From c3d5d8bcec6fe92f328ebdd3333b6e0dbbf4314b Mon Sep 17 00:00:00 2001
From: cm13-github <128137806+cm13-github@users.noreply.github.com>
Date: Fri, 24 Nov 2023 12:09:42 +0000
Subject: [PATCH 18/81] Automatic changelog for PR #4998 [ci skip]
---
html/changelogs/AutoChangeLog-pr-4998.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-4998.yml
diff --git a/html/changelogs/AutoChangeLog-pr-4998.yml b/html/changelogs/AutoChangeLog-pr-4998.yml
new file mode 100644
index 000000000000..9078320c2e06
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-4998.yml
@@ -0,0 +1,5 @@
+author: "HeresKozmos"
+delete-after: True
+changes:
+ - rscadd: "Added pizza and pizza cutter to Req"
+ - rscdel: "Deleted a random kepler crisps bag"
\ No newline at end of file
From f5fa73654d27b2bf5b56b21e7621951785e85e77 Mon Sep 17 00:00:00 2001
From: Kozmos <31109792+HeresKozmos@users.noreply.github.com>
Date: Fri, 24 Nov 2023 11:06:12 +0000
Subject: [PATCH 19/81] Kutjevo Mapping Fix (#5001)
# About the pull request
Removes three random raised edges from inside a rock wall on Kutjevo
# Explain why it's good for the game
Mapping error bad.
# Testing Photographs and Procedure
![image](https://github.com/cmss13-devs/cmss13/assets/31109792/2e35b30b-a843-4338-822a-f0cdc5d31573)
# Changelog
:cl:
fix: deleted random raised edges from inside rock wall
/:cl:
---
maps/map_files/Kutjevo/Kutjevo.dmm | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm
index eb5f1afabaed..676bd49576f0 100644
--- a/maps/map_files/Kutjevo/Kutjevo.dmm
+++ b/maps/map_files/Kutjevo/Kutjevo.dmm
@@ -14435,18 +14435,6 @@
},
/turf/open/floor/plating/kutjevo,
/area/kutjevo/interior/complex/botany)
-"tRD" = (
-/obj/structure/platform_decoration/kutjevo{
- dir = 8
- },
-/obj/structure/platform_decoration/kutjevo{
- dir = 8
- },
-/obj/structure/platform_decoration/kutjevo{
- dir = 8
- },
-/turf/closed/wall/kutjevo/rock,
-/area/kutjevo/interior/oob)
"tRG" = (
/obj/structure/platform/kutjevo/smooth{
dir = 1;
@@ -35827,7 +35815,7 @@ dxF
dxF
dxF
dxF
-tRD
+dxF
dxF
dxF
dxF
From e129cfdeeef8ec6fb03ee723fcd9ddb92f26119e Mon Sep 17 00:00:00 2001
From: cm13-github <128137806+cm13-github@users.noreply.github.com>
Date: Fri, 24 Nov 2023 12:23:00 +0000
Subject: [PATCH 20/81] Automatic changelog for PR #5001 [ci skip]
---
html/changelogs/AutoChangeLog-pr-5001.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-5001.yml
diff --git a/html/changelogs/AutoChangeLog-pr-5001.yml b/html/changelogs/AutoChangeLog-pr-5001.yml
new file mode 100644
index 000000000000..125916322ec5
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5001.yml
@@ -0,0 +1,4 @@
+author: "HeresKozmos"
+delete-after: True
+changes:
+ - bugfix: "deleted random raised edges from inside rock wall"
\ No newline at end of file
From d61cfa93918b98c83b1231dbd9709f9d90bd0e94 Mon Sep 17 00:00:00 2001
From: Kozmos <31109792+HeresKozmos@users.noreply.github.com>
Date: Fri, 24 Nov 2023 11:06:34 +0000
Subject: [PATCH 21/81] Fixes Trijent Mapping Error(?) (#5005)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
# About the pull request
Removes a nonsensical window in one of the rooms which just faces
straight into a rock wall.
# Explain why it's good for the game
I can finally play with full immersion 🙏
# Changelog
:cl:
fix: fixed a nonsensical window facing a solid rock wall
/:cl:
---
maps/map_files/DesertDam/Desert_Dam.dmm | 31 ++++---------------------
1 file changed, 4 insertions(+), 27 deletions(-)
diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm
index 4b760f41e5c0..4bf4d0e7a88c 100644
--- a/maps/map_files/DesertDam/Desert_Dam.dmm
+++ b/maps/map_files/DesertDam/Desert_Dam.dmm
@@ -9576,17 +9576,6 @@
/obj/structure/window/framed/colony/reinforced,
/turf/open/floor/plating,
/area/desert_dam/interior/dam_interior/east_tunnel_entrance)
-"aCT" = (
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "bright_clean"
- },
-/area/desert_dam/interior/dam_interior/east_tunnel_entrance)
"aCU" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
@@ -9651,18 +9640,6 @@
},
/turf/open/asphalt,
/area/desert_dam/exterior/valley/valley_northwest)
-"aDd" = (
-/obj/structure/bed/chair,
-/obj/structure/barricade/wooden{
- desc = "This barricade is heavily reinforced. Nothing short of blasting it open seems like it'll do the trick, that or melting the breams supporting it...";
- dir = 8;
- health = 25000
- },
-/turf/open/floor/prison{
- dir = 10;
- icon_state = "bright_clean"
- },
-/area/desert_dam/interior/dam_interior/east_tunnel_entrance)
"aDe" = (
/obj/effect/decal/sand_overlay/sand1,
/turf/open/asphalt{
@@ -85490,8 +85467,8 @@ dTs
dTs
aEa
aEa
-aCS
-aCS
+aEa
+aEa
aEa
aEa
dTs
@@ -85724,8 +85701,8 @@ dTs
dTs
aEa
aCD
-aCT
-aDd
+aCF
+aDg
aDn
aEa
aDt
From 05dca01dd3269959cb815615b95c293fd95645a1 Mon Sep 17 00:00:00 2001
From: cm13-github <128137806+cm13-github@users.noreply.github.com>
Date: Fri, 24 Nov 2023 12:36:11 +0000
Subject: [PATCH 22/81] Automatic changelog for PR #5005 [ci skip]
---
html/changelogs/AutoChangeLog-pr-5005.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-5005.yml
diff --git a/html/changelogs/AutoChangeLog-pr-5005.yml b/html/changelogs/AutoChangeLog-pr-5005.yml
new file mode 100644
index 000000000000..698f28459a3e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-5005.yml
@@ -0,0 +1,4 @@
+author: "HeresKozmos"
+delete-after: True
+changes:
+ - bugfix: "fixed a nonsensical window facing a solid rock wall"
\ No newline at end of file
From 4047c473d4d2f3e58e68efdec5aa95d0676bf4d1 Mon Sep 17 00:00:00 2001
From: Releasethesea <135743398+Releasethesea@users.noreply.github.com>
Date: Fri, 24 Nov 2023 05:29:45 -0600
Subject: [PATCH 23/81] Fixes the XM43E1 and the M42C (#4974)
# About the pull request
they had the wrong barrel overlay giving them the normal marine spec
sniper barrel, the XM43E1 was only named that in one location which made
it spawn improperly, this has been fixxed and i went and renamed
everything relating to its old name which was the XM42B
# Explain why it's good for the game
Visual bugs arent fun, fixing them is very important, this fixes what
was broken, so yippie
# Testing Photographs and Procedure
Screenshots & Videos
Put screenshots and videos here with an empty line between the
screenshots and the `` tags.
https://imgur.com/EV52Q7S
all three snipers, with correct barrels
https://imgur.com/XiH0fSL
M42C rifle with correct barrel, in hand
https://imgur.com/piifH2q
XM43E1 with correct barrel in hand
https://imgur.com/Y5kGftc
https://imgur.com/5IJsoS9
https://imgur.com/ZHAglSC
all items relating to the XM43E1 being correctly named and functioning
like normal
sorry i didnt feel like screenshotting every single helmet and head item
that could fit the pipe
# Changelog
:cl:
fix: fixes the XM43E1s name (previously named XM42B) and sprite, fixes
the M42C and XM43E1s barrel, correctly names several items relating to
the XM43E1
/:cl:
---
code/datums/supply_packs/black_market.dm | 4 ++--
code/datums/supply_packs/spec_ammo.dm | 6 +++---
code/game/objects/items/props/helmetgarb.dm | 4 ++--
code/modules/client/preferences_gear.dm | 2 +-
code/modules/projectiles/gun_attachables.dm | 14 ++++++++++++++
.../projectiles/guns/specialist/sniper.dm | 18 +++++++++---------
.../projectiles/magazines/specialist.dm | 6 +++---
icons/mob/humans/onmob/back.dmi | Bin 110676 -> 112483 bytes
icons/mob/humans/onmob/items_lefthand_1.dmi | Bin 114340 -> 114340 bytes
icons/mob/humans/onmob/items_righthand_1.dmi | Bin 113169 -> 113169 bytes
icons/mob/humans/onmob/suit_slot.dmi | Bin 25440 -> 26299 bytes
icons/obj/items/weapons/guns/attachments.dmi | Bin 37702 -> 37761 bytes
.../items/weapons/guns/attachments/barrel.dmi | Bin 9109 -> 9565 bytes
.../weapons/guns/guns_by_faction/uscm.dmi | Bin 32125 -> 32125 bytes
14 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/code/datums/supply_packs/black_market.dm b/code/datums/supply_packs/black_market.dm
index 1af965898548..36d890e2b3d5 100644
--- a/code/datums/supply_packs/black_market.dm
+++ b/code/datums/supply_packs/black_market.dm
@@ -749,8 +749,8 @@ This is where the RO can reclaim their lost honor and purchase the M44 custom, t
dollar_cost = 10
containertype = /obj/structure/largecrate/black_market
-/datum/supply_packs/contraband/deep_storage/xm42b_pipe
- name = "10x99mm XM42B casing"
+/datum/supply_packs/contraband/deep_storage/xm43e1_pipe
+ name = "10x99mm XM43E1 casing"
contains = list(/obj/item/prop/helmetgarb/bullet_pipe)
dollar_cost = 10
containertype = /obj/structure/largecrate/black_market
diff --git a/code/datums/supply_packs/spec_ammo.dm b/code/datums/supply_packs/spec_ammo.dm
index 7931a4d40204..e20a5de865a3 100644
--- a/code/datums/supply_packs/spec_ammo.dm
+++ b/code/datums/supply_packs/spec_ammo.dm
@@ -109,10 +109,10 @@
containername = "M42A Incendiary Magazine Crate"
group = "Weapons Specialist Ammo"
-//XM42B - Disabled during testing per request.
+//XM43E1 - Disabled during testing per request.
/*
/datum/supply_packs/ammo_amr_marksman
- name = "XM42B anti-materiel rifle marksman magazines crate (x5)"
+ name = "XM43E1 anti-materiel rifle marksman magazines crate (x5)"
contains = list(
/obj/item/ammo_magazine/sniper/anti_materiel,
/obj/item/ammo_magazine/sniper/anti_materiel,
@@ -122,7 +122,7 @@
)
cost = 30
containertype = /obj/structure/closet/crate/ammo
- containername = "XM42B Anti-Materiel Magazine Crate"
+ containername = "XM43E1 Anti-Materiel Magazine Crate"
group = "Specialist Ammo"
*/
//M4RA
diff --git a/code/game/objects/items/props/helmetgarb.dm b/code/game/objects/items/props/helmetgarb.dm
index 35558bf01925..7860236d5d51 100644
--- a/code/game/objects/items/props/helmetgarb.dm
+++ b/code/game/objects/items/props/helmetgarb.dm
@@ -502,8 +502,8 @@
icon_state = "trimmed_wire"
/obj/item/prop/helmetgarb/bullet_pipe
- name = "10x99mm XM42B casing pipe"
- desc = "The XM42B was an experimental weapons platform briefly fielded by the USCM and Wey-Yu PMC teams. It was manufactured by ARMAT systems at the Atlas weapons facility. Unfortunately the project had its funding pulled alongside the M5 integrated gasmask program. This spent casing has been converted into a pipe, but there is too much tar in the mouthpiece for it to be useable."
+ name = "10x99mm XM43E1 casing pipe"
+ desc = "The XM43E1 was an experimental weapons platform briefly fielded by the USCM and Wey-Yu PMC teams. It was manufactured by ARMAT systems at the Atlas weapons facility. Unfortunately the project had its funding pulled alongside the M5 integrated gasmask program. This spent casing has been converted into a pipe, but there is too much tar in the mouthpiece for it to be useable."
icon_state = "bullet_pipe"
/obj/item/prop/helmetgarb/chaplain_patch
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index 4b937b0135b3..629f507f01ed 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -350,7 +350,7 @@ var/global/list/gear_datums_by_name = list()
path = /obj/item/prop/helmetgarb/trimmed_wire
/datum/gear/helmet_garb/bullet_pipe
- display_name = "10x99mm XM42B casing pipe"
+ display_name = "10x99mm XM43E1 casing pipe"
path = /obj/item/prop/helmetgarb/bullet_pipe
allowed_origins = USCM_ORIGINS
diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm
index 20781639a579..518e0deef5ab 100644
--- a/code/modules/projectiles/gun_attachables.dm
+++ b/code/modules/projectiles/gun_attachables.dm
@@ -495,6 +495,20 @@ Defined in conflicts.dm of the #defines folder.
accuracy_mod = HIT_ACCURACY_MULT_TIER_3
scatter_mod = -SCATTER_AMOUNT_TIER_8
+/obj/item/attachable/pmc_sniperbarrel
+ name = "sniper barrel"
+ icon = 'icons/obj/items/weapons/guns/attachments/barrel.dmi'
+ icon_state = "pmc_sniperbarrel"
+ desc = "A heavy barrel. CANNOT BE REMOVED."
+ slot = "muzzle"
+ flags_attach_features = NO_FLAGS
+ hud_offset_mod = -3
+
+/obj/item/attachable/pmc_sniperbarrel/New()
+ ..()
+ accuracy_mod = HIT_ACCURACY_MULT_TIER_3
+ scatter_mod = -SCATTER_AMOUNT_TIER_8
+
/obj/item/attachable/sniperbarrel/vulture
name = "\improper M707 barrel"
icon_state = "vulture_barrel"
diff --git a/code/modules/projectiles/guns/specialist/sniper.dm b/code/modules/projectiles/guns/specialist/sniper.dm
index 1e72a425387b..3fe2934259bf 100644
--- a/code/modules/projectiles/guns/specialist/sniper.dm
+++ b/code/modules/projectiles/guns/specialist/sniper.dm
@@ -337,12 +337,12 @@
damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_5
-/obj/item/weapon/gun/rifle/sniper/xm43e1
+/obj/item/weapon/gun/rifle/sniper/XM43E1
name = "\improper XM43E1 experimental anti-materiel rifle"
desc = "An experimental anti-materiel rifle produced by Armat Systems, recently reacquired from the deep storage of an abandoned prototyping facility. This one in particular is currently undergoing field testing. Chambered in 10x99mm Caseless."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "xm42b"
- item_state = "xm42b"
+ icon_state = "xm43e1"
+ item_state = "xm43e1"
unacidable = TRUE
indestructible = 1
@@ -353,12 +353,12 @@
zoomdevicename = "scope"
attachable_allowed = list(/obj/item/attachable/bipod)
flags_gun_features = GUN_AUTO_EJECTOR|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
- starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
+ starting_attachment_types = list(/obj/item/attachable/pmc_sniperbarrel)
sniper_beam_type = /obj/effect/ebeam/laser/intense
sniper_beam_icon = "laser_beam_intense"
sniper_lockon_icon = "sniper_lockon_intense"
-/obj/item/weapon/gun/rifle/sniper/XM42B/handle_starting_attachment()
+/obj/item/weapon/gun/rifle/sniper/XM43E1/handle_starting_attachment()
..()
var/obj/item/attachable/scope/variable_zoom/S = new(src)
S.icon_state = "pmcscope"
@@ -368,11 +368,11 @@
update_attachable(S.slot)
-/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_attachment_offsets()
+/obj/item/weapon/gun/rifle/sniper/XM43E1/set_gun_attachment_offsets()
attachable_offset = list("muzzle_x" = 32, "muzzle_y" = 18,"rail_x" = 15, "rail_y" = 19, "under_x" = 20, "under_y" = 15, "stock_x" = 20, "stock_y" = 15)
-/obj/item/weapon/gun/rifle/sniper/XM42B/set_gun_config_values()
+/obj/item/weapon/gun/rifle/sniper/XM43E1/set_gun_config_values()
..()
set_fire_delay(FIRE_DELAY_TIER_6 * 6 )//Big boy damage, but it takes a lot of time to fire a shot.
//Kaga: Adjusted from 56 (Tier 4, 7*8) -> 30 (Tier 6, 5*6) ticks. 95 really wasn't big-boy damage anymore, although I updated it to 125 to remain consistent with the other 10x99mm caliber weapon (M42C). Now takes only twice as long as the M42A.
@@ -382,7 +382,7 @@
damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_1
-/obj/item/weapon/gun/rifle/sniper/XM42B/set_bullet_traits()
+/obj/item/weapon/gun/rifle/sniper/XM43E1/set_bullet_traits()
LAZYADD(traits_to_give, list(
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_iff),
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating),
@@ -415,7 +415,7 @@
force = 17
zoomdevicename = "scope"
flags_gun_features = GUN_AUTO_EJECTOR|GUN_WY_RESTRICTED|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY|GUN_AMMO_COUNTER
- starting_attachment_types = list(/obj/item/attachable/sniperbarrel)
+ starting_attachment_types = list(/obj/item/attachable/pmc_sniperbarrel)
sniper_beam_type = /obj/effect/ebeam/laser/intense
sniper_beam_icon = "laser_beam_intense"
sniper_lockon_icon = "sniper_lockon_intense"
diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm
index 821273247f66..761e77305254 100644
--- a/code/modules/projectiles/magazines/specialist.dm
+++ b/code/modules/projectiles/magazines/specialist.dm
@@ -27,14 +27,14 @@
default_ammo = /datum/ammo/bullet/sniper/flak
ammo_band_color = AMMO_BAND_COLOR_IMPACT
-//M42B Magazine
+//XM43E1 Magazine
/obj/item/ammo_magazine/sniper/anti_materiel
- name = "\improper XM42B marksman magazine (10x99mm)"
+ name = "\improper XM43E1 marksman magazine (10x99mm)"
desc = "A magazine of caseless 10x99mm anti-materiel rounds."
max_rounds = 8
caliber = "10x99mm"
default_ammo = /datum/ammo/bullet/sniper/anti_materiel
- gun_type = /obj/item/weapon/gun/rifle/sniper/XM42B
+ gun_type = /obj/item/weapon/gun/rifle/sniper/XM43E1
//M42C magazine
diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi
index a6e9ef72c010aa95517c677918c16c942f696e70..8fc07bc410fb3200880a6d0f1280499381f54a69 100644
GIT binary patch
delta 49271
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