Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/goonstation/goonstation i…
Browse files Browse the repository at this point in the history
…nto master
  • Loading branch information
Tarmunora committed Mar 22, 2024
2 parents 3d05407 + ca1f2bf commit 918d250
Show file tree
Hide file tree
Showing 109 changed files with 2,603 additions and 620 deletions.
2 changes: 1 addition & 1 deletion +secret
1 change: 1 addition & 0 deletions _std/defines/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// when you re-enable old credentials or add new ones.
// Also check proc/get_access_desc() (ID computer lookup) in access.dm

/// This is useful for scenarios where login is required but no particular access is needed.
#define access_fuck_all 0 // Because completely empty access lists can make things grump
#define access_security 1
#define access_brig 2
Expand Down
2 changes: 2 additions & 0 deletions _std/defines/layer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
#define COG2_WINDOW_LAYER (TURF_LAYER+0.95)

// More specific obj layers
#define SUB_TAG_LAYER (OBJ_LAYER - 0.03) //! Graffiti that's been sprayed over sits here
#define TAG_LAYER (OBJ_LAYER - 0.02) //! Graffiti layer for gangs, this is the topmost (ie. most recent) tag on a turf
#define STORAGE_LAYER (OBJ_LAYER - 0.01) // Keep lockers etc below items
#define ABOVE_OBJ_LAYER (OBJ_LAYER + 0.01) // For objects that should generally layer above other objects

Expand Down
9 changes: 3 additions & 6 deletions _std/macros/antag_popups.dm
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,9 @@
if ("gang_member")
window_title = "You've joined a Gang!"
filename = "html/traitorTips/gang_member_added.html"
if ("gang_leader")
window_title = "You've started a Gang!"
filename = "html/traitorTips/gang_leader.html"

// vamp/changeling
if ("vampire")
Expand Down Expand Up @@ -329,12 +332,6 @@
M.Browse(html, "window=antagTips;size=700x450;title=[window_title]")


/client/proc/cmd_admin_antag_popups()
set name = "View Special Role Popups"
SET_ADMIN_CAT(ADMIN_CAT_SERVER)
if (src.holder)
get_singleton(/datum/antagPopups).showPanel()

/mob
///Stores the name of the last antag popup shown to the mob

Expand Down
16 changes: 16 additions & 0 deletions _std/macros/client.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,19 @@
#define DENY_TEMPMIN if(!src.holder || src.holder.tempmin) {boutput(src, SPAN_ADMIN("Only administrators may use this command.")); return}
#define MENTOR_ONLY if(!src.mentor) {boutput(src, SPAN_ADMIN("Only mentors may use this command.")); return}
#define USR_ADMIN_ONLY if(usr?.client && !usr.client.holder) {boutput(usr, SPAN_ADMIN("Only administrators may use this command.")); return}

#ifdef SPACEMAN_DMM //spaceman doesn't like ....... syntax, can't think why
#define CURRENT_PROC_PATH null
#elif defined(OPENDREAM) || DM_VERSION >= 515 //OD has a sane version and byond added it too in 515
#define CURRENT_PROC_PATH __PROC__
#else //aaand then there's 514
#define CURRENT_PROC_PATH .......
#endif

#define SHOW_VERB_DESC do {\
var/procpath/this_proc = CURRENT_PROC_PATH;\
if(usr.client.check_key(KEY_EXAMINE)) {\
boutput(usr, "<span class='helpmsg'>[this_proc.desc || "No verb desc found"]</span>");\
return\
}\
} while(FALSE)
19 changes: 7 additions & 12 deletions _std/vox.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ var/global/datum/voxdbg/VoxDebug = new
SET_ADMIN_CAT(ADMIN_CAT_DEBUG)
set name = "Debug VOX"
set desc = "Fuck me."
SHOW_VERB_DESC

VoxDebug.voxtokens = voxtokens
VoxDebug.voxsounds_flag_sorted = voxsounds_flag_sorted
Expand All @@ -79,10 +80,8 @@ var/global/datum/voxdbg/VoxDebug = new
SET_ADMIN_CAT(ADMIN_CAT_FUN)
set name = "Intercom Help"
set desc = "WOOP WOOP ASS DAY"

