Commit Graph

72 Commits

Author SHA1 Message Date
carnie ffa9bb51cd Helper proc /proc/find_record(field, value, list/L)
It will search list/L for a /datum/data/record with fields[field] == value, and return it.

This removes a vast amount of copypasta (there's still so much left in there though). It also removes all the locate(\ref[record]) I could find, which were normal used with topic(), meaning it was susceptible to abuse.

Secbots, ed209s and turrets are now smarter with their record-checks. They now prefer to use our face-name rather than id-name. ICly, this is the bot using facial recognition. This fixes an issue where it'd try to use the name variable which could be in the format "Unknown (as their id name)" when they were disfigured, etc. causing record-lookup to fail.

Additionally, these bots will treat those without a valid record in the security database, to be treated like criminals.
2013-08-11 12:49:55 +01:00
Cheridan 642194d4f3 Merge pull request #1082 from errorage/2013-08-07_clear_clients_from_lobby_at_round_end
Disconnects clients who have not joined the round before restarting
2013-08-09 13:31:13 -07:00
errorage c32f56e750 - When clients in the lobby are kicked at round end, only afk clients actually get kicked.
- The admins now have the ability to kick all or just afk clients from the lobby
- When admins use this action, a list of kicked clients is sent to admins and into the log.
- Added a confirmation message to the admin command.
2013-08-07 18:09:38 +02:00
carnie ada01c7e5f Reverting some accidental changes.
Medical consoles emp_act uses random_blood_type() random_name() etc, rather than hardcoded pick/rand.
2013-08-07 16:44:17 +01:00
errorage 134ba32236 - In an effort to decrease the number of unneeded client connections, I've made it so when the round ends, all the clients who are in the lobby get kicked before the restart. This is only effective when rounds end 'organically' (not when restart commands or votes are used, for example). The intention is to prevent people from leaving their computers on and connected indefinitely, because all clients contribute to the total. The assumption is that if you are in the lobby when the round ends, you have not participated in the previous round, meaning you are probably not actually present.
- Also added a button to the player panel, which allows admins to do the same thing. The admin's name is reported to all the kicked clients.
2013-08-07 03:15:44 +02:00
carnie 02be173c60 Renamed variables:
b_type to blood_type
h_color to hair_color
f_color to facial_hair_color
f_style to facial_hair_style
h_style to hair_style
2013-08-01 13:48:41 +01:00
Intigracy 293fc7ce6c Removed the check in jobbans that prevented admins from banning each other. Everything is already logged up the yinyang, admins are able to regular ban themselves, even perma, and sometimes an admin NEEDS to be jobbanned for something. 2013-07-27 03:30:33 -07:00
errorage 86a68cb55b - Expands the maximum number of admin permission flags you can have from 16 to 31.
To test: add these debug lines somewhere:

//START COPY PASTE

mob/verb/give_allrights()
	src.client.holder.rights = 393087

mob/verb/hasright()
	var/hi = input(src,"Choose a file to access:","Download",null) as null|num
	var/r = check_rights(hi, 1);
	world << "[r]"

mob/verb/checkrights()
	for(var/i = 0; i < 32; i++)
		var/n = 1 << i
		var/r = check_rights(n , 1);
		world << "has right 2^[i] = [n]? [r]"

//END COPY PASTE

Start the game, run 'give allrights', which doesn't give all rights, but some of the rights. 128 and 131072 are missing. Then you can either run 'hasright' to check whether you have the permissions that correspond to a user defined number, or you can run 'checkrights' to check for all 31 theoretical permissions.
2013-07-22 19:22:47 +02:00
errorage 5925d3a876 Added the ability to define the ip and computer id for a manual ban (in the banning panel). This is so mirroring bans or banning people who were not online during the round in progress does not require admins to spawn a mob, set their variables and then ban the mob.
If however an admin attempts to add a manual ban for a player who was present during the current round, a player who still has a mob somewhere in the game world, the proc will prioritize the mob's ip and computer id variables, not the things entered in the banning panel form.
2013-07-16 07:26:51 +02:00
KazeEspada b2b2705c58 Merge pull request #925 from Giacomand/blob_vamp
Blob Gamemode Revamp
Blob gamemode is back and better than ever.
The blob is selected from be_alien candidates and is controled like a real time strategy game.
2013-07-09 21:33:29 -07:00
Giacomand 33e8976274 Removed the nuke code. You cannot nuke the station anymore.
Added a Jump to Node power.
Cleaned up the code.
Changed some more values.
Added a blob_act() to camera.
Removed most "if(gamemode == "blob") checks to stop people from using it to metagame.
Removed cells exploding when being blob_act()'d
2013-07-10 01:49:06 +01:00
Giacomand 6b39c6b1f9 Blob revamp!
Re-introduced the concept of a player controlling the blob in an RTS fashion, expanding the blob and building structures such as nodes and factories.

All blobs will try to find ghosts, with the BE_ALIEN flag, to be the blob overmind. Even random event blobs will try to get players to play as the overmind.

Added a /mob/camera that is now being used by the AI eye and the blob overmind. It is a mob that isn't dead but acts as a camera for the player, to be controlled by something like the AI or the blob.

There are now a resource currency for the blob to spend it's points on blob expansion and upgrades.

Added a small blob_act to mechs.

Made all camera mobs max invisibility. Because of this I removed the AI best friend button as it would be not working.

Blob mode will send a normal intercept report.
2013-07-06 21:19:33 +01:00
Intigracy 2b0c4dd187 Cheridan broke my git the first time, here's try #2!
Makes the "coder secrets" in secrets panel become general secrets for all admins. Adding myself to admins.txt for test server purposes, in case I ever forget to change it again.

Reasons:
It's very helpful to use the admin log for a quick glance to see who spawned the mateba for the clown, rather than open the serverlog to check.

Plus I see no reason why it should be restricted to coders, considering it's not really at all able to affect the game by admins seeing it.

Testing force overwrite

Cheridan broke my git the first time, here's try #2!

Makes the "coder secrets" in secrets panel become general secrets for all admins. Adding myself to admins.txt for test server purposes, in case I ever forget to change it again.

Reasons:
It's very helpful to use the admin log for a quick glance to see who spawned the mateba for the clown, rather than open the serverlog to check.

Plus I see no reason why it should be restricted to coders, considering it's not really at all able to affect the game by admins seeing it.
2013-07-03 22:20:15 -07:00
Giacomand 06e7f401cd Merge branch 'master' of https://github.com/Giacomand/-tg-station into tator_typos
Conflicts:
	code/modules/admin/topic.dm
2013-06-20 21:37:30 +01:00
Giacomand 58b63f33f2 * Fixed spelling typos. Tratior -> Traitor 2013-06-20 21:29:14 +01:00
Cheridan 5a83f85c83 Merge pull request #804 from Ikarrus/tplog
Traitor Panel Improvements
2013-06-19 21:08:14 -07:00
Ikarrus 9b395d65ca Admins get notified when someone replies to a syndicate transmission. 2013-06-17 22:46:16 -06:00
Ikarrus 26becb3937 Traitor Panel Improvements
-Added logging for admins editing objectives
-Added logging for admins adding new antagonists
-Changed the antag role assignment buttons to something more appropriate for the game modes. Will now tell you if someone is loyal (implanted).
-Added a isloyal() proc to check if a mob is loyalty implanted.
-Made the headrev message more noticeable
2013-06-17 22:39:32 -06:00
Cael Aislinn cc66ec46db Merge pull request #552 from dumpdavidson/monkeyize
Monkey - Human transformation
2013-06-10 02:27:52 -07:00
AndroidSFV af667da901 Makes the admin "Show Crew Manifest" verb inside the secrets window actually show the Crew Manifest, instead of the old dumb way of just looking at whatever ID human players are holding. 2013-06-02 19:22:47 -05:00
dumpdavidson 53529ea8f9 Changes behind the scene stuff regarding transformation from monkey to human.
-Adds a humanize() proc
-Changes monkeyize() proc to a child of mob/living/carbon (not implemented or tested with anything beside humans, though)
-Adds various options for monkeyize and humanize as binary flags
-Removed all instances of monkey transformation code being copy pasted (dna, changeling, adminverbs) and replaced them with monkeyize(). This fixed various issues with admin-verbs where mobs would ghost after transformation due to invalid use of transfer_to (mind transfer proc).

-Humans will now retain their old name if turned into a monkey and back provided their UE are unchanged
-Transformation from monkey into human will now deal the same amount of damage as human to monkey.

Signed-off-by: dumpdavidson <gtb.schmidt@gmail.com>
2013-05-10 17:23:20 +02:00
AndroidSFV 9063eaf9f4 -Makes the Energetic Flux event admin trigger-able via the secrets panel. 2013-04-23 12:15:26 -05:00
Pete Goodfellow 976e1f0136 Fixed 'break all lights' not breaking all (or any) lights 2013-04-18 19:58:44 +01:00
Cael Aislinn de4a906c25 Merge pull request #329 from Carn/Issue304
Resolves Issue #304
2013-04-08 00:28:50 -07:00
carnie 6a98fc89d0 >datum/event and datum/event_control were renamed to datum/round_event and datum/round_event_control. This is because datum/event was already used by a different/more-general event queue system (used primarily on mechas)
Removed overriding of event values via feeding in an associative list into datum/round_event/New(). Instead you can do basic initializations (i.e. feed it constants) by doing new /datum/round_event{variablename=5;}(). This method is handled well by the compiler (it's the same method the maps use), so it will detect unrecognized variablenames etc.
More complex initializations for post setup() stuff can be done by accessing variables directly Event.variablename = whatever;
round_events now have a processing variable, which effectively pauses them.
2013-04-08 07:42:46 +01:00
errorage 3da9741500 Update to latest version of tgstation + resolves a conflict 2013-04-05 16:02:02 +02:00
errorage 912815f1d1 Admin bans
- Adds two new types of bans: admin tempbans and admin permabans. These ban types are in reaction to the rising number of banworthy admin issues. The original intent was to make admins unbannable ingame, so players could not spoof admin computer ids to get admins banned, with the assumption that admin issues will be rare and a big deal when they happen. They have however started becoming ever more common, so some tools are required to allow for admin self-policing.
- Each admin can have a maximum of one active admin ban (temporary or permanent) logged to their name. This is to prevent rogue admins from just banning everyone who could ban them. These bans are also not intended to be 'permanent-permanent'. They are intended to serve as a temporary fix, to get rid of rogue admins until the server host or another admin with rdp access (or +PERMISSIONS if you use DB_Admin) can deal with the rogue admin's removal. Once that is done, a normal permaban or tempban can be applied, and the admin permaban/tempban removed, restoring the banning admin's 1 allowed admin ban.
- Admin bans are considered a big deal, so they also send a message to irc, when they are applied.
- NOTE: Admin bans only check the connecting person's ckey. The risk of computer id spoofing still exists, so it's better not to have them check ips and computer ids. The admin abilities are given based on ckey anyway, so a ckey ban should be enough in most cases.

Other changes to bans
- Added a few variables to the funciton that adds a ban: maxadminbanchec (which is for admin bans and checks how many bans the admin can still apply); announceinirc and blockselfban (which prevents admins from applying the ban type on themselves. Currently applied for permaban, tempban, admin permaban, admin tempban)
- Changed the appearance ban database constant from APPEARANCE_BAN to APPEARANCE_PERMABAN, to make it more compatible with the ban log at http://www.ss13.eu/tgdb/banoverview.php
- Added a missing sanity check to topic.dm for appearance bans
- Renamed appearance bans to identity bans in admin panels (as per Pete's request)
2013-04-03 23:28:24 +02:00
carnie 8c489f662b Muting now uses uses a ckey in its href rather than a mob reference.
You can now mute admins.
2013-03-31 23:06:56 +01:00
carnie 66e6a2dbf0 Mobs each now have a unique tag which are not after they are deleted (unlike byond's \ref[] macro)
Since tag replaces the output of the \ref[] macro, this means that menus which use hrefs with \ref[mob] will no longer be able to accidentally link to the wrong mob.
The tags are of the form "mob_475" etc

Admin_pms now use ckey instead of client-reference. This means that PMs will no longer accidentally get sent to the wrong people.
There is no risk of players using hrefs to send adminhelps to known admin ckeys to see if they are online (as I'd already changed the PM system to not tell non-admin users whom received their message).

key_name() now accepts text input (key or ckey) - it is slightly more efficient to feed it a client or mob however!
This functionality is provided to allow certain admintools to become more robust when we want to talk about e.g. a griefer whom has just DCed whom no-longer has a corpse (no client/mob...just a ckey reference).
key_name() now reports DCed players properly.
2013-03-31 11:26:22 +01:00
Pete Goodfellow fe3cc313f6 Adds name/appearance bans. They're based on jobban code, but prevent the banned player from using their preset names and appearances.
Also corrects a spelling error (Indentity) in the char prefs panel.
2013-03-28 15:51:35 +00:00
MrPerson a88b30ab31 Removed mind.original
All usage of it on silicons is replaced by is_special_character()
is_special_character moved from admin.dm to mob_helpers.dm
Also fixed a runtime having to do with objectives.
2013-03-11 05:40:21 -07:00
Pete Goodfellow b02c459505 Adding google code commits r5836 to r5849. RIP in peace google code. 2013-03-11 04:26:54 +00:00
petethegoat@gmail.com 97e0f9b6f7 Smallified Centcomm and removed a large amount of the unused machines. This affects most stuff on z2.
Removed the administration shuttle and the stupid alien dinghy.
Removed the beach (hey, it's an away mission now).

Removed syndicate deathsquads on account of them being stupid and redundant.
Temporarily removed regular deathsquads- search for "DEATH SQUADS" to find the locations to uncomment. Additional code is in unused/specops.dm and unused/specops_shuttle.dm.

Added a single tile fake window for unsim windows.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5831 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-09 04:35:37 +00:00
elly1989@rocketmail.com 8849cd16d3 Replaced get_apprentice_candidates() with get_candidates(BE_WIZARD)
/proc/testing("message") will now only print message to world.log if #define TESTING is uncommented. This will allow coders to make in-depth debug messages for confusing bits of code. Said debug messages would not be visible on th elive server, but coders can enable them by compiling with #define TESTING uncommented. This should make debugging ikky horrible code easier (assuming people bother to use testing())

Temporarily removed the weightless (aka gravity failure) event, due to people hating it. ;(

Replaced references to KILL with PROCESS_KILL (I didn't realise I had already defined something like that). Setup.dm and global.dm are rather cluttered. I will be cleaning them up and will remove a few unused defines like #define KILL in my next commit.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5822 316c924e-a436-60f5-8080-3fe189b3f50e
2013-03-08 17:16:29 +00:00
d_h2005@yahoo.com 7effacfcad Committing for Summoner: Fixes issue 1217 - xenos being unable to hiss.
Readds ghostblob verbs.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5787 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-26 03:23:48 +00:00
johnsonmt88@gmail.com 69b7e1e384 Updated config/rules.html to our new server rules. Fixes issue 1346.
Admin rejuvinate now clears the mob's reagent's list meaning that mobs who died due to toxins in their bloodstream wont just fall over dead after being revived again. Fixes issue 1338.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5785 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-26 01:09:48 +00:00
johnsonmt88@gmail.com 8d0e094460 A little bit of admin button cleanup from the Secrets Panel.
Renamed "Toggle station artificial gravity" to "Trigger a gravity-failure event" to better describe what the button does.

Removed the following buttons:
- Make all items look like guns
- Japanese Animes Mode (Resolves issue 1024.)
- Remove 'internal' clothing
- Remove ALL clothing
- Remove firesuits, grilles and pods

- Toggle Prison Shuttle Status(Use with S/R)
- Send Prison Shuttle
- Return Prison Shuttle
- Warp all Players to Prison

- Ghost mode

The first five are just plain dumb, made worse by the fact that they apparently haven't worked in ages.

The next four, prison station buttons, are being removed because we have no prison station!

Ghost mode was removed for being horribly coded, laggy and has the potential to break some of our other code.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5758 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-22 01:31:54 +00:00
giacomand@gmail.com 78abe5bfda - The user wasn't being put into the arguments of the proc, which allows admins to create their own disesases. I put the argument back. Fixes Issue 1312
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5753 316c924e-a436-60f5-8080-3fe189b3f50e
2013-02-21 13:46:03 +00:00
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