00:13:20 Unstable branch on cbro.berotato.org updated to: 0.31-a0-1616-gbeaec30b81 (34) 00:53:51 Monster database of master branch on crawl.develz.org updated to: 0.31-a0-1616-gbeaec30b81 01:31:57 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 04:23:36 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5140-g5775ae71e1 05:07:02 Unstable branch on crawl.akrasiac.org updated to: 0.31-a0-1616-gbeaec30 (34) 09:47:01 03Implojin02 07* 0.31-a0-1617-g29cbedb7bc: Autopickup elemental evokers by default 10(2 hours ago, 1 file, 3+ 0-) 13https://github.com/crawl/crawl/commit/29cbedb7bc50 09:47:01 03Implojin02 07* 0.31-a0-1618-g54f21dcd01: Remove some obsolete autopickup lua 10(84 minutes ago, 1 file, 0+ 17-) 13https://github.com/crawl/crawl/commit/54f21dcd01d8 10:05:46 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1618-g54f21dcd01 (34) 10:55:40 <06p​leasingfungus> xposting from the other discord. old-timer b0rsuk posts: > The skill "Unarmed Combat" is a newbie trap. Its description tells you it governs the power of off-hand punch attack, if you keep the other hand free. But in reality it's only a difference between 1-handed unarmed and 2-handed unarmed. The investment into Unarmed Combat is wasted xp if you want to wield a 1-handed weapon and punch enemies. But one fist and a Shield skill 10:55:40 is not. > > Unarmed Combat is not a decent alternative to Shields skill, but it pretends it works like one. > > This is unintuitive. You would expect shield to get in the way of unarmed combat (or Maw Form for that matter). > > I would propose to change the Unarmed Combat skill and its description to explicitly say you only get off-hand punch if your both hands are free, and change the code to disable off-hand punch if you're wielding a 1h weapon. > 10:55:41 > Where do I submit the request? 10:56:02 <06p​leasingfungus> I replied: for reference for others reading this, the in-game description of the unarmed combat skill is: > Being skilled in Unarmed Combat increases your accuracy, damage and attack speed in melee combat when barehanded. It also allows you to occasionally punch with your off hand as an additional melee attack, provided your hand is free to do so. And in the manual: > Unarmed Combat is a special fighting skill. It allows your 10:56:02 character to make a powerful attack when unarmed and also to punch with the off hand as an additional melee attack. The Unarmed Combat skill continues to increase your attack speed while unarmed until it can be raised no more. "Unarmed Combat is not a decent alternative to Shields skill, but it pretends it works like one." I agree that the effectiveness and scaling of off-hand attacks are unclear from these descriptions, which seems like something we 10:56:03 could improve. However, it's not clear to me that Unarmed Combat is 'pretending to be an alternative to the Shields skill'. > I would propose to change the Unarmed Combat skill and its description to explicitly say you only get off-hand punch if your both hands are free, and change the code to disable off-hand punch if you're wielding a 1h weapon. That seems quite unintuitive to me. 😛 I'd be more likely to remove UC's scaling of the trigger 10:56:03 chance for off-hand punches. It's certainly not important for evaluating the UC skill, and it seems like off-hand punches could be roughly as effective at their intended role (an early-game consolation for being shieldless) without that type of scaling. (Could have a flat chance or scale on XL instead, like other aux attacks.) Cheers! 11:07:09 <04d​racoomega> Not that I think this is a terribly important issue or anything, but I have the vaguest memories of thinking UC skill might be useful in small amounts for non-UC characters when I was very new to the game. But honestly, I probably think "Only get offhand punch while unarmed, and it scales with UC" is more immediately intuitive than "There is a punch that doesn't scale at all with UC, unlike the other thing still called 'punch' 11:07:10 that does." I wonder how mechanically relevant off-hand punch is for the average earlygame character? 11:07:48 <06p​leasingfungus> the thing is that its damage does scale with UC regardless 11:07:49 <04d​racoomega> I wonder if there are any other aux verbs left to use? 11:08:02 <04d​racoomega> I thought your proposal was to make the damage of it not scale 11:08:11 <06p​leasingfungus> > I'd be more likely to remove UC's scaling of the trigger chance for off-hand punches. 11:08:18 <04d​racoomega> Oh, hmm 11:09:34 <04d​racoomega> I mean, that doesn't seem unreasonable in a vacuum. (I did think 'punch with no UC scaling' would be a bit unintuitive). But does this actually change anything meaningfully about how theoretical beginners might view the skill? 11:09:56 <06p​leasingfungus> currently trigger chance for off-hand punches scales with UC skill and with XL, unlike all other auxes, which scale with XL or nothing 11:10:36 <06p​leasingfungus> think reducing the number of moving parts lets us simplify the description. 11:11:53 <04d​racoomega> The aux is possibly in a slightly odd position in general, since I think essentially nobody considers it worth using over a shield for UC characters (despite it being a comparatively high-damage aux), so it's just sort of a bonus to tide you over to getting one 11:12:15 <06p​leasingfungus> sure 11:15:03 <04d​racoomega> I guess - while I mostly don't have strong opinions about this - am just wondering if the most streamlined and intuitive thing is to remove the trigger chance from UC, just scale the damage, and make it only work while attacking unarmed. And just wondering if this ends up being a meaningfully undesireable earlygame nerf for weapon characters who want a shield but don't have one yet. I've no idea what the base damage even is, tbh 11:15:04 >.> 11:16:57 <06p​leasingfungus> i don't understand why we'd only make it work when attacking unarmed. 11:17:06 <06p​leasingfungus> that makes no sense to me. 😛 11:21:04 <04d​racoomega> What is intuitive is surprisingly subjective sometimes, I guess. (Like, personally, the idea of getting regular punch attacks while fighting someone with, say, a polearm feels more weird than not getting them. I'm perfectly willing to abstract physical maneuvers in the interest of mechanical clarity, but at the same time: attacking with a weapon versus getting in there with just your fists seems reasonably to involve different 11:21:05 stances on the player, so I wouldn't find it strange to only get follow-up punches if you're punching with the other hand as well) But I don't mean to split hairs on the topic. 11:26:31 <06p​leasingfungus> gotcha 11:26:38 <06p​leasingfungus> oops this shouldn't be in feature freeze 11:26:45 <06p​leasingfungus> maybe i'll revert and put it back in later 11:27:08 <06p​leasingfungus> evert... sigh 11:27:14 03PleasingFungus02 07* 0.31-a0-1619-gba2c541246: Simplify off-hand attacks 10(4 minutes ago, 3 files, 7+ 14-) 13https://github.com/crawl/crawl/commit/ba2c54124622 11:27:14 03PleasingFungus02 07* 0.31-a0-1620-gcbf77bbcfc: Temporarily evert "Simplify off-hand attacks" 10(24 seconds ago, 3 files, 14+ 7-) 13https://github.com/crawl/crawl/commit/cbf77bbcfcd5 11:27:14 <06p​leasingfungus> sometimes i've got everything inside out... 11:30:28 <04d​racoomega> Whoops ^^; 11:30:45 <04d​racoomega> New shortest-lived balance change 😛 11:35:13 PostVibes (L9 AtFi) ERROR in 'tileweb.cc' at line 234: Socket write error: Resource temporarily unavailable (D:7) 11:49:17 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-1620-gcbf77bbcfc (34) 11:51:28 <04d​racoomega> Minor Beogh flavor question: if you're literally slowly turning into an orc from worship, does this mean that Zin should reject you if you tried to switch to him. >.> Or should they textually undo said things? 12:11:05 biased toward the latter under the impression that however rare Beogh→Zin may be (extended?), I prefer gods not being forever locked out outside species and sac love (and if Mennas was preaching to orcs, Zin was *probably* on-board? but that can change) 12:13:42 <04d​racoomega> Zin is also perfectly on-board with Mennas killing his own worshippers also 😛 (But what you say is not unreasonable) 12:14:04 <04d​racoomega> I'd actually completely forgotten that was in Mennas's description 12:18:34 wouldn't protest changing the text slightly if it clashes with new Beogh 13:11:46 <06p​leasingfungus> clearly zin should un orcify you 13:11:57 <06p​leasingfungus> as you said 13:12:00 <06p​leasingfungus> big lore 13:12:09 <06p​leasingfungus> really does put mennas in a whole new light… 13:17:05 <04d​racoomega> Clearly Mennas went there to preach about how they should stop being orcs 13:17:10 <04d​racoomega> Rather unsurprising this was unpopular 13:18:08 <04d​racoomega> Also, am I being blind or is the large amount of text describing passives in god_passives in god-passive.cc literally never used anywhere? 13:19:46 <04d​racoomega> I changed something, didn't see it reflected in-game, and then realized that the text seems entirely drawn from god_powers in religion.cc. I can't actually see a single thing referencing the text in the ormer 13:20:34 <04d​racoomega> Oh, also a bunch of code in _describe_god_powers 13:25:33 <06p​leasingfungus> you are not blind 13:25:47 <06p​leasingfungus> god_passives is a project that someone (advil?) worked on many years ago, but never fully hooked up 13:27:26 <04d​racoomega> Looks like it was probably |amethyst 13:27:48 <04d​racoomega> The thing is, checking when passives are granted does use this, so it's extra confusing to have this descriptive stuff that's unused 13:38:29 <06p​leasingfungus> yep 13:38:36 <06p​leasingfungus> i've definitely been confused by it in the past 13:38:49 <06p​leasingfungus> eg i added a description for chei's zot slowing effect... which is surfaced nowhere! 13:41:10 <04d​racoomega> Do you think it would be a reasonable idea to just... remove all of it? 13:41:34 <04d​racoomega> And make it just an array of piety/passives? 13:41:41 <06p​leasingfungus> seems a little sad, but possibly correct 13:42:18 <04d​racoomega> (When I went looking, the commits mentioning how this structure was preparatory for 'randgods' sure made me do a bit of a double-take) 13:44:13 <03i​mplojin> > The idea is to > decouple abilities from specific gods, allowing the same abilities to > be used for randgods. 13:44:22 <03i​mplojin> aw, that sounds like it could have been fun 13:44:30 <03i​mplojin> rip not being touched since 2017 13:44:39 <06p​leasingfungus> i've always been very skeptical of randgods 🙂 we have a hard enough time making gods fun by hand 13:44:43 <06p​leasingfungus> but what do i know 13:46:37 <04d​racoomega> I am likewise skeptical. Gods are very 'cohesive' packages, and I think that's part of what makes them work as well as they do? 13:47:01 <04d​racoomega> (When they do, of course ^^; ) 13:47:37 <04d​racoomega> Not sure a grab-bag of various powers and conducts would be able to have the same spark 13:49:09 <04d​racoomega> (I was actually also skeptical/opposed to randbooks for liches and such, waaaay back in the day before they were added. Feel very slightly vindicated by history in the iterim >.>) 13:49:20 <04d​racoomega> Not quite the same thing, but some overlap 13:50:10 <04d​racoomega> ....okay, maybe this sounds ironic as I currently work on doing a similar thing for Beogh apostles, but I'm just gonna selfishly insist 'It's not the same thing' 😛 14:06:52 <06r​egret-⸸nde※> randliches were in a time where monsters didn't describe their spell list, which made getting randomly lrd'd or fireball'd or emergency banished rather dissatisfyingly blind 14:07:39 <04d​racoomega> At the time, I argued fairly strongly that airstrike would be a pretty awful thing to just have a low random, unanticipable chance to get blasted with, yeah 14:09:48 <06r​egret-⸸nde※> (in the modern context of everything having displayed single books, I considered a possible boris buff of him being the only one with randbooks, as something that could be scaleable for appearing earlier and let the reviving actually involve rolling for different strategies rather than him stubbornly trying iood over and over again) 14:10:57 <06r​egret-⸸nde※> (would probably only considered further buffs than the one he got if there could be any consensus found on what to do about boris parking, though. at least misery clouds inherently scale.) 14:13:26 <06r​egret-⸸nde※> (also I got haunt back in somewhere else for now) 14:17:20 <06r​egret-⸸nde※> ...also also the current randbook thing is player ghosts / illusions and apostles might finally get the fourth use context needed for getting more player -> monster spells implemented :P 14:18:58 <04d​racoomega> Yeah, it's very likely I implement a few of the low-hanging fruit there 14:19:10 <04d​racoomega> Such as foxfire or scorch 14:34:42 <06r​egret-⸸nde※> I'd like something in the spirit of randgods of there being an actives version of Xom to handle how people want Xom to only be passive effects, and with Ru demonstrating that randomized player conduct choices manage to work out decently, but making Xom more exciting after the miscasts removal is an inherently higher priority in that vein 14:37:11 <06r​egret-⸸nde※> (I guess I can just learn from Draco's new Yred code to make Xom summon 40 things versus XL instead of just tiers 3 through 5) 14:39:11 <06r​egret-⸸nde※> (and maybe chaos branding monsters could fairly more common so the player can use the newly buffed brand more often?) 14:40:15 <04d​racoomega> You mean like, brand enemy weapons with chaos (which you could then use more often because there'd be more of them to pick up?) 14:40:45 <06r​egret-⸸nde※> https://github.com/crawl/crawl/blob/master/crawl-ref/source/xom.cc#L2924 it is already a thing, after all 14:49:08 <04d​racoomega> Have I mentioned that I hate monster movement behavior code recently? 14:49:12 <04d​racoomega> Because I do 14:49:28 <04d​racoomega> The most opaque labyrinthine thing 14:50:06 <04d​racoomega> (Trying to figure out why a decent percentage of pacified monsters just... don't bother trying to leave the floor and mill in place forever, despite seeming to have their internal movement targets set to the stairs) 14:55:26 <04d​racoomega> Probably affects Ely, too, but is definitely magnified in noticability when an entire band is liable to end up pacified as once and then just.. kinda dance around 14:55:59 <04d​racoomega> (Though I have hilariously learned that pacified monsters are entirely content to think walking to the nearest shaft and jumping into it, one after another, is a fine thing to do in this scenario) 14:56:23 <04d​racoomega> "Welp, you seem like a bro, so Imma put down my axe and go jump in a hole." 15:14:54 <09g​ammafunk> yeah monster behavior code is an awful chain of gargantuan if/elseif/... with all sorts of interconnected logic for what BEH_ implies what except when it doesn't 15:17:03 <09g​ammafunk> I think the first time I really struggled with it was making spectral weapon work for monsters (i.e. asterion), which ironically I eventually reverted. I had to spend a long time just to make the various monster "avatars" like spectral weapon/battlesphere/the now-removed ds warmonger one behave in a consistent way when the alignment of the caster changed, and that was just one part of it 15:17:58 <09g​ammafunk> it's probably pretty hard to design some kind of unified system and/or set of classes that can manage those sorts of things in a more coherent way, though 15:23:12 <04d​racoomega> Yeah, original battlesphere implementation was really, really tough, because there are so many parts of this complex web of code that will just change/overwrite values set in earlier parts of code and it's hard to track what does what 15:23:36 <04d​racoomega> There's also like... I can't even remember how many different functions that perform some part of 'figure out where the monster wants to move' all using different logic to do so 15:24:59 <04d​racoomega> I am convinced that the behavior we actually need could be handled in a greatly simplified system with a more coherent logic flow, and also that it would be an absolute nightmare to try and actually achieve this T.T 15:25:46 <09g​ammafunk> yes, I think I stole the movement path and caching logic you made for thorn hunters to make boulder beetles be able to remember where they had wanted to move to so they could see when they can no longer do so and stop rolling 15:26:03 <09g​ammafunk> since otherwise we had them rolling in place as they patiently waited for e.g. harmful clouds to disperse 15:26:08 <09g​ammafunk> which was funny, but not ideal 15:26:39 <04d​racoomega> Haha 15:26:45 <03i​mplojin> so polite 15:26:46 <04d​racoomega> Cute-but-kinda-broken 16:05:14 <04d​racoomega> Okay, I think I've found part of this problem and I'm just kind of shaking my head at this code: C++ // During their wanderings, monsters will eventually relax // their guard (stupid ones will do so faster, smart // monsters have longer memories). Pacified monsters will // also eventually switch the place from which they want to // leave the level, in case their current 16:05:15 choice is blocked. if (!proxFoe && !mons_is_avatar(mon->type) && mon->foe != MHITNOT && one_chance_in(isSmart ? 60 : 20) && !mons_foe_is_marked(*mon) || isPacified && one_chance_in(isSmart ? 40 : 120)) { new_foe = MHITNOT; if (mon->is_travelling() && mon->travel_target != MTRAV_PATROL || isPacified) { #ifdef 16:05:15 DEBUG_PATHFIND mpr("It's been too long! Stop travelling."); #endif mon->travel_path.clear(); mon->travel_target = MTRAV_NONE; if (isPacified && e_index != -1) e[e_index].unreachable = true; } } 16:05:16 <04d​racoomega> Key points: pacified monsters have a 1-in-120 (or 1-in-40 if they're smart) to just forget about their pathing each turn. But this isn't done in a way that ever actually lets them pick a new target later on (ie: they still pass the test for 'has a stair target' but not the part where they will move towards it). Also that e array down there is a list of level exits that only exists at all if the pacified monster tried to pick its 16:05:17 stair target that turn, and is never referred to or used again after this point regardless. So I think that code usually does nothing, and still does nothing even when it does something. 16:06:25 <04d​racoomega> So effectively, this is just a small chance each turn to give up and dance around like a lost fool forever 16:06:39 <04d​racoomega> (Until they stumble onto a staircase by accident) 16:07:27 <04d​racoomega> Also that debug message of "It's been too long!" sure is a choice when this has nothing to do with how long anything has been 16:08:14 hm, that chance is reversed compared to the comment describing it? 16:08:41 <04d​racoomega> Less intelligent monsters lose their target more rapidly if they're not pacified 16:08:53 <04d​racoomega> The inverse is true if they're pacified 16:08:54 <04d​racoomega> Because ??? 16:09:17 <06p​leasingfungus> code good 16:09:18 <04d​racoomega> (I think the intent was that smart monsters would reevaluate their path to the stairs more rapidly if they got blocked) 16:09:25 <04d​racoomega> Not that they do this at all, though! 16:10:41 <04d​racoomega> I wonder if there's any harm if I took out that part for pacified monsters entirely. I guess the idea is that there was a chance they might be blocked in place by something and never figure out where they were going (though I'm not sure how plausible this is to happen, nor that this is a good solution to it even if it did work properly) 16:19:13 <09h​ellmonk> would it be plausible to switch it to a proper timer? after 100 turns pacified the monster says "I have to go, my planet needs me" and dies or whatever 16:19:46 <09h​ellmonk> the current setup seems unnecessary even if it worked as intended 16:23:45 I can absolutely confirm that this is not theoretical: in practice, an Ely player just gives up on guessing where pacified monsters are going to go after a point under their current AI 16:25:31 Unstable branch on underhound.eu updated to: 0.31-a0-1620-gcbf77bbcfc (34) 16:32:32 <04d​racoomega> One could set a timer, but I'm not sure this is even that necessary 16:32:55 <04d​racoomega> Though I should test out what actually happens if they get completely blocked in going where they want to go 16:34:15 <04d​racoomega> (With the above code disabled) 16:35:48 <04d​racoomega> Oh, by the way, for some reason they also consider teleporters to be 'level exits' 16:35:57 <04d​racoomega> Er, teleport traps 16:36:38 <04d​racoomega> Which they can actually use to leave the level??? 16:38:38 <04d​racoomega> Actually, I'm not certain they can. It would work if they could actually still be standing on the teleport trap by this point, but I'm not sure it's possible. ...I guess they could be wearing a -tele item?? 16:38:50 <04d​racoomega> And would they then just disappear from the teleport trap? 16:41:22 <06r​egret-⸸nde※> https://cdn.discordapp.com/attachments/747522859361894521/1194788102519128106/image.png?ex=65b1a021&is=659f2b21&hm=5d21744b34edd73fb68dbe21f55d5263bc2c4563a28fc8b8ccc7256036ea6449& 16:41:37 <06r​egret-⸸nde※> also they can... decide to leave the level by entering pan. 16:42:22 <06r​egret-⸸nde※> (as may come up with beogh pacifying orcs and pf's pan orc end) 16:42:40 <04d​racoomega> I can confirm that if you give them a -tele item, they will vanish from the game entirely, without even a message, if they step on a tele trap 16:44:29 <04d​racoomega> Deliberately stepping on teleport traps otherwise somewhat works, because evidently if you are sufficiently far away from them (21 tiles), they just cease to be on their own 16:44:54 <04d​racoomega> But if they're unlucky enough to land near you, I wonder if they will just keep moving back to the same trap 16:50:07 <04d​racoomega> They are very determined to leave 16:50:07 <04d​racoomega> https://cdn.discordapp.com/attachments/747522859361894521/1194790298560241695/orcaport.gif?ex=65b1a22d&is=659f2d2d&hm=549359b1ae3fb8899caaa3d6cedf0f3c3e6e12472758099cd6c717cce1e141e6& 16:50:11 <04d​racoomega> But also very foolish 16:51:54 <06r​egret-⸸nde※> beautiful 17:14:16 <09h​ellmonk> horrifying knowledge of dcss fills your mind 17:22:01 <09g​ammafunk> poor behavior regarding neutrals also extends outside of dcss itself: I have to thank r-i for simultaneously buffing qw with chaos and nerfing qw with chaos, since it currently avoids attacking them for various reasons. hence it was happy to do other things like wait for a peacekeeper to come into range while that chaos frenzied vault warden destroyed it 17:22:02 <09g​ammafunk> https://cdn.discordapp.com/attachments/747522859361894521/1194798333294813236/image.png?ex=65b1a9a8&is=659f34a8&hm=6c3d6a9e1708b1c1da291a04413455663de1f7470202813f8319f381babbcc2f& 17:22:47 <09g​ammafunk> warden managed to take out the peacekeeper as well to give qw some xp before death 17:23:31 <04d​racoomega> "I dunno; he seems real friendly to me!" 17:23:54 <06r​egret-⸸nde※> the wide gap between neutral and good_neutral 17:24:13 <09g​ammafunk> ely quokka flies into a rage if it sees you worship an evil god 17:24:23 <04d​racoomega> Haha, it does? 17:24:31 <09g​ammafunk> no, but it could! 17:24:45 <09g​ammafunk> (with the right lua, which of course we would never allow) 17:24:56 <04d​racoomega> I was entirely willing to believe it currently did, after today 😛 17:25:11 <06r​egret-⸸nde※> just make monster gods matter more and then make the quokka worship ely 17:25:23 <06r​egret-⸸nde※> what could possible go etc etc 17:26:01 <06r​egret-⸸nde※> ...also, a sudden thought 17:26:23 <06r​egret-⸸nde※> if we're releasing 0.31 very soon, shouldn't the changelog be updated with the last month of rapid changes? >_> 17:27:50 <09g​ammafunk> well, we've' obviously still got over a week, and we do usually finish that up in the last day or two beforehand, but sure. Would be nice to agree on release highlights 17:28:16 <09g​ammafunk> those seem to be the part that requires the most agreement 17:28:29 and the title! 17:28:37 let the bikeshedding begin! 17:28:58 <09g​ammafunk> (yeah and it wouldn't hurt to come up a with a release name well before release day instead of less than 24 hours before) 17:30:04 <09g​ammafunk> a final trunk update would be nice to have as well, if e.g. PleasingFungus wants to make one (or someone else can write one up or help him write one up so he can post it) 17:30:50 <09g​ammafunk> I am emailing greensnark about the remaining sequell issues for tournament, notably playable keyword and gem fields for sequell 17:31:15 <09g​ammafunk> then we also have the issue of incorporating gems to tournament and any other planned tournament script changes, but that's sort of altogether separate 17:32:29 <09g​ammafunk> I don't actually know if we have enough content for a final trunk update, but I think that's very likely the case. For reference, the last was https://crawl.develz.org/wordpress/trunk-updates-11-december-2023-and-tournament-announcement 17:34:55 <06p​leasingfungus> re changelog: i was probably going to do that at some point 17:35:41 <06p​leasingfungus> we’ll see if i have energy in the next two days… before i board an alaska airlines 737 max 9 and am sucked out into the sky (topical [real]) 17:42:46 <04d​racoomega> Considering just removing all teleporters as valid means for a pacified monster to try and exit. (Them leaping into shafts or the abyss is funny, though, so that can stay :P) 17:43:31 <04d​racoomega> Not exactly sure where fixing some of this falls on the 'bugfix' <-> 'behavior change' continuum regarding freeze 17:53:18 <09g​ammafunk> that seems fine as a post-freeze fix since it has basically no effect on balance. Also, it's not a level exit! I guess the idea is that it could "help" them path to one by teleporting randomly out of disconnected areas? 17:53:44 <04d​racoomega> Well, I mean all of these 'fix pacification wonkiness' things together (I am trying to find and stamp out a number of wierdnesses about it) 17:54:20 <04d​racoomega> This technically affects Ely (but unclear exactly how importantly) 17:54:21 <09g​ammafunk> we do have a good amount of time before actual release to see if there are any resulting bugs, so as long as you're willing to watch for crashes/weirdness/etc, seems fine 17:54:29 <04d​racoomega> I will, of course 17:55:52 <09g​ammafunk> I recall ely pacification have relevant gameplay effects regarding neutrals where e.g. pacified Mennas walloped a few monsters as it was pathing away from me, but I assume this doesn't change the fundamentals of that 17:56:23 <04d​racoomega> By the way, apparently I was wrong earlier and didn't notice that the 'static' in front of the level exit list means that it persists between calls to this function, so that bit of code I said does nothing does do something - although I'm not sure it's something we want 17:56:49 <04d​racoomega> (Also: the idea that you can define a function-local variable to persist between calls of that function frankly scares me >.>) 17:58:40 <09g​ammafunk> Yes, static function variables is a prominent feature of C relevant to a lot of optimizations that C++ inherits, but I imagine C++ people prefer different abstractions 17:59:02 doesn't bother me, but I've been doing C since 1984ish 17:59:22 <09g​ammafunk> Big Brother... 17:59:36 <04d​racoomega> Mostly I was caught off-guard 17:59:41 that said, it's not something you want to do if you're doing threads 18:00:00 <04d​racoomega> And would assume that any storage intended as persistant would be, like, scoped outside a function instead 18:00:15 <04d​racoomega> (This is passed back and forth between multiple functions as it is) 18:02:58 <04d​racoomega> But this means that if it rolls that 1-in-40 to forget about where it's going, it will flag that staircase as unreachable to all other pacified monsters (though this may only affect ones pacified afterward). But also there's a 1-in-20 chance any time a pacified monster looks for a staircase to regenerate all that data and mark all previously unreachable staircases as reachable again 18:03:07 <04d​racoomega> I really do not think I like this approach >.> 18:04:16 <06r​egret-⸸nde※> ancient-code philosophy of randomizing the randomizing to provide ever-so-crucial realistic indecisiveness and opacity 18:13:37 <06r​egret-⸸nde※> ???????????????????? 18:13:38 <06r​egret-⸸nde※> https://cdn.discordapp.com/attachments/747522859361894521/1194811319300407386/image.png?ex=65b1b5c1&is=659f40c1&hm=4f10cda1f84483ab1fdc57f807b1ca732603a52f7b3d6259dfbb6c9d1f9dfd44& 18:14:13 <04d​racoomega> Yes, there is apparently a 1-in-4 chance that a monster of the appropriate type who is wandering and then steps on this to just start patrolling the general area around that feature afterward 18:14:28 <04d​racoomega> They have to actually step on it independently first 18:14:33 <04d​racoomega> Not just merely be near it 18:14:42 <06r​egret-⸸nde※> dynamic patrolling... so it's less predictable how monsters patrol?... 18:15:28 <04d​racoomega> This doesn't actually set their travel type to MTRAV_PATROL, but does set their patrol pint, so I am not sure exactly how this shakes out 18:17:00 <04d​racoomega> (And it doesn't happen if they're seeking, so they have to have not be noticing the player either) 18:17:29 <04d​racoomega> Meaning... if you wake up some elves from off-screen and one of them happens to walk over the branch entrance, they might just stick around nearby while the rest of their group walks off?? 18:22:15 <09h​ellmonk> I am going to pretend I never saw this 18:22:43 <06r​egret-⸸nde※> you can never forget. 18:22:50 <04d​racoomega> Am I just repeatedly blasting your sanity today? 18:23:01 <06p​leasingfungus> i love that function 18:23:08 <06p​leasingfungus> i discovered it a few months ago 18:23:16 <06p​leasingfungus> posted it in the other channel 18:23:19 <06p​leasingfungus> joy ensued 18:23:31 <04d​racoomega> Funny thing is that the general idea of monsters guarding entrances to branches is kind of neat, but it would either need to be used way more consistently or not at all 18:23:37 <06p​leasingfungus> the ely bit is my favourite 18:23:47 <04d​racoomega> Like, you'd want them to be patrolling, as a group, based on a nearby feature, not having to individually step on it 18:24:09 <06p​leasingfungus> the stairs thing maybe might have made slightly more sense when monsters spawned from stairs 18:24:24 <04d​racoomega> (Possibly there could be a discussion about entrance vaults using patrolling tags, but this function just seems like nonsense at present) 18:24:40 <06p​leasingfungus> it’s wildly nonsense 18:24:42 <06p​leasingfungus> i love it 18:24:44 <06r​egret-⸸nde※> oh god, mons_is_native_in_branch is actually relevant for monsters tracking players out-of-sight and yet hasn't been updated since various branch overhauls 18:25:00 <04d​racoomega> Is this the kind of love that is also hate? ^^; 18:25:10 <06r​egret-⸸nde※> cyclops, harpies, and merfolk are less prone to forgetting players than fauns and satyrs 18:25:32 <06p​leasingfungus> it’s the sort of love you feel when you see a big pile of free deletes 18:25:45 <06r​egret-⸸nde※> spiders less prone to forgetting the player than radroaches or moths....... 18:25:56 <06p​leasingfungus> hey, it’s not like those have been in shoals for long! 18:26:13 <04d​racoomega> Yeah, I could have sworn I only did that a handful of dev months ago 18:26:54 <06p​leasingfungus> was thinking about deleting holy-word-type.h the other day, but didn’t have the heart 18:27:12 <09g​ammafunk> I like that the comment is just // Spiders... You can almost feel that the author of that function felt that they knew they'd gone off the rails 18:27:16 <06p​leasingfungus> (it’s still used, but probably shouldn’t be) 18:27:21 <04d​racoomega> Haha 18:27:27 <04d​racoomega> That sure is a tiny, highly specific file 18:27:29 <06r​egret-⸸nde※> but what if we added GoodXom 18:27:52 <06r​egret-⸸nde※> who always wants to help but is extremely indecsive about what to do 18:28:33 <04d​racoomega> Xom already wants to help, and knows that inattention is one of the easiest ways to losing a promising character, so he does his best to make sure you can never slack off 18:28:35 <04d​racoomega> Helping! 18:28:53 <04d​racoomega> "Gee, I bet they're paying way more attention now that there's a black mamba on D:2!" 18:29:07 <06r​egret-⸸nde※> you're not wrong, 18:32:05 <04d​racoomega> I'm up for removing this opacity in 0.32 18:33:42 <04d​racoomega> // Reproduced here is some semi-legacy code that makes monsters // move somewhat randomly along oblique paths. It is an // exceedingly good idea, given crawl's unique line of sight // properties. 18:33:57 <04d​racoomega> I feel like Crawl los hasn't had those properties I suspect they're talking about for a while 18:34:08 <04d​racoomega> (And this was marked 'semi-legacy code' 14 years ago) 18:45:52 <09g​ammafunk> Is that the aspect where a monster will sometimes move in a "nonlinear" way, ducking just out of los at times, when pathing? 18:47:14 <04d​racoomega> No, it just makes diagonal movement more likely to be pure horizonal/vertical than it would otherwise be, if the monster is at least 3 tiles away 18:47:29 <04d​racoomega> I tend to think the comment is a circlelos reference 18:48:00 <04d​racoomega> (I am not saying the actual behavior here is even bad, though I think the comment is very outdated about it) 18:48:11 <04d​racoomega> C++ // Sometimes we'll just move parallel the x axis. if (abs(delta.x) > abs(delta.y) && coinflip()) mmov.y = 0; // Sometimes we'll just move parallel the y axis. if (abs(delta.y) > abs(delta.x) && coinflip()) mmov.x = 0; 18:53:40 <06p​leasingfungus> normal 18:57:51 <04d​racoomega> I feel like I keep unearthing wierdness today 18:59:02 <04d​racoomega> Some part about monster patrol code specifically limits how many tiles they look at to determine a new move target by the player's vision radius, despite the los checks themselves using either a normal full los range (or a smaller range if they're mindless) 18:59:22 <04d​racoomega> Despite the fact that the player themselves isn't involved in any of this 18:59:59 crawlcode treasure trove 19:01:14 <04d​racoomega> I just wanted to make pacified orcs consistently actually try to leave the level T.T 19:05:14 <04d​racoomega> Pacified monsters using patrol_point to store the target of the stair they're trying to move towards feels like it doesn't entirely work. Or rather, when first pacified, they set both patrol_point and target to their desired destination, but target is the one actually doing the work. And if something causes target to change or be lost, while patrol_point remains locked on the staircase, all this will do is cause them to randomly 19:05:15 move around in the 'general area' of the stair (and hope they hit it by accident) 19:06:06 <04d​racoomega> (Removing that 1-in-40/120 chance to just forget where they are going will help this, but I don't think it completely fixes it either) 22:43:56 <04d​racoomega> Okay, I have just discovered something terrifying 22:45:09 <04d​racoomega> Y'know that static array of floor exits? It isn't reset when you enter a new floor. If the array was created already (by pacifying one monster previously), pacified monsters on a new floor will try to move to where the exits were on the previous floor. Worse, if they step on the matching coordinate (ie: where a stair was on the previous floor), they will disappear without any message. 22:46:04 <04d​racoomega> This array of exits is probabilistically regenerated (1 in 20 chance each time a pacified monster tries to look for a stair), and of course there's the chance to mark a stair randomly as unreachable (and if they all get marked that way, it will regenerate it again)