if(!isadmin(src))
boutput(src, "Only administrators may use this command.")
return
ADMIN_ONLY
SHOW_VERB_DESC

vox_help(usr)

Expand Down Expand Up @@ -136,9 +135,8 @@ proc/vox_help(var/mob/user)
SET_ADMIN_CAT(ADMIN_CAT_FUN)
set name = "Intercom Announcement"
set desc = "ABOUT THAT BEER I OWED YA, GORDON"
if(!isadmin(src))
boutput(src, "Only administrators may use this command.")
return
ADMIN_ONLY
SHOW_VERB_DESC

vox_reinit_check()

Expand All @@ -156,11 +154,8 @@ proc/vox_help(var/mob/user)
SET_ADMIN_CAT(ADMIN_CAT_FUN)
set name = "Intercom Announcement (Pitch Shifted)"
set desc = "ABOUT that BEER I owed YA, NODROG"
if(!isadmin(src))
boutput(src, "Only administrators may use this command.")
return


ADMIN_ONLY
SHOW_VERB_DESC

vox_reinit_check()

Expand Down
47 changes: 47 additions & 0 deletions browserassets/html/traitorTips/gang_leader.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="{{resource("css/style.css")}}">
</head>
<body class="traitor-tips">
<h1 class="center">You are a gang leader!</h1>
<img src="{{resource("images/antagTips/gangmember-image.png")}}" class="center" />

<p>1. Work together with your subordinates to rack up as many points as you can!<br>
You can get points by:</p>
<ul>
<li>Claiming popular parts of the station with spray cans. Gang tags that see people generate points!<br>
</li>
<li>Collecting weapon drops and crates. Watch the radio to find out about tip-offs!<br>
</li>
<li>Cram large quantities of cash into your locker to launder it into points!<br>
</li>
<li>Finally, cram guns, drugs & weed into your locker for even more points to spend!<br>
</li>
</ul>

<p>2. <b>Be prepared!</b> You have access to the leader-specific 'Street Cred':</p>
<ul>
<li>Street cred is earned the same as points, and spendable in the top right of the Locker.</li>
<li>Revival syringes let you bring a dead gang member back to life; or let gang members bring you back to life!</li>
<li>If there's no corpse to revive, you can buy a new gang member, who'll spawn at your locker in their place!</li>
</ul>

<p>3. Use the prefix :z to speak on your gang's radio frequency! Pay attention to it:</p>
<ul>
<li>Every so often, your gang will PDA message the location of a bag of weapons to a civilian! <br>
</li>
<li>You will only know which civilian recieved the message. <em>Ask them for it! Bribe them! Steal their PDA!</em><br>
</li>
<li>Weapon crates will occasionally spawn, too. Drag these to your locker and open them for guns & ammo! <br>
</li>
</ul>

<p>4. Wear your gang outfit proudly, and don't hide it under suits! Gang members in enemy territory will get a debuff if they aren't wearing their gangs' getup.</p>

<p>5. Remember, you're free to harm anyone who isn't in your gang, but they can do the same to you, so don't pick fights willy-nilly!</p>

<p>For more information, consult <a href='?src={ref};wiki=Gang'>the wiki</a></p>
</body>
</html>

20 changes: 16 additions & 4 deletions browserassets/html/traitorTips/gang_member_added.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,29 @@ <h1 class="center">You are a gang member!</h1>
<p>1. Work together with your gangster buddies to rack up as many points as you can!<br>
You can get points by:</p>
<ul>
<li>Tagging the station with your gang's spray can.<br>
<li>Claiming popular parts of the station with spray cans. Gang tags that see people generate points!<br>
</li>
<li>Stuffing illicit drugs (like meth and cannabis), guns, and cash into your locker.<br>
<li>Collecting weapon drops and crates.<br>
</li>
<li>Cram large quantities of cash into your locker to launder it into points!<br>
</li>
<li>Finally, cram guns, drugs & weed into your locker for even more points to spend!<br>
</li>
</ul>

