Commit Graph

289 Commits

Author SHA1 Message Date
Jordie
a28de54405 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-04 20:48:17 +01:00
81Denton
92a2f76e4f AI upgrade logging/hints (#41695)
* AI combat upgrade logging/notice

* hmm

* Update code/game/objects/items/robot/ai_upgrades.dm

noice

Co-Authored-By: 81Denton <32391752+81Denton@users.noreply.github.com>

* forgive me for I have web edited

removes space after <br>
2018-11-29 14:10:57 +01:00
81Denton
6877c7a609 Adds separate MMI/borg messages for damaged brains (#41306)
* Adds separate MMI/borg messages for damaged brains

* better switch toggle msg, M.brain?.damaged_brain

* ree

* thanks helen

* I hate Mondays

* Update code/modules/mob/living/brain/MMI.dm

Co-Authored-By: 81Denton <32391752+81Denton@users.noreply.github.com>

* condenses vars
2018-11-10 01:33:21 +01:00
AnturK
9d7e25f9b7 Adds old name tracking to player panel, cleans up some name assignments. 2018-10-28 19:16:13 +01:00
Jordan Brown
01938b081f Merge pull request #40953 from ShizCalev/mannitol-ghetto-surgery
Ghetto surgery can now damage brains. Mannitol can heal damaged brains.
2018-10-17 21:21:06 +01:00
Tlaltecuhtli
03b8e9142c borg upgrades tweak (spilt up of 40337) (#40479)
cl
tweak: borg upgrades price changes
tweak: mediborg chemical upgrades have been unified
/cl
changes:
borg rename: 35k metal -> 5k metal : fluff module
restart module: 60k metal ->20k metal : people just reconstruct the borg for free instead of resetting
vtec: 80k metal 6k glass 5k uranium -> 35k metal 12k 10k uranium: costs more uranium than metal 80k is like a whole fucking borg
disabler: 80k metal 500 diamond -> 20k metal 2k diamond : costs more diamonds instead of a whole borg of metal
soh: 250 gold 500 uranium -> 2k gold 1k uranium : those costs were not coherent with the rest
piercing syringe: 10k titanium 5k diamond -> 5k titanium 3k diamond : was really expensive for something thats pretty much useless unless you are traitor
defib: 15k metal 15k glass 10k silver 10k gold 5k titanium 5k diamond -> 8k metal 5k glass 4k silver 3k gold : that cost was shit for something you need to have if you dont want to be drags-the-bodies-to-cloning the lizard borg, also it reflects more the price of printing a defib
surgical processor : halfed prices, its a meh module just there for asimov abuse
trash bag : 10k metal 1.5k gold 250 uranum 1.5k plasma -> 2k gold 1k uranium: this pricing was pretty much random numbers put togheter, now its similar to the cost of a normal trashbag
mop: 10k metal 200 glass (????) 1k titanium -> 2k metal 2k glass : why the fuck does a mop cost titanium? now its similar to the cost of a normal mop
2018-10-16 06:37:58 +01:00
ShizCalev
deeef5d59c Removes tactical suicide borging (#40754)
* Removes tactical suicide borging

* correction
2018-10-15 20:49:56 +01:00
kevinz000
1f7a76ade0 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-10 23:21:27 +01:00
ShizCalev
5a29dc43e3 Replaces istypes with the proper tool_behaviour checks. (#40414) 2018-10-01 01:10:45 +01:00
ShizCalev
41b6c8e744 Fixes dropping cyborg self-repair not calling parent (#40279) 2018-09-15 21:57:25 +01:00
Garen Crownguard
f2cd8a131d screwdriver_act signal (#39877) 2018-08-27 10:56:40 +01:00
FrostyFridge
3f6574c2b2 Add the medical cyborg surgical processor upgrade (#39646)
Adds the Surgical Processor upgrade for medical cyborgs, available from exosuit
fabricators after 'Cyborg Utilities: Medical' is researched. This upgrade
allows medical cyborgs to scan surgery disks, or copy procedures from an
operating computer. The cyborg can then initiate scanned procedures. Cyborgs
can also now perform surgery steps that have no instrument requirement.

Medical cyborgs were generally unable to perform any advanced surgeries outside
of some specific circumstances. This update allows cyborgs to make use of the
advanced surgeries. Some advanced surgeries have steps that require a hand
without any tools; this update allows cyborgs to perform these steps as well.
Note that surgeries must be obtained through research or a disk somehow before
the cyborgs can scan them.
2018-08-18 23:21:40 +01:00
Patrick Chieppe
584ab92bc3 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 20:40:46 +01:00
bgobandit
43255f34bd Fix more spelling/grammar (#39450)
self explanatory
2018-07-30 00:19:01 +01:00
Trevor Serpas
6d395a672f Afterattack() Signal (#38606)
* adds signal and modifies each call of afterattack to call it's inherited proc

* uses new macro for sendsignal()

* map fuck

* skip precommithooks

* combine and negate 2 ifs
2018-07-07 07:01:19 +01:00
zxaber
9ee01bacb2 Allows empty borg shells to be disassembled. (#38639)
* Adds the ability to deconstruct empty cyborg shells.

* Update robot_parts.dm

* Able to directly swap cells

Added ability to change out power cells with a screwdriver.

* Update robot_parts.dm

* Removing unnecessary `src` prefixes from code.

* Update robot_parts.dm

* Moved to wrench_act and screwdriver_act overrides

I think I did this right

* Replaced screwdriver code

* Swapping out qdeleted for an if-not

* Adds a check for cell-less shells when MMI is added.

* Update robot_parts.dm

* Adds the ability to just remove the cell

Re-organized the screwdriver section as well, and added the ability to add a cell to a shell with no cell.

* Whoops

Copypaste error

* Changed the screwdriver section from nested if statements to use a function

Also removed the line that forced the naked endoskeleton out of your hand in the wrench section.
2018-07-03 18:16:25 +01:00
Dax Dupont
ba4af0846f anal 2018-06-28 21:28:30 +02:00
Dax Dupont
f9d586e7ad Wat zullen we drinken Zeven dagen lang Wat zullen we drinken, wat een dorst Wat zullen we drinken Zeven dagen lang Wat zullen we drinken, wat een dorst Er is genoeg voor iedereen Dus drinken we samen Sla het vat maar aan Ja drinken we samen, niet alleen Er is genoeg voor iedereen Dus drinken we samen Sla het vat maar aan Ja drinken we samen, niet alleen Dan zullen we werken Zeven dagen lang Dan zullen we werken, voor elkaar Dan zullen we werken Zeven dagen lang Ja zullen we werken, voor elkaar Dan is er werk voor iedereen Dus werken we samen Zeven dagen lang Ja werken we samen, niet alleen Dan is er werk voor iedereen Dus werken we samen Zeven dagen lang Ja werken we samen, niet alleen Er is genoeg voor iedereen Dus drinken we samen Sla het vat maar aan Ja drinken we samen, niet alleen Er is genoeg voor iedereen Dus drinken we samen Sla het vat maar aan Ja drinken we samen, niet alleen Eerst moeten we vechten Niemand weet hoe lang Eerst moeten we vechten, voor ons belang Eerst moeten we vechten Niemand weet hoe lang Eerst moeten we vechten, voor ons belang Voor het geluk van iedereen Dus vechten we samen Samen staan we sterk Ja vechten we samen, niet alleen Voor het geluk van iedereen Dus vechten we samen Samen staan we sterk Ja vechten we samen, niet alleen 2018-06-28 21:28:10 +02:00
Nich
6c879778b6 spellchecks tg whatever 2018-06-28 21:26:38 +02:00
Jordan Brown
1f0b362b18 Qdels queries, adds sleep safety checks, DBcore checks for leaks (#38363)
* Qdels all queries, adds sleep handling

* DB Core messages admins about undeleted queries

* Compile fixes. Adds missing set waitfor

* Remove world/New shennanigans. Add DBQuery/BlockingExecute()

* Less spammy notifications to admins about undeleted queries

* Increase dbcore fire time to 1 minute

* Upgrade undeleted query warning

* Better place of death

* Fix build

* Remove BlockingExecute, see BSQL PR for why

* Yep, missed that one.

* Psyche, that's the WRONG QUERY!!
2018-06-18 20:49:09 +01:00
oranges
424a65b3e6 Merge pull request #38360 from ShizCalev/key-cleanup
Cleans up some logging
2018-06-12 00:49:00 +01:00
vuonojenmustaturska
77410bd84b Move NODROP_1, DROPDEL_1, ABSTRACT_1 and NOBLUDGEON_1 to item_flags where they belong (#38171)
* (mostly) nodrop

* (mostly) dropdel

* (mostly) abstract

* nobludgeon

* things i missed

* forgot one

* unintended changes

* energy handcuffs
2018-06-01 15:48:10 +02:00
Firecage
eff981830c Adds module upgrades for the Janiborg (#38114)
* Adds upgrades for the Janiborg.

* Does the requested changes.
2018-05-31 02:09:38 +01:00
Iamgoofball
ec8822f9f0 Eat the ice cream (#38028)
* Eat the ice cream

* Update robot_items.dm

* Update robot_items.dm
2018-05-26 05:24:05 +01:00
ShizCalev
c32d567cb9 Makes more messages pronoun sensitive (#37582)
* Makes more messages pronoun sensitive

* Some cleanup

* more pronouns

* rever
2018-05-03 23:46:57 +01:00
ShizCalev
725aefce3e Fixes missing augmentation hands (#37373) 2018-04-27 08:42:57 +01:00
Fox McCloud
d42a67da02 Kills off /obj/item/device (#37297)
* Kills off /obj/item/device

* whoops

* whoops

* Fix
2018-04-23 14:01:33 +01:00
vuonojenmustaturska
3b0ee90cf8 Admin borg panel (#36990)
* borgpanel

* wip borg upgrades

* some more

* lockdown

* Update borgopanel.ract

* Update borgopanel.ract

* Update borgpanel.dm

* fuggin borg upgrades :DDD

* more compile, less whatever

* meaningless churn

* and we're done

* usr, vtec

* Update borgopanel.ract

* Update borgpanel.dm

* many squid are cool

* reviews

* coerce to client, much nicer this way

* add admin logging

* review stuff
2018-04-08 20:51:15 +02:00
Jordan Brown
b64a0b0dfd Merge pull request #36863 from AnturK/unconciousdefine
Prefixes apply_effect flags, fixes unconcious define conflict
2018-04-01 06:16:39 +01:00
AsV9
d338cac150 Merge remote-tracking branch 'tgstation/master'
Not sure if this worked. Used a wonky special snowflake strat to merge.
2018-03-24 08:57:13 +01:00
vuonojenmustaturska
9f99c0faaa borgmods 2018-02-18 09:04:11 -06:00
Dax Dupont
4c767ce101 Fixes extremely thicc robots (#35722)
* Fixes extremely fat robots

* grasp
2018-02-17 18:12:08 +02:00
Dax Dupont
eca04302ec Expand Cyborg (#34958)
* Expand Cyborg

* i ded pls nerf

* Oh sheet
2018-01-29 18:30:58 -05:00
vuonojenmustaturska
6406896df1 Replaces a bunch of obj vars (and emagged on machinery/items) with obj_flags (#34078)
* It works, but is it worth it?

* bitfield helpers take 1

* Would this work?

* remove dangling debug code

* rebase & fixes

* vv bitfield stuff, reading

* DNM oceans of shitcode DNM

* honk

* honk2

* plonk

* rebase & fix
2018-01-22 20:19:46 +01:00
ShizCalev
6179f74fb7 Fixes borg cell recharging runtime 2018-01-19 02:18:40 -05:00
ShizCalev
c4496dbd72 Consolidates bot assemblies under one parent 2018-01-07 13:43:46 -05:00
kevinz000
6ce550dadf Clownborgs (#33590) 2017-12-22 11:57:02 -05:00
coiax
f339b9f2c7 Lollipop dispensers can push lollipops into people's hands (#33419)
* Lollipop dispensers can push lollipops into people's hands

🆑 coiax
add: A lollipop dispenser in "dispense lollipops" mode can push the
lollipop straight into the targets hand, rather than getting it dirty on
the floor first.
/🆑

Also tidied up and around the robot_items.dm file.

This is a good idea because then you can give people lollipops as a
cyborg that has the lollipop dispenser module.

* Integers instead of numbers
2017-12-17 17:17:09 -05:00
Emmett Gaines
25080ff2c4 defines math (#33498) 2017-12-17 11:02:11 -05:00
vuonojenmustaturska
5233ec1f6a Finishes the forceMove port (#33519)
* a thing

* thingy 2: electric boogaloo

* Obligatory webeditor commit
2017-12-15 10:39:34 +13:00
Emmett Gaines
7c69cdcb8a Revert math (#33059)
* Revert "all this wrapping and it's not even christmas (#33035)"

This reverts commit faaf151580.

* Revert "fuck me for forgetting to graph this one"

This reverts commit 45d7acea2f.

* Revert "defines math"

This reverts commit 2817a1737b.
2017-11-23 20:59:52 -05:00
ninjanomnom
2817a1737b defines math 2017-11-22 17:36:58 -05:00
kevinz000
caa1e1f400 Massive research refactor; changes research system to techwebs; Decentralized research 2017-11-18 19:55:40 -08:00
Jordie
8b19b490d1 JSON feedback (#32188)
* wip

* wip2

* makes code actually compile on 511 + fixes

* versioning

* s

* adds python conversion script, schema change and removes 'force ' from item_used_for_combat

* fix to compile

* forgot to actually commit this
2017-11-17 02:43:12 -05:00
kevinz000
01a794b190 1# This is a combination of 2 commits. (#32276)
can no longer turn on projectile dampener with buckled mobs
2017-11-05 05:28:01 -05:00
AnturK
49f35a7147 Nerfs peaceborg chain bucklestun (#32251)
The definition of a trap option is that you don't know its a trap option until you use it. Obviously anyone who has tried it before realizes that they're a stunted joke but that doesn't make it any worse of a addition to the game.
2017-11-01 11:39:43 +13:00
Jordan Brown
677eefc462 Merge pull request #32211 from YPOQ/borgupgradefix
Fixes cyborg upgrades not applying to held items
2017-10-30 15:40:30 -04:00
YPO
097972ef79 Fixes cyborg upgrades not applying to held items 2017-10-28 23:10:03 -06:00
Emmett Gaines
825ab4def4 [512] The great \ref purge (#31824)
* The great \ref purge

* cleanup
2017-10-28 17:20:04 -04:00
Tad Hardesty
c1794bb402 Fix many instances of "the the"
All uses of "the [src]" have been fixed, as well as other bad string
interpolation directly adjacent to such uses.

In addition to its message, the circumstances under which the tracking
implant locator fails have been updated to use the correct define,
malfunctioning on CentCom rather than on the station.
2017-10-11 21:55:44 -07:00