About The Pull Request
dreamseeker_2020-06-01_03-34-53.png
A while ago I read a book about people and robots and emotions, Alone Together by Sherry Turkle, and there's one passage that talks about people's reactions to robots simulating distress, specifically with how Furbies cry when you hold them upside down.
A person is asked to invert three creatures: a Barbie doll, a Furby, and a biological gerbil. [Freedom] Baird's question is simple: "How long can you hold the object upside down before your emotions make you turn it back?"
People are surprised by how upset they get in this theater of distress. And then they get upset that they are upset. They often try to reassure themselves, saying things like, “Chill, chill, it’s only a toy!” They are experiencing something new: you can feel bad about yourself for how you behave with a computer program. Adults come to the upside-down test knowing two things: the Furby is a machine and they are not torturers. By the end, with a whimpering Furby in tow, they are on new ethical terrain.
Ethics memes aside, the idea off people being caught off guard at their guilt for causing harm to inanimate objects is really funny to me, and feels extra relevant to SS13. Considering people already regularly get in fights and maim each other over harming station pets, I picture this being a great source of arguments and fights ICly over what torturing a cute lil' medbot says about you.
tl;dr this PR lets you tip over medbots which prevents them from moving or healing, and they'll slowly get more and more distressed and desperate asking for help from people around them. After a few minutes, if no one helps right them, they'll manage to right themselves up and snitch on whoever tipped them over to medical so the psychologist can keep an eye on them.
dreamseeker_2020-06-01_03-48-25.png
Why It's Good For The Game
Gives the psychologist more ammo to call people crazy, gives bored assistants another way to seek attention, provides source of minor IC conflict
Changelog
🆑 Ryll/Shaps
add: You can now tip over medbots!
/🆑
I'd like to get voicelines for these as well, but I wasn't sure of a good TTS generator, and also wanted to see if people think this is worth doing before devoting too much time to it.
About The Pull Request
Medbots now only heal brute unless they are built with a special medkit. Thanks to tlal for the simpler alternative.
Brute kits heal 10% more brute than normal medbots.
Advanced kits can be used to build pre-nerf variants of the medbots (they heal all damage types). What they heal each iteration is random though (if you could be treated for brute/tox, you may get tox healed first).
This is specific to the craftable medbots, derelict medbots and beserk medbots will heal "normally" (see above since order has been randomized).
Why It's Good For The Game
Makes the bots hyperspecified to a function which is in line with how other bots function without having to revamp how people use the medbot.
Changelog
🆑 Cobby
balance: craftable medbots now only heal brute unless they are built with specialized medkits.
balance: medbots built with the brute medkit heal 10% more
balance: medbots built with the advance medkit heal all damage types
/🆑
About The Pull Request
This is a three-part PR:
Firstly, it fixes bugs for hygienebot construction. There were two present that mostly cancelled each other out: first, temporarilyRemoveItemFromInventory expects that the item passed to it will be deleted shortly after. It removes the item from mob's hands but keeps loc in the mob. Hygienebots are using a stack in their construction, so the assumption was not correct. The tubing stack appeared deleted (it was actually hidden). Second, do_after was written wrongly and would allow people to build hygienebots without consuming any tubing, if not for the first bug removing it. Their sprites were also moved to other bots.
Secondly, I added a proximity sensor into construction. I know bots are powered by magic and coder tears, but building it out of two metal sheets, a hole, and a tube is ridiculous even for those standards. Also literally every single bot uses proximity sensors. This change will make them less spammable, because I've seen upwards of 10 being build for the funzies.
Thirdly, I nerfed the hygienebots themselves. First, they no longer start slipping everything in their path when they're chasing someone for 5 seconds. This is stupid, no other bot is as disruptive as that, it doesn't make sense to give them slipping everything in their path as a part of normal operation. Combined with hygienebot spam, this was just shitty all-around. They still slip the tile they clean, but no more than that. Second, I made them less spammy; instead of a flat 60% chance to yell at people, it slowly increases to that number. I removed the vasectomy line (WTF?). Finally, they will now drop their target if it gets too far; previously they'd chase it forever.
Fixes#50159#50191 - not fully fixed
Fixes#50339
Why It's Good For The Game
It requires about 0.7 brain cells and autolathe access to make slipper go brr, and there's no abundance of greyshirts in bloody shoes running around and turning station's hallways into a mass slip'n'slide.
Changelog
🆑
fix: Hygienebot construction has been fixed.
balance: Hygienebots now require a proximity sensor between welding and tubing.
balance: Hygienebots no longer slip their path while chasing someone.
balance: Hygienebots are less spammy.
/🆑
* aaaaaaaaaaa
you ever notice how people sometimes put song lyrics in their discord statuses? what's the deal with that?
* phew
i mean let's all admit nobody would have noticed anyway
* turns out i didn't really change this proc at all
there wasn't much to fix
* fuck
oops
About The Pull Request
Re-PR of #51027 due to a git hiccup.
Adds tarot cards, for business and pleasure. The tarot deck consists of 78 cards, split into 56 Minor Arcana cards (each suit consists of 10 number cards, and 4 face cards) and 22 Major Arcana cards. The deck has new art:
minorarcana
majorarcana
Special thanks to Fikou for deciding which jobs should correspond to each of the Major Arcana.
Why It's Good For The Game
It's a fun distraction from the dull humdrum of station life, and opens up some good RP opportunities.
Changelog
cl Inept
add: The Nanotrasen Entertainment Division has released a new product: Tarot cards! They're available from the Fun vendor for all your divination needs.
/cl
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.
* Fixes grabs being impossible to escape, at the expense of making it easier to escape a grab. Damage inflicted by resisting increased to compensate.
* Upped the time between resists a bit
* Revamp the player ignore system
* Move a variable definition out of a loop
* Replace a |= with +=
* Improve some code
* Fix some code
Co-authored-by: Local <none>
* tgdb
* tgdb
* Auto stash before cherry pick of "balance changes, enables burn surgery, various body improvements"
* moves unnecessary list out of client
* describes a var
* corrects
* 10K hours
60,000 minutes
hahah
sure if you want a trailing newline i can do that
default cloak gets default skill
lazy list and no equip good
necessary ig
Update code/datums/skills/_skill.dm
Co-Authored-By: nemvar <47324920+nemvar@users.noreply.github.com>
Update code/datums/skills/gaming.dm
Co-Authored-By: Angust <46400996+Angustmeta@users.noreply.github.com>
WIP PDA skill monitor program
hacky fixes till i refactor skills
refactors skills a bit, adds admin skill edit menu
If you have a failing, it's that you're always demanding perfection
...IF you have a failing
i think that's it for the admin skill manger
appeases lord flord
bruh
level names
FUCK!!
unga
Update code/modules/vehicles/vehicle_key.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/topic.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/skill_panel.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Update code/modules/admin/skill_panel.dm
Co-authored-by: Rohesie <rohesie@gmail.com>
Apply suggestions from code review
frick
Co-authored-by: Rohesie <rohesie@gmail.com>
EOL and dumb spaces
more rohsie bait
tgui: Query Windows Registry for BYOND cache directory
hell yeah brother
update tgui and dmi
CLRF and bat file
typo ig
* tgui and new janicloak that i accdiently changed on another branch
* jani
* gamer cloak
* trim trailing whitespace
* tgui
* bruh
* variable renaming
* necropolis chest changes, concussive gauntlets
* fixes bad things
* h
* ah yes, the "get banned" grenade as lavaland loot
* better code
* fuck
* what did he mean by this
* FUCK!!
* oops
* hamburger cheeseburger big mac whopper big mac whopper big mac whopper
* spel fix
* wh*t the heck?
* this file has all the other tendril loot so
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.
* Fixes some comments
* Fixes map issue
* Restart lints
* Properly resolves conflicts
Come, let me tell you a story of the old days----of SHITCODE.
AGhhhhh.
Once upon a time, SS13 code was terrible (who are we joking, it still
is, but that's a story for another day), and when any carbon subtype,
minus humans, talked over radio, it would runtime.
Of course, coders set about fixing this problem---can't have nonsense
like that, so...of course, the most logical thing was done.
Instead of solving the awfulness that was not only using the wrong
istype check and a wonderful colon override as well:
9eb0e80ae7/code/game/objects/radio/radio.dm (L148)
A "Fix" was applied instead:
9eb0e80ae7 (diff-b5f801c8078b7d8dd9f0661b359dfa9e)
Whereby `var/obj/item/card/id/wear_id = null` was added to monkeys and
aliens to "fix" them having an ID holder and not throwing a
runtime.........Thus ensuring:
Fox would find it one day and call this utterly moronic and while also
ensuring that all future carbon mobs created without implementing this
same "fix" would have the same exact problem.
Then radio code got rewritten to be non-stupid and this still hung
around until today.
The End
* Datumizes all uses of change_view
* Cleanup and helper procs
* tweaks values to match the format, hint hint, (value - 0.5) works just fine
* And there's the rest
* woop, braindamage
* and one more
* fuck you menu file
* woops
* we should apply that
* fixes tooltip drift, thank you goon coders
* you can shake but you can't zoom
* Fairer Paydays
Makes paydays more fair
* Changes fairer payday system to use a multiplier
Paday system now features a multiplier.
By default the multiplier is 1 so accounts created without a multiplier (deparments) are not affected.
Species now have a default multipliert of 1.
Most species expect humans now earn 25% less.
* there was an attempt
* adds ice moon map
adds config options for choosing mining maps
areas now have options that affect random generation on them
weather now has an option to not target indoor areas
adds base for icemoon ruins
turns many 1's into booleans
adds ice chasms
adds ztraits for weather stuff
* fixes up ice ruins to be ice moon compatible
adds lower z level to the ice moon mine
ice chasms now have a smoothed icon
megafauna only spawn in the underground portion of ice moon now
* openspace fixes
* adds new areas and underground specific ruins
* Adds the abandoned village ruin for Ice Moon
* adds abandoned village ruin and fixes some area and tile stuff to work with ice moon
* random mining maps are no longer picked in the config
you can no longer change the mining map before setup is complete
* adds above and below ground ruin as a test
* adds debug functionality for ice moon ruins
fixes a bug where multiz was impossible unless there were shared areas because of whitelisted areas
adds multiple whitelist areas for ruin placement in a list
all underground areas are now outdoors
underground plasma lava rivers are now only spawned in unexplored areas so ruins don't get destroyed by them
* adds unique spawners to icemoon to replace tendrils
adds 2 new mobs to icemoon the polar bear and wolf
adds a clothing flag for shoes that dont slip on ice
modifies mining site to be ready except for the boss
adds the ability for tunnel width to be a specification, ice moon can have 1 tile wide tunnels and rarely 2 wide tunnels
adds a no caves mineral for ice moon ruins
* wolves no longer run into lava or chasms
bears now enrage sooner
bear spawners can now actually be created
adds base for ice moon atmospherics
adds base for a new boss and achievements / score
really bad coder icon for ice boots added
* ice moon now has it's own planetary atmos! (thank god)
* new frost miner stuff
megafauna recovery time can now be tailored to have different cooldowns to ranged or melee attacks
by default sets both of them, with two arguments the first is ranged cooldown and the second is melee cooldown
* converts a bunch of lavaland maps to be compatible with ice moon
adds tendrils from lavaland to the bottom of ice moon with the other megafauna
* updates mob drops for ice moon mobs
updates config entry default value for ice moon
updates ice moon map to have new gulag
* updates station parallax for icemoon
removes extra lavaland ported ruins
updates to demonic frost miner
adds ladder to icemoon map near station
* updates ice moon map to have the ladder inside the mining base
plant flora dont spawn on the lower z level of ice moon now
you get sand from mining rocks now
buncha demonic frost miner changes holy cow
* adds the buried library
* improves map, fixes comment
* make this crap work with the station cause i have to lol it is pretty cool though and now i understand the mapping crap better
* updates ice ruin blacklist
* ice moon stop being too cold thanks
icebox changes, now actually has its own z level that can spawn ruins and such instead of just being openspace
tunnel width is now not stupid
* fixes a demonic frost miner bug where orbs werent exploding after death
atmosphere temp is now correct
fixes library ruin for icemoon
polar bear range is now fixed, only aggros in a short range and follows further than 3 tiles
reverts necropolis chest change
* Adds a new ruin: bathouse, barebones edition
* adds many new ruins
fixes a bug with tunnel creation that caused it to enter no tunnel allowed areas
finishes the frost miner and adds loot to him
you can now force a wabbajack option
* main z level now always has gravity for ice box
* hopefully the hot springs arent the buggiest thing in the world anymore
protects areas near the station from having openspace
* icebox takes less players
fixes the ladder positioning on every icemoon map
* snowstorms now only occur on the station level
fixes some issues with the icebox z level having openspace over the lower level mining base
* Update code/datums/map_config.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/datums/ruins/lavaland.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/game/objects/structures/lavaland/necropolis_tendril.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/game/turfs/closed/minerals.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/game/turfs/open/chasm.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/game/turfs/open/floor/plating/asteroid.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* Update code/modules/ruins/icemoonruin_code/hotsprings.dm
Co-Authored-By: spookydonut <github@spooksoftware.com>
* fixes areas on the lust ruin
polar bears now drop a goliath plate equivalent
wolfs now drop a watcher sinew equivalent
adds snow legions
adds a crusher trophy for the demonic frost miner that prevents movement
fixes a bug with asteroid mobs where the aggro icon would never show
adds ice to the snow cave tunnel generation
* starts work on the wendigo megafauna
* replaces snowball machine gun with more miner useful content
adds gentle var for knockback to prevent stunning on hit
polar bears move slower now
new icon for phase 2 demonic miner now
* fixes lust ruin areas
fixes whitespace
fixes nesting issues
adds underground specific mobs
* name / location fixes
demonic frost miner doesnt stun on knockback now
ice demons move faster
* fixes icebox having the wrong baseturf
* adds achievement defines to the wendigo
snowstorm for the lower z level again
adds a new helper for ranged target turfs
theres now a specific subtype for rivers
fixes a bug where ice and spawners spawned with rocks and other flora on top of them
adds indestructible ice rock turf
fixes a bug with ice demons teleport distance being incorrect
adds the start of wendigos attacks
* Apply suggestions from code review
Co-Authored-By: Rohesie <rohesie@gmail.com>
* Update code/modules/mapping/ruins.dm
Co-Authored-By: Rohesie <rohesie@gmail.com>
* Fixes a dumb bug with ruins from a webedit review
The syndicate shuttle can now land on mineral turfs
* the final commit, all that im going to change after this is documentation for procs lol
makes both ice moon z levels below the station underground, and makes it so they generate rivers of their baseturf
* adds nice animation to wendigo scream
* small fixes
* finishes autodoccing everything i could find
* ok im done for real now
* adds anywhere ruins
does review stuff
* review stuff
* ok it removes the stuff now
* fix removal
* fixes from the git
* adds surroundings to the asteroid and lavaland sites
adds butchering gloves to wrath ruins
the lower icebox levels are no longer station levels
fixes capitals on blood drunk and frost miner boss medals
adds engineering outpost ruin by trollbreeder
adds boxstation job changes to icebox
polar bear transformation no longer has immunity to lavaland mobs
fixes ice whelp spelling mistake
* fixes engi outpost atmospherics
fixes missing plating on solar panels
changes slowdown for icemoon turfs
* fixes ruins areas so tunnels can spawn into some of them
adds lights to icebox below area
openspace turfs mine the thing below them now
* fixes wall boundings on asteroid and lavaland domes
* ur lame armhulen
* adds public mining area to icebox
adds computer vendors to icebox
* minor fixes
* fixes map type error
* removes slowdown entirely
increases ore chances
fixes openspace on main map
fixes a ton of active turfs at roundstart
modifies demonic frost miner loot to be cooler and more useful since the boss was hardly killed during tests
tunnels are wider underground now
openspace now deletes itself if it spawns above a ruin
* improve da ruins
* tries to fix multiple atmos issues with ruins
removes bz from the planetary atmos since it could cause unstoppable chain reactions which would cause massive lag
demonic frost miner drill now automatically scans everywhere around you
fixes tunnel generation issue
makes it so randomly generated turfs inherit their no_ruins flags
Co-authored-by: Jonathan Church <jchurch093@gmail.com>
Co-authored-by: s <wesoda24@gmail.com>
Co-authored-by: spookydonut <github@spooksoftware.com>
Co-authored-by: Rohesie <rohesie@gmail.com>
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