00:13:26 Unstable branch on cbro.berotato.org updated to: 0.32-a0-43-g058985b245 (34) 00:54:57 Monster database of master branch on crawl.develz.org updated to: 0.32-a0-43-g058985b245 01:36:04 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-43-g058985b245 (34) 01:36:04 Unstable branch on crawl.kelbi.org updated to: 0.32-a0-43-g058985b245 (34) 01:37:12 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 01:37:12 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-5140-g5775ae71e1 02:34:42 03Zhang Kai02 {GitHub} 07https://github.com/crawl/crawl/pull/3484 * 0.32-a0-57-gce84ba8cac: Update mutations.txt 10(32 seconds ago, 1 file, 1+ 5-) 13https://github.com/crawl/crawl/commit/ce84ba8cac75 02:35:45 03Zhang Kai02 {GitHub} 07https://github.com/crawl/crawl/pull/3484 * 0.32-a0-58-g225bad3bc9: Update spells.txt 10(27 seconds ago, 1 file, 4+ 4-) 13https://github.com/crawl/crawl/commit/225bad3bc91a 05:07:23 Unstable branch on crawl.akrasiac.org updated to: 0.32-a0-43-g058985b (34) 11:55:01 <09g​ammafunk> floraline: Can you give me some basic details on the instance size you used for cko in terms of number of (v)cpus, memory and disk space (for the server's block storage, not counting long-term archives) ? I want to know if there's a good match with the provider I'm using 11:55:11 <09g​ammafunk> I tried to find this information via discord search but 12:29:48 floraline: Can you give me some basic details on the instance size you used for cko in terms of number of (v)cpus, memory and disk space (for the server's block storage, not counting long-term archives)? I want to know if there's a good match with the provider I'm using 12:30:18 oops, posted from wrong account 15:12:49 <04d​racoomega> @pleasingfungus Out of curiosity, would you prefer a big 'Change most everything about Yred at once' commit or for me to try to separate these into different commits for individual abilities? (The latter feels like it has some additional cleanness to it, but at the same time a lot of this is sufficiently inexorable from each other that I'm not sure if that matters?) This is somewhat more feasible than it was for Beogh, given how 15:12:50 interconnected and new everything there was by comparison. 15:59:56 <06p​leasingfungus> i’d probably do one commit 16:00:17 <06p​leasingfungus> think it’s interconnected enough in practice that there’s little advantage to splitting things out 16:03:21 <04d​racoomega> Okay 16:11:48 <06p​leasingfungus> think my vague rule of thumb would be… can i imagine cherry picking this change into another branch, or into master before the rest? 16:13:24 <04d​racoomega> Not unreasonable. (I guess I was thinking like "Can I imagine replacing this ability with a different one instead" rather than "Can I imagine this ability being used outside of the rest of the god changes") 16:27:01 <06p​leasingfungus> easier to revert? i can see that line of reasoning 16:27:07 <06p​leasingfungus> don't feel very strongly about it 16:27:58 <06p​leasingfungus> but it seems like basically the same work either way. Either you figure out what exactly is needed for a revert in advance, when you split commits, or later when you actually decide to revert some feature 16:28:14 <06p​leasingfungus> the lazy approach saves work for features you don't revert 😛 16:40:19 <04d​racoomega> Yeah, it's probably fine to just squash together, and if I need some help remembering everything I changed if I need to revert something, I can always refer to the original commit (since I always do major squashing on a copy of the unsquashed branch and leave the original anyway) 16:40:36 <04d​racoomega> In case I screw something up in the process ^^; 17:57:09 <06p​leasingfungus> good makefile bug make: Circular dat/mons/test-blob.yaml <- crawl dependency dropped. make: Circular builddb <- crawl dependency dropped. ./crawl --builddb --reset-cache make: Circular dat/mons/test-spawner.yaml <- crawl dependency dropped. make: Circular dat/mons/test-statue.yaml <- crawl dependency dropped. ... test/stress/run dat/mons/blob.yaml test/stress/run dat/mons/spawner.yaml test/stress/run dat/mons/statue.yaml No 17:57:10 such test. No such test. No such test. make: *** [dat/mons/test-spawner.yaml] Error 1 make: *** Waiting for unfinished jobs.... make: *** [dat/mons/test-statue.yaml] Error 1 make: *** [dat/mons/test-blob.yaml] Error 1 17:57:36 <06p​leasingfungus> (relevant makefile logic: test-%: $(GAME) builddb util/fake_pty test/stress/run $* @echo "Finished: $*" I hacked around it, in true technical debt fashion.) 18:55:39 <06p​leasingfungus> ^ latter commit took quite a while, but i'm hoping it's helpful? 18:55:43 <06p​leasingfungus> it probably should've been a table... 18:55:53 New branch created: yaml-mons (2 commits) 13https://github.com/crawl/crawl/tree/yaml-mons 18:55:53 03PleasingFungus02 07[yaml-mons] * 0.32-a0-43-gca1f2d87ce: Move monsters into YAML 10(5 weeks ago, 622 files, 11866+ 8339-) 13https://github.com/crawl/crawl/commit/ca1f2d87ce9c 18:55:53 03PleasingFungus02 07[yaml-mons] * 0.32-a0-44-gfd197d3292: Document YAML mons 10(45 seconds ago, 1 file, 96+ 0-) 13https://github.com/crawl/crawl/commit/fd197d32928a 19:13:01 04Build failed for 08yaml-mons @ fd197d32 06https://github.com/crawl/crawl/actions/runs/7770901174 19:13:56 <06p​leasingfungus> oh phew 19:13:57 <06p​leasingfungus> just checkwhite 19:19:55 03PleasingFungus02 07[yaml-mons] * 0.32-a0-45-gfc2f5a05db: Split out negative will 10(10 minutes ago, 20 files, 32+ 22-) 13https://github.com/crawl/crawl/commit/fc2f5a05db22 19:19:55 03PleasingFungus02 07[yaml-mons] * 0.32-a0-46-gbb3b0b2c3d: Checkwhite 10(60 seconds ago, 2 files, 2+ 3-) 13https://github.com/crawl/crawl/commit/bb3b0b2c3d52 19:19:56 <04d​racoomega> Oh, splitting out will like that makes sense 19:20:06 <04d​racoomega> And I think the documentation is helpful! 19:20:29 <06p​leasingfungus> i realized after writing the code that absolutely no one would understand it if i didn't document it immediately 19:20:33 <06p​leasingfungus> so i waited a month 19:20:36 <04d​racoomega> Haha 19:20:59 <04d​racoomega> I mean, I have worked with monsters a lot and recognize most of this, but it's not like I am going to know all the field names intinctively either 19:21:15 <06p​leasingfungus> py def unique_corpse(self): # sorry return self["has_corpse"] == 'true' and self["species"] == self["enum"] and 'M_CANT_SPAWN' not in self["flags"] def base_tile(self): if "tile" not in self: return "tilep_" + self["enum"] tile = self["tile"] if tile.startswith("tile"): return tile return "tilep_mons_" + tile def corpse_tile(self): if 19:21:16 "corpse_tile" in self: return "TILE_CORPSE_" + self["corpse_tile"].upper() if not self.unique_corpse(): return "TILE_ERROR" if "tile" in self and self["tile"] != "program_bug": return "TILE_CORPSE_" + self["tile"].upper() return "TILE_CORPSE_" + self["enum"][len("MONS_"):] new and exciting crimes 19:22:08 <04d​racoomega> I am actually not entirely certain what you are doing there. Should I be? 19:22:17 <06p​leasingfungus> basically just a bunch of varyingly clever defaults 19:22:26 <04d​racoomega> Is this lua to query tiles? 19:22:28 <06p​leasingfungus> to prevent having to write out the corpse enum in cases where it should be easy to derive it from other stuff 19:22:39 <06p​leasingfungus> this is part of the new python that's generating generate mon-data.h from yaml 19:22:42 <04d​racoomega> Oh, wait, that's not even lua 19:23:12 <04d​racoomega> Look, I have used a tiny bit of both lua and python but like... a really tiny bit. I think I barely understood the latter at all, but that's what GIMP wanted fro me 19:23:24 <06p​leasingfungus> that's why i documented it 😛 19:23:34 <06p​leasingfungus> the idea is that, like, right now, you have... let's say you have an apocalypse crab, because that's what i scrolled to first. 19:24:07 <06p​leasingfungus> right now, its last line is { TILEP_MONS_APOCALYPSE_CRAB }, TILE_CORPSE_APOCALYPSE_CRAB. its tile is TILEP_MONS_APOCALYPSE_CRAB, and its corpse tile is TILE_CORPSE_APOCALYPSE_CRAB. 19:24:10 <04d​racoomega> Basically, if it has a default corpse for its type, you don't need to say that 19:24:33 <06p​leasingfungus> yeah, if its corpse isn't doing anything special, it can just be inferred in some reasonable way 19:24:48 <06p​leasingfungus> apocalypse-crab.yaml doesn't specify a corpse (or a tile! or an enum!) at all 19:24:58 <04d​racoomega> Huh 19:25:00 <06p​leasingfungus> it's all inferred from name: "apocalypse crab" 19:25:12 <04d​racoomega> So you only even need to specify any of them if they're doing some non-default thing for some reason 19:25:17 <06p​leasingfungus> yeah 19:25:41 <04d​racoomega> (Which I... off the top of my head, it feels like actually quite few things do? Enum-wise, I mean. There's genus corpse stuff used in places) 19:25:59 <06p​leasingfungus> currently there are exactly two monsters that specify corpse_tile 19:26:16 <06p​leasingfungus> which is few enough that i wonder if i should have just hardcoded them 😛 19:26:35 <06p​leasingfungus> (draconian (the base one) and mutant-beast) 19:26:48 <04d​racoomega> Ah, because they themselves are very weird 19:26:52 <06p​leasingfungus> indeed 19:27:09 <06p​leasingfungus> tile: tilep_draco_base corpse_tile: brown_draconian 19:27:25 <06p​leasingfungus> oh my docs for glyph are wrong, whoops 19:27:35 <06p​leasingfungus> i forgot glyphs have colours 😛 19:27:46 <04d​racoomega> Exactly 52 monster; no more 19:27:59 <04d​racoomega> (Okay, there's also numbers...) 19:28:17 <06p​leasingfungus> ha, just found a TODO from somewhere before 2017 long-term project: move stuff out of switches and inline code and into text files where practical - mon-data probably needs to be more like art-data.txt (compile-time) rather than vaults, descriptions (run-time) mon-pick-data? mon-gear? tilemcache offsets? use the cmd-name.h strategy? load at runtime, map from enum names to enums via a generated header? 19:28:19 <06p​leasingfungus> good past me 19:33:24 <04d​racoomega> Oh, you wrote that? 19:35:36 03PleasingFungus02 07[yaml-mons] * 0.32-a0-47-g9d8ff26a86: Fix glyph docs 10(27 seconds ago, 1 file, 12+ 2-) 13https://github.com/crawl/crawl/commit/9d8ff26a86ab 19:35:41 <06p​leasingfungus> yep! it's somewhere in the deep dusty depths of my TODO doc - same doc i've been using since i started working on crawl 🙂 19:35:56 <06p​leasingfungus> some things get done and get deleted; others just drift ever downward into the depths... 19:36:18 <04d​racoomega> Just one doc? 😛 I have like... a very unorganized pile of very old things lying around (and somewhat less disorganized newer things) 19:36:20 <06p​leasingfungus> if you were curious, the last (perhaps oldest) line is crawl vocabulary: acarine, lacertilian, testudine, carnassials, incarnadine, nacreous 19:36:28 <04d​racoomega> ....do you even know what that means anymore? 19:36:39 <04d​racoomega> Er, like, the context of it 19:36:58 <06r​egret-⸸nde※> "what are the most obscure words in crawl's ridiculous word choices" 19:37:08 <06r​egret-⸸nde※> (at least incarnadine isn't player facing :P) 19:37:09 <06p​leasingfungus> it's a list of words that are (or were) used in various description files (e.g. dat/descript/monsters.txt) which i found amusing. 19:37:26 <06p​leasingfungus> oh, huh, yeah i guess not just in the description files 19:37:33 <06p​leasingfungus> but yeah, what index said 🙂 19:37:59 <04d​racoomega> I don't recall seeing the first four of those in the game, ever 19:38:42 <06p​leasingfungus> two are now gone, tragically 19:39:05 <06p​leasingfungus> lacertilian, testudine, incarnadine, nacreous are still there (though, as index noted, the third of those is only in the code) 19:39:38 <06p​leasingfungus> (here's a freebie: pearl dragon scales are nacreous, which honestly is a bit like saying the sky is blue. or perhaps azure) 19:39:57 <06p​leasingfungus> %git 95ffbf9e83745551ecacf01f304106d358ff892a 19:39:58 <04C​erebot> PleasingFungus * 0.17-a0-442-g95ffbf9e83: Remove giant mites properly (9 years ago, 24 files, 51+ 76-) https://github.com/crawl/crawl/commit/95ffbf9e8374 19:39:59 <06p​leasingfungus> axed acarine 19:40:10 <06p​leasingfungus> giant mite A large acarine creature with poisoned mouth-parts and a thirst for blood. 19:40:50 <06r​egret-⸸nde※> extreme reluctance for e.g. giant mite A giant mite [...] 19:40:59 <06p​leasingfungus> and 01f3dad9f2e97f79e4c126e83db4cf1e0920dc50q axed carnassials (after it was added five years earlier in 37daa9894b7c9955b80476cf4ebbf8241c3f11f4) chain mail A suit made entirely out of tiny metal rings. Offering strong protection against weapons, claws and carnassials, chain mail hinders quick and stealthy movement. 19:41:15 <06p​leasingfungus> now who will protect us from the carnassials. 19:41:18 <04d​racoomega> Haha 19:41:38 <06p​leasingfungus> i just looked up carnassials and this is a really really really silly description. 19:42:07 <06r​egret-⸸nde※> alliteration doesn't really defeat how it could just say fangs and claws 19:42:12 <06p​leasingfungus> i would respect it an awful lot more if it was clubs, claws and carnasssials 19:42:20 <06p​leasingfungus> or tooth and claw, yes 19:43:26 <06p​leasingfungus> anyway, vaguely suspect that lacertilian is the remaining word in that set which players would encounter most often 19:43:45 <06p​leasingfungus> though perhaps it just washes over them like a meaningless bit of noise... which would be fair 19:49:13 <04d​racoomega> This Beogh commit message I am writing is SO LONG 19:49:22 <04d​racoomega> A short book 19:53:15 <06p​leasingfungus> contemplating turning this into a markdown table, but it's too wide........ 19:53:15 <06p​leasingfungus> https://cdn.discordapp.com/attachments/747522859361894521/1203533698662797312/image.png?ex=65d1711a&is=65befc1a&hm=f1bf982c4f34fb788661c13ccb7de30e5e9958ef394c541ceb4b645b58707a50& 19:57:02 <06p​leasingfungus> oh lol and i messed up attacks. rip 19:57:22 <06p​leasingfungus> probably gonna leave it as a big list for now 19:58:03 <09g​ammafunk> return self["has_corpse"] == 'true' please don't tell me the yaml parser isn't giving you boolean values as such on the the python side of things 19:58:16 <06p​leasingfungus> i don't remember but probably 19:58:22 <06p​leasingfungus> hm 19:58:27 <06p​leasingfungus> actually that one is probably my fault 19:58:37 <06p​leasingfungus> i'm stringifying it en route to printing it in a .h file 19:58:53 <09g​ammafunk> you are indeed commiting crimes 20:00:20 <06p​leasingfungus> lol, pre-2017 me had the same "give shields a fixed number of blocks" pitch, except i also wanted to make it visible for monsters 20:00:26 <06p​leasingfungus> here: a gnoll sergeant (lightly injured, shield knocked aside) 20:00:41 <06p​leasingfungus> (the foo/you) block (the foo’s/your) attack, [knocking its shield aside] (until start of its/your next turn) 20:00:50 <04d​racoomega> How often does the player even attack often enough for that to matter, I woner? 20:01:04 <06p​leasingfungus> attack and get blocked... 20:01:11 <06p​leasingfungus> and of course there aren't that many monsters with shields 20:01:15 <04d​racoomega> Yes, you have to somehow attack and get blocked and attack again before they act 20:01:26 <06p​leasingfungus> probably a whole bunch of times for anything but a buckler! 20:01:32 <04d​racoomega> (Which obviously does happen a bunch of times in a game, but percentage-wise it's very few) 20:02:14 <04d​racoomega> Quick blade meta 20:02:47 <06p​leasingfungus> so, trivia: this is actually implemented and in-game now 20:02:48 <06p​leasingfungus> it's just not visible 20:03:54 <04d​racoomega> Huh 20:04:18 <04d​racoomega> (I am not surprised that enemy shelds suffer similar decay to player ones, but I wouldn't have been surprised if they didn't, either) 21:56:41 <09h​ellmonk> Tso allied daevas brutally nerfed by devteam 21:59:31 <06p​leasingfungus> i mean, the old sh decay also worked for monsters :p 21:59:43 <06p​leasingfungus> in a very slightly different way than for players, iirc 21:59:49 <09h​ellmonk> brutally ruinously nerfed 21:59:56 <09h​ellmonk> unplayable 22:06:37 <06p​leasingfungus> devs can’t stop nerfing tso… 22:11:12 <06p​leasingfungus> first divine shield nerfs, then at the same time daeva nerfs 22:57:23 <06r​egret-⸸nde※> it's fine DO and I aren't on The Devil's Team so we can buff TSO instead 22:57:47 <04d​racoomega> First I buff Yred, then I buff Yred's most direct antagonist 22:57:47 <04d​racoomega> Perfectly balance 23:06:15 <06p​leasingfungus> hm 23:06:36 <06p​leasingfungus> on the one hand, i'm glad i tested whether offhand weapons actually render in webtiles before i set up an experimental 23:06:51 <06p​leasingfungus> on the other hand, the intersection of tiles code and webtiles code is... 23:10:50 <04d​racoomega> I still don't actually know how to test webtiles code locally. I just try to do the code for webtiles rendering of stuff properly and cross my fingers >.> 23:11:14 <06p​leasingfungus> oh 23:11:21 <06p​leasingfungus> read webserver/README.md 23:11:50 <06p​leasingfungus> basically you set up some dependencies, run python3 webserver/server.py, then open your browser to http://localhost:8080 23:12:24 <06p​leasingfungus> it's not too hard, you just have to compile with WEBTILES=Y first 23:12:28 <06p​leasingfungus> and full recompiles are annoying 😛 23:12:39 <06p​leasingfungus> TILEP_PART_SHADOW, // 0 TILEP_PART_HALO, TILEP_PART_ENCH, TILEP_PART_DRCWING, TILEP_PART_CLOAK, TILEP_PART_BASE, // 5 TILEP_PART_BOOTS, TILEP_PART_LEG, TILEP_PART_BODY, TILEP_PART_ARM, TILEP_PART_HAIR, TILEP_PART_BEARD, TILEP_PART_HELM, TILEP_PART_HAND1, // 10 TILEP_PART_HAND2, ps help me 23:13:21 <04d​racoomega> I mean, I've done full recompiles before (to test that webtiles compiled properly) and then still not managed to figure out how to run it. I wonder if my brain just hit "Need to run a webserver" and then completely glossed over 23:13:28 <06p​leasingfungus> maybe 23:13:31 <06p​leasingfungus> lmk next time you want to try 23:13:33 <06p​leasingfungus> i promise it's easy 23:14:04 <04d​racoomega> Probably the responsible thing is to try tomorrow, to double-check a few things before pushing the experimental branch 23:14:24 <04d​racoomega> Like whether blasphemy and apostle corpse markers display properly 23:30:30 <09g​ammafunk> What's your compilation environment? Webtiles only runs on Linux/Mac, and I'm not sure it works well in msys 23:30:47 <09g​ammafunk> I forget if I've ever tried 23:32:43 <09g​ammafunk> although it might run ok under WSL 23:56:01 <04d​racoomega> Yeah, I'm using WSL 23:58:22 <06p​leasingfungus> oh whoops 23:58:30 <06p​leasingfungus> i forgot other oses existed