<p>2. Use the prefix :z to speak on your gang's radio frequency! Occassionally you'll hear an announcement over this channel about priority areas - make sure to tag them when you can.</p>
<p>2. Use the prefix :z to speak on your gang's radio frequency! Pay attention to it:</p>
<ul>
<li>Every so often, your gang will PDA message the location of a bag of weapons to a civilian! <br>
</li>
<li>You will only know which civilian recieved the message. <em>Ask them for it! Bribe them! Steal their PDA!</em><br>
</li>
<li>Weapon crates will occasionally spawn, too. Drag these to your locker and open them for guns & ammo! <br>
</li>
</ul>

<p>3. <em>Don't attack fellow gang members and listen to your leader!</em> You can identify them by the G icon. Blue is your leader, red are your fellow henchmen.</p>

<p>4. <em>Defend your locker!</em> It's where you get your gang outfit, spraycan, and special gang-tuned headset! If another gang breaks it, you'll have to start all over.</p>
<p>4. Wear your gang outfit proudly! Gang members in enemy territory will get a debuff if they aren't wearing their gangs' getup!</p>

<p>5. Remember, you're free to harm anyone who isn't in your gang, but they can do the same to you, so don't pick fights willy-nilly!</p>

Expand Down
8 changes: 4 additions & 4 deletions browserassets/tgui/tgui.bundle.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion browserassets/tgui/tgui.bundle.js

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions code/WorkInProgress/WiresStuff.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ var/global/deathConfettiActive = 0
set name = "Toggle Death Confetti"
set desc = "Toggles the fun confetti effect and sound whenever a mob dies"
ADMIN_ONLY
SHOW_VERB_DESC

deathConfettiActive = !deathConfettiActive

Expand Down Expand Up @@ -222,6 +223,7 @@ var/global/deathConfettiActive = 0
set desc = "A hard reboot is when the game instance outright ends, and the backend server reinitialises it"

ADMIN_ONLY
SHOW_VERB_DESC

var/hardRebootFileExists = fexists(hardRebootFilePath)
var/logMessage = ""
Expand Down
9 changes: 7 additions & 2 deletions code/WorkInProgress/actuallyKeelinsStuff.dm
Original file line number Diff line number Diff line change
Expand Up @@ -818,7 +818,8 @@ Returns:
SET_ADMIN_CAT(ADMIN_CAT_DEBUG)
set name = "Test Cinematic camera"
set desc="Test Cinematic camera"

USR_ADMIN_ONLY
SHOW_VERB_DESC
var/mob/M = usr
var/datum/targetable/cincam/R = new()
M.targeting_ability = R
Expand Down Expand Up @@ -1637,6 +1638,8 @@ Returns:
SET_ADMIN_CAT(ADMIN_CAT_FUN)
set name = "Pixel explosion mode"
set desc = "Enter pixel explosion mode."
USR_ADMIN_ONLY
SHOW_VERB_DESC
alert("Clicking on things will now explode them into pixels!")
pixelmagic(mode == "explode")

Expand Down Expand Up @@ -1748,7 +1751,8 @@ Returns:
SET_ADMIN_CAT(ADMIN_CAT_FUN)
set name = "Turn off pixel explosion mode"
set desc = "Turns off pixel explosion mode."

USR_ADMIN_ONLY
SHOW_VERB_DESC
var/mob/M = usr
if (istype(M.targeting_ability, /datum/targetable/pixelpicker))
var/datum/targetable/pixelpicker/pixel_picker = M.targeting_ability
Expand Down Expand Up @@ -2794,6 +2798,7 @@ Returns:
set popup_menu = 0

ADMIN_ONLY
SHOW_VERB_DESC

var/mob/M = src.mob
if (istype(M))
Expand Down
9 changes: 6 additions & 3 deletions code/WorkInProgress/blueprints.dm
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,8 @@
set name = "Blueprint Create"
set desc = "Allows creation of blueprints of any user."
SET_ADMIN_CAT(ADMIN_CAT_FUN)

