00:04:50 <04d​racoomega> Ooo, one of those was even something I fixed. ...1.5 years ago a bug report I didn't know was submitted was submitted 😛 00:05:32 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1603-gbec6b6ccbf (34) 00:29:29 Unstable branch on cbro.berotato.org updated to: 0.31-a0-1603-gbec6b6ccbf (34) 00:55:12 Monster database of master branch on crawl.develz.org updated to: 0.31-a0-1603-gbec6b6ccbf 01:45:05 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 01:51:43 Hold on, why is there an actor::rampaging() 01:52:07 Isn't rampaging pretty explicitly player only/ 02:01:38 <04d​racoomega> Maybe theoretical future-proofing, since it checks things monsters could wear? (Nothing ever calls ::rampaging() except on player) 02:02:35 <04d​racoomega> There's a handful of things that have functions in actor that mostly only exist to be used by players, but it's convenient not to have to test is_player() and to_player() all the time for them 02:02:42 <04d​racoomega> Doesn't really apply in this case, but it happens 02:02:54 <06r​egret-⸸nde※> just imagining turning roxanne into an armataur so we can have our armataur unique without having monster rampaging jank 02:03:08 <04d​racoomega> Ahahaha 02:03:19 <04d​racoomega> This feels extremely jerkish somehow 02:03:36 <06r​egret-⸸nde※> we don't even have to code rampage regen! 02:04:53 <04d​racoomega> "(Normally moves faster than you, if she hadn't fucked up really badly years ago)" 02:09:00 I'm wondering if I should future-proof infinite rampage 02:09:33 which imo has more use cases in mon hands than regular rampage 02:19:45 <06r​egret-⸸nde※> I'd approve, if only because all of the new spells in 0.31 made ghosts & illusions drift further and further away from players :P 03:55:42 <03i​mplojin> as DO mentioned, it's there in case someone takes the time to do monster rampaging as a thing; the checks in actor are sources of rampage that could theoretically apply to monsters 04:12:05 <03i​mplojin> monster rampage is just not super interesting imo; it's not much different from creating a mons that moves at .5, if you want to slap rampage on a mons you need a compelling design beyond "it catches up to the player quickly" 04:23:56 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5140-g5775ae71e1 04:27:30 That was why I was saying infinite rampage has more use cases for mons, yeah 04:28:21 cause a mon with infinite rampage is categorically different from a monster that just moves fast; you treat it more like a mon with starburst than simply a fast mon 05:14:04 How would you recommend making an effect last until you spend a turn not rampaging? 05:19:10 Right now I'm setting a key when you rampage, and if that key is not set at end of turn, the effect ends 05:19:26 but if there's a more elegant solution I'll switch to that instead of debugging this 05:21:12 <03i​mplojin> i may not entirely understand what you're trying to do, but from what you've described having it set the duration of a prop on the player in the postmove section of _rampage_forward and then decrementing the prop in player_reacts would probably work? 05:22:59 that's very close to what I'm doin right now; I'm currently setting and erasing the prop 05:24:38 wait no found the problem, I was moving the set prop from handle_phase_damaged and forgot to actually put it in rampage_forward :< 05:28:20 Unstable branch on crawl.akrasiac.org updated to: 0.31-a0-1603-gbec6b6c (34) 08:47:49 <04d​racoomega> So, as I continue to work on Yred stuff, I notice that the description for the Bind Soul mark in one place of code says "soul is ripe for the taking", but when targeting or using x to look at the monster in-game just says "possessable". And on further investigation, the only way I could find to display any of the long descriptions from _get_monster_desc is by hovering the mouse over the monster while not targeting anything. (At 08:47:49 which point it also starts trying to draw the whole attack table from xv, though it can only fit the first line or so in the tiny area available) 08:48:05 <04d​racoomega> If you actually xv the monster (or right-click), it doesn't show any status effects on it at all. (And it only uses the short forms when aiming something or using x) 08:48:17 <04d​racoomega> There's some irony in this most-verbose description of monster status effects being in a function 'terse_describe_cell' 08:49:29 <04d​racoomega> But I can't help but wonder at the value of this separate description code that seems barely accessible (unless I'm missing something). Were these intended to be seen if you xv a real monster? Also seems to be duplicating some code that xv uses, I think 09:26:15 <06p​leasingfungus> would need to do git archaeology; that field long predates me 09:26:40 <06p​leasingfungus> trying to draw attacks in a truncated mouseover tooltip sounds like a real bug, btw! 09:34:30 <04d​racoomega> Hmm. It's clearly just printing the whole monster description there, but possibly dates to when that description was like... a sentence. 09:35:14 <04d​racoomega> If anything, it feels like this one form of 'describe thing under cursor' being different and more verbose than the rest is the weird part overall 09:36:42 <04d​racoomega> (I don't know if xv should theoretically list current status ailments or if the normal short-form from x is fine) 09:41:25 <06d​olorous_84348> Some descriptions in general are weird. There are short ones and long ones, but certain attack types are never described in the long way, such as the cherub one. (Notice the short cherub attack description still says "hit" instead of "headbutt".) I considered fixing it, but (a) it doesn't show up in actual gameplay right now, and (b) it really needs an overhaul to be properly fixed. 09:44:23 <04d​racoomega> I do think, regardless of anything, it's weird that 'mouse over when not targeting' displays different info than 'move cursor over with keyboard when not targeting' and 'mouse over while targeting' 09:45:34 <06p​leasingfungus> btw, if you change anything about this, check the tutorial and hints mode - they’d be the most likely to expect some version of this mouseover description logic 09:46:31 <04d​racoomega> As in: 'suggesting to the player that it exists'? ^^; 09:48:33 <04d​racoomega> (Is all the text that these use in hints.txt and tutorial.txt?) 09:48:57 <06p​leasingfungus> would double check hints.cc 09:49:05 <06p​leasingfungus> but i think otherwise yes 09:50:04 <04d​racoomega> I believe I have never looked at these before in my life 09:51:36 <04d​racoomega> Though this reminds me that I need to change the Yred hint, apparently! 😛 09:58:28 <04d​racoomega> Apparently mouse hover on a stack of items will print part of the full description of the first item and not otherwise imply there are additional items there 09:58:40 <04d​racoomega> (But not if you press x before hovering! >.>) 10:26:24 <04d​racoomega> As far as I can see, all hint/tutorial stuff that talks about hovering your mouse to look at things would still be accurate if it showed the same stuff that x already does. (In fact, usually those hints alternate with telling people to x stuff for non mouse versions) 10:29:04 <03w​heals> i assume this is all local tiles? 10:29:10 <06p​leasingfungus> yeah 10:29:20 <06p​leasingfungus> thanks for checking! 🙂 10:36:15 <04d​racoomega> This mode definitely results in some weird phrasing at times: 10:36:15 <04d​racoomega> https://cdn.discordapp.com/attachments/747522859361894521/1193609052815626290/image.png?ex=65ad560e&is=659ae10e&hm=9a2145b890e2c5d2f2445ba06e1ceef45254e0689cadeeba5980256993795107& 10:39:41 <06p​leasingfungus> tfw you are ally target 10:55:35 <04d​racoomega> The more I work on excising this, the more concerned I am by the prospect. There's a lot of UI code here that I apparently don't yet really understand 11:01:17 <04d​racoomega> describe_cell() (ie: the normal terse way of describing a cell in most scenarios) is a member of direction_chooser and I'm not currently sure a reasonable way to access that function without bringing up an interface you'd then need to cancel out of, since so much of the code is intertwined with member variables of direction_chooser 11:21:28 <04d​racoomega> Yeah, surprisingly "Make it print the same descriptions used everywhere else" is looking like it would take a very non-trivial amount of refactoring - and some of it kind of nerve-wracking in what it touches 11:22:51 <04d​racoomega> Think I may file this in "We'll try again in 0.32" 11:50:06 03regret-index02 07* 0.31-a0-1604-g2b2087bae8: Catch a missing silver rune (CarefulOdds, Darby) 10(69 seconds ago, 1 file, 12+ 11-) 13https://github.com/crawl/crawl/commit/2b2087bae8af 11:53:00 <04d​racoomega> Also: I never realized until lately just how clunky and awkward ability code is compared to spells, for something that feels pretty similar in game to use them 11:53:38 <04d​racoomega> To the point of needing to make fake spells just to get some of them to have proper UI niceities 11:55:40 <06p​leasingfungus> yep 11:59:32 <04d​racoomega> Like, I simultaneously hate this and also don't see an easy way to fix any of that ^^; 12:01:35 03regret-index02 07* 0.31-a0-1605-g6e05a210f3: Catch a different missing silver rune (Darby) 10(33 seconds ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/6e05a210f3af 12:06:06 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1604-g2b2087bae8 (34) 12:11:49 changing the potion of degeneration into a potion of cowardice/dash/fleet? 12:11:49 It will apply drain, but give a swiftness buff (or maybe faster?) and an AoO immunity (will be to unrelible as an escape tool otherwise, having to risk 2 attacks). This change will give use to the last useless item in the game, and improve the reception of AoO - now that there are cheper ways to reposition then blink/haste. 12:14:16 *What do you think about... 12:20:31 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1605-g6e05a210f3 (34) 12:31:37 <06p​leasingfungus> vvokhom: thanks for writing! you have two separate suggestions - replacing degen with a useful potion, and adding a potion of cowardice 12:32:54 <06p​leasingfungus> players inventories are already overloaded and bursting with useful items. we’re more likely to continue reducing the number of useful item type in each game (as with item sets) than to add more 12:33:25 <06p​leasingfungus> latter is something i suggested about a year ago. feedback was that it’d feel too much like haste, iirc 12:34:14 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193638749603643596/image0.jpg?ex=65ad71b6&is=659afcb6&hm=81cb0e79f3b7e8efe4fba27a6f14c5ca71f29c2fa480f1db1f8d66ac503c63a2& 12:34:15 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193638749876265132/image1.jpg?ex=65ad71b6&is=659afcb6&hm=d385f17b742d4b305c454243079b56e0478f8086ff537167d880df1332c2f6f7& 12:34:46 <06p​leasingfungus> my idea was somewhat different but think the same concerns apply 12:34:50 <06p​leasingfungus> hope that helps! 🙂 12:35:21 to be honest 12:35:21 if potion of enlightenment wasn't already an incredible pun I'd suggest adding this effect to potion of flight 12:42:33 anacleto (L22 TrGl) ERROR in 'mon-util.cc' at line 696: bogus mc (no monster data): invalid monster_type 1000 (1000) (Vaults:5) 12:43:17 anacleto (L22 TrGl) ERROR in 'mon-util.cc' at line 696: bogus mc (no monster data): invalid monster_type 1000 (1000) (Vaults:5) 13:12:40 Thanks for the answer. But may i then ask - what stops you from lifting the inventory limit? In my personal experience, it very rarely leads to choosing which tools to keep, and more often - which obsolete or useless items to drop, or ^f-ing pots of mutation all over the dungeon 13:14:40 <04d​racoomega> At least part of the issue there is UI stuff. Currently each item in your inventory is mapped to a unique letter, and there are a lot of places in the UI related to items that are built with these assumptions 13:15:20 <04d​racoomega> And attempts to map additional things, like numbers, to items currently breaks some of these (ie: menus that already use these keys for other functions) 13:15:43 Could then add a "hidden" tab to inventory, similar to spells 13:16:21 <04d​racoomega> There was a pull request submitted to expand the item limit and I know at least some people were theoretically interested in it, but it was sufficiently troubled on the backend that it was decided not to pursue it for 0.31. (I was not really involved in this either way) 13:17:40 Do you think it should be implemented if it was to be developed? 13:18:06 <12e​bering> Important to note: there are software behaviors that are easy to describe in words but are difficult to implement in crawl in particular because of the legacy code base and also the strange three-in-one ui 13:18:08 <04d​racoomega> Do you mean: do I personally think it would be a good idea to have an expanded inventory limit, if the technical and UI issues were somehow resolved? 13:18:43 Yes, exactly that 13:19:50 <04d​racoomega> While I think that restricted inventory and decisions about what tools the player wants to have access to at a given time are theoretically interesting, Crawl's inventory limit is already so high and backtracking so free in general that I don't think the game really provides much meaningful decision-making on that front and isn't likely to without some massive changes. So I guess I'm... mildly in favor of it? But not to the point 13:19:50 of causing actual UI headache just to do it, since it doesn't feel that important at present either. 13:22:21 Yeah, i just dont know if designing the game mechanics around fixable software limitations is exactly correct 13:22:57 <06r​egret-⸸nde※> I am also mildly in favour of it if and only if all the technical issues and ui pressures are dealt with, but I'd also like to try interim steps already of interest (like the proposal of merging a small number of rings but not going for the "slow ring swap" full point) 13:26:02 <04d​racoomega> It would be nice to never have to design around software limitations, but in practice we are definitely actually limited by them, and the time/effort/inevitable-bugs of any given system change ought to be weighed against the benefit of doing so. 13:26:22 <04d​racoomega> No one has infinite time to do things 13:26:55 <06r​egret-⸸nde※> (...also there's a variety of very old or relatively new classical roguelikes, with minimal or constantly-expanding inventory limits, and it's kind of deeply awful relatively quickly because there's no way to ever remember everything you have when most of the game doesn't need you to e.g. eek out that last use of lig on a three-runer. would definitely emphasize a strict finite approach, like that delegated-to-0.32 PR for 62 13:26:56 items.) 13:26:56 <04d​racoomega> Crawl is a sprawling, complex, tangled, and old thing 13:27:34 <04d​racoomega> It's taken me a frankly absurd amount of time to accomplish some 'This ought to be trivial' sorts of things just this week ^^; 13:28:02 <06r​egret-⸸nde※> also we have a very specifically limited number of active devs giving most of what they have to countless people who will never know them 13:30:32 <12e​bering> in terms of the design question I am against expanding the inventory and more infavor of a tighter limit + tighter clock. It comes down to interesting decisions vs. analysis paralysis for marginalia 13:31:08 <12e​bering> deciding what your 53rd most useful item is is hard because the effect is pretty minimal, for each larger but still limited size of inventory the decision is even less meaningful 13:31:46 <12e​bering> at the same time, with larger inventories, there's more incentive to swap quick to swap things and more "do I have this" (r-i pointed out this memory limit) 13:32:29 <12e​bering> (making all swaps slow is one way to deal with this but there's still the sea of evok/throwables) 13:32:36 <06r​egret-⸸nde※> the thing is, after the item-set work: aside from throwing-centric characters, is there even going to be much pressure for item number 63? 13:33:38 <12e​bering> probably not, but I am also of the view that real pressure for item 53 means we have too many items still 🙂 13:35:31 <06r​egret-⸸nde※> (would also argue evocations skill worth has also swung back to minimally enticing again outside of whatever beam wand one gets, which is... possibly always going to be difficult to find a sweetspot for) 13:36:12 <04d​racoomega> I think I agree with that you're saying from a blank slate perspective, but that Crawl's overall design would need such major changes as to feel like a deeply different experience to actually achieve that design goal in Crawl itself 13:36:36 <06r​egret-⸸nde※> c.f. descent waiting a version 13:37:07 <04d​racoomega> Like, if you just drop the inventory limit a bunch on its own, then it probably causes more stashing and running around to swap things. And then if you try to make the clock relevant so that you can't freely do that, this has pretty widespread other effects on the pacing of the game 13:37:15 <06r​egret-⸸nde※> (...also whichever version I'll be portalifying ghost vaults) 13:38:49 <12e​bering> yah I'm well aware of the obstacles. crawl flows in various directions incrementally and I'm stating one I aim for, even if the path there seems too far away right now 13:39:54 <12e​bering> also my current involvement in 0.31 was fixing an altar placement 🙂 13:40:15 <04d​racoomega> I played a ton in versions that had item destruction, where it was a super common thing to carry only a limited subset of items, making regular decisions about what was most important to carry (and in what locations), stashing things, returning to stashes, etc. I'm not sure that even then did decisions about which class of item to carry ended up being particularly interesting 13:40:53 <06r​egret-⸸nde※> good old demonspawn mutations of potion / scroll preservation 13:41:09 <04d​racoomega> (I can see this being an accomplishable goal for descent, but so long as the player is able to backtrack and keep things on the ground, I don't know how you do it in normal play) 13:41:12 <06r​egret-⸸nde※> as part of two different facets, even 13:41:50 <06r​egret-⸸nde※> getting descent working so those who want it can just play that by default is a reasonable accomplishment :P 13:43:24 <12e​bering> yah I might put some energies there once I find enough to do more than fix an altar placement 15:43:14 <06p​leasingfungus> i do want to push back on one small point from earlier: > Yeah, i just dont know if designing the game mechanics around fixable software limitations is exactly correct it's not a "software limitation". It's a UI limitation, which is a much richer and thornier problem 15:50:07 03PleasingFungus02 07* 0.31-a0-1606-g60c5cc7444: Fix Bai losing her blood too soon (acrobat) 10(82 seconds ago, 1 file, 12+ 1-) 13https://github.com/crawl/crawl/commit/60c5cc7444f0 15:59:38 <06d​olorous_84348> Won't be coding much for awhile. Death in the family. Just found out a little while ago. Sorry. 16:00:21 <06p​leasingfungus> I'm very sorry to hear that. Please don't apologize. I wish you and yours all the best in this terrible time. 16:00:45 <06d​olorous_84348> Thank you. 16:06:25 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1606-g60c5cc7444 (34) 16:13:19 <09g​ammafunk> Sorry to hear that dolorous, and likewise hope all is as well as can be. We're happy to have your assistance whenever you feel like returning. 16:23:32 03PleasingFungus02 07* 0.31-a0-1607-g996d7381b2: Adjust tentacle description (acrobat) 10(62 seconds ago, 1 file, 3+ 6-) 13https://github.com/crawl/crawl/commit/996d7381b246 16:26:49 Unstable branch on underhound.eu updated to: 0.31-a0-1606-g60c5cc7444 (34) 16:36:25 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1607-g996d7381b2 (34) 16:38:47 <08n​icolae> i am the sin-eater of #crawl-dev 16:41:17 03PleasingFungus02 07* 0.31-a0-1608-g7d6f0aea37: Fix fleeing orb spiders' bloodlust (ZillyBean) 10(44 seconds ago, 1 file, 5+ 1-) 13https://github.com/crawl/crawl/commit/7d6f0aea37fc 16:50:15 <06p​leasingfungus> currently looking into a reproducible map gen crash and feeling positive about the code i'm finding cpp // TODO: ugh 16:50:22 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1608-g7d6f0aea37 (34) 16:56:29 <06p​leasingfungus> can't tell if i'm too dumb to understand dgn_farthest_from or if it's just nonsense 16:57:25 <06p​leasingfungus> i think the idea is... 16:57:49 <06p​leasingfungus> it takes a given map (a vault?) and picks a set of 'beacons', corresponding to some specific character. (so probably this is a des?) 16:58:21 Trade you for a day spent going what even mapmark.cc 16:58:30 <06p​leasingfungus> 🙂 16:59:22 <06p​leasingfungus> then it tries to do a breadth first search outward from those beacons through other traversable_glyphs. 17:02:10 <06p​leasingfungus> so, ok, it starts by queueing up all the 'beacons', then does this: cpp dc_next = queue.size(); for (unsigned int dc = 0; dc < queue.size(); dc++) { if (dc >= dc_next) { dc_prev = dc_next; dc_next = dc; } coord_def c = queue[dc]; for (adjacent_iterator ai(c); ai; ++ai) if (lines.in_map(*ai) && !visited(*ai) && 17:02:11 strchr(traversable_glyphs, lines(*ai))) { queue.push_back(*ai); visited(*ai) = true; } } that is, it scans outward through traversable glyphs, putting other reachable locations in the "queue" from closest to furthest. that bit makes some sense to me, though i don't think i'd really call this a queue. but... 17:03:36 <06p​leasingfungus> cpp ASSERT(dc_next > dc_prev); // There may be multiple farthest cells, pick one at random. coord_def loc = queue[random_range(dc_prev, dc_next - 1)]; i think dc_prev and dc_next are trying to define a 'frontier' - the start and end indexes for the reachable locations in the map that are furthest from the beacons - but... 17:04:04 <06p​leasingfungus> it doesn't make sense to me. it seems like nonsense. it seems like those two values will always be at most 1 apart, which is quite wrong. 17:04:09 <04d​racoomega> All of this code seems to stem from https://github.com/crawl/crawl/commit/5714b1011fe1fc9a5fe1404969291f6d5ddc822e , so for this one specific vault? ...though I guess layout_cocytus_delve is using it now, too 17:04:15 <06p​leasingfungus> think i want to just rewrite this in a way that's not insane. 17:04:19 <06p​leasingfungus> yeah it's crashing in coc 17:04:39 <04d​racoomega> Commit does not exactly give great insight into its methology 17:04:41 <06p​leasingfungus> https://github.com/crawl/crawl/issues/3460 easy to repro 17:04:42 <06p​leasingfungus> haha yes 17:05:14 <06p​leasingfungus> here's a save with the appropriate seed etc 17:05:15 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193706948412059728/Soseril.cs?ex=65adb13a&is=659b3c3a&hm=31c00fdcc57ddebff191cbe08a5dd8cbb1b99206c9736558717758310e131c72& 17:06:00 <06p​leasingfungus> will crash if you run the given version of crawl (8f5e8ae) and then enter some extended thing; i haven't tested to see if it still happens in latest trunk 17:06:08 <06p​leasingfungus> (bug would be present regardless) 17:06:20 <06p​leasingfungus> anyway i'm rewriting this. 17:06:52 <04d​racoomega> I think my brain is too spent to try and understand this any better than what you've already said 17:07:30 <04d​racoomega> (Do you actually know why this crashes, or is more like "I can't even tell what this is doing in the first place, so maybe it'll be easier to debug if it makes sense?" :P) 17:10:20 <06p​leasingfungus> grand question. 🙂 let me see... 17:11:03 <06p​leasingfungus> oh, it crashes because this is wrong. if (dc >= dc_next) 17:11:09 <04d​racoomega> (A bunch of the C/lua interop is opaque to me here, since I've never really worked with it) 17:11:28 <06p​leasingfungus> yeah i've been eliding that from this discussion because i don't understand it, it scares me, and it's not relevant 17:11:33 <04d​racoomega> Hahaha 17:12:26 <06p​leasingfungus> anyway that needs to be dc > dc_next to maintain the invariant that dc_next > dc_prev. this will cause crashes if we ever end our search with a queue that has exactly two elements in it - either two beacons, or a beacon and an adjacent glyph 17:12:30 <04d​racoomega> Oh, that means dc_next can just equal dc_prev 17:12:32 <06p​leasingfungus> yes 17:12:38 <06p​leasingfungus> however the code is just totally wrong regardless 17:12:40 <06p​leasingfungus> so i'm rewriting it 17:12:45 <04d​racoomega> Be my guest! 17:12:54 <04d​racoomega> Better you than me >.> 17:13:08 <06p​leasingfungus> 🎶🫖🎶🕯️ 17:13:14 <04d​racoomega> Hahaha 17:13:28 <04d​racoomega> 🔔 17:13:51 <06p​leasingfungus> my secret is that, in a past job, i ran an interview question which was extremely similar to this problem 17:14:09 <06p​leasingfungus> so i've written and debugged candidates' version of (basically) this code many dozens of times 17:14:13 <04d​racoomega> Ha 17:14:53 <04d​racoomega> (I wonder how likely the crash situation actually is, given that this code is 11 years old and presumably this hasn't been terribly common) 17:15:01 <04d​racoomega> Just a curousity 17:15:31 <06p​leasingfungus> you have to be very unlucky. 17:16:46 <06p​leasingfungus> vaguely suspect that something's suspicious with the crashing case anyway - seems weird that you'd have a 2-tile path (1 tile from the entrance/stairs). 17:17:24 <06p​leasingfungus> but i'd need to learn what delve() does first 17:32:25 03PleasingFungus02 07* 0.31-a0-1609-g8663dec9be: Fix dgn_farthest_from (ihatemudryk) 10(3 minutes ago, 1 file, 20+ 17-) 13https://github.com/crawl/crawl/commit/8663dec9be40 17:38:12 <06p​leasingfungus> before 17:38:12 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193715241205371000/image.png?ex=65adb8f3&is=659b43f3&hm=bf8671bba9bea9ec3057a2c1b871a147f4c3ddd1ff096b13370ee937e4d8499f& 17:38:13 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193715241486393414/image.png?ex=65adb8f3&is=659b43f3&hm=5f7ee0e14d4356ce0058a0ef5651f28e489f80541667d9ed7456dc95212dd75a& 17:38:13 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193715241738047518/image.png?ex=65adb8f3&is=659b43f3&hm=155eca1ec4c2a1450f99fa6e53802f144728256d001e249973a9e18aa672faeb& 17:38:14 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193715242052624525/image.png?ex=65adb8f3&is=659b43f3&hm=1312bd021a6447b01748a2bfb1b9d8af2bf053ee8334e923c0533aa0b83119cb& 17:38:14 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193715242274934814/image.png?ex=65adb8f3&is=659b43f3&hm=fc0ffae70e3e41e58c6b21861822a70474324010fbce33fe983faeacc9cd025d& 17:39:53 <06p​leasingfungus> oh, i see, this won't really be a noticeable difference 17:40:18 <06p​leasingfungus> basically it tries to place one pair of stairs as far away from each other as they can be while still being in a connected region 17:40:33 <06p​leasingfungus> and that was wrong before, but not in a way that's really visible 17:43:49 <06p​leasingfungus> actually an interesting algorithm. here's the bazaar version - tries to place each shop & each portal as far from each other as possible. you can see how they end up spaced more or less equidistant as a result 17:43:50 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193716653075202188/image.png?ex=65adba44&is=659b4544&hm=75e9408cd1246db79ab9f5ed490d3591c947aa0e8ca28c91e3f5fe46b64cf63a& 17:43:50 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193716653289119745/image.png?ex=65adba44&is=659b4544&hm=8aba5496f51beb60e77e7141cd0f9bd0b48721d447ec904d02f16d8502ea6af4& 17:43:51 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1193716653549174794/image.png?ex=65adba44&is=659b4544&hm=60bc56279c4f7a70a9105b20c7f0bb148fff8bcbf70af616cdc771db70ef4fbd& 17:51:28 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1609-g8663dec9be (34) 18:15:50 <04d​racoomega> Oh, so it was only for stairs/shops and not the rest of the map generation? 18:16:05 <06p​leasingfungus> yeah 18:16:16 <06p​leasingfungus> more stuff for crawlcode, btw // this approach to sorting is pretty wtf 18:16:19 <04d​racoomega> Haha 18:16:30 <06p​leasingfungus> (unrelated) 18:16:38 <06p​leasingfungus> local x, y = farthest_from('@') mapgrd[x][y] = '{' x, y = farthest_from('{') mapgrd[x][y] = '}' this is the relevant stuff in layout.des 18:17:31 <06p​leasingfungus> nsubst('. = 1:@ / *:.') (forgot this line initially, reposting for irc folks) 18:18:13 <06p​leasingfungus> but anyway it picks a random piece of floor, finds the furthest piece of connected floor from that one, sets it to be an upstair. finds the furthest connected floor from the upstair and sets that to be a downstair 18:18:57 <06p​leasingfungus> (and the old version crashed if the first piece of floor that it picked was in a tiny 2-tile island) 18:20:21 <04d​racoomega> Since there's nowhere far enough for the stuff to go 18:20:37 <06p​leasingfungus> no, just because the if from earlier was wrong 18:20:38 <06p​leasingfungus> but 18:20:44 <06p​leasingfungus> sort of interesting case, actually. in that case now, will lua get (nil, nil) for the second (x, y)? or will it overwrite the @? 18:20:54 <06p​leasingfungus> (that is, does @ count as a traversable glyph?) 18:20:58 <06p​leasingfungus> seems pretty broken, probably 18:22:12 <04d​racoomega> Well, presumably if it doesn't place enough stairs, the level just gets vetoed and it tries again? 18:22:59 <06p​leasingfungus> hopefully 18:23:10 <06p​leasingfungus> also if it fails to have that @ 18:23:29 <06r​egret-⸸nde※> (surely it should, since @ is already used by vaults for connectivity and the compiler already complains if there's no traversible way into a non-layout vault without the no_exits tag) 18:23:48 <06r​egret-⸸nde※> (in terms of being traversible) 18:23:53 <04d​racoomega> Vetoes are a fairly functional failsafe (of course, sometimes this means that a different class of bug goes unnoticed for a while, if something is categorically preventing vaults from placing when they ought to be >.>) 18:24:37 <04d​racoomega> Like how almost all encompass vaults just were impossible to place for a long while 18:25:53 <06r​egret-⸸nde※> just now thinking about the one old snake end that doubles as an ambush vault, and how that has an explicit veto because the randomization was imprecisely sloppy 18:25:59 <06r​egret-⸸nde※> !snakeendkills * recentish 18:26:01 <04C​erebot> Snake End kills for * (recentish): 443x grunt_snake_rune_serpentine_throne (15.24%), 431x grunt_snake_rune_pools (14.83%), 400x hellmonk_snake_rune_quicksilver_temple (13.76%), 383x snake_pit (13.18%), 328x johnstein_snake_rune_scales (11.29%), 291x snake_pit_salamanders_mu (10.01%), 279x grunt_snake_rune_spirals (9.60%), 225x minmay_snake_end_coiled (7.74%), 126x snake_hunt (4.34%) 18:26:15 <06r​egret-⸸nde※> and thus actually places much less often 18:26:39 <06r​egret-⸸nde※> (...a veto also because it tries to connect to the stairs and another vault can, of course, just take the one stairs glyph) 18:26:50 <06p​leasingfungus> rip 18:27:11 <06r​egret-⸸nde※> (prrrrrobably I should look into fixing that before release) 18:27:51 <06p​leasingfungus> eh 18:27:53 <06p​leasingfungus> no rush 18:28:25 <06p​leasingfungus> like "a vault doesn't place as often as it should" seems like... 18:28:29 <06p​leasingfungus> it's somewhere on the priority list, but... 18:29:33 <04d​racoomega> I mean, ambush vaults are fun, and it's a shame if they're much rare than normal, but it's definitely less game-breaking than many things 18:29:35 <04d​racoomega> Just would be nice 18:29:37 <06r​egret-⸸nde※> the notions of priorities is a strange thing to think about considering my current slow, currently-in-the-spreadsheeting project is about just adding eight decorations to like sixty vaults :P 18:29:50 <06r​egret-⸸nde※> counts as a snake buff right 18:30:06 <04d​racoomega> Mildly! 18:31:32 <09g​ammafunk> are any of them kennysheep vaults 18:31:43 <09g​ammafunk> quite the decorations kennysheep uses 18:31:55 03PleasingFungus02 07* 0.31-a0-1610-g9787180647: Autoquiver throwables on pickup again (advil) 10(71 seconds ago, 3 files, 28+ 3-) 13https://github.com/crawl/crawl/commit/978718064758 18:33:10 <06r​egret-⸸nde※> I had considered revamping those at the same time rather than, uh, 18:33:11 <06r​egret-⸸nde※> https://cdn.discordapp.com/attachments/747522859361894521/1193729077136326808/image.png?ex=65adc5d6&is=659b50d6&hm=1e23c3c22fab68d8a1a5365cfbeca213cd756b07ec846050059eb63ace923fe4& 18:36:29 <09g​ammafunk> imagining an alternative future where kennysheep made the_grid and kennysheep_the_grid_ultimate could have statues as walls instead of glass 18:37:01 <06r​egret-⸸nde※> (and I'm mildly dissatisfied by only having around 19 vaults so far for the return of silver statues) 18:37:19 <09g​ammafunk> ah, a high level version of obsidian? 18:37:32 <06r​egret-⸸nde※> no, entirely decorative :P 18:37:38 <09g​ammafunk> ah, fair 18:37:39 <06p​leasingfungus> shiny 18:37:45 <09g​ammafunk> it was a cool tile 18:38:01 <06r​egret-⸸nde※> not even using the old tile, alas 18:38:19 <09g​ammafunk> yeah I guess you can't go and re-use the old monster tile 18:38:31 <06p​leasingfungus> too scary... 18:38:33 <06r​egret-⸸nde※> (...possibly we could do with another two statues or so for actual later, stronger use, but that's outside of my current project scope) 18:38:46 <06r​egret-⸸nde※> (imo one of them should just be canonizing conjurer statues) 18:39:05 <06r​egret-⸸nde※> (after giving them IMB) 18:39:34 <09g​ammafunk> zot:5 gonna get spicier... 18:40:13 <09g​ammafunk> !lg * zot:5 recent cikiller~~orange_crystal|obsidian_statue s=cikiller 18:40:14 <04C​erebot> 8 games for * (zot:5 recent cikiller~~orange_crystal|obsidian_statue): 7x an orange crystal statue, an obsidian statue 18:41:13 <06p​leasingfungus> canonizing statues? aren't the blastminers bad enough? 18:42:11 <09g​ammafunk> we'll canonize them as cannons 18:42:22 <06r​egret-⸸nde※> you see they'll be safely easier because statues can't move themselves with bombard 18:43:13 <03s​emi_tonal> oh i wonder if i can use that dgn_farthest_from thing for the zot:5 idea of making sure the stairs are far away from the vault, maybe i'll pick that branch back up 18:43:19 <09g​ammafunk> cpp bool monster::no_tele(bool /*blinking*/, bool /*temp*/) const { // Plants can't survive without roots, so it's either this or auto-kill. // Statues have pedestals so moving them is weird. if (mons_class_is_stationary(type)) return true; secret statue lore 18:46:54 <06p​leasingfungus> i think that should work? 18:47:08 <06p​leasingfungus> lmao re that comment 18:47:27 <06p​leasingfungus> imagine teleporting a statue AND its pedestal... impossible 18:47:38 <06p​leasingfungus> or just teleporting a statue and it ending up somewhere sans pedestal! 18:48:56 <06r​egret-⸸nde※> (meanwhile teleporting krakens does in fact despawn all of the tentacles instantly) 18:50:47 <09g​ammafunk> how about if you teleport it, it lands without a pedestel which means it CAN NOW MOVE! 😱 18:51:28 <06r​egret-⸸nde※> probably I should bother with a github page to write these decoration up on, just because there might be some contention over non-interactive fruit / meat piles (or contention over easter eggs of players uselessly snacking on food as they walk over it) 18:52:45 <04d​racoomega> I think it's cute (and that a purely 'general decoration' glyph would be fine) 18:53:09 <06r​egret-⸸nde※> (also since I do like the lore tapestry concept, but I have no idea if it'd be considered Too Meta even when explicitly described as apocrypha to mention old changes in god behaviours) 18:53:13 <09g​ammafunk> the return of the % glyph? 18:53:19 <06r​egret-⸸nde※> isn't % used for talismans 18:53:23 <09g​ammafunk> ah 18:53:27 <04d​racoomega> Is it? 18:53:50 <09g​ammafunk> I recall that changed over time but that does sound familiar 18:53:56 <06r​egret-⸸nde※> could just overload U in console to move from "foUntain" to "Utility", since I also don't know where gas vents go 18:55:26 <04d​racoomega> 'Underfoot' 😛 18:56:15 <03s​emi_tonal> i feel like a bunch of that meta stuff describing things from old versions as "lore" snuck in recently and i am very much on ??nostalgia[3]'s side of things there 18:56:15 <04d​racoomega> (I am surprised it's on a letter already, though) 18:56:18 <06p​leasingfungus> talismans are % in ascii, not in unicode 18:56:47 <03s​emi_tonal> pretty sure we used to have explicit guidelines against it somewhere and i am all for bringing them back 18:56:58 <06p​leasingfungus> corpses are likewise % somewhere 18:57:10 <06p​leasingfungus> guidelines against… old version references? 18:58:26 <06r​egret-⸸nde※> (I have little idea of exactly what those recent old lore things are aside from several faux-labyrinths that I'm honestly unfond of) 18:59:07 <06r​egret-⸸nde※> (or do the brain worm, crocodile, and demoted anubis guards all count) 18:59:47 <09g​ammafunk> no, those aren't meta but, uh whatever's under meta, since they're just in the game 19:00:01 <06p​leasingfungus> does robin talking about hill dwarves count 19:00:13 <09g​ammafunk> that sounds like it may be an example yeah 19:00:26 <06r​egret-⸸nde※> (...I guess the weeping skull doofy message about removed species counts?) 19:00:29 <06p​leasingfungus> you fool! i snuck that bit of cheek in a decade ago! 19:00:33 <06p​leasingfungus> ha ha ha ha ha 19:00:42 <09g​ammafunk> !cmd remove 19:00:43 <04C​erebot> Command: !remove => !commit Remove ${*} 19:00:47 <09g​ammafunk> don't make me use this... 19:01:57 <03s​emi_tonal> that sort of thing is what i was thinking of yeah, we also apparently have spellbooks whose themes "spells that used to be different schools/ranges/etc" which i think is a bit of a worse offender since those aren't even really interesting/notable changes 19:03:08 <09g​ammafunk> also curious as to which faux-labyrinths r-i is unfond of. That one recentish one does work well as a gauntlet end vault, maybe the actual runed door lair vault the end vault was based on is less good (even after I worked on it a lot to reduce it and improve maze logic) 19:03:26 <09g​ammafunk> but there are probably a lot of faux-labs in the game that I'm forgetting 19:03:28 <04d​racoomega> I think the book descriptions that very obliquely reference old Crawl versions are just completely unnotable arcana if someone doesn't know what they mean. Like, book descriptions include lots of things about old, weird wizards or spells the game doesn't contain 19:03:29 <03s​emi_tonal> i'm sure some of it could be fun lore with thought put into it, but referencing things like that just because it's a thing that changed in the past doesn't seem interesting to me 19:03:31 <09g​ammafunk> I do recall grunt's tar ending of course 19:03:49 <04d​racoomega> If one didn't know specifically what was being talked about, I don't think they'd be conspicuous at all 19:03:50 <06r​egret-⸸nde※> I think the custom book shop is deeply silly and annoying to keep up, but is so full of opaque references and randbooks already produce such silly names that it is entirely harmless for it to be making random references to spell school / level juggling 19:04:19 <09g​ammafunk> I would second that general idea of what kate's saying in terms of merely plopping in a reference to removed things just for the sake of it when there's not some really interesting link to what's making the reference 19:05:09 <09g​ammafunk> but I don't have strong opinions on this stuff generally unless something really feels "off", which is just hard to define generally 19:07:11 <06r​egret-⸸nde※> (the faux-labyrinths I mean are the two out-of-gauntlet runed door vaults that rely on recognizing tiles to anticipate autoexploring into an unseen minotaur and also tar_mu) 19:07:13 <09g​ammafunk> book text referencing removed things does feel a bit more interesting assuming the removed thing has similarity to the current contents of the text 19:08:06 <06r​egret-⸸nde※> https://github.com/crawl/crawl/blob/master/crawl-ref/source/dat/des/builder/custombooks.des#L44 19:08:46 <06r​egret-⸸nde※> (also https://github.com/crawl/crawl/blob/master/crawl-ref/source/dat/des/builder/custombooks.des#L53) 19:09:31 <09g​ammafunk> heh 19:11:11 <06r​egret-⸸nde※> (of course this is already a vault with a discord joke, strange books about spells zin or chei explicitly hate named after them, books trying to maximize the number of vowels in a spell name...) 19:14:00 <03s​emi_tonal> those two are the ones i was thinking of in particular, yeah. i'm pro-silliness generally! but just not that type of silliness, i guess 19:15:01 <06r​egret-⸸nde※> anyway. the god lore tapestry stuff was mostly going to be attempts at story rather than just "oh tso lets you poison things now and trog was once hairy"- definitely not completionist or trivial. stuff like the "dithmenos defeated ignis and cares little for weak sparks of fire these days" notion dolorous talked about. 19:16:42 <06r​egret-⸸nde※> (or how yred's the only evil god who cares about holy wrath and deliberately bothers to corrupt angels, fitting into a notion with the next yred revamp moving the current title from Yredelemnul the Dark to Yredelemnul the Fallen) 19:17:51 <03s​emi_tonal> that sounds like a much more interesting way of doing it to me, yeah. i guess also to some extent i like keeping crawl's approach to lore pretty minimal (i've been getting back into caves of qud recently and we could never compete!) but certainly there's still plenty of room for some bits and pieces 19:18:49 <09g​ammafunk> I guess, based on this discussion, the future of gammafunk_youve_been_gnomed is in doubt (not real) 19:47:08 <08w​ormsofcan> fugue icon 19:47:09 <08w​ormsofcan> https://cdn.discordapp.com/attachments/747522859361894521/1193747690979332176/fugue.png?ex=65add72c&is=659b622c&hm=a3c4b4018c730788d391ee110b33f2d97dcb26ad096b0f158b2b60658d30fa47& 19:55:20 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1610-g9787180647 (34) 20:20:17 <08w​ormsofcan> blazeheart icon 20:20:17 <08w​ormsofcan> https://cdn.discordapp.com/attachments/747522859361894521/1193756032854397039/blazeheart-spell.png?ex=65addef1&is=659b69f1&hm=e77c4acbb088b08922403dd7939714064dd04a41a2f6e4001b5518c3b834f396& 20:44:16 Where can I find the discord channel for #crawl-dev? 22:15:55 <06p​leasingfungus> it’s private, sorry. 23:35:04 Unstable branch on crawl.develz.org updated to: 0.31-a0-1610-g9787180647 (34) 23:54:22 03PleasingFungus02 07* 0.31-a0-1611-g890cdf5628: Don't label Lom Lobon a minor threat (cool2) 10(51 seconds ago, 1 file, 9+ 3-) 13https://github.com/crawl/crawl/commit/890cdf562825 23:57:11 Windows builds of master branch on crawl.develz.org updated to: 0.31-a0-1610-g9787180647