[MIRROR] Port tg statpanel (#9242)

Co-authored-by: ShadowLarkens <shadowlarkens@gmail.com>
Co-authored-by: Kashargul <KashL@t-online.de>
This commit is contained in:
CHOMPStation2
2024-10-17 14:29:59 -07:00
committed by GitHub
parent e68994c99d
commit 4d9879937f
207 changed files with 709 additions and 956 deletions

View File

@@ -74,12 +74,10 @@
#define SS_PAUSED 3 /// paused by mc_tick_check
#define SS_SLEEPING 4 /// fire() slept.
#define SS_PAUSING 5 /// in the middle of pausing
//CHOMPEdit Begin
// Subsystem init stages
#define INITSTAGE_EARLY 1 //! Early init stuff that doesn't need to wait for mapload
#define INITSTAGE_MAIN 2 //! Main init stage
#define INITSTAGE_MAX 2 //! Highest initstage.
//CHOMPEdit End
#define SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/##X);\
/datum/controller/subsystem/##X/New(){\

View File

@@ -136,7 +136,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
#define INIT_ORDER_SKYBOX -30 //Visual only, irrelevant to gameplay, but needs to be late enough to have overmap populated fully
#define INIT_ORDER_TICKER -50
#define INIT_ORDER_MAPRENAME -60 //Initiating after Ticker to ensure everything is loaded and everything we rely on us working
#define INIT_ORDER_STATPANELS -98 //CHOMPEdit
#define INIT_ORDER_STATPANELS -98
#define INIT_ORDER_CHAT -100 //Should be last to ensure chat remains smooth during init.
@@ -169,7 +169,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
#define FIRE_PRIORITY_MACHINES 100
#define FIRE_PRIORITY_TGUI 110
#define FIRE_PRIORITY_PROJECTILES 150
#define FIRE_PRIORITY_STATPANEL 390 //CHOMPEdit
#define FIRE_PRIORITY_STATPANEL 390
#define FIRE_PRIORITY_CHAT 400
#define FIRE_PRIORITY_OVERLAYS 500
#define FIRE_PRIORITY_TIMER 700

View File

@@ -1,7 +1,6 @@
//CHOMPEdit Begin
///displays the current time into the round, with a lot of extra code just there for ensuring it looks okay after an entire day passes
#define ROUND_TIME(...) ( "[world.time - SSticker.round_start_time > MIDNIGHT_ROLLOVER ? "[round((world.time - SSticker.round_start_time)/MIDNIGHT_ROLLOVER)]:[worldtime2text()]" : worldtime2text()]" )
//CHOMPEdit End
/// Define that just has the current in-universe year for use in whatever context you might want to display that in. (For example, 2022 -> 2562 given a 540 year offset)
#define CURRENT_STATION_YEAR (GLOB.year_integer + STATION_YEAR_OFFSET)

View File

@@ -95,7 +95,6 @@
return isnull(alpha) ? rgb(r, g, b) : rgb(r, g, b, alpha)
//CHOMPEdit Begin
// Ported from /tg/station
// Creates a single icon from a given /atom or /image. Only the first argument is required.
// appearance_flags indicates whether appearance_flags should be respected (at the cost of about 10-20% perf)
@@ -297,7 +296,6 @@
return final_icon
#undef PROCESS_OVERLAYS_OR_UNDERLAYS
//CHOMPEdit End
/proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N
var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A.

View File

@@ -1,8 +1,6 @@
//CHOMPEdit Begin
//Returns the world time in english
/proc/worldtime2text()
return gameTimestamp("hh:mm:ss", world.time)
//CHOMPEdit End
#define TimeOfGame (get_game_time())
#define TimeOfTick (TICK_USAGE*0.01*world.tick_lag)

View File

@@ -42,7 +42,7 @@
var/list/output_list = list()
for(var/thing in verbs_list)
var/procpath/verb_to_add = thing
output_list[++output_list.len] = list(verb_to_add.category, verb_to_add.name)
output_list[++output_list.len] = list(verb_to_add.category, verb_to_add.name, verb_to_add.desc)
target.stat_panel.send_message("add_verb_list", output_list)

View File

@@ -286,11 +286,9 @@
/atom/proc/AltClick(var/mob/user)
var/turf/T = get_turf(src)
if(T && user.TurfAdjacent(T))
user.set_listed_turf(T) //CHOMPEdit
user.set_listed_turf(T)
return 1
//CHOMP Removal
/mob/proc/TurfAdjacent(var/turf/T)
return T.AdjacentQuick(src)

View File

@@ -41,7 +41,7 @@
if(modifiers["alt"]) // alt and alt-gr (rightalt)
var/turf/T = get_turf(A)
if(T && TurfAdjacent(T))
set_listed_turf(T) //CHOMPEdit
set_listed_turf(T)
return
// You are responsible for checking config.ghost_interaction when you override this function
// Not all of them require checking, see below

View File

@@ -16,4 +16,4 @@
/datum/controller/proc/Recover()
/datum/controller/proc/stat_entry(msg) //CHOMPEdit
/datum/controller/proc/stat_entry(msg)

View File

@@ -96,9 +96,9 @@ GLOBAL_REAL(Failsafe, /datum/controller/failsafe) // CHOMPEdit - Managed Globals
/datum/controller/failsafe/proc/defcon_pretty()
return defcon
/datum/controller/failsafe/stat_entry(msg) //CHOMPEdit
/datum/controller/failsafe/stat_entry(msg)
if(!statclick)
statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
msg = "Failsafe Controller: [statclick.update("Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])")]" //CHOMPEdit
return msg //CHOMPEdit
msg = "Failsafe Controller: [statclick.update("Defcon: [defcon_pretty()] (Interval: [Failsafe.processing_interval] | Iteration: [Failsafe.master_iteration])")]"
return msg

View File

@@ -32,12 +32,12 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars)
return ..()
/datum/controller/global_vars/stat_entry(msg) //CHOMPEdit
/datum/controller/global_vars/stat_entry(msg)
if(!statclick)
statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
msg = "GLOB: [statclick.update("Edit")]" //CHOMPEdit
return msg //CHOMPEdit
msg = "GLOB: [statclick.update("Edit")]"
return msg
/datum/controller/global_vars/vv_edit_var(var_name, var_value)
if(gvars_datum_protected_varlist[var_name])

View File

@@ -695,12 +695,12 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
/datum/controller/master/stat_entry(msg) //CHOMPEdit
/datum/controller/master/stat_entry(msg)
if(!statclick)
statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
msg = "Byond: (FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))" //CHOMPedit
msg += "Master Controller: [statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])")]" //CHOMPEdit
msg = "Byond: (FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))"
msg += "Master Controller: [statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])")]"
return msg

View File

@@ -236,14 +236,12 @@
// CHOMPEdit End
//hook for printing stats to the "MC" statuspanel for admins to see performance and related stats etc.
//CHOMPEdit Begin
/datum/controller/subsystem/stat_entry(msg)
if(can_fire && !(SS_NO_FIRE & flags))
msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)]\t[msg]"
else
msg = "OFFLINE\t[msg]"
return msg
//CHOMPEdit End
/datum/controller/subsystem/proc/state_letter()
switch (state)

View File

@@ -12,11 +12,9 @@ SUBSYSTEM_DEF(ai)
var/slept_mobs = 0
var/list/process_z = list()
//CHOMPEdit Begin
/datum/controller/subsystem/ai/stat_entry(msg)
msg = "P: [processing.len] | S: [slept_mobs]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/ai/fire(resumed = 0)
if (!resumed)

View File

@@ -9,11 +9,9 @@ SUBSYSTEM_DEF(aifast)
var/list/processing = list()
var/list/currentrun = list()
//CHOMPEdit Begin
/datum/controller/subsystem/aifast/stat_entry(msg)
msg = "P:[processing.len]"
return ..()
// CHOMPEdit End
/datum/controller/subsystem/aifast/fire(resumed = 0)
if (!resumed)

View File

@@ -246,7 +246,6 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
if(MC_TICK_CHECK)
return
//CHOMPEdit Begin
/datum/controller/subsystem/air/stat_entry(msg)
msg = "S:[current_step ? part_names[current_step] : ""] "
msg += "C:{"
@@ -266,7 +265,6 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
msg += "Z [zones_to_update.len] "
msg += "}"
return ..()
// CHOMPEdit End
// ZAS might displace objects as the map loads if an air tick is processed mid-load.
/datum/controller/subsystem/air/StartLoadingMap(var/quiet = TRUE)

View File

@@ -41,8 +41,6 @@ SUBSYSTEM_DEF(alarm)
/datum/controller/subsystem/alarm/proc/number_of_active_alarms()
return active_alarm_cache.len
//CHOMPEdit Begin
/datum/controller/subsystem/alarm/stat_entry(msg)
msg = "[number_of_active_alarms()] alarm\s"
return ..()
//CHOMPEdit End

View File

@@ -20,11 +20,9 @@ SUBSYSTEM_DEF(chemistry)
initialize_chemical_reactions()
return SS_INIT_SUCCESS // CHOMPEdit
//CHOMPEdit Begin
/datum/controller/subsystem/chemistry/stat_entry(msg)
msg = "C: [chemical_reagents.len] | R: [chemical_reactions.len]"
return ..()
//CHOMPEdit End
//Chemical Reactions - Initialises all /decl/chemical_reaction into a list
// It is filtered into multiple lists within a list.

View File

@@ -41,11 +41,9 @@ SUBSYSTEM_DEF(events)
var/datum/event_container/EC = event_containers[i]
EC.process()
//CHOMPEdit Begin
/datum/controller/subsystem/events/stat_entry(msg)
msg = "E:[active_events.len]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/events/Recover()
if(SSevents.active_events)

View File

@@ -56,11 +56,9 @@ SUBSYSTEM_DEF(inactivity)
if (MC_TICK_CHECK)
return
//CHOMPEdit Begin
/datum/controller/subsystem/inactivity/stat_entry(msg)
msg = "Kicked: [number_kicked]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/inactivity/proc/can_kick(var/client/C)
if(C.holder) return FALSE //VOREStation Add - Don't kick admins.

View File

