Merge remote-tracking branch 'upstream/master' into kk-mini1

This commit is contained in:
Killian
2023-09-05 18:16:45 +01:00
17 changed files with 259 additions and 49 deletions
+3 -3
View File
@@ -12,7 +12,7 @@ jobs:
name: Run Linters
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Ensure +x on CI directory
run: |
chmod -R +x ./tools/ci
@@ -38,7 +38,7 @@ jobs:
name: DreamChecker
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Cache SpacemanDMM
uses: actions/cache@v3
@@ -71,7 +71,7 @@ jobs:
# needs: ['file_tests', 'dreamchecker']
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Ensure +x on CI directory
run: |
chmod -R +x ./tools/ci
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-20.04
steps:
- name: Clone
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Branch
run: |
+5 -2
View File
@@ -366,7 +366,9 @@
if(choice == "No, wait")
return
else if(mind.assigned_role)
var/extra_check = tgui_alert(usr, "Do you want to Quit This Round before you return to lobby? This will properly remove you from manifest, as well as prevent resleeving.","Quit This Round",list("Quit Round","Cancel"))
var/extra_check = tgui_alert(usr, "Do you want to Quit This Round before you return to lobby?\
This will properly remove you from manifest, as well as prevent resleeving. BEWARE: Pressing 'NO' will STILL return you to lobby!",
"Quit This Round",list("Quit Round","No"))
if(extra_check == "Quit Round")
//Update any existing objectives involving this mob.
for(var/datum/objective/O in all_objectives)
@@ -406,7 +408,6 @@
to_chat(src,"<span class='notice'>Your job has been free'd up, and you can rejoin as another character or quit. Thanks for properly quitting round, it helps the server!</span>")
// Beyond this point, you're going to respawn
to_chat(usr, config.respawn_message)
if(!client)
log_game("[usr.key] AM failed due to disconnect.")
@@ -425,7 +426,9 @@
qdel(M)
return
M.has_respawned = TRUE //When we returned to main menu, send respawn message
M.key = key
if(M.mind)
M.mind.reset()
return
+6 -2
View File
@@ -31,6 +31,10 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
if(join_motd)
to_chat(src, "<div class=\"motd\">[join_motd]</div>")
if(has_respawned)
to_chat(usr, config.respawn_message)
has_respawned = FALSE
if(!mind)
mind = new /datum/mind(key)
mind.active = 1
@@ -53,7 +57,7 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
/mob/new_player/proc/version_warnings()
var/problems // string to store message to present to player as a problem
// TODO: Move this to a config file at some point maybe? What would the structure of that look like?
switch(client.byond_build)
// http://www.byond.com/forum/post/2711510
@@ -62,7 +66,7 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
// http://www.byond.com/forum/post/2711748
if(1562 to 1563)
problems = "frequent known crashes related to animations"
// Don't have a thread, just a lot of player reports.
if(1564 to 1565) // Fixed in 1566 which isn't released as of this commit
if(world.byond_build == 1564)
@@ -6,6 +6,7 @@
var/totalPlayers = 0 //Player counts for the Lobby tab
var/totalPlayersReady = 0
var/show_hidden_jobs = 0 //Show jobs that are set to "Never" in preferences
var/has_respawned = FALSE //Determines if we're using RESPAWN_MESSAGE
var/datum/browser/panel
universal_speak = 1
@@ -1026,6 +1026,7 @@
name = "Naga (Taur, Fat, dual color)"
icon_state = "fatnaga_s"
extra_overlay = "fatnaga_markings"
suit_sprites = null
/datum/sprite_accessory/tail/taur/fox
name = "Fox (Taur, 3-color)"
+9 -21
View File
@@ -12,7 +12,7 @@
var/known = TRUE
/// Name prior to being scanned if !known
var/unknown_name = "unknown sector"
var/real_name
var/real_name // Used for late-load overmap ship distress beacons and scan_data for lateload/vvar'd scannable overmap objects
var/real_desc
/// Icon_state prior to being scanned if !known
var/unknown_state = "field"
@@ -155,24 +155,12 @@
/obj/effect/overmap/visitable/get_scan_data()
if(!known)
known = TRUE
if(real_name)
name = real_name
else
name = initial(name)
if(real_icon_state) //Only true when GMs/Admins play with the object
if(real_icon) //Only true if GMs/Admins want a non-standard icon from outside 'icons/obj/overmap.dmi'
icon = real_icon
icon_state = real_icon_state
else
icon_state = initial(icon_state)
if(real_color)
color = real_color
else
color = initial(color)
if(real_desc)
desc = real_desc
else
desc = initial(desc)
name = (real_name ? real_name : initial(name))
color = (real_color ? real_color : initial(color))
desc = (real_desc ? real_desc : initial(desc))
if(real_icon) //Only true if GMs/Admins want a non-standard icon from outside 'icons/obj/overmap.dmi'
icon = real_icon
icon_state = (real_icon_state ? real_icon_state : initial(icon_state))
return ..()
/obj/effect/overmap/visitable/proc/get_space_zlevels()
@@ -254,7 +242,7 @@
admin_chat_message(message = "Overmap panic button hit on z[z] ([name]) by '[user?.ckey || "Unknown"]'", color = "#FF2222") //VOREStation Add
var/message = "This is an automated distress signal from a MIL-DTL-93352-compliant beacon transmitting on [PUB_FREQ*0.1]kHz. \
This beacon was launched from '[initial(name)]'. I can provide this additional information to rescuers: [get_distress_info()]. \
This beacon was launched from '[real_name ? real_name : initial(name)]'. I can provide this additional information to rescuers: [get_distress_info()]. \
Per the Interplanetary Convention on Space SAR, those receiving this message must attempt rescue, \
or relay the message to those who can. This message will repeat one time in 5 minutes. Thank you for your urgent assistance."
@@ -275,7 +263,7 @@
return "\[X:[x], Y:[y]\]"
/obj/effect/overmap/visitable/proc/distress_update()
var/message = "This is the final message from the distress beacon launched from '[initial(name)]'. I can provide this additional information to rescuers: [get_distress_info()]. \
var/message = "This is the final message from the distress beacon launched from '[real_name ? real_name : initial(name)]'. I can provide this additional information to rescuers: [get_distress_info()]. \
Please render assistance under your obligations per the Interplanetary Convention on Space SAR, or relay this message to a party who can. Thank you for your urgent assistance."
for(var/zlevel in levels_for_distress)
+6
View File
@@ -59,6 +59,12 @@
return
/obj/item/weapon/clipboard/afterattack(turf/T as turf)
for(var/obj/item/weapon/paper/P in T)
P.loc = src
toppaper = P
update_icon()
/obj/item/weapon/clipboard/attack_self(mob/user as mob)
var/dat = "<title>Clipboard</title>"
if(haspen)
+5
View File
@@ -75,6 +75,11 @@
name = "folder[(n_name ? text("- '[n_name]'") : null)]"
return
/obj/item/weapon/folder/afterattack(turf/T as turf)
for(var/obj/item/weapon/paper/P in T)
P.loc = src
update_icon()
/obj/item/weapon/folder/attack_self(mob/user as mob)
var/dat = "<title>[name]</title>"
+132 -9
View File
@@ -3,6 +3,7 @@
desc = "For the union!"
icon = 'icons/obj/tesla_engine/tesla_coil.dmi'
icon_state = "coil0"
var/icontype = "coil"
anchored = FALSE
density = TRUE
@@ -51,9 +52,9 @@
/obj/machinery/power/tesla_coil/update_icon()
if(panel_open)
icon_state = "coil_open[anchored]"
icon_state = "[icontype]_open[anchored]"
else
icon_state = "coil[anchored]"
icon_state = "[icontype][anchored]"
/obj/machinery/power/tesla_coil/attackby(obj/item/W, mob/user, params)
src.add_fingerprint(user)
@@ -79,18 +80,19 @@
/obj/machinery/power/tesla_coil/tesla_act(var/power)
if(anchored && !panel_open)
being_shocked = TRUE
//don't lose arc power when it's not connected to anything
//please place tesla coils all around the station to maximize effectiveness
var/power_produced = powernet ? power / power_loss : power
add_avail(power_produced*input_power_multiplier)
flick("coilhit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_produced)
coil_act(power)
//addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10)
spawn(10) reset_shocked()
else
..()
/obj/machinery/power/tesla_coil/proc/coil_act(var/power)
var/power_produced = power / power_loss
add_avail(power_produced*input_power_multiplier)
flick("[icontype]hit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_produced)
/obj/machinery/power/tesla_coil/proc/zap()
if((last_zap + zap_cooldown) > world.time || !powernet)
return FALSE
@@ -102,6 +104,127 @@
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 10, power/(coeff/2))
/obj/machinery/power/tesla_coil/relay
name = "tesla relay coil"
desc = "For the union!"
icon_state = "relay0"
icontype = "relay"
circuit = /obj/item/weapon/circuitboard/tesla_coil
power_loss = 1
input_power_multiplier = 0
var/relay_efficiency = 0.9
/obj/machinery/power/tesla_coil/relay/RefreshParts()
..()
var/relay_multiplier
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
relay_multiplier += C.rating
relay_efficiency = 0.85 + (0.05 * relay_multiplier)
/obj/machinery/power/tesla_coil/relay/coil_act(var/power)
var/power_relayed = power * relay_efficiency
flick("[icontype]hit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_relayed)
/obj/machinery/power/tesla_coil/splitter
name = "tesla prism coil"
desc = "For the union!"
icon_state = "prism0"
icontype = "prism"
circuit = /obj/item/weapon/circuitboard/tesla_coil
var/split_count = 1
/obj/machinery/power/tesla_coil/splitter/RefreshParts()
..()
split_count = 0
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
split_count += C.rating
/obj/machinery/power/tesla_coil/splitter/coil_act(var/power)
var/power_per_bolt = power / (split_count + 1)
var/power_produced = power_per_bolt / power_loss
add_avail(power_produced*input_power_multiplier)
flick("[icontype]hit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
for(var/i = 0, i < split_count, i++)
tesla_zap(src, 5, power_per_bolt)
/obj/machinery/power/tesla_coil/amplifier
name = "tesla amplifier coil"
desc = "For the union!"
icon_state = "amp0"
icontype = "amp"
circuit = /obj/item/weapon/circuitboard/tesla_coil
var/amp_eff = 2
/obj/machinery/power/tesla_coil/amplifier/RefreshParts()
..()
var/amp_eff = 1
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
amp_eff += C.rating
/obj/machinery/power/tesla_coil/amplifier/coil_act(var/power)
var/power_produced = power / power_loss
add_avail(power_produced*input_power_multiplier)
flick("[icontype]hit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_produced)
/obj/machinery/power/tesla_coil/recaster
name = "tesla recaster coil"
desc = "For the union!"
icon_state = "recaster0"
icontype = "recaster"
circuit = /obj/item/weapon/circuitboard/tesla_coil
var/zap_range = 6
/obj/machinery/power/tesla_coil/recaster/RefreshParts()
..()
var/zap_range = 5
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
zap_range += C.rating
/obj/machinery/power/tesla_coil/recaster/coil_act(var/power)
var/power_relayed = power / power_loss
var/power_produced = power / (power_loss * 2)
add_avail(power_produced*input_power_multiplier)
flick("[icontype]hit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = zap_range)
tesla_zap(src, zap_range, power_relayed)
/obj/machinery/power/tesla_coil/collector
name = "tesla collector coil"
desc = "For the union!"
icon_state = "collector0"
icontype = "collector"
circuit = /obj/item/weapon/circuitboard/tesla_coil
var/collect_eff = 0.8
/obj/machinery/power/tesla_coil/collector/RefreshParts()
..()
var/collect_mod = 0
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
collect_mod += C.rating
collect_eff = 0.75 + collect_mod*0.05
/obj/machinery/power/tesla_coil/collector/coil_act(var/power)
var/power_produced = power * collect_eff
add_avail(power_produced*input_power_multiplier)
flick("[icontype]hit", src)
playsound(src, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
/obj/machinery/power/grounding_rod
name = "grounding rod"
desc = "Keep an area from being fried from Edison's Bane."
@@ -24,8 +24,35 @@
build_path = /obj/machinery/power/grounding_rod
board_type = new /datum/frame/frame_types/machine
matter = list(MAT_STEEL = 50, MAT_GLASS = 50)
origin_tech = list(TECH_MAGNET = 1, TECH_POWER = 2)
req_components = list()
/datum/category_item/autolathe/engineering/grounding_rod
name = "grounding rod electronics"
path = /obj/item/weapon/circuitboard/grounding_rod
// SPECIAL BOARDS BELOW
/obj/item/weapon/circuitboard/tesla_coil/attackby(obj/item/I as obj, mob/user as mob)
if(I.is_multitool())
var/result = tgui_input_list(user, "What do you want to reconfigure the board to?", "Multitool-Circuitboard interface", list("Standard", "Relay", "Prism", "Amplifier", "Recaster", "Collector"))
switch(result)
if("Standard")
name = T_BOARD("tesla coil")
build_path = /obj/machinery/power/tesla_coil
if("Relay")
name = T_BOARD("tesla relay coil")
build_path = /obj/machinery/power/tesla_coil/relay
if("Prism")
name = T_BOARD("tesla prism coil")
build_path = /obj/machinery/power/tesla_coil/splitter
if("Amplifier")
name = T_BOARD("tesla amplifier coil")
build_path = /obj/machinery/power/tesla_coil/amplifier
if("Recaster")
name = T_BOARD("tesla recaster coil")
build_path = /obj/machinery/power/tesla_coil/recaster
if("Collector")
name = T_BOARD("tesla collector coil")
build_path = /obj/machinery/power/tesla_coil/collector
return
@@ -768,7 +768,7 @@
name = "Decaf Mint Tea"
id = "decafminttea"
result = "decafminttea"
required_reagents = list("decaftea" = 5, "mint" = 1)
required_reagents = list("teadecaf" = 5, "mint" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/lemontea
@@ -782,7 +782,7 @@
name = "Decaf Lemon Tea"
id = "decaflemontea"
result = "decaflemontea"
required_reagents = list("decaftea" = 5, "lemonjuice" = 1)
required_reagents = list("teadecaf" = 5, "lemonjuice" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/limetea
@@ -796,7 +796,7 @@
name = "Decaf Lime Tea"
id = "decaflimetea"
result = "decaflimetea"
required_reagents = list("decaftea" = 5, "limejuice" = 1)
required_reagents = list("teadecaf" = 5, "limejuice" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/orangetea
@@ -810,7 +810,7 @@
name = "Decaf Orange Tea"
id = "decaforangetea"
result = "decaforangetea"
required_reagents = list("decaftea" = 5, "orangejuice" = 1)
required_reagents = list("teadecaf" = 5, "orangejuice" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/berrytea
@@ -824,7 +824,7 @@
name = "Decaf Berry Tea"
id = "decafberrytea"
result = "decafberrytea"
required_reagents = list("decaftea" = 5, "berryjuice" = 1)
required_reagents = list("teadecaf" = 5, "berryjuice" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/sakebomb
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 45 KiB

+4 -4
View File
@@ -572,8 +572,8 @@
/turf/simulated/floor/water/deep/ocean/diving,
/area/redgate/islands/ocean)
"px" = (
/obj/structure/fake_stairs/west/bottom,
/obj/structure/fake_stairs/west/bottom{
/obj/structure/inactive_stairs/west/bottom,
/obj/structure/inactive_stairs/west/bottom{
pixel_y = 16
},
/turf/simulated/floor/tiled{
@@ -852,8 +852,8 @@
/turf/simulated/floor/outdoors/grass/heavy,
/area/redgate/islands/ocean)
"zg" = (
/obj/structure/fake_stairs/west/top,
/obj/structure/fake_stairs/west/top{
/obj/structure/inactive_stairs/west/top,
/obj/structure/inactive_stairs/west/top{
pixel_y = 16
},
/turf/simulated/floor/tiled{
+53 -1
View File
@@ -132,4 +132,56 @@
/obj/structure/fake_stairs/west/bottom
name = "stairs"
dir = WEST
stepoff_dir = EAST
stepoff_dir = EAST
//Inactive stairs are completely cosmetic versions of fake_stairs
/obj/structure/inactive_stairs
name = "use a subtype! - stairs"
icon = 'icons/obj/structures/multiz.dmi'
icon_state = "stair"
density = 0
opacity = 0
anchored = 1
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
appearance_flags = PIXEL_SCALE|KEEP_TOGETHER
/obj/structure/inactive_stairs/north/top
name = "stairs"
dir = NORTH
color = "#B0B0B0"
pixel_y = -32
/obj/structure/inactive_stairs/north/bottom
name = "stairs"
dir = NORTH
pixel_y = -32
/obj/structure/inactive_stairs/south/top
name = "stairs"
dir = SOUTH
color = "#B0B0B0"
/obj/structure/inactive_stairs/south/bottom
name = "stairs"
dir = SOUTH
/obj/structure/inactive_stairs/east/top
name = "stairs"
dir = EAST
color = "#B0B0B0"
pixel_x = -32
/obj/structure/inactive_stairs/east/bottom
name = "stairs"
dir = EAST
pixel_x = -32
/obj/structure/inactive_stairs/west/top
name = "stairs"
dir = WEST
color = "#B0B0B0"
/obj/structure/inactive_stairs/west/bottom
name = "stairs"
dir = WEST
+1 -1
View File
@@ -4245,13 +4245,13 @@
#include "maps\expedition_vr\beach\submaps\mountains.dm"
#include "maps\expedition_vr\beach\submaps\mountains_areas.dm"
#include "maps\gateway_archive_vr\blackmarketpackers.dm"
#include "maps\groundbase\groundbase.dm"
#include "maps\southern_cross\items\clothing\sc_accessory.dm"
#include "maps\southern_cross\items\clothing\sc_suit.dm"
#include "maps\southern_cross\items\clothing\sc_under.dm"
#include "maps\southern_cross\loadout\loadout_suit.dm"
#include "maps\southern_cross\loadout\loadout_uniform.dm"
#include "maps\southern_cross\loadout\loadout_vr.dm"
#include "maps\stellar_delight\stellar_delight.dm"
#include "maps\submaps\_helpers.dm"
#include "maps\submaps\_readme.dm"
#include "maps\submaps\admin_use_vr\event_autonomous_drone.dm"