Commit Graph

872 Commits

Author SHA1 Message Date
MacHac
203cac22ff Bank cards can now talk again. (#42849)
* recursive_loc_check now returns the appropriate atom.

* Added a preference to disable bank card chatting.

* Converted spaces to tabs, collapsed conditionals

* Update code/modules/economy/account.dm

Co-Authored-By: MacHac <piheads@gmail.com>

* Added the pref to the game prefs screen.
2019-02-25 15:07:34 -05:00
ShizCalev
98fd2f6b8d Fixes bad default ethereal preference color (#42756)
* Fixes bad default ethereal preference color

* Fix
2019-02-14 21:15:33 +11:00
YoYoBatty
c33235f108 Fixes an undeleted sql query (#42703)
* Fixes an undeleted sql query

* ARE YOU SURE ABOUT THAT
2019-02-09 21:52:10 +11:00
Jack Edge
5f3be2a50a Merge branch 'master' into seperate-job-files 2019-02-01 08:37:19 +00:00
nichlas0010
3ec4eb619f [s] disables the Middle Mouse Button exploit (#42594)
* disables the MMB exploit

* Adds a config option to set a minimum build, with the recommended minimum build for 512 users being 1421

* readds the post-block detection, and changes MMB -> Middle Mouse Button

* Makes it the standard, I guess

Co-Authored-By: nichlas0010 <nichlas00100@gmail.com>

* Update client_procs.dm
2019-01-30 11:07:45 -05:00
Jack Edge
9740ebb7ad Jobs code is in seperate files
🆑 coiax
code: Jobe code has been moved into seperate files. There should be no
change in behaviour.
/🆑

Every time I've ever gone into job code, this has annoyed me so much.
Some jobs have seperate files, some do not. So I put them in seperate
files, which I thought was a simple job. I removed some comments in the
process.

But it turns out the display order on the job preference screen was
literally determined by the ordering of the datums in the source files.
So I needed to add a way to order it. Now you can reorder the jobs by
changing the values of the defines.
2019-01-26 20:54:13 +00:00
kevinz000
620db42963 Refactors the Preferences window to use appearances (#41978)
Instead of using expensive getFlatIcon() calls, character previews are now shown using appearance clones in a second map window.

Its creating a secondary map and adding mut_appearances as screen objs on that map.

There are 1 set of dummy objects per client, it also only creates them while the preview window is open and garbage collects them when it's closed.

Because it creates the MA from the main preview dummy mob, the dummy mob's appearance remains a seperate object and they don't affect each other
2018-12-30 00:11:26 +13:00
Kyle Spier-Swenson
d0c14d850d Fix cid randomizer note repeating more often then it should
The expire_timestamp checks were always failing because `null` is not higher than `now()`
2018-12-26 17:00:30 -08:00
Carbonhell
449bd89c9e Adds the system discussed in the felinid poll, to allow for people with a felinid character to not be reset to human 2018-12-18 01:20:12 +01:00
Qustinnus
14bd2ef2eb [Ready]You can now select what your pills will look like when making pills from the Chem Master (#41825)
cl Floyd/Qustinnus, paid for by Kryson
add: You can now select what your pills will look like when making pills from the Chem Master
/cl

we had 21 pill sprites and used 1. waste. now you can pick from our list of 21 and it'll show you beforehand what they look like

== Original commit names==

* pillshere

* names for fruit-kun

* they do

* they do

* done

* thanks mr mrdoombringer

* reeling it in

* Revert "reeling it in"

This reverts commit 2b795a8baf5eec89fdc1e6b6a6ef9d36276c2e62.

* [maximum peepee]

* u got a boyfriend

i bet he ddoesnt kiss ya

* redpilled

* adds random pills

* boom

* mrdoombringer is fat
2018-12-16 12:57:36 +13:00
Time-Green
29ecfa47bf [READY] Goon Genetics (#41258)
GENETICS

    The random hexadecimal rng game has been replaced with gene sequencing from goon.

    Adds mutation activators and mutators

    You can now store mutations

    Everyone now has their own set of unique mutations

    Limited mutations per person to 8 (including one always being monkey)

    Adds race specific mutations (See fire breathing for lizads)

    You can inspect discovered mutations, undiscovered mutations use an alias to recognize them by

    Adds a sequence analyzer. Can be used to scan someones genes sequence. Useful for determing what mutations they can safely have and or collecting data for very difficult sequences

    Adds mutation combining. It's currently only RADIOACTIVE + STRONG = HULK (So yes you will now need 2 mutations for to get hulk)

    Adds several other mutations. Telepathy, firebreath, glowy, radioactive and strength

cl Time-Green
add: Goon genetics!
add: More mutations! Fire breath for lizards! Radioactive! Telepathy! Glowy! Strength, though its cosmetic and should be combined with radioactivity instead! Fiery sweat!
add: Adds void magnet mutation by @tralezab !
/cl
2018-12-09 23:26:04 +13:00
moo
b0073fddb8 Merge pull request #41754 from coiax/always-in-the-way
Adds Physically Obstructive quirk
2018-12-06 12:06:03 -05:00
Jordie
8a66665e95 Ban system and interface update (#41176)
Spiritual successor and extension to #17798, an almost entire rebuild of the SQL ban system backend and interface.
Bantypes are removed per #8584 and #6174. All bans are now 'role bans', server bans are when a ban's role is server. Admin bans are a column, meaning it's possible to ban admins from jobs.
Bans now have only an expiry datetime, duration is calculated from this when queried.
unbanned column is removed as it's superfluous, checking unban status is now done through checking unban_datetime. unban_round_id column added. Each ip and computerid columns rearranged so ip is always first, like in other tables. Bans now permit a null ckey, ip and computerid.

Ban checking is split into two procs now is_banned_from() does a check if a ckey is banned from one or more roles and returns true or false. This effectively replaces jobban_isbanned() used in simple if() statements. If connected a client's ban cache is checked rather than querying the DB. This makes it possible for a client connected to two or more servers to ignore any bans made on one server until their ban cache is rebuilt on the others. Could be avoided with cross-server calls to update ban caches or just the removal of the ban cache but as is I've done neither since I think it's enough of an edge case to not be worth it.
The second proc is is_banned_from_with_details(), this queries the DB for a role ban on a player's ckey, ip or CID and returns the details. This replaces direct queries in IsBanned.dm and the preferences menu.

The legacy ban system is removed.

The interfaces for banning, unbanning and editing bans have been remade to require less clicking and easier simultaneous operations. The banning and jobban panel are combined. They also store player connection details when opened so a client disconnecting no longer stops a ban being placed.

New banning panel:
Key, IP and CID can all be toggled to allow excluding them from a ban.
Checking Use IP and CID from last connection lets you enter only a ckey and have the DB fill these fields in for you, if possible.
Temporary bans have a drop-menu which lets you select between seconds, minutes, hours, days, weeks, months and years so you don't need to calculate how many minutes a long ban would be. The ban is still converted into minutes on the DB however.
Checking any of the head roles will check both of the boxes for you.
The red role box indicates there is already a ban on that role for this ckey. You can apply additional role bans to stack them.

New unbanning panel:
Unbanning panel is now separate from the banning panel but otherwise functionally the same.

Ban editing panel:
Actually just a modified banning panel, all the features from it work the same here.
You can now edit almost all parameters of a ban instead of just the reason.
You can't edit severity as it's not really part of the ban.
The panels have been tested but I've not been able to get my local server to be accessible so ban functionality isn't properly confirmed. Plenty of testing will be required as I'd rather not break bans.



cl
admin: Ban interface rework. The banning and unbanning panels have received a new design which is easier to use and allows multiple role bans to be made at once.
prefix: Ban search and unbanning moved to unbanning panel, which is now a separate panel to the old banning panel.
/cl
2018-12-05 08:48:37 +13:00
Jack Edge
64e0cfd4e9 Traits are now sorted by positive,negative,neutral and then by name 2018-12-02 23:51:41 +00:00
Mickyan
6b30b578bb Makes the quirk menu look less cluttered (#41684)
* quirk menu format

* brain damage
2018-11-28 22:43:03 -05:00
Qustinnus
b9f5dbac6b Adds a new race: Ethereal (also adds wrappers for nutrition adjustment) (#40995)
cl Qustinnus / Floyd / Ethereal sprites by Space, is that it? / Alerts and food sprites by MrDroppodBringer
add: Adds Ethereal; a race which lives off of electricity and shines bright. If they are healthy they shine a bright green light, and the more damaged they are, the less they shine and the greyer they become. Their punches do burn damage and they are weak to blunt attacks!
They dont need to eat normal food and dont have nutrition, Instead they gain charge by going into borg rechargers, eating ethereal food or doign specific interactions.
refactor: all nutrition changes now go through a proc so we can override behavior
/cl

Adds Ethereal. A race which is essentialy inspired by Zoltan but then with different mechanics to make it fit with SS13 more. I'm trying to stay away from making them actually provide power but the change from nutrition to electricity seemed kind of fun.

They have the following specifications:

    They are walking lights; and shine bright and green if healthy, and get greyer and darker the more damaged they are. When dead they are just a grey unlit corpse.
    They do burn punch damage instead of blunt.
    They are weaker to blunt; especially when low on charge
    They have charge instead of nutrition. Charge is gained by some interactions or by going into a borg charger. or eating new ethereal food.
    They are slightly stronger to shock damage, and gain charge from it a bit; however, it is still deadly to them and thus they aren't free insulated gloves.
2018-11-29 10:09:56 +13:00
k-k-karma
35054db279 Fix colorooc checking for R_ADMIN and byond (#41463)
* Update ooc.dm

* Update ooc.dm
2018-11-14 05:44:03 -05:00
Jordan Brown
fb0b3a19f0 Merge pull request #41144 2018-10-28 14:09:53 -04:00
Militaires
970964ccab [READY] THE LONG AWAITED BLINDNESS QUIRK PR (#41130)
* THE LONG AWAITED BLINDNESS QUIRK PR

* quirk blacklist system

* done

* im dumb

* im rarted

rarted
2018-10-27 15:13:49 -04:00
AnturK
9306d01f6f Adds old name tracking to player panel, cleans up some name assignments. 2018-10-25 20:39:51 +02:00
ShizCalev
c12012c3ad Admin prefs stuff (#41041)
fixes #41106 since it'll have it's own fucking location.

cl ShizCalev
add: Admins can now personalize their asay message color on servers with the feature enabled.
tweak: Moved some admin only preference verbs out of the Preferences tab and to a new admin preferences tab to help unclutter it / prevent accidental toggling of fun things.
/cl

Note that the start of the admin message will still use the default formatting just so it can be quickly recognized as an admin message and not an OOC one.
2018-10-25 11:43:30 +13:00
Jordan Brown
3d7fe20f72 Merge pull request #40997 from ShizCalev/suicide-roles
Adds a config option to automatically reopen job positions of folks who suicide at roundstart
2018-10-21 03:02:15 -04:00
MrDoomBringer
703a365aec Various code improvements (#40932)
* adsf

* asdf

* take these

* Further cleanup to windoor code
2018-10-21 03:01:02 -04:00
ShizCalev
1f5e451a7e Jobbans now use DisplayTimeText (#41025)
Forgot these were separate.
2018-10-20 11:36:27 -07:00
ShizCalev
964f3865f9 Traits -> Quirks correction (#41010) 2018-10-19 22:16:34 -07:00
ShizCalev
b3e4cc3dc2 Automatically reopens position slots of mobs who suicide at roundstart 2018-10-17 19:57:15 -04:00
ShizCalev
3787eda76a Adds AI core screen selection to character preferences. (#40761)
* Adds AI core screen selection to preferences.

* fallback
2018-10-16 11:24:20 +02:00
ShizCalev
f7fcc4e929 Removes tactical suicide borging (#40754)
* Removes tactical suicide borging

* correction
2018-10-15 22:51:22 +03:00
ShizCalev
e852aad5de Adds radio silencing admin preference to admin preferences (#40827) 2018-10-12 04:25:02 -04:00
kevinz000
3e7184c975 Combat/Stun (slip) overhaul staging, mobility flags, adds crawling (#39967)
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.

Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove

cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
2018-10-11 11:22:21 +13:00
ShizCalev
6dd8b8e5ca Fixes default religion preference runtime 2018-10-03 16:11:24 -04:00
AnturK
25d86fc660 Fix for part of client drops. Maybe. (#40455)
* Fix for part of client drops. Maybe.

* Whoops.

* Oh it's a verb.
2018-09-30 23:09:04 +03:00
MrDoomBringer
c7ef142616 [DOCUMENTED AND READY TO MINGLE](EPIC MEME VIDEO INSIDE!) NEW COOL ADMIN TOOL: ADVANCED HIGH DEFINITION SUPPLYPOD SUMMONING (also supplypod refactor) (PLEASE UPTHUMB) (#39936)
MrDoomBringer

admin: Admins can now spawn things in ICly (as well as do a bunch of other cool new stuff) using the Config/Launch Supplypod verb!

code: also supplypods have been refactored
2018-09-21 08:59:52 +12:00
Fluffy Sensation
9605695596 mannequin fix for lizard people (#40308)
* mannequin fix for lizard people

Just a small sequence problem with the race default features being loaded after setting them and tail not being set to update.

* Mannequin Fix for Lizard People

Just a small sequence problem with the race default features being loaded after setting them and tail not being set to update.

This would lead to the mannequin just having a smooth tail and no spines the default setting for a lizard tail.
2018-09-17 20:25:26 -04:00
Crazy Lemon
6a93ce9d7f Ports paradise's modular buildmode (#40105)
* Ports paradise's modular buildmode

* Axes logout callback of buildmode

* AnturK's changes

- Code formatting
- Gives mob to throw args
- Selection overlays are on ABOVE_LIGHTING_PLANE to be visible on space

Other:
- Doubleclicks of observers and AI no longer "double-tap" click
intercepts
2018-09-13 10:48:37 +02:00
Jordie0608
d5c42bc79c Merge branch 'master' of https://github.com/tgstation/tgstation into onedayillmakeeveryquerylongenoughtowrapontothenextline 2018-08-26 20:53:05 +10:00
CitrusGender
bb2c82375e Add Note severity and changes UI of administrative notes (#39808)
* Adds note_severity and updates dbconfig. New SQL stuff too.

* whoops please don't hack into my database >:^(

* UI change, changed how it's stored in the DB, removed some queries when it returns, changed stuff to key.

* Update sql_message_system.dm

* this was not defined

* random indent

* wait how did this get here

* okay enough web edits I promise

* just kidding I got u

* Update common.css

* Added buttons, changed UI again, standardized the inputs, added severity for appearance bans, fed the dog

* forgot about the banning panel

* added an asset cache

* corrects asset datum var name
2018-08-26 20:23:29 +10:00
Jordie0608
3f881722e8 adds query safety for getting ckeys not in player table 2018-08-26 01:45:25 +10:00
Tad Hardesty
f3130df9f8 Copy spritesheet files to the cache rather than persisting them (#39802) 2018-08-22 08:28:50 +02:00
Aranclanos
24d3207421 Fixes invalid name error showing up when cancelling the input (#39781)
The 'invalid name' message won't appear now if the user cancels it when
changing his name on the character setup window
2018-08-19 15:01:08 -07:00
Jordan Brown
4325bbff8d Merge pull request #39672 from zaracka/emote-and-suicide-restraint-checks
improves emote and suicide restraint checks
2018-08-18 12:03:48 -04:00
Jordan Brown
77c4f0078e Fix undeleted query (#39688) 2018-08-14 00:06:32 +03:00
zaracka
527034df51 improves suicide restraint checks
gives SOFT_CRIT stat check a to_chat message
grammatically corrects UNCONSCIOUS to_chat message
gives stun check a to_chat message
swaps canmove for IsStun and IsKnockdown
2018-08-12 16:36:22 -04:00
Patrick Chieppe
2c8248575a Logging system refactor and improvement (#39521)
* Refactor several log lines to use datum_info_line and atom_loc_line

* Add default return strings from datum_info_line and atom_loc_line

* Add parentheses around atom_loc_line data

* Change more logs to use atom_loc_line

* Add check in atom_loc_line for turfs to avoid calling get_turf on them

* Re-add removed 'at'

* Replace datum_info_line with key_name and atom_loc_line with loc_name

* Refactor logging functions

* Avoid double-logging self-interactions

* Fallback to simple stringification if all else fails in key_name()

* Rewrite muscle spasm logging to use log_message

* Standardize logging of martial arts

* Tweak individual logging panel look

* Fix individual logging panel source

* When I typed || I really meant &&

* Fix Telecomms logging always showing client logs in the panel

* Reverts addition of buggy ownership log to panel

* Remove colon

* Fix missing log_directed_talk tag

* Add warning for missing type in log_direted_talk

* Change warnings to stack_traces

* Add square brackets around fallthrough key_name() case to help parsing

* Allow atom arguments/src in log_*() functions

* Change log_combat call with null argument to log_message

* Change mecha types' log_message() arguments to match atom and mob version

* Add key_name() case for atoms

* Fix resist_grab() unsetting pulledby before log_combat gets a chance to use it

* Fix log_globally logic

* Add logging for hitting objects with items

* Move log_combat() to atoms.dm

* Use utility functions for object stringification in log_combat()

* Use utility functions for object stringification in log_combat()

* Add missing logs for interacting with display cases

* Rewrite log_combat() comment

* Add missing space in log_combat()

* Add logging for hitting grilles barehanded

* Add missing ..()
2018-08-12 21:41:09 +02:00
XDTM
b9445db807 Advanced surgeries are directly downloaded from the computers instead of using disks (#39451)
Removes needless back-and-forth with surgery disks, making advanced surgery a
bit less annoying to set up. Disks still work to install surgeries locally,
although the only disk currently obtainable is the traitor brainwashing disk.
2018-08-11 16:06:28 -07:00
Jordie
31f020f3cc Add expiration time for admin messages (#39502)
* add expiration time for messages

* typo

* fix

* src to usr

* allows removing expiry from existing messages

* cancel button
2018-08-12 06:31:14 +10:00
Jordie
0d7ef3ed65 Key instead of ckey for user facing logs and ui (#39009)
* converts to using key instead of ckey for user facing logs and ui

* more key_name for airlock wires

* futureproofing check for if key changes

* --onlyckeymatch script argument and fail/success counter

* fix
2018-08-11 02:15:50 +10:00
AnturK
fbb5377ea8 Simple zombie for WJ (#39563) 2018-08-10 00:11:03 -07:00
kevinz000
5f4b418eaa Movespeed Modification System (#39181)
In preparation of pixel movement, I want to refactor our slowdown system to something more modular, and something that doesn't require /quite/ as many proccalls/calculations a tick. The way this works is intended to only have things recalculate when it's necessary, rather than calling it every move.
However, I've left movement_delay() in, as without completely redoing a lot of code it's not /quite/ ready at this point to tear it out completely, but I'm hoping everything can be transitioned over to this system later.
2018-08-09 16:55:15 -04:00
kevinz000
48ece11504 Felinid/catpeople are now their own human subspecies (#39513)
* Catpeople are nyow a species

* Fixes a runtime

* Fixes the issues with being forced ears when you chose none

* Neko --> Felinid

* P2

* Update

* Working this time I promise
2018-08-08 20:56:46 +03:00