mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
RCDs now work on a system of schematics, with an RPD style UI. RPD, RCD, RSF and tile painters all implemented into this new system. (reverted from commitccb9ceb811) (reverted from commit1d9a328ba6)
398 lines
13 KiB
Plaintext
398 lines
13 KiB
Plaintext
//Content of the Round End Information window
|
|
var/round_end_info = ""
|
|
|
|
//List of ckeys that have de-adminned themselves during this round
|
|
var/global/list/deadmins = list()
|
|
|
|
// List of types and how many instances of each type there are.
|
|
var/global/list/type_instances[0]
|
|
|
|
/var/global/datum/map/active/map = new() //Current loaded map
|
|
//Defined in its .dm, see maps/_map.dm for more info.
|
|
|
|
var/global/obj/effect/datacore/data_core = null
|
|
var/global/obj/effect/overlay/plmaster = null
|
|
var/global/obj/effect/overlay/slmaster = null
|
|
|
|
var/global/list/account_DBs = list()
|
|
|
|
// Used only by space turfs. TODO: Remove.
|
|
// The comment below is no longer accurate.
|
|
var/global/list/global_map = null
|
|
|
|
//list/global_map = list(list(1,5),list(4,3))//an array of map Z levels.
|
|
//Resulting sector map looks like
|
|
//|_1_|_4_|
|
|
//|_5_|_3_|
|
|
//
|
|
//1 - SS13
|
|
//4 - Derelict
|
|
//3 - AI satellite
|
|
//5 - empty space
|
|
|
|
var/global/datum/universal_state/universe = new
|
|
|
|
var/list/paper_tag_whitelist = list("center","p","div","span","h1","h2","h3","h4","h5","h6","hr","pre", \
|
|
"big","small","font","i","u","b","s","sub","sup","tt","br","hr","ol","ul","li","caption","col", \
|
|
"table","td","th","tr")
|
|
var/list/paper_blacklist = list("java","onblur","onchange","onclick","ondblclick","onfocus","onkeydown", \
|
|
"onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover", \
|
|
"onmouseup","onreset","onselect","onsubmit","onunload")
|
|
|
|
var/BLINDBLOCK = 0
|
|
var/DEAFBLOCK = 0
|
|
var/HULKBLOCK = 0
|
|
var/TELEBLOCK = 0
|
|
var/FIREBLOCK = 0
|
|
var/XRAYBLOCK = 0
|
|
var/CLUMSYBLOCK = 0
|
|
var/FAKEBLOCK = 0
|
|
var/COUGHBLOCK = 0
|
|
var/GLASSESBLOCK = 0
|
|
var/EPILEPSYBLOCK = 0
|
|
var/TWITCHBLOCK = 0
|
|
var/NERVOUSBLOCK = 0
|
|
var/MONKEYBLOCK = 54 // Monkey block will always be the DNA_SE_LENGTH
|
|
|
|
var/BLOCKADD = 0
|
|
var/DIFFMUT = 0
|
|
|
|
var/HEADACHEBLOCK = 0
|
|
var/NOBREATHBLOCK = 0
|
|
var/REMOTEVIEWBLOCK = 0
|
|
var/REGENERATEBLOCK = 0
|
|
var/INCREASERUNBLOCK = 0
|
|
var/REMOTETALKBLOCK = 0
|
|
var/MORPHBLOCK = 0
|
|
var/COLDBLOCK = 0
|
|
var/HALLUCINATIONBLOCK = 0
|
|
var/NOPRINTSBLOCK = 0
|
|
var/SHOCKIMMUNITYBLOCK = 0
|
|
var/SMALLSIZEBLOCK = 0
|
|
|
|
///////////////////////////////
|
|
// Goon Stuff
|
|
///////////////////////////////
|
|
// Disabilities
|
|
var/LISPBLOCK = 0
|
|
var/MUTEBLOCK = 0
|
|
var/RADBLOCK = 0
|
|
var/FATBLOCK = 0
|
|
var/CHAVBLOCK = 0
|
|
var/SWEDEBLOCK = 0
|
|
var/SCRAMBLEBLOCK = 0
|
|
var/TOXICFARTBLOCK = 0
|
|
var/STRONGBLOCK = 0
|
|
var/HORNSBLOCK = 0
|
|
var/SMILEBLOCK = 0
|
|
var/ELVISBLOCK = 0
|
|
|
|
// Powers
|
|
var/SOBERBLOCK = 0
|
|
var/PSYRESISTBLOCK = 0
|
|
//var/SHADOWBLOCK = 0
|
|
var/FARSIGHTBLOCK = 0
|
|
var/CHAMELEONBLOCK = 0
|
|
var/CRYOBLOCK = 0
|
|
var/EATBLOCK = 0
|
|
var/JUMPBLOCK = 0
|
|
var/MELTBLOCK = 0
|
|
var/EMPATHBLOCK = 0
|
|
var/SUPERFARTBLOCK = 0
|
|
var/IMMOLATEBLOCK = 0
|
|
var/POLYMORPHBLOCK = 0
|
|
|
|
///////////////////////////////
|
|
// /vg/ Mutations
|
|
///////////////////////////////
|
|
var/LOUDBLOCK = 0
|
|
var/WHISPERBLOCK = 0
|
|
var/DIZZYBLOCK = 0
|
|
var/SANSBLOCK = 0
|
|
|
|
|
|
|
|
|
|
var/skipupdate = 0
|
|
///////////////
|
|
var/eventchance = 10 //% per 5 mins
|
|
var/event = 0
|
|
var/hadevent = 0
|
|
var/blobevent = 0
|
|
///////////////
|
|
var/starticon = null
|
|
var/midicon = null
|
|
var/endicon = null
|
|
var/diary = null
|
|
var/diaryofmeanpeople = null
|
|
var/admin_diary = null
|
|
var/href_logfile = null
|
|
var/station_name = null
|
|
var/game_version = "veegee"
|
|
var/changelog_hash = ""
|
|
var/game_year = (text2num(time2text(world.realtime, "YYYY")) + 544)
|
|
|
|
var/datum/air_tunnel/air_tunnel1/SS13_airtunnel = null
|
|
var/going = 1.0
|
|
var/master_mode = "extended"//"extended"
|
|
var/secret_force_mode = "secret" // if this is anything but "secret", the secret rotation will forceably choose this mode
|
|
|
|
var/datum/engine_eject/engine_eject_control = null
|
|
var/host = null
|
|
var/aliens_allowed = 1
|
|
var/ooc_allowed = 1
|
|
var/dooc_allowed = 1
|
|
var/traitor_scaling = 1
|
|
//var/goonsay_allowed = 0
|
|
var/dna_ident = 1
|
|
var/abandon_allowed = 1
|
|
var/enter_allowed = 1
|
|
var/guests_allowed = 1
|
|
var/shuttle_frozen = 0
|
|
var/shuttle_left = 0
|
|
var/tinted_weldhelh = 1
|
|
|
|
var/list/jobMax = list()
|
|
var/list/bombers = list( )
|
|
var/list/admin_log = list ( )
|
|
var/list/lastsignalers = list( ) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]"
|
|
var/list/lawchanges = list( ) //Stores who uploaded laws to which silicon-based lifeform, and what the law was
|
|
var/list/shuttles = list( )
|
|
var/list/reg_dna = list( )
|
|
// list/traitobj = list( )
|
|
|
|
var/CELLRATE = 0.002 // multiplier for watts per tick <> cell storage (eg: .002 means if there is a load of 1000 watts, 20 units will be taken from a cell per second)
|
|
var/CHARGELEVEL = 0.001 // Cap for how fast cells charge, as a percentage-per-tick (.001 means cellcharge is capped to 1% per second)
|
|
|
|
// COORDINATE OFFSETS
|
|
// Used for telescience. Only apply to GPSes and other things that display coordinates to players.
|
|
// The idea is that coordinates given will be entirely different from those displayed on the map in DreamMaker,
|
|
// while still making it very simple to lock onto someone who is drifting in space.
|
|
var/list/WORLD_X_OFFSET = list()
|
|
var/list/WORLD_Y_OFFSET = list()
|
|
|
|
var/shuttle_z = 2 //default
|
|
var/airtunnel_start = 68 // default
|
|
var/airtunnel_stop = 68 // default
|
|
var/airtunnel_bottom = 72 // default
|
|
var/list/monkeystart = list()
|
|
var/list/wizardstart = list()
|
|
var/list/newplayer_start = list()
|
|
var/list/latejoin = list()
|
|
var/list/prisonwarp = list() //prisoners go to these
|
|
var/list/holdingfacility = list() //captured people go here
|
|
var/list/xeno_spawn = list()//Aliens spawn at these.
|
|
var/list/endgame_safespawns = list()
|
|
var/list/endgame_exits = list()
|
|
var/list/meteor_materialkit = list()
|
|
var/list/meteor_bombkit = list()
|
|
var/list/meteor_bombkitextra = list()
|
|
var/list/meteor_tankkit = list()
|
|
var/list/meteor_canisterkit = list()
|
|
var/list/meteor_buildkit = list()
|
|
var/list/meteor_pizzakit = list()
|
|
var/list/meteor_panickit = list()
|
|
var/list/meteor_shieldkit = list()
|
|
var/list/meteor_genkit = list()
|
|
var/list/meteor_breachkit = list()
|
|
var/list/tdome1 = list()
|
|
var/list/tdome2 = list()
|
|
var/list/tdomeobserve = list()
|
|
var/list/tdomeadmin = list()
|
|
var/list/prisonsecuritywarp = list() //prison security goes to these
|
|
var/list/prisonwarped = list() //list of players already warped
|
|
var/list/blobstart = list()
|
|
var/list/ninjastart = list()
|
|
// list/traitors = list() //traitor list
|
|
var/list/cardinal = list( NORTH, SOUTH, EAST, WEST )
|
|
var/list/diagonal = list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
|
|
var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
|
|
|
|
var/global/universal_cult_chat = 0 //if set to 1, even human cultists can use cultchat
|
|
|
|
var/datum/station_state/start_state = null
|
|
var/datum/configuration/config = null
|
|
|
|
var/list/combatlog = list()
|
|
var/list/IClog = list()
|
|
var/list/OOClog = list()
|
|
var/list/adminlog = list()
|
|
|
|
var/suspend_alert = 0
|
|
|
|
var/Debug = 0 // global debug switch
|
|
var/Debug2 = 0
|
|
|
|
var/datum/debug/debugobj
|
|
|
|
var/datum/moduletypes/mods = new()
|
|
|
|
var/wavesecret = 0
|
|
var/gravity_is_on = 1
|
|
|
|
var/shuttlecoming = 0
|
|
|
|
var/join_motd = null
|
|
var/forceblob = 0
|
|
|
|
// nanomanager, the manager for Nano UIs
|
|
var/datum/nanomanager/nanomanager = new()
|
|
|
|
#define SPEED_OF_LIGHT 3e8 //not exact but hey!
|
|
#define SPEED_OF_LIGHT_SQ 9e+16
|
|
#define FIRE_DAMAGE_MODIFIER 0.0215 //Higher values result in more external fire damage to the skin (default 0.0215)
|
|
#define AIR_DAMAGE_MODIFIER 2.025 //More means less damage from hot air scalding lungs, less = more damage. (default 2.025)
|
|
#define INFINITY 1e31 //closer then enough
|
|
|
|
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
|
#define MAX_MESSAGE_LEN 1024
|
|
#define MAX_PAPER_MESSAGE_LEN 3072
|
|
#define MAX_BOOK_MESSAGE_LEN 9216
|
|
#define MAX_NAME_LEN 26
|
|
#define MAX_BROADCAST_LEN 512
|
|
|
|
#define shuttle_time_in_station 1800 // 3 minutes in the station
|
|
#define shuttle_time_to_arrive 6000 // 10 minutes to arrive
|
|
|
|
//away missions
|
|
var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to
|
|
|
|
// MySQL configuration
|
|
|
|
var/sqladdress = "localhost"
|
|
var/sqlport = "3306"
|
|
var/sqldb = "tgstation"
|
|
var/sqllogin = "root"
|
|
var/sqlpass = ""
|
|
|
|
// Feedback gathering sql connection
|
|
|
|
var/sqlfdbkdb = "test"
|
|
var/sqlfdbklogin = "root"
|
|
var/sqlfdbkpass = ""
|
|
|
|
var/sqllogging = 0 // Should we log deaths, population stats, etc?
|
|
|
|
|
|
|
|
// Forum MySQL configuration (for use with forum account/key authentication)
|
|
// These are all default values that will load should the forumdbconfig.txt
|
|
// file fail to read for whatever reason.
|
|
|
|
var/forumsqladdress = "localhost"
|
|
var/forumsqlport = "3306"
|
|
var/forumsqldb = "tgstation"
|
|
var/forumsqllogin = "root"
|
|
var/forumsqlpass = ""
|
|
var/forum_activated_group = "2"
|
|
var/forum_authenticated_group = "10"
|
|
|
|
// For FTP requests. (i.e. downloading runtime logs.)
|
|
// However it'd be ok to use for accessing attack logs and such too, which are even laggier.
|
|
var/fileaccess_timer = 0
|
|
var/custom_event_msg = null
|
|
|
|
//Database connections
|
|
//A connection is established on world creation. Ideally, the connection dies when the server restarts (After feedback logging.).
|
|
var/DBConnection/dbcon = new() //Feedback database (New database)
|
|
var/DBConnection/dbcon_old = new() //Tgstation database (Old database) - See the files in the SQL folder for information what goes where.
|
|
|
|
#define MIDNIGHT_ROLLOVER 864000 //number of deciseconds in a day
|
|
|
|
//Recall time limit: 2 hours
|
|
var/recall_time_limit = 72000
|
|
|
|
//Goonstyle scoreboard
|
|
//NOW AN ASSOCIATIVE LIST
|
|
//NO FUCKING EXCUSE FOR THE ATROCITY THAT WAS
|
|
var/list/score=list(
|
|
"crewscore" = 0, //This is the overall var/score for the whole round
|
|
"stuffshipped" = 0, //How many useful items have cargo shipped out? Currently broken
|
|
"stuffharvested" = 0, //How many harvests have hydroponics done (per crop)?
|
|
"oremined" = 0, //How many chunks of ore were smelted
|
|
"eventsendured" = 0, //How many random events did the station endure?
|
|
"powerloss" = 0, //How many APCs have alarms (under 30 %)?
|
|
"escapees" = 0, //How many people got out alive?
|
|
"deadcrew" = 0, //Humans who died during the round
|
|
"deadsilicon" = 0, //Silicons who died during the round
|
|
"mess" = 0, //How much messes on the floor went uncleaned
|
|
"litter" = 0, //How much trash is laying on the station floor
|
|
"meals" = 0, //How much food was actively cooked that day
|
|
"disease" = 0, //How many disease vectors in the world (one disease on one person is one)
|
|
|
|
//These ones are mainly for the stat panel
|
|
"powerbonus" = 0, //If all APCs on the station are running optimally, big bonus
|
|
"messbonus" = 0, //If there are no messes on the station anywhere, huge bonus
|
|
"deadaipenalty" = 0, //AIs who died during the round
|
|
"foodeaten" = 0, //How much food was consumed
|
|
"clownabuse" = 0, //How many times a clown was punched, struck or otherwise maligned
|
|
"richestname" = null, //This is all stuff to show who was the richest alive on the shuttle
|
|
"richestjob" = null, //Kinda pointless if you dont have a money system i guess
|
|
"richestcash" = 0,
|
|
"richestkey" = null,
|
|
"dmgestname" = null, //Who had the most damage on the shuttle (but was still alive)
|
|
"dmgestjob" = null,
|
|
"dmgestdamage" = 0,
|
|
"dmgestkey" = null,
|
|
"explosions" = 0, //How many explosions happened total
|
|
|
|
"arenafights" = 0,
|
|
"arenabest" = null,
|
|
)
|
|
|
|
var/list/trash_items = list()
|
|
var/list/decals = list()
|
|
|
|
// Mostly used for ban systems.
|
|
// Initialized on world/New()
|
|
var/global/event/on_login
|
|
var/global/event/on_ban
|
|
var/global/event/on_unban
|
|
|
|
// List of /plugins
|
|
var/global/list/plugins = list()
|
|
|
|
// Space get this to return for things i guess?
|
|
var/global/datum/gas_mixture/space_gas = new
|
|
|
|
//Announcement intercom
|
|
var/global/obj/item/device/radio/intercom/universe/announcement_intercom = new
|
|
|
|
//used by jump-to-area etc. Updated by area/updateName()
|
|
var/list/sortedAreas = list()
|
|
|
|
var/global/bomberman_mode = 0
|
|
var/global/bomberman_hurt = 0
|
|
var/global/bomberman_destroy = 0
|
|
|
|
var/global/list/volunteer_gladiators = list()
|
|
var/global/list/ready_gladiators = list()
|
|
var/global/list/never_gladiators = list()
|
|
|
|
var/global/list/achievements = list()
|
|
|
|
//icons that appear on the Round End pop-up browser
|
|
var/global/list/end_icons = list()
|
|
|
|
var/global/list/arena_leaderboard = list()
|
|
var/arena_rounds = 0
|
|
var/arena_top_score = 0
|
|
|
|
var/endgame_info_logged = 0
|
|
|
|
var/explosion_newmethod = 1 // 1 = explosions take walls and obstacles into account; 0 = explosions pass through walls and obstacles without any impediments;
|
|
|
|
//PDA games vars
|
|
//Snake II leaderboard
|
|
var/global/list/snake_station_highscores = list()
|
|
var/global/list/snake_best_players = list()
|
|
|
|
//Minesweeper leaderboard
|
|
var/global/list/minesweeper_station_highscores = list()
|
|
var/global/list/minesweeper_best_players = list()
|
|
|
|
var/nanocoins_rates = 1
|
|
var/nanocoins_lastchange = 0
|
|
|
|
var/minimapinit = 0
|