Commit Graph

35 Commits

Author SHA1 Message Date
Firecage
332bde0f4f Does the rest of the if()'s/ else's 2016-01-17 19:03:12 +02:00
Razharas
b6e4ef88ec Saving the data collecting
Saving the data collecting
2015-09-25 22:52:30 +03:00
Razharas
df189498ce The final solution of bad taste in midis question
The final solution of bad taste in midis question
Added special client verb that kills all sounds currently playing for
this client
This is better because toggle midis only pauses them, not actually stops
them
2015-09-25 22:42:24 +03:00
Incoming
2f0ebbf810 Fixes a pretty significant bug where sounds set with set round end sound would only actually play for the person who set the sound 2015-04-28 23:15:27 -04:00
Incoming
f892127b24 Adds the "set round end sound" fun button so admins can override the generic sounds to play something else if want be. 2015-04-18 15:34:03 -04:00
MrPerson
ce13faed09 Change select holiday names to #defines 2015-03-25 15:01:06 -07:00
MrPerson
9910cf3fe3 Change holidays into datums
Holidays are now actual datums with procs and vars and everything.
Holidays run a proc called celebrate() when it's time to celebrate them. Currently none of them do anything but that should change, wink wink.
Holidays can now run for more than a day. The important ones, april fools, christmas, halloween, new years, and easter, all last at least a week. The idea is so people can celebrate christmas in game without having to, you know, actually play on fucking christmas. And also to put a time limit on how long stuff like the annoying spookoween closet skeletons will stick around so it doesn't overstay its welcome and become annoying as shit like last year.
The event SS now allows more than 1 holiday to run at a time. This matters for new years + christmas, easter + april fools, easter + 4/20, and any holiday that can happen on friday the 13th. The events get stored in a list that's only initialized if there's an active holiday so testing for potential holidays is still pretty easy.
Added more easter dates so we won't have to add more until 2040. The current batch run out in 2017.
2015-03-25 01:46:29 -07:00
carnie
a029a49392 SubSystem rewrite
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
2014-12-31 13:25:41 +00:00
Jordie0608
1172851b0e Stop Sounds usable by any holder 2014-11-26 15:29:30 +11:00
phil235
537280b4b9 Removing many instances of the no longer used second argument of message_admins() proc.
Replacing "for(var/mob/M in viewers()) M.show_message()" by "visible_message()" or audible_message()" in many places.
Changing a few span classes.
2014-10-05 01:29:30 +02:00
MrPerson
e2defa667a Upgrades to the play admin midi client pref
Toggling it off will pause any songs currently playing. Toggling it back on will resume playback from where you were.
Toggling midis on will play the currently playing admin midi, if there is one.
2014-03-31 05:41:33 -07:00
KazeEspada
53424fc84f Adds a new admin verb in the debug category called Silence Sounds. It can be used to stop all sounds currently playing. Useful if you need to diagnose if the sounds are the cause of lag, or if you play two sounds on top of each other. 2013-09-05 19:40:40 -07:00
carnie
b84d12d949 *Small tidy-up of various helper procs*
-Turns out there was already a Gaussian PRNG proc already, used by mechs and turrets. I've replaced it with my one as mine has almost half the cost. (currently broken! still waiting for fixes to be pulled!)
-replaced between(min, val, max) with Clamp(val, min, max)
-get_turf(thing) now uses var/list/locs to locate its turf, rather than iterating up through loc of its loc of its loc...etc
-sign(num) moved to maths.dm
-InRange(val, min, max) replaced with IsInRange(val, min, max) (they were identical)
-Removed ismultitool() iswrench() iscoil() iswire() iswelder() iscrowbar() etc
-removed modulus(num) as abs() performs the same task! *roll-eyes*
-removed get_mob_with_client_list() as it is no longer needed (we have var/list/player_list now)
-removed get_turf_or_move() as it simply called get_turf
-removed get_turf_loc() as it was identical to get_turf()

*Additions:*
-The "Declare Ready" link in the lobby will automatically become "Join Game" if the round starts before you declare ready, so you don't have to click it twice
2013-05-27 12:21:43 +01:00
elly1989@rocketmail.com
2e68af07c1 Merged listen_ooc, seeprayers, STFU_ghosts, STFU_radio, deadchat, sound_adminhelp, ghostears, ghostsight, canplaysound, midis, no_ambi and lobby_music into client.prefs.toggles as bitflags.
Toggling these preferences in-game will update your savefile. Meaning that your preferences will persist between rounds.

