Commit Graph

152 Commits

Author SHA1 Message Date
Miauw
3f53f6863c Moves up a */ to make respawn_character work a liiiitle bit better. 2014-11-09 15:02:32 +01:00
Miauw
f491d9dfe1 Fixes some AI traitorize runtimes. Fixed #4605 2014-11-09 14:51:26 +01:00
tkdrg
5019876316 Uses the machines list instead of world 2014-11-03 22:51:17 -03:00
tkdrg
ef2472f099 Replaces one world in the blank telecomms script adminverb with telecomms_list 2014-10-28 12:42:44 -03:00
tkdrg
5f1098dd3c Creates the "Reset Telecomms Scripts" adminverb 2014-10-27 18:29:54 -03:00
Incoming
31099161d9 Renames the proc 2014-10-15 16:38:41 -04:00
Incoming
54106349e1 Manage Free Slots
Converts the nearly useless List Free Slots command to Manage Free Slots

From here you can painlessly add and remove job slots to your hearts content because the HoP is Dead/Shit/AFK/In Hiding

It can't be used before round start to make rounds with only clowns because of jobs.txt being applied at round start. Alas.
2014-10-14 20:30:14 -04: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
ikarrus
9b8322c19d Shuttle Call/Recall Tracing in Announcements
- Emergency  shuttle call/recall announcements will say when a tracing attempt has been successful, as well as explicitly telling players how to view them
- Clarified language further on how emergency shuttle tracing is done
- Increased tracing success rate from 60% to 70%
- Removed a lot of duplicated code by moving all the priority_announce() calls to incall()
2014-09-13 12:50:38 -06:00
Firecage
6d259e10ec Spanclass fixes 2014-09-03 20:00:35 +02:00
ikarrus
2f65498aa7 Minor grammar correction for Centcom report names 2014-08-30 11:18:19 -06:00
Firecage
6c7af5eb32 SPANCLASSES!!!!! 2014-08-26 09:52:13 +02:00
ikarrus
0de9402a18 Made receiving and printing centcom reports a proc
Also changed a few "Cent. Com." strings to "Centcom"
2014-08-17 13:03:11 -06:00
paprka
b35cee5334 Removes extra periods from ban reasons 2014-07-17 17:51:20 -07:00
ikarrus
a48ba0d256 Priority Announcement Changes
-Centcom announcement proc merged with generic priority announcement proc
-Re-added the Captain Announces accompanied by a new pleasant sound, instead of the generic priority announcement
-Captain Announcements will automatically generate a newscaster article
-Priority announcements without any defined accompanying sound will play a generic "Attention" soundbyte as an audio cue
-Communications consoles will display who is currently logged in
2014-05-05 22:18:57 -06:00
MrPerson
6930283efc Merge branch 'master' of https://github.com/tgstation/-tg-station into qdel_r
Conflicts:
	code/game/gamemodes/changeling/changeling_mutations.dm
	code/game/gamemodes/changeling/changeling_powers.dm
	code/game/gamemodes/malfunction/Malf_Modules.dm
	code/game/objects/items/weapons/tanks/watertank.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/research/server.dm
2014-03-21 03:05:39 -07:00
Rockdtben
a034e41f25 Removing TLE comment stamps and useless comments 2014-03-13 08:25:28 -05:00
MrPerson
9eee3e5067 First pass at a qdel() garbage collection system for tgstation
Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.

