mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Merge remote-tracking branch 'ParadiseSS13/master' into toml-config
This commit is contained in:
@@ -383,6 +383,9 @@
|
||||
/datum/action/item_action/hands_free/activate
|
||||
name = "Activate"
|
||||
|
||||
/datum/action/item_action/hands_free/activate/always
|
||||
check_flags = null
|
||||
|
||||
/datum/action/item_action/toggle_research_scanner
|
||||
name = "Toggle Research Scanner"
|
||||
button_icon_state = "scan_mode"
|
||||
|
||||
@@ -111,6 +111,8 @@
|
||||
|
||||
for(var/path in backpack_contents)
|
||||
var/number = backpack_contents[path]
|
||||
if(!number)
|
||||
number = 1
|
||||
for(var/i in 1 to number)
|
||||
H.equip_or_collect(new path(H), slot_in_backpack)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/datum/outfit/admin/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(!visualsOnly)
|
||||
if(!visualsOnly && H.mind)
|
||||
H.mind.assigned_role = name
|
||||
H.job = name
|
||||
|
||||
@@ -627,6 +627,10 @@
|
||||
/obj/item/implanter/death_alarm = 1,
|
||||
)
|
||||
|
||||
implants = list(/obj/item/implant/mindshield,
|
||||
/obj/item/implant/death_alarm
|
||||
)
|
||||
|
||||
/datum/outfit/admin/solgov_rep/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
. = ..()
|
||||
if(visualsOnly)
|
||||
@@ -634,33 +638,43 @@
|
||||
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_all_accesses(), name, "lifetimeid")
|
||||
apply_to_card(I, H, get_all_centcom_access(), name, "lifetimeid")
|
||||
I.assignment = "Solar Federation Representative"
|
||||
|
||||
|
||||
/datum/outfit/admin/solgov
|
||||
name = "Solar Federation Marine"
|
||||
|
||||
uniform = /obj/item/clothing/under/solgov
|
||||
suit = /obj/item/clothing/suit/armor/bulletproof
|
||||
back = /obj/item/storage/backpack/security
|
||||
belt = /obj/item/storage/belt/military/assault
|
||||
head = /obj/item/clothing/head/soft/solgov
|
||||
glasses = /obj/item/clothing/glasses/hud/security/night
|
||||
belt = /obj/item/storage/belt/military/assault/marines/full
|
||||
head = /obj/item/clothing/head/soft/solgov/marines
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
shoes = /obj/item/clothing/shoes/combat
|
||||
l_ear = /obj/item/radio/headset/ert
|
||||
id = /obj/item/card/id
|
||||
l_hand = /obj/item/gun/projectile/automatic/ar
|
||||
l_hand = /obj/item/gun/projectile/automatic/shotgun/bulldog
|
||||
suit_store = /obj/item/gun/projectile/automatic/pistol/m1911
|
||||
r_pocket = /obj/item/flashlight/seclite
|
||||
pda = /obj/item/pda
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/responseteam = 1,
|
||||
/obj/item/ammo_box/magazine/m556 = 3,
|
||||
/obj/item/clothing/shoes/magboots = 1,
|
||||
/obj/item/gun/projectile/automatic/pistol/m1911 = 1,
|
||||
/obj/item/ammo_box/magazine/m45 = 2
|
||||
/obj/item/whetstone = 1,
|
||||
/obj/item/clothing/mask/gas/explorer/marines = 1,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival = 1
|
||||
)
|
||||
var/is_tsf_lieutenant = FALSE
|
||||
cybernetic_implants = list(
|
||||
/obj/item/organ/internal/cyberimp/arm/flash,
|
||||
/obj/item/organ/internal/cyberimp/chest/nutriment,
|
||||
/obj/item/organ/internal/cyberimp/eyes/hud/security
|
||||
)
|
||||
implants = list(/obj/item/implant/mindshield,
|
||||
/obj/item/implant/death_alarm
|
||||
)
|
||||
|
||||
var/is_solgov_lieutenant = FALSE
|
||||
|
||||
|
||||
/datum/outfit/admin/solgov/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
@@ -668,31 +682,80 @@
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
if(is_tsf_lieutenant)
|
||||
if(is_solgov_lieutenant)
|
||||
H.real_name = "Lieutenant [pick(GLOB.last_names)]"
|
||||
else
|
||||
H.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(GLOB.last_names)]"
|
||||
H.name = H.real_name
|
||||
var/obj/item/card/id/I = H.wear_id
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_all_accesses(), name, "lifetimeid")
|
||||
I.assignment = name
|
||||
if(istype(I) && is_solgov_lieutenant)
|
||||
apply_to_card(I, H, get_centcom_access("Emergency Response Team Leader"), name, "lifetimeid")
|
||||
else if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Emergency Response Team Member"), name, "lifetimeid")
|
||||
H.sec_hud_set_ID()
|
||||
|
||||
/datum/outfit/admin/solgov/lieutenant
|
||||
name = "Solar Federation Lieutenant"
|
||||
|
||||
uniform = /obj/item/clothing/under/solgov/command
|
||||
head = /obj/item/clothing/head/soft/solgov/command
|
||||
head = /obj/item/clothing/head/beret/solgov/command
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
l_ear = /obj/item/radio/headset/ert/alt/commander
|
||||
l_hand = null
|
||||
belt = /obj/item/melee/baton/loaded
|
||||
suit_store = /obj/item/gun/projectile/automatic/pistol/deagle
|
||||
l_pocket = /obj/item/pinpointer/advpinpointer
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/responseteam = 1,
|
||||
/obj/item/melee/classic_baton/telescopic = 1,
|
||||
/obj/item/storage/box/handcuffs = 1,
|
||||
/obj/item/clothing/shoes/magboots/advance = 1,
|
||||
/obj/item/gun/projectile/automatic/pistol/deagle = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 2
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival = 1,
|
||||
/obj/item/clothing/mask/gas/explorer/marines = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 3
|
||||
)
|
||||
is_tsf_lieutenant = TRUE
|
||||
is_solgov_lieutenant = TRUE
|
||||
|
||||
/datum/outfit/admin/solgov/elite
|
||||
name = "Solar Federation Specops Marine"
|
||||
uniform = /obj/item/clothing/under/solgov/elite
|
||||
head = /obj/item/clothing/head/soft/solgov/marines/elite
|
||||
belt = /obj/item/storage/belt/military/assault/marines/elite/full
|
||||
l_hand = /obj/item/gun/projectile/automatic/ar
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/responseteam = 1,
|
||||
/obj/item/clothing/shoes/magboots/advance = 1,
|
||||
/obj/item/whetstone = 1,
|
||||
/obj/item/clothing/mask/gas/explorer/marines = 1,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival = 1
|
||||
)
|
||||
cybernetic_implants = list(
|
||||
/obj/item/organ/internal/cyberimp/eyes/hud/security,
|
||||
/obj/item/organ/internal/cyberimp/chest/nutriment,
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened,
|
||||
/obj/item/organ/internal/cyberimp/arm/flash,
|
||||
/obj/item/organ/internal/eyes/cybernetic/shield
|
||||
)
|
||||
/datum/outfit/admin/solgov/elite/lieutenant
|
||||
name = "Solar Federation Specops Lieutenant"
|
||||
uniform = /obj/item/clothing/under/solgov/command/elite
|
||||
head = /obj/item/clothing/head/beret/solgov/command/elite
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
belt = /obj/item/melee/baton/loaded
|
||||
l_hand = null
|
||||
suit_store = /obj/item/gun/projectile/automatic/pistol/deagle
|
||||
l_pocket = /obj/item/pinpointer/advpinpointer
|
||||
l_ear = /obj/item/radio/headset/ert/alt/commander
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/responseteam = 1,
|
||||
/obj/item/storage/box/handcuffs = 1,
|
||||
/obj/item/clothing/shoes/magboots/advance = 1,
|
||||
/obj/item/clothing/mask/gas/explorer/marines = 1,
|
||||
/obj/item/reagent_containers/hypospray/autoinjector/survival = 1,
|
||||
/obj/item/ammo_box/magazine/m50 = 3
|
||||
)
|
||||
is_solgov_lieutenant = TRUE
|
||||
|
||||
/datum/outfit/admin/sol_trader
|
||||
name = "Sol Trader"
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone
|
||||
name = "Summon Soulstone"
|
||||
desc = "This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space"
|
||||
desc = "This spell reaches into Redspace, summoning one of the legendary fragments across time and space"
|
||||
action_icon_state = "summonsoulstone"
|
||||
action_background_icon_state = "bg_cult"
|
||||
school = "conjuration"
|
||||
@@ -68,7 +68,7 @@
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/conjure/pylon
|
||||
name = "Cult Pylon"
|
||||
desc = "This spell conjures a fragile crystal from Nar'Sie's realm. Makes for a convenient light source."
|
||||
desc = "This spell conjures a fragile crystal from Redspace. Makes for a convenient light source."
|
||||
action_icon_state = "pylon"
|
||||
action_background_icon_state = "bg_cult"
|
||||
school = "conjuration"
|
||||
@@ -118,7 +118,12 @@
|
||||
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/do_jaunt(mob/living/target)
|
||||
target.set_light(0)
|
||||
..()
|
||||
target.set_light(2, 3, l_color = SSticker.cultdat ? SSticker.cultdat.construct_glow : LIGHT_COLOR_BLOOD_MAGIC)
|
||||
if(isconstruct(target))
|
||||
var/mob/living/simple_animal/hostile/construct/C = target
|
||||
if(C.holy)
|
||||
C.set_light(3, 5, LIGHT_COLOR_DARK_BLUE)
|
||||
else
|
||||
C.set_light(2, 3, l_color = SSticker.cultdat ? SSticker.cultdat.construct_glow : LIGHT_COLOR_BLOOD_MAGIC)
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc)
|
||||
return
|
||||
|
||||
@@ -1,39 +1,53 @@
|
||||
/// Will our restart be slower?
|
||||
GLOBAL_VAR_INIT(slower_restart, FALSE)
|
||||
|
||||
/proc/server_announce_global(announcement_text)
|
||||
to_chat(world, "<span style='color: #ff00ff'>\[Server] [announcement_text]</span>")
|
||||
|
||||
/proc/server_announce_adminonly(announcement_text)
|
||||
to_chat(GLOB.admins, "<span style='color: #ff00ff'>\[Server] \[Admin] [announcement_text]</span>")
|
||||
|
||||
/datum/tgs_event_handler/impl
|
||||
var/datum/timedevent/reattach_timer
|
||||
|
||||
|
||||
/datum/tgs_event_handler/impl/HandleEvent(event_code, ...)
|
||||
switch(event_code)
|
||||
if(TGS_EVENT_REBOOT_MODE_CHANGE)
|
||||
var/list/reboot_mode_lookup = list ("[TGS_REBOOT_MODE_NORMAL]" = "be normal", "[TGS_REBOOT_MODE_SHUTDOWN]" = "shutdown the server", "[TGS_REBOOT_MODE_RESTART]" = "hard restart the server")
|
||||
var/old_reboot_mode = args[2]
|
||||
var/new_reboot_mode = args[3]
|
||||
message_admins("\[Server]\[Info] Reboot will no longer [reboot_mode_lookup["[old_reboot_mode]"]], it will instead [reboot_mode_lookup["[new_reboot_mode]"]]")
|
||||
if(new_reboot_mode == TGS_REBOOT_MODE_SHUTDOWN)
|
||||
GLOB.slower_restart = TRUE
|
||||
else
|
||||
GLOB.slower_restart = FALSE
|
||||
server_announce_adminonly("\[Info] Reboot will no longer [reboot_mode_lookup["[old_reboot_mode]"]], it will instead [reboot_mode_lookup["[new_reboot_mode]"]]")
|
||||
if(TGS_EVENT_PORT_SWAP)
|
||||
message_admins("\[Server]\[Info] Changing port from [world.port] to [args[2]]")
|
||||
server_announce_adminonly("\[Info] Changing port from [world.port] to [args[2]]")
|
||||
if(TGS_EVENT_INSTANCE_RENAMED)
|
||||
message_admins("\[Server]\[Info] Instance renamed to from [world.TgsInstanceName()] to [args[2]]")
|
||||
server_announce_adminonly("\[Info] Instance renamed to from [world.TgsInstanceName()] to [args[2]]")
|
||||
if(TGS_EVENT_COMPILE_START)
|
||||
message_admins("\[Server]\[Info] Code deployment started, new game version incoming next round...")
|
||||
server_announce_adminonly("\[Info] Code deployment started, new game version incoming next round...")
|
||||
if(TGS_EVENT_COMPILE_CANCELLED)
|
||||
message_admins("\[Server]\[Warning] Code deployment cancelled!")
|
||||
server_announce_adminonly("\[Warning] Code deployment cancelled! Consult a maintainer/host to see if this was intentional!")
|
||||
if(TGS_EVENT_COMPILE_FAILURE)
|
||||
message_admins("\[Server]\[Error] Code deployment failed! Inform a maintainer/host immediately!")
|
||||
server_announce_adminonly("\[Error] Code deployment failed! Inform a maintainer/host immediately!")
|
||||
if(TGS_EVENT_DEPLOYMENT_COMPLETE)
|
||||
message_admins("\[Server]\[Info] Code deployment complete!")
|
||||
to_chat(world, "<span class='boldannounce'>Server updated, changes will be applied on the next round...</span>")
|
||||
server_announce_adminonly("\[Info] Code deployment complete!")
|
||||
server_announce_global("Server update complete. Changes will be applied on the next round.")
|
||||
if(TGS_EVENT_WATCHDOG_DETACH)
|
||||
message_admins("\[Server]\[Info] Server manager restarting...")
|
||||
server_announce_adminonly("\[Info] Server manager restarting...")
|
||||
reattach_timer = addtimer(CALLBACK(src, .proc/LateOnReattach), 1 MINUTES, TIMER_STOPPABLE)
|
||||
if(TGS_EVENT_WATCHDOG_REATTACH)
|
||||
var/datum/tgs_version/old_version = world.TgsVersion()
|
||||
var/datum/tgs_version/new_version = args[2]
|
||||
if(!old_version.Equals(new_version))
|
||||
message_admins("\[Server]\[Info] Manager back online. TGS has been updated to v[new_version.deprefixed_parameter]")
|
||||
server_announce_adminonly("\[Info] Server manager back online. TGS has been updated to v[new_version.deprefixed_parameter]")
|
||||
else
|
||||
message_admins("\[Server]\[Info] Manager back online")
|
||||
server_announce_adminonly("\[Info] Server manager back online")
|
||||
if(reattach_timer)
|
||||
deltimer(reattach_timer)
|
||||
reattach_timer = null
|
||||
|
||||
/datum/tgs_event_handler/impl/proc/LateOnReattach()
|
||||
message_admins("\[Server]\[Warning] TGS hasn't notified us of it coming back for a full minute! Is there a problem?")
|
||||
server_announce_adminonly("\[Warning] TGS hasn't notified us of it coming back for a full minute! Is there a problem?")
|
||||
|
||||
Reference in New Issue
Block a user