00:38:28 -!- The topic of ##crawl-dev is: Crawl Development | Logs: http://s-z.org/crawl-dev/ | People with +v have commit access. | Please keep general Crawl-related chat to ##crawl. | Dev wiki: http://crawl.develz.org/wiki | Long stuff to a pastebin service, please. 00:38:29 -!- The topic of ##crawl is: Play Dungeon Crawl Stone Soup online now! Type ??servers for instructions. | http://crawl.develz.org | FooTV: http://termcast.develz.org - ??footv for instructions | See also ##crawl-offtopic 00:52:15 ^status 00:52:16 26 Crawlers. CBRO disk usage=94% (135GB) | RAM usage=32% (4GB)| uptime/CPU= 00:52:14 up 208 days, 5:30, 1 user, load average: 0.21, 0.28, 0.34 (4 Cores) http://status.berotato.org 01:51:21 -!- mikee__ is now known as mikee_ 02:02:11 -!- socks__ is now known as socks_ 02:45:51 Monster database of master branch on crawl.develz.org updated to: 0.21-a0-286-g6fcecc0 03:53:45 -!- amalloy is now known as amalloy_ 03:55:09 -!- amalloy_ is now known as amalloy 04:27:45 -!- bhaak_ is now known as bhaak 05:34:37 -!- amalloy is now known as amalloy_ 07:56:43 -!- Mandevil_ is now known as Mandevil 13:17:43 -!- amalloy_ is now known as amalloy 14:04:13 -!- duracrisis is now known as starship 16:42:00 how do people feel about newnewgnols (I'm going to call them gnollsredux from now on) disallowing ashenzari skill transfer? 16:42:31 it seems a sort of reasonable thing to do 17:04:19 <|amethyst> It would be nice if the ^ screen didn't list the ability at all for them, but I guess we don't do similar things with current god-race limitations 17:18:28 yeah, it's probably not too hard to condition that I'd think 17:20:56 forbidden gnollage? 17:21:08 wow geekosaur 18:23:53 is there an advantage of putting docstrings in the header files vs the cpp files? 18:24:31 question came up at work. 19:07:11 johnstein: I have no experience in corporate environments but I really can't figure out why you'd put them in the headers, except any documentation of instance variables 19:07:43 maybe if you have stricter processes that enforce updating them 19:08:48 but ideally they should be in a place where someone changing the code can easily remember to update them 19:09:42 nearly complete gnolls patch: http://dpaste.com/35BRHKS 19:09:55 but I wanted to ask anyone who could take a look about patches 8-10 there 19:10:11 moving species_def to a new header seemed the best way to deal with needing it for tags.cc stuff 19:10:54 since the def is needed for species-data.h 19:11:21 I suppose it could go to just species.h instead, but this seemed a bit cleaner 19:12:01 alternately we might be able to just not rely on knowing species_def in tags.cc but there's not a very clean way to get that data (SID related info) 19:12:09 without writing some special accessor or something 19:13:47 I need to disallow berserker as a starting choice, still haven't done 19:14:09 hm, maybe stupid question, but because species_def is a struct, can't you just use forward references? 19:15:16 not that that header looks unreasonable or anything 19:15:29 hrm, how does it being a struct matter? 19:15:39 I thought structs are just classes with default-public data 19:16:43 I think the issue is that species.h needs to know what it is 19:16:51 as opposed to typedef or something, or old c structs 19:16:52 since it's defining get_species_def() 19:17:20 but that function is just returning a ref 19:17:24 so maybe that would work? 19:17:55 I have const species_def & get_species_def() in species.cc 19:18:04 and I need to use this in tags.cc 19:18:14 isn't putting "struct species_def;" somewhere local enough for that? 19:18:36 yeah, I think it may be but only because I'm using refs 19:18:43 I might be missing something, I only skimmed 19:18:57 I'll try it 19:19:06 where would a forward declare? 19:19:23 species.h doesn't include species-data.h 19:19:30 which is where the old def was 19:19:41 oh, and that's a problem too isn't it 19:19:52 if anything uses it by value I guess it won't work 19:19:55 if it's declared in species-data.h I don't really want to include that in tags.cc 19:20:04 although I guess I could 19:20:06 imo.having more modular headers is good anyways 19:20:14 yeah that was my reasoning as well 19:20:27 I saw that we have other "_def" classes in their own headers 19:20:39 obviously a highly scientific criteria :) 19:20:54 "this class has _def in its name and it has a header, must be ok right?" 19:21:32 seems legit 19:23:55 gammafunk are you thinking about ghosts at all? I saw you had a line in the 0.21 plan, though maybe that was just carried over 19:25:14 no I had thought about it 19:25:24 there were a couple proposals some of us in irc were thinking about 19:25:28 just hadn't written them up 19:25:38 the first and obviously easiest is removal, that's always on the table 19:26:20 next was maybe lowering their possible depth--absdepth >= 10 was thrown around since e.g. D:4 ghosts are basically ogres you can kill with stairs) 19:26:41 and possibly making some other sane restrictions to things like weapon ego, max AC/EV values 19:26:59 this is a bit of work to figure out and you can't ever get things perfect 19:27:31 yeah, very true 19:27:34 idea 3 was make ghosts into some kind of strictly beneficial summon that comes around to help you fight the thing that killed it on the level 19:27:51 this is a fairly silly idea and it has some of the same scumming potential, but not the griefing potential 19:28:11 so if mikee died to a yak on Lair:2 and you saw a yak, his ghost might appear and fight along side with some cute messages 19:28:22 hmm, interesting 19:28:33 kind of journey-esque 19:28:42 idea 4 was to make the ghost simply be flavor, it would harmlessly appear and warn you about the thing that killed it 19:29:03 and possibly have some of the same cute flavor messages 19:29:07 maybe some kind of wandering "peaceful" monster 19:29:46 I was sort of vaguely interested in the gravestone thing (which I think comes from Demon?) 19:29:56 is that similar to (4)? 19:30:15 the idea is that the ghost manifests as a gravestone, and you have to do something to make the ghost show up 19:30:16 gravestones have been a few different roguelikes, I think even nethack generates those 19:30:40 so they're there, but strictly optional 19:30:48 and then, whether/how to interact with felids >.> 19:30:51 show up as a hostile? and what would you do to trigger it 19:31:12 yes, you would kick the grave or something I suppose 19:32:29 I'm not sure if I really care about ghosts or I'm just getting worn down by the anti-ghost people, who seem to be particularly vocal right now 19:32:53 well, if you have enough motivation to write up the idea in the wiki, feel free 19:33:00 I think it could work as a basic idea 19:33:10 but there are some issues still with actually fighting ghost monsters 19:33:25 yeah 19:33:42 advil: the use case was when you might share the headers with another group but not the source. so they can use the dll you provided them I guess. my assumption is that you'd just use the published doxygen 19:33:51 It feels a bit bad that it's something that has gameplay impact in the most "only do this if you're stupid way possible", but I guess you are getting XP from the ghost 19:33:58 but I'm out of my depth a bit here 19:34:17 johnstein: yeah, you should just generate the actual docs :) 19:34:22 er *"only do this if you want to do something stupid" 19:34:45 well, it's sort of liike runed doors or teleporters (basically a 1-tile runed door vault really) 19:34:57 I think he was saying that if it's in the header files he can make visual studio give him the tooltip with the docstrings 19:35:03 it is, but those tend to have a reward beyond xp that makes kind of a cute decision 19:35:16 advil: maybe you could have a loot item that just a random good_item or something 19:35:30 nothing actually tied to the player 19:35:40 possible...maybe too close to wontdo stuff 19:35:52 well placing a good_item isn't wontdo 19:36:03 yeah 19:36:11 eh I'll think about it, but the ideas you mentioned sound reasonable too 19:36:16 it's just making it more into a proper kind of vault; and you don't have to do this at earlier depths 19:36:40 it's just that "xp for fighting something that's painful to fight" feels a bit bad later on 19:37:05 I guess a variant would just be to place all ghosts in small runed or transporter vaults 19:37:57 yeah 19:38:04 I think you may be onto something though 19:38:28 it could actually be a gravestone and prompt you to "search it" with a y/n prompt 19:38:42 but maybe that bit of flavor isn't worth the effort and a transparent vault with transporter or runed door 19:38:46 would just be easier :) 19:39:47 some issues with it are that a lot of ghosts really are very trivial and you still have to look them up in terms of logfile 19:39:50 to see that 19:39:57 the flavor seems like it shouldn't be too crazy to implement, I hadn't thought about the item part though 19:39:59 well I guess we've removed most of those spoilers these days 19:40:19 one thing would be that it would actually allow making ghosts harder in certain ways 19:40:27 yes, that's true 19:40:46 since one complaint seems to be that they're often boring 19:41:02 you would not want to generate the item actually based on the ghost's properties since that can encourage leaving some kinds of ghosts to get preferred items 19:41:09 yeah 19:41:39 ugh how do you link to tavern threads 19:41:50 -!- aditya1 is now known as aditya 19:41:50 the top of the thread? 19:41:55 specific comment 19:42:02 ah, can only do if it doesn't have thanks 19:42:06 ah 19:42:09 weird issue with that old forum software 19:42:12 sandman described the Demon mechanic somewhere in the latest thread, but it's thanked 19:42:37 very different game obv 19:42:47 making people choose to fight ghosts is a good basic step, and yeah there's a lot you could do with the idea 19:42:52 to encourage that choice sometimes 19:45:03 I'll take a stab at writing this idea up at some point 19:45:44 the ally one is interesting too 19:51:08 yeah that was mikee's idea 19:51:11 "reverse ghosts" 19:51:54 I think it has a few problems as well, but it does remove the annoyance of actually fighting ghosts 19:52:15 I sort of like its anti-griefing nature, basically prevents you from not helping people 19:52:15 maybe if they didn't come with such extreme defensive profiles they wouldn't be so bad to fight 19:52:33 yeah, definitely solves the griefing problem 19:52:53 since you don't get easy ghost XP it's probably an overall player nerf 19:53:12 also good potential for comedy 20:22:28 !kw newgnolls 20:22:29 Keyword: newgnolls => vlong>=0.21-a0-130-gf0fb5d9 21:32:36 gammafunk: like the gnoll changes! 21:32:48 I've been busy helping a friend finish polishing a game he's releasing tomorrow and haven't been up to date on the discussion, but I like what I'm reading 21:38:45 Floodkiller: it's basically implemented and I'm about to push, so glad to hear it :) 22:35:44 gammafunk: I'm about to run off, but want to throw 2 cents into the ghost convo 22:36:32 IMO the big problems with ghosts are 1) the range of possible options includes some shitty experiences; 2) you're incentivized to fight ghosts for rewards; and 3) the ghost's properties can be better deduced from a logfile than from the game 22:37:21 To solve that, I would suggest 1) remove all XP from ghosts, 2) apply correction to some traits to keep it within a reasonable range. 22:37:29 I think (3) is much less true than it used to be 22:37:35 definitely 22:38:06 (1) would make ghosts even less fun to deal with than they already are 22:38:29 I suppose they would be better if you did (2) well enough 22:38:43 but I don't think people would like ghosts and more and you still have the same griefing issue as before 22:38:49 For 2), I'm thinking something like logarithmic stepdowns for defenses, removal of certain buffs before saving ghost data, removing weapon brands (except perhaps flaming/freezing?) 22:39:08 Normalizing ghost speed to some number, maybe 12 22:39:16 yeah, some stuff like that could be good 22:39:16 Normalizing ghost resists to the undead resist set 22:39:20 I think you need to do something about the metagaming thing, esp if you're making ghosts no exp 22:39:39 if ghosts are no exp and have any threat whatsoever you are really incentivized to run shaftrobin 22:39:53 right I major issue here is just "griefing" and dealing with ghosts people just don't want to fight 22:40:03 s/I/a/ 22:40:40 hence I liked advil's idea since it removes ghosts as a griefing tool and makes the ghost experience a decision 22:40:48 If ghosts are normalized to some degree, griefing seems less of an issue. As for shaftrobin, that's hard to solve w/o re-bonesing ghosts that have been loaded but don't kill you 22:41:09 I like advil's idea as well 22:41:21 Yeah, one major reason why I don't like the no-xp thing 22:41:27 is that ghosts are a community "fun" feature 22:41:43 they only exist for that kind of frivolous sense of fun and community 22:42:01 so making the experience of dealing with them less fun (they a pure nuisance and not worth anything at all) 22:42:22 doesn't seem too ideal to me 22:42:22 I may have a warped sense of fun here . . . 22:42:23 because that struck me as a way to enhance their fun 22:42:27 haha 22:42:36 right, the only fun is something like "I killed elliptic's ghost" but 22:42:58 (which is to say, make them less of a nuisance, but also make them something you have no incentive to engage with) 22:42:59 95% of the time it's a fight with a monster that's more annoying than usual 22:43:29 If we really needed ghosts from a balance perspective I'd support making them 0 XP a little more 22:44:07 maybe others feel differently about that though 22:44:11 I like advil's idea, but I do worry a bit about giving players loot/xp incentives to make sure ghosts generate in their games 22:44:42 IMO if we go in that direction, we should spawn generic ghosts when no player ghost is available rather than just not offering a loot vault 22:45:21 A third option would be to make ghosts a purely aesthetic feature: confine them to un-enterable vaults. 22:45:34 Anyway, must run. I'll follow up w/ you later.