@@ -82,7 +82,6 @@ SUBSYSTEM_DEF(machines)
T.broadcast_status()
CHECK_TICK
//CHOMPEdit Begin
/datum/controller/subsystem/machines/stat_entry(msg)
msg = "C:{"
msg += "PI:[round(cost_pipenets,1)]|"
@@ -96,7 +95,6 @@ SUBSYSTEM_DEF(machines)
msg += "PO:[SSmachines.powerobjs.len]|"
msg += "MC/MS:[round((cost ? SSmachines.processing_machines.len/cost_machinery : 0),0.1)]"
return ..()
// CHOMPEdit End
/datum/controller/subsystem/machines/proc/process_pipenets(resumed = 0)
if (!resumed)

View File

@@ -19,11 +19,9 @@ SUBSYSTEM_DEF(mobs)
var/slept_mobs = 0
var/list/process_z = list()
//CHOMPEdit Begin
/datum/controller/subsystem/mobs/stat_entry(msg)
msg = "P: [global.mob_list.len] | S: [slept_mobs]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/mobs/fire(resumed = 0)
if (!resumed)

View File

@@ -7,11 +7,10 @@ SUBSYSTEM_DEF(orbit)
var/list/currentrun = list()
var/list/processing = list()
//CHOMPEdit Begin
/datum/controller/subsystem/orbit/stat_entry(msg)
msg = "P:[processing.len]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/orbit/fire(resumed = 0)
if (!resumed)

View File

@@ -12,11 +12,9 @@ SUBSYSTEM_DEF(ping)
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
var/list/currentrun = list()
//CHOMPEdit Begin
/datum/controller/subsystem/ping/stat_entry(msg)
msg = "P:[GLOB.clients.len]"
return ..()
// CHOMPEdit End
/datum/controller/subsystem/ping/fire(resumed = FALSE)
// Prepare the new batch of clients

View File

@@ -22,11 +22,11 @@ SUBSYSTEM_DEF(plants)
var/list/processing = list()
var/list/currentrun = list()
//CHOMPEdit Begin
/datum/controller/subsystem/plants/stat_entry(msg)
msg = "P:[processing.len]|S:[seeds.len]"
return ..()
//CHOMPEdit Begin
/datum/controller/subsystem/plants/Initialize()
setup()
return SS_INIT_SUCCESS

View File

@@ -23,11 +23,11 @@ SUBSYSTEM_DEF(processing)
for(var/datum/D in old_processing)
if(CHECK_BITFIELD(D.datum_flags, DF_ISPROCESSING))
processing |= D
//CHOMPEdit Begin
/datum/controller/subsystem/processing/stat_entry(msg)
msg = "[stat_tag]:[processing.len]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/processing/fire(resumed = 0)
if (!resumed)
currentrun = processing.Copy()

View File

@@ -53,11 +53,11 @@ SUBSYSTEM_DEF(radiation)
A.rad_act(rads)
if (MC_TICK_CHECK)
return
//CHOMPEdit Begin
/datum/controller/subsystem/radiation/stat_entry(msg)
msg = "S:[sources.len], RC:[resistance_cache.len]"
return ..()
//CHOMPEdit End
// Ray trace from all active radiation sources to T and return the strongest effect.
/datum/controller/subsystem/radiation/proc/get_rads_at_turf(var/turf/T)
. = 0

View File

@@ -171,8 +171,7 @@ SUBSYSTEM_DEF(shuttles)
overmap_halted = !overmap_halted
for(var/obj/effect/overmap/visitable/ship/ship_effect as anything in ships)
overmap_halted ? ship_effect.halt() : ship_effect.unhalt()
//CHOMPEdit Begin
/datum/controller/subsystem/shuttles/stat_entry(msg)
msg = "Shuttles:[process_shuttles.len]/[shuttles.len], Ships:[ships.len], L:[registered_shuttle_landmarks.len][overmap_halted ? ", HALT" : ""]"
return ..()
//CHOMPEdit End

View File

@@ -31,10 +31,10 @@ SUBSYSTEM_DEF(statpanels)
"Map: [using_map.name]",
//cached ? "Next Map: [cached.map_name]" : null,
//"Next Map: -- Not Available --",
"Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]",
"Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", // CHOMPEdit
"Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]",
"Round Time: [ROUND_TIME()]",
"Station Date: [stationdate2text()], [capitalize(GLOB.world_time_season)]",
"Station Date: [stationdate2text()], [capitalize(GLOB.world_time_season)]", // CHOMPEdit
"Station Time: [stationtime2text()]",
"Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)"
)
@@ -136,7 +136,7 @@ SUBSYSTEM_DEF(statpanels)
target.stat_panel.send_message("update_stat", list(
global_data = global_data,
ping_str = "Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)",
ping_str = "Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)", // CHOMPEdit
other_str = target.mob?.get_status_tab_items(),
))
@@ -173,7 +173,7 @@ SUBSYSTEM_DEF(statpanels)
target.stat_panel.send_message("update_examine", examine_update)
/datum/controller/subsystem/statpanels/proc/set_tickets_tab(client/target)
var/list/tickets = GLOB.tickets.stat_entry(target)
var/list/tickets = GLOB.tickets.stat_entry(target) // CHOMPEdit
target.stat_panel.send_message("update_tickets", tickets)
/datum/controller/subsystem/statpanels/proc/set_SDQL2_tab(client/target)
@@ -278,7 +278,7 @@ SUBSYSTEM_DEF(statpanels)
list("Instances:", "[num2text(world.contents.len, 10)]"),
list("World Time:", "[world.time]"),
list("Globals:", GLOB.stat_entry(), "\ref[GLOB]"),
list("[config]:", config.stat_entry(), "\ref[config]"),
list("[config]:", config.stat_entry(), "\ref[config]"), // CHOMPEdit
list("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)"),
list("Master Controller:", Master.stat_entry(), "\ref[Master]"),
list("Failsafe Controller:", Failsafe.stat_entry(), "\ref[Failsafe]"),

View File

@@ -38,11 +38,11 @@ SUBSYSTEM_DEF(supply)
// Supply shuttle ticker - handles supply point regeneration. Just add points over time.
/datum/controller/subsystem/supply/fire()
points += points_per_process
//CHOMPEdit Begin
/datum/controller/subsystem/supply/stat_entry(msg)
msg = "Points: [points]"
return ..()
//CHOMPEdit End
//To stop things being sent to CentCom which should not be sent to centcomm. Recursively checks for these types.
/datum/controller/subsystem/supply/proc/forbidden_atoms_check(atom/A)
if(isliving(A))

View File

@@ -34,11 +34,11 @@ SUBSYSTEM_DEF(tgui)
/datum/controller/subsystem/tgui/Shutdown()
close_all_uis()
//CHOMPEdit Begin
/datum/controller/subsystem/tgui/stat_entry(msg)
msg = "P:[all_uis.len]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/tgui/fire(resumed = FALSE)
if(!resumed)
src.current_run = all_uis.Copy()

View File

@@ -8,11 +8,11 @@ SUBSYSTEM_DEF(throwing)
var/list/currentrun
var/list/processing = list()
//CHOMPEdit Begin
/datum/controller/subsystem/throwing/stat_entry(msg)
msg = "P:[length(processing)]"
msg = "P:[processing.len]"
return ..()
//CHOMPEdit End
/datum/controller/subsystem/throwing/fire(resumed = 0)
if (!resumed)
src.currentrun = processing.Copy()

View File

@@ -41,7 +41,9 @@ SUBSYSTEM_DEF(ticker)
//Now we have a general cinematic centrally held within the gameticker....far more efficient!
var/obj/screen/cinematic = null
var/round_start_time = 0 //CHOMPEdit
var/round_start_time = 0
// This global variable exists for legacy support so we don't have to rename every 'ticker' to 'SSticker' yet.
var/global/datum/controller/subsystem/ticker/ticker
@@ -103,7 +105,7 @@ var/global/datum/controller/subsystem/ticker/ticker
// Called during GAME_STATE_SETTING_UP (RUNLEVEL_SETUP)
/datum/controller/subsystem/ticker/proc/setup_tick(resumed = FALSE)
round_start_time = world.time //otherwise round_start_time would be 0 for the signals
round_start_time = world.time // otherwise round_start_time would be 0 for the signals
if(!setup_choose_gamemode())
// It failed, go back to lobby state and re-send the welcome message
pregame_timeleft = CONFIG_GET(number/pregame_time) // CHOMPEdit

View File

@@ -54,11 +54,9 @@ SUBSYSTEM_DEF(timer)
head_offset = world.time
bucket_resolution = world.tick_lag
//CHOMPEdit Begin
/datum/controller/subsystem/timer/stat_entry(msg)
msg = "B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)] RST:[bucket_reset_count]"
msg = "B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)] RST:[bucket_reset_count]" // CHOMPEdit
return ..()
// CHOMPEdit End
/datum/controller/subsystem/timer/proc/dump_timer_buckets(full = TRUE)
var/list/to_log = list("Timer bucket reset. world.time: [world.time], head_offset: [head_offset], practical_offset: [practical_offset]")

View File

@@ -126,7 +126,6 @@ SUBSYSTEM_DEF(transcore)
if(MC_TICK_CHECK)
return
//CHOMPEdit Begin
/datum/controller/subsystem/transcore/stat_entry(msg)
msg = "$:{"
msg += "IM:[round(cost_implants,1)]|"
@@ -142,7 +141,6 @@ SUBSYSTEM_DEF(transcore)
msg += "DFI:[default_db.implants.len]"
msg += "} "
return ..()
// CHOMPEdit End
/datum/controller/subsystem/transcore/Recover()
for(var/key in SStranscore.databases)

View File

@@ -78,7 +78,7 @@
if(current) //remove ourself from our old body's mind variable
if(changeling)
current.remove_changeling_powers()
remove_verb(current,/datum/changeling/proc/EvolutionMenu) //CHOMPEdit
remove_verb(current, /datum/changeling/proc/EvolutionMenu)
current.mind = null
if(new_character.mind) //remove any mind currently in our new body's mind variable
@@ -93,8 +93,8 @@
if(active)
new_character.key = key //now transfer the key to link the client to our new body
if(new_character.client) //CHOMPEdit
new_character.client.init_verbs() // re-initialize character specific verbs //CHOMPEdit
if(new_character.client)
new_character.client.init_verbs() // re-initialize character specific verbs
/datum/mind/proc/store_memory(new_text)
memory += "[new_text]<BR>"
@@ -509,7 +509,7 @@
if(!mind.name) mind.name = real_name
mind.current = src
if(player_is_antag(mind))
add_verb(src.client,/client/proc/aooc) //CHOMPEdit
add_verb(src.client, /client/proc/aooc)
//HUMAN
/mob/living/carbon/human/mind_initialize()

