00:31:47 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5014-gf9597c7f93 02:44:13 <09g​ammafunk> That lua crash again: https://crawl.dcss.io/crawl/morgue/qw/crash-qw-20230904-092825.txt 03:22:43 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5014-gf9597c7f93 05:29:25 Unstable branch on crawl.akrasiac.org updated to: 0.31-a0-672-g7da7244 (34) 05:30:48 <04d​racoomega> Actually, that looks more like it's not copying inner flame power properly when splitting. Oops. 05:31:18 <04d​racoomega> ...I wonder if there's anything else that cares about this. Does Phantom Mirror copy debuffs on the target, too? 05:32:12 yes 05:32:56 <04d​racoomega> Wonder if I can reasonably scour the codebase for other places this happens somehow, without simply remembering them first 05:33:05 <04d​racoomega> (Either way, I can get this fixed today) 06:08:27 03DracoOmega02 07* 0.31-a0-673-g566e9ce4a0: Have moncast.lua use is_valid_mon_spell() instead of manual blacklist 10(33 seconds ago, 1 file, 1+ 66-) 13https://github.com/crawl/crawl/commit/566e9ce4a0db 06:08:41 <04d​racoomega> The best way to fix your code not passing tests: fix the tests instead! 😛 06:08:57 <04d​racoomega> (But as far as I can tell, this is just more accurate than the old method anyway, and doesn't miss anything) 06:18:22 it's also one less giant table, which I wholeheartedly approve of 06:19:21 as for copying- Mara, slime creatures, and phantom mirror are pretty likely to cause problems 06:19:26 tentacles might?? 06:19:32 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-673-g566e9ce4a0 (34) 06:26:17 <04d​racoomega> Looking at this code, it looks like splitting actually may have been fine; it was the merging that wasn't 06:26:47 <04d​racoomega> Since splitting just outright copies all the props of the original, while merging doesn't 06:28:55 then probably just slime creatures 06:30:56 <04d​racoomega> Convenient, starcursed masses and slime creatures seem to share the same code for merging enchantments 06:31:25 <04d​racoomega> But I should probably also put a fallback in for inner flame explosions that are missing the power key, for save compat reasons if nothing else >.> 06:31:49 <04d​racoomega> If they, say, cast it before this gets merged into trunk, but it only explodes after >.> 06:32:52 <04d​racoomega> That was a convenient way to notice missed cases, so they could be fixed, though (since I expect it will be very hard to notice them otherwise). I guess it's not that big of a problem if overlooked code causes explosions at higher-than-expected power?? 06:33:09 <04d​racoomega> It just seems like the kind of subtle bug that could go unnoticed for years, though ^^; 06:43:50 <04d​racoomega> If I make the game print a warning if 'thing that should happen happens', I wonder if anyone would report it if they saw it? Does this make sense to do, I wonder? 07:03:13 I think generally you'd want an assert there? 07:03:26 <03s​emi_tonal> we haven't really done that in regular builds typically (although I suppose we do have things like messages for removed spells/items, missing descriptions etc which seems along the same lines). depending on the severity of the thing, we often do asserts or debug messages, yeah 07:04:44 <03s​emi_tonal> asserts are probably a safe bet if it's something that really shouldn't be happening, since crashing is sure to get noticed! and means we get a report automatically if it's online 07:06:47 <04d​racoomega> I don't think an assert makes sense, given that it could totally happen based on version upgrade (if inner flame was cast pre-upgrade or a live guardian golem was from pre-upgrade) and we don't want it to just start asserting under that circumstance, I think 07:07:04 <04d​racoomega> And there's not really a good way to tell that it isn't that 07:07:44 <04d​racoomega> I'd honestly rather just silently paper over the problem than assert (since, at worse, all that happens is 'a instance of inner flame works at the same power it used to instead of some arbitrary lesser amount' 07:09:07 <04d​racoomega> Though as I work on starcursed mass wonkiness now (and some mostly-visual bugs with bullseye), I realize they're arguably already buggy about a few things? Like, there's code specifically not to let splits being stuck in a web, but not for, say, BVC (which can happily be moved around a bunch by splitting/merging) 07:10:04 <04d​racoomega> It's arguably not important that the zombie hands can be duplicated and moved, but it's... kinda weird? 07:19:24 <06p​leasingfungus> that’s definitely weird 07:20:17 <04d​racoomega> I wonder if there should just be a general veto list for 'status that are not to be copied' on clones/splits/etc? 07:20:24 <04d​racoomega> In one place 07:21:33 <06p​leasingfungus> plausible 07:27:19 <04d​racoomega> Looks like clones already auto-delete BVC and at least some of this is cloning and splitting using entirely different codepaths 07:27:29 <06p​leasingfungus> nice 07:28:39 <04d​racoomega> Clones use the monster copy constructer, then delete some stuff from it. Splits make a fresh new monster, then manually copy a bunch of state into it 07:47:10 <04d​racoomega> I think I'm just going to lightly fix immediate issues with the split/merge and leave the far heftier problem of combining these two codepaths to... maybe some theoretical future time >.> 07:57:16 03DracoOmega02 07[hexslinger_changes] * 0.31-a0-661-gfac6f21555: Fix Inner Flame crash with starcursed masses and future-proof 10(5 minutes ago, 2 files, 15+ 1-) 13https://github.com/crawl/crawl/commit/fac6f2155569 07:57:16 03DracoOmega02 07[hexslinger_changes] * 0.31-a0-662-g8778717fc9: Fix visual bug with cloning a monster that is a Dimensional Bullseye target 10(4 minutes ago, 2 files, 10+ 1-) 13https://github.com/crawl/crawl/commit/8778717fc949 07:57:16 03DracoOmega02 07[hexslinger_changes] * 0.31-a0-663-g690d6540d5: Fix splitting/merging of creatures sharing some enchants it should not 10(3 minutes ago, 1 file, 16+ 2-) 13https://github.com/crawl/crawl/commit/690d6540d5fa 07:57:16 03DracoOmega02 07[hexslinger_changes] * 0.31-a0-664-g826a531565: Remove some Sigil of Binding special-casing 10(61 seconds ago, 2 files, 14+ 22-) 13https://github.com/crawl/crawl/commit/826a531565a6 07:59:42 <06p​leasingfungus> sounds correct 🙂 08:09:49 03hellmonk02 07[great-magnetic-field] * 0.31-a0-665-g02096ab3b5: fix: Reveal stair items 10(62 seconds ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/02096ab3b564 08:30:07 04Build failed for 08great-magnetic-field @ 02096ab3 06https://github.com/crawl/crawl/actions/runs/6075157400 08:49:07 <05i​coson> I checked and this casts 4 spells that monsters don't use, but they happen not to crash, otherwise it's the same 08:49:41 <05i​coson> it's possible they (or some others) did crash 3 years ago 08:49:59 <06p​leasingfungus> which spells? 08:50:05 <06p​leasingfungus> i’m really curious 08:51:30 <05i​coson> agony (former monster spell?), chain of chaos, summon lightning spire, irradiate (looks like radroaches do cast this now) 08:51:47 <05i​coson> kind of surprised chain of chaos doesn't crash, that's the mace of variability one right? 08:52:18 <06p​leasingfungus> probably 08:52:42 <06p​leasingfungus> we should make sls work for mons 08:52:57 <05i​coson> lol 08:53:25 <09h​ellmonk> didnt tengu reavers have sls at one point 08:53:29 <04d​racoomega> Actually, doesn't Psyche use Chain of Chaos? 08:53:47 <05i​coson> ah, yeah, looks like it 08:54:48 <06p​leasingfungus> should be easy and is great mara illusion value 08:55:08 <06p​leasingfungus> also, hm 08:55:13 <05i​coson> it was prev a chaos champion spell too 08:55:19 <06p​leasingfungus> does mace of variolation not work when wielded by mons? 08:55:24 <06p​leasingfungus> ah, yeah, sounds right 08:55:28 <04d​racoomega> Also, summon lightning spire seems to already work for monsters just fine 08:55:32 <04d​racoomega> It's just none come with it 08:55:40 <04d​racoomega> I just gave it to a statue and it seems functional 08:55:47 <05i​coson> yes, it doesn't crash 08:56:02 <06p​leasingfungus> is it in the ghost.cc list 08:56:12 <05i​coson> if it was prev a tengu spell that would probably be why 08:57:39 <06p​leasingfungus> oh yeah it was 08:57:49 <06p​leasingfungus> very briefly a tere spell 08:58:17 <06p​leasingfungus> so yeah i think monsters cast or previously cast all of these 08:58:27 <06p​leasingfungus> also i think fenster witches cast agony 08:58:29 <06p​leasingfungus> non range 08:59:23 <06p​leasingfungus> @??fenstrider witch 08:59:23 <04C​erebot> fenstrider witch (H) | Spd: 13 | HD: 16 | HP: 56-76 | AC/EV: 5/15 | Dam: 25, 25 | weapons, items, doors, evil, spellcaster, see invisible | Res: will(100), poison, neg | Corpse | XP: 1317 | Sp: paralyse, agony, hurl sludge (3d15) | Sz: Giant | Int: human. 08:59:43 <06p​leasingfungus> don’t actually remember what casts agony range 08:59:50 <06p​leasingfungus> death knights…? 08:59:57 <06p​leasingfungus> @??death knight 08:59:58 <04C​erebot> death knight (p) | Spd: 10 | HD: 10 | HP: 63-91 | AC/EV: 10/9 | Dam: 28 | weapons, items, doors, fighter, priest, evil | Res: will(80) | Corpse | XP: 831 | Sp: agony range [!AM], injury mirror [!AM] | Sz: Medium | Int: human. 09:00:20 <06p​leasingfungus> wow, what useless info that i know 09:01:52 @??imperial myrmidon 09:01:52 imperial myrmidon (11a) | Spd: 12 | HD: 16 | HP: 63-86 | AC/EV: 4/21 | Dam: 3012(vuln) | 10weapons, 10items, 10doors, evil, spellcaster | Res: 06will(60) | Corpse | XP: 1217 | Sp: slow, confuse, agony range | Sz: Medium | Int: human. 09:01:56 <04d​racoomega> Necromancers 10:10:07 03hellmonk02 07[great-magnetic-field] * 0.31-a0-666-ge6547f7827: show stair collapse on map 10(47 seconds ago, 1 file, 4+ 0-) 13https://github.com/crawl/crawl/commit/e6547f7827ba 10:18:18 04Build failed for 08great-magnetic-field @ e6547f78 06https://github.com/crawl/crawl/actions/runs/6076134152 10:35:04 Dimensional arrow doesn't seem to trigger reliably 10:56:11 <04d​racoomega> Howso? (I just looked at the bit you posted in #dcss. Was there anything else weird going on as far as you know? I did some quick testing with similar situations and everything seemed fine) 10:57:02 <04d​racoomega> It's entirely possible that the code I added to prevent you getting teleports off friendlies or firewood (or even just this morning's merge/split bugfix) did something to it, though 10:57:17 <04d​racoomega> Was this happening regularly? 11:00:11 yea, reasonably often 11:00:38 <04d​racoomega> One thing to note: it has, in past, been possible for the player character to lose the status of 'Bullseye' while the monster doesn't lose its status as target. This results in an icon still being on the enemy, but no teleport shots triggering. I've fixed a bunch of these cases, since it shouldn't happen (it's misleading), but can you notice if the next time this happens whether you still has a Bullseye status light or not? 11:00:47 I did 11:00:56 <04d​racoomega> Hrmmm 11:00:59 I can probably repro if you wanna hop on and watch 11:01:57 oh, I think it happens when you kill 11:02:17 <04d​racoomega> Oh, hmmm 11:02:37 yeah, no teleport if the shot kills 11:02:47 <04d​racoomega> That definitely used to work, but this is at least something specific to stab at 11:07:02 <04d​racoomega> ...really wish I could convince WSL Crawl not to randomly bluescreen me on a regular basis -.- 11:07:20 ripp 11:07:42 I think my general feel on dimensional arrow is still 'it feels really bad to be casting' 11:08:02 <04d​racoomega> Surely that's not helped at all by it randomly not working 11:08:41 no, that's definitely not helped 11:08:54 <04d​racoomega> Well, I'm working on that one 11:08:59 <04d​racoomega> (Once things finish relaunching >.>) 11:11:38 I think my feeling of 'I'd rather be casting fireball' will probably persist 11:11:38 or better, toxic radiance 11:13:33 The situations where killing two targets at once later are noticeably better than killing the closest target- but you also don't want to reposition so the closest target is your only real threat- are pretty slim 11:14:16 nearly all the use I've been getting out of darrow is popping inner fires on dudes mid pack; which is useful, but it's two smite targets of setting up 11:14:31 which is rather cumbersome 11:17:05 03PleasingFungus02 07* 0.31-a0-674-g4df812870a: Add Descent mode (hellmonk) 10(1 year, 2 months ago, 67 files, 713+ 256-) 13https://github.com/crawl/crawl/commit/4df812870ab4 11:18:08 03PleasingFungus02 07* 0.31-a0-675-g238779eb0a: Unbrace 10(23 seconds ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/238779eb0a92 11:20:51 <04d​racoomega> Hmmm, this might be awkward. To verify the player was shooting at a non-friendly/non-firewood, it looks at the things the beam has marked as having been in the line of fire, but it can't actually pull up info on anything dead by that point to check if they qualified 11:31:19 Could do 11:31:19 If hit nonfriendly nonfirewood non darrowtarget mon, teleport 11:31:20 Else, if beam contains nonfriendly nonfirewood mon, teleport 11:32:55 <04d​racoomega> I think I've got something. Just had to restructure a few things. 11:32:56 <06p​leasingfungus> i think what you probably need to do is check at the time that a beam is about to hit something and add a fineff 11:32:59 <06p​leasingfungus> oh, nice 11:33:31 <04d​racoomega> (I'm just doing the check for trigger target validity immediately before the actual ranged_attack call, instead of at the time when bullseye itself triggers) 11:34:12 i will say- it feels a little odd that you care if the beam contains the darrow target 11:34:53 <04d​racoomega> Well, I didn't want you to be able to hit the same target twice. 11:35:39 04Build failed for 08master @ 4df81287 06https://github.com/crawl/crawl/actions/runs/6076583234 11:36:11 <04d​racoomega> It's a bit strong to just double attacks against a solo target ^^; 11:36:19 <06p​leasingfungus> also just not a fun dynamic to set up 11:37:22 Surely you can check the hit target? 11:39:06 <04d​racoomega> To note: it doesn't care if the arrow could continue its path to hit the bullseye target, if it misses what you're trying to aim at, and doesn't. Only if it actually made a to-hit attempt against the bullseye target 11:39:24 <04d​racoomega> If that's not the case, it's a bug 11:39:35 right; that's part of what feels odd 11:40:07 like, you're kind of incentivized to aim beams so they don't go through the darrow target 11:40:21 even when that's asinine 11:41:37 actually that may not be true; does bullseye still give the acc bonus? 11:41:50 <04d​racoomega> I... I hope I don't sound bullheaded or dismissive here, but like... if you've hexed a target in a way that fighting to get value from that hex is asinine, then maybe either the target or the tactic is wrong in that situation? 11:42:21 <04d​racoomega> The general idea of 'You want to fight two things at once and need to aim differently because of this' is sort of part of the inherant design 11:42:40 <04d​racoomega> Bullseye only gives any accuracy on the teleport attack itself 11:43:08 Put a demo in discord 11:43:25 if I want acc boost on the darrow gnoll, I aim into the wall past the orc 11:43:34 <04d​racoomega> Okay, that one does get an eww from me, I guess 11:43:50 much more pronounced with reflect amulets 11:45:33 <04d​racoomega> Maybe this is the accuracy bonus's fault? Because without it, consider what happens if you aim down the corridor straight. Either you hit the orc and then teleport to also hit the gnoll. Or you... miss the orc and hit the gnoll directly, which is exactly what would have happened with the weird aim 11:45:55 <04d​racoomega> Like, I think there's no actual benefit to aiming weirdly there otherwise? 11:46:00 reflect amulet 11:46:24 but that's admittedly far less common and less clearly correct 11:46:54 <04d​racoomega> How does that change the calculation here? 11:47:31 Even if there's no acc bonus, if I'm up against a target with reflect, I want to only hit them with darrow'd shots 11:47:43 so I don't shoot myself in the fact 11:48:10 <04d​racoomega> ....hmm... I guess those can't reflect? 11:48:25 <04d​racoomega> (But maybe that's fine if a rare situation produces a weird behavior in specific cases?) 11:48:32 Unless they're beams originating from you, they can't 11:48:46 <04d​racoomega> I am going to test what happens now anyway 11:49:19 to be honest- while you definitely shouldn't be able to hit a target twice, I'm not sure I see much issue with getting two chances to hit a target 11:51:19 <04d​racoomega> That does make it a pretty significant accuracy boost to just toss it on a single monster and keep shooting them, though 11:52:15 <04d​racoomega> (Though I have been wondering in general if we want to make the hex give its current accuracy boost against the monster regardless of how your shot ends up hitting them. Still avoids the degenerate aiming situation you mention) 11:52:40 <04d​racoomega> ....but does kind of end up being free accuracy without other cost in a normal situation, so I dunno 11:52:58 I think I would very rarely use it for that purpose; certainly not for trash monsters 11:53:48 probably reserved for bees etc and rmsl mons 11:54:23 <04d​racoomega> I mean, I guess it's 'free' but still costs you taking a shot at the enemy 11:54:42 <04d​racoomega> Which is probably still wrong against most things 11:55:18 <04d​racoomega> Not going to be a net gain against most single targets unless somehow they were expected to survive a great many attacks anyway 11:56:52 right, exactly 11:57:07 and also costs a hefty chunk of mana 11:59:36 <04d​racoomega> Well, it doesn't cost the 1 mp per shot unless the shot teleports 11:59:38 <04d​racoomega> Only the 4 upfront 11:59:54 yeah, but like- I'd rather inner flame and binding sigil 12:00:03 and probably jinxbite 12:01:06 <04d​racoomega> That is fair 12:01:34 Unstable branch on crawl.kelbi.org updated to: 0.31-a0-675-g238779eb0a (34) 12:10:27 03DracoOmega02 07[hexslinger_changes] * 0.31-a0-665-gb71881364c: Fix Dimensional Bullseye not teleporting on enemy kills 10(3 minutes ago, 2 files, 17+ 22-) 13https://github.com/crawl/crawl/commit/b71881364c38 12:10:27 03DracoOmega02 07[hexslinger_changes] * 0.31-a0-666-g000953698b: Give Dimensional Bullseye accuracy bonus unconditionally 10(46 seconds ago, 1 file, 8+ 6-) 13https://github.com/crawl/crawl/commit/000953698bda 12:31:14 04Build failed for 08hexslinger_changes @ 00095369 06https://github.com/crawl/crawl/actions/runs/6076924199 13:13:11 -!- Discord|1 is now known as Discord| 13:46:49 <09g​ammafunk> looking a bit more at monster los, it seems that monster don't use player los radius to determine what they can see 13:48:32 <09g​ammafunk> namely they use the default actor::see_cell() method that uses cell_see_cell(), which itself uses LOS_RADIUS as a max cutoff for visibility which is hard defined to the max possible los radius of 8 13:49:00 <09g​ammafunk> it's likely always been the case that monsters don't have player los radius limitations applied to them 13:50:43 wait, so is monster sight not reciprocal? 13:51:09 <09g​ammafunk> no 13:51:53 <09g​ammafunk> however it seems that it never always was given things like los reduction mutations formerly held by some Ds (and now given to Ko) and other unrands that change it 13:52:36 <09g​ammafunk> but what happened is that Ba were added and the code didn't use the new default los radius and continued to use the old LOS_RADIUS constant 13:52:59 <09g​ammafunk> so now there's no parity for any non-ba players 13:53:48 <04d​racoomega> Wait, are you saying that it's possible for monsters to see you and wake up before a normal player can see them? 13:54:01 <06p​leasingfungus> that's odd if so. wouldn't they shout? wouldn't this be really obvious? 13:54:08 <09g​ammafunk> not sure about that part of the check 13:54:09 <04d​racoomega> Yes, I would think so? 13:54:21 <09g​ammafunk> that does happen down the line and there may be an addition range check somehwhere 13:54:23 <04d​racoomega> Monsters randomly shouting while you just walk around seems like it would be obvious 13:54:41 <06p​leasingfungus> likewise if monsters were shooting at you from out of los, etc 13:55:20 <09g​ammafunk> I rand into this initially from the lua side for view.cell_see_cell(), which does a ray check, and I saw that squares 8 tiles apart could see each other even though I was non-Ba species 13:55:28 <03s​emi_tonal> i do think there's a comment to the effect that "nothing should be using LOS_RADIUS any more" but that definitely hasn't actually been put into effect (everything should use LOS_DEFAULT_RANGE or LOS_MAX_RANGE or you.current_vision depending on specific context) 13:55:42 <09g​ammafunk> right LOS_RADIUS is still used a lot of places sadly 13:57:20 <09g​ammafunk> regarding actual monster behaviour, they may not be directly using cell_see_cell and it might be working from player visibility initially 13:57:31 <09g​ammafunk> which I guess would effectively give symmetric los? 13:57:55 <09g​ammafunk> but there are some cases I see using actor:cell_see_cell() directly and those would not be symmetric 13:58:32 <09g​ammafunk> player ::cell_see_cell() overrides the actor method of course properly considers the player's actual vision radius 13:58:58 <04d​racoomega> Sounds thorny to figure out what is or isn't affected properly here.... 13:59:51 <09g​ammafunk> oh, hrm 14:00:25 <09g​ammafunk> I misread the player method, the current_vision for players is only used for wizard vision and revelation 15:25:59 Unstable branch on underhound.eu updated to: 0.31-a0-675-g238779eb0a (34) 17:06:47 Pathfinder (L3 HuFi) Crash caused by signal #6: Aborted (D:2) 17:21:45 !crashlog Pathfinder 17:21:46 1. Pathfinder, XL3 HuFi, T:626 (milestone): https://underhound.eu/crawl/morgue/Pathfinder/crash-Pathfinder-20230905-000646.txt 17:23:59 gobbledygook to me… crashes in random_var::random_var(int, int, std::vector >) 17:46:55 <06p​leasingfungus> bug in attack delay with 17:47:24 <06p​leasingfungus> no idea why, starter fighter loadout 20:30:52 Kabalo (L14 MiFi) ASSERT(!invalid_monster(&mons)) in 'mon-death.cc' at line 1637 failed. (Orc:2) 23:49:44 Unstable branch on cbro.berotato.org updated to: 0.31-a0-675-g238779eb0a (34)