00:48:27 03WizardIke02 07* 0.34-a0-989-gea061f7a3d: Fix some mark of the celebrant related crashes 10(46 minutes ago, 3 files, 90+ 68-) 13https://github.com/crawl/crawl/commit/ea061f7a3d48 00:59:25 -!- indigaz28 is now known as indigaz2 02:32:50 <04d​racoomega> I'd actually specifically hesitated on making Celebrant a fineff for a while because I liked the guarantee that it would happen as soon as you fell below 50% HP, which could sometimes save you from multi-hitting enemies (instead of happening at the end of their full attack round). However, even though I patched out a few crashes that could occur from that, probably in truth there's just too many other ways it's still theoretically 02:32:50 possible to crash that I never got around to (or would still exist). And Celebrant is still overperforming, power-level-wise, so it's not like it can't handle a nerf. It just makes me mildly sad that it's possible to, say, die from a series of multiple rapid attacks without even firing off. Though, to be honest, is there any real harm in killing a dead monster just being a no-op? Like, I realize this specific crash is because it's trying to look up 02:32:51 something that doesn't exist, but there could just be a check at the start to do nothing. 02:33:57 <04d​racoomega> Since I don't see that 'do nothing' ever results in subsequent invalid state 02:37:34 <04d​racoomega> And this is hardly the only time that's come up 02:40:30 03mumra02 07https://github.com/crawl/crawl/pull/4429 * 0.34-a0-990-g43729a4361: Add a cachebusting key to lobby static assets 10(7 months ago, 3 files, 7+ 4-) 13https://github.com/crawl/crawl/commit/43729a43617a 02:43:26 <07w​izardike> final effects are run between attacks from monsters (and its a huge source of bugs) 02:43:35 <04d​racoomega> Wait, they are? 02:43:45 <04d​racoomega> I thought it was at the end of the attack round' 02:44:21 <04d​racoomega> But no, I guess not, on a quick look 02:44:27 <04d​racoomega> I just thought they were 02:44:28 <06m​umra> I feel like historically in similar situations people have said things like "it's an indication of an already incorrect state and therefore a crash lets us know about a possible underlying bug" ... but yes it does seem to often make things overly complex for not much practical reason. 02:45:55 <04d​racoomega> That is definitely sometimes true, for sure. (But also, there are a lot of effects that are like "Calculate list of targets, and then damage each target." that end up needing to check aliveness later on because somebody forgot. I've done this myself multiple times.) 02:46:25 <04d​racoomega> One common cause being that both a summoner and its summons are in the list, and if you kill the summoner first, all the summons are dead by the time the iterator gets to them 02:46:30 <06m​umra> On the other hand I feel that structurally, something like celebrant should go in a fineff if possible, because it's kind of a whole extra attack round and having it happen in the middle of a monster's attack seems prone to all kinds of issues (and the potential for attackception if there are multiple entities in the room with retaliation or other similar effects) 02:46:41 <07w​izardike> They were over 10 years ago but that caused weirdness with distortion weapon blinking and banishing 02:46:50 <04d​racoomega> Yeah, that makes some sense 02:47:49 <04d​racoomega> (Really, all methods of handling this set of things is probably imperfect in one way or another, and it's just deciding which imperfect is probably best.) 02:57:34 03mumra02 07https://github.com/crawl/crawl/pull/4429 * 0.34-a0-990-g0e5fcfc90c: Add a cachebusting key to lobby static assets 10(2 minutes ago, 3 files, 7+ 4-) 13https://github.com/crawl/crawl/commit/0e5fcfc90ce7 03:18:54 03mumra02 07* 0.34-a0-990-g43e0034f20: Add a cachebusting key to lobby static assets 10(24 minutes ago, 3 files, 7+ 4-) 13https://github.com/crawl/crawl/commit/43e0034f2077 03:30:59 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1430503696764239902/image.png?ex=68fa03e2&is=68f8b262&hm=548932acb4e1349e374e55fc6fce4b5bf7b17f0a8dee9a8fca84fb7055b95a5f& 03:31:08 <06m​umra> Does anybody know about the underscore chars at the beginning of lines? 03:31:33 <06m​umra> It appears to denote the last message of a given turn. 03:32:35 <06m​umra> It's one of those things I never really noticed, until I just tested using the variable-width version of DejaVu in the messages panel, and the underscores make things look really messy suddenly (since the char is a different width to the space) 03:32:37 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5261-gd9800d219b 03:33:11 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1430504247673356391/image.png?ex=68fa0466&is=68f8b2e6&hm=0c4d187a15ac35ebdd03c6020ac991917c528e20d5657652509e2b2cca07fa31& 03:33:36 <04d​racoomega> I mean, I would have thought it was obvious, to be honest. (I think it's very helpful sometimes.) 03:33:55 <04d​racoomega> It is definitely breaking things apart by turn 03:34:30 <04d​racoomega> Though I don't know that it really ocurred to me that it was a leading underscore as opposed to a break between the lines (though what else would it be?) 03:34:45 <06m​umra> Yep, it's obvious when one thinks about it, but it's also a detail I literally never noticed 03:35:44 <06m​umra> I'm only wondering if it could be represented in a slightly nicer way in tiles and webtiles (e.g. a full-width divider line, or alterating background colours) 03:36:44 <04d​racoomega> I suppose it's possible 03:37:02 <04d​racoomega> (I wonder if alternating background would end up looking a bit dizzying, though) 03:37:56 <06m​umra> i mean just alternating black and very dark grey, something subtle 03:39:00 <06m​umra> or even just a 2-3px padding, although this would result in the topmost line sometimes being partially cut off 07:01:30 <04d​racoomega> Fun fact: if the player leaves a floor with a petrified monster on it and returns to it before it's worn off, the petrified monster will be standing somewhere different than when you left >.> 07:02:28 <04d​racoomega> (Likely because the relevant part of code that simulates off-floor monster movements is too old for petrification to even exist) 07:11:29 <06m​umra> Maybe some other monsters were there just moving their friend around 07:12:26 <04d​racoomega> There's actually several dubious parts of this 07:12:34 <04d​racoomega> Though that is the most obviously silly 07:13:28 <04d​racoomega> But the function used to actually move the monster around also does randomization on each step (in a way that makes me wonder if the caller even realizes this) in a way that I am pretty sure can result in it moving in the opposite direction it intends 07:13:59 <04d​racoomega> (As part of my big movement code refactoring, I am going into pretty much every obscure method that results in something moving ^^; ) 07:14:09 <09g​ammafunk> ho boy 07:14:25 <09g​ammafunk> is that going to cause lots of bugs that only lots of player testing can reveal? 07:14:41 <04d​racoomega> Hopefully not! (Realistically, probably a few.) 07:14:51 <04d​racoomega> Of course, it's also fixing more bugs than I can count also 07:15:13 <09g​ammafunk> ooh, I'm hoping for an ??epic_bug where no mobile monster in the game can move. think of the fun that could be had 07:16:20 <04d​racoomega> But the main thrust of it is to reduce a bunch of confusingly-similar methods and bundle common post-move functionality into a single method instead of requiring callers to roll their own logic (and remember which combination of a half-dozen follow-up functions are appropriate). You state the semantics of the movement and the code will handle whatever set of post-move effects are appropriate for those semantics, in a consistent 07:16:21 way. 07:17:42 <04d​racoomega> Which should fix the constantly recurring 'someone forgot to check for so-and-so after moving in this function' issues we have, while being more consistent in general. 07:18:34 <09g​ammafunk> nice, I do recall when working on anything related to monster/player movement (e.g. monster throwing actors (rip op crushers) and harpoon shot) that there was a lot of hand-rolled cleanup logic that seemed like it had to be copied from existing examples 07:19:04 <09g​ammafunk> a lot of stuff regarding things coming into los and other movement effects 07:19:10 <04d​racoomega> Yeah. And there's actually good reasons for some different movements to have different cleanup (but then many of them have differences for clearly accidental reasons...) 07:19:50 <04d​racoomega> So now you basically say whether a movement is volitional or a translocation or whatever when doing it (or a handful of other optional flags) and common logic controls "What is supposed to happen after that." 07:20:16 <03i​mplojin> i saw a fun example of the beholder/fearmonger/etc move effect duplication in the linepass tracer yesterday 07:20:19 <03i​mplojin> https://github.com/crawl/crawl/blob/master/crawl-ref/source/god-abil.cc#L5787-L5850 07:20:35 <09g​ammafunk> I had to guess what volitional means but my guess was right 07:21:05 <09g​ammafunk> oh you can do ranges in github anchor links, nice 07:21:17 <09g​ammafunk> thought it had to be a specific line only 07:21:24 <04d​racoomega> (Basically: we only trigger barbs on manual movements and not knockback/trample/etc.) 07:21:41 <04d​racoomega> But we're currently fairly inconsistent about this 07:22:15 <04d​racoomega> Being dragged will make you take barb damage (but being tampled won't). And there is at least one case that warns you will take damage (but doesn't hurt you) and another that hurts you but doesn't warn. 07:24:29 <04d​racoomega> Alas, nothing I'm working on actually touches that sort of thing at the moment >.> 07:25:29 <03i​mplojin> i remember sorting through these for rampage and trying to figure out what should be canonical because most everywhere just had different hand-rolled versions 07:25:55 right, I just can't see asserting on an already-dead monster serving any purpose. and I am also completely unsurprised that fineffs already interfere with each other; I'd wondered why I hadn't already heard about it, with the number of things that have been turned into fineffs to avoid other crashes 07:26:12 I figured they'd have to start interfering with each other or etc. at some point 07:26:13 <03i​mplojin> rip 07:27:00 <04d​racoomega> Yeah, logic for determining whether one should move somewhere or another is generally not being touched by me at the moment. Just the code for actually doing the movement and its after-effects. 07:28:02 <04d​racoomega> Like, does anyone know off-hand the difference between you.moveto(), you.move_to_pos(), move_player_to_grid(), and you.shifto()? ^^; 07:28:58 <03i​mplojin> i actually looked this up once and i do not remember 07:29:03 <03i​mplojin> i think one of them was lower-level? 07:30:46 <04d​racoomega> Yeah, some of it's lower and higher level, but it's not very clearly advertised the exact consequences of one versus the other. (And also: you.moveto() and you.move_to_pos() are almost identical, in practice, but monster::moveto() and monster::move_to_pos() are quite a bit different since the former doesn't update the mgrid!) 07:31:32 <04d​racoomega> But in general I am trying to remove as many slightly-different ways to call something as possible, while still preserving what functionality is actually important 07:32:21 <04d​racoomega> And fixing a slew of bugs or wierdnesses while I do so 07:34:43 until you discover you've introduced new ones because some obscure side effect of e.g. a spell was relying on the slightly-different behavior 07:35:03 gotta test pretty much every possible combination of things in dcss >.> 07:35:34 (that said, the alternative would, if done "properly", turn dcss into a logic game instead of a roguelike >.>) 07:36:54 <04d​racoomega> I mean, the exact aftereffects of a bunch of things will be slightly different than before, but in a lot of cases, I think being consistent is more important than any specific behavior 07:37:20 <04d​racoomega> (I am trying to be careful with tracing through consequences of things, but there's a lot being touched here) 07:39:08 <04d​racoomega> It's sort of comical how unambitious the task was that lead to all this 07:39:47 <04d​racoomega> (Adding a conceptually straightforward weapon brand) 07:40:54 <09h​ellmonk> lol 07:41:12 <04d​racoomega> Can't constrict a monster without first refactoring everything >.> 07:41:23 <06m​umra> You see here a dagger of conceptual straightforwardness 07:42:00 <09h​ellmonk> local dev wants to add one (1) piece of content. 3 months later, +2043 -1927 "refactor every aspect of movement" 07:42:08 <04d​racoomega> Heh 07:42:38 <04d​racoomega> I just found so many irregularities so quickly, though 😛 08:02:22 whats the feeling of the dev team on the current state of xomscumming ? 08:02:54 I've done a bunch of MuCK and xomscumming felt both tedious and optimal 08:04:39 the guide that came out recently advised to stop xomscumming after some XL (7 maybe, I don't remember?) because xom could abyss you but after digging through the source code and a bit of testing (done by NotBatman, a friend), we found out that xom always pull you back 08:05:52 the only thing that stopped me from waiting for the zot clock on every level is the doom counter and the fact that at some point you get something absurd like chaos gyre and gimble and you feel like winning 08:12:46 <06r​egret-⸸nde※> It has been a longterm plan of the dev who last revamped Xom to essentially completely remove Xomscumming by making anything that lasts longer than a given fight be alloted based on entering new floors rather than randomly rarely at any given moment. 08:15:44 sounds like a good idea, my thought was to start durably summoning monsters when you have been on a given floor for too long but thats probably better 08:16:38 in the meantime, would I be stepping on anyone's toes if I made it so xom can actually send you to the abyss ? 08:24:22 <06r​egret-⸸nde※> Emphasizing early Xom banishment goes against the spirit of making Xom be substantially less early-rng-death based, as other effects like summon rescaling and polymorph controls already heavily emphasized. I'd rather just make bored Xom effects worse. 08:25:31 I guess making it possible for xom to abyss you at all is kinda "emphasizing" it 08:26:57 I interpret the current behaviour as a bug though ... From what I remember of the code (its been a couple weeks), it seemed like xom should be able to banish you if you are above a certain xl, and xom is bored and random rolls high enough. In practice, this never happens though I don't remember the exact reason why 08:27:55 how about just scare the shit out of players with a temporary "banishment"? (they get a quick look at the abyss and then get moved back where they started) 08:28:20 if the intended behaviour is to make xom fake-abyss you every time, there's a bunch of unncessary code that could be cleaned up 08:28:43 geekosaur: this is already Xom's behaviour every time it decides to banish you 08:28:53 ah 08:29:03 I don't play Xom much 08:29:04 there is supposed to be a slim chance of real banishment if Xom is bored but it never happens in practice 08:31:50 geekosaur: also, I played a bunch of Xom recently and I never even got fake banished, the chance is really small 08:47:42 <03i​mplojin> I would prefer to remove Xom banishment over making it more prominent. Xom has had issues that can make it very vicious to play at strategic timescales (e.g. muts being handed out including -potion and -scroll): randomly tossing the player into the abyss at earlier XLs comes across to me less as "haha playing with funny toys" and more as "this is some IVAN-level nonsense". It looks like the intent of the current Xom code is not to 08:47:43 abyss the player before XL 9 unless penance is happening which is itself spoilery; I'd be shocked if it were documented in-game anywhere. 08:51:04 <04d​racoomega> On investigation, it does appear to be bugged (in that the level-check for pseudobanishment is done at compile time, rather than run time, after the last time this was majorly refactored). Meaning getting banished outright does seem to currently be impossible. 08:51:49 <06r​egret-⸸nde※> Xom post-rework is already filled with xl thresholds by the very nature of trying to scale at all, and the player can't realistically avoid gaining experience. We might as well make it so Xom can give sun demons at xl 1 again because it's spoilery to know it doesn't happen until xl 13. 08:53:41 <04d​racoomega> I don't think banishment should be used as a realistic 'balance' against scumming (since it would need to be way more likely for that to be a realistic counterincentive) and I don't think that can be done without making it overly prominant in normal play. (However, I feel like a small chance of it happening at some point in the game is entirely reasonable and on-theme.) 'Spoiley' is a sort of an awkward thing to define with Xom in 08:53:41 general. Nobody is expected to understand the details of how Xom does anything they do, many of which are quite internally complicated just to be reasonable effects. But also: you shouldn't have to? Obviously if we considered this important anti-scumming tech, that would be a problem, but I don't think it ever had or should have that role in the first place. 08:55:51 <04d​racoomega> In the long run, metering out positive strategic benefits based on some vague measure of 'progress' rather than 'time' (as Index has talked about a few times before) is something I can get behind. But it's certainly not a quick change that can be dropped in. 08:57:08 <04d​racoomega> (In any case, bad mutations were already considered by a lot of people to be sufficient to make waiting around doing nothing negative expected value, and I think some of the expectation was that doom might do likewise for undead. I have no idea how much that is in practice, of course.) 09:01:52 <06r​egret-⸸nde※> (I basically haven't moved forward with the strategic rework, as I'd want several more types of "positive long-term effect" to stand in for the current big focus on items post-bazaars.) 09:03:42 <03i​mplojin> As regards quick changes, I'd wonder about refilling Xom's piety bar at each new floor entry and letting it drain over time as actions happen, getting rid of the randomization thing as it currently exists. Let bad actions happen with increasing likelihood as piety drains. 09:03:43 <06r​egret-⸸nde※> (I guess there's plausibly a way to use duplicate entries to just make Xom doom the player whenever they'd get mutated, to give undead species parity with living species, which will also discourage undead chaos knight scumming for the next while?) 09:05:03 <06r​egret-⸸nde※> The other part of not having gotten around to the rework over other projects is that Xom's mood / piety bar is next to useless for anything communicated to the player in any way, and emphasizing it more is much more spoilery than just loosely saying "it doesn't really matter beyond effects are mildly more dramatic at either end". 09:05:21 <06r​egret-⸸nde※> (I was planning on basically replacing every level besides boredom with an actual tension display.) 09:09:24 <04d​racoomega> It's sort of interesting, but I fear that the action rate may be too variable for this to feel good (especially when there's a lot of actions that are neither helpful nor harmful, and are essentially fluff). Maybe also incentivizes waiting around for your 'piety' to fall into badsville if you ever clear a floor fast, so that you use up as many strategic 'good' actions as many be possible before refilling. 09:10:35 <04d​racoomega> Rather than potentially 'wasting' that acquirement or good mutation gift or whatever 09:11:09 <03i​mplojin> simply make xom use up all remaining good actions at once upon going down :content: 09:11:16 <04d​racoomega> Ha 09:11:31 <03i​mplojin> "oh goodness this is an exciting toy 09:11:35 <04d​racoomega> "Wait, you don't want your Limited Time Offer to expire, mortal!" 09:12:21 <09h​ellmonk> on floor entry stuff good 09:12:35 <09h​ellmonk> thats poggers 09:13:25 <04d​racoomega> I general though, I tend to fear that trying to do a quick version of this 'properly' might still take half the effort of doing the proper rework, while being worse than it. 09:14:23 <04d​racoomega> And that the easiest short-term solution probably is just to make doom against undead more equitable to how badmuts seem to adequately disincentivize scumming on living species. (At least I've heard people report that they do this adequately.) 09:14:56 <04d​racoomega> I have never tried to Xomscum myself (because why would I do that to myself? >.>; ) 09:25:50 03dolorous02 07* 0.34-a0-991-g3133c6b059: Add another Xom esteem name to artefacts. 10(7 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/3133c6b059f2 09:31:18 <06d​olorous_84348> Regarding Xom, I remember there's a bug report (#4616) of Xom's actions not interrupting delays such as putting on armor. I looked into it for a bit awhile ago: having any Xom action interrupt delays is annoying (putting on armor until you stop because Xom... made a weird noise), and having only potentially dangerous actions interrupt delays is a lot more useful but also a lot more complicated to achieve, given how many things 09:31:18 Xom can do. Maybe Xom actions can be flagged as potentially dangerous or not? 09:32:15 <06d​olorous_84348> And more on topic, I generally don't Xomscum because Xom is too fond of killing me or coming far too close to it when I try. 10:04:04 <04d​racoomega> There's some real wonkiness with off-level monster move catchup. For instance, if you leave the floor and wait an arbitrary amount of time, when you come back that alligator will always be standing exactly in that one tile of floor to the lower-left. If that was not there, it wouldn't bother to get closer at all, and could in fact end up further away. 10:04:04 <04d​racoomega> https://cdn.discordapp.com/attachments/747522859361894521/1430602614428532867/image.png?ex=68fa6002&is=68f90e82&hm=71972f79f729d9104c6d7b3798abdb6b4a515e3931527b17d57b95da4b3a3638& 10:07:14 <04d​racoomega> The code was trying for a very 'simple' way of moving monsters, but the resulting logic is very strange. It basically traces a straight-ish line towards their move target, stopping the first time they reach a wall, another monster, or uninhabitable terrain. And then they pick a random tile adjacent to the last 'valid' tile they checked (but not actually including the last valid tile they found) which is dry floor. 10:07:54 <04d​racoomega> If that doesn't work, they instead move to a random plain floor tile adjacent to where they already were (which could even be further away) 10:25:28 <06m​umra> I feel like Xom would at least have the decency to let you finish getting dressed before doing something funny 10:53:52 <08n​icolae> absolutely not. everything becomes twice as funny if you're in your underwear 10:54:29 <08n​icolae> like, for game balance, okay. i can see that. but thematically? you might as well be wearing boxers with lil hearts on them like in the old looney tunes cartoons 10:56:03 <04d​racoomega> Even more silly: this orc can't actually get down the hallway to reach me, even if I give it a few hundred turns o the other floor for it to catch up. It will only ever move like one or two tiles right. 10:56:03 <04d​racoomega> https://cdn.discordapp.com/attachments/747522859361894521/1430615700497629256/image.png?ex=68fa6c32&is=68f91ab2&hm=b0cb3da978775aceabc3b35f91e3a8d5540ad6aed63308dc4fc9e530dbf6b06c& 10:56:29 <04d​racoomega> If you know the rules, you can even predict this behavior meaningfully, I am pretty sure 10:57:10 <04d​racoomega> (This is because it tries approaching by using the sign of the different in our positions, which causes it to immediately run into the wall to its lower-right, and stop 10:58:43 <06m​umra> Xom can still catch you with your pants down by interrupting you when you remove the first armour 11:02:53 <06m​umra> (I thought quite a good bad xom action could be: "I just need to borrow that for a minute" and Xom takes away a random piece of your equipped gear and gives it back some time later) 11:03:49 <04d​racoomega> There's a lot of cute Xom actions that mess with you equipment which are possible to imagine, but we had some of those in past and they all got eliminated over time on the general logic of "If it encourage you to switch stuff off when resting or not in danger, that's really annoying." alas 11:05:05 <04d​racoomega> (The most ironic was turning your equipped weapon into a hostile dancing weapon, but I believe there were others, too) 11:05:14 <06m​umra> Oh sure, this would only work if you're in danger when he does it 11:05:48 <02D​arby> and it sounds pretty brutal then 11:37:41 <06d​olorous_84348> Yes. In those days, I remember having to worry about training at least a bit of unarmed combat just in case Xom decided to "have some fun" and turn my own weapon on me. (Yet another thing that was thematically cool but massively irritating in actual practice.) 11:39:27 <06d​olorous_84348> New artefact idea: Xom's boxer shorts with some unusual property you wouldn't usually find on armor. 11:40:41 <06d​olorous_84348> And maybe the player wears them on their head? 11:54:31 <06m​umra> no, they take the armour slot, but they give you +1 boots slot 12:04:40 <09h​ellmonk> they give you an unarmed punch attack from your crotch 12:17:31 <06m​umra> literally boxers 12:33:49 <08n​icolae> gloves that take up your gloves slot but give you a boots slot. they let you wear boots on your hands. and then also a boots that gives you a gloves slot. gloves on your feet. but nicolae, what if you stack them? ah, there's the real catch. then you explode 12:40:18 <06m​umra> something that takes up 2 ring slots and gives you a boots slot in exchange so if an octopode gets four of them they can wear four pairs of boots 12:46:43 <08n​icolae> ring that gives you an extra ring finger so your ring slots remain the same BUT secret ash tech 12:46:54 <08n​icolae> or ring that gives you three fingers so you can do this :react_threeThumbsUp: 13:38:18 -!- Menchers-ish is now known as Menchers 13:39:52 <09h​ellmonk> Someone give me a theme for an ice/tloc spell thank u in advance 13:40:41 <06m​umra> any further context? 13:41:42 <09h​ellmonk> nope 13:42:16 <02D​arby> the enemy's very molecules are anchored in place and frozen to absolute ze- 13:42:38 <02D​arby> (no I don't have a real one yet) 13:47:47 <06m​umra> there's no ice spell that specifically uses snow? open a portal to the north pole to cover everything in snow. snow makes everyone slip and slide everywhere 13:50:58 <06m​umra> no wait. creates a snow slide that allows you to slide towards enemies, moves you 1 square each turn towards your target and you can carry on using spells or doing other actions while sliding (ok this was actually another spell idea i had but it was a flying carpet) 13:55:48 <09h​ellmonk> Oh true, I was going to do ice terrain eventually. That can be a tloc spell. 13:55:53 <09h​ellmonk> Thanks 13:59:38 <06m​umra> Snow Ball: snowballs condense in the air around you and and fly around you in a swarm, hitting enemies that get in the way 14:00:27 <06m​umra> but yeah an ice terrain would be great 14:57:56 <12g​e0ff> A classic MK™ Tloc+Ice move is to create an ice clone at the player's location and blink away. If an enemy attacks your clone, it gets frozen for a few turns. 15:03:05 <08n​icolae> polar portal. it's like portal of golubria but each portal has a little polar vortex around it that you are immune to 15:04:19 <06r​egret-⸸nde※> (The general notion of categorical translocations- most easily referenced with Rift Wizard's Soul Swap and Underworld Passage- is something conspicuously missing amongst much of the rest of Crawl's Translocations considering how many other spells have been tried out in the school. I don't know what I make of even more Ice effects making terrain- between Freezing Cloud, Frozen Ramparts, and rime yak rime walls, there's a lot 15:04:19 already- but we're also conspicuously missing pretty much anything besides Rimeblight actually making any types of firewood....) 15:06:07 <06r​egret-⸸nde※> (I guess Splinterfrost Barricade sort-of counts, though it's quite high level.) 15:15:14 <02D​arby> there's an inherent conflict between the interpretations of "even more ice effects making temporary terrain is redundant and homogenizing" and "even more ice effects making temporary terrain is a mechanically consistent school theme separating it from the other elements and giving ice a consistent playstyle." I suppose it depends on where you strike the balance between the two. 15:22:34 -!- Myth is now known as Autumn 16:06:03 <09g​ammafunk> %git c4236cc629e6296b7334618133839dbf61f93fb8 16:06:04 <04C​erebot> Darby * 0.34-a0-983-gc4236cc629: Remove 4 of the 5 ladies of the lake (2 days ago, 1 file, 3+ 4-) https://github.com/crawl/crawl/commit/c4236cc629e6 16:06:41 <09g​ammafunk> @Darby by the way, did that issue with the megabat cathedral vault get fixed? 16:07:10 <02D​arby> index will fix it in her next vault review 16:07:12 <09g​ammafunk> I saw some diagnosis about the lua trigger data being reset upon load or level transition or something 16:08:03 <02D​arby> I am fully aware of the exact cause and behavior but also using lua to spawn bats there is not really necessary to begin with (they almost always all spawn before you arrive anyway) 16:09:58 <02D​arby> I considered an alternative myself where they spawned triggered by proximity but the layout just didn't feel like it worked for it. maybe in a different vault one day (though lua-triggered spawns are a rare choice nowadays generally) 16:10:25 <09g​ammafunk> fair enough 16:11:40 <06r​egret-⸸nde※> (I've been pretty deep into doing heavy work here- added new tilesets, set up more decor vault arrangements, going to do some overflow vault tag work- but pushing such alongside a smaller vault review should hopefully done by tomorrow?) 16:29:15 -!- Autumn is now known as Myth 16:35:33 <09g​ammafunk> I might take on the lua version bump this release 16:36:28 <09g​ammafunk> the technical problem to solve is both interesting and seems surmountable, but of course it will require some fairly extensive testing. Even if I can't finish it for the release, hopefully can get that done early next release 16:36:50 <09g​ammafunk> our version of lua is so old and there's a good deal of nice functionality we're missing 19:27:58 <06m​umra> the issue happens when a single lua trigger is applied to multiple glyphs -- on initial creation, there's a single shared instance (both of the trigger data and the triggers), but once it gets serialized and deserialized (which happens either after level transition or save/reload) they become discrete instances, causing all kinds of problems if the lua callback relied on data being shared among the triggers 19:28:20 03Implojin02 07* 0.34-a0-992-g2470553f75: Show artefact enchant limit in item descs for Mountain Dwarves 10(5 minutes ago, 1 file, 11+ 16-) 13https://github.com/crawl/crawl/commit/2470553f7515 19:29:43 <06m​umra> it seems like this should be fixed by always cloning the data/triggers on initial creation as having a shared instance seems like weird behaviour anyway looking at it, and if you need to share data across multiple triggers a different method should be used. this would at least prevent anyone depending on the buggy behaviour in the future 19:30:47 <06m​umra> both myself and darby did some fairly extensive review of vault lua and couldn't find anything else with this issue, but it's easily possible something was missed 19:33:04 <09g​ammafunk> yeah, if you need it to be shared, probably just using the dgn.persist table would be fine 19:44:24 03WizardIke02 07* 0.34-a0-993-g855d04f7d5: Refactor: move final effects out of the header 10(59 minutes ago, 25 files, 874+ 771-) 13https://github.com/crawl/crawl/commit/855d04f7d5f0 20:01:15 -!- indigaz26 is now known as indigaz2 20:06:43 03Implojin02 07* 0.34-a0-994-g99e36ef0dd: Let CMD_DROP_LAST ('D') automatically disable autopickup 10(4 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/99e36ef0dd8c 20:14:12 <06m​umra> i'm not sure how i feel about the change of api in that commit; every fineff have a static schedule method was nice and consistent, now there's a separate schedule_* method per fineff ...? obviously less rebuilds is always nice of course 20:16:45 <06m​umra> (it seems to have broken the build incidentally) 20:27:29 <06m​umra> are there some issues with builds since before then? i'm wondering if i broke something adding the webtiles fonts 20:28:01 <06m​umra> no build errors reported and everything was fine in CI, but it seems like webtiles servers didn't update yesterday nor the trunk builds 20:29:13 <07w​izardike> I'm missing a few enum includes in fineff.h which is causing a build test to fail. Should be an easy fix 20:31:37 that's a good point; I just scanned my backlog and none of the usual update messages showed up last night 20:32:17 but it's apparentluy building in CI since we aren't getting any messages about that 20:32:53 <06m​umra> yes exactly, and i specifically checked CI was passing before I merged that, since i was changing the Makefile 20:33:52 <06m​umra> but it does copy some new files into the static dir so maybe that is somehow failing something else silently (like the DGL update script) 20:35:24 I think it might be more than that, since things like the monster build also didn't show up 20:40:41 03WizardIke02 07* 0.34-a0-995-g7b57addf1e: Add missing includes to fineff.h 10(9 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/7b57addf1e7f 20:43:54 <06m​umra> @gammafunk any idea if server builds are failing silently? 20:45:14 (I'd noticed this morning that something seemed to be missing in the backlog this morning, but I didn't realize what until you mentioned failing builds) 20:46:36 actually, looking more closely it looks like cue and cdo updated, but nothing else 20:48:10 so the failing commit is after 988 (which is the font change) 20:49:10 <06m​umra> CUE is on the same version as CDI which yeah is the one before the fonts 20:49:10 whoops, no, 988 (dad79eb2a5) was a spelling fix, right after the font change 20:49:40 <06m​umra> oh which server is on that one? 20:49:45 cdo 20:50:00 no server updated after that 20:50:49 <06m​umra> yep so the trunk build is ok but webtiles is not updating 20:50:52 989 was mark of the celebrant, 990 was a cache-busting change that probably affected dgl 20:51:21 why would that have broken the nightly monster build, though? 20:51:41 <06m​umra> it's more likely adding the fonts since it touched the Makefile as well as bumping the fonts submodule 20:52:08 oh, never mind, it's there, I didn't realize that was also cdo 20:52:27 I keep forgetting which one has the working monster bot 20:53:56 so we need someone with access to a non-cdo server to try to see what's going wrong with builds 20:59:54 <09g​ammafunk> %git 20:59:55 <04C​erebot> WizardIke * 0.34-a0-995-g7b57addf1e: Add missing includes to fineff.h (28 minutes ago, 1 file, 2+ 0-) https://github.com/crawl/crawl/commit/7b57addf1e7f 21:00:25 <09g​ammafunk> yall messed up! 21:00:27 <09g​ammafunk> > make: *** No rule to make target 'webserver/static/fonts/DejaVuSans.woff', needed by 'webserver'. Stop. 21:00:40 <09g​ammafunk> ah, is this a submodule thing? 21:00:45 ewps 21:02:01 <06m​umra> nope it's a makefile thing 21:02:15 <06m​umra> the question is, why does this work locally and in CI 21:02:26 <09g​ammafunk> yeah I don't know why I thought it could be the submodule, come to think of it 21:02:57 <09g​ammafunk> an ubuntu version diff? 21:03:00 <09g​ammafunk> if you're using ubuntu-latest in ci 21:03:03 <06m​umra> also why is nothing reporting the build failure 21:03:05 <09g​ammafunk> vs my older LTS on cdi 21:03:16 <06m​umra> yep must be a platform thing 21:03:24 <09g​ammafunk> cdi doesn't report builds at all, and I think no server reports failures actually 21:03:37 <06m​umra> altho as far as I could see, I'm using the same invocations as other makefile rules that are copying files, so i don't know why this fails 21:03:42 correct, there are only messages on success 21:03:45 <09g​ammafunk> it's sort of a technical detail of how the reporting happens, it's not as easy to report failures 21:03:49 only CI reports failures 21:04:08 <09g​ammafunk> but it would definitely be nice to have servers report failures (and to have cdi report at all) 21:04:38 <09g​ammafunk> rewriting henzell in python is a project of mine 21:04:58 <09g​ammafunk> I need a sasl irc connection from digitalocean because libera doesn't trust connections from there otherwise 21:05:12 <09g​ammafunk> so at some point I'll do that and we can have cdi report 21:06:44 <09g​ammafunk> hrm, I do see that the fonts contrib/submodule is being checked out on a different hash for master 21:06:45 <06m​umra> however locally i am using LTS and it builds fine here 21:06:56 <09g​ammafunk> I mean, what lts are you using 21:07:14 <09g​ammafunk> so is this woff file, is it in the submodule? 21:07:31 <06m​umra> ah actually so maybe it is the submodule 21:07:43 <09g​ammafunk> yeah I think the file's not existing like it should 21:08:06 <09g​ammafunk> but to be clear, ubuntu has many past lts releases 21:08:09 <06m​umra> yeah if the submodule didn't update then it won't 21:08:15 03Implojin02 07* 0.34-a0-996-gf6560e084f: Remove a dead comment from 2012 10(22 minutes ago, 1 file, 0+ 1-) 13https://github.com/crawl/crawl/commit/f6560e084f92 21:08:15 03Implojin02 07* 0.34-a0-997-gcb0159e603: Document some clua api functions 10(8 minutes ago, 1 file, 20+ 0-) 13https://github.com/crawl/crawl/commit/cb0159e603c9 21:08:16 <09g​ammafunk> my point is that mine is an older one that what you're probably using 21:08:40 <09g​ammafunk> (also I happened to be wrong about it using an lts, oops, but the point is its decently old) 21:09:30 <06m​umra> honestly i'm not even sure that we need an entire submodule for a few font files, but since the ttfs were already there it seemed the appropriate place to put the woffs 21:09:56 <09g​ammafunk> yeah I'm not sure how the decision was made for it to be a submodule 21:10:31 <06m​umra> and when the woff files only exist literally in order to be copied into static, it seems very pointless and a lot of unneccesary steps 21:10:32 <09g​ammafunk> but also, why isn't the file being seen? is this a make argument issue 21:10:50 <09g​ammafunk> contribs being disabled or something 21:11:01 <09g​ammafunk> normally linux builds don't use contribs, for example 21:11:09 <06m​umra> oh right, i didn't think of that 21:11:17 <09g​ammafunk> because one is supposed to use system libraries (and fonts) 21:11:23 <06m​umra> yeah if you're not building the desktop version you don't need the fonts contribs normally 21:11:41 <09g​ammafunk> contrib is for windows/mac builds where certain packages just aren't available from any central place 21:12:03 <09g​ammafunk> well even for linux, the tiles build still doesn't use the contrib? 21:12:16 <09g​ammafunk> like even for fonts, I believe 21:12:21 <06m​umra> yep because DejaVu is distributed with linux 21:12:24 <09g​ammafunk> linux builds just never use any contrib iirc 21:12:35 <06m​umra> now it all makes more sense 21:12:58 <09g​ammafunk> so it does sort of sound like moving the woff into webtiles dir and out of submodule is appropriate 21:13:22 <09g​ammafunk> and yeah I'm not the one to ask about font management, but I can see the reasoning for moving that small set of files just into the repo in general 21:14:38 <09g​ammafunk> contribs make more sense for stuff like libpng, sdl, etc; things that a windows/mac are not going to be able to install from a simple central place like a repository and where we want to build that thing for those OS users...oh and I guess we also have to make our own modifications to some of these contribs in some cases 21:15:42 <09g​ammafunk> although I'm not sure if we're even doing that these days; our sdl submodule had some weird aspects beyond just bumping version numbers at some point 21:18:07 the old sdl1 submodule had a local patch, sdl2 rendered it unnecessary 21:18:29 that was one of the reasons Grunt moved us to sdl2 21:19:00 (the other big reason being the android build, since sdl1 for android had a lot of limitations) 21:19:07 <03i​mplojin> our sdl2 submodule definitely has several patches applied and is not just vanilla 21:19:08 <09g​ammafunk> it does seem we still have some "important" local sdl2 patches, all the same: > abeaff3f86 Update Android SDK - API level 34 > 3287d911ca Fix an unintended SDL2 change > 694778e409 Add a new welcome message > a761b1b143 fix: update contribs for mac tiles capslock handling > bb90f61fe4 sdl2 contrib: fix the build for ARM macs (12407) > 3c8f2f65f7 Un-downgrade sdl2 submodule (doh) > 2e982bf181 Allow offensive drowning of giants (Yermak) 21:19:08 <06m​umra> does this mean that in CI it is loading the submodules tho? 21:19:20 <09g​ammafunk> it should be using the system packages 21:19:27 <09g​ammafunk> for the actual build, I mean 21:19:37 <09g​ammafunk> for linux builds in particular, I mean 21:19:43 <09g​ammafunk> for windows/mac ones it would be using contribs 21:20:38 I kinda wish at this point I'd at least tried to keep my local mac build patch up to date; it used macports (and would have been easily modified for brew) instead of the contribs 21:21:06 <09g​ammafunk> those submodule changes aren't relevant to linux; I think most of those only exist because our sdl2 module sort of gets "frozen in time" 21:21:08 but I got rid of it when I stopped using macs, since it was at that point well out of date 21:21:16 <09g​ammafunk> linux users will have more current sdl2 packages, generally 21:21:59 <06m​umra> i'm just trying to figure out why this didn't fail in CI (checking the logs of the relevant CI run, I still can't see that it copied the fonts at all) 21:23:21 <09g​ammafunk> how is your local build getting that woff in the contrib to the right webtiles server dir? 21:23:52 <09g​ammafunk> namely webserver/static/fonts/DejaVuSans.woff 21:24:33 <09g​ammafunk> oh yeah 21:24:36 <09g​ammafunk> my own local build fails 21:24:38 <09g​ammafunk> same error 21:24:51 <09g​ammafunk> do you just have the woff hard copied to your webserver dir? 21:24:58 <09g​ammafunk> and that's why your local build has been working? 21:25:15 03mumra02 07* 0.34-a0-998-g82b4fbf79d: Copy webfonts permanently into static 10(2 minutes ago, 6 files, 0+ 11-) 13https://github.com/crawl/crawl/commit/82b4fbf79db0 21:25:33 <06m​umra> No, i have the submodules, so it copies 21:26:01 <06m​umra> It only fails if it can't find the file to copy 21:26:25 <06m​umra> The woff files being missing from /static wouldn't fail the build, it would just be a 404 error when the browser tries to load the font 21:26:44 <09g​ammafunk> well that's exactly what we're seeing from the makefile though 21:26:56 <09g​ammafunk> that it fails the build when those files aren't in the right static subdir 21:26:58 <06m​umra> No the makefile is saying the files are missing in contrib 21:27:09 <09g​ammafunk> no it' snot saying that 21:27:11 <06m​umra> It's saying it can't create the files in /static because there's no rule that can create them 21:27:30 <09g​ammafunk> oh, ok 21:27:37 <09g​ammafunk> so there's a rule that copies them from contrib 21:27:51 <06m​umra> Makefiles are like all inverted logic. You're telling it the target to want to make, and it works backwards to figure out how to make that 21:28:08 <09g​ammafunk> yeah I know how a makefile target works 21:28:30 <09g​ammafunk> I'm saying that the message is reporting that this file isn't built and I'm wondering what puts the file there 21:28:48 <06m​umra> ah right 21:29:42 <06m​umra> webserver/game_data/static/%.js: $(RLTILES)/%.js $(QUIET_COPY)$(COPY) $< webserver/game_data/static/ webserver/static/fonts/%.woff: $(FONTDIR)%.woff $(QUIET_COPY)$(COPY) $< webserver/static/fonts/ webserver/static/fonts/%.woff2: $(FONTDIR)%.woff2 $(QUIET_COPY)$(COPY) $< webserver/static/fonts/ so i added those two rules to copy the woff files from contrib 21:29:53 <06m​umra> same form as the RLTILES rule 21:30:34 <09g​ammafunk> yep, I just finished reading 21:30:41 <09g​ammafunk> and fontdir is the contrib/fonts dir 21:30:56 <09g​ammafunk> the thing is, I had to do git submodule update for the build to work locally for me 21:31:04 <06m​umra> yes 21:31:09 <09g​ammafunk> I think our server builds do not bother to do this 21:31:14 <06m​umra> yes i understand that now 21:31:16 <09g​ammafunk> because again linux builds historically never use contribs 21:31:32 <09g​ammafunk> so I guess your latest commit just moved them out and that's that 21:31:48 <06m​umra> i always just have submodules locally out of habit, because i was always developing crawl on windows 21:31:59 <09g​ammafunk> right, you actually use them 21:32:29 <09g​ammafunk> hrm, so probably then CI just has a submodule update step? 21:32:37 <06m​umra> that's my guess 21:32:37 <09g​ammafunk> that would be my guess as to why the linux CIs worked 21:33:21 <06m​umra> it only has that step for windows and mac builds 21:33:57 <09g​ammafunk> are CI filesystems shared between actions or something? aren't they totally independent 21:35:07 <06m​umra> it feels like they shouldn't be, but it's maybe possible 21:37:10 <09g​ammafunk> %git 21:37:11 <04C​erebot> mumra * 0.34-a0-998-g82b4fbf79d: Copy webfonts permanently into static (14 minutes ago, 6 files, 0+ 11-) https://github.com/crawl/crawl/commit/82b4fbf79db0 21:37:36 <09g​ammafunk> > ;;;; install crawl-git-82b4fbf79d > Searching for version tags... > Save major version: 34 > [EXEC] sudo -H /home/crawl/DGL/sbin/install-trunk.sh 82b4fbf79d 0.34-a0-998-g82b4fbf79d 34 0 > Installing game > Installing game binary (crawl-git-82b4fbf79d) in /home/crawl/DGL/usr/games > Copying game data files to /home/crawl/DGL/crawl-master/crawl-git-82b4fbf79d/data > > Adding version (34.0) to database... > Cleaning up source dir > > 21:37:37 --------------------------------------------------------------------- > Unstable branch on crawl.dcss.io updated to: 0.34-a0-998-g82b4fbf79d (34) > All done. 21:37:44 <09g​ammafunk> looks like we're good @mumra, thanks 21:38:18 <09g​ammafunk> also we're 2 commits away from 1000 for 0.34...who will get #1000 21:38:36 <06m​umra> https://cdn.discordapp.com/attachments/747522859361894521/1430777405970317332/image.png?ex=68fb02cc&is=68f9b14c&hm=3ba5258118632e66eb0e61f78dd5077c4146a24d331119b68a7cd622cb9e3682& 21:38:41 <09g​ammafunk> nooo 21:38:55 <09g​ammafunk> did that break webtiles or something 21:39:03 <09g​ammafunk> very odd 21:39:07 04Build failed for 08master @ 82b4fbf7 06https://github.com/crawl/crawl/actions/runs/18737501241 21:39:26 <09g​ammafunk> ...err 21:39:57 <03i​mplojin> it looks to me like the linux ci builds are using system fonts-dejavu and aren't interacting with contrib fonts at all? 21:40:49 <06m​umra> yes but for webfonts, there are woff and woff2 files, which i converted from the ttf using an external converter 21:40:50 <09g​ammafunk> @mumra did you break the client somehow? > 2025-10-23 04:39:38,664 ERROR: Uncaught exception GET / (173.62.184.39) > HTTPServerRequest(protocol='https', host='crawl.dcss.io', method='GET', uri='/', version='HTTP/1.1', remote_ip='173.62.184.39') > Traceback (most recent call last): > File "/usr/lib/python3/dist-packages/tornado/web.py", line 1784, in _execute > result = method(*self.path_args, self.path_kwargs) > 21:40:51 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/home/crawl/DGL/crawl-master/webserver/webtiles/server.py", line 62, in get > File "/usr/lib/python3/dist-packages/tornado/web.py", line 940, in render > html = self.render_string(template_name, kwargs) > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > File "/usr/lib/python3/dist-packages/tornado/web.py", line 1089, in render_string > return t.generate(**namespace) > 21:40:51 ^^^^^^^^^^^^^^^^^^^^^^^ > File "/usr/lib/python3/dist-packages/tornado/template.py", line 362, in generate > return execute() > ^^^^^^^^^ > File "client_html.generated.py", line 11, in _tt_execute > _tt_tmp = game_version # client.html:8 > ^^^^^^^^^^^^ > NameError: name 'game_version' is not defined > 2025-10-23 04:39:38,666 ERROR: 500 GET / (173.62.184.39) 3.71ms 21:41:23 <09g​ammafunk> specifically the tornado templating in the client 21:41:28 <06m​umra> ok that's from the cachebusting commit 21:41:35 <06m​umra> but i don't know why it works locally 21:41:45 <06m​umra> oh maybe it needs a tornado restarrt 21:42:14 <09g​ammafunk> L O C A L L Y :berserk: 21:42:30 <09g​ammafunk> a tornado what? you mean webtiles restart? 21:42:36 <09g​ammafunk> tornado is just a module, you don't restart it 21:42:57 <06m​umra> yep i mean webserver restart 21:43:08 <09g​ammafunk> is client loaded by the server for templating? hmmm 21:43:18 <09g​ammafunk> that's awkward to deal with 21:43:33 <06m​umra> i was trying to say just restart the webserver process 21:43:35 <09g​ammafunk> you've just...possibly broken all webtiles servers in terms of their needing a restart maybe? 21:43:46 <09g​ammafunk> hmmm 21:43:52 <06m​umra> we can roll back that commit 21:43:58 <09g​ammafunk> I guess this sort of thing is unavoidable 21:44:03 <09g​ammafunk> well we can just ask everyone to restart 21:44:10 <09g​ammafunk> first let me try on cdi to see if that in fact fixes 21:44:24 <06m​umra> i did it so that players would definitely get the new js/css files, otherwise their fonts might be broken 21:44:45 <09g​ammafunk> yeah ok it's working now 21:45:12 <06d​olorous_84348> Checkwhite's currently also failing on the woff/woff2 files. Although those aren't text, so checkwhite shouldn't be run on them in the first place. 21:45:18 <06m​umra> yeah it's because the game_version variable is injected by server.py into client.html 21:45:35 <06m​umra> yeah i did just see that, it just doesn't know what those filetypes are clearly 21:46:04 <09g​ammafunk> oh weird the new font 21:46:06 <09g​ammafunk> not used to it 21:46:29 03mumra02 07* 0.34-a0-999-g1bb3f14039: Don't try to checkwhite font files 10(8 seconds ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/1bb3f1403949 21:46:43 <09g​ammafunk> I guess we need to tell all admins to restart webtiles after they pull and build the relevant commit 21:48:18 <09g​ammafunk> @mumra you're probably not planning any more breaking changes like this, but probably in the future if you're pushing something that would require a restart, we should probably coordinate. At least in terms of needing to ping the DCSS Server Admin role in this server with a heads-up 21:49:16 <09g​ammafunk> In this case it maybe wasn't obvious that this would actually break webtiles server itself (or at least its ability to actually server the client) 21:53:07 <06m​umra> yeah. my mistake sorry. it felt like it was just a client html change but obviously it needed the variable there 21:53:34 <06m​umra> annoyingly there seems to be no way to specify like a fallback variable value in tornado so it can not blow up if a var is missing 21:54:46 <06m​umra> (ideally we'd have something detect changes in any .py files and restart the server automatically, but it's not like these updates have been frequent enough to warrant worrying about that, but it's how i'd usually set things up with a node.js server) 21:57:20 <09g​ammafunk> that's a bit brittle because if there's a problem, the server is just down permanently without an admin having decided it first 22:01:48 <09g​ammafunk> I feel it works better when the person who's pushing a server-side change also has admin shell access to the server 22:01:56 <09g​ammafunk> so they can babysit any problem 22:02:42 <09g​ammafunk> but this is not quite a typical "production" environment, and maybe that style of push-restart setup has other failsafes typically 22:35:26 Unstable branch on crawl.develz.org updated to: 0.34-a0-999-g1bb3f14039 (34) 22:58:27 Windows builds of master branch on crawl.develz.org updated to: 0.34-a0-999-g1bb3f14039 23:26:22 <06m​umra> In any production environment I've worked in for the last several years, the server is built in a container, so the container can just be rolled back to a previous working version if any issues (and sometimes yeah this is even handled automatically via something like Kubernetes health checks) 23:26:54 <06m​umra> Although typically that's rarely needed since E2E tests give you a really good guarantee everything is working first 🙂 23:27:54 <06m​umra> So there's no actual restart, it's always spinning up a new container and dropping the old one 23:29:01 <06m​umra> ...But obviously, that kind of infrastructure is a bit beyond the resources we have here 23:29:47 Unstable branch on cbro.berotato.org updated to: 0.34-a0-999-g1bb3f14039 (34) 23:54:13 03mumra02 07* 0.34-a0-1000-g79be30a44c: Set a default value for game_version in client.html 10(73 seconds ago, 1 file, 2+ 1-) 13https://github.com/crawl/crawl/commit/79be30a44c6f 23:55:39 Monster database of master branch on crawl.develz.org updated to: 0.34-a0-999-g1bb3f14039