Commit Graph

434 Commits

Author SHA1 Message Date
giacomand@gmail.com
4989c88a22 Committing carn's modifications to events and other things. Full details below.
http://forums.nanotrasen.com/viewtopic.php?f=16&t=12245#p189186

Ported all the random events to Pete/Gia's event system:
>Event system now supports weighting. default is 10. a weight of 5 is half as likely as default, 20 twice as likely....etc.
>Increased the frequency of events (dust happens over 60% of the time though)
>tidied up some ninja code: ninjas now get ~5 objectives. So they are hardmode.
>made the gravity toggle into a random event
>event system now supports round-start events
>event system now supports holiday events
>event system now supports events which can only happen after the round has lasted a certain number of ticks
>event system now supports max_occurrences for events. Setting any event's max_occurrences to 0 will stop it randomly occurring
>events now support being fed associative lists inside new(). This allows you to override their variables easily.
>wormhole events no longer cause loads of lag. They are extremely deadly. wormholes should be avoided

Other:
>replaced the procs for fetching candidates for ninjas and aliums with /proc/get_candidates(be_special_flag), it returns a list of active clients with that be_special preference enabled.
>minor fixes to minds
>your memories are displayed to you at Login()
>removed aliens_allowed
>removed ninjas_allowed
>pick_n_take() is now more efficient (uses Cut() rather than Remove()


Things I added:

 - Made the pandemic call ..() instead of doing the checks itself.
 - Made the staff of animation use more charge.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5720 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-17 11:44:37 +00:00
aranclanos@hotmail.com
11f9c0e948 Fixes the admin button for the "lights out" event. It was just a typo.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5714 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-16 05:38:18 +00:00
Kortgstation@gmail.com
78381e3ffe Added an admin button to cure all diseases. I dunno how often this will actually get used, but if a griffon infects everything/gets banned for it, I'd imagine some admins would appreciate being able to fix the round as well.
Removed (non functional, literally it did nothing) remove bombs button.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5706 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-14 21:23:18 +00:00
petethegoat@gmail.com
a1ac5f0e66 Renamed /datum/organ/external to /datum/limb.
Updated all files.

Removed the skeleton and skin organs.

Updated WIP surgery.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5689 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-11 18:52:33 +00:00
Kortgstation@gmail.com
e9814c6f19 Added a new random event, bluespace anomaly, will which randomly teleport an area to a beacon (like the metroid teleport, but with a larger area of effect and ignoring anchored).
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5649 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-04 11:53:30 +00:00
baloh.matevz@gmail.com
31dfb6ca9e - Replaced MAX_EXPLOSION_RANGE with MAX_EX_DEVASTATION_RANGE _HEAVY_ _LIGHT_ and _FLASH_.
- Moved explosion capping to explosion code, overridable by setting a proc parameter, which defaults to off, obviously.
- Reduced r-walls' explosion resistance from 25 to 15. They can now be destroyed by strong bombs.
- Added liquid processing to the sun part of the MC
- Added additional calls to atmos processing to the MC. You can enable this by (manually, with the debug controller verb) enabling the fast_atmos_1 .. 3 variables in the configuration datum. The intent of this is to enable it in a few rounds to see if it is possible to make atmos calls more common.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5607 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-24 17:38:20 +00:00
giacomand@gmail.com
458fddbea5 - Tweaks to spiders to be less robust.
- Made goats/cows not give infinite milk but instead slowly generate milk in their udder for collecting.
- Lowered speak chance for chickens and added a limit for how many chickens can be bred.
- Lowered the chances of an egg to be a chicken hatching egg.
- If you put an egg in your pocket it won't be a chicken hatching egg anymore.
- Chickens won't spawn inside you anymore.
- Added some abstract classes to the list of things that shouldn't spawn with slime cores.
- Increased the time between events.
- Added a spawn spiders button for admins.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5535 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-12 23:07:51 +00:00
giacomand@gmail.com
a56e922053 Committing for Cael_Aislinn:
= Giant Spiders =
- Nurses spin webs which impede progress, bundle items and mobs up in cocoons, lay eggs to create spiderlings
- Nurses are slow and weak, but their bite has a chance to paralyse the victim
- Spiderlings skitter about and eventually grow into giant spiders. 
- Spiderlings will ventcrawl, so they can spread over the station pretty fast. 
- Hunters are fast, have decent health and the most effective poison
- Guards are medium speed but the health and direct damage
- The poison of hunters and guards can cause hallucinations if they bite you

= Farm animals =
- Cows can be milked or butchered for a large supply of meat. Sadists can also tip them over (with intent_help). 
- Goats can also be milked, but have a nasty temperament. 
- Chicks grow up to be chickens, who lay eggs and continue the cycle. But where did it start? (they're very noisy). 
- All three are orderable via QM. 

My changes:

- Added a spider infestation event.
- Optimized code with spiders and simple_animals.
- Made a /hostile/retaliate type which will only fight back when hurt. Based on Cael's code.
- Added some farm animals on the map.
- Changed events, added a setup() proc which can let you setup variables or the event. Made the event only kill itself when it has called, announce(), start() and end().
- Brainrot will only need alkysine as a cure.
- Communication blackout will always be silent.
- Changed some admin buttons to use the new event system.
- Added a forceEvent proc which you can use when you enable debug verbs.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5525 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-12 16:44:06 +00:00
rockdtben@gmail.com
169c96db1b Too remove potential excessive garbage collection per tick. We will be reusing lists for overlays instead of deleting and creating them.
the .Cut() proc on a list will empty a list by default. This also will set the len to 0.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5465 316c924e-a436-60f5-8080-3fe189b3f50e
2013-01-04 15:11:06 +00:00
baloh.matevz
5cebb40123 - Fixed a runtime that happens when you try to add a new admin via the permissions panel. Adding admins through that panel will now work again.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5382 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-23 19:35:20 +00:00
baloh.matevz
b55042e64b - Added temporary jobbans.
Screenshot: http://www.ss13.eu/tempjobban.PNG

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5381 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-23 12:20:11 +00:00
d_h2005@yahoo.com
a6ac75aee8 Adds a fun new button to the Secrets panel, Egalitarian Station. Hitting it removes access requirements from airlocks on the station, with the exception of private quarters, the bridge, and the prison.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5284 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-08 03:41:59 +00:00
baloh.matevz@gmail.com
79f9733f4a - Fixed the updated permission panel to work with the database system.
- Added lights and power to oldstation for whatever reason.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5245 316c924e-a436-60f5-8080-3fe189b3f50e
2012-12-01 23:32:22 +00:00
Kortgstation@gmail.com
0c4f441cb5 Added Cheridan's slime sprites to replace roros. Replaced all mentions of roro/metroid with slime. Once Cheri has the rest of the sprites/Phol gets mutant race sprites I'll start work on redoing metroid/slime code with Giacom and adding breeding.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5223 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-29 04:12:22 +00:00
elly1989@rocketmail.com
599430c3ff Re-added warnings. Admins can now give players formal warnings via the player panel. Even when they are offline. These warnings can no longer be reset by logging out.
The number of strikes a person gets is a define so hosts can modify it to their liking (I should probably move this to a config option but I can't be bothered to test it again). It defaults to 3 strikes, on the third strike you're out. It'll autoban you for 10 minutes.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5123 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 16:48:03 +00:00
elly1989@rocketmail.com
30357d18ce SANITY: Created a series of generalised sanity procs. They can be found in code/__HELPERS/sanitize_values.dm
They include such procs as sanitize_integer(num, min, max, default) which will check num is a number, round num to make it an integer, then check if it is between min and max (inclusive). If it fails the bound-checks it will return default. There are others, have a look.

PERSISTENT PREFERENCES: Every ckey which connects to the game gets its own persistent /datum/preferences datum.
It is archived in var/list/preferences_datums = list("ckey" = datum)
At connect it is automatically associated with the client defines.dm (or a new one is created if it can't find an archived prefs datum). This means clients will ALWAYS have a var/datum/preferences/prefs which references this datum. So you can use it without checking if(client.prefs)
This has simplified only a few bits of code. It will however, allow us to make preferences like see_deadchat ghost_ears etc, persistent. So they will not reset when you DC.

SAVEFILES: Changed the player savefile code a lot. Hopefully I've not fucked it up too much. Every single variable loaded from saves is now sanity checked using the new sanity procs. This should help prevent savefiles becomming obsolete by sanitizing input to meet current requirements, without deleting all the ok variables and making you start from scratch >_> NOTE: I still need to sort out the savefile version stuff. I'll probably figure it out before the server updates anyway. It sees to be fine without it.

You can no longer choose your blood type. It is randomised (with each bloodtype having a realistic probability of occuring). This is to make blood analysis (detective/medical) less pointless. It is chosen as soon as you connect. It remains persistent throughout each round so you won't be able to change it by logging in/out over and over.

Replaces some copypasta code with is_afk() (still a fair bit to do)

There are new hyperlink shortcut things. _src_=vars will direct your hyperlink to viewvars. _src_=prefs to your preferences datum. (These are the only way to access those bits of code via links). This means that the overall amount of operations in almost every Topic has pretty much halved and is much prettier.

Replaced and removed adminplayervars from datum/admins/Topic. It was superfluous. They now all point directly to the viewvars code using _src_=vars

Removed the changelog popup at round start. Instead a button on your game-window will glow white if there are new updates. To peruse at your convenience. This will speed up connect times.

Removed the AFK_THRESHOLD define. It is integrated into is_afk() now.

TODO: remove the prefs stuff from mobs and clients and update code to use client.prefs to access that info.



git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5121 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 15:13:57 +00:00
elly1989@rocketmail.com
a10f6e0ec2 Added a switch inside client/Topic which can direct the topic call to a few frequently used destinations.
Before, when making a link to an admin tool, you done this:
<a href='?src=\ref[C.holder];parameter=1;>link</a>

Now, we do not need to use a reference to direct it to places like usr or usr.client.holder (or client, but you never needed src for that anyway)
usr: <a href='?_src_=usr;parameter=1;>link</a>
holder: <a href='?_src_=holder;parameter=1;>link</a>

This basically allows us to move a LOT of code outside of loops as we no longer have to create a \ref for every recipient of the message. They can all be sent identical links. A simple example of this would be in pray.dm Although it's most noticeable in the adminhelp code which is vastly simplified.

Adminhelp name spotting code thingy...whatever... looks for ckey matches first, then surnames, then forenames. This is to stop it possibly weirding out if there is a station full of "Ed"s of "Sarah"s

Prayer code no longer loads a new icon into memory every time a prayer is sent. Use image() not icon()!

key_name() no longer needs a reference for it's admin_link argument.

message_admin() pretty much doesn't need those extra arguments for finding and replacing %holder_ref%. I've got to go through all the code to check before I remove it though.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5105 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-18 08:27:11 +00:00
elly1989@rocketmail.com
97e95e4ab0 Moved "there can only be one" to the secrets panel (fun)
Removed the last of the old promotion/demotion code.
Permissions panel accessible via player panel.
Uncommented the attack log verb. I mistakenly thought it wasn't used.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5102 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-17 23:28:54 +00:00
giacomand@gmail.com
9894568500 -Cyborg Hypospray will no longer lose it's reagents when switching modes.
-Spaceacillin will now prevent the spread of diseases while it is a mob.
-Moved the "Create A Disease" code into a proc.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5101 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-17 22:28:48 +00:00
giacomand@gmail.com
e2acdcfe47 -Admins can now make their own advance diseases via the secret button! Instead of the useless "virus2" button, there will now be an option called "Create Your Own"! Use this button and pick from 5 symptoms to make your disease from.
-Fixed a bug where blood/vomit decals would be creating new viruses.
-Medical computer won't recognize advance diseases... for now.
-Used english_list when displaying symptoms.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5100 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-17 19:53:00 +00:00
elly1989@rocketmail.com
43dfc564f4 Removing an inconsistent restriction from the rightsedit thing.
I'll need to talk to Erro to figure out what to do with that.
Personally, I'd like to think people with PERMISSIONS rights could be trusted but you never know >_> bloody internet

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5083 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-16 01:57:48 +00:00
elly1989@rocketmail.com
25b61bae72 Removed the infra_sensor define for noddie.
Integrated the sql and standard admin_rank stuff a little. Still needs some work.
Permissions Panel has a sexy floating search bar. The scripts and stylesheets are external files which will be sent to every client at connect, so they can be used in any panel you wish with no additional overheads.

If there are any bugs with the permissions panel (particularly the search bar) please let me know. thanks.

rights2text now has a seperator argument. It defaults to "", but can be any string, for instance "<br>"

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5080 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-15 20:35:37 +00:00
aranclanos@hotmail.com
440c782a94 - Fixes Issue 910
- Changed mineral walls, they have their own type by mineral instead of a variable
- Now you can spawn the different mineral walls with the game panel
- Fixed the examining in walls, they will now show the text on the 'desc' var

 There are still some stuff out there with mineral walls, ugly chunks of code that does the same thing, two vars that have the same value and stuff like that. All of that will be purged, but, as always, to be continued~

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5061 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-14 13:29:30 +00:00
elly1989@rocketmail.com
62c31d4e22 Moved triple-AI to the secrets panel (fun)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5046 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-12 16:38:40 +00:00
elly1989@rocketmail.com
03f0e24ca0 Moved the "spawn strike team" verb stuff into the secrets panel (fun).
Added a birthday cake to the bar for Pete's birthday *shhh*

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5045 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-12 16:21:00 +00:00
baloh.matevz
14403d15b3 - Spawning as a head of staff or AI will now display the following line, along with the standard hierarchy stuff: "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp."
- Trying to remove someone's jobban through 'show player panel' -> 'jobban' -> 'click on job' will still bring up the banning panel, with a note that you can't use the old panel, it will however now properly have the banned player's ckey inserted as the search criteria, instead of your ckey.
- Jump-to-mob now uses mob_list instead of sortmobs()

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5044 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-12 10:05:07 +00:00
elly1989@rocketmail.com
bebf4983f8 Removed the toggle_gravity_on() and toggle_gravity_off() verbs and moved them into a single toggle in the FUN section of the secrets panel.
Likewise, removed the spawn_xeno verb and made an equivalent bit of code in the FUN section of the secrets panel.
Fixed the create_xeno proc. It was supposed to ask you which type of alien to spawn but it was sending the popup to src, which should have been usr.
Create_xeno can now spawn queens and larva.
Create_xeno is fed a ckey (optional) rather than a ghost mob. Which will make it more versatile and reliable should clients log out during popups and such.

Created an client.is_afk(duration) proc. If the client has been inactive for duration frames (11 frames is roughly 1 second), it will return the number of frames it has been inactive. Otherwise it returns 0. If no duration value is given it defults to 3000 which is roughly 5 minutes. There's a bunch of code I need to replace with this which I will do after I've got the rest of the admin rank stuff finished as that takes priority.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5040 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-11 19:15:11 +00:00
elly1989@rocketmail.com
8e52e8cbdf Game Panel is now available to all admins regardless of rights (spawning from that panel requires +SPAWN, and changing game mode requires +ADMIN)
Player panel (for an individual mob) is available to all admins regardless of rights (like above, each link on the page has its own rights requirements)
Essentially, with no rights you can see these panels, but you cannot use most of the tools they link to. Additional rights increase your access to corresponding tools.

Removed some duplicate code in /datum/admins/Topic for subtle messages, traitor panel and a few others. There's a lot more to do in this regard but it can wait for now.

We're near the end of the disruption now. I sort of have a clear idea what I'm meant to be doing so work will speed up. Full documentation describing exactly what can and can't be done with each flag will be available soon.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5035 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-11 06:40:00 +00:00
baloh.matevz
2f57200e82 - Fixes the broken population logging
- The current, file-based ban system is now a legacy system, the use of which is strongly discouraged for servers, which are constantly online.
- Added a database-based banning system, with a new baning panel, accessible through the 'banning panel' verb. Servers, which use this new banning system, will get the new panel up even if they use the old 'unban panel' or 'display job bans' verbs. These remain there for legacy support purposes. (Panel screenshot below)
- The most notable benefits of the new system are the ability to add offline bans, meaning the person does not have to be connected for a ban to be applied to their name. The second benefit is the ability to look up all previous bans that the person had.
- The major disadvantage is the complete incompatibility between the old and new system, meaning you have to either do a lot of copy-pasting or playing around in code to sync the old system with the new one. Servers upgrading to this system might want to consider a purge of all bans, if they don't want to go through this. Due to the incompatibility, there are no transition tools provided. Please contact me (errorage/rageroro) in #coderbus for help in syncing your database. The /tg/ legacy and database systems have been synced.
- The server configuration defaults to use the legacy system, as the new one requires the database to be set up. Please hash BAN_LEGACY_SYSTEM in config.txt as explained, to use the new system. If the database connection fails, the server reverts to the legacy system.

If any bugs or errors appear with either the legacy or new ban system, please let me know ASAP. The same applies if there are any syncronization problems between the legacy and new system, resulting in banned people unbanned or unbanned people banned.

Panel screenshot:
http://www.kamletos.si/new%20ban%20panel2.PNG

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5034 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-11 05:39:09 +00:00
elly1989@rocketmail.com
b8cb37af2a Fixed the mob-spawning panel which is accessible via the game-panel. Credits to BurZeZ
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5033 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-10 21:26:27 +00:00
elly1989@rocketmail.com
35cac8aefc Moved one or two bits out of +FUN and into a +SPAWN flag. The spawn flag allows mob transformations, spawning of items etc.
Moved fun (admin-event stuff) up to badmin rank.
deadchat visibility defaults to on
removed update_admin()
fixed associate so it won't accidentally add people to the admins list multiple times.
toggling ooc on/off is now available to any admin regardless of rights.
mass deletion is now restricted to DEBUG or SERVER flags
ADMIN, SERVER, DEBUG can all use the delete verb

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5032 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-09 21:58:10 +00:00
baloh.matevz
c870d5e158 - Prayer visibility now starts on, as it should.
- Fixed pulse rifle, energy sword, blackhole and mob spawning
- Fixed 'reload admins' not properly updating the 'admins' list, which made adminwho fail, along with some other things.
- Fixed a bug, which prevented admin from even being loaded properly in some circumstances, in the database admin system.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5027 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-07 23:49:54 +00:00
baloh.matevz
073e168086 - Updated the new admin system to support the database.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4994 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-02 17:56:47 +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