View File

@@ -28,16 +28,16 @@
current_antagonists |= player
if(faction_verb && player.current)
add_verb(player.current,faction_verb) //CHOMPEdit TGPanel
add_verb(player.current, faction_verb)
spawn(1 SECOND) //Added a delay so that this should pop up at the bottom and not the top of the text flood the new antag gets.
to_chat(player.current, span_notice("Once you decide on a goal to pursue, you can optionally display it to \
everyone at the end of the shift with the " + span_bold("Set Ambition") + " verb, located in the IC tab. You can change this at any time, \
and it otherwise has no bearing on your round."))
add_verb(player.current,/mob/living/proc/write_ambition) //CHOMPEdit TGPanel
add_verb(player.current, /mob/living/proc/write_ambition)
if(can_speak_aooc)
add_verb(player.current.client,/client/proc/aooc) //CHOMPEdit
add_verb(player.current.client, /client/proc/aooc)
// Handle only adding a mind and not bothering with gear etc.
if(nonstandard_role_type)
@@ -51,7 +51,7 @@
/datum/antagonist/proc/remove_antagonist(var/datum/mind/player, var/show_message, var/implanted)
if(player.current && faction_verb)
remove_verb(player.current,faction_verb) //CHOMPEdit
remove_verb(player.current, faction_verb)
if(player in current_antagonists)
to_chat(player.current, span_danger(span_large("You are no longer a [role_text]!")))
current_antagonists -= player
@@ -60,8 +60,8 @@
update_icons_removed(player)
BITSET(player.current.hud_updateflag, SPECIALROLE_HUD)
if(!is_special_character(player))
remove_verb(player.current,/mob/living/proc/write_ambition) //CHOMPEdit
remove_verb(player.current.client,/client/proc/aooc) //CHOMPEdit
remove_verb(player.current, /mob/living/proc/write_ambition)
remove_verb(player.current.client, /client/proc/aooc)
player.ambitions = ""
return 1
return 0

View File

@@ -248,8 +248,7 @@
// Don't make these call bicon or anything, these are what bicon uses. They need to return an icon.
/atom/proc/examine_icon()
return src //CHOMPEdit 99% of the time just returning src will be sufficient. More complex examine icon things are available where they are needed
//return icon(icon=src.icon, icon_state=src.icon_state, dir=SOUTH, frame=1, moving=0) CHOMPEdit-- N O
return src // 99% of the time just returning src will be sufficient. More complex examine icon things are available where they are needed
// called by mobs when e.g. having the atom as their machine, pulledby, loc (AKA mob being inside the atom) or buckled var set.
// see code/modules/mob/mob_movement.dm for more.
@@ -762,3 +761,33 @@
else if(C)
color = C
return
///Passes Stat Browser Panel clicks to the game and calls client click on an atom
/atom/Topic(href, list/href_list)
. = ..()
if(!usr?.client)
return
var/client/usr_client = usr.client
var/list/paramslist = list()
if(href_list["statpanel_item_click"])
switch(href_list["statpanel_item_click"])
if("left")
paramslist["left"] = "1"
if("right")
paramslist["right"] = "1"
if("middle")
paramslist["middle"] = "1"
else
return
if(href_list["statpanel_item_shiftclick"])
paramslist["shift"] = "1"
if(href_list["statpanel_item_ctrlclick"])
paramslist["ctrl"] = "1"
if(href_list["statpanel_item_altclick"])
paramslist["alt"] = "1"
var/mouseparams = list2params(paramslist)
usr_client.Click(src, loc, null, mouseparams)
return TRUE

View File

@@ -1,33 +1,3 @@
///Passes Stat Browser Panel clicks to the game and calls client click on an atom
/atom/Topic(href, list/href_list)
. = ..()
if(!usr?.client)
return
var/client/usr_client = usr.client
var/list/paramslist = list()
if(href_list["statpanel_item_click"])
switch(href_list["statpanel_item_click"])
if("left")
paramslist["left"] = "1"
if("right")
paramslist["right"] = "1"
if("middle")
paramslist["middle"] = "1"
else
return
if(href_list["statpanel_item_shiftclick"])
paramslist["shift"] = "1"
if(href_list["statpanel_item_ctrlclick"])
paramslist["ctrl"] = "1"
if(href_list["statpanel_item_altclick"])
paramslist["alt"] = "1"
var/mouseparams = list2params(paramslist)
usr_client.Click(src, loc, null, mouseparams)
return TRUE
/atom/proc/contains(var/atom/location)
if(!location)
return 0

View File

@@ -20,7 +20,7 @@
/datum/dna/gene/basic/remoteview/activate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
add_verb(M, /mob/living/carbon/human/proc/remoteobserve) //CHOMPEdit
add_verb(M, /mob/living/carbon/human/proc/remoteobserve)
/datum/dna/gene/basic/regenerate
name="Regenerate"
@@ -48,7 +48,7 @@
/datum/dna/gene/basic/remotetalk/activate(var/mob/M, var/connected, var/flags)
..(M,connected,flags)
add_verb(M, /mob/living/carbon/human/proc/remotesay) //CHOMPEdit
add_verb(M, /mob/living/carbon/human/proc/remotesay)
/datum/dna/gene/basic/morph
name="Morph"
@@ -60,7 +60,7 @@
/datum/dna/gene/basic/morph/activate(var/mob/M)
..(M)
add_verb(M, /mob/living/carbon/human/proc/morph) //CHOMPEdit
add_verb(M, /mob/living/carbon/human/proc/morph)
/datum/dna/gene/basic/cold_resist
name="Cold Resistance"

View File

@@ -65,8 +65,8 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
if(!mind) return
if(!mind.changeling) mind.changeling = new /datum/changeling(gender)
add_verb(src,/datum/changeling/proc/EvolutionMenu) //CHOMPEdit TGPanel
add_verb(src,/mob/proc/changeling_respec) //CHOMPEdit TGPanel
add_verb(src, /datum/changeling/proc/EvolutionMenu)
add_verb(src, /mob/proc/changeling_respec)
add_language("Changeling")
var/lesser_form = !ishuman(src)
@@ -85,7 +85,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
if(P.isVerb)
if(lesser_form && !P.allowduringlesserform) continue
if(!(P in src.verbs))
add_verb(src,P.verbpath) //CHOMPEdit TGPanel
add_verb(src, P.verbpath)
if(P.make_hud_button)
if(!src.ability_master)
src.ability_master = new /obj/screen/movable/ability_master(src)
@@ -113,7 +113,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
if(!mind || !mind.changeling) return
for(var/datum/power/changeling/P in mind.changeling.purchased_powers)
if(P.isVerb)
remove_verb(src,P.verbpath) //CHOMPEdit TGPanel
remove_verb(src, P.verbpath)
var/obj/screen/ability/verb_based/changeling/C = ability_master.get_ability_by_proc_ref(P.verbpath)
if(C)
ability_master.remove_ability(C)
@@ -235,8 +235,8 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
changeling.chem_charges -= required_chems
changeling.sting_range = 1
remove_verb(src,verb_path) //CHOMPEdit
spawn(10) add_verb(src,verb_path) //CHOMPEdit
remove_verb(src, verb_path)
spawn(10) add_verb(src, verb_path)
to_chat(src, span_notice("We stealthily sting [T]."))
if(!T.mind || !T.mind.changeling) return T //T will be affected by the sting

View File

@@ -24,8 +24,8 @@
range = range + 3
to_chat(src, span_notice("We can fire our next sting from five squares away."))
changeling.sting_range = range
remove_verb(src,/mob/proc/changeling_boost_range) //CHOMPEdit
remove_verb(src, /mob/proc/changeling_boost_range)
spawn(5)
add_verb(src,/mob/proc/changeling_boost_range) //CHOMPEdit
add_verb(src, /mob/proc/changeling_boost_range)
feedback_add_details("changeling_powers","RS")
return 1

View File

@@ -24,8 +24,8 @@
if(T.reagents)
T.reagents.add_reagent("cryotoxin", inject_amount)
feedback_add_details("changeling_powers","CS")
remove_verb(src,/mob/proc/changeling_cryo_sting) //CHOMPEdit
remove_verb(src, /mob/proc/changeling_cryo_sting)
spawn(3 MINUTES)
to_chat(src, span_notice("Our cryogenic string is ready to be used once more."))
add_verb(src,/mob/proc/changeling_cryo_sting) //CHOMPEdit TGPanel
add_verb(src, /mob/proc/changeling_cryo_sting)
return 1

View File

@@ -29,8 +29,8 @@
C.mind.changeling.chem_charges = max(C.mind.changeling.chem_charges - 1, 0)
sleep(40)
remove_verb(src,/mob/proc/changeling_digitalcamo) //CHOMPEdit
remove_verb(src, /mob/proc/changeling_digitalcamo)
spawn(5)
add_verb(src,/mob/proc/changeling_digitalcamo) //CHOMPEdit
add_verb(src, /mob/proc/changeling_digitalcamo)
feedback_add_details("changeling_powers","CAM")
return 1

View File

@@ -43,7 +43,7 @@
spawn(rand(2 MINUTES, 4 MINUTES))
//The ling will now be able to choose when to revive
add_verb(/mob/proc/changeling_revive) //CHOMPEdit TGPanel
add_verb(src, /mob/proc/changeling_revive)
new /obj/changeling_revive_holder(src)

View File

@@ -33,9 +33,9 @@
C.adjustFireLoss(-heal_amount)
sleep(1 SECOND)
remove_verb(src,/mob/proc/changeling_fleshmend) //CHOMPEdit
remove_verb(src, /mob/proc/changeling_fleshmend)
spawn(50 SECONDS)
to_chat(src, span_notice("Our regeneration has slowed to normal levels."))
add_verb(src,/mob/proc/changeling_fleshmend) //CHOMPEdit
add_verb(src, /mob/proc/changeling_fleshmend)
feedback_add_details("changeling_powers","FM")
return 1