Added some savefile_version updating stuff. It's pretty crude. If you're changing any of the savefile stuff just ask and I can change it/help.

Removed some unused client vars

Ghosts no longer hear ambience. Simplified ambience code.

Simplified lobby music code. It will no longer cause a massive queue of events (which would eventually balloon in memory use)

Moved ooccolor and sound_adminhelp back to prefs. It's easier and allowed me to remove the setupclient() stuff completely.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5143 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-21 05:58:04 +00:00
elly1989@rocketmail.com
50fe648a91 Admin ranks now use bitfields for permissions. Rather than checking the name of the rank, adminverbs will now check holder.rights to see if it has certain bits turned on.
SERVER HOSTS:
This commit replaces the existing admin-rank system. It is now more customizable.
Admin.txt essentially works the same as it always has. Each line should look like:
ckey - admin rank

There is now however, an admin_ranks.txt. This textfile allows you to define ranks like so:
admin rank +ADMIN +FUN +BUILD
the +KEYWORD are flags adding permissions to that rank. There are brief descriptions in the text-file explaining what they do.

You can now name the ranks anything you like, and give them the permissions you want them to have. This allows, for instance, ranks like:
Game Admin on disciplinary +ADMIN +BAN
This would give that game admin only the tools they need to admin. They would not have access to 'fun' verbs which control events and antags.
There's lots of things you can do. For instance, a coder rank whom can debug stuff but cannot do admin tasks:
Codermin +DEBUG +VAREDIT +SERVER

There's lots you can do. As it evolves it will hopefully become more flexible.

admin_ranks.txt defaults to use the old admin rank names.

Apologies in advance as there will be a lot of anomalies, such as ranks losing verbs they once had. Please let me know about any problems. I can fix them quite easily simply by moving verbs between the lists or splitting the lists up into new flags.

CODERS:
There is now a check_rights(flags) proc. 
It check is usr is and admin and has -at least one of- the rights specified.
It checks > usr < not src, so keep that in mind!
If you need to check if something other than usr has specific tights, you can do if(holder.rights & R_ADMIN) etc.

KNOWN ISSUES:
+FUN probably needs to be split up into +MOBS and +EVENTS
In-game promotion/demotion is currently disabled. It will be readded after everything else works ok.
Erro's sql rights changes stuff is currently commented out. It will be re-added.
There are still many many verbs which need updating.

Apologies in advance for any inconvenience.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4991 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-02 10:23:04 +00:00
petethegoat@gmail.com
7023909912 Changed toggle midis to a client verb.
Fixed it even harder this time. Worked fine in testing, please report any issues to me straight away.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4750 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-24 12:24:33 +00:00
sieve32@gmail.com
7bf6788082 -OPTIMIZATION TIME
-Almost every instance of 'for(mob in world)' has been killed. Because GODDAMN was it being run a bunch. Instead, a series of global lists have been made, and they are all handled auto-magically through New()'s, Del()'s, Login()'s, death()'s, etc...

