Commit Graph

71 Commits

Author SHA1 Message Date
AnturK
a31c460dc0 Moves achievements from Hub to DB. (#47617)
Drops byond hub support and adds score and top 50 browsers.

Requires DB changes and manual creation of migration script if we want to keep old achievements so no random merges please.
2019-11-26 20:35:28 +13:00
Qustinnus
8a01398814 Adds achievement datums (#47058)
* First step

* achievements part 1

* epic

* done

* epic

* removes test datums

* adds minecraft achievement

* asss

* ass 2

* ass

* fix

* UPGRADE

* back-end partially

* back-end

* woops

* epic

* linted

* Achievements (#19)

* initialize SSachievements lists

* achievement ui actually tries to load

* witty commit description

* menu

* done

* done

* jesus christ

* ok linter

* Update code/datums/achievements/_achievement_data.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>

* Update _achievement_data.dm

* Update misc_achievements.dm

* Update achievements.dm

* Update

* And a space, goddamit!

* Rebuild tgui

* woops

* bruh moemnet

* ok conflicts

* finally
2019-10-26 05:57:42 -07:00
Qustinnus
b021210a2f [READY] Adds a basic skill framework to Physiology. (Only applied to mining) (#46913)
* levels

* mining

* ore exp

* fixes

* epic

* Update code/game/turfs/simulated/minerals.dm

Co-Authored-By: moo <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>

* fixes message

* dumb

* shreet

* epic

* fix

* ass

* scrape

* fixes bugs

* fixes

* reset

* test

* ??

* ok bye

* fix

* Adds skills

* skill
2019-10-18 19:59:35 -04:00
tralezab
347a52eb52 Chat Subsystem ported from TerraGov-Marine-Corps (#45354)
* chat subsystem v0.1

* removes old tabulator

* updates the check on to_chat

* SSchat now initializes
2019-07-25 16:23:05 +12:00
Qustinnus
b33d1c49a3 [READY] Floydmats (Datum materials) & custom toolboxes (#45118)
* Initial work

* more

* ass

* wsedfwedff

* asss

* test

* stuff

* fuck

* sss

a

* kms

* asdadwedwdfwefwef

* start

* test

* dwwdew

* ewefwfef

* Redemption machine (#8)

* Redemption machine

* Removes debug messages

* changes

* fuckmyshitup

* coin mint works with new material shenanigans (#10)

* Auto stash before merge of "materials" and "origin/materials"

* woops

* furnace (#11)

* autolathe manufacturing of toolboxes

* eggs in a basket

* some small changes

* matcolors

* documentation

* more documentation and effects

* done

* Color man bad (#12)

* fixes designs

* ass

* more fixes

* fuck me

* firestacks adder

* epic fixes

* fixes designs

* DONE DIDDILY DOO

* removes category macro

* ch-ch-ch-changes

* fixes some stuff

* Fixes display of ore values (#9)

* Redemption machine

* Removes debug messages

* Re-adds value display

* Replaces the fire stacking component with an element instead (#13)

* fixes examine

* fixes ligma bugs

* double ligma boofus

* fix

* misses some defines

* fixes ORM

* Update code/datums/components/material_container.dm

Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>

* fixes

* Makes glass objects weaker (#14)

* Makes glass objects weaker

* uses correct proc

* fixes shit

* honk honk

* better

* oh shit oh fuck

* fixes

* fuck ORMs

* fixes the biogen

* documentation

* ass (#15)

* component

* changes

* ass

* ass

* doc

* Auto stash before merge of "materials-plasmacomponent" and "origin/materials-plasmacomponent"

* fixes rounding

* fixed
2019-07-24 11:27:01 -04:00
oranges
800f24393d Convert some code docs into the auto doc format (#45101)
* Document datum, area,atom and some of the mob code

* Update

* Documented mob_helpers poorly

* Brief treatise on mob movement iself

* sdfasdf

* Add title to treaties

* Move readme file for say

* more say stuff for mobs

* Document login and status procs

* Add some goddan links like a boss

* Document some atom vars
2019-07-11 11:39:56 -04:00
Nick
8f8dde46b8 Adds the feeedback column to admin (#45025)
* Adds the feeedback column to `admin`

* edited changelog message for clarity

* increments db minor version define like you're meant to nednerd
2019-07-08 22:20:52 +10:00
AffectedArc07
c4e75bc40b [READY] SSdiscord and Round Notifications (#44231)
* Notify System

* V2

* Adds a hint

* Stoned fixes round 1

* Use grammar wells I can

* This didnt work

* I wish you could test on TGS without committing

* Jordie fixes round 1

* oops

* This took way longer than it should have taken

* Adds in endnotify for serverops

* Spacing
2019-06-30 00:43:25 +10:00
AnturK
d81ff09046 Atmos adjacency subsystem revival (#43447)
This improves init times and makes explosions and other shit that modifies a bunch of turfs faster by saving a proccall and potentially not doing the same work more than once.

cl Naksu
code: Turf adjacency list updates are now handled by a subsystem queue
/cl
2019-04-24 21:21:25 +12:00
MrStonedOne
2e757683ab Database backed stickybans
Supports disabling stickybans for a round, exempting a key from matching a stickyban, and it now also detects rogue stickybans before anybody currently connected even gets disconnected. (new matches trigger a 5 second sleep and abort enforcement if enough other new matches happen in that timeframe)
2019-03-16 00:23:37 -07:00
ShizCalev
17d9930ae9 Raises SSOutputs init priority (#42679)
Fixes #42676

Having it so low was causing runtimes and travis failures since Atom init's were trying to pull datums from SSOutputs before it had even initialized. Moved it up just above SSAtoms

Also increased the define number range a bit (no change in behavior) so we don't have to adjust 20~ lines every time something gets added/changed.
2019-02-06 10:53:05 +13:00
Militaires
cecf676684 [Ready] Outputs datum (#41535)
Idea and instructions by @Razharas, many thanks.

This PR only implements the framework required to catalog as well as play the sounds. Their to_chat text, and icons (if any) are not included, are to be pushed in a separate PR.

This PR does not remove the old playsound_local system, it is kept for the sake of not necessitating a direct changeover of every single playsound in the code, which will surely cause a lot of merge conflicts. It does however, replace bike horns' and toy nukes' means of playback to this datum, purely as proof of concept.

Playsound_local may remain in the code to support playback of admin-uploaded sounds that do not have an inherent datum. Playsound will likely be renamed to something else in the next PR to reflect its new, more universal function. We will see.

New process for adding sounds:

    Create a new datum/outputs subtype.
    If you wish, write down some supporting text; this gives further meaning to the sound.
    Add multiple sounds to the sounds list, and weight them as you wish. (New)
    Add a sound icon if you wish, it defaults to a generic sound circle anyways though.
    playsound(/datum/outputs/new_subtype, receiver), and it will deliver, icon, sound, and text to the receiver.

Maintaining implication is that from now on playsound should only be processing datum/outputs

This pr intends to gut to_chats that are added alongside playsounds in the code.
This pr eliminates the need to initialize sounds in a list so that you can weight them or have the game play them randomly from the list.

Sound Rings
Currently, only mobs with the audiolocation var may view them. Sound icons have an alpha that depends on the volume of the sound, louder sounds create a more opaque image

Sound rings are completely modular and may be changed to any image.

In addition to renaming playsound to reflect its new function. I intend to give blind people sound icons at the cost of their small view, but that is for another PR.

cl Basilman
refactor: refactored how sounds are stored and played
add: Added sound rings and supporting text
/cl
2019-02-04 10:25:48 +13:00
Menshin
58f7fa6fa4 Requested changes : unnecessary check removed, consistent procs arguments on overriding. 2019-01-21 21:51:53 +01:00
Menshin
5127c72ea3 * Added an option to transfer (and update) source overlays on an alternate appearance image
* Fixed a missing Alien Queen action icon (switch size)
2019-01-20 18:37:08 +01:00
Jack Edge
5d50181514 Renames SSsqueak to SSminor_mapping 2019-01-04 21:22:51 +00: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
oranges
0ba40ee17d Merge pull request #40417 from tgstation/MrStonedOne-patch-1
Makes timer watchdog logic Fitter, Happier, More Productive
2018-09-28 09:29:14 +12:00
Emmett Gaines
31914a594e Componentizes orbiting (#40433)
cl ninjanomnom
fix: Orbiting is a little more aggressive about staying in orbit. The wisp as a result now correctly follows you over shuttle moves.
/cl

Goodbye SSorbit you ticking piece of shit

This also gives update_sight a signal so wisp code isn't hardcoded into it.
2018-09-25 18:23:27 +12:00
Iamgoofball
f735a7d34d [READY][PAID CODE] economy PR (#40312)
With the power of CAPITALISM AND ECONOMY, you too could be This Guy.
2018-09-23 02:50:51 -04:00
Kyle Spier-Swenson
c434a51d09 Remove now unused define. 2018-09-22 12:52:44 -07:00
Jordan Brown
bd7c22dda9 Moves TgsInitializationsComplete call to immediately after world/New() (#39771)
* Moves TgsInitializationsComplete call to immediately after world/New()

* Subsystem PreInit data directory audit

* world/New data directory audit

* Needful here too

* Remove SS_NO_INIT from SStitle

* Don't create banlist.bdb for SQL banning

* Stop creating legacy notes file

* Moves iconCache from data to tmp
2018-09-15 21:34:14 +12:00
Tad Hardesty
00f61ac0aa Remove SSminimap (#39459)
Return of #37112.

@Carbonhell from Hippie reported an SSminimap crash on 512.1440 due to accidentally leaving the config on.

Nothing uses this subsystem, its maps look terrible, and it still after all this time is prone to crashes. If someone actually wants to start using these maps again they can just add the SS back in when they do that.
2018-09-05 23:15:29 +12:00
Emmett Gaines
ca23b93bc3 Standardized vis_contents overlay system + better computer glow (#39973) 2018-08-30 03:22:32 +03: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
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
ninjanomnom
d32d2869c0 Adds looping timers
and a requested binary search insert macro
2018-07-12 20:23:56 -04:00
oranges
29da5a1914 Refactors how overlays handle the compile step (#38002)
Robustin says:

The very heart of our overlay code, a single line that basically boiled
down to overlays = new_overlays, was the cause of so much overlay lag.
Human overlay code was by far the biggest culprit. Most objects have 0-2
overlays but humans are marching around with 20+ most of the time and
the current system was spending a LOT of effort comparing 20+ image with
20+ other images and then apparently rendering them all anyway. Human
overlays are at least 10x the cost of any other overlay process and on a
busy server the overlay compiling was 2x the cost of any other system.

I compared the cost of overlay changes by picking up/dropping a PDA in
the dorms 250 times, with a 50% chance to use our current overlay
compiler and a 50% chance to use a "direct addition/removal (+=, -=)
approach:
CURRENT         1120ms  133     (avg:8.4210529327392578)
SCRAPS  6ms     112     (avg:0.0535714291036129)

Now this PR makes our whole overlay subsystem use that approach for
overlay compiling and the early results look incredible. The best part
is this is just the START of improvements. Humans benefits the most
because their icon system was already designed for small, incremental
overlay updates. By moving other code from "Cut everything, then put it
all back" to only updating the necessary overlays (cough, APC's), we can
see similar improvements.

oranges says:
I've picked up this PR because robustin vanished, but I do see the value
in the approach, only things I added were the checks for the overlay
list len changing

I also retabbed the entire file because I am a brainlet and did it
without thinking
2018-05-31 03:39:28 +03:00
vuonojenmustaturska
4f0b0b7ec1 Replaces /atom.initialized and .admin_spawned with flags (#37981)
kill .initialized and .admin_spawned from /atom
2018-05-24 02:20:50 -07:00
Tad Hardesty
139a5d9cd7 Migrate goonchat pings to a subsystem 2018-05-19 16:44:23 -07:00
Jordie
37854a5489 Splits up round table initialize, start, end and shutdown (#37665)
For planned change to how TGS initializes server instances ahead of time so rounds aren't tracked as being far longer than they really would be. Similarly end time split for a more accurate round duration.
2018-05-15 19:11:39 +12:00
Jordie
69cdd4f269 Adds role time log table and triggers (#37763)
* adds role time log table and triggers

* typo

* whoops also typo here
2018-05-09 17:54:39 +10:00
Xhuis
6c6ca28ed2 not allowed to use quirks unless you code them 2018-05-03 12:29:10 -04:00
oranges
4b455e82ca Merge pull request #37267 from Jordie0608/iwasgoingtolaughatcitrusfordoingthisbutthenimadethesamemistake
Adds log and management tabs to permissions panel
2018-04-28 13:25:56 +12:00
vuonojenmustaturska
640f2cf693 Adds a stationloving component to replace a couple of flags and SSinbounds with (#37436)
* station lovin' happened so fast

* Update stationloving.dm

* less qdel memes

* imbue soul signal

* rename imbue soul signal

* dupemode

* henk

* Update atoms_movable.dm

* Update nuclearbomb.dm

* Update nuclearbomb.dm
2018-04-27 14:35:53 +02:00
pigeons
6135ec864f Refactors bitflag macro values into bitshifts (#37234)
* Refactors bitflag values into bitshifts

* minor formatting edits

* Unbitshifts a macro set that skipped 3 for whatever reason
2018-04-19 18:36:35 -04:00
Jordie0608
b304c760ae adds log and management tabs to permissions panel 2018-04-17 21:26:24 +10:00
kevinz000
fe5fdec776 [READY] Refactors wet floors to a component (#36130)
* Wet Floor components

* No more turf wet slide.
2018-03-17 11:26:09 +13:00
ACCount
1f5b59190d NTNet airlocks (#35947)
* Standardizes access checks

* Makes SS Networks init before SS Atoms to prevent NTNet interfaces from initializing before them

* Adds passkey support to NTNet packets

* Adds NTNet support to airlocks, makes door remote use NTNet

* Access levels given by jobs are now shuffled

* Access code improvements

* Adds IC card readers

* Fixes a delay issue with opening/closing airlocks with NTNet or signalers

* code review memes

* Renames plaintext_passkey to encrypted_passkey

* death by thousand nitpicks
2018-03-08 18:39:17 -05:00
kevinz000
4cf3c7cd2c Adjusts fire priorities of flightpacks, research, networks, and fields. (#36129)
* Fire priorities

* research lower not higher

* Don't need to keep timing if it's automatically compensating for missed ticks.

* Spelling

* spelling
2018-03-05 00:25:03 -05:00
Ashe Higgs
ab9e2e8902 Adds minor roundstart traits! (ala CDDA, etc.) (#35440)
* Roundstart traits

* Unspaghettifies night vision

* Fuck everything

* Issues patch
2018-03-02 13:39:44 +13:00
Jordie
23a45889ed Modernizes SQL admin loading (#35264)
* updates sqladmins with excluded flags and tempminning

* rank, editing and permission protections; json backup

* fixes

* reverted the wrong file

* fix slidecolor cascading and disabled switches not being sent in form

* removes debug uncommenting

* whoops this too

* commas fix + versions for changelog entry headers since 3.0

* actually account for can_edit_flags and use of @ with - or *

* fixes and rearrangement of admin > localhost > autoadmin precedence

* in case you want to not have autologin autoadmins
2018-03-02 13:38:26 +13:00
arsserpentarium
5d11121c14 [READY]Astar improvement (#34713)
Improvements to A* via using bitflags to find directions and caching already checked directions so we don't recheck them.
2018-02-22 10:16:38 +13:00
Cyberboss
95b9b07024 Moves garbage up in the init order 2018-02-15 09:31:42 -05:00
ninjanomnom
53ffc71655 make fire priority values defines 2018-01-17 02:57:14 -05:00
Kyle Spier-Swenson
fa136e71f4 Revert "Merge pull request #33537 from ninjanomnom/priority-defines" (#34528)
This reverts commit 0244b61886, reversing
changes made to 5d07df08ea.
2018-01-16 20:04:35 -05:00
Jordan Brown
70809e5bf2 Updates TIMER_UNIQUE documentation (#34328) 2018-01-13 21:22:51 -02:00
Jordan Brown
dadfe03421 Cleans up __compile_options.dm 2018-01-09 10:17:19 -05:00
Emmett Gaines
4ec09a0c19 Re-Support old hotkey mode behaviour (#33460)
* supports old hotkey mode behavior

* testmerge fixes
2017-12-17 15:35:47 +13:00
ninjanomnom
a65248928b defines all subsystem priority values 2017-12-15 15:16:31 -05:00