View File

@@ -82,7 +82,7 @@
C.set_stat(CONSCIOUS)
C.forbid_seeing_deadchat = FALSE
C.timeofdeath = null
remove_verb(src,/mob/proc/changeling_revive) //CHOMPEdit TGPanel
remove_verb(src, /mob/proc/changeling_revive)
// re-add our changeling powers
C.make_changeling()

View File

@@ -56,9 +56,9 @@
for(var/datum/modifier/mod in chosen_dna.genMods)
self.modifiers.Add(mod.type)
remove_verb(src,/mob/proc/changeling_transform) //CHOMPEdit
remove_verb(src, /mob/proc/changeling_transform)
spawn(10)
add_verb(src,/mob/proc/changeling_transform) //CHOMPEdit
add_verb(src, /mob/proc/changeling_transform)
src.regenerate_icons()
feedback_add_details("changeling_powers","TR")

View File

@@ -230,7 +230,7 @@ var/global/list/Holiday = list() //Holidays are lists now, so we can have more t
//Allows GA and GM to set the Holiday variable
/client/proc/Set_Holiday()
set name = "Set Holiday" // Fixed Typo?
set name = "Set Holiday"
set category = "Fun.Event Kit" //CHOMPEdit
set desc = "Force-set the Holiday variable to make the game think it's a certain day."
if(!check_rights(R_SERVER)) return

View File

@@ -8,7 +8,7 @@
if(owner && istype(owner))
owner.hardware = src
if(driver)
add_verb(owner, driver) //CHOMPEdit
add_verb(owner, driver)
/datum/malf_hardware/proc/get_examine_desc()
return "It has some sort of hardware attached to its core"

View File

@@ -32,7 +32,7 @@
if(!focus)
return
to_chat(owner, "<b>Research Completed</b>: [focus.name]")
add_verb(focus.ability) //CHOMPEdit TGPanel
add_verb(owner, focus.ability)
available_abilities -= focus
if(focus.next)
available_abilities += focus.next

View File

@@ -203,7 +203,7 @@
user.hack_can_fail = 0
user.hacking = 0
user.system_override = 2
add_verb(user,new/datum/game_mode/malfunction/verb/ai_destroy_station()) //CHOMPEdit
add_verb(user, new /datum/game_mode/malfunction/verb/ai_destroy_station())
// END ABILITY VERBS

View File

@@ -24,7 +24,7 @@ mob
sandbox.owner = src.ckey
if(src.client.holder)
sandbox.admin = 1
add_verb(src, /mob/proc/sandbox_panel) //CHOMPEdit
add_verb(src, /mob/proc/sandbox_panel)
sandbox_panel()
if(sandbox)
sandbox.update()

View File

@@ -160,23 +160,24 @@
/obj/spellbutton/DblClick()
return Click()
/mob/living/carbon/human/Stat()
/mob/living/carbon/human/get_status_tab_items()
. = ..()
if(. && istype(back,/obj/item/technomancer_core))
var/obj/item/technomancer_core/core = back
setup_technomancer_stat(core)
. += setup_technomancer_stat(core)
/mob/living/carbon/human/proc/setup_technomancer_stat(var/obj/item/technomancer_core/core)
if(core && statpanel("Spell Core"))
. = list()
if(core)
var/charge_status = "[core.energy]/[core.max_energy] ([round( (core.energy / core.max_energy) * 100)]%) \
([round(core.energy_delta)]/s)"
var/instability_delta = instability - last_instability
var/instability_status = "[src.instability] ([round(instability_delta, 0.1)]/s)"
stat("Core charge", charge_status)
stat("User instability", instability_status)
. += "Core charge: [charge_status]"
. += "User instability: [instability_status]"
for(var/obj/spellbutton/button in core.spells)
stat(button)
. += button
/obj/item/technomancer_core/proc/add_spell(var/path, var/new_name, var/ability_icon_state)
if(!path || !ispath(path))

View File

@@ -260,7 +260,7 @@
//Yes, I am using a aheal just so your markings transfer over, I could not get .prefs.copy_to working. This is very stupid, and I can't be assed to rewrite this. Too bad!
avatar.revive()
avatar.species.equip_survival_gear(avatar)
add_verb(avatar,/mob/living/carbon/human/proc/exit_vr ) //ahealing removes the prommie verbs and the VR verbs, giving it back //CHOMPEdit
add_verb(avatar, /mob/living/carbon/human/proc/exit_vr) //ahealing removes the prommie verbs and the VR verbs, giving it back
//CHOMPedit end
// Prompt for username after they've enterred the body.

View File

@@ -135,7 +135,7 @@ var/global/list/image/splatter_cache=list()
user.bloody_hands += taken
user.hand_blood_color = basecolor
user.update_inv_gloves(1)
add_verb(user, /mob/living/carbon/human/proc/bloody_doodle) //CHOMPEdit
add_verb(user, /mob/living/carbon/human/proc/bloody_doodle)
/obj/effect/decal/cleanable/blood/splatter
random_icon_states = list("mgibbl1", "mgibbl2", "mgibbl3", "mgibbl4", "mgibbl5")

View File

@@ -119,7 +119,7 @@
to_chat(usr, "It'd be unwise to plug another vtec module in!")
return 0
add_verb(R,/mob/living/silicon/robot/proc/toggle_vtec) //CHOMPEdit
add_verb(R, /mob/living/silicon/robot/proc/toggle_vtec)
R.vtec_active = TRUE
R.hud_used.toggle_vtec_control()
return 1
@@ -139,7 +139,7 @@
to_chat(usr, "There's no space for another size alteration module!")
return 0
add_verb(R,/mob/living/proc/set_size) //CHOMPEdit
add_verb(R, /mob/living/proc/set_size)
return 1
/obj/item/borg/upgrade/basic/syndicate

View File

@@ -47,7 +47,7 @@
else
return
else
remove_verb(imp_in,assigned_proc) //CHOMPEdit TGPanel
remove_verb(imp_in, assigned_proc)
return
if(reagents)

View File

@@ -8,11 +8,11 @@
if(ishuman(src.loc))
var/mob/living/carbon/human/H = src.loc
if(H.wear_mask == src)
add_verb(H,/mob/living/proc/shred_limb_temp) //CHOMPEdit TGPanel
add_verb(H, /mob/living/proc/shred_limb_temp)
else
remove_verb(H,/mob/living/proc/shred_limb_temp) //CHOMPEdit TGPanel
remove_verb(H, /mob/living/proc/shred_limb_temp)
..()
/obj/item/beartrap/dropped(var/mob/user)
remove_verb(user,/mob/living/proc/shred_limb_temp) //CHOMPEdit TGPanel
remove_verb(user, /mob/living/proc/shred_limb_temp)
..()

View File

@@ -23,8 +23,8 @@
new_voice.real_name = "[new_voice.real_name]" //We still know their real name though!
possessed_voice.Add(new_voice)
listening_objects |= src
remove_verb(new_voice,/mob/living/voice/verb/change_name ) //No changing your name! Bad! //CHOMPEdit
remove_verb(new_voice,/mob/living/voice/verb/hang_up ) //Also you can't hang up. You are the item! //CHOMPEdit
remove_verb(new_voice, /mob/living/voice/verb/change_name) //No changing your name! Bad!
remove_verb(new_voice, /mob/living/voice/verb/hang_up) //Also you can't hang up. You are the item!
src.item_tf_spawnpoint_used() //CHOMPEdit - Item TF spawnpoints
//CHOMPEdit Start - Let the inhabitor know what happened to them
if(!istype(src, /obj/item/communicator) && is_item_tf)

View File

