00:09:22 i mean, neil has me beat, but i have played a ton of games 00:09:42 and i think i can say that early items that totally break the power curve are fairly rare 00:10:15 hellmonk can only win if he find d:2 xp pot stack 00:10:23 the title of my next internet beef video series 00:10:33 it was d:1 xp pot stack tho 00:10:33 lol 00:10:38 the games I've broken the power curve on all had items at depth > 4 anyway 00:10:57 i want a bunch of internet beef videos 00:10:58 tbh 00:12:23 (my single best game was GrFi^Qaz with an amazing ring found on D:5) 00:13:20 my first one and won was a trne that found an amazing shield on d:5 or 6 00:13:49 it was like +7 shield rF+ str +5 or something 00:18:31 is there a way to cast a useless spell (specifically excruciating wounds without a weapon) other than wizmode &z 00:19:31 because if you do manage to cast excruciating wounds without a weapon, it assumes you have a weapon and dereferences a null pointer, as I found out when I cast it with &z and forgot to wield a weapon first 00:19:47 and now I'm worried there's a way to get that in an actual game 00:22:13 i'm.....pretty certain you can't do that without holding a weapon 00:29:48 this guy thought he could take on a dev and win: https://www.reddit.com/r/dcss/comments/8q8d4v/new_guide_available/e0hkjey/ 00:30:07 oh wrong channel 01:26:13 -!- amalloy_ is now known as amalloy 01:36:31 minmay: checking spell requirements is spell-specific, but I'm pretty sure &z bypasses at least some of those 01:37:07 that null pointer deref is still a bug though 02:32:18 Anyone in here worked with oauth before? I'm looking into SSO for crawl servers 02:33:16 AWS Cognito's free tier (50k MAU) will easily cover the online userbase 02:33:47 provides sign up web pages, email verification, forgot password functionality, etc etc 02:34:10 the work required is to hook it into the server applications, and then figure out the migration strategy for existing accounts 04:17:05 -!- amalloy is now known as amalloy_ 04:34:39 I remember hearing about some complications there; eg different players on different servers with the same account name 04:37:49 One possibility is to not automatically migrate, but offer players the opportunity to migrate to SSO after they log in, if no one's already nabbed that SSO username 04:39:20 I imagine users would want a way to merge multiple legacy accounts on different servers too 04:59:44 Jacory (L24 GhMo) Crash caused by signal #11: Segmentation fault (Zot:3) 04:59:57 Jacory (L24 GhMo) Crash caused by signal #11: Segmentation fault (Zot:3) 05:13:16 !crashlog 05:13:26 19587. Jacory, XL24 GhMo, T:68036 (milestone): http://crawl.akrasiac.org/rawdata/Jacory/crash-Jacory-20180612-085955.txt 07:32:32 yeah. I think you just need to offer both login methods for a while 07:32:36 and then kill the old local logins 07:32:43 deal with people who didn't claim their old accounts by hand 07:32:53 not the end of the world if a few people have accounts "hijacked" 07:37:49 well, I'm not sure that there'd be a huge burden to maintaining legacy login indefinitely 07:38:19 you'd know more than I though, of course, and this is something that server ops would have some flexibility in managing 09:15:34 i don't even keep SSH running on CPO, I'm all about killing legacy after an appropriate period of mourning :P 09:15:48 integrating SSO with SSH might be exceptionally difficult 09:16:12 well, hard to say, I haven't looked at the dgamelaunch code in yearrss 09:31:56 nooo, not my SSH! 09:33:26 console is not legacy 09:33:29 ! 09:37:10 There is nothing "legacy" about command lines 09:37:37 No interface has so far managed to outdo command lines in their power and utility 09:37:48 in terms of humans at a keyboard 09:38:45 Perhaps ncurses can be considered legacy compared to tiles for crawl, I've not decided that yet 09:40:16 the paradigm has plenty of utility, and the protocols and APIs have an astonishing amount of legacy cruft 09:40:52 what we really need is a console emulator in tiles; I think there's actually a FR for that somewhere 09:51:45 I'm not convinced a web browser is a good replacement for a terminal emulator 09:51:59 web browsers need to be removed 09:52:19 or perhaps replaced with something better 09:52:39 Is it possible to specify 09:52:42 MONS: simulacrum 09:53:01 to pick a simulacrified-monster of the depth the vault is generated at? 09:56:17 ebering: that was mostly tongue-in-cheek, but tile_display_mode = glyphs does exist for webtiles 09:57:14 or would "MONS: random simulacrum" do what I'd like to do? 09:59:02 aidanh: problem solved! 09:59:28 achievement get: ship terminal emulator in a web program 10:01:43 syntax.txt specifies the following default behaviour for a certain glyph: "8 - (+2) * 2 depth monster" 10:01:52 What is (+2) * 2 supposed to mean? 10:02:16 There's 10:02:16 "9 - +5 depth monster" 10:02:35 which is quite understandable 10:02:41 (depth+2) * 2 10:02:47 iirc 10:03:16 Oh, so that should probably not be used in later vaults then? 10:03:16 no, learndb says I have the order of operations wrong 10:03:22 ??8[2 10:03:22 8[2/2]: Is also a marker for extremely out of depth (depth*2+4 depth!) monsters in vaults; both traditional and valued by most devs. Good results: d:4 wolf spiders, d:5 centaur warriors, d:6 fire crabs, d:9 sphinxes, d:10 fire giants, d:11 liches. 10:03:36 haha 10:03:54 wait no multiplication distributes 10:03:59 I did give the correct answer 10:04:18 ebering: You've finally understood distribution 10:04:30 Success! 10:06:34 still, that entry in syntax.txt should probably be fixed 10:08:12 alexjurkiewicz: btw, looks like your css changes borked the loading images on CPO; they're top-left aligned now 10:11:05 is there a way to specify a MONS entry like "give me a monster of depth+3"? 10:13:17 @?skeletal warrior 10:13:17 skeletal warrior (10z) | Spd: 10 | HD: 10 | HP: 49-77 | AC/EV: 15/10 | Dam: 25 | 07undead, 10weapons, 10items, 10doors, fighter, evil, unbreathing | Res: 06magic(100), 02cold, 09poison+++, 12drown, 04rot+++, 13neg+++, 13torm | Vul: 08holy | XP: 769 | Sz: Medium | Int: human. 10:16:55 no, though you can specify a specific level to grab from 10:17:07 just not relative to the current level as far as i know 10:18:29 Ah, that's too bad 10:19:34 I could obviously painstakingly use if/elseif to remedy this, like some existing vaults seem to do 10:24:20 <|amethyst> depending on how you feel about C++, you could add a syntax for doing so 10:24:30 <|amethyst> like MONS: depth:+3 10:25:10 If the existing parser was in C, I'd be motivated 10:25:13 otherwise, not so much 10:25:43 I'll just keep making vaults until motivation sets in 10:26:16 if MONS is just a wrapper for a lua function, couldn't you call that directly and pass you.depth() as the parameter? 10:26:44 or dgn.depth() or the appropriate equivalent 10:27:04 <|amethyst> the lua function just sticks the whole string into the appropriate place in the C++ data structure 10:28:03 <|amethyst> level_id::parse_level_id is the function that actually parses place: specs 10:28:18 <|amethyst> called from mons_list::parse_mons_spec 10:28:51 and so it's not actually evaluated until vault placement time 10:30:41 <|amethyst> it's LUA mons() -> C++ dgn_mons -> mons_list::add_mons -> mons_list::parse_mons_spec -> level_id::parse_level_id 10:32:00 <|amethyst> so it is evaluated when MONS: is evaluated... which AIUI is at both map parsing time and placement time 10:32:36 <|amethyst> but I don't recall the details, and maybe it's not called at map parsing time 10:35:54 hmm 10:35:56 muffindrake: you can use 8 and 9 in later vaults 10:35:56 gammafunk: You have 1 message. Use !messages to read it. 10:36:09 and I'd recommend you just use a 9 if you want something from a later depth generally 10:36:24 depth+3 isn't really functionally too different from normal depth due to depth fuzzing anyhow 10:36:46 <|amethyst> it's even closer to depth+5 :) 10:37:57 I did use something like 'Place + 3' for derived unead in my vault 10:38:01 *undead 10:38:10 but I was conditioning on level already for loot placement 10:38:33 although that conditioning is kind of line-intensive and I was thinking about maybe writing some lua functions for that 10:38:42 loot placement and number of monster placement 10:38:44 depth+3 was an example number 10:39:10 yes, but 9 is trying to get at "substantive depth increase" 10:39:24 while 8 is "definite murder"? 10:39:31 sure, 8 is more extreme 10:39:42 sadly neither are definite murder 10:39:55 you can still roll something that just happens to have late placement and really is no major threat 10:40:02 or you can roll nothing due to MONS_NO_MONSTER 10:40:09 being the pop_ data 10:40:19 we want to remove the latter from those entries at some point 10:40:33 but yeah I'd recommend just using 9 or 8 depending on severity of threat, and you can use those anywhere 10:41:15 they will have less effect in some later branches due the pop_ data not really having great out of depth monster specifications, but it'll be the worst you can reasonably do with in-branch monsters by depth 10:41:47 so in many vaults if I want something nasty, I just choose some nice representatives from the branch 10:41:58 and put those in the monster list and add them in reasonable numbers 10:42:14 e.g. ancient liches, caustic shrikes, etc in depths, ancient liches, curse toes, orbs of fire in zot 10:43:02 I think 9 and 8 work ok in depths but are kind of lacking in zot if you want to guarantee at least one of the nastiest things 10:47:23 >* Also avoid monsters-behind-glass-wall vaults. We already have enough of these. 10:47:40 That kind of clashes with the ghost vault guidelines of "ideally the ghost should be visible" 10:47:57 <|amethyst> a foolish consistency is the hobgoblin of small minds 10:48:24 muffindrake: those are arrival vault specific 10:48:32 Oh, butts 10:48:38 yes, and also referring to monsters that are permanently trapped 10:48:50 Yes, I've seen enough of those 10:48:51 <|amethyst> man, I miss that psyche and (who was it?) vault 10:49:36 i have many regrets but dropping panlords on players on d:1 is not one 10:55:38 @?juggernaut zombie 10:55:38 juggernaut zombie (07Z) | Spd: 13 (atk: 450%) | HD: 20 | HP: 139-193 | AC/EV: 18/0 | Dam: 64, 32 | 07undead, evil, unbreathing | Res: 06magic(26), 02cold++, 09poison+++, 12drown, 04rot, 13neg+++, 13torm | Vul: 08holy | XP: 1599 | Sz: Giant | Int: brainless. 10:55:58 @?centaur warrior zombie 10:55:58 centaur warrior zombie (07Z) | Spd: 13 | HD: 10 | HP: 65-101 | AC/EV: 2/3 | Dam: 8 | 07undead, evil, unbreathing | Res: 06magic(13), 02cold++, 09poison+++, 12drown, 04rot, 13neg+++, 13torm | Vul: 08holy | XP: 466 | Sz: Large | Int: brainless. 10:56:17 oh dear, juggernaut zombies are still stupidly powerful 10:56:19 that's perfect 10:57:08 @?juggernaut 10:57:09 juggernaut (09C) | Spd: 15 (atk: 450%) | HD: 20 | HP: 148-197 | AC/EV: 20/5 | Dam: 80, 40 | 10doors, fighter, see invisible | Res: 06magic(120), 12drown | XP: 7249 | Sz: Giant | Int: human. 10:57:46 advil: Did you have a set of rules you wanted to post for the reddit? I was going to make one based on the tavern forum rules if not. 10:59:04 can i get a quick opinion on ghost vaults that make use of 'purple items' e.g. a ghost guarding a couple of immo scrolls or lig potions (really would like them to guard like a tome of destruction) 10:59:28 I guess guaranteeing a certain item type has id-game spoiler issues 11:00:07 ebering: well they can be pre-identified 11:00:40 but we don't always even do that 11:01:01 I think of tomeof destruction no longer exists so you're out of luck on that one 11:01:12 definitely not ok to place items no longer in generation 11:01:15 yeah I know 11:10:51 @?fire giant zombie 11:10:51 fire giant zombie (07Z) | Spd: 8 | HD: 16 | HP: 109-159 | AC/EV: 6/0 | Dam: 24 | 07undead, evil, unbreathing | Res: 06magic(21), 02cold++, 09poison+++, 12drown, 04rot, 13neg+++, 13torm | Vul: 08holy | XP: 549 | Sz: Giant | Int: brainless. 11:11:06 @?fire giant simulacrum 11:11:06 fire giant simulacrum (12Z) | Spd: 8 | HD: 16 | HP: 36-55 | AC/EV: 6/0 | Dam: 2412(cold:16-47) | 07undead, evil, unbreathing | Res: 06magic(21), 12cold+++, 09poison+++, 12drown, 04rot+++, 13neg+++, 13torm | Vul: 04fire, 08holy | XP: 243 | Sz: Giant | Int: brainless. 11:11:28 @?salamander 11:11:28 salamander (04N) | Spd: 10 (swim: 70%) | HD: 8 | HP: 53-76 | AC/EV: 5/7 | Dam: 1704(fire:8-15) | 10weapons, 10items, 10doors, fighter | Res: 06magic(40), 04fire+++ | Vul: 12cold | XP: 524 | Sz: Medium | Int: human. 11:11:48 @?salamander mystic 11:11:49 salamander mystic (08N) | Spd: 10 (swim: 70%) | HD: 10 | HP: 52-76 | AC/EV: 7/7 | Dam: 1004(fire:10-19) | 10weapons, 10items, 10doors, spellcaster | Res: 06magic(60), 04fire+++ | Vul: 12cold | XP: 768 | Sp: mystic blast (3d15), b.magma (3d18), haste other | Sz: Medium | Int: human. 12:00:28 @?flayed ghost 12:00:28 flayed ghost (05W) | Spd: 10 | HD: 11 | HP: 46-70 | AC/EV: 0/14 | Dam: 30 | 07undead, 10doors, evil, fly, unbreathing | Res: 06magic(60), 09poison+++, 12drown, 04rot+++, 13neg+++, 13torm, 04napalm | Vul: 08holy | XP: 716 | Sp: flay [06!sil] | Sz: Medium | Int: human. 12:06:12 Can perm_ench still be dispelled? 12:07:28 not sure, but I wouldn't recommend using that in any of these vaults 12:08:47 I would consider a perm_ench ghost thematically-relevant for a magma prison 12:08:47 inner flame, that is 12:09:04 the only places we use that now are for flavor monsters in e.g. overflow temples or for setting a monster as a shapeshifter but starting in a specific form 12:09:10 and in sprints 12:11:27 it's not something I think we'd like to see a lot of, practically speaking, it might be hard to make the gameplay effects of that relevant 12:12:05 but I guess one vault featureing some inner flamed stuff might be ok 12:12:49 But I would recommend that generally for these vaults, it's good to have a theme, but don't go from the angle of "what gimmick" but more just "what gameplay" 12:13:26 Think mostly about what kind of fight the player will have given the terrain and monsters you've chosen, and what kind of risk that have to take on to get the reward (since these vaults involve the player choosing to open them) 12:13:45 or enter them, as the case may be 12:14:17 like an inner flamed flayed ghost in depths, for instance 12:14:30 that's not really going to give you any added gameplay, it's basically only thematic 12:14:50 Yes, I wasn't suggesting it was interesting to play 12:14:51 which you can have a bit of this, but it has to be done in a way that doesn't just confuse the player 12:15:01 It's not like inner flame is much of a threat at Depths level 12:15:06 usually 12:16:10 but yeah, you can add perm_ench to some monsters; it doesn't really matter if it's dispellable or not 12:16:34 most players don't have a way to dispel things, and even if they did, they don't gain too much from the actual removal of that inner flame enchant 12:17:14 I mostly just wanted to know for the sake of it 12:17:25 For inner flame, even if it was dispellable, it wouldn't matter much 12:17:27 you can create the monster using the monster spec 12:17:30 in wizard mode 12:17:38 then cast e.g. yara's or be a purple drac to find out 12:17:51 &m and enter the monster spec like you would in the vault itself 12:18:01 you can create monsters with the exact same specifications 12:20:17 Yes, perm_ench are dispellable 12:24:24 <|amethyst> hm 12:24:41 <|amethyst> that might be an oversight 12:27:19 <|amethyst> dispelling blind, mute, etc. from the Ru altar monsters seems a bit weird 12:46:38 |amethyst: I think part of the problem is will the player know that those effects are not dispellable? 12:46:51 if we were to make them so 12:47:32 I guess though that there's just a list of dispellable effects and those don't have to be on that list 12:47:44 inner flame certainly seems like something that should be dispellable 13:02:51 <|amethyst> hm 13:03:03 <|amethyst> seems like the player should know if an effect is permanent anyway 13:03:07 <|amethyst> so they don't try to wait it out 13:03:19 <|amethyst> (more for things like IF than mute/blind) 13:04:29 -!- yesno_ is now known as yesno 13:06:53 yeah, ideally it would reveal that in x or x-v 13:17:21 <|amethyst> I keep thinking of ghost vaults, but they're all based on puns 13:17:30 <|amethyst> which I'm pretty sure is not a good basis for game design 13:18:33 <|amethyst> amethyst_poultrygeist - a player ghost with a few tengu and/or shrikes, depending on depth 13:19:24 :) 13:19:45 |amethyst: can you channel any of that flavor for something as epic as amethyst_zot_foddershock 13:20:25 but in all fairness, I have in mind a couple "scene depicting a player dying to a thing" type vaults based on suggestion made to me 13:20:40 a hydra ghost vault where it has more heads than usual and there's an edged weapon in the vault 13:20:54 that does sound pretty snazzy 13:21:03 <|amethyst> amethyst_der_stehts_verneint - ghost with purple dracs 13:21:04 hellmonk suggested a basic honeycomb + bee ghost vault 13:21:16 <|amethyst> s/ehts/ets/ 13:21:30 <|amethyst> gammafunk: hmmmm 13:21:43 zombees 13:21:46 !glasses 13:21:46 ( •_•)    ( •_•)>⌐■-■    (⌐■_■) 13:22:08 <|amethyst> !lg . s=ckiller 13:22:08 15143 games for |amethyst: 1262x quitting, 953x a hobgoblin, 903x a kobold, 821x a gnoll, 631x an orc priest, 624x an adder, 530x an orc wizard, 516x a jackal, 477x an orc, 413x a goblin, 407x an ogre, 402x a player ghost, 386x Sigmund, 320x an orc warrior, 305x a giant gecko, 291x a centaur, 218x a worm, 178x a worker ant, 161x Terence, 156x Grinder, 140x wizmode, 132x a rat, 132x an ooze, 132x a... 13:22:08 <|amethyst> !lg * s=ckiller 13:22:14 !lg * zot kmap!= kmap!~~hall_of_zot cikiller=death_cob recent s=vault(kamp) 13:22:14 8987220 games for *: 786643x quitting, 478781x a gnoll, 420624x leaving, 393655x a hobgoblin, 378307x an orc priest, 355271x a kobold, 348272x an adder, 321716x a player ghost, 272470x an orc wizard, 254572x an ogre, 238377x a jackal, 211962x Sigmund, 201931x an orc warrior, 199337x a goblin, 194364x an orc, 160293x a worm, 140717x a centaur, 108398x a giant gecko, 105312x Grinder, 78350x a worker... 13:22:15 Unknown field: kamp 13:22:18 !lg * zot kmap!= kmap!~~hall_of_zot cikiller=death_cob recent s=vault(kmap) 13:22:19 34 games for * (zot kmap!= kmap!~~hall_of_zot cikiller=death_cob recent): 5x grunt_deathspiral_small, 3x hangedman_zot_vaults_quadrants, 3x amethyst_zot_foddershock, 3x evilmike_ambush, 3x hangedman_snap_crack_crunch, 2x gammafunk_dig_for_victory, 2x kennysheep_room_grid, 2x door_vault, zot_minivault_5, gammafunk_the_bubble, grunt_megastairs_2, grunt_megastairs_4, kennysheep_blocky_room, nicolae_z... 13:22:42 !lg * ckiller~~draconian depths 13:22:43 228. farmer12 the Hoplite (L24 MiBe of Trog), hit from afar by a purple draconian stormcaller on Depths:5 (grunt_bruiser_brothers) on 2018-05-31 14:35:48, with 509754 points after 67957 turns and 1:21:30. 13:22:47 !lg * ckiller~~draconian depths s=place 13:22:48 228 games for * (ckiller~~draconian depths): 173x Depths:5, 15x Depths:4, 14x Depths:1, 10x Depths:6, 9x Depths:2, 7x Depths:3 13:22:53 !lg * ckiller~~draconian depths s=place,ckiller 13:22:54 228 games for * (ckiller~~draconian depths): 173x Depths:5 (81x a draconian, 36x a draconian monk, 20x a draconian annihilator, 14x a draconian knight, 11x a draconian scorcher, 6x a draconian stormcaller, 4x a draconian zealot, a draconian (illusionary)), 15x Depths:4 (5x a draconian, 5x a draconian knight, 3x a draconian monk, 2x a draconian annihilator), 14x Depths:1 (5x a draconian, 5x a draco... 13:22:55 !lg * zot kmap!= kmap!~~hall_of_zot cikiller~~death_cob|electric_golem recent s=vault(kamp) 13:22:56 Unknown field: kamp 13:23:00 !lg * zot kmap!= kmap!~~hall_of_zot cikiller~~death_cob|electric_golem recent s=vault(kmap) 13:23:01 65 games for * (zot kmap!= kmap!~~hall_of_zot cikiller~~death_cob|electric_golem recent): 14x amethyst_zot_foddershock, 8x grunt_deathspiral_small, 5x door_vault, 4x infiniplex_zot_generator, 3x hangedman_zot_vaults_quadrants, 3x hangedman_snap_crack_crunch, 3x gammafunk_dig_for_victory, 3x evilmike_ambush, 2x zot_minivault_7, 2x kennysheep_room_grid, 2x regret_index_qazlal_generations, 2x zot_min... 13:23:05 there! 13:23:08 <|amethyst> hm, what is the policy on ghost vaults on D:1-2 ? 13:23:21 right now we have a D:3- default depth 13:23:45 and I've not got any placing before that 13:23:51 <|amethyst> I was thinking a ghost and gnolls on D:2 or so 13:23:59 <|amethyst> I guess the problem with early ghost vaults is 13:24:05 <|amethyst> you can mark them as "come back later" 13:24:25 it's a problem with basically all of these vaults, yeah 13:24:26 <|amethyst> which I guess argues for good_item over acquire any in early-depth 13:24:37 <|amethyst> since the former is more depth-dependant 13:24:52 yeah I'm not allowing acquire any at all and I think we want to move towards just disallowing those in vaults generally 13:24:56 keep them for troves 13:25:15 good_item is fine, of course, but I've tended to do something like SUBST: d = *% 13:25:17 <|amethyst> gammafunk: doesn't basic_ghost_runed have acquire any ? 13:25:31 |amethyst: that no longer exists, see the latest ghost.des in the branch 13:25:35 <|amethyst> ah 13:25:41 <|amethyst> I was looking at commits 13:26:04 yeah, my commits updating that are at the end; I did adapt some of advil's bare bones (heh) vaults into some for Vaults branch 13:26:26 but I made a basic one with a grave that will be the de-facto basic ghost vault for now 13:27:23 I do a lot of conditioning on branch/level to decide number and severity of monsters (where that's relevant) and quality of loot 13:27:23 and it might be nice to make that into a common lua function thing 13:27:33 the only problem is that it needs some flexibility for vaults that want to be somewhat harder 13:29:45 I mostly use superb_item, star_item, and some % and $ 13:30:13 star_item are nice since they include consumables, superb_item is good for equipment or evocables 13:30:33 <|amethyst> hm, there's no way to specify a ghost beyond "pick a ghost that died on this level", right? 13:30:46 currently there isn't, but that would be nice to have in some reasonable way 13:31:15 <|amethyst> and does using a ghost in a vault destroy the ghost? 13:31:22 <|amethyst> from the bones file 13:32:02 I think the rules for that are unchanged 13:32:07 it's just that there's this permastore file now 13:32:39 <|amethyst> is there an automatic way for ghosts to make it into the permastore 13:32:49 <|amethyst> also, if this goes into a released version, it will probably want tournament rule changes 13:32:51 I believe that process is automatic, but I don't know the rules there 13:33:21 yeah, I think the basic ghost kill rules are actually ok but maybe points will need tweaking 13:33:34 I need to remind myself how the points are actually categorized for ghosts though 13:39:34 <|amethyst> it really depends on the font, but I think there should be a monster with this glyph http://www.fileformat.info/info/unicode/char/2697/browsertest.htm 13:39:55 <|amethyst> if your character looks like the server-generated image, that's not it 13:40:18 <|amethyst> more like this one: https://emojipedia.org/microsoft/windows-10/alembic/ 13:40:59 the pakellas avatar 13:43:20 looks like a critter with an anteater snout 13:43:44 * geekosaur has a flashback to HS chem lab 14:04:42 fun bug: mf player ghosts only have tails if you do 14:07:10 nice 14:07:28 does that tail have any actual gameplay effect for the ghost? 14:07:51 no, it's purely a rendering bug 14:16:33 speaking of rendering, I'll probably spruce up ghost rendering a bit soon 14:17:13 meaning you'll add ghost trees? 14:17:36 I'm thinking of fixing at least na, op, and fe; showing some sort of base sprite and not showing weapons/armour/cloaks 14:18:13 did you mean to say na in that? those use weapon/armour/cloaks 14:18:40 they do, but they also don't have legs 14:18:48 well, perhaps they're vestigial 14:19:05 oh, you're just saying you'll use the right base sprite for those 14:19:10 and no armour etc for op/fe 14:19:25 yeah that sounds good; op can use hats and shields and weapon though, to be clear 14:25:38 yep, shouldn't be too hard 14:28:33 not sure where to solve the mf bug though; any idea which part of the ghost code might be a good place to check and toggle the base doll? 14:30:08 do ghosts spawn with actual weapons/armour? 14:30:53 their doll parts are set based on ac and damage; not sure if that's mirrored elsewhere to give them items 14:30:59 aidanh: You'd have to look at the ghost demon code, but no I think they simply have their attack damage, ac/ev(/sh?) set 14:31:12 and the tiles are sort of confusingly randomized 14:31:35 they show random weapons that might lead you to think the ghost has a polearm, I think 14:31:40 I don't know if that's been cleaned up though 14:31:57 doesn't look like it 14:32:15 since I play console I just see W and x-v the ghost; but the tiles can lead you to believe the ghost will have certain attacks it doesn't I think 14:33:55 right, yeah; it's based on their highest skill; perhaps ghosts should just be given weapons and armour directly 14:34:08 although that would mean that ghosts with polearms could now use them 14:34:44 now that they're going into vaults, we're a bit more free to let them have things like that I guess 14:35:11 ghosts are sort of like pan lords in that you really really want to x-v them 14:35:48 so perhaps it's less of a problem that e.g. in console you're forced to x-v each ghost to verify whether it has reach (and obviously this is just a general console issue) 14:36:08 which it would be lovely to fix using some kind of nice glyph system or other means 14:36:16 but that's a separate issue really 14:37:01 I'll probably just stick with the minor doll adjustments for now, since I have all the ui stuff to be working on as well 14:39:46 hrm, I don't suppose player equipment is stored in ghost files.. 14:43:18 yeah, probably not; that might be something advil was thinking of addressing in moving ghost def data to an sqlite db 14:43:30 but that hasn't been done 14:57:06 I was also wondering how feasible it would be to generate a map without having a game started 14:58:12 basically, I'd like to use random dungeon floors as background images for the main menu 15:00:04 a possible alternative is to just create a few by hand, but having only a few would be too repeditive, and having more than a few would take up too much space 15:03:18 hrm 15:03:48 well, I guess one problem I'm imagining with this is that creating a dungeon level is fairly cpu intensive since our algorithms aren't too amazing at generating vetoes 15:04:11 obviously this is for local crawl so maybe that's not such a major issue 15:04:35 but even then I imagine there'd be some healthy cpu usage and possibly delay just to show the starting menu, aidan? 15:05:09 I guess if you bend the rules to dungeon generation a bit you could potentially make one level and never have a veto 15:06:09 yeah, I did think of that; there's a few workarounds I can think of 15:06:38 1) generate on a background thread and then fade the background in from black when it's ready 15:07:17 2) use levels the dungeon already generates for the player, saving them in some sort of persistent store, with a built-in fallback level 15:08:23 so, something like the level save chunk, in terms of this store? just a file with a bunch of those marshalled? 15:08:59 oh, and sounds like you're updating this based on levels the player actually generated 15:09:27 was wondering what that built-in fallback level was for, but that makes more sense if this is what you mean 15:10:12 something like that, yeah, but without the strict compatibility requirements 15:10:27 hrm 15:10:29 yeah, which, if they're not very good, is not going to yield a wide variety of maps 15:10:44 yeah 15:10:45 I'd like it to showcase the breadth of possible environments a bit 15:11:05 it might simply be better to just pre-make a bunch of these; I guess the files could be a bit much 15:11:20 but I imagine even if you had 10 levels per branch or something, that might not bee too much data? 15:11:42 in terms of just shipping pre-made levels; I guess then you'd actually just pre-make images, wouldn't you 15:12:56 well, pre-made levels would have a smaller file size, most likely, and generating the image on the fly ensures consistency 15:13:23 yeah 15:13:33 might need at least one vignette image or something to use as a mask though 15:14:20 I saw we need to go further, have an appropriate qw character playing through the level in the background 15:15:07 I did actually think of that; something like a view of the swamp with hydras running around 15:15:14 sure, haha 15:15:20 you could just have monsters acting and the like 15:15:48 that'd probably take an awful lot of refactoring, but it'd be pretty cool 15:15:50 no one would ever actually start the game, they'd just watch their crawl screensaver 15:16:15 zero keystrokes, zero deaths: optimal play 15:16:54 this is not really related, but I can mention it at least 15:17:06 but objstat is currently a bunch of code to do calculations to generated levels 15:17:48 and what I wanted to do is have the crawl portion simply function to save level representations to files, like it would just save 1k iterations (or however many were specified) 15:17:48 and the actual calculations would be done by something like a python script 15:17:58 so I'd not have all the weird calculation code for stats in crawl itself 15:18:21 said script would ideally load the 1k generated dungeons (each of which with full data for whatever set of levels) 15:18:44 the problem is the data format, either we'd need some kind of "libcrawl" that things could use to get at marshalled data 15:18:53 or we'd need to save into an entirely different format like sqlite 15:19:37 it's not quite related to your idea, since I think you'd probably just use normal crawl level marshalling 15:19:46 but if you could peel that off into some kind of library, on the other hand 15:19:57 well, I've been thinking for a few months about something like "libcrawl", not sure if it's similar to your concept 15:21:12 I guess my "libcrawl" would allow accessing all the usual information about maps, items, monsters directly from a crawl marshalled save (which itself could contain many dungeons) 15:22:22 ah, I see, analogous to libpng, libjpeg, etc? 15:23:03 I guess so, yeah, although this data encompasses a lot of different kinds of classes, but analogous do that 15:23:04 *to that 15:23:16 mine is more a runtime thing; isolate most of the game state manipulation to a core crawl library that operates on a struct crawl_game_t that you give it, so you could ideally run multiple games in one process 15:24:19 then that core library provides all the functions the UI layer needs to a) show the UI and b) convert user input to game actions 15:24:20 yeah that is something different 15:25:06 each game would just run in a thread? 15:26:14 I'm planning to move to at least a two-thread architecture on sdl tiles 15:26:18 it's not really needed elsewhere 15:26:54 but the usual way to keep the UI responsive while the game is busy processing data is to run a UI thread and a game thread 15:28:34 this works really nicely with my libcrawl, of course, but my libcrawl concept is currently very pie-in-the-sky 15:28:55 if put in the arena with current crawlcode, I'm pretty sure the latter would win 15:32:39 crawlcode just cheats, it's like dungeon monsters 15:43:46 -!- yesno__ is now known as yesno 16:22:03 -!- amrqx is now known as yesno 17:33:27 aidanh: yeah, i'm too lazy to try and merge the fix for that 17:52:55 -!- amrqx is now known as yesno 17:53:59 -!- amrqx is now known as yesno 18:10:15 aidanh: yeah, ghost equipment is not stored, I think it would be a pain to do so without big changes. (also, ghost equip dropping is a longstanding wont-do item, and I think I agree with that judgment) 18:11:42 yeah we'd prefer to not let people influence loot drops that way with their ghosts 18:12:55 gammafunk: re r/dcss rules, starting with tavern is probably a good idea. I'd like to see at least some version of, no personal attacks, no massive derailing. We already do sort of enforce on-topicness w.r.t. dcss, so could maybe make that explicit. 18:13:41 r/roguelikes rule is just "1. Be nice 18:13:41 It's ok to not like things, but don't be a dick about it." 18:14:25 which is not a bad rule actually for people who talk about roguelikes (though obviously some people may find a rule along those lines subjective) 18:15:36 advil: well, I was thinking of more or less directly copying tavern, and possibly just something very short about the reddit not being a platform for airing grievences against dev team individuals, contributors, or other community members 18:15:45 advil: if you'd like to draft those rules though, please feel free 18:15:58 I was think we could do so and ask cwww if they're ok? 18:16:25 since it seems the sort of thing where we'd want his approval as reddit owner 18:16:25 *was thinking 18:17:05 I guess your mention of on-topicness w.r.t. to dcss kind of covers my bit about e.g. grievences, although I suppose that's up for interpretation 18:52:20 -!- yesno_ is now known as yesno 20:06:53 copying tavern rules is fine with me 20:07:11 yeah, we should ask cww, but they haven't been active on reddit in a year 20:11:32 advil: well, we can post the rules and also mention it to him, I guess; he might still respond either way 20:11:43 I guess we could just draft the rules, send it to him, and wait a couple days 20:12:08 I get the sense that he wouldn't care too much about a change like that, but of course good to be sure 20:12:13 I guess if it's true that there were rules that got accidentally deleted, cww may have written them 20:12:23 ah, yeah, that may be 20:21:02 ping about datafiles :) 21:20:05 -!- amalloy_ is now known as amalloy 21:23:21 alexjurkiewicz: yeah we're going to merge spooky_vaults this week before we get to that next 21:23:26 -!- yesno_ is now known as yesno 22:31:12 atrodo (L12 FeCj) ASSERT(m) in 'mon-util.cc' at line 1978 failed. (Zot (ZotDef))