Skip to content

Latest commit

 

History

History
1827 lines (1414 loc) · 84.4 KB

2022-12-24.md

File metadata and controls

1827 lines (1414 loc) · 84.4 KB

< 2022-12-24 >

1,583,117 events recorded by gharchive.org of which 1,583,117 were push events containing 2,054,081 commit messages that amount to 111,978,460 characters filtered with words.py@e23d022007... to these 42 messages:

Saturday 2022-12-24 00:12:31 by Danielkaas94

💀🌑 Every Planet We Reach Is Dead 🌕💀 Dreams aren't bad, our heads are mad I love the girl But God only knows it's Getting hard to see the sun coming through I love you But what are we going to do?


Saturday 2022-12-24 00:18:06 by Danielkaas94

All Alone Leviticus Deuteronomy

Snatch a piece of my wonderin' Distant, far like yonderin' Skin of my tooth like, seat of my boot like Fly in my soup like, where's the waitress?

Can't take this, really can't finish this These airs and all these graces It's my mistake, I make it J-dub to the boom now make it

Bounce-wiggle, bounce-wiggle Shakin' all them bangs out Chemical cut throats Bound to blow the brain out

Cut to the brain, this ain't no game I'll show no shame, I'll birth this blame I'm twisted Cain, I'll twist again I'll push the blade as plain as day

Known to what these sayers say Known to what these doers do We shoot where who and you-know-where We's about to take it there

We's about to make it clear We happy or we lonesome The long jump, the beat heart From start to finish


Saturday 2022-12-24 00:35:00 by Danielkaas94

Don't Get Lost In Heaven Don't get lost in heaven They got locks on the gate Don't go over the edge You'll make a big mistake, yeah


Saturday 2022-12-24 01:31:39 by san7890