@@ -13,7 +13,7 @@ var/list/admin_verbs_default = list(
// /client/proc/cmd_mod_say,
// /client/proc/deadchat //toggles deadchat on/off,
// /client/proc/toggle_ahelp_sound,
/client/proc/debugstatpanel, //CHOMPEdit
/client/proc/debugstatpanel,
)
var/list/admin_verbs_admin = list(
@@ -516,24 +516,24 @@ var/list/admin_verbs_event_manager = list(
/client/proc/add_admin_verbs()
if(holder)
add_verb(src, admin_verbs_default) //CHOMPEdit
if(holder.rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself) //CHOMPEdit
if(holder.rights & R_ADMIN) add_verb(src, admin_verbs_admin) //CHOMPEdit
if(holder.rights & R_BAN) add_verb(src, admin_verbs_ban) //CHOMPEdit
if(holder.rights & R_FUN) add_verb(src, admin_verbs_fun) //CHOMPEdit
if(holder.rights & R_SERVER) add_verb(src, admin_verbs_server) //CHOMPEdit
add_verb(src, admin_verbs_default)
if(holder.rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself)
if(holder.rights & R_ADMIN) add_verb(src, admin_verbs_admin)
if(holder.rights & R_BAN) add_verb(src, admin_verbs_ban)
if(holder.rights & R_FUN) add_verb(src, admin_verbs_fun)
if(holder.rights & R_SERVER) add_verb(src, admin_verbs_server)
if(holder.rights & R_DEBUG)
add_verb(src, admin_verbs_debug) //CHOMPEdit
add_verb(src, admin_verbs_debug)
if(CONFIG_GET(flag/debugparanoid) && !(holder.rights & R_ADMIN)) // CHOMPEdit
remove_verb(src, admin_verbs_paranoid_debug) //CHOMPEdit //Right now it's just callproc but we can easily add others later on.
if(holder.rights & R_POSSESS) add_verb(src, admin_verbs_possess) //CHOMPEdit
if(holder.rights & R_PERMISSIONS) add_verb(src, admin_verbs_permissions) //CHOMPEdit
if(holder.rights & R_STEALTH) add_verb(src, /client/proc/stealth) //CHOMPEdit
if(holder.rights & R_REJUVINATE) add_verb(src, admin_verbs_rejuv) //CHOMPEdit
if(holder.rights & R_SOUNDS) add_verb(src, admin_verbs_sounds) //CHOMPEdit
if(holder.rights & R_SPAWN) add_verb(src, admin_verbs_spawn) //CHOMPEdit
if(holder.rights & R_MOD) add_verb(src, admin_verbs_mod) //CHOMPEdit
if(holder.rights & R_EVENT) add_verb(src, admin_verbs_event_manager) //CHOMPEdit
remove_verb(src, admin_verbs_paranoid_debug) //Right now it's just callproc but we can easily add others later on.
if(holder.rights & R_POSSESS) add_verb(src, admin_verbs_possess)
if(holder.rights & R_PERMISSIONS) add_verb(src, admin_verbs_permissions)
if(holder.rights & R_STEALTH) add_verb(src, /client/proc/stealth)
if(holder.rights & R_REJUVINATE) add_verb(src, admin_verbs_rejuv)
if(holder.rights & R_SOUNDS) add_verb(src, admin_verbs_sounds)
if(holder.rights & R_SPAWN) add_verb(src, admin_verbs_spawn)
if(holder.rights & R_MOD) add_verb(src, admin_verbs_mod)
if(holder.rights & R_EVENT) add_verb(src, admin_verbs_event_manager)
//CHOMPEdit Begin
/client/proc/remove_admin_verbs()

View File

@@ -18,6 +18,7 @@ var/list/admin_verbs_default = list(
// /client/proc/cmd_mod_say,
// /client/proc/deadchat //toggles deadchat on/off,
// /client/proc/toggle_ahelp_sound,
/client/proc/debugstatpanel,
)
var/list/admin_verbs_admin = list(
@@ -584,24 +585,24 @@ var/list/admin_verbs_event_manager = list(
/client/proc/add_admin_verbs()
if(holder)
add_verb(src, admin_verbs_default) //CHOMPEdit
if(holder.rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself) //CHOMPEdit
if(holder.rights & R_ADMIN) add_verb(src, admin_verbs_admin) //CHOMPEdit
if(holder.rights & R_BAN) add_verb(src, admin_verbs_ban) //CHOMPEdit
if(holder.rights & R_FUN) add_verb(src, admin_verbs_fun) //CHOMPEdit
if(holder.rights & R_SERVER) add_verb(src, admin_verbs_server) //CHOMPEdit
add_verb(src, admin_verbs_default)
if(holder.rights & R_BUILDMODE) add_verb(src, /client/proc/togglebuildmodeself)
if(holder.rights & R_ADMIN) add_verb(src, admin_verbs_admin)
if(holder.rights & R_BAN) add_verb(src, admin_verbs_ban)
if(holder.rights & R_FUN) add_verb(src, admin_verbs_fun)
if(holder.rights & R_SERVER) add_verb(src, admin_verbs_server)
if(holder.rights & R_DEBUG)
add_verb(src, admin_verbs_debug) //CHOMPEdit
add_verb(src, admin_verbs_debug)
if(CONFIG_GET(flag/debugparanoid) && !(holder.rights & R_ADMIN)) // CHOMPEdit
remove_verb(src, admin_verbs_paranoid_debug) //CHOMPEdit //Right now it's just callproc but we can easily add others later on.
if(holder.rights & R_POSSESS) add_verb(src, admin_verbs_possess) //CHOMPEdit
if(holder.rights & R_PERMISSIONS) add_verb(src, admin_verbs_permissions) //CHOMPEdit
if(holder.rights & R_STEALTH) add_verb(src, /client/proc/stealth) //CHOMPEdit
if(holder.rights & R_REJUVINATE) add_verb(src, admin_verbs_rejuv) //CHOMPEdit
if(holder.rights & R_SOUNDS) add_verb(src, admin_verbs_sounds) //CHOMPEdit
if(holder.rights & R_SPAWN) add_verb(src, admin_verbs_spawn) //CHOMPEdit
if(holder.rights & R_MOD) add_verb(src, admin_verbs_mod) //CHOMPEdit
if(holder.rights & R_EVENT) add_verb(src, admin_verbs_event_manager) //CHOMPEdit
remove_verb(src, admin_verbs_paranoid_debug) //Right now it's just callproc but we can easily add others later on.
if(holder.rights & R_POSSESS) add_verb(src, admin_verbs_possess)
if(holder.rights & R_PERMISSIONS) add_verb(src, admin_verbs_permissions)
if(holder.rights & R_STEALTH) add_verb(src, /client/proc/stealth)
if(holder.rights & R_REJUVINATE) add_verb(src, admin_verbs_rejuv)
if(holder.rights & R_SOUNDS) add_verb(src, admin_verbs_sounds)
if(holder.rights & R_SPAWN) add_verb(src, admin_verbs_spawn)
if(holder.rights & R_MOD) add_verb(src, admin_verbs_mod)
if(holder.rights & R_EVENT) add_verb(src, admin_verbs_event_manager)
//CHOMPEdit Begin
/client/proc/remove_admin_verbs()

View File

@@ -2,8 +2,8 @@
set name = "Adminverbs - Hide Most"
set category = "Admin.Misc" //CHOMPEdit
remove_verb(src, list(/client/proc/hide_most_verbs,admin_verbs_hideable)) //CHOMPEdit TGPanel
add_verb(src,/client/proc/show_verbs) //CHOMPEdit TGPanel
remove_verb(src, list(/client/proc/hide_most_verbs, admin_verbs_hideable))
add_verb(src, /client/proc/show_verbs)
to_chat(src, span_filter_system(span_interface("Most of your adminverbs have been hidden.")))
feedback_add_details("admin_verb","HMV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -14,7 +14,7 @@
set category = "Admin.Misc" //CHOMPEdit
remove_admin_verbs()
add_verb(src, /client/proc/show_verbs) //CHOMPEdit
add_verb(src, /client/proc/show_verbs)
to_chat(src, span_filter_system(span_interface("Almost all of your adminverbs have been hidden.")))
feedback_add_details("admin_verb","TAVVH") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -24,7 +24,7 @@
set name = "Adminverbs - Show"
set category = "Admin.Misc" //CHOMPEdit
remove_verb(src, /client/proc/show_verbs) //CHOMPEdit
remove_verb(src, /client/proc/show_verbs)
add_admin_verbs()
to_chat(src, span_filter_adminlog(span_interface("All of your adminverbs are now visible.")))
@@ -32,7 +32,7 @@
/client/proc/admin_ghost()
set category = "Admin.Game" //CHOMPEdit
set category = "Admin.Game"
set name = "Aghost"
if(!holder) return
@@ -76,7 +76,7 @@
ghost = body.ghostize(1)
ghost.admin_ghosted = 1
log_and_message_admins("[key_name(src)] admin-ghosted.") // CHOMPEdit - Add logging.
init_verbs() //CHOMPEdit
init_verbs()
if(body)
body.teleop = ghost
if(!body.key)
@@ -391,7 +391,7 @@
log_admin("[src] re-admined themself.")
message_admins("[src] re-admined themself.", 1)
to_chat(src, span_filter_system(span_interface("You now have the keys to control the planet, or at least a small space station")))
remove_verb(src,/client/proc/readmin_self) //CHOMPEdit TGPanel
remove_verb(src, /client/proc/readmin_self)
/client/proc/deadmin_self()
set name = "De-admin self"
@@ -403,7 +403,7 @@
message_admins("[src] deadmined themself.", 1)
deadmin()
to_chat(src, span_filter_system(span_interface("You are now a normal player.")))
add_verb(src,/client/proc/readmin_self) //CHOMPEdit TGPanel
add_verb(src, /client/proc/readmin_self)
feedback_add_details("admin_verb","DAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/toggle_log_hrefs()

View File

@@ -37,14 +37,14 @@ var/list/admin_datums = list()
owner = C
owner.holder = src
owner.add_admin_verbs() //TODO
owner.init_verbs() //re-initialize the verb list //CHOMPEdit
owner.init_verbs() //re-initialize the verb list
GLOB.admins |= C
/datum/admins/proc/disassociate()
if(owner)
GLOB.admins -= owner
owner.remove_admin_verbs()
owner.init_verbs() //CHOMPEdit
owner.init_verbs() //re-initialize the verb list
owner.deadmin_holder = owner.holder
owner.holder = null

View File

@@ -494,7 +494,7 @@
var/mob/living/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/proc/ventcrawl
add_verb(Tar, /mob/living/proc/ventcrawl)
if("darksight")
var/mob/living/carbon/human/Tar = target
@@ -509,26 +509,26 @@
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/enter_cocoon
add_verb(Tar, /mob/living/carbon/human/proc/enter_cocoon)
if("transformation")
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_hair
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_hair_colors
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_gender
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_wings
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_tail
Tar.verbs |= /mob/living/carbon/human/proc/shapeshifter_select_ears
Tar.verbs |= /mob/living/carbon/human/proc/lleill_select_shape //designed for non-shapeshifter mobs
Tar.verbs |= /mob/living/carbon/human/proc/lleill_select_colour
add_verb(Tar, /mob/living/carbon/human/proc/shapeshifter_select_hair)
add_verb(Tar, /mob/living/carbon/human/proc/shapeshifter_select_hair_colors)
add_verb(Tar, /mob/living/carbon/human/proc/shapeshifter_select_gender)
add_verb(Tar, /mob/living/carbon/human/proc/shapeshifter_select_wings)
add_verb(Tar, /mob/living/carbon/human/proc/shapeshifter_select_tail)
add_verb(Tar, /mob/living/carbon/human/proc/shapeshifter_select_ears)
add_verb(Tar, /mob/living/carbon/human/proc/lleill_select_shape) //designed for non-shapeshifter mobs
add_verb(Tar, /mob/living/carbon/human/proc/lleill_select_colour)
if("set_size")
var/mob/living/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/proc/set_size
add_verb(Tar, /mob/living/proc/set_size)
if("lleill_energy")
var/mob/living/carbon/human/Tar = target
@@ -543,44 +543,44 @@
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/lleill_invisibility
add_verb(Tar, /mob/living/carbon/human/proc/lleill_invisibility)
if("beast_form")
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/lleill_beast_form
add_verb(Tar, /mob/living/carbon/human/proc/lleill_beast_form)
if("lleill_transmute")
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/lleill_transmute
add_verb(Tar, /mob/living/carbon/human/proc/lleill_transmute)
if("lleill_alchemy")
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/lleill_alchemy
add_verb(Tar, /mob/living/carbon/human/proc/lleill_alchemy)
if("lleill_drain")
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/carbon/human/proc/lleill_contact
add_verb(Tar, /mob/living/carbon/human/proc/lleill_contact)
if("brutal_pred")
var/mob/living/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/proc/shred_limb
add_verb(Tar, /mob/living/proc/shred_limb)
if("trash_eater")
var/mob/living/carbon/human/Tar = target
if(!istype(Tar))
return
Tar.verbs |= /mob/living/proc/eat_trash
Tar.verbs |= /mob/living/proc/toggle_trash_catching
add_verb(Tar, /mob/living/proc/eat_trash)
add_verb(Tar, /mob/living/proc/toggle_trash_catching)
////////INVENTORY//////////////

View File

@@ -153,7 +153,6 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
//called by admin topic
/obj/effect/statclick/ticket_list/proc/Action()
Click()
//
//TICKET DATUM
//
@@ -654,9 +653,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
return
//remove out adminhelp verb temporarily to prevent spamming of admins.
remove_verb(src, /client/verb/adminhelp) //CHOMPEdit
remove_verb(src, /client/verb/adminhelp)
spawn(1200)
add_verb(src, /client/verb/adminhelp) //CHOMPEdit // 2 minute cool-down for adminhelps
add_verb(src, /client/verb/adminhelp) // 2 minute cool-down for adminhelps
feedback_add_details("admin_verb","Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(current_ticket)

View File

@@ -40,7 +40,7 @@ Reason: Replaced with "Tickets System"
return
//if they requested spice, then remove spice verb temporarily to prevent spamming
remove_verb(usr,/client/verb/adminspice) //CHOMPEdit
remove_verb(usr, /client/verb/adminspice)
spawn(10 MINUTES)
if(usr) // In case we left in the 10 minute cooldown
add_verb(usr,/client/verb/adminspice ) // 10 minute cool-down for spice request //CHOMPEdit
add_verb(usr, /client/verb/adminspice) // 10 minute cool-down for spice request

View File

@@ -32,7 +32,7 @@
to_chat(src, span_red("Error: giveruntimelog(): Client not found."))
return
add_verb(target,/client/proc/getruntimelog) //CHOMPEdit TGPanel
add_verb(target, /client/proc/getruntimelog)
to_chat(target, span_red("You have been granted access to runtime logs. Please use them responsibly or risk being banned."))
return

View File

@@ -172,7 +172,7 @@ var/list/debug_verbs = list (
if(!check_rights(R_DEBUG)) return
add_verb(src,debug_verbs) //CHOMPEdit TGPanel
add_verb(src, debug_verbs)
feedback_add_details("admin_verb","mDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -182,7 +182,7 @@ var/list/debug_verbs = list (
if(!check_rights(R_DEBUG)) return
remove_verb(src,debug_verbs) //CHOMPEdit TGPanel
remove_verb(src, debug_verbs)
feedback_add_details("admin_verb","hDV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!

View File

@@ -47,6 +47,6 @@
set desc = "Give this guy possess/release verbs"
set category = "Debug"
set name = "Give Possessing Verbs"
add_verb(M, /proc/possess) //CHOMPEdit
add_verb(M, /proc/release) //CHOMPEdit
add_verb(M, /proc/possess)
add_verb(M, /proc/release)
feedback_add_details("admin_verb","GPV") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!

View File

@@ -324,7 +324,7 @@ Ccomp's first proc.
if(CONFIG_GET(flag/antag_hud_allowed)) // CHOMPEdit
for(var/mob/observer/dead/g in get_ghosts())
if(!g.client.holder) //Remove the verb from non-admin ghosts
remove_verb(g, /mob/observer/dead/verb/toggle_antagHUD) //CHOMPEdit
remove_verb(g, /mob/observer/dead/verb/toggle_antagHUD)
if(g.antagHUD)
g.antagHUD = 0 // Disable it on those that have it enabled
g.has_enabled_antagHUD = 2 // We'll allow them to respawn
@@ -335,7 +335,7 @@ Ccomp's first proc.
else
for(var/mob/observer/dead/g in get_ghosts())
if(!g.client.holder) // Add the verb back for all non-admin ghosts
add_verb(g, /mob/observer/dead/verb/toggle_antagHUD) //CHOMPEdit
add_verb(g, /mob/observer/dead/verb/toggle_antagHUD)
to_chat(g, span_blue("<B>The Administrator has enabled AntagHUD </B>")) // Notify all observers they can now use AntagHUD
CONFIG_SET(flag/antag_hud_allowed, TRUE) // CHOMPEdit
action = "enabled"

View File

@@ -449,7 +449,7 @@
if(!verb || verb == "Cancel")
return
else
add_verb(H,verb) //CHOMPEdit
add_verb(H, verb)
else if(href_list["remverb"])
if(!check_rights(R_DEBUG)) return
@@ -466,7 +466,7 @@
if(!verb)
return
else
remove_verb(H,verb) //CHOMPEdit
remove_verb(H, verb)
else if(href_list["addorgan"])
if(!check_rights(R_SPAWN)) return

View File

@@ -70,7 +70,6 @@ var/list/overminds = list()
overminds -= src
return ..()
// ChompEDIT START - tgpanel
/mob/observer/blob/get_status_tab_items()
. = ..()
. += ""
@@ -79,7 +78,6 @@ var/list/overminds = list()
. += "Core Health: [blob_core.integrity]"
. += "Power Stored: [blob_points]/[max_blob_points]"
. += "Total Blobs: [GLOB.all_blobs.len]"
//ChompEDIT END
/mob/observer/blob/Move(var/atom/NewLoc, Dir = 0)
if(placed)

View File

@@ -37,7 +37,7 @@
//ADMIN THINGS//
////////////////
/// hides the byond verb panel as we use our own custom version
show_verb_panel = FALSE //CHOMPEdit
show_verb_panel = FALSE
///Contains admin info. Null if client is not an admin.
var/datum/admins/holder = null
var/datum/admins/deadmin_holder = null
@@ -123,7 +123,6 @@
// Runechat messages
var/list/seen_messages
//CHOMPEdit Begin
/// our current tab
var/stat_tab
@@ -141,7 +140,6 @@
var/list/misc_cache = list()
var/atom/examine_icon //Holder for examine icon, useful for statpanel
//CHOMPEdit End
//Hide top bars
var/fullscreen = FALSE

View File

@@ -115,6 +115,8 @@
qdel(query) //CHOMPEdit TGSQL
return
//VOREStation Add End
if(href_list["reload_statbrowser"])
stat_panel.reinitialize()
if(href_list["reload_statbrowser"]) //CHOMPEdit
stat_panel.reinitialize() //CHOMPEdit
@@ -705,7 +707,7 @@
if(!istext(verb_to_init.category))
continue
panel_tabs |= verb_to_init.category
verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name)
verblist[++verblist.len] = list(verb_to_init.category, verb_to_init.name, verb_to_init.desc)
src.stat_panel.send_message("init_verbs", list(panel_tabs = panel_tabs, verblist = verblist))
/client/proc/check_panel_loaded()

View File

@@ -196,13 +196,6 @@
return eyeobj
return src
//CHOMPEdit Begin
/client/verb/fix_stat_panel()
set name = "Fix Stat Panel"
set hidden = TRUE
init_verbs()
/client/verb/fit_viewport()
set name = "Fit Viewport"
set category = "OOC.Client Settings" //CHOMPEdit
@@ -282,3 +275,9 @@
INVOKE_ASYNC(src, VERB_REF(fit_viewport))
else //Delayed to avoid wingets from Login calls.
addtimer(CALLBACK(src, VERB_REF(fit_viewport), 1 SECONDS))
/client/verb/fix_stat_panel()
set name = "Fix Stat Panel"
set hidden = TRUE
init_verbs()

View File

@@ -234,28 +234,6 @@
/obj/item/rig_module/proc/accepts_item(var/obj/item/input_device)
return 0
/mob/living/carbon/human/Stat()
. = ..()
if(. && istype(back,/obj/item/rig))
var/obj/item/rig/R = back
SetupStat(R)
else if(. && istype(belt,/obj/item/rig))
var/obj/item/rig/R = belt
SetupStat(R)
/mob/proc/SetupStat(var/obj/item/rig/R)
if(R && !R.canremove && R.installed_modules.len && statpanel("Hardsuit Modules"))
var/cell_status = R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "ERROR"
stat("Suit charge", cell_status)
for(var/obj/item/rig_module/module in R.installed_modules)
{
for(var/stat_rig_module/SRM in module.stat_modules)
if(SRM.CanUse())
stat(SRM.module.interface_name,SRM)
}
/stat_rig_module
parent_type = /atom/movable
var/module_mode = ""

View File

@@ -46,13 +46,6 @@
else
integrated_ai.get_rig_stats = 0
/mob/living/Stat()
. = ..()
if(. && get_rig_stats)
var/obj/item/rig/rig = get_rig()
if(rig)
SetupStat(rig)
/obj/item/rig_module/ai_container/proc/update_verb_holder()
if(!verb_holder)
verb_holder = new(src)

View File

@@ -5,7 +5,6 @@
This means that this file can be unchecked, along with the other examine files, and can be removed entirely with no effort.
*/
// # define EXAMINE_PANEL_PADDING " " //CHOMPRemove
/atom/
var/description_info = null //Helpful blue text.
@@ -34,7 +33,7 @@
// Quickly adds the boilerplate code to add an image and padding for the image.
/proc/desc_panel_image(var/icon_state)
return "[icon2html(description_icons[icon_state],usr)]&emsp;" //CHOMPEdit
return "[icon2html(description_icons[icon_state], usr)]&emsp;"
/mob/living/get_description_fluff()
if(flavor_text) //Get flavor text for the green text.
@@ -50,53 +49,16 @@
/client/var/description_holders[0]
/client/proc/update_description_holders(atom/A, update_antag_info=0)
examine_icon = null //CHOMPEdit
examine_icon = null
description_holders["info"] = A.get_description_info()
description_holders["fluff"] = A.get_description_fluff()
description_holders["antag"] = (update_antag_info)? A.get_description_antag() : ""
description_holders["interactions"] = A.get_description_interaction()
description_holders["name"] = "[A.name]"
description_holders["icon"] = A //CHOMPEdit
description_holders["icon"] = A
description_holders["desc"] = A.desc
/* CHOMP Removal
/mob/Stat()
. = ..()
if(client && statpanel("Examine"))
var/description_holders = client.description_holders
stat(null,"[description_holders["icon"]] <font size='5'>[description_holders["name"]]</font>") //The name, written in big letters.
stat(null,"[description_holders["desc"]]") //the default examine text.
var/color_i = "#084B8A"
var/color_f = "#298A08"
var/color_a = "#8A0808"
/*
The infowindow colours are set in code\modules\vchat\js\vchat.js file
Unfortunately, I cannot think of a way to do this elegantly where there's this central define that we can easily track.
As of 2023/08/05 13:10, the lightmode colour for vchat tabBackgroundColor is "none", this is also defined in interface\skin.dmf .
The darkmode colour for vchat tabBackgroundColor is "#272727".
Since it's possible that one day we'll have option to modify the user's preferred tabBackgroundColor
I will assume the lightmode colour will be left untouched - therefore, we are checking for none.
*/
if(!(winget(src, "infowindow", "background-color") == "none"))
color_i = "#709ec9d8"
color_f = "#76d357"
color_a = "#c94d4d"
if(description_holders["info"])
stat(null,"<font color=[color_i]><b>[description_holders["info"]]</b></font>") //Blue, informative text.
if(description_holders["interactions"])
for(var/line in description_holders["interactions"])
stat(null, "<font color=[color_i]><b>[line]</b></font>")
if(description_holders["fluff"])
stat(null,"<font color=[color_f]><b>[description_holders["fluff"]]</b></font>") //Yellow, fluff-related text.
if(description_holders["antag"])
stat(null,"<font color=[color_a]><b>[description_holders["antag"]]</b></font>") //Red, malicious antag-related text
*/
//override examinate verb to update description holders when things are examined
//mob verbs are faster than object verbs. See http://www.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/examine()
/mob/verb/examinate(atom/A as mob|obj|turf in _validate_atom(A))
@@ -125,7 +87,8 @@
if(client)
var/is_antag = ((mind && mind.special_role) || isobserver(src)) //ghosts don't have minds
client.update_description_holders(A, is_antag)
SSstatpanels.set_examine_tab(client) //CHOMPEdit
SSstatpanels.set_examine_tab(client)
/mob/verb/mob_examine()
set name = "Mob Examine"
@@ -201,5 +164,3 @@
results = list("You were unable to examine that. Tell a developer!")
to_chat(src, jointext(results, "<br>"))
update_examine_panel(B)
// # undef EXAMINE_PANEL_PADDING //CHOMPRemove

View File

@@ -36,11 +36,11 @@ var/list/mentor_verbs_default = list(
/client/proc/add_mentor_verbs()
if(mentorholder)
add_verb(src,mentor_verbs_default) //CHOMPEdit TGPanel
add_verb(src, mentor_verbs_default)
/client/proc/remove_mentor_verbs()
if(mentorholder)
remove_verb(src,mentor_verbs_default) //CHOMPEdit TGPanel
remove_verb(src, mentor_verbs_default)
/client/proc/make_mentor()
set category = "Admin.Secrets" //CHOMPEdit

View File

@@ -444,9 +444,9 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
"Send to discord?", list("Admin-help!", "Still mentorhelp!", "Cancel"))
if(choice == "Admin-help!")
usr.client.adminhelp(msg)
remove_verb(src,/client/verb/mentorhelp) //CHOMPEdit
remove_verb(src, /client/verb/mentorhelp)
spawn(1200)
add_verb(src,/client/verb/mentorhelp ) // 2 minute cd to prevent abusing this to spam admins. //CHOMPEdit
add_verb(src, /client/verb/mentorhelp) // 2 minute cd to prevent abusing this to spam admins.
return
else if(!choice || choice == "Cancel")
return
@@ -454,9 +454,9 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new)
//remove out adminhelp verb temporarily to prevent spamming of admins.
remove_verb(src, /client/verb/mentorhelp) //CHOMPEdit
remove_verb(src, /client/verb/mentorhelp)
spawn(600)
add_verb(src, /client/verb/mentorhelp) //CHOMPEdit // 1 minute cool-down for mentorhelps
add_verb(src, /client/verb/mentorhelp) // 1 minute cool-down for mentorhelps
feedback_add_details("admin_verb","Mentorhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
if(current_mentorhelp)

View File

@@ -207,8 +207,8 @@ Works together with spawning an observer, noted above.
B.update()
if(ghost.client)
ghost.client.time_died_as_mouse = ghost.timeofdeath
if(ghost.client && !ghost.client.holder && !CONFIG_GET(flag/antag_hud_allowed)) // For new ghosts we remove the verb from even showing up if it's not allowed. // CHOMPEdit
remove_verb(ghost,/mob/observer/dead/verb/toggle_antagHUD ) // Poor guys, don't know what they are missing! //CHOMPEdit
if(ghost.client && !ghost.client.holder && !CONFIG_GET(flag/antag_hud_allowed)) // For new ghosts we remove the verb from even showing up if it's not allowed.
remove_verb(ghost, /mob/observer/dead/verb/toggle_antagHUD) // Poor guys, don't know what they are missing!
return ghost
/*
@@ -249,7 +249,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/can_use_hands() return 0
/mob/observer/dead/is_active() return 0
//ChompEDIT START
/mob/observer/dead/get_status_tab_items()
. = ..()
if(emergency_shuttle)
@@ -257,7 +256,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(eta_status)
. += ""
. += "[eta_status]"
//ChompEDIT END
/mob/observer/dead/verb/reenter_corpse()
set category = "Ghost.Game" //CHOMPEdit
@@ -821,8 +819,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/proc/manifest(mob/user)
is_manifest = TRUE
add_verb(src,/mob/observer/dead/proc/toggle_visibility) //CHOMPEdit TGPanel
add_verb(src,/mob/observer/dead/proc/ghost_whisper) //CHOMPEdit TGPanel
add_verb(src, /mob/observer/dead/proc/toggle_visibility)
add_verb(src, /mob/observer/dead/proc/ghost_whisper)
to_chat(src, span_filter_notice("[span_purple("As you are now in the realm of the living, you can whisper to the living with the <b>Spectral Whisper</b> verb, inside the IC tab.")]"))
if(plane != PLANE_WORLD)
user.visible_message( \

View File

@@ -33,7 +33,6 @@ var/list/holder_mob_icon_cache = list()
held.reset_view(src)
START_PROCESSING(SSobj, src)
//CHOMPEdit Start - Add status so that you can see where you are...
/mob/living/get_status_tab_items()
. = ..()
if(. && istype(loc, /obj/item/holder))
@@ -68,7 +67,6 @@ var/list/holder_mob_icon_cache = list()
if (location != "")
. += ""
. += "Location: [location]"
//CHOMPEdit End
/obj/item/holder/Entered(mob/held, atom/OldLoc)
if(held_mob)

View File

@@ -132,7 +132,7 @@
/datum/language/proc/broadcast(var/mob/living/speaker,var/message,var/speaker_mask)
log_say("(HIVE) [message]", speaker)
add_verb(speaker,/mob/proc/adjust_hive_range) //CHOMPEdit TGPanel
add_verb(speaker, /mob/proc/adjust_hive_range)
if(!speaker_mask) speaker_mask = speaker.real_name
message = "[get_spoken_verb(message)], \"[format_message(message, get_spoken_verb(message))]\""
@@ -207,7 +207,7 @@
languages.Add(new_language)
//VOREStation Addition Start
if(new_language.flags & HIVEMIND)
add_verb(src,/mob/proc/adjust_hive_range) //CHOMPEdit TGPanel
add_verb(src, /mob/proc/adjust_hive_range)
//VOREStation Addition End
return 1

View File

@@ -588,13 +588,13 @@
/mob/living/bot/Login()
no_vore = FALSE // ROBOT VORE
init_vore() // ROBOT VORE
add_verb(src,/mob/proc/insidePanel) //CHOMPEdit TGPanel
add_verb(src, /mob/proc/insidePanel)
return ..()
/mob/living/bot/Logout()
release_vore_contents()
remove_verb(src,/mob/proc/insidePanel) //CHOMPEdit TGPanel
remove_verb(src, /mob/proc/insidePanel)
no_vore = TRUE
devourable = FALSE
feeding = FALSE

View File

@@ -27,8 +27,8 @@
time_of_birth = world.time
add_verb(src,/mob/living/proc/ventcrawl) //CHOMPEdit TGPanel
add_verb(src,/mob/living/proc/hide) //CHOMPEdit TGPanel
add_verb(src, /mob/living/proc/ventcrawl)
add_verb(src, /mob/living/proc/hide)
instance_num = rand(1, 1000)
name = "[initial(name)] ([instance_num])"

View File

@@ -54,7 +54,7 @@ var/list/_nymph_default_emotes = list(
species = GLOB.all_species[SPECIES_DIONA]
add_language(LANGUAGE_ROOTGLOBAL)
add_language(LANGUAGE_GALCOM)
add_verb(src,/mob/living/carbon/alien/diona/proc/merge) //CHOMPEdit TGPanel
add_verb(src, /mob/living/carbon/alien/diona/proc/merge)
/mob/living/carbon/alien/diona/put_in_hands(var/obj/item/W) // No hands.
W.loc = get_turf(src)

View File

@@ -9,7 +9,7 @@
return
if(istype(src.loc,/mob/living/carbon))
remove_verb(src,/mob/living/carbon/alien/diona/proc/merge) //CHOMPEdit
remove_verb(src, /mob/living/carbon/alien/diona/proc/merge)
return
var/list/choices = list()
@@ -35,8 +35,8 @@
to_chat(H, "You feel your being twine with that of \the [src] as it merges with your biomass.")
to_chat(src, "You feel your being twine with that of \the [H] as you merge with its biomass.")
loc = H
add_verb(src,/mob/living/carbon/alien/diona/proc/split) //CHOMPEdit TGPanel
remove_verb(src,/mob/living/carbon/alien/diona/proc/merge) //CHOMPEdit TGPanel
add_verb(src, /mob/living/carbon/alien/diona/proc/split)
remove_verb(src, /mob/living/carbon/alien/diona/proc/merge)
return 1
/mob/living/carbon/alien/diona/proc/split()
@@ -49,7 +49,7 @@
return
if(!(istype(src.loc,/mob/living/carbon)))
remove_verb(src,/mob/living/carbon/alien/diona/proc/split) //CHOMPEdit
remove_verb(src, /mob/living/carbon/alien/diona/proc/split)
return
to_chat(src.loc, "You feel a pang of loss as [src] splits away from your biomass.")
@@ -58,8 +58,8 @@
var/mob/living/M = src.loc
src.loc = get_turf(src)
remove_verb(src,/mob/living/carbon/alien/diona/proc/split) //CHOMPEdit
add_verb(src,/mob/living/carbon/alien/diona/proc/merge) //CHOMPEdit
remove_verb(src, /mob/living/carbon/alien/diona/proc/split)
add_verb(src, /mob/living/carbon/alien/diona/proc/merge)
if(istype(M))
for(var/atom/A in M.contents)

View File

@@ -1,8 +1,8 @@
/mob/living/carbon/alien/diona/get_status_tab_items() //Specified where progression is at, doesn't work right for some things in carbon/alien //ChompEDIT - TGPanel
/mob/living/carbon/alien/diona/get_status_tab_items() //Specified where progression is at, doesn't work right for some things in carbon/alien
. = ..()
if(.) //ChompEDIT - TGPanel
if(.)
. += ""
. += "Diona Growth: [round(amount_grown)]/[max_grown]" //ChompEDIT - TGPanel
. += "Diona Growth: [round(amount_grown)]/[max_grown]"
/mob/living/carbon/alien/diona/confirm_evolution()

View File

@@ -1,8 +1,8 @@
/mob/living/carbon/alien/larva/get_status_tab_items() //Specified where progression is at, doesn't work right for some things in carbon/alien //ChompEDIT - TGPanel
/mob/living/carbon/alien/larva/get_status_tab_items() //Specified where progression stats come from, because for some reason it doesn't work right in carbon/alien
. = ..()
if(.) //ChompEDIT - TGPanel
if(.)
. += ""
. += "Larva Growth: [round(amount_grown)]/[max_grown]" //ChompEDIT - TGPanel
. += "Larva Growth: [round(amount_grown)]/[max_grown]"
/mob/living/carbon/alien/larva/confirm_evolution()

View File

@@ -8,7 +8,7 @@
return
if(!adult_form)
remove_verb(src,/mob/living/carbon/alien/verb/evolve) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/alien/verb/evolve)
return
if(handcuffed || legcuffed)

View File

@@ -12,9 +12,9 @@
B.detatch()
remove_verb(src,/mob/living/carbon/proc/release_control) //CHOMPEdit TGPanel
remove_verb(src,/mob/living/carbon/proc/punish_host) //CHOMPEdit TGPanel
remove_verb(src,/mob/living/carbon/proc/spawn_larvae) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/proc/release_control)
remove_verb(src, /mob/living/carbon/proc/punish_host)
remove_verb(src, /mob/living/carbon/proc/spawn_larvae)
else
to_chat(src, span_danger("ERROR NO BORER OR BRAINMOB DETECTED IN THIS MOB, THIS IS A BUG !"))

View File

@@ -80,7 +80,7 @@
B.host_brain.name = "host brain"
B.host_brain.real_name = "host brain"
remove_verb(src,/mob/living/carbon/proc/release_control) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/proc/release_control)
callHook("death", list(src, gibbed))

View File

@@ -68,7 +68,6 @@
dna.real_name = real_name
sync_organ_dna()
//verbs |= /mob/living/proc/toggle_selfsurgery //VOREStation Removal
AddComponent(/datum/component/personal_crafting)
/mob/living/carbon/human/Destroy()
@@ -83,7 +82,6 @@
QDEL_NULL(vessel)
return ..()
//CHOMPEdit Begin
/mob/living/carbon/human/get_status_tab_items()
. = ..()
. += ""
@@ -119,8 +117,41 @@
. += "Genetic Damage Time: [mind.changeling.geneticdamage]"
. += "Re-Adaptations: [mind.changeling.readapts]/[mind.changeling.max_readapts]"
if(species)
species.Stat(src)
//CHOMPEdit End
species.get_status_tab_items(src)
/mob/proc/RigPanel(var/obj/item/rig/R)
if(R && !R.canremove && R.installed_modules.len)
var/list/L = list()
var/cell_status = R.cell ? "[R.cell.charge]/[R.cell.maxcharge]" : "ERROR"
L[++L.len] = list("Suit charge: [cell_status]", null, null, null, null)
for(var/obj/item/rig_module/module in R.installed_modules)
{
for(var/stat_rig_module/SRM in module.stat_modules)
if(SRM.CanUse())
L[++L.len] = list(SRM.module.interface_name,null,null,SRM.name,REF(SRM))
}
misc_tabs["Hardsuit Modules"] = L
/mob/living/update_misc_tabs()
..()
if(get_rig_stats)
var/obj/item/rig/rig = get_rig()
if(rig)
RigPanel(rig)
/mob/living/carbon/human/update_misc_tabs()
..()
if(species)
species.update_misc_tabs(src)
if(istype(back,/obj/item/rig))
var/obj/item/rig/R = back
RigPanel(R)
else if(istype(belt,/obj/item/rig))
var/obj/item/rig/R = belt
RigPanel(R)
/mob/living/carbon/human/ex_act(severity)
if(!blinded)
@@ -850,7 +881,7 @@
return
if(!(mMorph in mutations))
remove_verb(src,/mob/living/carbon/human/proc/morph) //CHOMPEdit
remove_verb(src, /mob/living/carbon/human/proc/morph)
return
var/new_facial = input(usr, "Please select facial hair color.", "Character Generation",rgb(r_facial,g_facial,b_facial)) as color
@@ -925,7 +956,7 @@
return
if(!(mRemotetalk in src.mutations))
remove_verb(src,/mob/living/carbon/human/proc/remotesay) //CHOMPEdit
remove_verb(src, /mob/living/carbon/human/proc/remotesay)
return
var/list/creatures = list()
for(var/mob/living/carbon/h in mob_list)
@@ -956,11 +987,8 @@
if(!(mRemote in src.mutations))
remoteview_target = null
reset_view(0)
remove_verb(src,/mob/living/carbon/human/proc/remoteobserve) //CHOMPEdit
return
remove_verb(src, /mob/living/carbon/human/proc/remoteobserve)
if(client.eye != client.mob)
remoteview_target = null
reset_view(0)
return
@@ -1091,7 +1119,7 @@
blood_DNA[M.dna.unique_enzymes] = M.dna.b_type
hand_blood_color = blood_color
update_bloodied()
add_verb(src,/mob/living/carbon/human/proc/bloody_doodle) //CHOMPEdit TGPanel
add_verb(src, /mob/living/carbon/human/proc/bloody_doodle)
return 1 //we applied blood to the item
/mob/living/carbon/human/proc/get_full_print()
@@ -1324,7 +1352,7 @@
return 0 //something is terribly wrong
if (!bloody_hands)
remove_verb(src,/mob/living/carbon/human/proc/bloody_doodle) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/human/proc/bloody_doodle)
if (src.gloves)
to_chat(src, span_warning("Your [src.gloves] are getting in the way."))
@@ -1694,7 +1722,7 @@
/mob/living/carbon/human/examine_icon()
var/icon/I = get_cached_examine_icon(src)
if(!I)
I = getFlatIcon(src, defdir = SOUTH, no_anim = TRUE, force_south = TRUE) //CHOMPEdit
I = getFlatIcon(src, defdir = SOUTH, no_anim = TRUE, force_south = TRUE)
set_cached_examine_icon(src, I, 50 SECONDS)
return I

View File

@@ -73,13 +73,13 @@
// Called in robotize(), replaced() and removed() to update our modular limb verbs.
/mob/living/carbon/human/proc/refresh_modular_limb_verbs()
if(length(get_modular_limbs(return_first_found = TRUE, validate_proc = /obj/item/organ/external/proc/can_attach_modular_limb_here)))
add_verb(src,/mob/living/carbon/human/proc/attach_limb_verb) //CHOMPEdit TGPanel
add_verb(src, /mob/living/carbon/human/proc/attach_limb_verb)
else
remove_verb(src,/mob/living/carbon/human/proc/attach_limb_verb) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/human/proc/attach_limb_verb)
if(length(get_modular_limbs(return_first_found = TRUE, validate_proc = /obj/item/organ/external/proc/can_remove_modular_limb)))
add_verb(src,/mob/living/carbon/human/proc/detach_limb_verb) //CHOMPEdit TGPanel
add_verb(src, /mob/living/carbon/human/proc/detach_limb_verb)
else
remove_verb(src,/mob/living/carbon/human/proc/detach_limb_verb) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/human/proc/detach_limb_verb)
// Proc helper for attachment verb.
/mob/living/carbon/human/proc/check_can_attach_modular_limb(var/obj/item/organ/external/E)

View File

@@ -191,8 +191,8 @@
qdel(Org)
// Purge the diona verbs.
remove_verb(src,/mob/living/carbon/human/proc/diona_split_nymph) //CHOMPEdit TGPanel
remove_verb(src,/mob/living/carbon/human/proc/regenerate) //CHOMPEdit TGPanel
remove_verb(src, /mob/living/carbon/human/proc/diona_split_nymph)
remove_verb(src, /mob/living/carbon/human/proc/regenerate)
for(var/obj/item/organ/external/E in organs) // Just fall apart.
E.droplimb(TRUE)

View File

@@ -114,7 +114,7 @@
H.ability_master = new /obj/screen/movable/ability_master/lleill(H)
for(var/datum/power/lleill/P in lleill_ability_datums)
if(!(P.verbpath in H.verbs))
H.verbs += P.verbpath
add_verb(H, P.verbpath)
H.ability_master.add_lleill_ability(
object_given = H,
verb_given = P.verbpath,

Some files were not shown because too many files have changed in this diff Show More