01:21:28 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-4135-g7666618ddd 01:22:37 <10P​leasingFungus> coding is fun 01:34:16 Unstable branch on crawl.develz.org updated to: 0.27-a0-1140-g099f9bb0e8 (34) 01:54:44 Windows builds of master branch on crawl.develz.org updated to: 0.27-a0-1140-g099f9bb0e8 02:19:01 Unstable branch on cbro.berotato.org updated to: 0.27-a0-1140-g099f9bb0e8 (34) 02:53:23 Monster database of master branch on crawl.develz.org updated to: 0.27-a0-1140-g099f9bb0e8 03:30:42 Fork (bcrawl) on crawl.kelbi.org updated to: 0.23-a0-4135-g7666618ddd 03:31:51 Fork (bcadrencrawl) on crawl.kelbi.org updated to: 0.03-271-g97babad5ff 04:18:03 Salamander tyrant's Eruption doesn't respect use_animations option. 13https://crawl.develz.org/mantis/view.php?id=12582 by Yermak 13:06:12 Unstable branch on crawl.akrasiac.org updated to: 0.27-a0-1140-g099f9bb (34) 13:14:15 <13S​astreii> boulder beetle but more boulder and less beetle 13:14:15 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840637572799004722/Schermata_2021-05-08_alle_19.09.53.png 13:14:21 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840637762838462524/BB.zip 13:28:26 <08n​icolae> oh yeah, i like the knobbly bits, you get the idea of "this thing is going to hurt if it rolls over me" 13:29:11 <08n​icolae> also i wish there was an option with a subvault to specify "use something that is the exact shape of the area" instead of the stuff with bounding boxes and so forth, because it is a pain in the behindus 14:03:31 <08n​icolae> question for thing knowers: is there a way for a subvault to find out what tag was used to place it, like if i have a subvault that can has tags subvault_A and subvault_B and then a call that's SUBVAULT: D : subvault_A / subvault_B, is there some lua magic that can tell the subvault if it was called with A or B. i tried the dgn.map_parameters() trick used in stuff like grunt_temple_overflow_open bu 14:03:32 i'm guessing that might not work for subvaults, just regular vaults 17:33:17 <09g​ammafunk> @nicolae check out gauntlet.des, but the basic idea would be to lua condition in the parent vault, with one conditional block using SUBVAULT: subvault_a and also calling a function that set a global variable whose value your subvault checks, and then the other conditional block uses SUBVAULT: subvault_b and calls probably the same function, but sets that global variable to a different value. The 17:33:17 values could be simply true/false unless you need more than two conditions. Then in your subvaults, you simply check the value of this global, so if it's boolean you can just use the variable as a boolean condition 17:33:48 <08n​icolae> fascinating... 17:34:25 <09g​ammafunk> see 17:34:29 <08n​icolae> i wish there was a way to specify "use the exact shape and nothing smaller" but i imagine that would be a lot to code 17:34:36 <09g​ammafunk> !source gauntlet.lua:5 17:34:36 <04C​erebot> https://github.com/crawl/crawl/blob/master/crawl-ref/source/dat/dlua/gauntlet.lua#L5 17:34:42 <09g​ammafunk> and 17:34:51 <09g​ammafunk> !vault gammafunk_gauntlet_branching 17:34:51 <04C​erebot> 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/dat/des/portals/gauntlet.des#L1205 17:34:57 <09g​ammafunk> for an example of it in use 17:36:04 <09g​ammafunk> then you'd need to check the subvaults and their lua code to see them doing anything with that data, I guess, but I think you get the idea 17:36:15 <09g​ammafunk> hrm, yeah I saw your question about subvault shape 17:36:18 <09g​ammafunk> doesn't it try this? 17:36:54 <09g​ammafunk> @nicolae ok, so interestingly, I'm thinking you likely need to follow another Gauntlet example here 17:37:17 <09g​ammafunk> are you running into trouble with it rotating and not matching up external features on the parent vault to internal features on the subvault? 17:37:32 <08n​icolae> something like that, yeah 17:37:45 <09g​ammafunk> ok, yep, so you'll want this other gauntlet trick 17:38:02 <09g​ammafunk> !source gauntlet.des:66 17:38:55 <04C​erebot> https://github.com/crawl/crawl/blob/master/crawl-ref/source/dat/des/portals/gauntlet.des#L66 17:38:55 <09g​ammafunk> note the template I use there for arenas 17:38:55 <09g​ammafunk> hand how it's it's "tapered" and includes some of the parent vault "boundary" of the arena 17:39:00 <08n​icolae> oh, that one, yeah i did that trick 17:39:26 <09g​ammafunk> it does this specifically so the parent vault can guarantee that the arena can't rotate in a way that would misalign the subvault 17:43:14 <08n​icolae> question about shapes: let's say, hypothetically, that using CLEAR the shape of the subvault is not always the same. when does the parent vault determine if the subvault fits itself 17:43:16 <09g​ammafunk> I believe that only happens after the parent vault has decided that a subvault is a viable fit 17:43:17 <08n​icolae> aha 17:43:20 <08n​icolae> so if it fits before the CLEAR and so forth, then it'll be used, and then the CLEAR happens and messes up my pots and pans 17:44:49 <09g​ammafunk> yeah, I'm not clear on how the CLEAR is making things go wrong in your case, but that does sound like what would happen 17:44:49 <08n​icolae> i was making a bunch of connections with subvaults and was trying to use vault shape to enforce connectivity 17:44:49 <09g​ammafunk> the parent vault has to determine if a subvault would be a viable fit, and it doesn't run through the subvault's logic before looking at the final shape; it does that only after it's fit and chosen the subvault 17:45:27 <09g​ammafunk> yeah, gauntlet does the "lots of specific connections between subvaults thing" but I didn't use any CLEAR to enforce that 17:45:49 <08n​icolae> yeah but your subvaults are all basically just rectangular rooms, right 17:45:50 <09g​ammafunk> I simply put the structure in the parent map, but then again my structure is pretty simple, just some sealed corridors etc 17:46:06 <09g​ammafunk> correct, the final result is a square after subvault is fitted to parent map 17:46:13 <09g​ammafunk> but some of the walls containing the subvault are in the parent 17:46:17 <09g​ammafunk> and some are in the subvault 17:46:30 <09g​ammafunk> to ensure relative positions of "entrance" and "exit" for each subvault 17:46:32 <08n​icolae> indeed 17:47:21 <09g​ammafunk> sounds like you have the info you need? if you do get stuck, maybe you can send me a WIP so I can have a better idea of what you're running into problem-wise and could suggest a solution 17:48:15 <08n​icolae> the WIP is currently a little bit "pepe silvia" in terms of organization but i did just discover something that may be quite handy for my concerns 17:48:33 <09g​ammafunk> Narrator: ...and that's when it was learned that nicolae was creating an encompass map with one continuous, level-wide door that could only be shut when none of the maps 200 monsters was on a door tile 17:48:57 <08n​icolae> actually i'm just making a twisty winding hallway for snake and possibly other branches but i like the way you're thinking 🤔 17:50:41 <08n​icolae> assuming that i am interpreting these results correctly, you can manipulate mapgrd directly to overwrite tiles within the subvault, which i plan to use to put @ on floor tiles along the edge 17:50:57 <09g​ammafunk> yeah, if by overwrite you mean CLEAR them so that they fall under the domain of the parent map? 17:51:07 <09g​ammafunk> or maybe you mean by some other means 17:51:08 <08n​icolae> no, i mean by changing the contents 17:52:04 <09g​ammafunk> hrm, yeah the parent map isn't supposed to be able to modify subvault tiles post-placement 17:52:42 <09g​ammafunk> gotta keep to calling these "cells" and not "tiles" 17:52:47 <09g​ammafunk> tiles is inferior! 17:54:28 <08n​icolae> https://pastebin.com/xSRy6q9W <- one of the lava corners of the subvault will be overwritten by crystal wall 17:56:34 that's interesting, but I only worry that it may be bypassing sanity checks that glyph modifications usually perform or perhaps messing with cell flags 17:56:56 it does seem to me a cleaner if more verbose way would be to transmit the glyph to the subvault? 17:57:05 via a lua function 17:57:27 <08n​icolae> hmmmmmm 17:57:44 set a global that says to the subvault: you are to put this glyph at your special glyph D, etc 17:57:54 if value is nil, do nothing, or however you'd like that logic to work 17:58:11 just so that it doesn't bypass the usual vault stuff 17:58:40 but I actually don't know if directly setting mapgrd like that has any unwanted side effects 17:58:49 it's just that what I describe as an alternative is for sure within the rules 17:59:06 and shouldn't be too unwieldy, although I don't know fully what you're trying to do 18:00:20 <08n​icolae> i think what's actually happening is that the 'b' is overwriting the block of 'A', but the subvault is just taken as-is and put into those spaces even though its shape doesn't fit 18:02:26 <08n​icolae> or maybe not 18:05:08 <08n​icolae> oh, no, i think it is actually overwriting the subvault 18:05:52 <09g​ammafunk> I would strongly recommend having all subvault-modifying logic be properly in the subvault 18:06:28 <09g​ammafunk> although, to be fair, it's clear that I (nor probably anyone else) know fully the ins and outs of this subvault logic 18:08:19 <08n​icolae> too late, i'm gonna break crawl 😎 actually i should probably do it your way anyway, now that i've told you all, one of you is going to fix it and ruin my genious 😔 18:08:42 <09g​ammafunk> yeah, I don't quite understand completely what you're doing any how it's different from, say, gauntlets, but I'm sure we can refactor it to be more sane, even if that involves some lua functions etc 18:09:36 <08n​icolae> the main difference is that connections between adjacent subvaults aren't always in the same place 18:10:05 <09g​ammafunk> right, but that difference in place is determined by randomization in the parent vault? 18:10:09 <08n​icolae> yeah 18:10:21 <08n​icolae> since the subvaults can't really communicate with each other 18:10:36 <08n​icolae> or... can they 🤔 18:11:00 <09g​ammafunk> yeah, so I think the solution is simply encode that information via the parent vault as it does its randomization 18:12:00 <08n​icolae> yeah, tbh mostly i'm trying to cut down on how many different subvaults i need to make 18:12:26 <09g​ammafunk> if it needs "subvault from set A, putting the subvault's connections at logical configuration X", it can set that it needs logical configuration X in a global variable 18:12:47 <09g​ammafunk> subvault checks this, acts accordingly 18:13:15 <08n​icolae> makes sense 18:14:12 <08n​icolae> i will think about it, i'm gonna go for now, i will get back to you if i have any thoughts 18:14:12 <09g​ammafunk> k 18:14:12 I feel like, without really knowing the details, how the_grid handles wall selection may be relevant here 18:14:41 <09g​ammafunk> yeah, the_grid might be a good example to look at 18:14:50 subvaults use " " and the parent vault, after inserting the subvault, then has a SUBST for the subvault glyph 18:15:27 <09g​ammafunk> it sort of inverts the usual idea of vaulting, letting the parent put the walls in, and actually species only the floor, iirc 18:15:32 yeah 18:15:34 exactly 18:16:42 <08n​icolae> yeah i remember that 18:16:52 it's sort of a pain to edit the ` `s though; there might be more readable versions than what it currently does though (e.g. use x and then use CLEAR on x at the end, I think that would work) 18:18:26 <08n​icolae> i just thought of a question: at what point does the subvault logic go through. if i do something like (pretend this is real lua): global_variable = 1 SUBVAULT: A : vault_one global_variable = 2 SUBVAULT: B : vault_two when subvault A is placed, will it see the global variable as 1 or 2 or neither 18:18:48 <09g​ammafunk> 1 18:19:06 <08n​icolae> what about vault two 18:19:07 <09g​ammafunk> example: 18:19:10 <09g​ammafunk> lua : gauntlet_setup(_G, "DFJLNPR", "EHKMOQS") SUBVAULT: a : gauntlet_arena_77_first SUBVAULT: p : gauntlet_arena_77_first SUBVAULT: q : gauntlet_arena_77_first : if crawl.coinflip() then : gauntlet_arena_set_tier(2) SUBVAULT: r : gauntlet_arena_second : else SUBVAULT: r : gauntlet_arena_first : gauntlet_arena_set_tier(2) : end SUBVAULT: s : gauntlet_arena_77_second SUBVAULT: u : 18:19:11 gauntlet_arena_77_second SUBVAULT: z : gauntlet_arena_77_second SUBVAULT: y : gauntlet_exit 18:19:12 <08n​icolae> like, will this work like i want it to 18:20:05 <08n​icolae> oh dip 18:20:05 <08n​icolae> that is... that is very good to know 18:20:05 almost everything happens in order 18:20:05 <08n​icolae> i love it when things happen in order 18:20:09 <09g​ammafunk> yeah this is why I was describing this approach to you, it works for subvault communication purposes 18:20:34 <08n​icolae> it took me a little bit to see the usefulness of this 18:21:02 <08n​icolae> thank you! 18:21:06 <08n​icolae> now i am going to go though 18:21:26 <09g​ammafunk> good riddance, thou whey-faced imp! 18:23:28 Unstable branch on underhound.eu updated to: 0.27-a0-1140-g099f9bb0e8 (34) 18:49:28 <13S​astreii> bears 18:49:28 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840722089681354792/Schermata_2021-05-09_alle_00.45.06.png 18:49:34 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840722122418552872/blackbear.png 18:49:35 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840722123612880916/polarbear.png 19:09:21 <10P​leasingFungus> black bear looks great 19:09:31 <10P​leasingFungus> polar bear looks sort of scrawny/concave to me but i'm not sure why 19:09:35 <10P​leasingFungus> and again possibly it's just me 19:14:53 <13S​astreii> Yeah you’re right, i kinda messed up some shading there 19:18:51 <10P​leasingFungus> man that old polar bear sprite is so diagonal 19:18:57 <10P​leasingFungus> rhombuses and bears are the same shape, right 19:19:37 <13S​astreii> it was a concept of a bear 19:19:56 <13S​astreii> btw now should be better 19:19:57 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840729765458477146/Schermata_2021-05-09_alle_01.17.54.png 19:20:05 <09g​ammafunk> the abstract polygonal bear 19:20:12 <13S​astreii> https://cdn.discordapp.com/attachments/747522859361894521/840729832568520734/pbear.png 19:20:24 <09g​ammafunk> big boi 19:20:51 <10P​leasingFungus> gettin beefy 19:20:56 <10P​leasingFungus> 🥩 19:21:09 <10P​leasingFungus> bear's gonna eat u 19:21:37 <10P​leasingFungus> @gammafunk have you ever considered bringing back ancient bears 19:21:42 <10P​leasingFungus> we could put them in, uh. vaults 19:21:51 <10P​leasingFungus> for the beastmasters to hang out with 19:22:04 <09g​ammafunk> look, I've said it before. giving a monster rF+ is quite simply too powerful 19:22:12 Consider a uniform bear of infinite length 19:22:26 <13S​astreii> you know, if you have stuff to put in, i'm still waiting for dinosaurs and dinomancers 19:22:31 <10P​leasingFungus> my actual line of thought was "melee guy that goes berserk at low hp isn't an awful gimmick" 19:22:35 <10P​leasingFungus> dinosaurs do rule 19:22:39 <10P​leasingFungus> can we have both dinos and dragons tho 19:22:41 <10P​leasingFungus> that's the question 19:22:56 <10P​leasingFungus> wyverns are basically pterodactyls 19:23:30 <13S​astreii> that's the point, pterodactyls technically aren't dinos 19:23:36 <13S​astreii> but flying reptiles 19:23:39 https://github.com/damerell/crawl/commit/0c355b73e43151e792c7adfe050779127db88777 just saying 19:23:44 <10P​leasingFungus> i vaguely remembered something like that 19:23:45 <09g​ammafunk> I guess I don't oppose new beasts if they have good mechanics relative to their default placement, and there's a nice side benefit in that we can use them as bosses in other places potentially (probably mostly Lair), but it's probably going to be 19:23:45 <10P​leasingFungus> ohh 19:24:43 <09g​ammafunk> mechanistically very similar to some other monster 19:24:43 <10P​leasingFungus> haha that's a good gimmick 19:24:43 <10P​leasingFungus> unique dino 19:24:43 <10P​leasingFungus> feels sort of funny to put another monster with alligator's spellset in swamp 19:24:43 OTOH a Swamp unique that knocks down trees is _less_ inventive 19:24:43 <10P​leasingFungus> such as that spellset is 19:24:43 <10P​leasingFungus> haha, and another swamp unique that knocks down trees, yes 19:24:43 <09g​ammafunk> berserk at low hp is sort of hard to justify 19:24:45 <10P​leasingFungus> i do approve of the idea however 19:24:51 <09g​ammafunk> what is it encouraging gameplaywise really 19:25:00 <09g​ammafunk> you have no choice but to hit the thing 19:25:10 <09g​ammafunk> I guess you can stage the fight so that you attack it last? 19:25:12 <09g​ammafunk> in theory 19:25:29 <10P​leasingFungus> it's something about... making it easier to disengage from if you don't fully commit to the bit... maybe 19:25:48 <09g​ammafunk> yeah maybe 19:25:56 <10P​leasingFungus> i don't think fighting it later vs earlier changes much 19:25:59 <13S​astreii> i was thinking some crappy stuff like raptors that lurks in trees and when the player approaches them, appears a message like "you're feeling watched" or something 19:26:00 PF: I otherwise quite like the Triceratops, it's a melee beast but it's (mostly) slow, doesn't have outrageous MR... 19:26:01 <09g​ammafunk> it's definitely not my favorite type of monster gimmick 19:26:06 <13S​astreii> and then BAM 19:26:18 ... no-one has died to it yet, like Jory 19:26:20 <09g​ammafunk> for bears and polar bears, you don't really fight them differently ime 19:26:25 <10P​leasingFungus> ah, jory 19:26:33 <09g​ammafunk> because of their berserk 19:26:37 <10P​leasingFungus> fair 19:26:51 <09g​ammafunk> I suppose this could change if they had bands? 19:26:55 <09g​ammafunk> which is a thing trying to be done in vaults 19:27:02 <09g​ammafunk> but seems very iffy 19:27:04 <10P​leasingFungus> i'm vaguely on the lookout for mechanics we can transplant into other parts of the game and recontextualize 19:27:12 <10P​leasingFungus> but maybe berserk at low hp is not a great candidate 19:27:13 <09g​ammafunk> yes, that is good 19:27:23 <09g​ammafunk> I mean, and nothing says bears need to have that mechanic 19:27:32 <09g​ammafunk> tbh I wouldn't consider it especially thematic for bears 19:27:35 <10P​leasingFungus> what if bears ran away at low hp instead 19:27:42 <09g​ammafunk> brilliant 19:27:44 <09g​ammafunk> ship it now 19:27:44 <10P​leasingFungus> or had a honey-based mechanic 19:27:55 <10P​leasingFungus> they leave the player in... a sticky situation...? 19:28:01 <10P​leasingFungus> boy, game design is hard 19:28:03 <09g​ammafunk> bear/tree interaction 19:28:08 <10P​leasingFungus> ! 19:28:15 <13S​astreii> when they die, bears explode in a swarm of bees 19:28:19 <09g​ammafunk> makes you wonder 19:28:32 <09g​ammafunk> could you do a monster placement gimmick where it always place solid terrain? 19:28:38 <10P​leasingFungus> ? 19:28:39 <09g​ammafunk> that it patrolled or something 19:28:43 <10P​leasingFungus> oh, an area 19:28:52 <09g​ammafunk> well, maybe or just something very limited 19:28:57 <09g​ammafunk> maybe even a single tree! 19:28:58 <10P​leasingFungus> seems probably best suited for a unique or vault 19:29:04 <09g​ammafunk> yeah 19:29:16 <09g​ammafunk> random terrain placement likely to mess up random monsters in vaults real good 19:30:50 <09h​ellmonk> Spriggan rider rider thats a spriggan rider riding a bear 19:30:56 <09g​ammafunk> dang 19:31:06 <09g​ammafunk> berserker riding a bear 19:31:08 <09g​ammafunk> a bearserker 19:36:28 PF: PS thanks for the end of halberd gnolls 19:42:47 <10P​leasingFungus> only on d:1! 19:43:01 They're the ones that kill us 19:47:09 <09g​ammafunk> @hellmonk I think I'm going to use your PR as a starting point and do a bit more substantial overhaul of monster sets for ice caves. One thing that's probably going to happen is change the current logic of "easy = giant/natural monsters, hard = demons" to having easy/hard variants of both sets, and just randomize whether you get natural/giant or demon (and that gets modified by difficulty) 19:48:13 <09g​ammafunk> there are a couple "demon" maps that can always have demons, and maybe one that always has natural, but the others using this logic will get more variety 19:48:23 <09g​ammafunk> and it's probably going to end up so that for hard you get one fiend/ one shrike with a small chance to have a second fiend/shrike, so that it's like an average of 1.25 fiends/shrikes on the hard maps, something like that 19:49:04 <09g​ammafunk> hence the immortal bug in ice_cave_small_demon that we've come to know and love can live on 20:23:56 <09h​ellmonk> ok 20:44:20 Pinkbeast: Not even on d:1! 20:44:22 !lg * killer=gnoll kaux=~halberd absdepth=1 vlong>='0.27-a0-831-g39f900b3a3' 20:44:23 38. dawnfrost the Slasher (L3 HuGl), slain by a gnoll (a +0 halberd) on D:1 on 2021-05-08 09:56:10, with 46 points after 2513 turns and 0:04:08. 20:45:34 you can pull monsters from lower levels and then die to them 20:45:47 on higher levels, that is 20:48:46 That's probably it; there are certainly a lot more gnoll+halberd depths on D2. 23:18:08 <08w​ormsofcan> bears with an aura of honey that's a reskinned liquefaction