New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.

ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
2014-02-23 14:55:12 -08:00
Miauw
9b8656247c u_equip is now called unEquip PANIC 2014-02-13 20:58:33 +01:00
Miauw
8c7ef19be6 Replaced before_take_item() and drop_from_inventory() with u_equip 2014-02-12 19:51:37 +01:00
Jordie0608
45ee53517a Outright removed toggle admin jump,spawn and revive buttons 2014-01-27 16:10:19 +11:00
Rockdtben
6bdb91a042 The admin tool "List Free Slots" popups now instead of flooding the chat window. 2013-11-07 08:43:19 -06:00
Ergovisavi
470341ecfd Made explosion arguements more readable for the ones with flame_range added to them
flame_range explosions no longer call fire_act() on mobs in the range, but instead spawn a hotspot on them.
2013-10-11 20:07:53 -07:00
Ergovisavi
7fd1465e17 Adds a new arg to explosion(), flame_range, for fiery explosions! Any mob in that range will be set on fire! Also creates some hotspots (mostly for ambience, won't generate them on existing space tiles) and changes the spawn explosion in the VV tab to let admins make fiery explosions.
Adds a cap for flame_range in global.dm
Added a flame_range for syndibombs, syndieminibombs, Wizard's fireball, fuel tank explosions, and meteors.

Adds firesuit level temperature protection to the wizard hardsuit for safety from your own fireballs setting you ablaze
Adds ExtinguishMob() for Ethereal Jaunt to make wizards a little less vulnerable to fire
2013-10-10 18:46:47 -07:00
Cheridan
4301afbc14 Merge pull request #1152 from Giacomand/removeprison
Removed unused prison shuttle code.
2013-08-14 22:08:48 -07:00
Giacomand
1a19dd6142 Merge pull request #1114 from Carn/data_records
Helper proc /proc/find_record(field, value, list/L)
2013-08-14 16:35:04 -07:00
Giacomand
d669aca5b6 * Removed unused prison shuttle code.
* Fixed an implant/prison computer runtime. Fixes Issue #1150.
2013-08-12 13:23:26 +01:00
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
Carnie
48cdc61bcf Merge pull request #1095 from Giacomand/ion_fix
Ion Law Announcement Fix
2013-08-10 23:35:12 -07:00
Giacomand
8d1e51dfda * Fixes the ion law verbs announcing twice or announcing when you didn't want it to.
* Cleaned up some code with it.
 * Small tweak to the job preference window size.
2013-08-09 01:45:14 +01: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
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
carnie
043028db83 Resolves #283
DNA modification uses normally distributed random numbers. Radiation strength dictates the standard deviation of the change in the hex character which is hit (higher output means greater chance for a large change) . Similarly, radiation duration dictates how likely we are to hit the hex-character we clicked on (longer duration means more likely to hit). Irradiation is strength*duration. All balancing is done via multiplier defines so you can rebalance it easily.

DNA blocks and structuring all use defines. Making modification/expansion easier. I'll likely expand this into a datum-based system to allow more interesting features, reduce code further and allow admins to interact with the way dna strings behave.

DNA strings can be spliced together using merge_text().
 e.g. string 1: "Hello World"
 string 2: "Seeya______"
 result: "Seeya World"
 This isn't used except for admin-spawnable SE injectors at the moment.

r_hair, g_hair, b_hair, r_facial, g_facial, b_facial, r_eyes, g_eyes, b_eyes were removed and made into 3 short hex-colors.

Skin tones now support colours other than shades of brown. I've had to restrict it heavily until other stuff is done. Skin tones include Albino Caucasian, Oriental, Mediterranean, etc.

Data disks and DNA injectors were reworked to use associative lists so transferring data is just a matter of doing list.Copy()

var/dna is now defined at /mob/living/carbon level. Only monkeys and humans may have dna currently. Support is there for all carbon-based lifeforms to have dna.

DNA modifier console has almost all controls on one screen.

UIs and UEs can be injected separately (appearance and name, respectively)

dna helper procs like ready_dna() and such were changed to make them more versatile. There is now a hardset_dna() proc as an alternative to ready_dna which can initialize dna with properties passed into it or update an existing dna string (useful for cloning and antag spawning)

Every block of SEs are in randomised positions.

Disabled automatic logging of world.log, as it produced undesirable behaviour.

Mr Muggles and God Emperor of Mankind disks removed.

Floor() removed. (it was completely uneccesary, that is what round() is).

Fixed spelling mistakes in modularchangling.dm (thanks tenebrosity)

Tanning removed from beaches (again)

Experimental: monkeys and humans do not have dna until first attempt to read dna (using check_dna_integrity(mob))
This is mainly due to the way everything is hardcoded into New().

Changelog.html updated
Signed-off-by: carnie <elly1989@rocketmail.com>
2013-04-24 09:37:30 +01: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
Cael Aislinn
bdfc088f91 Merge pull request #181 from Carn/Issue105
Partial solution to #105. Will fix a bunch of mislinks in admin toolpanels + PM system.
2013-04-02 19:05:47 -07:00
Pete Goodfellow
842d9028d3 Merge branch 'master' of github.com:tgstation/-tg-station
Conflicts:
	code/modules/mob/new_player/new_player.dm
2013-04-01 16:29:36 +01:00
Pete Goodfellow
6831ab046c Added a configuration option to force random names. This replaces the gameticker var/random_players. The 'Make everyone random' verb works as it did before. 2013-04-01 00:17:15 +01: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
5ca166cae0 Refactored underwear to use datum/sprite_accessory/underwear similar to hair and facial_hair.
People may select any underwear (regardless of gender) at a dresser, but not in preferences.
random_underwear(gender) will return a random pair of underwear suitable for your gender.
Removed an unused variable in sprite_accessory

The new_player preferences screen now randomizes character slots for which there is no data (so no more bald, fat, white guys in diapers greeting new players)
datum/preferences character settings are randomised at New().
replaced /datum/preferences/proc/randomize_appearance_for(human/H) with /datum/preferences/proc/random_character(), it does the same stuff without the copying to a mob. Basically, now when you want to make a random character you just do var/datum/preferences/A = new(); A.copy_to(human_mob), randomisation of appearance and name will already be done. Easy.

Reworked the savefile updating/versioning code to make it easier to work with. I've used it to update underwear preferences to the new system as an example.

Signed-off-by: carnie <elly1989@rocketmail.com>
2013-03-28 11:11:40 +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
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
elly1989@rocketmail.com
73b54b017b Removed mob/var/UI, it now uses client.prefs.UI_style
Removed var/constant/Pi It's already defined in setup.dm
Moved a bunch of global_lists to global_lists.dm
Fixed hair randomisation. (still bits to do)
Moved a lot of preferences_setup.dm stuff into __HELPERS/mobs.dm They'll be FAR more helpful as generic procs, rather than something tied to preferences.
Merged mob/var/nopush into status_flags with the CANPUSH flag
Merged mob/var/nodamage into status_flags with the GODMODE flag
Removed mob/var/be_syndicate and mob/var/be_random_name as they are not used.
Added /proc/ui_style2icon(ui_style) proc. It converts a string like "Midnight" into its corresponding dmi file. The code fore creating a new hud uses it.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5164 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-22 15:22:08 +00:00
elly1989@rocketmail.com
27a53e211b removed client/var/be_alien and client/var/be_pai, everything now uses client.prefs.be_special
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5126 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 18:35:14 +00:00
elly1989@rocketmail.com
14ed3f155b Mutes are now in datum/preferences. That means they are persistent! You can't avoid them by logging out you naughty little spammers.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5124 316c924e-a436-60f5-8080-3fe189b3f50e
2012-11-19 17:09:05 +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
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
elly1989@rocketmail.com
4d9876fd65 Fixes issues with pen bbcode. Replacetext did not work correctly after I changed text2list - (It was missing 'needles' at the beginning of 'haystacks').
>dd_replacetext and dd_replacetext_case are now replacetext and replacetextEx respectively.
>replacetext and replacetextEx works using strings only; it doesn't convert it into a list and then back into a string.

Fixes some dumb-dumbs in textlist and text2listEx
> "<" where there should be a "<="
> no else case for when the separator is longer than the text (causing empty lists to be returned)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4971 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-27 21:21:17 +00:00
giacomand@gmail.com
7d6fb8fd6a Commiting for Aranclanos.
http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=10189&p=143580&hilit=https%3A%2F%2Fwww.dropbox.com%2Fs%2Fcwflgm7793ts20s%2FBorgsForCasualsRELOADED.patch#p143580

-Fixed some ugly text in Ion laws "THE STATION IS [0x6006265] FETISHES...LAWS UPDATED".
-Fixed some typos on the Ion laws.
-When borgs are emagged, now they show their laws for themselves.
-When new laws are uploaded, the borg gets instantly the new laws, just like the AI, instead of the confusing message "Your AI has set your 'laws waiting' flag.". Remember this is a patch for casuals.
-The borgs gets the same message than the AI in Ion storms.
-Made the admin Ion storm show the "...LAWS UPDATED" text.
-Borgs get a different law 0 telling them to help their master.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4837 316c924e-a436-60f5-8080-3fe189b3f50e
2012-10-09 05:37:28 +00:00
elly1989@rocketmail.com
cc2c4de49b Merged var/muted_ic; var/muted_ooc; var/muted_deadchat; var/muted_pray; var/muted_adminhelp into var/muted as bitflags
Added a config option config.automute_on It toggles automuting.
Admins cannot be muted.
Made the proc/cmd_admin_mute code shorter.
Automuting defaults to off

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4758 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-25 21:23:02 +00:00
elly1989@rocketmail.com
9813d2bbec var/fakekey; var/ooccolor; var/sound_adminhelp moved from /client to /datum/admins. These settings will now persist through a round even through logouts.
var/stealth merged into var/fakekey as it was superfluous.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4753 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-25 13:09:43 +00:00