Since the gamemode isn't wanted here, even just to maintain (and especially now that progression Traitors are being added which will break IAA even more), I'm gonna give my alternate idea to just remove IAA entirely.
This is also to help downstream, as any plan on just 'adding it downstream' is kinda screwed over by it TECHNICALLY still being upstream, and its code conflicting with my own, even if it is just broken and unmaintained.
What the title says. But why?
I generally have a rule when making a contribution, that is "don't make the game less fun"
I'm not salting, I didn't die to a swarmer.
... Yet that's the problem. Swarmers are the griefiest antag in the game, but when you complain that they're annoying or unfun, you're doomed to hear "lol they can't even hurt you though."
WELL THAT ACTUALLY MAKES THEM WORSE. I would rather die to a hundred xenos and space dragons than be forced to untie myself in maintenance for 45 seconds while the shuttle leaves.
Why It's Good For The Game
Unfun game modes should be removed from the game.
Being griefed by swarmers is annoying
Playing as a swarmer is not very exciting either. Click on iron.
lastly, because oranges authorized it
Changelog
cl
del: Removes swarmers! The griefiest, lowest fun value antagonist is removed from the game.
/cl
About The Pull Request
See title.
Fixes#62672
Why It's Good For The Game
Allows us to keep the excellent ban video while nullifying the issue raised in #62672
Changelog
cl
admin: The banning video is now shown before the ban appeals link, instead of after, to improve visibility of the ban appeals link.
/cl
Now a short autoplaying video is included, that will explain to the user why they are no longer able to access tgstation resources.
It may be suitable to host the video on tgstation's cdn instead
About The Pull Request
Rewrites the entire preferences menu in tgui. Rewrites the entire backend to be built upon datumized preferences, rather than constant additions to the preferences base datum.
Splits game preferences into its own window.
Antagonists are now split into their individual rulesets. You can now be a roundstart heretic without signing up for latejoin heretic, as an example.
This iteration matches parity, and provides very little new functionality, but adding anything new will be much easier.
Fixes#60823Fixes#28907Fixes#44887Fixes#59912Fixes#58458Fixes#59181
Major TODOs
Quirk icons, from @Fikou (with some slight adjustments from me)
Lore text, from @EOBGames (4/6, need moths and then ethereal lore from @AMonkeyThatCodes)
Heavy documentation on how one would add new preferences, species, jobs, etc
A lot of specialized testing so that people's real data don't get corrupted
Changelog
cl Mothblocks, Floyd on lots of the design
refactor: The preferences menu has been completely rewritten in tgui.
refactor: The "Stop Sounds" verb has been moved to OOC.
/cl
* Re-Adds Header Checkboxes
- Ban Panel categories can now be clicked to click all the checkboxes in their category
- Adds a new js method called header_click_all_checkboxes whichs clicks all the checkboxes whose class is the hidden checkbox's name
Re-introduces a function that was lost with #60578 (6c4134d1ea) , closes#60903 (Admins being unable to click on the ban category and check all subcheckboxes). The method was largely copied, but was changed to comply with the toggle_other_checkboxes() method introduced with the aforementioned PR by replacing a .checked assignment with a .click() call to ensure that duplicate entries are properly marked
Admins can now click categories to more easily ban people from all entries in that category. Demonstrated below to show that checkboxes are being toggled correctly in all relevant categories
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
This happened because clients are incredibly fickle and may disappear at any time.
In this case searching for the DB took long enough to cause this.
Improved a little code around it, in the process.
(It's more like the db sleeps, so byond has a chance to nuke the client datum. but this is good either way)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.
Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.
(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
This is needed for the rare case that the situation described in the ban turns out to be inaccurate, so future searches for the user in the ban db don't lead admins to the wrong opinion.
Creating a situation where the admin has to remember to edit the ban reason before unbanning them is kinda lame
I'd love to make it so only the reason is editable, but that is far too much work for too little benefit.
fixes#59424
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
* Case of lower
* More changes
* Ruins the nice 420 diff, brainfart when doing the second batch of conversions
* More changes
* Next batch. I think
* Converts even more paths
* Restarts bots
* Capital Free Zone
* Come on travis, do something
* Renames areas
* Bots, please stop dying
* Updates CONTRIBUTING.md and updates a few paths I missed.
* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
* basic antag items
hey
based
game is on
ree
e
brings back good sprites
eueuuee
eeeeeeeeeeeeeeeeeeee
more
tgui baby
FINALLY
e
Small changes
adds better point s
Finishing touch!
FINISHED
ANTAG FINISHED. FUCKING. FINALLY
grammer
E
E?
* rebuilt tgui
* gamemode fixes
* i love inconsistent var names
* sprootes
* ath review
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Automatic changelog compile [ci skip]
* a shit ton of changes
* Apply suggestions from code review
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* sprootes
* more changes ree
* Fixes and upgrades
* sprootes done
* dmdoc compliance
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* mewtewnew revieww ~~
* e
* Automatic changelog compile [ci skip]
* e
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* autodoc
* E
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* removed Destroy()
* * 0.5
* bugsquash
* e
* changes to ashlord's rite
* e
e
* e?
* the fuck
* adds station wide alerts for ascension events
* fixes an autodoc
* tgui
* e
e
* removes a redundant line of code
* sickly blade is now normal size item
* changes a line of code in flesh
* no revives for ghouls!
* uwu
* Update code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
* E
* E2
* Automatic changelog compile [ci skip]
* Makes eldritch cult into HERETICS
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* unfucks medallions code
* long live list loops
* E
* E
* i love my git crashing
* Magics
* E
* removes TRAIT_GHOUL since it was redundant
* Update code/modules/mob/living/carbon/inventory.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/inventory.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/human/species.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/human/species.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/carbon/human/human_update_icons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* fixies uwu
* hopefully i fixed all return ..()
* E
* EEEEEEE
* wormie now is refactored
* removes destroy
* Update code/modules/surgery/bodyparts/bodyparts.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Automatic changelog compile [ci skip]
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* E
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* E
* E?
* E
* one more
* k
* OH SHIT OH FUCK
* replaces ROLE_ECULT with ROLE_HERETIC and fixes preferences
* REE
* fleshy fixes
* fixes summonings
* REE
* texture fix
* fixes a stupid fucking runtime that i noticed coz i forgot people can be borged. FUCK
* grammer
* nullrods can now remove runes
* HOLY SHIT, HOTFIX NERF
* E
* E
* TEMPORARY SOLUTION TO MAKE HERETICS SPAWN NATURALLY
* Update code/modules/antagonists/eldritch_cult/eldritch_antag.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/eldritch_book.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/eldritch_effects.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* Update code/modules/antagonists/eldritch_cult/eldritch_items.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* SECOND TEMPORARY FIX
* fixes fixes fixes fixes
* i hope this no longer will qdel summons
* E
* please push this asap
* E
* buffs sickly blade to 17 damage and only allowes culties to use it
* Explanations uwu
* examine changes ree
* e
* E
* )
* E
* E
* Ash fix
* changes to mad touch
* replaces e_cult with heretics and fixes protect objective to suceed when someone suicides
* E
* makes worm code use COMSIG_MOVABLE_MOVED
* replaces bad var names
* makes eldritch knowledge an assoc list
* E
* Update code/modules/mob/living/simple_animal/eldritch_demons.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* what the fuck
* the fuck
* fixies
* EEE
* fixes
* e
* fixes
* mansus grasp slight buff
* changes overall changes
* E
* logging
* changes the eldritch armor into a nicer looking kryson robes
* tgui bundle
* QOL sprites and a spell to contract armsy
* SPRITES
* readds rust floors
* Fixes pointed out by anturk
* E
* E
* E
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Cleanup
* Fixes
* E
* EEEEEEEEEEE
* makes heretics a little bit more common
* Update code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
* EEE
* eee
* E
* E
* Init
* Makes shit more readable
* h
* e
* E
* wounds compatibility patch
* hnng
* rusty better sprite
* turn
* Apply suggestions from code review
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
* E
* further renames e
* E
* JS side
* changes reee
* e
* E
* yeesh
* e
* E
* pr
* e
* E
* changes re
* AAAAAAAAAAAAAA
* e
* antag huud
* e
* e
* hnnng
* hnng
* HNNNNG final patch - LAST TESTMERGABLE COMMIT
* HNNG NEVERMIND THIS IS THE LAST TESTMERGABLE COMMIT DONT LISTEN TO LIES BELOW
* e
* FINAL PATCH - MERGE READY
Adds defines, buffs blood siphon a bit so it can utilize wounds and replaces ROLE_CULTIST with ROLE_HERETIC
* forgot about a single debug line aaa
* hnnnhng
* hng
* a!
* aaa
* applies code review
* e
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
I tested with general logging on, these parameters were being passed as '' instead from DM's "" to NULL in sql.
i.e.
WHERE ('dave' IS NULL OR ckey = 'dave') AND
(NULL IS NULL OR a_ckey = NULL) AND
('' IS NULL OR ip = INET_ATON('')) AND
('' IS NULL OR computerid = '')
Haven't checked if this is happening elsewhere.
cl
refactor: BSQL has been replaced with rust-g, improving SQL reliability and safety.
/cl
Queries were parameterized as much as possible. Careful code read by someone else also versed in SQL would be a good idea. Things seemed fine spot-testing roundstart, library, bans, and polls, but more stress-testing may be useful.
Also updates rust-g to v0.4.5:
Improved Linux .so detection
Perlin noise functions
Also updates Travis script to bionic.
An almost complete rework of how creating polls, their data and voting on them is handled.
Instead of repeatedly querying for poll data, running polls are loaded at runtime into poll_question and poll_option datums that stores all the needed variables for both. This datum is then used for creating, editing and accessing poll data. The database is only contacted when saving changes or votes.
Creating polls and options is now done with a html window instead of a series of popups akin to how the banning panel works. The form data is parsed and error-checked before passing to be saved.
This is done in two stages, first time a poll's details are entered and it must be initialized (created as a datum) before options can be added and all of both are saved to the database. Instructions about how this work are shown on the poll creation window.
A new field for polls has been added, subtitles, which is text only shown when a poll is opened by a player instead of on the list of polls. Intended so the actual question text can be kept to only a name and important information about a poll goes in a subtitle.
All polls can now have revoting enabled on them.
Polls can have a starting datetime specified, this can be in the past but why would you do that?
Polls and options can be edited once created, excluding the type of a poll. Doing so will by default clear all existing poll votes. Votes can also be cleared by a button.
The handling of how votes are processed has been adapted for the datum system but is on the whole not functionally that different aside from poll validation not being roughly copypasted across each poll type's vote proc
All poll tables now have a deleted column for retaining 'deleted' data.
poll_question has also gained the columns created_datetime, subtitle, allow_revoting, their function explained above, and a change of idx_pquest_time_admin to idx_pquest_time_deleted_id.
A stored procedure set_poll_deleted has been added. This is called when setting a poll as deleted to avoid needing 4 separate queries from the server or one fairly long 4-way joined
Create Poll verb is renamed to Server Poll Management
* demos (ported from yogstation)
rustg update + write with no format
use external hook for logging
use proper log vars
fix + clarifying comment
don't start the log
release build of rust-g
fix something caught by the lint
Update code/__DEFINES/subsystems.dm
Co-Authored-By: Jordan Brown <Cyberboss@users.noreply.github.com>
Update code/controllers/subsystem/demo.dm
Co-Authored-By: JJRcop <jrubcop@gmail.com>
Update code/controllers/subsystem/demo.dm
Co-Authored-By: JJRcop <jrubcop@gmail.com>
moves hooks out of a dedicated file
len = 0 to Cut(), remove semicolons
untyped loop
* updated rust_g
* 513 updates
* Nanotrasen fires the Wave Motion Gun at the Clock Cult
* Fixes a random changelog appearing from the reebe void.
* Fixes a wrong type reference regarding the bronze sheets in the Lavaland Ruin for it.
* Fixes redundant cells after CC removal in ruin by populating them with varied ore chunks, or destruction clutter.
* why is it /obj/item/stack/sheet/metal but not /obj/item/stack/sheet/iron
* Fixes the lavaland ratvar ruin to have fluff variant structures of deleted shit it referenced instead what I thought was reasonable.
CID defaults to always checked.
Use IP and CID from last connection now defaults to enabled unless all the default checked values are provided.
Use IP and CID from last connection now only fills in checked values, rather then forcing both IP and CID.
Use IP and CID from last connection no longer triggers an error if the user can not be found, instead asking the banning admin if the want to continue (same behavior as when this happens without that option checked).
The main reason behind this is that your avg 1 to 2 day ban shouldn't impact everybody on the same network, especially when it comes to colleges and shared internet. The old system worked such that ip bans were only possible on perma server bans, this still gives full flexibility.
Fixes#42146
Fixes ban created notes being double escaped.
Fixes admin tickets not being resolved for a disconnected client when banned.
Re-adds ban reason to admin log for a ban as requested
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