* Add the system for managed global variables
* Travis ban old globals
* So you CAN inline proccall, that's neat
* Fix that
* master.dm
* Remove the hack procs
* Move InitGlobals to the proper spot
* configuration.dm
* Fix the missing pre-slash
* clockcult.dm
* This is probably for the best
* Doy
* Fix shit
* Rest of the DEFINES tree
* Fix
* Use global. for access
* Update find_references_in_globals
Always hated that proc
Whoever made it must've bee a r e a l idiot...
* __HELPERS tree
* Move global initialization to master.
Fix the declaration
* database.dm
* Dat newline
* I said DECLARATIVE order!
* Here's something you can chew on @Iamgoofball
* game_modes.dm
* Fix this
* genetics.dm
* flavor_misc.dm
* More stuff
* Do it mso's way. Keep the controllers as global
* Make master actually see it
* Fix
* Finish _globalvars/lists
* Finish the rest of the _globalvars tree
* This is weird
* Migrate the controllers
* SLOTH -> GLOB
* Lighting globals
* round_start_time -> ticker
* PAI card list -> pai SS
* record_id_num -> static
* Diseases list -> SSdisease
* More disease globals to the SS
* More disease stuff
* Emote list
* Better and better
* Bluh
* So much stuff
* Ahh
* Wires
* dview
* station_areas
* Teleportlocs
* blood_splatter_icons
* Stuff and such
* More stuff
* RAD IO
* More stuff and such
* Blob shit
* Changeling stuff
* Add "Balance" to changelogs
* Balance for changelog compiler + Auto Tagging
* Update the PR template
* hivemind_bank
* Bip
* sacrificed
* Good shit
* Better define
* More cult shit
* Devil shit
* Gang shit
* > borers
Fix shit
* Rename the define
* Nuke
* Objectives
* Sandbox
* Multiverse sword
* Announce systems
* Stuff and such
* TC con
* Airlock
* doppllllerrrrrr
* holopads
* Shut up byond you inconsistent fuck
* Sneaky fuck
* Burp
* Bip
* Fixnshit
* Port without regard
* askdlfjs;
* asdfjasoidojfi
* Protected globals and more
* SO MANY
* ajsimkvahsaoisd
* akfdsiaopwimfeoiwafaw
* gsdfigjosidjfgiosdg
* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!
* facerolll
* ASDFASDFASDF
* Removes the unused parts of dmm_suite
* WIP
* Fix quote
* asdfjauwfnkjs
* afwlunhskjfda
* asfjlaiwuefhaf
* SO CLOSE
* wwwweeeeeewwwww
* agdgmoewranwg
* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?
* Fix syntax errors
* 100 errors
* Another 100
* So many...
* Ugh
* More shit
* kilme
* Stuuuuuufffff
* ajrgmrlshio;djfa;sdkl
* jkbhkhjbmjvjmh
* soi soi soi
* butt
* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING
* lllllllllllllllllllllllllllllllllllllllllll
* afsdijfiawhnflnjhnwsdfs
* yugykihlugk,kj
* time to go
* STUFFF!!!
* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!
* ngoaijdjlfkamsdlkf
* Break time
* aufjsdklfalsjfi
* CONTROL KAY AND PRAY
* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Goteem
* Fix testing mode
* This does not belong in this PR
* Convert it to a controller
* Eh, fuck this option
* Revert controllerization Ill do it some other time
* Fix
* Working controllerization
* FOR THE LOVE OF CHRIST PROTECT THE LOGS
* Protect admins and deadmins
* Use the inbuilt proc
It was not as proper as the name would imply, and experience and amused redditors have taught me that writing a proper HTML-scrubbing function is a very hard task indeed.
-The Captain's PDA can now access multiple bots!
- The Captain and HoP PDAs can now also remotely access Newscasters!
- Bot radio code now no longer uses filters to allow for multi-access
radio control.
- Bots can now patrol while off station.
Misc:
+Fixes unreported issue with initializing lighting on a specific zlevel
+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.
+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)
+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.
+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.
+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.
+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.
-Removed 'quadratic lighting', can add this back at some point. Sorry.
+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.
+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.
-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.
+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)
+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.
-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.
_OK, NOW THE ACTUAL INTERESTING STUFF_
Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker
Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.
Many system-specific global variables have been refactored into
All tickers which previously used world.timeofday now use world.time
some subsystems can iterate before round start. this resolves the issue with votes not working pregame
* atmos/fire alerts are now linked to an object and not its area, as intended
* simplified and full pathed the radio frequency datum
* made radio objects properly clean on del/qdel, instead of letting the radio controller remove nulls at each post_signal()
-Adds a Service headset channel, given to the botanists, barman, and chef. The HoP also gets the service channel on his headset.
Note: The Service Preset Server will have to be added to Telecomms on the map before the channel is usable. I'll put up the map when/if this gets merged.
- Added a GetCleanVar to be used when getting a global variable to use inside the game code, it will sanitize() the variable if the compare argument is not equal to it; the compare argument should used to see if NTSL has changed the value.
- Added a sanitize_data proc for the signal datum. It will sanitize all the data using strip_html_simple().
- Made the singularity not move stuff while contained, should help and make it easier to work with; such as fixing the field generator.
- Added logging for gold slime extracts.
- Removed unneeded deletion of signals in telecomms code.
- Added a debug verb which will record pointers of signals that weren't garbage collected.
- Removed the need to create a mob to compare it in telecomms code.
- The spider infestation is more likely going to spawn nurses.
- Runtime fix with spells.
- Reverse list actually does something now. Bots never needed it so I removed it. (Thanks carn)
- Added an ON_BORDER flag for border firedoors.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5601 316c924e-a436-60f5-8080-3fe189b3f50e
var/network = string is now var/list/network = list().
I've also added a "network_multi" var which is a string. This is specifically for placing cameras on a map that you want to put on multiple networks. Apparently DM's map maker doesn't support lists, so just type them all in as a string and camera/initialize() will take care of the rest.
Input the networks with commas seperating them, for example: "SS13,RD,Secret,Prison,Ect"
I fixed a few issues while editing the cameras on the map as well.
Both maps:
- Re-added the telescreen in the misc research room that got removed at some point. (Thanks to Ikarrus for pointing this out)
- Any room that had 2 cameras (one for each network) were merged into one camera with the new network lists.
- - Permabrig-hallway (SS13, Prison)
- - Every room in R&D (including robotics) (SS13, RD)
- - The bomb testing range (RD, Toxins)
tgstation.2.1.1.dmm:
- Added a missing wire in engineering-sec (Thanks to SuperSayu for pointing this out)
- Fixed some mis-orientated firelocks. (Thanks to Intigracy for pointing this out)
- - The mining door between cargo and mining
- - The door between the hallway and the engineering lobby
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5596 316c924e-a436-60f5-8080-3fe189b3f50e
Improvements to Telecomms. I wasn't happy with my relays and having telecomms send several messages on different Z levels was not effecient. I decided to overcome this by removing the need to attach Broadcasters and Transmitters to relays. Then I made relays just add to the signal data which z levels the message will be broadcasted on, instead of sending the message several times. It's a bit hard to explain but basically it should be better then ever, and adding more relays will not create serious performance issues. Since you can't control whether the Z level could only receive messages or only send them, I added options on the relay itself so you can set it. I then made an additional feature, which Nodrak gave me the idea for, which is that busses can change the frequency of a signal. It's an option on the Bus and you can set it to change the signal's frequency, which can create hilarious situations such as the command channel being redirected to the general channel. No way to duplicate a signal with a different frequency at the moment.
Since relays earlier depended on a stupid system in order to become a off-site relay, I instead just made it limited to the satellite Z level, which makes more sense.
Broadcasters and Receivers are linked to the HUB, but it's still possible to create a simple telecommunication system with a "Receiver -> Bus -> Processer -> Broadcaster" (though it will be slow)
OTHER
Smartfridge limit was lowered to 999, just below the infinite loop check limit. This is to prevent further issues that may occure.
Moved creating some icon datums above the SQL procs, just to make sure that the SQL itself isn't sleeping and causing issues with the datums being used before being loaded.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5183 316c924e-a436-60f5-8080-3fe189b3f50e
Spess Networking Technology:
▪ The machines are located in Centcom near the cargo shuttle.
▪ A new admin debug verb "Change Radio Type". Using this will toggle between old (current) radio code and the new radio code. ADMINS: I recommend only doing this if Doohl (me) is around to take note of anything that happens.
▪ The whole thing works, in theory, but hasn't been stress-tested with the usual 60+ players. I will write up a Tgstation Wiki article and/or explain what some of the stuff does in IRC or ingame.
One last thing to point out: this is a PROTOTYPE. I have tested it myself and optimized the code very well. In theory, this new radio system is significantly less laggy AND has many more features. However, because of it's a prototype, it can at any time destroy the server. The reason I am committing this and not updating the changelog is because it's not an actual feature YET. I want to stress test this on the servers to see how it fairs, then add some more stuff to it like the ability to link machines and repair networks.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2807 316c924e-a436-60f5-8080-3fe189b3f50e
◦ The kitchen and booze vending machines have some changed commodity values. Most importantly, kitchen has more eating utensils and trays.
◦ Changed the afterattack() and DblClick() to have the (location,control,params) parameters.
◦ Added a new radio filter, "RADIO_MAGNETS".
◦ Mucked around with /datum/signal. Just an extra variable and another comment.
◦ Guns' afterattack() proc now carries location,control,params.
◦ Projectiles now track exactly where the player clicked on a tile. Pretty neat, huh?
New stuff:
◦ A new machine has been added: magnetic generators. They fit under floor tiles and can create dyanmic magnetic fields by directing ionized proton/electron beams to another tile.
◦ Another machine/computer was added that can control these magnetic generators. These machines come with their own pseudo-scripting engine for directing the magnetic beams magnetic modules create. They're not really complete yet, but they work for the firing range. I plan on expanding on this maybe sometime in the future, creating more applications for magnets elsewhere.
◦ Firing range things have been added, including target stakes and targets (both sprited by Veyveyr). You can mount targets onto target stakes and shoot them. Pixel-precision aiming has been applied to the targets (ONLY THE TARGETS!) so that you can see where you shot it and whatnot. You can literally blow holes through the targets until they collapse on themselves.
◦ Added a small little manual to the firing range on how to use the new stuff. It hopefully isn't too complicated to use.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2543 316c924e-a436-60f5-8080-3fe189b3f50e
Communications.dm works once again.
Updated a few admin commands that I missed to work with the job datums.
Fixed a type path issue in the cult talismans.
Assembly remote signalers now iterate though their for loop properly.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2347 316c924e-a436-60f5-8080-3fe189b3f50e
/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work.
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more. More random name monkeys will help with changeling and clean up the observe/mob menus.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
Two new categories were made: station_objects and effects. station_objects, which I'm sure someone will want renamed to 'structures' contains the objects which don't need process() or power code.
Effects contains objects which are either landmarks, triggers, spawners or decal.
Screenshot:
http://www.kamletos.si/new%20object%20tree.PNG
I didn't notice any bugs, but with a revision editing 276 files of byond code, you never know.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2323 316c924e-a436-60f5-8080-3fe189b3f50e
I have done lots of work to make selecting players for special roles be fair.
- New options preferences: "be traitor", "be changeling" and so on for all special roles.
- Now you can have job of AI/cyborg in preferences and do not lower your chances to become wizard/changeling/etc. And vice-versa: you do not have to select AI in your preferences to have non zero chance to play malf.
- Jobban from syndicate bans player from any special role (including malf AI, cult, etc).
- Fixed bug with changeling round not ending sometimes.
- All special roles were tuned to work better as admin-driven event.
-- All adminmade special characters will be listed at the end of round of any type.
-- All adminmade special characters are fully functional with following exceptions:
--- The ending conditions are determined at round start, i.e. you cannot end revolution by killing wizards and malf AIs (however, with nuke you can end anything).
--- The cultists cannot get their special objectives.
--- The malf AI can hack the APCs but without any profit.
--- The syndicate operatives must obtain the nuke/working code from admins.
--- As before, nuclear explosion ends round. Even if nuke was used in wrong place.
- Fixed thingy like "Not enough players for revolution game mode. Restarting world in 5 seconds."
- Changeling wont get objective "absorb X genomes" when there are less that X players in game.
- proc/equip_if_possible now has return value, procs like equip_revolutionary (giving a flash) should be more reliable.
- There are no fake wizards anymore. The research staff have to kill ALL wizards on order to win, even adminspawned ones. ("give spell" verb works as before, not making a spellcaster to actually be wizard).
- The semi-new game mode: traitor+changeling. Just like regular traitor mode plus one changeling. Round ends when the shuttle reaches centcom. Option for config.txt: "PROBABILITY TRAITORCHAN".
- Successful malf AI now have 60 seconds to choose to explode the station or not (some players still have to rejoin game to have their new verbs shown in Malfunction tab).
- Monkeys mode fixed, monkeys wouldn't randomly cure anymore.
For admins:
- New powerful mind editor oriented to mixed rounds.
-- Setting someone as special character (like wizard) does not equip him/her automatically. You have to do it it next step. Note, that in case of wizards and nuke operatives their old dress will be deleted! If you do not want it you shall use "undress" link.
-- Only operatives, head revs and cultists have their objectives set immediately.
-- You can unemad borgs!
-- You cannot unemag borgs because calling mind editor for nonhumans is blocked atm.
-- many other useful features.
-- you can fix burned out flashes from mind editor.
-- first assign the new malf AI/wizard then demalf/dewizard old one or round will immediately end.
- if delete the nuke bomb during its downcounting round will stuck. Using "edit ticker variables" set ticker.mode.explosion_in_progress = 0.
For coders:
- /datum/game_mode/malfunction/AI_Module renamed to /datum/AI_Module. Reason: What. The. Fuck.
Unrelated fixes:
- Blueprints can create areas up to 300 tiles (was 100).
- Cyborgs wont leave backpacks at spawn point anymore.
- Fixed bug in preferences causing preferences files to be huge.
- Diseases can infect again.
- The option "SQL_ENABLED 0" now works in config.txt.
- fixed critical bug on assassinate objective.
Bugs:
- We have a bug with job distribution for people who haven't any available jobs in their preferences. Players tends to group by jobs.
- For example, if we have 3 players they with hight chances will got same jobs. And probability of having one engineer and one medic _exactly_ equals _zero_.
- I am not sure if my changes made that bug worse. Anyway I MUST do this commit. Bug will be fixed eventually. Maybe.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1703 316c924e-a436-60f5-8080-3fe189b3f50e
Medibot sprite fixed.
Aliens now attack bots instead of opening control window.
All bots can be damaged and repaired.
All bots are effected to EMP now.
Asteroids generation was tuned to do not spawn asteroid on z-level edges.
Enabling admin verbs now wont turn on deadchat if it was turned off.
An emergency toolbox now contain a red crowbar.
Mime job is now available to join as.
Added radio channel for miners, use :h or :d ("diggers" lol) as shortcut.
Added radio channel for cargo techs, use :h or :q as shortcut.
Added a personal headsets to HoP and QM.
Some unrelated runtime errors was fixed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1050 316c924e-a436-60f5-8080-3fe189b3f50e
Radio was optimized even more. Still have some reserves.
Restored admin verb "Radio Report". It shows some signs of errors on the map, but I am too tired to fix it now.
Optimized player login (that "400000 calls of new_player/Move" bug).
Various optimizations and fixes in radio code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1046 316c924e-a436-60f5-8080-3fe189b3f50e
Three new channels and new :h-like shortcuts for each channel.
shortcuts now are:
":r" = "right hand" (unchanged)
":l" = "left hand" (unchanged)
":i" = "intercom" (unchanged)
":h" = "department" (unchanged for everyone except captain)
":w" = "whisper" (NEW shortcut)
":b" = "binary" (CHANGED)
":a" = "alientalk" (unchanged)
":t" = "Syndicate" (NEW channel)
":c" = "Command" (NEW shortcut)
":n" = "Science" (NEW channel) ("n" because all other letters are occupied)
":m" = "Medical" (NEW shortcut)
":e" = "Engineering" (NEW shortcut)
":s" = "Security" (NEW shortcut)
Note:
":h" works as before, i.e. sends on engineering channel for engineers and CE, on medical channel for MD, CMO,etc and so on.
All heads have command channel in their headsets along with department channel.
Warden and QM aren't heads.
Captain have almost all channels in his/her headset, but some are switched off by default. The default channel for captain is "Command" now.
Bugs fixed:
If headset is tuned to other frequency dept channel don't work.
A receive wire in intercoms can be cut.
Some others bugs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1020 316c924e-a436-60f5-8080-3fe189b3f50e
I believe we have ironed out all the identified bugs and we're ready to move the map into live. It took two days of work, but we've done it. If anyone else has any more mapping changes or updates to make, please do them
ACCESS:
- Scientists granted medbay access (temporarely, so they can get out) - I REPEAT: TEMPORARELY!!!
MAPPERS NOTE:
- If you wish to add more than one access requirement for doors or machinery, edit the req_access_txt like so: "5;6" if it requires accesses 5 AND 6. There is no way to make it allow 5 OR 6 tho.
That's all folks.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@995 316c924e-a436-60f5-8080-3fe189b3f50e
Lag reduced by approx 30% (0.5 seconds of total 1.5 on my system).
Some air alarms on the map copypasted from toxins one, with its special settings.
Added list of used frequencies and HOW IT WORKS section to communications.dm. Sorry for some engrish.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@895 316c924e-a436-60f5-8080-3fe189b3f50e