Lists are as follows:
-mob_list : Contains all atom/mobs by ref
-player_list : Like mob_list, but only contains mobs with clients attached
-admin_list : Like player_list, but holds all mobs with clients attached and admin status
-living_mob_list : Contains all mobs that ARE alive, regardless of client status
-dead_mob_list : Contains all mobs that are dead, which comes down to corpses and ghosts
-cable_list : A list containing every obj/structure/cable in existence
Note: There is an object (/obj/item/debuglist) that you can use to check the contents of each of the lists except for cables (Since getting a message saying "a cable," x9001 isn't very helpful)

These lists have been tested as much as I could on my own, and have been mostly implemented. There are still places where they could be used, but for now it's important that the core is working. If this all checks out I would really like to implement it into the MC as well, simply so it doesn't check call Life() on every mob by checking for all the ones in world every damn tick.

Just testing locally I was able to notice improvements with certain aspects, like admin verbs being MUCH more responsive (They checked for every mob in the world every time they were clicked), many sources of needless lag were cut out (Like Adminwho and Who checking every single mob when clicked), and due to the cable_list powernet rebuilding is MUCH more efficient, because instead of checking for every cable in the world every time a powernet was broken (read: A cable was deleted), it runs though the pre-made list, and even with a singulo tearing all the way across the station, the powernet load was VERY small compared to pretty much everything else.

If you want to know how any of this works, check global_lists.dm, there I have it rigorously commented, and it should provide an understanding of what's going on.

Mob related in worlds before this commit: 1262
After: 4
I'm helping


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4179 316c924e-a436-60f5-8080-3fe189b3f50e
2012-07-26 03:04:05 +00:00
elly1989@rocketmail.com
65a84484cf Removed a debug message.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3909 316c924e-a436-60f5-8080-3fe189b3f50e
2012-06-24 09:01:17 +00:00
baloh.matevz@gmail.com
d1d0fd5e4f - hand tools now fit on your belt slot
- added feedback logging for newscasters
- added feedback logging for admin verbs
- added shuttle timers to escape pods
- added feedback logging to chemical reactions
- clipboard can now fit on your belt

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3465 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-16 04:00:36 +00:00
elly1989@rocketmail.com
04f0a79866 Rewrote blackholes (gravitational anomalies) and wormholes to try and optimise them a little. If you have any concerns about how I've done so just give me a shout and I'll either rework them or revert my changes back. Wormholes especially seem a bit faster on my laptop. Smoke has temporarily been removed from the blackhole event until I get time to investigate why the hell effect_systems are using so much memory ( spark effects were using 40% of my processor a second ago D: ). To compensate this I made them a new sprite.
Commented out the authentication system. It was the remnants of the old goon authentication stuff (or maybe even older) and wasn't actually used in our code at all (at least not in any useful way, it was merely called and short-circuited to 1, so all those if(authenticated) were totally pointless. This has removed 3 unused variables from every client, a bunch of unused variables from the config and two empty text files!

Committed (as a config option) a feature requested by Apoc station. It causes a 'reply to' window to popup when an admin PMs a non-admin player. It's meant to grab their attention so they can't say "I didn't see your PM". It defaults to off. To turn it on just uncomment the #POPUP_ADMIN_PM line in config/config.txt

Fixed a derp in isday where it was fetching the month instead of the day.

Removed medal references from Gib()

Removed the medal_hub global variables because they aren't used in any way shape or form.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3444 316c924e-a436-60f5-8080-3fe189b3f50e
2012-04-12 21:54:51 +00:00
mport2004@gmail.com
b471da4ed4 The modified Changeling mode should end properly now.
Tracking implants can now be used to message the holder.
Mini Readme update.
Explosive implants will explode when the host dies.  Might try and wrap these into nuke or as a new traitor item.
Added a play local sound proc.
Fixed most of the runtimes in the latest log.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2074 316c924e-a436-60f5-8080-3fe189b3f50e
2011-08-30 07:29:59 +00:00
musketstgstation@gmail.com
22ec2a84ad BY CONSENSUS OF THE ADMIN TEAM:
Music buttons and song files removed.
Consequently, bananaphone kitchen recipe removed.
This saves over 10MB from the resource download, making it go faster for everyone and reducing lag.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1881 316c924e-a436-60f5-8080-3fe189b3f50e
2011-07-18 17:46:20 +00:00
noisomehollow@lycos.com
a14cfd6464 Added expanded piano code by HornyGranny. Instead of like 8 notes, it plays all the notes (?). Improved by me.
Admin midis should probably not screw up when played by more than one admin at the same time.
Added ninja RD hacking.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1687 316c924e-a436-60f5-8080-3fe189b3f50e
2011-06-12 23:51:51 +00:00
uporotiy
f05a9843af Hydroponics
Fixed bug with mutated plants not being harvestable.
Added glowshrooms. They (maybe) glown in the dark. To get their seeds, you need to hack the seed machine. They're pretty straightforward. To plant a glowshroom on the floor, you need to click it while it's in your hand.
 Badmin
Added a "Honk" button.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1515 316c924e-a436-60f5-8080-3fe189b3f50e
2011-05-01 20:19:18 +00:00
morikou@gmail.com
b06cc3ee34 Two new microwave recipes:
- Tele Bacon: Requires one piece of meat and a remote signaler. It is delicious and may allow 

people to teleport to your location.
- Banana Phone: Requires a banana, a radio, and 5 units of psilocybin. Basically an edible radio. Eat at your own risk (MAY CAUSE HOMICIDAL URGES, NOT LIKE THAT IS ANYTHING UNUSUAL).

On a totally unrelated note:
- Banana Phone (full version of the song, not the short loop version) can now be played via the "Banana Phone" fun admin command. It only runs once.
- Fixed a potential runtime error in the juicer code.

DRINKS!
- Potato juice added, produced from putting a potato in a juicer.
- 10 Potato Juice + 2 Enzyme = Vodka
- 5 coffee + 5 sugar + 2 enzyme = Kahlua

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1484 316c924e-a436-60f5-8080-3fe189b3f50e
2011-04-21 17:52:16 +00:00
baloh.matevz
4485874260 Renamed the admin ranks which were set as placeholders:
- Admin who sinned renamed to Badmin
- Admin observer renamed to Moderator (the rank won't be used anyway)
- Punnished Admin renamed to Admin observer (as i sorta switched these two around by accident)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1322 316c924e-a436-60f5-8080-3fe189b3f50e
2011-03-31 05:08:55 +00:00
baloh.matevz
c34592100b SCAREDOFSHADOWS READ THIS ONE!!!
HOSTS OF OTHER SERVERS, READ THIS ONE TOO!!!!

Administrator ranks renamed:
- Host => Game Master
- Coder => Game Agmin
- Shit Guy => Admin who Sinned
- PA => Trial Agmin
- Administrator => Agmin Candidate
- SA => Temporary Agmin
- Moderator => Agmin Observer
- Filthy Xeno => Punnished Agmin

Promotion and Demotion ingame can now only be done by Game Admins and Game Masters.

THIS COMMIT INCLUDES THE NEW admins.txt FILE FOR TGSTATION. IT USES THE NEW RANK NAMES. ALL OTHER SERVER HOSTS ARE TO UPDATE THEIR ADMIN FILES TO THE NEW RANK NAMES WHEN THEY UPDATE PAST THIS REVISION. Don't yell at me, as if I didn't tell you in caps...

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1318 316c924e-a436-60f5-8080-3fe189b3f50e
2011-03-31 03:21:58 +00:00
polyxenitopalidou
d44791fadd •Comitting space_asshole song for when traitors are winning.
Im sorry for the filesize. The lowQ version was plain unhearable.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@539 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-05 18:32:23 +00:00
uporotiy
7c008e61e1 -Fixed midis not playing at all.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@377 316c924e-a436-60f5-8080-3fe189b3f50e
2010-11-06 18:16:57 +00:00
uporotiy
d840398dc9 -Fixed TK through cameras.
-Fixed rune 4 not counting the cultist in the middle. 
-Expanded the explanation of a cultist objective.
-Moved the "midis" setting to client, so it carries over when you ghost/robot/alien/etc.
-Little extra something for Host level admins.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@374 316c924e-a436-60f5-8080-3fe189b3f50e
2010-11-06 12:35:24 +00:00
uporotiy
50b8c9dd35 Added a new disease.
Removed GBS.
Fixed mime invisiwall.
Removed the red stripe on HoS's suit AGAIN.
Added metroid jam.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@314 316c924e-a436-60f5-8080-3fe189b3f50e
2010-10-18 18:29:59 +00:00
uporotiy
5490a3e40e Changed a lot of things, too lazy to recall them atm. Attempted a shotgun-on-back fix, but didn't work.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@305 316c924e-a436-60f5-8080-3fe189b3f50e
2010-10-17 14:27:57 +00:00
uporotiy
d981500978 Half-finished mime job (yes, I like releasing raw things).
Cuban Pete Time button for admins.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@293 316c924e-a436-60f5-8080-3fe189b3f50e
2010-10-16 20:16:52 +00:00
Skiedrake
cbec1b6f3d Removed files that were 0 bytes in size.
Made sure every verb now has a name which starts with a capital letter and makes sense, because OCD.
Changed the categories of verbs a lot, now they are in much more sensible tabs.
Added a couple of admin verbs:
 - Right click monkeyize
 - Call Shuttle
 - Recall Shuttle
Removed some goon verbs.
Gave "Coder" admin group a little more admin verbs:
 - Monkeyize, Cultistize, Abominationize, Call Shuttle, Recall Shuttle, Make Sound
Added mobs a "say_message" variable. Now admin-created mobs can "scree", "squeak" etc. instead of just "chimper" or "hiss".

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@138 316c924e-a436-60f5-8080-3fe189b3f50e
2010-09-22 00:41:07 +00:00
only.lurking
662c08272a git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2 316c924e-a436-60f5-8080-3fe189b3f50e 2010-08-23 14:29:20 +00:00