01:44:51 -!- amalloy_ is now known as amalloy 01:55:54 Windows builds of master branch on crawl.develz.org updated to: 0.21-a0-203-gb066a6e 02:53:28 Monster database of master branch on crawl.develz.org updated to: 0.21-a0-203-gb066a6e 03:11:50 Unstable branch on crawl.beRotato.org updated to: 0.21-a0-203-gb066a6e (34) 04:26:50 !bug 11104 04:26:50 https://crawl.develz.org/mantis/view.php?id=11104 04:27:09 any suggestions on how to reproduce this? 04:33:34 separate question, where do I look to understand how monsters behave off-level? 04:57:45 -!- Telnaior_ is now known as Telnaior 05:02:05 -!- Telnaior_ is now known as Telnaior 05:27:17 -!- Telnaior_ is now known as Telnaior 07:09:01 -!- amalloy is now known as amalloy_ 08:02:57 johnstein: monsters don't act off-level. Off-level isn't even loaded into memory (except when examining things for travel/map) 08:03:53 monsters do perform some wandering when you re-enter a level that simulates passage of time since you were last there 09:32:43 <|amethyst> !lg cybersaint2k ce 15 -log 09:32:44 15. cybersaint2k, XL13 CeHu, T:17366: http://crawl.berotato.org/crawl/morgue/cybersaint2k/morgue-cybersaint2k-20170817-162213.txt 09:34:37 <|amethyst> any idea where the D:8 shadow dragon in that game would have come from? In D they have depth 27, so even an 8 in a vault wouldn't spawn one, and the player was only on D:8 between about 800 and 1100 turns 09:36:50 <|amethyst> same player got a Sphinx in Orc:1 in their current game (it is a Xom game, but the sphinx "wanders into view" rather than being dumped on the player by Xom or polymorphed after being initially noticed) 09:47:10 <|amethyst> !tell dpeg I was looking at Orc maps and my wife, looking over my shoulder, asked of david_orc_1_choice "Why is there a Pac-Man ghost with 'NOO' written in it?" 09:47:10 |amethyst: OK, I'll let dpeg know. 10:12:20 Does the noting actually discern between a monster that's never been seen and one that got polymorphed? 10:12:40 If it got polyed and then shafted, for instance; I suppose that wouldn't be tied to the level in any way 10:12:50 perhaps if the monster transited to a new level though 10:18:08 |amethyst: iirc the super out-of-depth spawns can start as early as 800 turns in, though they are extremely rare that early 10:18:34 <|amethyst> elliptic: do they go that high? (L 27 monster on level 8) 10:18:48 <|amethyst> gammafunk: re the sphinx: https://www.reddit.com/r/dcss/comments/6uowvf/what_in_the_name_of_ood_is_going_on_in_trunk/ 10:19:06 <|amethyst> gammafunk: it says "a sphinx comes into view", which AFAIK means the player has never seen that monster before 10:19:20 <|amethyst> gammafunk: so it would have to have been polymorphed out of LOS 10:19:34 I don't remember the formula but they go pretty high 10:20:08 ??8 10:20:08 8[1/2]: This is either a {statue} or a {golem}. It's either totally harmless or an electric golem. 10:20:10 ??8[2 10:20:10 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:20:21 New branch created: pull/599 (1 commit) 13https://github.com/crawl/crawl/pull/599 10:20:21 03Sandman25DCSS02 {GitHub} 07https://github.com/crawl/crawl/pull/599 * 0.21-a0-204-g1749a14: Display range for spells in monster description 10(5 minutes ago, 1 file, 14+ 1-) 13https://github.com/crawl/crawl/commit/1749a149d0d6 10:20:28 <|amethyst> elliptic: ah, I suppose that's possible 10:20:33 oh those go past 8 don't they 10:21:00 <|amethyst> elliptic: place.depth += random2avg(27, 2); 10:21:02 elliptic: I have a prototype for that spawn counting code working, and am testing with qw; but I noticed that qw seems to "swing-rest"? and runs slower than I thought it might 10:21:16 swing-rest? 10:21:16 is there a good way to run qw so that it's faster for testing purposes like this 10:21:32 it went upstairs and did a bunch of "you swing at nothing" 10:21:50 <|amethyst> gammafunk: did you set DELAYED = false already? 10:21:53 oh, that means there was an invis monster 10:22:08 probably an unseen horror downstairs 10:22:14 oh ok, yeah and there had been a manticore, maybe it was Barb and there was display lag a bit 10:22:22 or it just went by so fast and I didn't see that 10:22:31 yeah I have DELAYED = false 10:22:48 how slow is it going? with DELAYED = false it should win in 10 minutes or some such 10:23:11 <|amethyst> you could try building with luajit :) 10:23:33 it's about 10 minutes in, in orc:1 10:23:38 seems to go through some long pauses 10:24:04 weird 10:24:07 |amethyst: yeah I'm just trying to make sure I'm not doing anything weird that slows it down 10:24:20 is lua throttling on? 10:24:28 it usually isn't locally, but 10:24:49 oh, this is a debug-lite build 10:24:55 not sure if that matters 10:25:00 <|amethyst> oh 10:25:02 <|amethyst> no optimisation 10:25:02 that probably slows it, yeah 10:25:06 aha, gotcha 10:25:17 I should have a normal build on-hand for this then, thanks 10:25:36 <|amethyst> gammafunk: it's possible to build with both debugging and optimisation 10:26:32 doesn't that make debugging harder in various ways? 10:26:46 <|amethyst> yes, but less hard than without debugging at all 10:26:56 <|amethyst> make DEBUG=y I think does it 10:27:28 perhaps I'll just try a normal build and if I'm unlucky and my code has a crash, I can run it normally 10:27:44 or maybe the backtrace will be sufficient anyhow so I won't need to 10:27:51 <|amethyst> NO_OPTIMIZE gets turned on by 'make debug' and 'make debug-lite' but not by the otherwise equivalent make FULLDEBUG=y DEBUG=y and make DEBUG=y 10:27:58 <|amethyst> (and by HURRY=y) 10:45:30 resting seems pretty slow with qw sometimes 10:45:32 wonder why that is 10:46:32 maybe it's just all the lua processing going on that slows it down 10:58:39 elliptic: table for a qw run, I think we just have to not count orb spawns for this to work: http://dpaste.com/24412GN 10:58:49 something I hadn't thought of when implementing 10:59:19 either that or they need their own category 10:59:50 but I think we're not really interested in orb spawns so probably just omiting them would be good 10:59:55 table is at the end of the morgue 11:00:40 is that the debug-lite build? I'm still curious whether a regular build is faster for you 11:01:02 yeah omitting orb spawns sounds good 11:02:04 <|amethyst> is it possible to have orb spawns on their own row? 11:02:45 <|amethyst> it's not relevant to the current question, but it does seem like the kind of thing that might be useful to have stats on 11:02:59 elliptic: it was much faster with a regular build, yeah 11:03:06 but there was still a strange slowness when resting 11:03:13 I could see HP and aut ticking up slowly 11:03:15 it doesn't use 5 to rest 11:03:18 aha 11:03:33 <|amethyst> gammafunk: also, there are some alignment and spacing problems, but you probably already knew about those 11:03:42 I tried having it use 5 to rest and it didn't actually speed it up that much overall 11:03:43 yeah, I need to fix that 11:03:51 and yeah we could add orb spawns that way 11:03:51 and resting one turn at a time is simpler 11:04:18 well, I'll time it when I run it the next time, but I think it was turning off optimization that slowed it down so much 11:04:26 game did proceed very quickly with the new build 11:05:02 okay, good to know 11:05:27 looks like on most levels spawn xp was roughly 10% 11:05:50 though of course a lot of variance and seeing some stats on human games would be good too 11:06:41 <|amethyst> gammafunk: hm, if you're looking for more stats, spawn XP (or count) / turns might be useful? 11:07:16 but maybe something like removing later spawns and placing 10% extra monsters at start and having the extra monsters be awake would be good 11:07:41 though with awake monsters we want to make sure the player doesn't enter the level too near them 11:07:51 so that's a little tricky maybe 11:08:10 certainly could ensure that for stairs 11:08:41 Even doing that for new levels in terms of shaft/hatch destinations would be possible 11:09:11 although I'm not sure about the current order for level gen 11:09:26 I think you'd have to have that pass at a later stage from normal monster gen 11:09:53 another option would be to give monsters a very small chance of waking up each turn 11:11:55 |amethyst: tricky part with spawn xp / turns is that turns are trucked per-branch (via PlaceInfo) 11:12:28 let me paste my still pretty bad code for reference, but it would require rethinking how PlaceInfo works or some kind of merge or something 11:12:41 and PlaceInfo is used in some context where it needs to work per-branch I believe, so that may not be simple 11:13:39 New branch created: xpinfo (1 commit) 13https://github.com/crawl/crawl/tree/xpinfo 11:13:39 03gammafunk02 07[xpinfo] * 0.21-a0-194-g8c08ff6: First pass at xp info dump 10(43 minutes ago, 11 files, 332+ 37-) 13https://github.com/crawl/crawl/commit/8c08ff62f633 11:14:16 it has not save compat at the moment 11:14:21 s/not/no/ 11:14:38 also s/trucked/tracked/ 11:17:38 !bug 10971 11:17:39 https://crawl.develz.org/mantis/view.php?id=10971 11:18:31 gammafunk: so this one is marked simple. I'm assuming that's because the solution is to just remove all statuses right when the monster shafts? 11:19:14 <|amethyst> gammafunk: hm, how does the OOD timer work then? 11:19:49 and I suppose the HP should be set back to max? or leave the HP as it is? 11:20:11 <|amethyst> gammafunk: ah, it's stored in the level itself 11:20:23 <|amethyst> gammafunk: which I guess is a bit of a pain to access 11:20:34 oh 11:20:52 I assumed it was in placeinfo; I don't think access is necessarilly a problem, but I was more concerned the data simply wasn't there 11:21:43 <|amethyst> johnstein: I'd think the solution would be to apply the same kind of enchantment timedowns as happens to monsters when you return to a level 11:22:04 <|amethyst> johnstein: which AFAIK includes healing over time 11:23:16 oh ok. I think I get it. my training item is enchantment timedowns 11:24:23 so we handle monsters behaving offlevel with enchantment timedowns? 11:24:34 i.e. indirectly 11:25:26 <|amethyst> johnstein: it's that "simulates passage of time since you were last there" that gf mentioned 11:25:36 <|amethyst> I'm trying to find it 11:26:29 ah I missed that second message that gf sent after the first one. 11:27:36 <|amethyst> johnstein: update_level in timed-effects.cc 11:28:01 <|amethyst> johnstein: you'd want to split out the stuff inside the loop into a function that can apply it to a particular monster 11:28:43 <|amethyst> johnstein: then you need to do that from somewhere in place_transiting_monsters 11:28:55 thanks |amethyst 11:29:18 <|amethyst> johnstein: *but* I'm not sure if the transit list knows what time the monster was added 11:29:27 <|amethyst> johnstein: which you need so you can tell how much time to simulate 11:30:10 how does it work when leaving a level? wouldn't you need to set the time the monsters were added then? 11:30:35 (or maybe that might make more sense once I absorb the code) 11:31:10 <|amethyst> johnstein: for the case that's handled now, you just need to know the time you left the level and the current time 11:31:19 <|amethyst> johnstein: and the time you left the level is stored in the level itself 11:31:24 ah good point 11:31:49 <|amethyst> johnstein: but the time the monster left the level would have to be stored in the 'follower' struct 11:31:53 <|amethyst> (mon-transit.h) 11:32:41 !source mon-transit.h 11:32:42 https://github.com/crawl/crawl/blob/master/crawl-ref/source/mon-transit.h 11:32:45 <|amethyst> basically, when a monster leaves the current level for another one, we put it in a separately marshalled list (called "the_lost_ones"), tracking what level it's destined for 11:33:47 <|amethyst> then, when you enter a level, place_transiting_monsters looks for monsters on the transit list that are destined for that level, removes them from the transit list, and places them on the level 11:34:13 <|amethyst> there is a separate list, that works the same way, for monsters following you across stairs 11:34:14 why are they called "followers"? 11:34:30 oh 11:34:30 <|amethyst> preemptive strike :) 11:34:35 so not allies. more like predators 11:34:38 <|amethyst> both 11:34:43 they're worshiping you 11:34:51 they express devotion by taking your HP 11:34:58 how sacred 11:35:16 <|amethyst> "follower" as in quite literally "following you across the stairs" 11:35:30 <|amethyst> no moral judgment either way 11:35:39 so monsters following you to a new level or pre-following you via a shaft are both considered the same kind of follower 11:36:04 ?/pre-follow 11:36:05 No matches. 11:38:20 <|amethyst> johnstein: well, they use the same data structure, but they go onto different lists 11:39:59 <|amethyst> oh, no, sorry, I'm wrong 11:40:17 <|amethyst> it is the same list, they just have a flag set 11:40:21 <|amethyst> MF_TAKING_STAIRS 11:41:29 <|amethyst> place_followers handles the ones that are taking stairs (through _level_place_followers), and place_transiting_monsters handles the others 11:41:39 <|amethyst> (via _level_place_lost_monsters) 11:46:46 what are other ways to lose monsters besides shafts? 11:55:24 <|amethyst> hm banishment 11:56:20 The build passed. (xpinfo - 8c08ff6 #8632 : gammafunk): https://travis-ci.org/crawl/crawl/builds/266297708 11:57:00 <|amethyst> johnstein: looks like that is everything 11:58:11 <|amethyst> monster::set_transit() is the relevant method 11:58:30 probably not as important, thematically or practically, for abyssed monsters to get their statuses cleared since there's less chance to see them again in the same state and if you do, you can just blame abyss weirdness as the "reason". 11:58:44 and probably not noticed as much as shafted 11:59:21 <|amethyst> johnstein: but probably it makes sense to handle it everywhere 11:59:31 I agree 11:59:58 <|amethyst> particularly since the relevant code would need to run when the monster is pulled *off* the transit list 12:00:14 <|amethyst> meaning you have lost the information about how it got on there in the first place 12:00:32 was just saying that I can see why it hasn't been noticed if these are the only two ways to see the issue and one way is the abyss where things are already goofy 12:00:37 agree 12:00:39 <|amethyst> yeah 12:00:43 <|amethyst> also, even with shafts 12:00:56 <|amethyst> it could take a while before you autoexplore to the monster 12:01:07 <|amethyst> by which time it has healed and the enchantments have timed out normally 12:01:19 neat little bug 12:01:38 feels a bit less simple than I was expecting based on the tag, but still doesn't sound that bad 12:03:47 <|amethyst> yeah, I'm not sure the tag was really appropriate there 12:04:16 <|amethyst> maybe whoever added it was thinking of your simple proposal of just healing the monster and clearing non-permanent enchantments 12:09:29 <|amethyst> BTW, not relevant to this, but recall works completely differently 12:15:20 if you have an ally who gets poisoned and gets shafted and you recall them 1000 turns later, would they suffer from this big and come back poisoned and the same HP? or is that what you mean by handles differently? 12:15:47 <|amethyst> yeah, time is not simulated for offlevel recall 12:16:41 <|amethyst> also 12:16:43 should it be? 12:16:57 <|amethyst> maybe, but don't worry about that now 12:17:04 <|amethyst> you don't want to open that can of worms 12:17:22 ah ok 12:17:27 <|amethyst> all the "unlinked item" warnings about orcs are *probably* because of offlevel recall 12:17:55 <|amethyst> also, even with a shaft 12:18:10 <|amethyst> the poison expires but doesn't actually hurt the monster 12:19:24 <|amethyst> timeout_enchantments doesn't actually apply any of the enchantment's continuing effects, it just decreases the duration and removes the enchantment if necessary 12:19:40 <|amethyst> also, I think this is one for @crawlcode: 12:19:40 <|amethyst> * @param levels XXX: sometimes the missing aut/10, sometimes aut/100 12:20:26 <|amethyst> I guess I should change that @param to \param for twitter purposes 12:21:32 <|amethyst> hm 12:21:42 <|amethyst> most of that header comment is somewhat obsolete 12:21:59 <|amethyst> the "current abuse" mentioned there is pre-DCSS, since the comment is from Brent Ross 12:22:07 ok. so for the original bug success looks like, poisoned 50% hp monster gets shafted. wait 1000 turns. go see it in the new level and confirm it's not poisoned and at 100% HP. 12:22:12 <|amethyst> not sure I would call 10 years "current" 12:22:17 heh 12:22:40 <|amethyst> johnstein: that but also try it for fewer turns 12:22:48 <|amethyst> johnstein: the monster should be in a state in between 12:23:00 if instead you waited precisely the amount of time the poison enchantment you would see no poison and still 50% 12:23:14 <|amethyst> no poison and higher than 50% 12:23:20 <|amethyst> since it still healed over time 12:23:27 <|amethyst> but maybe not to full 12:24:05 <|amethyst> would work best with a low HD monster with lots of HP 12:24:05 yes. that's actually what my brain was trying to say. that since it won't apply the poison dmg the hp state won't be quite accurate 12:24:18 but only inaccurate for a certain transition period 12:24:19 <|amethyst> since monster regen rate is based on HD 12:24:34 and players won't notice it 12:24:36 <|amethyst> so you could do a goblin HP:9999 or something 12:25:02 ah ok 12:25:37 is there some place that documents all the fancy ways you can create monsters and items? 12:25:43 <|amethyst> err, I guess that's probably lowercase hp 12:25:59 or is it always just the attribute:value? 12:26:08 comma or space separated? 12:26:17 for multiple attributes 12:26:21 <|amethyst> johnstein: docs/develop/levels/syntax.txt, look for MONS: and ITEM: 12:26:34 thanks 12:26:34 <|amethyst> johnstein: but there are probably still some undocumented things there too 12:26:45 <|amethyst> johnstein: comma separated in general 12:26:54 <|amethyst> johnstein: err 12:26:59 <|amethyst> johnstein: space separated I mean 12:27:24 <|amethyst> johnstein: but things get more complicated when you have things like a monster carrying multiple items 12:27:45 <|amethyst> still space separated tags, but then you need other characters to separate the monster from the item and the item from the next item 12:28:12 <|amethyst> mostly key:value but sometimes it's just a tag like goblin always_corpse 12:29:14 <|amethyst> most tags can go anywhere, including before the monster name 12:29:40 <|amethyst> even between words: att:friendly orc hd:8 warrior 12:29:58 <|amethyst> (please don't do that :) ) 12:33:41 by golly it worked 12:45:32 <|amethyst> johnstein: so now the real difficulty 12:45:34 <|amethyst> johnstein: save compat 12:46:01 <|amethyst> johnstein: or, rather, saving the transit list entry time, and then handling the lack of that in old saves 12:47:53 <|amethyst> (for the save compat, it would be fine to just set that time to 0 and let things time out/heal completely; but you do at least need the code to not try reading the saved time if the save is old enough) 12:57:09 elliptic: Here's a table without any orb run spawns (the table alignment is messed up a little, but it should still be clear) 12:57:22 I'm sure you'll appreciate qw's choice of weapon 12:57:56 Would it be good to run qw as a human, perhaps just HuBe? 12:58:07 I'm not sure what happened on Zot:5 with the 0 spawn situation 12:58:25 <|amethyst> for testing that you will need a save made with trunk crawl (without any your changes) with two poisoned hurt monsters on the transit list: one that has been on there a long enough time for the afflictions to go away, and one that just went on 12:58:43 I did see what looked like a teleport at one point, but am a bit surprised that it would clear zot:5 without any spawns 12:59:02 <|amethyst> and back that save up, since you will be loading/playing several times 13:00:50 <|amethyst> to test whether saving works at all, save and re-load the game in between the monster getting shafted and the player entering the new level 13:01:12 elliptic: er, forgot to give the url: http://dpaste.com/0QRVN2K 13:02:30 <|amethyst> probably with the same old + new monster setup, so you can check both possible failure modes (doesn't time anything out vs times out too much, as though the monster was shafted on turn 0) 13:02:38 <|amethyst> s/was s/were s/ 13:10:19 gammafunk: 0 spawns on zot:5 is weird yes, I wonder if spawns don't happen if there are a ton of monsters on the level already or something? 13:10:53 or maybe it just isn't that unlikely 13:11:52 gammafunk: if it's not too hard to list the number of turns spent on each individual level alongside the spawn stuff, that might be interesting 13:12:21 hrm, I'll look into it 13:14:08 I guess a bunch of other levels had 0 spawns killed also 13:14:34 let me push my current code right quick, but I don't think I'm miscounting 13:17:00 03gammafunk02 07[xpinfo] * 0.21-a0-195-gf8a6eaa: Fix (not quite) xp_by_level table alignment 10(2 minutes ago, 1 file, 5+ 5-) 13https://github.com/crawl/crawl/commit/f8a6eaa34449 13:17:00 03gammafunk02 07[xpinfo] * 0.21-a0-196-g65211fe: Don't include Orb spawns in the spawn count of xp_by_level 10(38 seconds ago, 1 file, 3+ 2-) 13https://github.com/crawl/crawl/commit/65211fecd5a7 13:17:29 I wonder though, is this handling ood monsters? 13:20:05 yeah looks like it is 13:20:20 it becoming an ood or super ood is just in the choice of random monster that happens later 13:43:02 Dithmenos Wrap-arounds Some Text 13https://crawl.develz.org/mantis/view.php?id=11188 by Pekkekke 14:14:47 -!- amalloy_ is now known as amalloy 14:45:31 -!- mumra1 is now known as mumra 14:52:21 elliptic: qw HuBe that died in the zot:5 orb chamber: http://dpaste.com/072BDVH 14:52:43 One thing I realized about that spawn XP/count is that this doesn't mean that spawns aren't generating, of course, only that they're not getting killed 14:53:13 I could clean up the commits, add proper save compat, and then push this to trunk 14:53:25 I guess we could just enable this table in default options? 14:53:37 That's what I actually do right now 14:55:35 hrm, wait 14:56:02 this turn total 14:58:10 doesn't seem to agree with the overall turncount at all, seems way inflated 15:28:06 03alexjurkiewicz02 {MarvinPA} 07* 0.21-a0-204-ge2129ae: Gozag: don't offer useless haste/berserk in petition 10(5 weeks ago, 1 file, 11+ 0-) 13https://github.com/crawl/crawl/commit/e2129aebca54 15:36:47 gammafunk: hm, column F in the previous table (average non-inter-level travel turns spent in a level) also seems inflated 15:38:16 e.g. that game spent less than 8000 turns total in zot, but that table says 4620 per level 15:38:41 I don't know whether it is using turns or aut, but it shouldn't make that big a difference 15:39:08 elliptic: there's some kind of fundamental problem with how turns are being counted for place-info purposes, as I'm learning, let me paste something 15:39:41 http://dpaste.com/0GZ3D8F 15:39:47 That's not actually qw, confusingly 15:39:51 that's me playing normally on D:1 15:39:54 quitting at the end 15:40:06 not that the turns recorded are about 1/3 of the actual turns passed 15:40:23 I think the call to _update_place_info() in main.cc 15:40:35 is probably not correctly handling turns that happen under a delay 15:40:45 also let me push my current code 15:43:07 03gammafunk02 07[xpinfo] * 0.21-a0-197-g724e2f1: Add turn tracking to the xp_by_level dump table 10(2 minutes ago, 5 files, 29+ 10-) 13https://github.com/crawl/crawl/commit/724e2f126a08 15:44:02 My guess is that delayed turns are not being counted properly, but I'm not sure how it's also inflating the turncount for actual qw 15:44:52 the call to _update_place_info() happens at the end of _input() and delayed things and some kinds of handling of repeated commands return earlier in the loop 15:48:46 qw does weird stuff with macro delay so who knows 15:50:31 Looks like I need to figure out that loop a little better before we can accurately track turns 15:50:38 The xp and monsters counts should be correct, at least 15:50:51 those simply happen when the player is awarded xp 15:51:45 can turn-tracking just happen when turncount is increased? 15:51:49 |amethyst: since you asked about turns, see my URL http://dpaste.com/0GZ3D8F with the discrepancy between actual turns spent and the much smaller number the turn tracking in _update_place_info is reporting 15:51:57 also possibly aut-tracking would be better anyway 15:52:17 yeah, I was thinking about that 15:52:48 though I guess spawns use regular turncount (that was what started this) 15:53:12 right 15:53:32 -!- amalloy is now known as amalloy_ 15:53:40 but it looks like you.num_turns only gets incremented in one place in main.cc 15:53:48 so could maybe just move stuff there? 15:54:36 (in world_reacts()) 15:56:14 hrm, let me try that 15:58:02 <|amethyst> gammafunk: hm, odd... if you turn on turns_by_place, I assume it matches the real turncount, not the one shown there 15:58:21 |amethyst: it doesn't actually 15:58:22 |amethyst: it didn't look right in the qw game earlier 15:58:29 <|amethyst> odd 15:58:45 that little loop in _input() is a bit confusing 15:58:47 there are a bunch of early returns 15:58:54 with calls to _world_reacts() 15:59:01 I don't see any reason to put this in _input() anyway 15:59:15 yeah, my only concern is some of the stuff in _update_place_info() 15:59:18 is checking previous commands 15:59:36 and whether the player is delayed 15:59:41 oh, because of the weird ignoring interlevel travel thing 16:00:03 IMO that isn't very useful anyway 16:08:41 03MarvinPA02 07* 0.21-a0-205-ge9f4a53: Improve some berserk checks 10(59 seconds ago, 5 files, 16+ 20-) 13https://github.com/crawl/crawl/commit/e9f4a5387f11 16:09:04 Unstable branch on crawl.jorgrun.rocks updated to: 0.21-a0-204-ge2129ae (34) 16:09:12 guess who just spent a good 10 minutes wondering why on earth berserk was marked as useless when it shouldn't be, before realising maybe there was a missing "!" 17:09:07 Unstable branch on crawl.jorgrun.rocks updated to: 0.21-a0-205-ge9f4a53 (34) 17:09:26 <|amethyst> gammafunk: since you know the item stats stuff better than I... do you have an estimate for what percentage of food fruit makes up (by number of items or by nutrition)? 17:09:47 <|amethyst> the future of Crawl depends on it 17:09:48 uh, I think that's probably covered well by objstat 17:10:02 good, finally the Fedhas removal crawl needs to be great again 17:10:04 ??objstat[2 17:10:04 objstat[2/2]: Spreadsheets for all releases: https://drive.google.com/folderview?id=0B7VXhHzhWWb7S282VWhLVWRXbG8&usp=sharing ; See the README for details: https://docs.google.com/document/d/1D5mFqVi8ghz_nzvVmDUc3unx8VanVBWfgvZ8xCHaiJo/edit?usp=sharing 17:10:17 Let me see 17:10:41 <|amethyst> gammafunk: yeah, but I am in the middle of changing stuff so can't run objstat for a little bit 17:10:44 <|amethyst> :) 17:10:48 |amethyst: the Comestibiles tabls should have what you need right there 17:10:51 can you look at this sheet? 17:10:56 https://docs.google.com/spreadsheets/d/1anrJhCbH2b71_Wtbv8wpdZdVw0yGaqPsKLzupy29Wd4/edit#gid=805322329 17:11:00 s/sheet/workbook 17:11:04 \/ 17:11:18 / 17:11:18 <|amethyst> gammafunk: thanks, that's what I need 17:11:18 ah, that's how you do that 17:11:21 any opinions on this? https://github.com/Floodkiller/crawl/commit/f57a1291af33e599cbba46df87f18edaabf9d426 17:11:29 this is assuming you got shoals+spider 17:11:49 which I don't think Lair branches would affect permafood generation too much 17:11:52 <|amethyst> gammafunk: do you think anyone will be penalised too severely by the removal of the guaranteed food vaults? 17:12:08 I can't imagine they would be 17:12:13 You specifically mean the ones in Dungeon? 17:12:14 <|amethyst> cool 17:12:39 I guess there are vaults in Lair that place a bunch of fruit, but I suppose it's hard to imagine that mattering to anyone save for Fedhas worshipers 17:13:17 Food can matter for spellcasters who tend to undertrain spellcasting (and likely have lower int), and to gozag worshipers maybe potentially, but I think most food issues in crawl happen from spellcasting 17:13:26 <|amethyst> yeah, the uniq_first_food and chance_second_food vaults 17:13:56 <|amethyst> I was going to remove the former (though I could be persuaded to keep it) and fold the latter into random vault generation rather than having a CHANCE: 17:14:13 Right, outside of challenge runs I don't think those matter; I've felt sorta a bit low on permafood in very early levels a few times, but it never really has gotten out of hand for me in any run 17:14:19 <|amethyst> hm 17:14:29 <|amethyst> maybe keep first_food then and remove second_food 17:14:48 <|amethyst> I am merging food down to either two or three subtypes, depending on whether I can reasonably make Fedhas use rations rather than fruit 17:15:03 When I was arguing with hellmonk about food issues on spellcasters, that was just pointing out more longterm problems that can happen when you go with lowish spellcasting and extensive spell usage for a while; you can start to run low on permafood 17:15:16 cool 17:16:02 hrm, not sure if fedhas would work very well with rations as a cost 17:17:03 <|amethyst> gammafunk: with the right number of rations as the cost it could be the same on average 17:17:23 <|amethyst> gammafunk: ignoring carnivores and the spikiness of fruit vaults 17:17:43 <|amethyst> gammafunk: hence my asking about food objstat 17:18:11 hrm, but how would fedhas food costs work then? You mean that when e.g. creating a plant or evolving a plant, it costs an entire ration? 17:20:33 <|amethyst> average of 56 fruit per game, 35 meat, 36 bread, 35 RJ 17:21:00 <|amethyst> which will become something like 56 fruit, 85 rations with the changes I have already made 17:21:04 <|amethyst> (locally) 17:21:49 oh, you're keeping fruit 17:21:54 <|amethyst> so far 17:21:55 I was assuming fruit was going 17:22:08 <|amethyst> so if each fruit is replaced with (on average) 0.2 rations, and Fedhas requires 2 fruit per activation, it should be the same number of fruit per game 17:22:23 <|amethyst> but it costs a bit more nutrition unless you're a carnivore 17:22:36 <|amethyst> s/the same/close enough to the same/ 17:23:15 <|amethyst> gammafunk: commits so far, before handling fruits: 17:23:20 <|amethyst> Make food restriction mutations single- 17:23:22 <|amethyst> level. 17:23:29 <|amethyst> Simplify food_def. 17:23:33 <|amethyst> Merge bread and meat rations. 17:23:36 <|amethyst> Remove royal jellies. 17:25:55 I guess I'm confused by: "if each fruit is replaced with (on average) 0.2 rations" if fruit is staying, why is it being replaced with rations? 17:26:12 <|amethyst> I haven't removed fruit yet, but I would like to 17:26:31 <|amethyst> so I'm trying to figure out numbers etc for doing so 17:26:57 ok so you're arguing just that we can not disrupt fedhas if we switch his powers to cost rations 17:26:57 <|amethyst> yes 17:26:58 if we replace fruit by the right amount of rations 17:27:02 <|amethyst> with the appropriate scaling 17:27:05 <|amethyst> yeah 17:27:12 makes sense 17:30:44 are you all aware that mantis registrations are broken? 17:31:23 <|amethyst> Ultraviolent4: yes https://crawl.develz.org/mantis/view.php?id=11182 suggestions or captcha improvements welcome 17:31:39 <|amethyst> Ultraviolent4: until then, keep reloading until you don't get any of the inverse-video fs 17:32:47 thanks 17:32:56 well, time to see if old qw HuBe can make it to Zot again 17:33:07 oh I should test with a single-level morgue first 17:33:14 <|amethyst> btw, that captcha thing goes for everyone 17:33:29 I moved _update_place_info to _world_reacts() like elliptic suggested, looking at the code it seems fine 17:33:41 Yeah I saw Nap.kin's message about that, not sure what we can do 17:34:26 yea, im trying to solve a capthcha myself now lol 17:34:43 what am i looking for when i refresh it? all of them are the same type as far as i can tell 17:34:52 <|amethyst> gammafunk: could move to github issues, but 17:35:06 <|amethyst> gammafunk: this also affects tavern, since mantis and tavern use the same logins 17:35:07 I have not seen any of those awful korean bot posts on tavern in a while, so at least there's some upside 17:35:35 right, we need that to work well for taven, don't we? Or does tavern registration work through a different UI 17:36:00 oh, I see, it's the same thing 17:36:37 Nap.kin has made a captcha so difficult, not even google Deep Mind can solve it 17:37:38 yea, i was told by someone who was trying to sign up for tavern 17:38:00 what are the major issues with using github issues, except for the whole lack of knobs and dials thing? 17:38:36 <|amethyst> johnstein: old bugs wouldn't be ported so we'd have two places to search 17:38:45 <|amethyst> unless we found a way to automate moving those 17:39:09 I think there are some significant UI problems too; we discussed this a couple times yet I don't remember all the details, but isn't the way they handle templates not very good? 17:45:41 I think there's a way to automate github issue creation but I've never done it 17:45:48 though 17:45:57 scraping mantis might not be fun 17:47:45 yeah, scraping wouldn't do at all, would have to be an import 18:14:15 Unstable branch on underhound.eu updated to: 0.21-a0-205-ge9f4a53 (34) 18:46:45 03|amethyst02 07* 0.21-a0-206-g7d95abb: Checkwhite. 10(4 hours ago, 1 file, 8+ 8-) 13https://github.com/crawl/crawl/commit/7d95abb50f06 18:46:45 03|amethyst02 07* 0.21-a0-207-g4a9efaf: Remove unused descriptions. 10(6 minutes ago, 16 files, 0+ 64-) 13https://github.com/crawl/crawl/commit/4a9efaf00671 18:59:56 New branch created: food-unification (5 commits) 13https://github.com/crawl/crawl/tree/food-unification 18:59:57 03|amethyst02 07[food-unification] * 0.21-a0-208-gd1b9bdd: Make food restriction mutations single-level. 10(4 hours ago, 14 files, 75+ 79-) 13https://github.com/crawl/crawl/commit/d1b9bddb05e6 18:59:57 03|amethyst02 07[food-unification] * 0.21-a0-209-gc400fd8: Simplify food_def. 10(3 hours ago, 2 files, 15+ 22-) 13https://github.com/crawl/crawl/commit/c400fd824c97 18:59:57 03|amethyst02 07[food-unification] * 0.21-a0-210-g59b34a8: Merge bread and meat rations. 10(3 hours ago, 51 files, 129+ 297-) 13https://github.com/crawl/crawl/commit/59b34a872405 18:59:57 03|amethyst02 07[food-unification] * 0.21-a0-211-g1e659e2: Remove royal jellies. 10(2 hours ago, 43 files, 89+ 144-) 13https://github.com/crawl/crawl/commit/1e659e220f7f 18:59:57 03|amethyst02 07[food-unification] * 0.21-a0-212-g9efcdf6: Merge fruit into rations. 10(40 minutes ago, 38 files, 122+ 180-) 13https://github.com/crawl/crawl/commit/9efcdf613cfb 19:09:10 Unstable branch on crawl.jorgrun.rocks updated to: 0.21-a0-207-g4a9efaf (34) 19:19:42 ho boy 19:19:48 qw got the obsidian axe in lair 19:20:16 aw, rip 19:20:26 can't ever get your hopes up when qw plays HuBe I guess 19:43:00 The build has errored. (food-unification - 9efcdf6 #8637 : Neil Moore): https://travis-ci.org/crawl/crawl/builds/266388397 20:55:15 elliptic: Here's a HuBe that got to Depths:4 with the fixed turn tracking. http://dpaste.com/0VEXVKA 20:55:28 I'll probably clean this up and push it tomorrow with the tabled enabled in trunk 20:55:51 Not sure if making it mandatory in the dump is necessary, probably just enable it in the default config 21:05:16 |amethyst: will we want an experimental for food unification? 21:05:16 enabling it by default for a little while sounds good 21:50:45 how does this work? for (monster_iterator mi; mi; ++mi) I'm not really familiar with this kind of approach. looks like it's a way to pass a variable that will always iterate through a list of monsters anywhere it's used later 21:51:07 i.e. shorthand foreach monster in whatever list it's using 21:51:32 !source monster_iterator 21:51:33 1/2. https://github.com/crawl/crawl/blob/master/crawl-ref/source/act-iter.cc#L164 21:52:00 yea, I was looking at that. still trying to wrap my head around it fully 21:53:04 just goes through the level's monster list 21:53:09 skipping dead monsters 21:53:14 is it per level? or the entire game? 21:53:45 or maybe only the current level *IS* the entire game, at that moment 21:53:56 you can only get other levels by loading them 21:53:59 (based on what |amethyst was explaining to me earlier) 21:54:41 so yes, the current level is all that is known at that time; to work with monsters on another level, you load it (which saves the current level) 21:54:51 then you reload the current level when done 21:55:11 there's a flag for level loading that says it's only being visited for e.g. monster movement while offlevel, so don't force redraws etc. 21:57:05 obviously this means you can't switch levels like that while iterators are current, because they'll all be invalidated 22:12:53 hm maybe we should use console dcss symbol meanings for the captcha 22:12:59 @1FuQ = player demon frog ugly thing tengu 22:19:31 well it'd certainly be easy to game if anyone wanted to 22:19:48 also vast majority of players don't know glyphs 22:19:59 rip tiles bug reporters 22:20:21 we could show tiles instead, and screw over the ~8% of players who are console 22:20:46 well we get pretty few new console players 22:21:22 just have a reload button for console and one for tiles 22:21:57 could have the captcha be a single letter and ask the player to spell the god's name 22:22:04 <|amethyst> remember that the goal is to tell whether someone is human, not whether they are sufficiently knowledgeable about Crawl 22:22:06 the only letter the captcha gives is K though 22:23:06 <|amethyst> we probably don't want to exclude "I just downloaded this program but it crashes when I try to run it" reports 22:23:35 show one of those new captchas with the multiple panes. click the panes with monsters susceptible to fire 22:23:39 what about "what is the full word for C:S in DC:SS" 22:23:49 click all panes with monsters that mutate you 22:29:15 |amethyst: so we could have an alternate that quizzes from the Jargon file if they can't pass the DCSS quiz? 22:29:45 (Don't let game devs design your captcha) 22:30:41 Beat this Contra NES stage in order to register 23:25:38 03|amethyst02 07[food-unification] * 0.21-a0-213-gcd6f74d: Fix swapped herb/carn food values. 10(32 seconds ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/cd6f74db1fba 23:38:52 -!- amalloy_ is now known as amalloy 23:44:11 imo the captcha should be something like http://photobucket.com/gallery/http://s1218.photobucket.com/user/stinksandbangs/media/Port%20Rowan%20in%20S/Resources/Calvin-TreeFort_zpsffcc6a34.jpg.html but about the dev team 23:44:49 man that link sucks. let me find a direct link 23:45:26 https://s-media-cache-ak0.pinimg.com/originals/1b/25/6d/1b256d85301d0127f747c0e6484f3d95.jpg 23:58:51 please draw your phone number on the minimap using this formicid