00:13:09 Unstable branch on cbro.berotato.org updated to: 0.32-a0-41-gec2d92a32c (34) 00:25:05 <04d​racoomega> Not happy about how prompts for unsafe unrands only prompt you after the charge (but before you attack) or how prompts about attacking neutrals happen twice, but apparently they used to prompt you four times before this refactoring, so I guess it's still an improvement >.> 00:25:52 <06r​egret-⸸nde※> I wonder how many people even knew you could (and still will be able to) charge towards neutrals on good gods without actually swinging as a short-range cblink 00:26:01 <04d​racoomega> Ideally, we'd perform the prompts before the charge happens and then not offer any more at the end of the charge, which would mean something like... a 'tracer' melee_attack which only prompts and does nothing, and then later on have a melee_attack that we can disable prompts on entirely 00:26:27 <04d​racoomega> That is a bunch of additional refactoring, though 00:56:32 -!- TAS-2012v is now known as TAS_2012v 01:10:31 Stable (0.31) branch on cbro.berotato.org updated to: 0.31.0-10-gcf4a605ca0 01:31:42 Stable (0.31) branch on crawl.kelbi.org updated to: 0.31.0-10-gcf4a605ca0 01:31:43 Stable (0.31) branch on crawl.kelbi.org updated to: 0.31.0-10-gcf4a605ca0 01:35:51 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-41-gec2d92a32c (34) 01:35:51 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-41-gec2d92a32c (34) 01:36:57 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 01:36:57 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 02:13:06 <06r​egret-⸸nde※> discussing beogh apostles getting randarts and unrands before Draco went to bed, and a bit of something struck me. a few devs have expressed some dissatisfiaction with given brand options in slots (a desire for another review for orbs from PF, hellmonk finding current weapon brands boring in general). I wonder how much more complexity would it be adding for some unrands to sort of... "ascend"? "graduate"? into being something 02:13:07 regular randarts or even regular weapons could get, so that the average game has fairly more options and thinking over besides highest numbers + the handful of strongest resists-agnostic brands in weapon slots and resists / stat bonuses in most aux slots? 02:16:22 <06r​egret-⸸nde※> (I myself am going to go to bed fairly soon, but it just struck me how, say... an orb of giving one's melee sword of power's beams, or an orb of giving one's weapon spectral, would both be much more worth considering for given characters than orb of wrath's very awkward state.) 03:18:35 -!- The topic of #crawl-dev is: Crawl Development | https://github.com/crawl/crawl | Logs: http://s-z.org/crawl-dev/, temporarily http://crawl.akrasiac.org/logs/cheibriados/ | People with +v have commit access, devs on bridged discord as well | General Crawl-related chat to #crawl | Long stuff to a pastebin service, please 03:18:35 -!- The topic of #crawl is: Play Dungeon Crawl Stone Soup online now! Type ??online for instructions, ??lg / !lg for play stats | PM Sequell for long queries | http://crawl.develz.org | FooTV game replays: ??footv for instructions | #crawl-dev for dev discussion, #crawl-offtopic for offtopic 05:01:36 Stable (0.31) branch on crawl.akrasiac.org updated to: 0.31.0-10-gcf4a605 05:08:21 Unstable branch on crawl.akrasiac.org updated to: 0.32-a0-41-gec2d92a (34) 07:51:26 <06p​leasingfungus> sure, think mining unrands for mechanics to be used more generally is a fine idea 09:43:58 <06p​leasingfungus> https://media.discordapp.net/attachments/723049280893354014/1200109115763073064/ObuQqTKrXLg2mP94FqzF7IbfdAHM3R7TC0xOP1ch1Y0.webp?ex=65c4fbb6&is=65b286b6&hm=5f227c5840b388f4b68fbf080babfc485a6cf482791a0985429cf6842341676a& just saw this and thought folks here might enjoy it :) 09:48:07 oh god 09:48:10 <08n​icolae> what if there was an orb of power beams and you already had an unrand 🤔 lochaber axe finally good 09:49:10 <06p​leasingfungus> i’m told that loch axe with wjc is ‘the new hotness’ 09:49:26 <06p​leasingfungus> and furthermore that it’s both ‘epic’ and ‘ftw’ 09:49:47 <09h​ellmonk> Chart unclear, tried every permutation of -> . and & until it compiles 09:50:59 <06p​leasingfungus> as usual, feel free to tag yourself 09:51:18 <06p​leasingfungus> tragically, i appear to be std::optional 😔 10:27:50 <04d​racoomega> Frankly, that chart is more likely to make me think that effect use of C++ means using something else entirely 😛 10:28:09 <04d​racoomega> (But to be fair, using C++ already does that) 10:42:46 <09g​ammafunk> https://andreasjhkarlsson.github.io/jekyll/update/2023/12/27/4-billion-if-statements.html 10:58:36 <04d​racoomega> I am genuinely surprised the compiler didn't try to optimize some of that giant if-statement tree away, tbh 11:03:19 <05i​coson> some of this is documented in actor.h: // [ds] Low-level moveto() - moves the actor without updating relevant // grids, such as env.mgrid. virtual void moveto(const coord_def &c, bool clear_net = true) = 0; // High-level actor movement. If in doubt, use this. Returns false if the // actor cannot be moved to the target, possibly because it is already // occupied. virtual bool move_to_pos(const coord_def &c, bool 11:03:19 clear_net = true, bool force = false) = 0; move_player_to_grid I believe is what should be used for ui-triggered player movements, including anything that should trigger moveto effects even if it isn't technically a coord change 11:05:37 <05i​coson> actor::set_position is the lowest level one 11:05:39 <05i​coson> it's not super obvious to me that the division of labor between these is bad, just not very clearly documented 11:10:58 <04d​racoomega> I don't think these are used entirely consistently across the very many ways in Crawl to move things (possibly should have clearer names). But also there's definite a design issue with the 'real' way to properly move something with location effects not being an overridable actor method, imo. Because this means checking whether an actor is a monster or player and then calling a non-class method for it - and there are plenty of 11:10:58 cases where, say, we call move_player_to_grid if a player is being moved, but actor::move_to_pos if a monster is, and they appear not to do equivalent things. 11:11:59 <05i​coson> they do not do equivalent things, because move_player_to_grid doesn't fail 11:13:07 <05i​coson> there's really a lot of misc cases to handle in movement, I'm not sure there is or should be a 'real' way to move something 11:13:25 <05i​coson> *a single 'real' way 11:19:55 <08n​icolae> 😮 11:20:11 <08n​icolae> well now i feel good 11:20:18 <08n​icolae> unless the most recent commit fixes that bug 11:20:30 <04d​racoomega> I realize there's lots of misc cases to handle, but I think that the code currently has 'bundles' of function calls for movement that are often meant to go together, and are often (but not always!) used together when they should be, and sometimes in different combinations for no other reason than it being easy to overlook some of them. And that the current system practically requires not using polymorphic methods in multiple cases, 11:20:30 which introduces additional ways for things to be inconsistent. 11:21:35 <08n​icolae> i wonder if lochaber would be better if it didn't have such a big delay... i also wonder how Stupid it would be if it used axes PLUS polearms instead of just whichever is higher... 🤔 i guess that's a big investment if you're not a gnoll or whatever. 11:22:26 <04d​racoomega> Like, it's not like I have a specific refactored design already figured out here, but when there are multiple function calls often put together (and which often should be put together, but are sometimes overlooked), then I think there's a strong argument for them being wrapped together in a function with a few simple parameters 11:22:27 <06p​leasingfungus> draco: the post notes that they disabled optimizations to make sure the compiler couldn't stop their beautiful plan 🙂 11:22:32 <04d​racoomega> Oh, haha 11:22:57 <06p​leasingfungus> > As a side note, the program is amazingly performant. For small numbers the results are instantaneous and for the large number close to the 2^32 limit the result is still returned in around 10 seconds. i enjoyed this 11:23:39 <06p​leasingfungus> nicolae: in full sincerity, i think loch is already good and cool and already enjoyed by players, and i don't think we should try to make one weapon the überweapon with no downsides. 11:24:06 <08n​icolae> yes, but One person said it was the absolute worst, which counteracts ten thousand compliments 😔 11:24:17 <06p​leasingfungus> much to consider. 11:27:02 <04d​racoomega> For example, there are a bunch of things like clearing far constrictions and similar status effects that are often done for 'real' movement, and while there are surely cases we want not to do that, I think by having to set some argument to false (that defaults to true) that's forcing the code to be a lot more explicit that it shouldn't happen, rather than it being functionally indistinguishable from failing to add several other 11:27:02 things after the function call 11:29:15 <06p​leasingfungus> i vaguely suspect you'd want some kind of movement type enum, rather than entering bool flag hell 11:29:42 <04d​racoomega> Sure, maybe 11:30:05 <04d​racoomega> Like I said, these are general thoughts. It would take a lot of careful analysis of all the ways these things are presently called to develop a specific plan 11:30:51 <04d​racoomega> Determining which things should be functionally grouped together based on which repeatedly are (while also trying to determine which inconsistencies matter and which are oversights - because I'm quite certain there are still some of the latter lying around :P) 11:46:38 <06p​leasingfungus> yeah, that's the kind of change that's big scary to me 11:46:54 <06p​leasingfungus> i've done that sort of thing, but only when i'm feeling very cocky... and ready to spend quite a while cleaning up trailing bugs 🙂 11:48:39 <04d​racoomega> Oh, it's definitely big scary 11:49:43 <04d​racoomega> But the present state has also caused enough trickling new bugs over time that it feels like there has to be a better way ^^; 11:49:48 <06p​leasingfungus> reasonable 11:49:53 <06p​leasingfungus> rip off that band-aid 11:50:07 <06p​leasingfungus> or 'plaster', as i should maybe say in aus english??? 11:50:52 <04d​racoomega> I'd want to get my big feature-related projects in a reasonable settled state first, but after that I might seriously look into trying this... 11:51:34 <05i​coson> yeah, I don't mean to say it shouldn't be refactored, but I'd also be alarmed to do it 11:52:32 <05i​coson> it could be worth starting just by better documenting what currently exists 12:41:13 <05s​astreii> hello, doing some experiments with @regret-⸸nde※ 's idea (draconians can't wear armor or vests anymore) so i'm trying to overhaul the entire sprite. this one in particular is for drac knight. 12:41:14 <05s​astreii> https://cdn.discordapp.com/attachments/747522859361894521/1200163486592925836/Schermata_2024-01-25_alle_20.37.13.png?ex=65c52e59&is=65b2b959&hm=cb21b6ec6237b0020a814fa07037bd84e1b5b28f6750b0d65d63c7e0f09f3fee& 12:42:29 <06r​egret-⸸nde※> rad 12:43:15 <05s​astreii> if you think i'm on the right path i'll proceed to do all the dracs this way 13:09:23 <06r​egret-⸸nde※> I... might like a little more accessorizing specifics (like, I guess armouring the tail for this knight), but I don't know how much the other casters will be fitting on effects for their limbs in comparison (considering that's another big current part of the non-knight / monk stuff) (...also what are monks getting? >_>) 13:11:25 <06r​egret-⸸nde※> if you were to be doing anything regarding my requests, I guess I'd be inclined towards filling the gaps in my post-tourney decor project also, since the drac respriting project seems so daunting and technically currently functional if lying 13:14:25 <04d​racoomega> For what it's worth, I think the new tile is very nice! But I am still somewhat concerned that there's not going to be enough space to properly differentiate the various mages without losing clarity compared to the current ones. ...maybe they can just wear large amulets of some sort with relevant iconography over their scales? (The current draconian tiles are quite fine from a visual perspective, is the thing. It's just the weird 13:14:26 non-symmetry with what player draconians can wear (and what the enemies actually wear) 13:19:06 <06r​egret-⸸nde※> (I guess I didn't mention that decor project before because I was waiting for various assessments of it, which have mostly involved things like name futzing or "go screw with the unicode and ascii glyph set") 13:20:42 <09g​ammafunk> do classed dracs wear actual armour? 13:20:50 <06r​egret-⸸nde※> they do not, all dracs wear cloaks 13:24:53 <06p​leasingfungus> fancy pantsy drac 13:31:54 <06r​egret-⸸nde※> (should I write a quicker summation of what I could still do with, I wonder) 14:19:46 <06p​leasingfungus> seems like a very good idea! 14:36:00 <06r​egret-⸸nde※> (got distracted with talk in the other channel about that unrand graduation thing and getting some approval for trying out an orb of sword of power) 14:36:10 <06r​egret-⸸nde※> (also about knife safety) 14:42:24 <06r​egret-⸸nde※> (...and am being furthered distracted with debating with DO about whether evo affecting orbs would help them or not) 15:00:17 <03i​mplojin> now you've got me thinking about the merits of merging elemental evokers into the shield slot and merging evo/shields into something like gadgetry 15:05:07 <06r​egret-⸸nde※> @wormsofcan @sastreii higher relevancy: * Cloudy crevice - a dark crack of ruptured earth from which a bunch of colour variations of smoke can be seem emnating out of. a big mechanical part of my current project is to make like 95% of cloud generating fog_machines have a visible source, rather than them just popping in and out in a spoilery and blind fashion. colours needed: blue for freezing clouds, red for fire clouds, 15:05:07 green for poison and radiation, cyan for storm clouds, grey for smoke and steam, * Boulders - Brom's uses a rolling boulder beetle currently, which is obviously confusable when cast against boulder beetles, and makes placing immobile boulders as decoration unviable. Something geometric, like the current Brom's spell icon, would be ideal for minimizing confusion with the bumpiness of current boulder beetles. A second colour variation- something dirty 15:05:08 and brown, like the dust boulders leave behind them- for immobile boulders would also help. ----- other additional bits for my big decor project for early 0.32: * Metal hearths - a hearth set into a metal wall, as a metal wall redefine of a fireplace / oven for a few dozen "house" vaults. should still look like a wall since it's mechanically just a wall, and shouldn't be more than a few embers to make people not anticipate flame clouds spilling out 15:05:10 of it on the regular. * Caches of fruit and meat - a lot of vaults relied on food for flavour, and we can use that without making food something players have to actually deal with, as stockpiles of food humanoids and beasts could both hoard. There's some absolutely ancient tiles I've repurposed for this already like below, but these'll be used in a _lot_ of vaults, and I know there'd be some people who'd like to see the more comical or IRL-obscure 15:05:10 options like pizza, snozzcumbers, and rambutans as a decorative sight again, so having just a few more options like this would be nice? 15:05:10 <06r​egret-⸸nde※> https://cdn.discordapp.com/attachments/747522859361894521/1200199698754064434/296913762-ae008565-925c-4fdc-a47b-e36504a7f940.png?ex=65c55012&is=65b2db12&hm=ac84e3e1e6dc25567880060084c42438f5c6e31430c05c4bbc203c23feada11f& 15:05:43 <04d​racoomega> I'd actually briefly wondered a while ago if it would be better gameplay to have shields/orb merged into the same skill (since orb rarity also often meant that you find a useful shield first, put a bunch of skill into it, and then that skill does nothing if you find a nice orb instead), but I had no idea what one would even call such a skill. 15:06:06 <04d​racoomega> "Off-Hand Skill" is the most miserable-sounding thing 15:06:44 <06r​egret-⸸nde※> I'm reluctant for players defaulting to one-handers already having the default lower weapon xp + the defensive bonus from shields then getting free wand boosting 15:07:03 <04d​racoomega> I mean, sure, from a different angle 15:10:36 <06r​egret-⸸nde※> if we get vault controls for randart properties I do have a bailey-depth-ish early portal concept that would make early game orbs be a fair bit more relevant (by giving a school enhancing randart orb some notable percent of the time) but that's probably a very long ways off for my plans 15:44:30 -!- log is now known as Loggers_VIII 17:51:17 <08w​ormsofcan> for food do you mind having new options that weren't available before 17:51:20 <08w​ormsofcan> e.g. cake 17:51:39 <08w​ormsofcan> can make a lot of stuff if we can just make whatever food 17:52:02 <08w​ormsofcan> killer klown vault with pies... 18:26:35 <04d​racoomega> Well, I have found an interesting bug with ?amnesia, working on all this ghost/illusion stuff. 18:27:18 <06r​egret-⸸nde※> I hadn't seen very many obvious uses for "cache of baked goods" that wouldn't overlap heavily with the other cache uses, but possibly that alone would be an acceptable third option if the feature is named e.g. "baked goods" and exactly one tile is pie-centric, the same way granite statues can be narrowed down to one of the dozens for a given vault 18:27:19 <04d​racoomega> If you amnesia spells you learned chronologically earlier, the ghost will be unable to see spellls you learned later 18:28:17 <04d​racoomega> Basically. You learn a spell, it goes into an array of spells known, and the total number of spells you know goes up by 1. You amnesia a spell, that slot gets set to SPELL_NO_SPELL and you.spell_no (ie: number of spells known) goes down by one. 18:28:38 <04d​racoomega> But the ghost iterates through your spells by for (int i = 0; i < you.spell_no; i++) 18:29:07 <04d​racoomega> You learn 4 spells, amnesia the first one, now the first slot is empty and it will skip the 4th one 18:29:57 <04d​racoomega> (When you learn new spells, they will start filling up the empty slots from the front, but you could easily amnesia several cheap ones to learn an expensive one, and thus render several spells you know inaccessible to illusions) 18:30:49 <06r​egret-⸸nde※> continuing to moan in annoyance and sadness for poor illusion card as I see this written out a second time 18:31:11 <04d​racoomega> I think this has been wrong since the ghost spell code was last touched in 2014 23:17:20 03regret-index02 07* 0.32-a0-42-ga30500b4d3: Catch a missing Depths gem (GnomeSayin) 10(2 minutes ago, 1 file, 5+ 4-) 13https://github.com/crawl/crawl/commit/a30500b4d330 23:17:21 03regret-index02 07[stone_soup-0.31] * 0.31.0-11-ge490571c62: Catch a missing Depths gem (GnomeSayin) 10(2 minutes ago, 1 file, 5+ 4-) 13https://github.com/crawl/crawl/commit/e490571c6277 23:34:55 Unstable branch on crawl.develz.org updated to: 0.32-a0-42-ga30500b4d3 (34) 23:57:14 Windows builds of master branch on crawl.develz.org updated to: 0.32-a0-42-ga30500b4d3