mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-10 07:41:16 +01:00
master
16 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
fa2ab65f07 |
Missed mirrors (#28919)
Handful of missed mirrors (#3739) * fix duplicate traits * Adds a Contraband trait, and implements contraband as a mechanic to security bounties. (#84003) This PR does a few things but centrally it's all centered around mechanically enforcing what items are and are-not considered contraband in-game. Contraband items are visually indistinguishable from non-contraband. If an item is Contraband, it can only be detected in two ways: * After being scanned by an N-Spect scanner, which is a standard item security item, assuming it still has a charge to do so. * Via a scanner gate, which can now be upgraded with an N-spect scanner to allow for it to scan a person and all their contents for contraband. Contraband items are intended to be determined both logically and through other relevant examine text. However, here's the short list of items that are considered contraband, reserving the right to expand the list. <details> <summary>In hindsight it's kind of a long list.</summary> * Items that have "contraband" or "illegal" in the name or description. * Items that allow for the player to obtain other illegal items, that are NOT particularly stealthy. * This means that a syndicate uplink is NOT considered contraband, as they're typically hidden on your person as something else. * Stealth items under the syndicate uplink, the revolutionary flash, and some mapped in dangerous items that can come from both syndicate and company-aligned resources are not considered dangerous. * Items that are purchased from cargo after emagging or switching to extended cargo range. * Items purchased FROM syndicate uplinks, the wizard knowledge scroll, or other antagonist shops. * Cursed artifacts/tools magically produced by cultists or heretics. * Items purchased from the blackmarket. * Items purchased from the contraband section of vending machines. * Some drugs and overtly dangerous or criminal byproducts. </details> Well, primarily, this is an aid for in-game enforcement of space law. Based on the length of the above list, we have a LONG, LONG list of items in-game that are technically considered, in one way or another, illegal to have on the station, and yet without either metaknowledge of what those items are, or how they're used, security officers lack some of the certainty of how to deal with these kinds of encounters. Additionally to the knowledge aspect of this trait, security officers may now receive a new civilian bounty to collect items that are considered contraband, also giving them an incentive to look for and confiscate contraband that's been found across the station while upholding space law. Security has a bounty for 3 different rechargers, and considering access limitations, most security players aren't going to make this exchange, so I've lowered the required amount down to 1. Adjusted the N-spect scanner's description to match it's new functionality. The Civilian bounty TGUI now has an additional 1 point of padding to make it feel less cramped. https://github.com/tgstation/tgstation/assets/41715314/c3cd4752-b03a-4e0b-959e-1252fcc2369d **Updated as of 6/19/2024:** Additionally, some storage items will block the presence of contraband when going through a contraband aligned scanning gate. These items include the infiltrator modsuit core, storage implant, void cloak, the aptly named smuggler's satchel, and the chameleon kit's backpack. **Updated as of 6/23/2024:** N-spect scanner now has contextual screentips. **Updated as of 6/29/2024:** Scanner gates are now available in all lathes that have a feature specific to how scanner gates function. So, includes cargo (contraband), security (weapons), and medbay (diseases). Originally, this started out as a way to be able to provide more in-character and in-flavor bounties for security officers, because they suck! Most security bounties as they exist right now do the worst possible things from all respective bounties: * They detract away from a job's actual responsibilities as opposed to working with them. * They're best completed while sitting next to your lathe and running items back to the bounty pad. * They exist with such esoteric rarity of high quantity of items that it's miserable to fulfil. As a result, I started work on this as a framework to allow security officers to be further incentivized to collect contraband across the station, either as a result of the gamemode or just through routine patrols across the station. Implementing it as a learning tool for security as well just happened to work out as an additional bonus, and having a function in-game allowing newer or less experienced players to know if an item is considered dangerous or conspicuous also works as a particularly good way to provide information where a player may not know what they're up against. If nothing else, this might be interesting to try, and if not, I'll just snip out the QOL changes from it and we'll see how it goes. Going forward, I am a bit hesitant about the contraband scanner gate mode, and as such, will try working with the admin team to determine if that's a good feature to keep around for game health, while hoping to give it a chance in the fullness of time. 🆑 add: Items spawned via traitor uplinks or are known illegal contraband on the station can now be scanned and identified as such by the N-spect scanners in security. These only applies to overt traitor or antagonist items, and "stealth" items will not be seen as such. add: Scanner gates can now be upgraded by using an N-spect scanner on it to unlock "contraband scanning" mode. add: Security officers can now be offered a bounty to turn in pieces of contraband. add: Some stealthy storage items like storage implants, smuggler's satchels, void cloaks, the infiltrator modsuit, and the chameleon backpack will block the presence of contraband on your person when placed inside. qol: N-spect scanner contextual screentips. balance: Recharger security bounties ask for a quantity of 1, down from 3. qol: security, cargo, and medbay have access to scanner gate boards. /🆑 --------- * Adds six new strange object powers! (#84775) DESIGN CONCEPT: Strange Devices are at their best when they're odd tools which can help a department out, with some strange drawbacks that make them interesting and unique. Foam for the Janitor, Flashbang for Security, Teleporter for tiders, Corgimaker for the chef. They're also ambiguous enough that they can really be used by anyone for silly hijinks. Drink Dispenser: Creates a glass, then fills it up with a random drink. Bioscrambler: After a noticeable warning, bioscrambles people nearby. 33% chance to be used up on use. Recharger: Shocks you, but recharges one random item to max battery. Hugger: Hugs everyone in range as if you had the friendly trait. DImensional: Converts the surroundings to a random material-theme. Each use increases cooldown by two seconds. Disguiser: Drops your clothing to the ground and replaces it with a delete-on-drop costume and a randomly assigned cardboard ID. Removed an unused and unusable shock flag. Removed an unused dumb ghost item. Added a proc that returns a hex color with the # attached. > DESIGN CONCEPT: Strange Devices are at their best when they're odd tools which can help a department out, with some strange drawbacks that make them interesting and unique. Foam for the Janitor, Flashbang for Security, Teleporter for tiders, Corgimaker for the chef. They're also ambiguous enough that they can really be used by anyone for silly hijinks. Request by ArcaneMusic! He wanted new abilities to go along with the new sprites, and approved these. > Removed an unused dumb ghost item. please stop using costume subtypes for OP items. whats the damn point of the subtype if youre just going to screw with it > Added a proc that returns a hex color with the # attached. idk why it didnt have this tbh 🆑 add: Adds six new strange object powers! Drink dispenser, bioscrambler, recharger, hugger, dimensional, disguiser. code: Removed some unused code and items, and added a proc that returns a random #colorstring. /🆑 * [NO GBP] the random spawner loot weight config is not an integer (#84814) Sets `integer` to false. Also a tidbit about the `skew_loot_weight` proc, though loot lists with uneven weights all tend to add a value to all entries so it isn't an issue. The config isn't an integer. N/A * The techweb no longer erroneously refers to MODsuits as exosuits (#84800) At some point, some of the techweb node descriptions were changed, so that it referred to certain modsuits as exosuits. This just changes it back. The term "exosuit" is generally used for mechs, not modsuits. The techweb descriptions should refer to modsuits as modsuits. 🆑 spellcheck: The techweb no longer erroneously refers to MODsuits as exosuits. /🆑 * Adds new hairstyle - Short Bangs 2 (#84804) Adds a new hairstyle called Short Bangs 2. The hairstyle is basically an edit of the existing double buns, except the hair buns themselves are removed. https://github.com/tgstation/tgstation/assets/66234359/38fe3b09-c42b-43e6-9e30-949428aab506 More customization, variety and character flavor is great. Double buns itself is a good hairstyle but some may not like the hair buns out of personal preference or that it can look weird on non-human species like felinids. 🆑 Hardly3D add: Added new hairstyle: Short Bangs 2 /🆑 * Offset render relays for non-offsetting planes to match highest matching render plane (#84184) **Alternate title: "Fix blind people getting so blind they become deaf when going down a flight of stairs"** So 'bout half a week to a week ago I overheard a friend complaining about blind people not seeing runechat on lower multi-z levels. Asked a bit, apparently they'd reported this about half a year ago, and it's still an issue. So in my never-ending hubris I decided to just go and fix it! Now, admittedly? I really _really_ do not get the rendering system we use. The simple options were right out: we can't allow the fullscreens plane to be offset, as this causes issues with looking up/down, or disallow runechat from being offset, which causes issues with runechat from other levels. After poking our very cool and smart rendering guy several times over the course of the last week, this is what we got to: We simply make the rendering relays for non-offsetting plane masters point to the highest rendering plane that matches the target. We do this by offsetting the rendering relays in place, by adjusting their plane and layer values to match the new offset, with a new `offset_relays_in_place(new_offset)` proc called in `/datum/plane_master_group/proc/transform_lower_turfs(...)`. Importantly, we compare the current layer values to what they should've been, so we don't accidentally override relays with custom-set layers. This fixes our issue (as tested on wawastation): <details> <summary>Images</summary>    </details> Fixes #80376. 🆑 fix: You can see runechat above fullscreen overlays on lower multi-z levels again. Rejoice, blind players. Please report any weird rendering layering issues. /🆑 * illegal tech flag got changed * Automatic changelog for PR #84003 [ci skip] * Automatic changelog for PR #84775 [ci skip] * Automatic changelog for PR #84800 [ci skip] * Automatic changelog for PR #84804 [ci skip] * Automatic changelog for PR #84184 [ci skip] * Makes the smoking pipe sprite not give you a phantom stache. (#84898) The smoking pipe currently gives you a phantom stache. Observe, note the black background and know this character has no facial hair.  I basically adjusted the pixels so it'd look better from different directions. This is the new look - approximately.  Smoking pipe is cool for RP but the sprite's fucked. 🆑 image: the smoking pipe's directional looks have been altered to make it less ugly /🆑 (cherry picked from commit |
||
|
|
dcdf918a91 |
[MIRROR] [NO GBP] Fixes the loot weight config + maintenance spawner nitpick (#28749)
* [NO GBP] Fixes the loot weight config + maintenance spawner nitpick (#84777) ## About The Pull Request I've forgotten to fill the `loot_list` arg of the `skew_loot_weight` call, and I'm preventing the maintenance spawners from running the proc more times that necessary, also stopping the `no_decal` subtype from removing decals typepaths from the global `maintenance_loot` list. ## Why It's Good For The Game Pseudo-bugfixing. ## Changelog N/A * [NO GBP] Fixes the loot weight config + maintenance spawner nitpick --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
595b6b4cd9 |
[MIRROR] Adds a config that skews random spawners weights. (#28696)
* Adds a config that skews random spawners weights. (#84616) ## About The Pull Request Title. It's an exponent that multiplies weights of random spawners. For example, if the exponent were 0.8, and the spawner has a natural 99.9% chance to spawn a donk-pocket and a 0.01% of a vial of adminodrazine, after calculations it'd be roughly 99.6% vs 0.4%. ## Why It's Good For The Game This can give admins/keyholders more control over random spawners. ~~However, most of the random spawners are maploaded things so an admin would've to get to edit the config quite fast before SSatoms initializes to witness the most out of it, but I'm just ranting.~~ ## Changelog 🆑 admin: Added a config that regulares random spawners weights. /🆑 * Adds a config that skews random spawners weights. --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> |
||
|
|
7c5e6ed4ba |
[MIRROR] random spawners now check if the destination turf is unblocked in a straight line (#27116)
* random spawners now check if the destination turf is unblocked in a straight line (#82323) ## About The Pull Request random spawners now check if the destination turf is unblocked in a straight line  (spammed grime spawner, nothing spawned behind glass) ## Why It's Good For The Game bug ## Changelog not player facing * random spawners now check if the destination turf is unblocked in a straight line --------- Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> |
||
|
|
8ea436b829 |
[MIRROR] Adds loot blacklist, creates a maintenance spawner with decals blacklisted (#26613)
* Adds loot blacklist, creates a maintenance spawner with decals blacklisted (#81611) * Adds loot blacklist, creates a maintenance spawner with decals blacklisted --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> |
||
|
|
b674e72ef1 |
[MISSED MIRROR] Macros multi-z code, removes the false premise of manual offsets (#76248) (#22531)
* Macros multi-z code, removes the false premise of manual offsets (#76248) ## About The Pull Request [Removes the pretense of relative multiz levels](https://github.com/tgstation/tgstation/pull/76248/commits/0293fdc2bd8c8af7a0d18da33265e060789c71f7) Our multiz system does not support having a z level that is only connected one way, or which goes down backwards or anything like that. That's a fiction of the trait system, the actual backend has never really supported this. This pr removes the assumptions we were making backend around this, and uses that to save cpu time. I am also converting multiz_levels from an assoc list to a pure one, which saves significantly on access times and cleans up the code somewhat. Also I'm making the get_below/get_above procs into macros, for the sake of cpu time. [Converts the starlight disease to use BYOND's directional defines instead of our own](https://github.com/tgstation/tgstation/commit/7d698f02d991eb4e1bde56314c657cf6e48ceb5d) To some extent spurred on by https://github.com/DaedalusDock/daedalusdock/pull/298, tho it was known before ## Why It's Good For The Game Faster multiz code, faster init, etc etc etc * modular files how very dare you --------- Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> |
||
|
|
e6ca973aea |
[MISSED MIRROR] Converts sec armories to using the (not) random mapping spawners (#76392) (#22485)
* Converts sec armories to using the (not) random mapping spawners (#76392) ## About The Pull Request Title. ## Why It's Good For The Game Armories aren't really a dense area mapping wise, just a few guns there, armor there, and some fluff security stuff (like HUDs or whatever). This PR just converts most of the heavy stuff (armor, helmets, guns) into spawning helpers with the aim to make mapping armories just a tad bit quicker and easier. The only thing this does kinda nuke is the neatly stacked stuff, which the mapping helpers kinda suck at doing, but its not totally woeful. ## Changelog 🆑 Jolly, timothymtorres code: Jolly: Armories across all maps have been tweaked slightly. Report to a Nanotrasen security advisor for any missing guns, armor, helmets or anything else that was there previously (that means, post an issue on Github if theres an issue!!) code: timothymtorres: Random item spawners now support better control of their X/Y pixel offset. /🆑 --------- Co-authored-by: Tim <timothymtorres@gmail.com> * Adds the spawners to the modular armories where applicable * Update random_spawners.dmi * grr --------- Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com> Co-authored-by: Tim <timothymtorres@gmail.com> |
||
|
|
a863e7787d |
[MIRROR] Unit tests now catch decals in walls/space [MDB IGNORE] (#21862)
* Unit tests now catch decals in walls/space * the fuck * vr * vr --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com> Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com> |
||
|
|
4c6159657a |
[MIRROR] Allows languages to weight the likelihood of certain syllables, refactors certain code related to pick_weight() [MDB IGNORE] (#17505)
* Allows languages to weight the likelihood of certain syllables, refactors certain code related to pick_weight() (#71275) ## About The Pull Request This PR does the following: - Defines a new proc in __HELPERS/_lists.dm called `pick_weight_recursive()`. This is the code from `/obj/effect/spawner/random/` that allows for nested weighted lists, moved to its own proc. - Replaces explicit code in spawners/random.dm with calls to `pick_weight_recursive()` where appropriate - Deletes the redundant (and barely used) proc `/obj/item/loot_table_maker/proc/pick_loot`, as this was equivalent to `pick_weight_recursive()` - Moves the global proc `fill_with_ones()` from spawners/random.dm to __HELPERS/_lists.dm - Replaces `pick()` in language syllable selection with `pick_weight_recursive()`, allowing languages to define syllable weights or use nested lists of syllables. - Reformats Galactic Common to use nested lists of syllables, allowing English and Chinese syllables to occur at equal frequency despite having different numbers of each. ## Why It's Good For The Game Allowing languages to define syllable weights and nested groups of syllables is a relatively small change that greatly expands what you can do with them. In addition to making Galactic Common look nicer in code, this change also allows for the easy creation of languages with highly uneven syllable distributions (including ultra-rare secret syllables, perhaps) or the quick creation of pidgin languages that combine multiple syllable sets. Using a new proc simplifies spawner code by reducing repetition. Making it global allows for other code to easily implement the same flexible and elegant system of nested lists that spawners already use. ## Changelog 🆑 refactor: defines a new global proc, pick_weight_recursive() code: languages can weight syllables, and galactic common's definition is easier to look at /🆑 Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> * Allows languages to weight the likelihood of certain syllables, refactors certain code related to pick_weight() Co-authored-by: skylord-a52 <skylord-a52@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com> |
||
|
|
375fea374a |
[MIRROR] Optimizes qdel related things (slight init time savings) [MDB IGNORE] (#17240)
* Optimizes qdel related things (slight init time savings) * lang holder * cleanup custom spawners slightly * ref update Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> |
||
|
|
aca32b3a34 |
[MIRROR] Random statue mapping spawner spawns its statues anchored [MDB IGNORE] (#15927)
* Random statue mapping spawner spawns its statues anchored (#69305) About The Pull Request The /obj/effect/spawner/random/decoration/statue spawner will spawn it's statues anchored, assuming they are structures. Also refactored graffiti spawner since I was adding support in this area and saw it Why It's Good For The Game If you wanna use the spawner to place a statue in a public area, people will shove it around and stuff, which is lame. So, by anchoring it when it spawns, mappers don't have to worry about people bumping their pre-placed statues around. * Random statue mapping spawner spawns its statues anchored Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
8bcb0dfd7a |
[MIRROR] Move current pick_weight consumers to not pass in zeros [MDB IGNORE] (#9647)
* Move current pick_weight consumers to not pass in zeros (#62940) About The Pull Request pick_weight_allow_zero was a backwards compatible hack, so it exists alongside pick_weight. I would really like to just remove the old proc and just rename it, so I want to log what, if anything, is relying on this behavior, to see if it's a bug or if it needs to be handled especially in that case. * Move current pick_weight consumers to not pass in zeros Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> |
||
|
|
fa519bdde3 |
[MIRROR] cleanup _HELPERS/_lists.dm and all the necessary files [MDB IGNORE] (#8783)
* cleanup _HELPERS/_lists.dm and all the necessary files * Epbic Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com> |
||
|
|
3251c19176 |
[MIRROR] Fix maint loot spawners not deleting after roundstart/spawning their loot. [MDB IGNORE] (#8686)
* Fix maint loot spawners not deleting after roundstart/spawning their loot. (#61707) Maint loot spawners hang around and never get qdeleted after spawning their loot. This does a little bit of simple code logic to limit copypasta and ensure that loot spawners never qdel late and that they qdel precisely when they intend to. Or when SSmapping intends for them to. * Fix maint loot spawners not deleting after roundstart/spawning their loot. Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk> |
||
|
|
f295464c2a |
[MIRROR] Corrects mapload args that sprug up in the past few days [MDB IGNORE] (#8462)
* Corrects mapload args that sprug up in the past few days (#61759) See #61623 . These were either merged after the prior PR, coded before the prior PR, or were made in between and not updated. * Corrects mapload args that sprug up in the past few days Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> |
||
|
|
be6e303ab2 |
[MIRROR] Mapping DLC - Random Spawner Pack [MDB IGNORE] (#8344)
* Mapping DLC - Random Spawner Pack [MDB IGNORE] (#60522) First off, I am aware of the Feature Freeze for this month. This PR was initially started in #60401 about a month ago to break the changes into smaller PRs. The end result for this PR is a poor man's attempt at roguelike procedural generation. Enjoy! Link to the README for how the new spawner system works. Added the following new random mapping spawners: pen, crayon, stamp, paper, pamphlet, briefcase, folder, wardrobe closet, wardrobe closet colored, backpack, narcotics, permabrig_weapon, permabrig_gear, prison, material, carpet, ornament, generic decoration, statue, showcase, paint, tool, tool_advanced, tool_rare, material_cheap, material, material_rare, toolbox, flashlight, canister, tank, vending_restock, atmospherics_portable, tracking_beacon, musical_instrument, gambling, coin, money_small, money, money_large, drugs, dice, cigarette_pack, cigarette, cigar, wallet_lighter, lighter, wallet_storage, deck, toy, toy_figure, booze, snack, condiment, cups, minor_healing, injector, surgery_tool, surgery_tool_advanced, surgery_tool_rare, firstaid_rare, firstaid, patient_stretcher, medical supplies, crate, crate_abandoned, girder, grille, lattice, spare_parts, table_or_rack, table, table_fancy, tank_holder, crate_empty, crate_loot, closet_private, closet_hallway, closet_empty, closet_maintencne, chair, chair_maintence, chair_flipped, chair_comfy, barricade, data_disk, graffiti, mopbucket, caution_sign, bucket, soap, box, bin, janitor_supplies, soup, salad, dinner Removed deprecated wizard trap, vault, and armory spawners. * Mapping DLC - Random Spawner Pack [MDB IGNORE] * HNNGH Co-authored-by: Tim <timothymtorres@gmail.com> Co-authored-by: Gandalf <jzo123@hotmail.com> |