USR_ADMIN_ONLY
SHOW_VERB_DESC
var/picked = browse_abcu_blueprints(usr, "Admin Share Blueprint", "Choose a blueprint to print and share!", TRUE)
if (!picked) return
var/obj/printed = new /obj/item/abcu_blueprint_reference(usr, picked, usr)
Expand All @@ -410,7 +411,8 @@
set name = "Blueprint Delete"
set desc = "Allows deletion of blueprints of any user."
SET_ADMIN_CAT(ADMIN_CAT_FUN)

USR_ADMIN_ONLY
SHOW_VERB_DESC
var/deleted = delete_abcu_blueprint(usr, TRUE)
if (!deleted) return
logTheThing(LOG_ADMIN, usr, "[usr] deleted blueprint [deleted["file"]], owned by [deleted["ckey"]].")
Expand All @@ -419,7 +421,8 @@
set name = "Blueprint Dump"
set desc = "Dumps readable HTML blueprint, of any user, to your client folder."
SET_ADMIN_CAT(ADMIN_CAT_DEBUG)

USR_ADMIN_ONLY
SHOW_VERB_DESC
var/picked = browse_abcu_blueprints(usr, "Admin Dump Blueprint", "Choose a blueprint to export.", TRUE)
if (!picked) return

Expand Down
2 changes: 2 additions & 0 deletions code/WorkInProgress/customcritter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2108,6 +2108,8 @@ var/global/datum/critterCreatorHolder/critter_creator_controller = new()
set name = "Critter Creator (WIP)"
SET_ADMIN_CAT(ADMIN_CAT_FUN)
set hidden = 0
ADMIN_ONLY
SHOW_VERB_DESC

var/datum/critterCreator/CR = critter_creator_controller.getCreator(src.mob)
if (CR)
Expand Down
27 changes: 27 additions & 0 deletions code/datums/abilities/ghost_observer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,9 @@ var/global/datum/spooktober_ghost_handler/spooktober_GH = new()
src.addAbility(/datum/targetable/ghost_observer/reenter_corpse)
src.addAbility(/datum/targetable/ghost_observer/toggle_lighting)
src.addAbility(/datum/targetable/ghost_observer/toggle_ghosts)
if (istype(ticker.mode, /datum/game_mode/gang))
src.addAbility(/datum/targetable/ghost_observer/toggle_gang_overlay)

// src.addAbility(/datum/targetable/ghost_observer/afterlife_Bar)
// src.addAbility(/datum/targetable/ghost_observer/respawn_animal) //moved to respawn_options menu
src.addAbility(/datum/targetable/ghost_observer/respawn_options)
Expand Down Expand Up @@ -182,6 +185,8 @@ var/global/datum/spooktober_ghost_handler/spooktober_GH = new()
// src.removeAbility(/datum/targetable/ghost_observer/afterlife_Bar)
// src.removeAbility(/datum/targetable/ghost_observer/respawn_animal)
src.removeAbility(/datum/targetable/ghost_observer/respawn_options)
if (istype(ticker.mode, /datum/game_mode/gang))
src.removeAbility(/datum/targetable/ghost_observer/toggle_gang_overlay)

#ifdef HALLOWEEN
src.removeAbility(/datum/targetable/ghost_observer/spooktober_hud)
Expand Down Expand Up @@ -611,3 +616,25 @@ var/global/datum/spooktober_ghost_handler/spooktober_GH = new()
boutput(holder.owner, SPAN_ALERT("You stop being spooky!"))

#endif

/datum/targetable/ghost_observer/toggle_gang_overlay
name = "Toggle gang territory overlay"
desc = "Toggles the colored gang overlay."
icon_state = "gang_overlay"
targeted = 0
cooldown = 0
cast()
if (!holder)
return TRUE
var/mob/M = holder.owner

var/datum/client_image_group/imgroup = get_image_group(CLIENT_IMAGE_GROUP_GANGS)
var/togglingOn = FALSE
if (imgroup.subscribed_minds_with_subcount[M.mind] > 0)
imgroup.remove_mind(M.mind)
else
togglingOn = TRUE
imgroup.add_mind(M.mind)

boutput(M, "Gang territories turned [togglingOn ? "on" : "off"].")
return FALSE
Loading

0 comments on commit 918d250

Please sign in to comment.