00:10:41 Stable (0.33) branch on cbro.berotato.org updated to: 0.33.0-13-g761f119567 05:07:02 Unstable branch on crawl.akrasiac.org updated to: 0.34-a0-44-g7535fbc (34) 09:37:11 FinniousFinkelbottom (L23 DsGl) ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 43,13 in region 2, should be 80,13 in region 0) (Zig:10) 09:44:43 croikle (L27 ReCj) ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 43,13 in region 2, should be 80,13 in region 0) (Zig:17) 09:45:38 <12g​e0ff> ^--- it seems to be the most popular crash recently 14:12:29 -!- hedy[l]4 is now known as hedy[l] 18:37:51 croikle (L27 ReCj) ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 404 failed. (invalid cursor position 43,13 in region 2, should be 80,13 in region 0) (Zig:21) 19:32:44 <04d​racoomega> This sort of crash is pretty ancient, but it does seem conspicuously more common lately. I don't know if that's just the tournament making games happen more often or not 19:37:51 <04d​racoomega> Unfortunately, it's usually fairly hard to tell what might have moved the cursor to an invalid location, since it can't even be known which parts of the UI were slated to be drawn during this call. 19:46:53 I think it's just t, but I'm not certain: it seemed to be a bit more common even before it was branched 19:56:19 <04d​racoomega> Hmmm... the percentage of recent ones that are in Zigs is somewhat conspicuous 19:59:13 <04d​racoomega> Not immediately sure how that might be connected, but it does stand out a little 20:02:22 <04d​racoomega> Actually, the wrong position seems to be (43,13) for at least 3 separate people lately, so also conspicuous. Maybe that can be reverse engineered? 20:03:23 <04d​racoomega> ...although the actual culprit is possibly line-wrapping at some point, so maybe still tricky 20:06:40 <04d​racoomega> Oh. This specific manifestation might be my fault. (Though it was to fix another bug in the process.) 20:07:09 <04d​racoomega> %git dc679cd63928bb 20:07:10 <04C​erebot> DracoOmega * 0.33-a0-1468-gdc679cd639: Fix console sometimes not printing a second line of statuses (3 weeks ago, 1 file, 2+ 2-) https://github.com/crawl/crawl/commit/dc679cd63928 20:08:16 <04d​racoomega> But by removing the buggy 'auto-wrap into same region' code, it seems it is sometimes possible to end up outside of it afterward. I am not even sure that this is harmful, even though it asserts. Like, I think it may literally be "If we were to print any more text, it would be out of bounds. But we weren't going to do that." 20:09:52 <04d​racoomega> (I may be wrong on the details, though. Have not thoroughly stepped through everything yet) 20:20:01 <04d​racoomega> It does kinda look like this. If you somehow end up with a set of status lights that ends exactly at the end of the second line, the cursor will end up 1 space out of bounds after printing them, which asserts. 20:22:51 <04d​racoomega> So this might be 'fixed' by ensuring we move the cursor back somewhere valid after we're done. (Though to be perfectly honest, I question the value of these asserts in the first place. They happen after things are printed, making it hard to trace what the cause is. They can be tripped for reasons that may not even cause a visible effect. And... even when there's an actual rendering issue, isn't hard crashing someone's game worse 20:22:52 than just drawing some part of the UI incorrectly? In fact, someone reporting the latter (if it was even a visible problem!) would be way more diagnostic about fixing the issue, since we could actually see what was happening.) 20:28:51 <09h​ellmonk> it should segfault instead imho 21:33:20 <04d​racoomega> So, I am going down through a list of ideas I've scribbled out over the weeks for specific banes to start implementing for the starter set, and in the process have ended up thinking about certain badmuts again. I'd like the two sets to be at least fairly disjoint from each other in terms of effects (even if banes can often be a bit meaner about what they do, on account of being temporary). A couple things on the 'possible banes' 21:33:20 list involved preventing potions/scrolls, but of course some of the most iconic badmuts already do that (and in ways that we are maybe not altogether satisfied with, as far as I understand it. It's pretty rare to trigger when it really matters, but can feel like an abruptly "Well, now you have no options" when it does.) And rather than a bane playing with this space, I've wondered at changing how the badmuts work. What do people think about, 21:33:21 instead of a random status, being something like "Can only quaff/read when at quite low health (or no enemies are visible, so strategic consumables are unaffected)"? Low health rather than high health is because the most critical time to use emergency consumables is at low health, of course (and to specifically avoid the worst feels from the current mutation), but in all of those situations you'd still rather use them before things are dire. This 21:33:21 means you can't preemptively ?tele away from problems or easily use buff potions in response to situations going south, but can still do things in the worst emergencies (and, importantly, it is a predictable downside, which might feel better.) 21:35:44 <04d​racoomega> Since I feel like the current ones are in an awkward space of 'try to cure on sight immediately, all the time', but also 'possibly never does anything harmful to you until it kills you' 22:06:55 <09h​ellmonk> wondering about some kind of soft penalty like "reading a scroll causes significant (but not yellow) contam" 22:07:12 <09h​ellmonk> (also linking this back into our contam chat from the other day) 22:11:57 <04d​racoomega> Hmmm... Not sure what I think about badmuts that feed into themselves like this. (But also not sure immediately how often this does anything. Would it be enough contam to hit yellow on two scrolls read back to back? 1 is often enough for most situations and I guess a few of the other multi-scroll uses are off the table aside from emergencies.) Would this mean resting between every read of ?ew or something? Or just 'only do this 22:11:58 while monsters are in LoS'? 22:12:35 <09h​ellmonk> I suppose we'd want only while monsters in los regardless... (this is a bit gameable with corners sometimes, but too annoying otherwise) 22:13:15 <09h​ellmonk> I also went down the rabbit hole of why blurry vision mut (the scroll delay version) was removed, it had weird interactions with how monsters react to things 22:13:28 <09h​ellmonk> which is a shame bc otherwise I think that design was good 22:14:03 <04d​racoomega> Armataurs had slow scrolls for a while and I felt like it largely did nothing at all. Was the mutation version a lot more severe or something? 22:14:17 <09h​ellmonk> and yeah, the idea with something like contam would be "you'd better solve this with one scroll because the second one is going to cause Problems" 22:14:32 <09h​ellmonk> I think the mut had tiers 22:14:40 <09h​ellmonk> was 2 turn delay at max 22:14:50 <09h​ellmonk> but obviously you could make it arbitrarily severe 22:14:59 <09h​ellmonk> 5 turn scroll read or whatever would be quite bad 22:15:33 <04d​racoomega> Perhaps. (Of course, the thing is that both ?blinking and ?tele care less than normal how long reading takes) 22:15:45 <04d​racoomega> (Even ?blinking cares a lot at 5 turns, of course) 22:18:52 <09h​ellmonk> there's probably some other designs for when read scroll, add some negative status. Strategic scroll reading still needs to be excluded though. Maybe with potions it works better? I guess there's !mut and !exp... 22:20:07 <09h​ellmonk> "quaffing a potion gives you vertigo" or what have you 22:25:20 <04d​racoomega> All of this is possible, but I guess I'm not sure this is as interesting as 'prevent in some predictable subset of circumstances, so that the player is forced to use alternate approaches there'. Like, a concern about 'multiple scrolls in a row may mutate you' (beyond badmuts feeding into more badmuts in general) is that this most commonly does nothing, and when it does do something, it's often more at the level of nuisance (yellow 22:25:20 glow won't always give a mutation, when it does that mutation may not be high impact, etc.). Certainly other downside have less 'nuisance' potential, but I do have concerns that a bunch of these are low-impact and won't affect decision-making when it really matters most. (Like, is vertigo ever really making you not use an emergency consumable when you otherwise would? You're just 'mildly worse in a fuzzy way' some of the time) 22:26:13 <09h​ellmonk> yeah that's fair 22:26:52 <09h​ellmonk> I think it's hard to make a mutation more than "mildly worse" that people don't reroll instantly though, unless there's way more mutation in the game or a lot of other mutations that become equally bad 22:27:13 <04d​racoomega> That may also be true, of course 22:29:50 <04d​racoomega> But I guess I feel like, if your !mutation pile is low, there's a threshold of 'Bad, but could be worse' that you might hesitate on rerolling, and sort of sitting on the fence there is possibly good instead of being obviously on the 'reroll immediately' side. But where a given person draws that line is likely to be pretty subjective. (Though arguably, even if 'bad potions/scrolls while healthy' was considered equally bad to current 22:29:51 -potion/-scroll badmuts, it might still feel less unsatisfying by being less RNG in how it causes problems for the player. Maybe?) 22:35:22 <04d​racoomega> Oh. Looking up the last version of Blurry Vision, I didn't realize that it made scrolls into an actual delayed action rather than just making them take more aut as a single action (like the armataur mutation did) 22:36:04 <04d​racoomega> (I guess that does provide a somewhat more relevant immediate impact to ?blinking and such, but can definitely see why it has fuzzy consequences with monster reactions and timing) 22:36:34 <04d​racoomega> Also, until I looked at this commit, I had actually forgotten that the potion/scroll badmut was a Ru sacrifice also >.>; 22:38:05 <09h​ellmonk> I think the potion/scroll version we have now was a ru sacrifice first 22:38:14 <09h​ellmonk> and then repurposed into generic badmut 22:38:14 <04d​racoomega> Yes 22:50:44 <02M​onkooky> is the massive badness variance desirable? 22:51:36 <02M​onkooky> like would you generally consider it a good thing, bad thing, or neutral that a badmut can easily range from 'does nothing' to 'will get you killed remove it immediately' 22:59:37 <04d​racoomega> I think it is likely positive that there is at least modest variance between 'not a big deal' and 'actually a big deal' so that any given badmut roll itself has randomness in how big of a problem it is. In some Perfectly Spherical Game where all badmuts were somehow equally bad, I feel like important texture would be lost about when and how you use !mutation, for one thing. (Honestly, a lot of Crawl in general somewhat relies 22:59:38 around the 'worst case' being a fair bit worse than the 'average case' to produce 'spikiness' that prompts the player to react to it.) Now, whether the worst ones are too above the pack in terms of danger level is a much more open question and it seems very possible to me that they are. (I know Index wanted to change teleportitis to use a similar model that wyrmholes do, where impending teleport is announced and can be cancelled by spending a ?tele 22:59:38 if you want to, for instance) 23:45:32 Monster database of master branch on crawl.develz.org updated to: 0.34-a0-44-g7535fbcc0e