Guards against uplink failsafe code being the same as unlock code (#72113)

About The Pull Request

There's probably a better way to do this to be honest, but I think it's silly for both to potentially be the same and this should work alright.

Why It's Good For The Game

Fixes #71446.

I don't think the Syndicate is that stupid.

Changelog

🆑 fix: After a recent mishap with a high-ranking Syndicate operative, the uplink's unlock code and failsafe code (the one that makes it blow up if you say it) should never turn out to be the same. /🆑


Saturday 2022-12-24 01:57:34 by Conga Lyne

Various Updates since 1.1.0

Trophies are no longer affected by gravity Credits Scene added for beating the mod You now gain wand tinkering after doing... something Fixed Essence of Fungus room colliding weirdly with the Overgrowth Fixed something very important Fixed compatibility issue with Worse Enemies Fixed bug related to credits not appearing in some circumstances Updated Fungal Shift Spell sprites Updated Giga Bomb Hiisi's sprite to improve the throwing animation Cats now Sneeze at acceptable levels Added Russian translations to some missing text Added extra hint glyph.. somewhere musically sandy Added a smoke effect when Hiisi transform into Santa Slightly reduced durability of Aesthete of Heat in Nightmare & Purgatory Slighly increased Abandoned Orchestra's delayed attack damage Fixed Revenge Reflection copying Discord Fairy teleport bolts Fixed MOTDs not spawning in Noitavania Fixed Abandoned Orchestra's delayed attack not being able to hit you Cat Wand now has slightly less projectile slowdown Message of the day now automatically updates when the day changes Slightly reduced spawnrate of Psychic Bats Polymorph Crystals can no longer spawn at the exits to all holy mountains. previously this protection was only added to the Temple of the Art, but it should now apply everywhere Relocated the Scorched Book to the Lake Glimmer Bunker, the Brimstone still spawns inside the Hiisi secret shop Fixed Certain Cold Gazers having incorrect damage multipliers (immune to fire but vulnerable to ice...?? oops) Fixed some creatures/entities missing from the Conjurer entity spawn menu Fixed special event MOTD signs to appear at proper times Coldgazer is now significantly more vulnerable to fire damage Improved Greater Gazer sprites Firecharge now provides 20% more damage Guaranteed Brimstone spawn in the Hiisi base secret shop no longer burns the shack down every time Reduced Sentry's damage in earlier levels by 25% Something is now slightly harder to see Aesthete of heat now heals significantly more in Purgatory & Nightmare Added a new hidden creep Added some unused enemies to the portal trap pixelscene Added new rare spawns to keep you on your toes Added this line to the patch notes purely to say, I know you're reading these


Saturday 2022-12-24 02:47:26 by Jolly

[MODULAR] contraband.dmi is no longer a hard override on posters (#18106)

  • hhngh

  • dunks this fucking dmi

  • fuck you


Saturday 2022-12-24 02:49:02 by RedMisao

0.9.4.5

Characters

  • Kaenbyou: now can toggle between her youkai (cat) or human forms. Cat form is smaller, slightly more nimble, and less loud, but carries less weight and deals reduced melee damage
  • Mokou is now immortal. She can resurrect after dying, "resetting" her body. There's no limit to how many times she can do this, but there's a soft cap proportional to how many times she has died in a short time (say, a week), plus a long lasting small-ish pain debuff that ramps to discourage the player trying to savescum. Also, she's now immune to smoke, a qol for her spells burning stuff around her
  • Reisen: now has the LUNARDIET trait which makes her intolerant to impure foodstuff, until she eates enough of it. This is linked to the addition of the Impurity mechanic (see Mechanics)
  • Remi: now has blood thirst. She has to consume blood (or human flesh, with less effectiviness) in order to keep it at bay
  • Sakuya: new spell "Maid's secret", a toggle-able aura that increases her movement speed and stamina regeneration as long as she is focused, becoming tired or hostiles getting close disables also toggles it off. Also tweaked some spell and effect values
  • Yamame: now can toggle between her youkai (revealing her spider legs) or human forms. Her youkai form helps moving through difficult terrain, climbs walls and rappels, but is way more visible (and "ugly"), intimidatory and difficult to swim with

Guns

  • MIB weapons (previously added) are now fully functional

Mechanics

  • Several new mechanics were integrated in different parts of the mod, read the patch notes to see which ones
  • Impurity (WIP) and Blood thirst (see Characters). Impurity is currently a dummy mechanic: it increases naturally over time and also by consuming "impure" stuff (which is everything edible so far). It has no effect now, but will in the future

Misc/Fixes

  • Added some missing cc debuffs to the list of what Reisen can cleanse with her cleansing spell
  • Skinwalkers, banshee and White Lady demoralizing spell components are now working properly
  • Several mutation numbers were rechecked/toned down
  • Fixed some stuff from Udonge's aura spells, and slightly cleaned up the EOCs
  • Minor description change to Tenko's pillar spell
  • Touhou Scenarios EOCs now actually work

Bugs:

  • Mokou's resurrection moves her 3 tiles to the right, every time she revives. I have no idea how or why this happens, still this is potentially very very bad

Saturday 2022-12-24 03:21:23 by gagan sidhu

when i see that goof cook's face, i just think "you never go full "

fucking stupid fool. get some suspenders to complete your look, clown.

FULL STRAP-SLAP THOSE MISSING SUSPENDERS COMPLETING YOUR 'LOOK', TIM APPUL

https://www.youtube.com/watch?v=X6WHBO_Qc-Q

THANKS BEN


Saturday 2022-12-24 03:29:18 by Koi

Mr. Mime is a thing, unfortunately. Mild clean, some more Cherish set handling attempts. Exclude set MetDate from mystery gifts. Fix daycare enum parsing. Check for no result in case $qc was used or some other weird thing happens. Remove FixOT and TradeCord as routine types (FlexTrade handles both). Try to apply trainer info for Mystery gifts. Re-add fixed met date if not GO origin. Update DenBot distribution data, minor fixes. Fix Yamask-Galar in daycare, some more oopsies. -Add DenBot - a seed lookup and day skipper bot for raids. -Change AutoRoll's behavior to make use of some of DenBot's functionality. Minor clean. Revise TradeCord "traded" check, remove potential user path straggler entries because paranoia, some minor fixes. TradeCord fixes (shocker, I know). Extract Json serializer. Minor clean and fixes. Minor fixes. Fix Milcery when an Alcremie variant is a parent. Update to latest Core and ALM dependencies. Handle non-shiny events in a better way. Work around a race condition? Simplify and de-bugify trade completion check. Fix indexing, improve chance for Melmetal-Gmax because it's nigh impossible to get. Rework TradeCord internals, add new functionality: -Migrate user data from ".txt" files to a serialized Json (migration for a large amount of users will take a few minutes, be patient). -Make TradeCord configurable, add its own settings category. -Add some template events with an optional end timer (YYYY/MM/DD 8PM as an example, though any local time format should work). -Add barebones Pokedex (counter, flavor text). -Can check dex completion by typing $dex, check missing entries by typing $dex missing. -Completing the Pokedex will slightly improve shiny rate. -Can now mass release cherish event Pokemon and shinies ($massrelease shiny/cherish). -Various tweaks, improvements, and bugfixes.

Slightly change FixOT's behavior: -If a shown Pokemon is illegal and an event, attempt to find a match within the MGDB first. -Try to force users to trade away the shown Pokemon, log attempt to change shown Pokemon. Add consideration for easter eggs being enabled in settings, fix Suicune Change species rng for TradeCord, some bugfixes (I really need to rewrite this mess) Add check if we're using ListUtil for Giveaway instead of TradeCord. Amend commit since I'm squashing and force-pushing while bringing the fork in line with the main branch Add Giveaway module to Discord bot (#22)

Thanks, rigrassm. Co-authored-by: Koi-3088 [email protected] Specify USB port instead of adding the first result (can be found via Device Manager). Re-add boolean check because we don't want to fix everything FixOT will attempt to regenerate illegal Pokémon. Apply trash bytes for reasons. Minor TradeCord fixes and adjustments. Minor clean for C#9 Use "GetValidPreEvolutions()" instead of "GetPreEvolutions()". Index forms correctly. Fix the fixed and re-introduced empty daycare index error. an Ultra Ball. Add EvoTree breeding for TradeCord. Remove unnecessary value declarations for pinging on encounter match. Mildly beautify EncounterBot mark output. Integrate Anubis' system update prevention into Soft Reset and Regigigas Encounter Modes. Rename "Regi" Encounter Mode to "Soft Reset". Speed up "A" clicks for Regigigas and Soft Reset modes. Add Mark logging output for EncounterBot. Fix oops (re-order logic, remove unnecessary lines). Add optional species and form specification for $massrelease Use an obscure string splitter because people like symbols in their names. Fix things that broke after rebasing to the latest main repo commit. Use a less unfortunate field name and value splitter...again. Fix Marowak-Alola always generating as an NPC trade. Add filters for "$list " to narrow down results. Fix Cherish Pichu and Octillery Stop making dumb mistakes, me (implying the rest of it isn't a dumb mistake). Can't breed antiques. Use a less unfortunate embed name and value splitter Add Melmetal-Gmax to TradeCord. Add ability to search by caught ball. Have MassRelease ignore events. Add specific regional form breeding. Revise egg rate and egg shiny chance. Have trade evolutions hold an Everstone. Add an extra right click when navigating to settings for AutoRoll. Add reworked encounter/egg/fossil logs. Minor clean. Minor clean. Get rid of EncounterBot, FossilBot, EggFetch text logs until I properly rework them. Break on an empty page due to aggressive rounding Add multi-page lists for Tradecord. More random bugfixes. Fix some bugs before major clean Add Language parameter for TradeCord. Change trainer info input format for TradeCord. Move focus on Showdown set instead of randomizing a pkm file. Allow user to enter whatever they want for $list, handle edge cases like Kommo-o Add "$list all" to show non-duplicate caught species. Automatically remove from favorites if trading or gifting (small QOL thing). Change how favorites are removed from user file. Revert base egg shiny chance nerf. Fix daycare Add favorites command to TradeCord. Slightly nerf eggs. Fix TradeCord list for shinies Add TradeCord (my dumbest and messiest project so far, Archit pls don't hate the mess). Add Showdown output for Star/Square shinies and OTGender. Add optional link code input for FixOT. Change how OTName, TID, SID is displayed. Add Regigigas SR bot. Add SoJ Camp SR bot. Ribbons now work with EggTrade (remove ribbons if egg). Remove EggRoll. Add another filter for FixOT Fix.. FixOT Update offsets for EncounterBot catching. Slightly change StrongSpawn to work with Regi SR and make it its own mode. Make SpinTrade only available for USB-Botbase Update valid eggs for CT winforms: resize icon.ico to fix crash at startup on unix using mono Rework Spin, read initial in-game coordinates in order to correct drift Add TID, SID, Language output for Showdown Remove obsolete OT and Language parsing Very minor clean until I have time for a proper one. Detach controller when stopping USB bot. Actually set LastUsedBall for EncounterBot (missed when bringing in line with main repo) Move extra RaidBot timings following the official commit Remove PKHeX Discord invite from Readme.md

Maybe fewer people will pester devs now about my unofficial fork? Update for latest main repo EncounterBot commits. Update README.md Add back best commit: Red's SpinTrade. Add egg trades, foreign Dittos and OT for Twitch. If ItemMule is enabled, also display the item a user is receiving. Add periodic time sync toggle for all methods of hosting (except for non-soft locked AutoRoll) to (hopefully) prevent den rollover during extended hosts.

Add routine to exit a lobby for SoftLock if no players are ready in time (to preserve soft lock).

Add a routine to recover from disbanded lobbies (when someone disconnects unexpectedly) for SoftLock.

Add a routine to restart game if all else fails and we're stuck in a raid.

Add a routine for adding and deleting friends if we're soft locked and raids go empty.

Slightly reorganize settings, extract methods, minor clean. Don't use such a generic file name for stream assets. Check USB port index for running bots. Should fix adding additional USB bots when no config is saved. Add fixed met date for FixOT. How do I boolean Change airplane mode logic, tweak timings and routine for soft lock lobby exit Rework EggRoll cooldown (static list in favor of a txt file). Start clean up and refactor Add setting to increase delay after pressing "Home" after a date skip. Use USB port index for blocking and sprite pngs if connection type is USB Add option for airplane host (usb-botbase required) Add option to softlock on selected species for AutoRoll Add automatic compatibility for all console languages when date skipping (have to set ConsoleLanguage under ScreenDetection) Attempt to fix multiple USB device add and connect...again Minor clean Fix oops? Handle add/remove of bots Distinguish between multiple USB devices, tweak BotRemoteControl for USB, other various fixes Add SpA modifier for foreign Dittos Add alpha USB-Botbase support Fix DateTime parsing for European format for EggRoll Set fixed EggMetDate and MetDate for EggRoll More FixOT filters Remove Beheeyem. Oops. Split EggRoll into its own routine and trade type, only output "Receiving: Mysterious Egg" if routine is EggRoll, other minor tweaks and fixes Make FixOT its own queue with roles and counts Add a couple more OTs to $fix Parsing for EggRaffle auto-clear and $clearcooldown Adjust timings and split Watt collecting clicks for AutoRoll Fix oops with file attachments for Ditto Further improvements for OT, memes for invalid pokemon (disable EasterEggs) Add spaces, digits for OT Randomize memes, cut down bloat Fix miscellaneous bots after Anubis' recent QOL additions -Ignore events for OT because headache. -Add overlooked "$convert " input for OT. -Move $clearcooldown to SudoModule -Clear timer automatically if NoTrainerFound -More reliable Dittos -Foreign Dittos for $convert -Command to clear cooldown for EggRaffle in case trade gets disconnected -Fix "Trade finished" line to keep result secret -EggRaffle as a toggle, option to specify channels -Seed Check output to both DMs and Channel (apparently some want it) -Randomly generated egg raffle via a "$roll" command with a configurable cooldown -FixAdOT reworked, has its own command "$fix" and no longer overrides $clone -Ball: output for Showdown sets -Fix oversight -Option to output Seed Check results to Discord channel with a User mention -Showdown set output for OT name and eggs -Basic "OT: " option without Showdown set output -Initial $convert support for EggTrade -Egg moves for EggTrade test attempt -Minor update -EggTrade (by nicknaming a Pokémon "Egg" using $trade) -Failsafe for memes if enabled but field left blank or incomplete -Niche breedable Ditto trade mode. Add minimize button EggFetch text logs StrongSpawn mode for EncounterBot Re-add EncounterBot Master Ball catching More parsing for FixAdOTs Park Ball as held item instead of string Actually remove the offset instead of saying I did Initial DLC commit Faster code entry Removed catching for EncounterBot (need a new offset) CloneBot mode to fix Nickname and OT if adverts detected


Saturday 2022-12-24 04:24:07 by Dan MacLean

Holy shit, finally done with day 16 part 1.

The problem was as dumb as you'd think - I thought the first line of the input was where you started.


Saturday 2022-12-24 04:33:57 by austin hamman

the app is starting to take form, added in some new programs, basically most programs can use the basic program prefab, but some programs have to do special things, like invisibility or armor. i also decided the utilities won't show on the list at all and don't need to be activated from "run program" instead having the utility enables a menu item to do it's thing (if you have re-rezz then when a program is de rezzed there will be a menu option for re-rezz for instance, will be adding something for unpacking packed programs and the necessary delay that produces)

i got messages showing when things happen, it's still a bit janky but it's not too bad, i do wish the action would stop until the message is done and that i could give some way for the player to interact with the action (like activating a shield when attacked, or rolling a die if they system is using dicewear instead of PRNG)

but i can activate some programs, my programs can fight other programs, programs can be destroyed, anti-program programs can attack my actrive programs (like armor or invisibility, which i THINK is correct RAW) i can take damage, the damage shows on the HUD, my BTM and armor can reduce damage, i imagine armor stacks, you could make yourself invulnerable with enough of em running at once. well invulnerable to cerain attacks anyways, just use a glogo rig be immune to most all attacks.

anyhow lots of stuff working better now, i think next i will focus on the main menu using the new ui builder (which is the dogs fucking bollocks btw)

and at some point i will rewrite the server for ASP.net Core and razor components. and then i will add a section for adding and editing programs, since a lot of them don't have their functions and options set up yet, just go through those and start plugging away.


Saturday 2022-12-24 04:58:49 by Bumskee

fixed the stupid ass bug it was all just because of cursor type object is messing with our fucking workflow


Saturday 2022-12-24 07:53:41 by Jan Durovec

2022 Day 24

Blizzard basin turns out to be a simple BFS/wave with conditions (free paths) changing dynamically in time. My algorithm finds the solution (earning me a a rank under 1000 :strong:)) but runs quite long (tens of seconds on my PC).

However, spending whole morning behind a PC on Christmas Eve is not what my family would appreciate so I decide it's good enough. Honestly, I'm not sure whether I'd be able to speed it up massively anyway (without copying some other smart solution).


Saturday 2022-12-24 10:41:25 by LemonInTheDark

Fixes parallax on >2 level maps going fucky with optimized multiz (#72169)

About The Pull Request

We no longer always render parallax. This was causing issues because we can't isolate the white of space from the vaugely white of everything else.

So instead, if your parallax plane is out of view, we'll not only disable it, but we'll disable the strand we send from the main plane TO it.

Instead only blending against the bottom stack.

This does mean there's a possibility for fullwhite on z transition borders (potentially fixable), or when hijacking the plane (also fixable, but significantly more annoying).

This is enough to make large maps functional though, so I'm happy with it

Why It's Good For The Game

Allows for #71731 and other maps like it. Makes my code actually work

Changelog

🆑 fix: Using optimized multiz on > 2 z layer maps will no longer cause fucko bungo /🆑


Saturday 2022-12-24 11:20:14 by ThePiachu

Cargo ammo and ammo box mapping (re-up) (#1759)

About The Pull Request

Previous version of this PR ( #1650 ) claimed to have changed 384 files, which would be impossible to review. So re-uploading this PR with hopefully a sane amount of files changed...


When I was playing cargo I spent a good half an hour in a round just mindlessly packing ammo magazines into boxes in squad prep. It didn't put a dent in the squad prep supply, and I barely got a handful of boxes. So I thought to myself that this is pretty much a waste of time for cargo and decided to code a better solution:

https://www.youtube.com/watch?v=cnXcEYAV8P4

So now select vendors (opt-in via VEND_LOAD_AMMO_BOXES) support ammo consolidation. They count the number of ammo magazines you have and from that they derive the number of magazine boxes you can vend. If you vend a magazine, it updates the number of boxes available, and if you vend a box, it updates the number of magazines available (as well as all derived boxes - see the 3 pack of grenades and 25 pack box).

The item_to_box_mapping tracks ammo boxes (minus loose ammo), grenade boxes, grenade packets and mine boxes.

Most notable affected vendors - Requisition ammo vendor, Requisition vendor that features grenades, Squad vendors that have ammo in them.

So now Requisition will be able to easily raid Squad Vendors to stock up their ammo drops and save countless hours of mind-numbing cargo work.

This code ALSO correctly works when you're re-stocking a vendor with either individual magazines or magazine boxes. Correct amounts are updated everywhere. So you could take a magazine box, put it in a vendor and thus let people vend 16 magazines out of it seemlessly. Really useful just incase you need to restock Requisitions with individual ammo or something...

Other notes:

  • Boxes of magazines are put directly under the corresponding ammo so you can vend them in larger amounts easier. Useful for 3-packs of grenades
  • We should add a Shotgun Shell Box Box so we can also handle those easily...
  • Nailgun ammo box had to be converted from being /smg/ since that created an invalid ammo box that nobody used.
  • Nulled out a magazine type for an intermediary box that later gets used for MREs and all that

Why It's Good For The Game

Gameplay around loading magazines into ammo boxes is not interesting, so cutting it down to minimum is for the best.

Changelog

🆑 add: Added an automated ammo box management system to various vendors stocking bulk ammo and grenades. It will automatically combine ammo magazine into boxes, and divide boxes into individual magazines (or grenades, MRE packets, etc.). The boxes will appear at the bottom of the vendor (yes, this also includes the regular grenade boxes that used to be higher). qol: Cargo will no longer need to pack individual vended ammo magazines into boxes thanks to the ammo box management system. Your chains have been broken! qol: Requisitions vendor now stocks 3-packs of grenades as well as individual HEDP grenades. qol: Requisitions ammo vendor now can vend a lot more individual magazines (actual number of magazines remains unchanged, just the ammo boxes have been consolidated into magazines). qol: Requisition vendors now vend to floor when they are not vending to the front desks. This will make filling crates of ammo boxes or rappels easier. code: Minor changes to code around some ammo boxes to remove one phantom box and prevent intermediate box types from being indexed when they shouldn't be. code: Refactored the code that checks whether items are in mint enough condition to re-stock. /🆑


Saturday 2022-12-24 11:26:11 by LemonInTheDark

Changes our map_format to SIDE_MAP (#70162)

About The Pull Request

This does nothing currently, but will allow me to test for layering issues on LIVE, rather then in just wallening. Oh also I'm packaging in a fix to one of my macros that I wrote wrong, as a joke

removes SEE_BLACKNESS usage, because we actually cannot use it effectively

c9a19dd

Sidemap removes the ability to control it on a plane, so it basically just means there's an uncontrollable black slate even if you have other toggles set.

This just like, removes that, since it's silly

fixes weird layering on solars and ai portraits. Pixel y was casuing things to render below who shouldn't

3885b9d

Fixes flicker issues

2defc0a

Offsetting the vis_contents'd objects down physically, and then up visually resolves the confliciting that was going on between the text and its display.

This resolves the existing reported flickering issues

fixes plated food not appearing in world

28a34c6

pixel_y'd vis_contents strikes again. It's a tad hacky but we'll just use pixel_z for this

Adds wall and upper wall plane masters

89fe2b4

We use these + the floor and space planes to build a mask of all the visible turfs. Then we take that, stick it in a plane master, and mask the emissive plane with it.

This solves the lighting fulldark screen object getting cut by emissives Shifts some planes around to match this new layering. Also ensures we only shift fullscreen objects if they don't object to it.

compresses plane master controllers

bd64cc1

we don't use them for much rn, but we might in future so I'm keeping it as a convienince thing

🆑 refactor: The logic of how we well, render things has changed. Make an issue report if anything looks funky, particularly layers. PLEASE USE YOUR EYES /🆑

Co-authored-by: Mothblocks [email protected]


Saturday 2022-12-24 12:13:40 by Jacquerel

AI actions won't unassign each other's movement targets & Mice stop being scared of people if fed cheese (#72130)

About The Pull Request

Fixes #72116 I've had a persistent issue with basic mob actions reporting this error and think I finally cracked it When replanning with AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION it can run Setup on one action leading to the plan changing, meaning that it runs finishCommand to cancel all other existing commands If you triggered a replan by setting up a movement action in the middle of another movement action, cancelling the existing action would remove the target already set by the current one. We want actions to be able to remove their own movement target but not if it has been changed by something else in the intervening time.

I fixed this by passing a source every time you set a movement target and adding a proc which only clears it if you are the source... but this feels kind of ugly. I couldn't think of anything but if you have a better idea let me know.

Also while I was doing this I turned it into a feature because I'm crazy. If you feed a mouse cheese by hand it will stop being scared of humans and so will any other mice it attracts from eating more cheese. This is mostly because I think industrial mouse farming to pass cargo bounties is funny. Mice controlled by a Regal Rat lose this behaviour and forget any past loyalties they may have had.

Mouse.Friend.-.Made.with.Clipchamp.mp4

Oh also I removed a block about cancelling if you have another target from the "hunt" behaviour, everywhere using this already achieves that simply by ordering the actions in expected priority order and it was messing with how I expected mice to work. Now if they happen to stop by some cheese they will correctly stop fleeing in order to eat it before continuing to run away.

Why It's Good For The Game

Fixes a bug I kept running into. Makes it possible to set up a mouse farm without them screaming constantly. Lets people more easily domesticate mice to support Ratatouille gameplay.

Changelog

🆑 add: Mice who are fed cheese by hand will accept humans as friends, at least until reminded otherwise by their rightful lord. fix: Fixed a runtime preventing mice from acting correctly when trying to flee and also eat cheese at the same time. /🆑


Saturday 2022-12-24 12:17:51 by Teodor Spæren

2022 Day 22

This one was relatively painless, except for the fact that I made one mistake on part two, that made it so that I had to do it later.

I had time pressure when solving this, as we where taking a plane to Thailand that morning. So I only gave part 2 one try and then just closed the program.

Part 1 is very easy, and I scored quite well on that. For part two I thought it was going to be a massive headache to solve generically, and I still think it will be, but I ended up going for something which was just for my input. I decided on how to name the sides on my input and drew it out on a piece of paper. Then I cut the paper to that shape, and could fold it like a cube.

I had written the letter for each side on the cubes on the paper, so I could track how their rotation ended up. Then it was an easy matter to figure out which face I was currently on, and if a move would end up in another face.

This is where things get a bit interesting. The transformation between two faces is not trivial. But I drew it out on the paper and wrote a transformation setup by hand. I decided I would have (new face, direction entered on new face, reverse numbering, new direction).

This worked ALMOST perfectly, but with one mistake, which is that I had ONE mistake in the whole thing, a single "L" that should have been an "R" in the "new direction" column. The most annoying part, is that the "new direction" is the only part of the solution, that is not needed at all. It should always be the opposite of the side we enter. So I could have just not hardcoded it and I would have been finished on time.

Either way, I'm now set for tomorrow. This is very nice as I was worried that the mistake was going to be harder to track down. I can't wait to see how other people have solved this in the reddit thread, but I will first try to solve it generally on my own before looking.

Score: --------Part 1-------- --------Part 2-------- Day Time Rank Score Time Rank Score 22 00:30:35 390 0 >24h 9323 0


Saturday 2022-12-24 12:21:26 by David Conner

thanks alot AMD. you're no different from nvidia

fuck all of you corporate assholes. just make a goddamn yay package for arch.

"but ubuntu is stayblle" ........................................

fuck you and all of your collective market valuations. FUCK. YOU.


Saturday 2022-12-24 12:27:16 by Teodor Spæren

2022 Day 23

Well, we finally got the mandatory "Conway's game of life" variation puzzle. This one was fairly straight forward, except that I wasted A LOT of time on part one, on a shitty bug in my "adjacency" function. I forgot to exclude the "(0,0)" delta, and so I got 9 items, instead of just the 8 squares surrounding.

I had to create a visualisation of this to figure it out and that took some time. This is the 3rd time this year, that I wished I had an unconstrained adjacency function, so I think that I'll include one like that in next year.

Part two is not very fast, even when using pypy. I wonder if it's me doing something stupid or if it's just a slow task. I will look in the megathread to see if there are some smart ways of optimizing this.

The reason I was not able to deliver this when the contest started, was that I was on a plane, with no elbow room to really work. So I decided to wait until we had arrived at our AirBnB.

Actual time:

Part 1: 00:39:23 Part 2: 00:01:46 Total : 00:41:09

Score: --------Part 1-------- --------Part 2-------- Day Time Rank Score Time Rank Score 23 04:25:17 4870 0 04:27:03 4640 0


Saturday 2022-12-24 14:08:55 by carshalash

Gatfruit will no longer drop from ice portals. (#72048)

About The Pull Request

For some god-forsaken reason, somebody decided that ice portals should be able to drop one of the most disruptive items in the game. This PR amends this by removing it from the drop pool.

Why It's Good For The Game

In 2013 gatfruit was introduced in the following PR #2000 . This was almost a decade ago at this point, repeatedly through the PR the creator states his belief that this item should only ever be obtainable through admin intervention due to its ridiculous capabilities. At the time everyone in the PR agreed it was a reasonable item to add as it was unobtainable without admin intervention. Over the years, it has crept its way to become more prevalent and openly obtainable, the most offensive of these options is the ice moon portal. As is, there is a 1 in 28 chance of obtaining the seeds, this sounds pretty inoffensive right? That's just 3.44% probability. Now, let us search the instances of the portal that spawns this.

image

That is a big number, a lot of chances to get that seed packet and other gamer looters. Now, let's take a look at the probability of being able to get these seeds, assuming you wipe out all of the portals.

image

92.8% chance to be able to get these seeds each shift if you focus entirely on gaming the portals. That's a pretty insane probability of being able to obtain the gatfruit seeds.

While I dislike people who sprint to the seed vault, there is at least the possibility of a pod person telling them to fuck off when they demand their free gamer seed. There is also the fact that the ruin isn't a guaranteed spawn every shift.

Changelog

🆑 balance: Gatfruit seeds will no longer drop from ice portals. /🆑


Saturday 2022-12-24 14:08:55 by GoldenAlpharex

*hand, or That /One/ Emote You Always Felt Was Missing (#71600)

About The Pull Request

It's happened to me repeatedly that I'd see someone down on the floor, and wanted to just, give them a hand, so they could take it and get up that way, without just, directly clicking on them, since that's a little bland. I've also wanted to just, offer my hand to someone so they could grab it, so that I could pull them alongside me, rather than just targeting one of their arms and ctrl-clicking them.

I've had this idea for a long time, and only just decided to do this today.

Now, I know what you might say. "Golden, that's a lot of code for something this simple!" You're not wrong. However. I decided to go along and to give some more love to the /datum/status_effect/offering status effect and the offering-related alerts, to make them a lot more versatile and a lot less hardcoded. Hence the whole "refactoring" part of this.

Of course, when I add something, I don't do it half-way. So, the way the emote works is much like the *slap emote, except that:

  • When you click on someone, it does the exact same as if you were offering the item to them, except that it's targeted (much like ctrl-shift-click).
  • If there's nobody directly adjacent to you, it won't do anything.
  • If there's at least one person lying down around you, you will offer them your help to get up. Should they take your hand and let you help them up, you will both receive a simple memory about being helped up (or helping up), as well as a 45-seconds-long small mood buff, because it feels nice to be on either end of such a friendly gesture. If they get up, they automatically get disqualified from being offered some help standing up, and likewise, if you lie down, that offer goes away as well.
  • If there's at least one person around you, you will instead extend your hand in their direction, for them to grab onto it. Should they do so, you will then grab them by their arms and pull them.

I reworked the offering status effect to no longer have a hardcoded can_hold_items() check, so that kisses and the hand offering would no longer need you to have free hands to complete. The logic here is that you can still pull someone even with both hands filled, so I figured I'd leave it this way.

Note: If anyone would like to give the item a better sprite, by all means, go ahead, that'd be amazing. I'm just not really a great spriter and couldn't be bothered to waste hours making a very meh hand.

Why It's Good For The Game

It's fluff, and nice fluff at that. It makes it easier for people to be nice to one-another without having to necessarily spend so long writing up an emote that the person on the floor will already have gotten back up. I'm sure the MRP folks will like it, and I'm certain the HRP downstreams will love it too ;)

Changelog

🆑 add: Added the *hand emote, which you can offer to someone standing up in order to give them the possibility to grab onto your hand and let you drag them away, or to someone lying down to help them back up, which always makes everyone involved a little happier! refactor: De-hardcoded and genericized a lot of the offering status effect and alert code, to make it require a lot less copy-paste to handle new cases. fix: Offering a kiss no longer requires the receiver to have free hands to accept said kiss! /🆑


Saturday 2022-12-24 14:08:55 by Mothblocks

Smoothing groups optimization, save 265ms with configs, more on production & w/ space ruins (#71989)

This one is fun.

On every /turf/Initialize and /atom/Initialize, we try to set smoothing_groups and canSmoothWith to a cached list of bitfields. At the type level, these are specified as lists of IDs, which are then Joined in Initialize, and retrieved from the cache (or built from there).

The problem is that the cache only misses about 60 times, but the cache hits more than a hundred thousand times. This means we eat the cost of Join (which is very very slow, because strings + BYOND), as well as the preliminary length checks, for every single atom.

Furthermore, as you might remember, if you have any list variable set on a type, it'll create a hidden (init) proc to create the list. On turfs, that costs us about 60ms.

This PR does a cool trick where we can completely eliminate the Join and the lists at the cost of a little more work when building the cache.

The trick is that we replace the current type definitions with this:

- smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_ASH)
- canSmoothWith = list(SMOOTH_GROUP_FLOOR_ASH, SMOOTH_GROUP_CLOSED_TURFS)
+ smoothing_groups = SMOOTH_GROUP_TURF_OPEN + SMOOTH_GROUP_FLOOR_ASH
+ canSmoothWith = SMOOTH_GROUP_FLOOR_ASH + SMOOTH_GROUP_CLOSED_TURFS

These defines, instead of being numbers, are now segments of a string, delimited by commas.

For instance, if ASH used to be 13, and CLOSED_TURFS used to be 37, this used to equal list(13, 37). Now, it equals "13,37,".

Then, when the cache misses, we take that string, and treat it as part of a JSON list, and decode it from there. Meaning:

// Starting value
"13,37,"

// We have a trailing comma, so add a dummy value
"13,37,0"

// Make it an array
"[13,37,0]"

// Decode
list(13, 37, 0)

// Chop off the dummy value
list(13, 37) // Done!

This on its own eliminates 265ms without space ruins, with the combined savings of turf/Initialize, atom/Initialize, and the hidden (init) procs that no longer exist.

Furthermore, there's some other fun stuff we gain from this approach emergently.

We previously had a difference between S_TURF and S_OBJ. The idea is that if you have any smoothing groups with S_OBJ, then you will gain the SMOOTH_OBJ bitflag (though note to self, I need to check that the cost of adding this is actually worth it). This is achieved by the fact that S_OBJ simply takes the last turf, and adds onto that, meaning that if the biggest value in the sorting groups is greater than that, then we know we're going to be smoothing to objects.

This new method provides a limitation here. BYOND has no way of converting a number to a string at compile time, meaning that we can't evaluate MAX_S_TURF + offset into a string. Instead, in order to preserve the nice UX, S_OBJ now instead opts to make the numbers negative. This means that what used to be something like:

smoothing_groups = list(SMOOTH_GROUP_ALIEN_RESIN, SMOOTH_GROUP_ALIEN_WEEDS)

...which may have been represented as

smoothing_groups = list(15, MAX_S_TURF + 3)

...will now become, at compile time:

smoothing_groups = "15,-3,"

Except! Because we guarantee smoothing groups are sorted through unit testing, this is actually going to look like:

smoothing_groups = "-3,15,"

Meaning that we can now check if we're smoothing with objects just by checking if smoothing_groups[1] == "-", as that's the only way that is possible. Neat!

Furthermore, though much simpler, what used to be if (length(smoothing_groups)) (and canSmoothWith) on every single atom/Initialize and turf/Initialize can now be if (smoothing_groups), since empty strings are falsy. length is about 15% slower than doing nothing, so in procs as hot as this, this gives some nice gains just on its own.

For developers, very little changes. Instead of using list, you now use +. The order might change, as S_OBJ now needs to come first, but unit tests will catch you if you mess up. Also, you will notice that all S_OBJ have been increased by one. This is because we used to have S_TURF(0) and S_OBJ(0), but with this new trick, -0 == 0, and so they conflicted and needed to be changed.


Saturday 2022-12-24 14:31:46 by PunPun-kun

I got discouraged.

The God damn signs fucked me over cuz I don't have an efficient way of translating and communicating them to you. I will try tomorrow.


Saturday 2022-12-24 14:41:29 by Choi

I knokw - this never happened, you don't exist

unlike Stephen Curry I am ot lead by blind into the hole

like Rich Roll before we was dead - I want to be light and performant game

I listen to Jesus - I know about salt and trampled under foot, enemies and feet, gather and scatter, sow reap store labour spin

let me be Heroes of Might and Maigc 3 game - without sugar like Neo I choose red pill like when we gather the dish and see caesar's dish of bread mixed with fruit - we gather bread from it nad leave the rest let me do the same to Heroes 3 - take the 7 castles, creatures, artifacts, numbers - all the bread of the game and leave music and graphics out let me use words - I follow Jesus I know about Word - and symbols and characters - text, and colors, light soft calm I will not make sure to have all the errors of Heroes 3 - but will program it's world the way it is and see how numbers are without mistakes like Morpheus - I want to just get Neo out I am not a new game - I am Heroes of Might and Magic 3, gathered free, no Money evil, open source and without sugar - the chess essence without elders I listen to Jesus I know about elders and high places those who compete in Heroes 3 - when I am ready - will be able to continue playing the same game but light and Money disease free

:Zach-Galifianakis people say you are not aging - is that why your mivies feel like eternity? :Keanu-Reeves eternity feels shorter than this


Saturday 2022-12-24 15:32:28 by David Conner

TLDR: amdgpu-pro-libgl magically unexists on AUR!

  • I need to edit the .obj files that seem to be turning out decently, but blender doesn't start.

  • OH AND I PUT THE FUCKING WINDOWS HARDDRIVE IN MY GODDAMN LAPTOP. ... WHICH IS PRECISELY WHY I FUCKING HATE WINDOWS. AND NO I DO NOT WANT MY FUCKING PASSWORDS OR KEYS ON ANY DISK THAT WINDOWS COULD POSSIBLY READ.

  • This is why I'd rather not bother. However, emacs will generate very nice SVG's for material test-swatches in lightburn for laser-cutting. programming is very helpful with almost everything and it's a shame that windows is so regressive. people have no idea how to use a computer. i do, but goddamn, when i try to do normie things, windows monopolized every software application market they could and locked out all the damn programmers.


Saturday 2022-12-24 16:09:37 by SkyratBot

[MIRROR] Create a guide for atomization that includes a new allowance to pull requests that might add dead code [MDB IGNORE] (#17839)

  • Create a guide for atomization that includes a new allowance to pull requests that might add dead code (#71429)

@ tgstation/commit-access

I'm proposing a new use for the Atomic tag that we currently virtually never use.

We have countless pull requests over time, and plenty of which open now, that are enormous refactors over tens of files with thousands of additions. We are historically pretty slow to review and merge these, and it definitely scares a lot of maintainers off. I think part of the reason is that we do not like dead code being added, which is completely reasonable at our scale.

However, I propose that, for refactors/purely code stuff, we ease up on this a lot, and encourage (not require) people to make smaller pull requests, even to the extent that it creates APIs we do not use yet.

As an example, tgstation/tgstation#71421 does a massive refactor to carp. It also does some balance changes, which I think we could agree could be split off if it was enough of a pain. However, there's a bunch of other stuff that could have been individual pull requests here with this new allowance.

  • The new basic AI behaviors
  • The regenerator component
  • Pet commands component

These are things that:

  • Would not be used until the transition from simple to basic, but are easily reviewable on their own
  • Are easy to REMOVE if the OP does not follow up
  • Are easy to FINISH if the OP does not follow up

(I suspect even, for instance, that there are parts of Wallening we could be merging right now, that's probably gonna be hundreds or thousands of files long...)

Pros:

  • PRs are more often easily reviewable
  • PRs are quicker to merge, since we don't have conflicts from editing one of the 70 files they changed
  • Cleanups can be more easily finished by other people. I don't suspect this will be likely, but it's not easily possible today

Cons:

  • We have to mark the PRs as atomic
  • Someone needs to look through every so often (I'm thinking like, once a month or something) to see if the code ended up being used, or if the committer still plans to use it
  • If the PR is adding a complex enough API that isn't modular, it might be very hard to remove. I suspect for PRs like this that we ask them to have an implementer before merging.

NL voice would love your thoughts on this

  • Create a guide for atomization that includes a new allowance to pull requests that might add dead code

Co-authored-by: Mothblocks [email protected]


Saturday 2022-12-24 17:16:47 by LemonInTheDark

Adds a preference that disables intensive rendering on different multiz layers (#71218)

About The Pull Request

It's kinda hacky, but it is nearly the same as just rendering one z layer. We allow people to ENTIRELY REMOVE most plane masters from their screen. This has the side effect of disabling most visual effects (AO is a big one) which saves a LOT of gpu.

We rely on planes being essentially layers to ensure things render in the proper order. (outside of some hackyness required to make parallax work)

I've kept parallax and lighting enabled, so visuals will still look better then multiz pre plane cube. It does also mean that things like FOV don't work, but honestly they didn't work PRE plane cube, and FOV's implementation makes me mad so I have a hard time caring.

Reduces gpu usage on my machine on tram from 47% to 32%, just above the 27% I get on meta.

I'm happy with this.

Oh also turns out the parallaxing had almost no cost. Need to remove it as a side effect of what I'm doing but if I could keep it I would.

There's still room for in between performance options, like disabling things like AO on lower z layers, but I didn't expect it to make a huge impact, so I left things as is

Also fixes a bug with paper bins not respecting z layer. It came up in testing and annoyed me

Why It's Good For The Game

Ensures we can make multiz maps without running into client performance issues, allows users to customize performance and visual quality.

Changelog

🆑 add: Adds a new rendering option to the gameplay preferences. You can now limit the rendering intensity of multiz levels. This will make things look a bit worse, but run a LOT better. Try it out if your machine chokes on icebox or somethin. /🆑

Co-authored-by: Mothblocks [email protected]


Saturday 2022-12-24 17:16:47 by LemonInTheDark

Fixes attempting to offset floating planes (#71490)

About The Pull Request

This is a dumb idea, and leads to fucked rendering on occasion

Why It's Good For The Game

Fixes another portion of #70258, a player will no longer have a hidden antag hud if they move down a z level after getting an antag. We were trying to offset the floating plane of their image, and it went to shit. Also fixes a bug with observers not having antag huds for the combo hud to see. We were only giving them one on mind.on_transfer, rather then on mind assignment. I hate mindcode


Saturday 2022-12-24 17:52:05 by Kevin Conley

holy shit its the fucking length of the bar message....


Saturday 2022-12-24 18:04:46 by Iamgoofball

Hotkey-based inventory management now applies the click cooldown to prevent it from being abusable in combat scenarios. (#71325)

About The Pull Request

Hotkey-based inventory management now applies the click cooldown to prevent it from being abusable in combat scenarios. Why It's Good For The Game

Players have been deploying unbelievable levels of abuse with these hotkeys having completely uncapped speeds. I watched one cheater do automated inventory management using storage items and weirdly named empty pills to use as inventory delimiters. Resolves people being able to have a baton hidden in their backpack and then activate and baton someone with it in 0.1 seconds without moving their mouse cursor off of their target.

Players should not be able to interact with their inventory faster than someone moving a mouse and clicking the left mouse button. This cripples the game balance and puts anyone with a worse internet connection, slower reaction speeds, or laggier computer at a distinct disadvantage against people who can macro their inventory management.

I can set up autohotkey so that I can withdraw a stun baton from my backpack, turn it on, and then click someone by just holding down a key and pressing M1 over someone. This shit needs to stop.

If a do_after() on hotkey management is too harsh, we can apply a combat click cooldown every time you use the hotkeys instead to discourage combat macro abuse. Swapped it over to a click cooldown. Changelog

cl balance: Hotkey-based inventory management now applies the click cooldown to prevent it from being abusable in combat scenarios. /cl


Saturday 2022-12-24 18:34:05 by SkyratBot

[MIRROR] Drinking singulo ignores supermatter hallucinations and pulls nearby objects [MDB IGNORE] (#18157)

  • Drinking singulo ignores supermatter hallucinations and pulls nearby objects (#71927)

About The Pull Request

Drinking a singulo will now:

  • Give immunity to supermatter hallucinations
  • Pulls objects to you based on the total volume in your system (20u = 1x1, 45u = 2x2, 80u = 3x3)
  • Makes a burp and supermatter rays/sound when objects are pulled

The new ingredient is:

  • Vokda 5u
  • Wine 5u
  • Liquid Dark Matter 1u (replaces Radium)

Why It's Good For The Game

More cool effects for drinks. Singularity is all about gravity and the drink should have a theme around that.

dreamseeker_2q21YXS698

Changelog

🆑 add: Drinking singulo will now ignore supermatter hallucinations and pull objects to you balance: Change singulo drink recipe to require liquid dark matter instead of radium. /🆑

  • Drinking singulo ignores supermatter hallucinations and pulls nearby objects

Co-authored-by: Tim [email protected]


Saturday 2022-12-24 19:07:04 by Clifford T. Matthews

includes my La Lu pack run from today.

My goal was to not fall, and I didn't, so that was nice. However, I got too spooked by the cold weather that other people are experiencing and so I went out wearing arm sleeves and a fleece hat (under my ice hat), which was silly. My truck thermometer said it was 28F, so I should have known better. Additionally, I wore my microspikes which was foolish since there was no snow all the way up to the plate. To round out my errors, I also didn't blow the liquid out of the line coming out of my bladder, nor did I do a test draw to make sure things weren't kinked and--not surprisingly--could not get anything from my bladder and I didn't even test it before I got to the turnaround.

So, at the top, I took off my pack, removed my microspikes, hat and arm sleeves, put them into my pack and put my pack on, only to find out a little later that my bladder was useless. Oops.

I do believe I got a useful training effect today. I also believe that my stats are "good enough" considering everything that was holding me back (which is why my average HR was only 130bpm). However, I believe that had I done a little more prep the night before and paid a little more attention to the weather, I would have been able to push myself harder and also not had the big pause at the top.

I did not do this training in two out of the last four training seasons due to being sick. It's too early for me to be sure, but I suspect that with me not drinking alcohol until after Western States, I will avoid some of the sickness I've had in previous years.


Saturday 2022-12-24 19:56:40 by Spencer

Transpile packages on demand, validate all TS projects (#146212)

Dearest Reviewers 👋

I've been working on this branch with @mistic and @tylersmalley and we're really confident in these changes. Additionally, this changes code in nearly every package in the repo so we don't plan to wait for reviews to get in before merging this. If you'd like to have a concern addressed, please feel free to leave a review, but assuming that nobody raises a blocker in the next 24 hours we plan to merge this EOD pacific tomorrow, 12/22.

We'll be paying close attention to any issues this causes after merging and work on getting those fixed ASAP. 🚀


The operations team is not confident that we'll have the time to achieve what we originally set out to accomplish by moving to Bazel with the time and resources we have available. We have also bought ourselves some headroom with improvements to babel-register, optimizer caching, and typescript project structure.

In order to make sure we deliver packages as quickly as possible (many teams really want them), with a usable and familiar developer experience, this PR removes Bazel for building packages in favor of using the same JIT transpilation we use for plugins.

Additionally, packages now use kbn_references (again, just copying the dx from plugins to packages).

Because of the complex relationships between packages/plugins and in order to prepare ourselves for automatic dependency detection tools we plan to use in the future, this PR also introduces a "TS Project Linter" which will validate that every tsconfig.json file meets a few requirements:

  1. the chain of base config files extended by each config includes tsconfig.base.json and not tsconfig.json

  2. the include config is used, and not files

  3. the exclude config includes target/**/*

  4. the outDir compiler option is specified as target/types

  5. none of these compiler options are specified: declaration, declarationMap, emitDeclarationOnly, skipLibCheck, target, paths

  6. all references to other packages/plugins use their pkg id, ie:

    // valid
    {
      "kbn_references": ["@kbn/core"]
    }
    // not valid
    {
      "kbn_references": [{ "path": "../../../src/core/tsconfig.json" }]
    }
  7. only packages/plugins which are imported somewhere in the ts code are listed in kbn_references

This linter is not only validating all of the tsconfig.json files, but it also will fix these config files to deal with just about any violation that can be produced. Just run node scripts/ts_project_linter --fix locally to apply these fixes, or let CI take care of automatically fixing things and pushing the changes to your PR.

Example: 64e93e5 (#146212) When I merged main into my PR it included a change which removed the @kbn/core-injected-metadata-browser package. After resolving the conflicts I missed a few tsconfig files which included references to the now removed package. The TS Project Linter identified that these references were removed from the code and pushed a change to the PR to remove them from the tsconfig.json files.

No bazel? Does that mean no packages??

Nope! We're still doing packages but we're pretty sure now that we won't be using Bazel to accomplish the 'distributed caching' and 'change-based tasks' portions of the packages project.

This PR actually makes packages much easier to work with and will be followed up with the bundling benefits described by the original packages RFC. Then we'll work on documentation and advocacy for using packages for any and all new code.

We're pretty confident that implementing distributed caching and change-based tasks will be necessary in the future, but because of recent improvements in the repo we think we can live without them for at least a year.

Wait, there are still BUILD.bazel files in the repo

Yes, there are still three webpack bundles which are built by Bazel: the @kbn/ui-shared-deps-npm DLL, @kbn/ui-shared-deps-src externals, and the @kbn/monaco workers. These three webpack bundles are still created during bootstrap and remotely cached using bazel. The next phase of this project is to figure out how to get the package bundling features described in the RFC with the current optimizer, and we expect these bundles to go away then. Until then any package that is used in those three bundles still needs to have a BUILD.bazel file so that they can be referenced by the remaining webpack builds.

Co-authored-by: kibanamachine [email protected]


Saturday 2022-12-24 20:56:01 by Michael Sproul

Refactor op pool for speed and correctness (#3312)

Proposed Changes

This PR has two aims: to speed up attestation packing in the op pool, and to fix bugs in the verification of attester slashings, proposer slashings and voluntary exits. The changes are bundled into a single database schema upgrade (v12).

Attestation packing is sped up by removing several inefficiencies:

  • No more recalculation of attesting_indices during packing.
  • No (unnecessary) examination of the ParticipationFlags: a bitfield suffices. See RewardCache.
  • No re-checking of attestation validity during packing: the AttestationMap provides attestations which are "correct by construction" (I have checked this using Hydra).
  • No SSZ re-serialization for the clunky AttestationId type (it can be removed in a future release).

So far the speed-up seems to be roughly 2-10x, from 500ms down to 50-100ms.

Verification of attester slashings, proposer slashings and voluntary exits is fixed by:

  • Tracking the ForkVersions that were used to verify each message inside the SigVerifiedOp. This allows us to quickly re-verify that they match the head state's opinion of what the ForkVersion should be at the epoch(s) relevant to the message.
  • Storing the SigVerifiedOp on disk rather than the raw operation. This allows us to continue track the fork versions after a reboot.

This is mostly contained in this commit 52bb1840ae5c4356a8fc3a51e5df23ed65ed2c7f.

Additional Info

The schema upgrade uses the justified state to re-verify attestations and compute attesting_indices for them. It will drop any attestations that fail to verify, by the logic that attestations are most valuable in the few slots after they're observed, and are probably stale and useless by the time a node restarts. Exits and proposer slashings and similarly re-verified to obtain SigVerifiedOps.

This PR contains a runtime killswitch --paranoid-block-proposal which opts out of all the optimisations in favour of closely verifying every included message. Although I'm quite sure that the optimisations are correct this flag could be useful in the event of an unforeseen emergency.

Finally, you might notice that the RewardCache appears quite useless in its current form because it is only updated on the hot-path immediately before proposal. My hope is that in future we can shift calls to RewardCache::update into the background, e.g. while performing the state advance. It is also forward-looking to tree-states compatibility, where iterating and indexing state.{previous,current}_epoch_participation is expensive and needs to be minimised.


Saturday 2022-12-24 21:05:47 by necromanceranne

Bodypart code cleanup, robotic limbs can actually be disabled through damage again. (#71739)

About The Pull Request

Cleans up various variables and code comments in bodypart code so that it is easier to understand (hopefully) what the fuck is happening there.

Fixes a hilarious oversight. For what may have been an entire 2 year span, robotic limbs were unable to be disabled whatsoever. Good stuff.

Why It's Good For The Game

Lost all your limbs and now have only surplus prosthetics? Congratulations! You're now more durable than even someone with proper robotic limbs, as your arms do not contribute anything more than 10 damage (or 15 stamina) to your overall damage taken. Furthermore, taking the maximum amount of damage is actually entirely meaningless to you.

Laugh as someone attempting to shoot your arms does almost no meaningful damage once you hit the cap! It's all sunk cost! You can't have it blown off anyway, because dismembering surplus limbs is gone!

Who knew getting into a horrible bluespace/goliath accident could have such an impact on your combat prowess. Thanks Nanotrasen!

Anyway, these vars are ugly.

Changelog

🆑 code: Makes a lot of the bodypart variables clearer as to what they do. Includes more detailed code comments. fix: Robotic limbs are no longer immune to being disabled through reaching maximum damage. /🆑


Saturday 2022-12-24 21:30:48 by Colovorat

Fixes cable merging, changes merging code just a little bit (#60997)

Makes stack code support merging two different stacks with the same mats, but different mats_per_unit numbers by implementing averages.

It's in an attempt to support the stupid efficiency shit that protolathes do. It's not great, but it ought to work alright for now. Kinda a bandaid Co-authored-by: LemonInTheDark [email protected]


Saturday 2022-12-24 21:54:22 by Greg Hurrell

refactor: more tweaks for new version of git-cipher

In our "dotfiles" aspects we have some entries in "files" that are really directories, and they contain encrypted files:

Directory: Contains:


.config/Raycast .config/Raycast/Script Commands/emp.sh .config/Raycast/Script Commands/the-hub.sh

.gitconfig.d .gitconfig.d/retiro

.zsh .zsh/exports.private .zsh/hash.private

I am not too worried about the Raycast ones, because I'll always decrypt on macOS, and that's the only place I use Raycast.

But ".gitconfig.d" could be a problem. If we include such a file without decrypting it, Git will complain about bad config.

Likewise if we source the ".zsh" items and they are full of gibberish because they're still encrypted, that will cause problems.

So, as mitigation:

  1. In the ".zsh" files, we avoid sourcing them if we detect a magic header indicating that the file is still encrypted. I didn't want to call out to git-cipher is-encrypted from my shell startup files, because I want shell startup to be fast.

  2. In the ".gitconfig.d" files, we'll skip over them if they aren't decrypted. Note that if you then do a git-cipher lock, the link will start pointing at ciphertext that Git will consider to be invalid garbage. In practice, we already have this problem with lots of other dotfiles; you're not really supposed to lock a repository that you're actively using to provide configuration to your machine.

In the "ssh" aspect, we have similar stuff going on. The main "~/.ssh/config" file is templated out, and we won't do that if it is not decrypted. It itself includes files that are links to (hopefully) decrypted files. We skip creating those links if things aren't decrypted, with the same results: if you later lock, they will suddenly become invalid, and you probably shouldn't do that.

Includes submodule update:

  • vendor/git-cipher 35ab0b5...17e05c5 (5):

    style: format more docs feat(add): staged new files in Git index docs: clean out old documentation refactor: uncomment some code refactor: remove dead code


Saturday 2022-12-24 22:12:23 by Dustin Carlino

Make the quick sketch UI less clunky. #743

Let the map be panned even when we're snapped to an intersection. Previously it's super obnoxious to start drawing a route in a huge map. Also I'd love to switch to the new World API and stop with this ad-hoc logic, but slightly confused about how to do that here...

Also add a reset button, otherwise I just switch tabs to force a reset, which is silly.


Saturday 2022-12-24 23:05:31 by SkyratBot

[MIRROR] mech bustin update 2022 [MDB IGNORE] (#17504)

  • mech bustin update 2022 (#70891)

About The Pull Request

Adds a huge ass crowbar to robotics (the mech removal tool), it deals 5 damage unwielded, or 19 wielded. (should be fine, considering robotics also has the easiest access to the materials needed for a chainsaw) You can use it while wielded on mechs to break the occupants out. This takes 5 seconds (or 3 in an unenclosed mech like a ripley) When you die in a mech you no longer automatically get ejected. refactors fire axe cabinets to support more items than the fireaxe makes some vehicle code better closes #70845 (you can still enter a mech without limbs, i think thats fine because you can use it to protect yourself from death in a dangerous situation or something until someone breaks you out with the really large crowbar) video: https://streamable.com/x4gom2

Why It's Good For The Game

robotics having a giant ass crowbar to break people out of mechs seems like a fun idea you currently cant exit a mech if youre incapacitated inside it unless you DIE

Changelog

🆑 Fikou, sprites by Halcyon refactor: fire axe cabinets support items that aren't fire axes balance: mechs no longer eject you when you die in them add: Adds a giant crowbar to robotics, it can break open mechs to eject their pilots. /🆑

  • mech bustin update 2022

  • vr for the love of god

Co-authored-by: Fikou [email protected] Co-authored-by: Jolly-66 [email protected]


Saturday 2022-12-24 23:06:16 by Nikolay Valentinovich Repnitskiy

comment holy shit 1 line to chmod ext4 drive dumb fucks


Saturday 2022-12-24 23:44:52 by Sol N

converts contraband file into poster file, makes holiday posters work (kind of) (#72131)

About The Pull Request

The first part of this is just something that bothered me when I was messing around with something that I will PR in the new year, contraband.dm and dmi is ONLY posters. There's nothing else in there and there are plenty of official posters, and if with #71717 we will also add holiday posters to the mix then I think that its time to retire contraband and make it poster.

Some small things I did while messing with it was change some variables that were single letters into actual variable names, but overall this part of the pr is not a player facing change.

That said, speaking of #71717 I think that it didn't work? Or didn't work the way that it was supposed to? All of the spawned posters aren't instances of festive posters, they are instances of normal posters, so the code on initialize was not doing anything and the only reason the holiday_none poster was showing up was because of the proc in randomize spawning the posters in as those other posters. Because it didn't actually become poster/official/festive it never could do the proc that turns it into a poster for the holiday that is actually occurring.

But then when I made it work and it turned into the generic posters I decided that it would be better if instead of 30% of all posters being a half finished mess, that if there wasn't a holiday poster it just wouldn't replace them at all. I have poster Ideas and Dreams so I will try to help with adding to more holiday posters but not in this PR.

What IS in this PR though, is a new traitor poster that appears during the holidays.

dreamseeker_MxxBzXIxiy

This is a generic evil holiday poster that will replace normal evil posters in the evil poster objective, because I agree with #72003 that it should be a feature.

Why It's Good For The Game

Contraband file is just posters already, this is easier for people to find the posters. I like holiday posters and think that we should have them and add more, it is a fun easy thing to add to a lot of the microholidays to make them more visible in addition to the name generation, but I don't want to see the unfinished holiday poster so I do think that it's better to only have them spawn if the holiday actually has a poster. Looking forward to febuary!

Changelog

🆑 add: during holidays the spread syndicate propaganda through posters objective has a chance of spawning evil holiday poster fix: framework for holiday posters is more functional and modular code: contraband.dm file and contraband.dmi file are both now poster.dm and poster.dmi /🆑


< 2022-12-24 >