00:59:43 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.21-a0-421-gfc1ce30 (34) 02:20:03 Unstable branch on crawl.develz.org updated to: 0.21-a0-421-gfc1ce30 (34) 02:58:19 Windows builds of master branch on crawl.develz.org updated to: 0.21-a0-421-gfc1ce30 03:11:37 Unstable branch on crawl.beRotato.org updated to: 0.21-a0-421-gfc1ce30 (34) 03:53:42 Monster database of master branch on crawl.develz.org updated to: 0.21-a0-421-gfc1ce30 04:17:23 -!- amalloy is now known as amalloy_ 04:23:17 -!- amalloy_ is now known as amalloy 04:57:29 -!- amalloy is now known as amalloy_ 05:29:52 -!- Forty-3 is now known as Forty-Bot 08:32:56 What file contains the user-info for crawl? 08:33:05 For online-crawl that is 08:34:35 user-info? 08:35:01 oh, you mean the sqlite3 user database? 08:35:08 for logins and passwords? 08:35:39 /home/crawl/DGL/dgldir/dgamelaunch.db 08:35:55 TZer0: not sure if ^ is what you're looking for 08:36:09 dgl setup docs here: https://crawl.develz.org/wiki/doku.php?id=dcss:server:setting_up_dgamelaunch_and_webtiles 08:36:59 gammafunk: yeah, dgamelaunch.db 08:39:59 Thanks, just wanted to make sure that file was preserved. 08:40:01 It was. 08:41:42 nice 08:41:53 it's not easy to see which files where corrupted? 08:42:08 I'll start setting up the VMs this weekend 08:42:15 Maybe I'll have it up today or tomorrow 08:42:21 It'll be a lot of work. 08:43:01 May Sif Muna grant you great powers of IT magic 08:49:35 How is cloud damage appied? I'm watching simulacra standing in a flame cloud for several turns and taking zero damage. Simulacra doesn't take any actions, just wait to move closer. 09:03:58 Simulacrum isn't getting damaged by a fire cloud 13https://crawl.develz.org/mantis/view.php?id=11277 by Yermak 09:10:50 I don't have a CXC account but is there anything more to the situation? is it a cloud from conjure flame? 09:11:30 I couldn't replicate it in the most obvious way 09:16:33 amalloy_: Mods pls ban this elf sympathiser. 09:16:35 wow 09:16:45 I can't believe the lack of respect being shown to high elves 09:16:53 and by the dev team!!! 09:19:39 yermak, re shadow step splashing: https://crawl.develz.org/mantis/view.php?id=9987 09:20:03 it's on purpose that it doesn't splash 09:21:33 I didn't do anything specific to get rid of splash. I just set already existing bool parameter to true. 09:21:46 I think your change introduces a splash 09:21:50 In the function I added 09:21:55 it didn't splash before 09:22:01 And it doesn't splash now. 09:22:20 yeah, that bool should be false 09:25:35 at least based on the discussion in 2015 (in this channel) about shadow step 09:35:30 03Yermak02 {advil} 07* 0.21-a0-422-g5b1b836: Improve Maurice's message and fix #11241 10(8 days ago, 2 files, 27+ 12-) 13https://github.com/crawl/crawl/commit/5b1b8361763a 09:35:54 thanks 09:39:17 np 09:40:14 03Aidan Holm02 {advil} 07* 0.21-a0-423-g05a6460: Fix health minibars being drawn outside viewport 10(8 days ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/05a646007a25 09:41:32 03Aidan Holm02 {advil} 07* 0.21-a0-424-g639b47e: Fix webtiles section boundaries not being updated 10(2 weeks ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/639b47efb08d 09:58:16 hrm 09:58:23 do we have Yermak properly in the mailmap? 09:58:36 I have some commits as Yermak and some as Mindcrafter 09:58:46 maybe there are two email addresses (And we need to also add the second one) 09:58:57 Yermak nickname on github was snatched 09:59:02 yeah, that's fine 09:59:14 the mailmap allows us to map authors to irc names 09:59:22 I see, would be great 09:59:27 ok, let me add that then 10:00:17 Yermak: do you have an email address properly set with github? 10:00:30 Do you need my mail adress? 10:00:39 no, it's just 10:00:40 I have set it to be hidden 10:00:44 ah, ok 10:00:55 that's fine, but we need to map all these I guess 10:01:00 I hope this doesn't change over time or something 10:01:13 for instance 10:01:14 Mindcrafter <33148474+Mindcrafter@users.noreply.github.com> 10:01:16 is one 10:01:35 and 10:01:36 Yermak 10:01:38 is another 10:01:49 yeah, I'll jsut the second to match the first 10:01:54 adjust 10:02:06 thanks, I think we can add the entries for these others 10:02:23 btw you have another address in use 10:02:38 that is not a hidden address 10:02:38 I'm not sure if it's a real address 10:02:51 it uses the domain mail.ru 10:02:53 Yeah, the very first commit leaked it 10:03:24 ok, that will probably still show as just Yermak for lookup purposes anyhow 10:03:29 since that was the author name 10:05:02 aidanh: btw, you prefer that your commits list "Aidan Holm" over aidanh? 10:05:53 Is it possible to delete the mail last mentioned from history? 10:06:13 not without rebasing :-( 10:06:28 which isn't possible for master 10:06:53 gammafunk: iirc I checked that mailmap entry with him 10:07:17 ok, it's just a bit unusual to have the mailmap not match the irc nick for someone who uses irc 10:07:34 and maybe aidanh wasn't aware of that convenience 10:16:15 03gammafunk02 07* 0.21-a0-425-gd837b2d: Add Yermak to the mailmap 10(47 seconds ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/d837b2dc1564 10:29:45 hrm 10:29:54 wonder if there's a way to see a count of who merged PRs 10:34:15 03gammafunk02 07* 0.21-a0-426-g98080a9: Add EMTedronai to the mailmap 10(21 seconds ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/98080a9b70cc 10:38:38 Sooo I wanted to ask. If I want to contribute something what do I do, do I just add a pull request on github? Do I have to do something with the mantis tracker? 10:38:43 Do I have to ask someone first? 10:40:24 yeah, you can fork the repo, make a branch there, and then submit a pull request based on your branch 10:40:37 of course it's wise to actually discuss the changes you'd like to make before implementing 10:41:06 unless it's something like a bug fix or cleanup (even then it can be good to discuss the implementation, depending on what it is) 10:41:31 for anything gameplay related, you generally want to discuss the change with devs at some point 10:41:44 although you could begin with a post on GDD on tavern, but it's fine to just ask in here as well 10:43:35 Pereza0: yeah, for example if what you wanted to change was the gn thing we were just discussing in ##crawl, it's probably gammafunk (or elliptic) you'd have to convince :) 10:44:53 Alright thank you :) 10:45:25 uh oh, have to convince ell.iptic? gg 10:46:28 yes (now I'm curious about what the gn thing is, I didn't see the ##crawl discussion) 10:48:10 the idea (I think) was that gn starting skills should all be the same regardless of background 10:48:20 Basically it was me saying, that gnolls shouldn't get uneven starting skills. Its inconsistent (did they forget how to train individual skills just as they entered the dungeon?), it makes them too strong early on (eg: they start with better magic skills than a DE) at specific skills when they are meant to be generalists 10:48:44 They should just get all the XP they get for picking a background lumped up and distributed 10:48:56 Yeah it makes different background gnolls more samey 10:48:59 I like it that background actually matters a fair amount of gn 10:49:06 *on 10:50:07 Still, it makes them too strong ATM early on I think 10:50:11 they are still weaker than stuff like DD or Tr 10:50:12 And you are still limited by equipment 10:50:22 and could be nerfed more if we are just concerned about power level 10:50:40 yeah, I don't think gameplay would be improved by sending starting xp to all skills 10:51:25 if they need to be nerfed on D:1 one idea I had was that the initial training could be done as if their apts are 50% their actual apts 10:51:28 Ok. I think I will try to implement it just for laughs regardless and give it a spin 10:51:39 basically I think I view your complaint that they aren't generalists at the very start as a feature of the species, not a bug :) they get to start out as a specialist and then change over the course of the game as their skills become more even and they find more items/spells 10:52:04 Pereza0: sure, not bad to start out with a test project just to learn the codebase and experiment 10:52:36 Yeah I will 10:52:49 and part of their design was this idea that they should be "strong early", so I don't think our aim is to make them drastically weaker early on 10:52:58 Guess not being a generalist when you don't have equipment to generalize in is not so bad 10:53:59 did we ever talk about moving them to Simple category? or did we even do that? 10:54:37 oh my 10:54:40 if we *did* do that 10:54:49 all three categories would have the same number of species!!! 10:55:21 they're still in the middle one I noticed today 10:55:21 nine in each...nine times three....twenty-seven.... 10:55:45 uh oh is dcss complete now?? 10:55:54 1.0, ship it 10:55:58 I don't think they should be in the "Simple" category 10:56:00 Maybe centaurs are a better fit for simple 10:56:22 in some sense they are simple because you don't have to worry about skills but you do have to worry more about item and spell management 10:56:24 Look at me I have not contributed anything but here have my opinions 10:56:33 that is true 10:56:58 and I don't think that encouraging new players to play it is great, they should learn skill system a little bit so that they can better appreciate gn 10:57:09 there was some post I saw recently where someone was complaining about our version numbering scheme, claiming that it scares people away 10:57:18 that said, there are various things in the current species groupings that don't make much sense to me 10:57:33 !kw simple 10:57:33 Keyword: simple => HO|Mi|Mf|Gr|Dr|Ha|Tr|Gh 10:57:39 which in particular 10:57:47 !kw intermediate 10:57:48 Keyword: intermediate => Hu--|Ko|Ds|Ce|Sp|Te|DE|Og|DD 10:57:52 !kw advanced 10:57:53 Keyword: advanced => VS|Vp|Dg|Fo|Na|Op|Fe--|Ba|Mu 10:57:58 advil: just that having high version numbers is confusing, or something? 10:58:10 I think it was non-release numbers 10:58:40 well I'm not sure exactly what the groupings are supposed to accomplish - is the idea that "simple" is what new players should try first? 10:58:47 they wanted us to multiply by 10 or something so the game looked more real 10:58:50 or is it actually supposed to be a measure of "simple" 10:58:55 or of something else like "easy" 10:59:32 yeah, this was never precisely clear, what exactly they mean; Lasty was involved a lot in the initial decisions 10:59:33 I think I'd move DE to simple at least though, probably also Hu or Ce 10:59:58 having one casty-oriented species in simple makes sense to me and regardless I think DE is fairly simple/easy 11:00:35 Hu being intermediate is just a bit puzzling unless it is really supposed to be a measure of difficulty 11:00:35 since surely it's the simplest 11:00:53 on the other hand Gh and Ha both seem a little more complicated to me 11:00:54 yeah it is sort of trying to be some mix of difficulty and "conceptual simplicity" 11:01:05 Gh because eating, Ha because of weird handedness 11:01:43 I think part of the consideration was "what will new players try out" and perhaps we didn't want to encourage them to try something like Ce 11:02:16 for intermediate/advanced, I guess advanced really means "gimmicky"? 11:02:50 right, that's what it seems more to be going for, at least especially for advanced 11:03:15 Dg in advanced feels a bit weird to me anyway 11:03:19 but draconians are more gimmicky than humans by far, so it's not just about gimmicks; seems to be some kind of mix 11:04:45 I could also see moving demonspawn to simple based on them generally being considered one of the most fun species 11:04:56 and not being complicated really 11:06:03 You could make the categories "Basic", "Weird", "WTF" 11:06:44 elliptic: I don't think anyone would object very strenuously if you reorganized them 11:07:16 demonspawn being in simple feels a bit weird to me, since you have to learn what the various mutations do and what to expect when you get certain mutations (and monstrous exists) 11:07:30 possibly yes 11:08:47 is it really more complicated than Dr or Gh though? 11:08:52 no 11:09:22 well maybe a little, but certainly not very 11:10:36 I could see moving dr out of simple 11:11:03 if we drop the idea that simple has to mean "easy to be successful with" 11:11:38 people struggle a lot with DE mages because of the lack of HP and have an easier time with Dr I feel, but that doesn't have to be what simple is about 11:11:50 Dr make you think about color and the associated apt changes and breath attacks 11:11:58 deep elf make you think about less 11:12:51 anyway maybe sometime I'll try to come up with actual lists that make sense to me 11:13:02 I'd lean against Gn at simple though 11:13:09 sounds good to me 11:13:38 I haven't won one, so the species is not well-defined anyhow 11:13:59 I do wonder if they'll now be a "first win" species for new players 11:14:10 I could definitely see that happening 11:14:34 I sort of doubt it, if they are really that easy then we should probably tone them down a little more 11:14:39 probably not going to overtake Mi or Gr or HO for that any time soon, of course 11:14:52 but there are some players who start this game trying to use everything 11:14:53 yeah, it would also need a meta shift for that 11:15:21 for those players, Gn would reward them more, and Gn are certainly above-average 11:15:36 yeah I guess if you mean what will actually be common for first-win 11:15:42 Gn overtaking those others is probably unlikely 11:15:51 but I would say it would be more common than most species 11:17:55 I think it would be nice for "Simple" to have at least one race that can be played with any background. Like, begginers can go and say "ok, so what is the simple melee race - and do the same with magic or stealth" and then check out the others. Experienced players don't really need categories 11:18:01 !lg * won 1 recent s=species 11:18:03 13893 games for * (won recent): 2225x Minotaur, 1370x Gargoyle, 1194x Demonspawn, 845x Hill Orc, 642x Vine Stalker, 599x Formicid, 533x Troll, 522x Deep Dwarf, 470x Naga, 430x Merfolk, 425x Barachi, 401x Deep Elf, 383x Centaur, 309x Ghoul, 291x Gnoll, 289x Ogre, 288x Halfling, 278x Octopode, 273x Spriggan, 270x Human, 268x Mummy, 235x Tengu, 212x Vampire, 203x Felid, 203x Demigod, 191x Kobold, 131... 11:18:07 does that query do what I think it does? 11:18:12 no 11:18:17 heh 11:18:23 well maybe 11:18:33 if you think that "1" doesn't do anything 11:18:43 !lg * won recent s=species 11:18:44 13893 games for * (won recent): 2225x Minotaur, 1370x Gargoyle, 1194x Demonspawn, 845x Hill Orc, 642x Vine Stalker, 599x Formicid, 533x Troll, 522x Deep Dwarf, 470x Naga, 430x Merfolk, 425x Barachi, 401x Deep Elf, 383x Centaur, 309x Ghoul, 291x Gnoll, 289x Ogre, 288x Halfling, 278x Octopode, 273x Spriggan, 270x Human, 268x Mummy, 235x Tengu, 212x Vampire, 203x Felid, 203x Demigod, 191x Kobold, 131... 11:18:47 ah 11:19:32 the numbers pull from the list generated by the rest of the query I guess 11:19:36 Pereza0: yeah, that's why I like having deep elf in simple 11:19:51 not sure whether putting something like spriggan is a good idea as a "stealth" option 11:20:30 advil: I don't think there's an easy way to do this query unfortunately 11:20:35 so I guess to figure that out you'd need to iterate over players then? 11:20:40 you could do something like 11:20:43 !fn hashcounts 11:20:44 No user function 'hashcounts' () 11:20:45 er 11:20:54 !fn vaultallkills 11:20:54 !fn vaultallkills (kf mf args) (hashcountsummary (combinehashcounts (lghashcounts "kmap!= $kf $args s=vault(kmap)") (lghashcounts "kmap= map!= $mf $args s=vault(map)"))) 11:20:59 !fn lghashcounts 11:21:00 !fn lghashcounts (args) (apply hash (flatten (map (fn (x) (let (s (split ':' $x)) (list (car $s) (int (car (cdr $s)))))) (split '|' (!lg * $args fmt:'${.}:$(if $n_x (replace x $n_x) 1)' stub:'' join:'|'))))) 11:21:35 a similar approach would work where you returned name:crace joined with | 11:21:44 and instead of tabulating like I do there, take only the first instance 11:22:31 it's certainly possible but might be sort of slow 11:22:50 yeah, it might timeout even with a kw like recent 11:23:01 unlike that vault kill tabulation you're querying a lot of records 11:23:01 elliptic: Yeah I think something like DE would be alright in simple. Spriggan is a bit hard to say, its a bit of a weird species - maybe Ko could fit there as a species that can do the role without being weird. 11:23:13 Categories are hard I guess 11:23:14 I'd have to relearn lisp to do it too 11:23:26 stuff like KoEn or KoAs is pretty bad though 11:23:32 however I think the vault kill tabulation is slow because of map field, which isn't indexed in the db 11:23:42 I'll have to give it a shot and see if it works 11:23:46 would be neat to see stats like that 11:24:04 gammafunk: you also can't really restrict to recent 11:24:11 would be great if you can :) 11:24:12 if you want a player's first win ever 11:24:21 Yeah its pretty bad 11:24:22 elliptic: well, it would give you this data for players that started in rcent 11:24:25 *recent 11:24:28 But I think SpEn is too 11:24:37 right but you have to filter for those players somehow 11:24:37 I mean, when I started playing crawl I played lot of SpEN 11:24:46 elliptic: yeah, I've made a nick for that before 11:24:47 !lg . won recent 1 11:24:48 1/16. elliptic the Conqueror (L27 MuCK of Xom), escaped with the Orb and 6 runes on 2016-11-09 17:15:15, with 3074158 points after 121591 turns and 8:29:37. 11:24:53 using said nick does slow down the query sometimes 11:24:59 mummy first win in recent 11:25:01 but just make a nick of players who started in recent 11:25:03 And you do well at first but you hit a wall eventually if you don't branche out a bit eventually 11:25:12 gammafunk: yeah 11:25:18 IDK its hard 11:25:21 it might work, might be too slow, not sure 11:26:07 can we call the new categories: qw elliptic hyperbolic 11:26:48 need to put DD in qw then 11:27:06 and rip deep elves I guess 11:39:06 I need bracket matching in my irc client 11:45:25 man map is slow 11:46:37 !lg neil vsbe current trunk 11:46:37 58. Neil the Carver (L9 VSBe of Trog), slain by a slime creature on D:6 (cheibrodos_fertilizer) on 2017-11-04 07:48:40, with 2256 points after 4249 turns and 0:05:52. 11:46:53 !lg neil current trunk urune>0 s=char 11:46:54 10 games for neil (current trunk urune>0): 5x VSBe, 4x MiBe, DsBe 11:50:15 The build passed. (master - 98080a9 #8900 : gammafunk): https://travis-ci.org/crawl/crawl/builds/297223851 11:50:44 !lg * gid=$(join "|" (map (fn (name) (!lg $name won 1 fmt:'$game_key')) $(!lg @devteamnp won s=name join:" "))) s=species 11:50:51 that ... may not be the best way to do it 11:51:06 36 games for * (gid=78291:cao:20080013092212S|elliptic:cao:20090701000332S|Lasty:cao:20140118230835S|MarvinPA:cdo:20100016184837S|Medar:cdo:20110416210828S|Brannock:cao:20070811144100D|itsmu:cao:20090702183048S|gammafunk:cszo:20121008015229S|evilmike:cao:20090707015246S|rob:cao:20070105110758S|amalloy:cao:20140717062104S|advil:cao:20140013140525S|pointless:cao:20080616154256D|dpeg:cao:200701151438... 11:51:09 ugh 11:51:14 it worked in pm 11:51:51 oh I see, it does work, but the query is too long to see the result 11:53:40 !lg * gid=$(join "|" (map (fn (name) (!lg $name won 1 fmt:'$game_key')) $(!lg @devteamnp won s=name join:" "))) s=species title:"First species wins for @devteamnp" 11:54:02 First species wins for @devteamnp: 6x Spriggan, 6x Demonspawn, 5x Mountain Dwarf, 4x Deep Elf, 3x Hill Orc, 2x Minotaur, 2x Demigod, 2x Gargoyle, Centaur, Naga, Mottled Draconian, Merfolk, High Elf, Troll 11:55:21 pretty sure that's working? but there's no way it'll scale to 60k+ winning players 11:58:17 advil: yes, that's the problem with that approach 11:58:22 you really want to do a single query 11:59:45 you do a query with something like "won $* s=end" and use a fmt of something like "$name:$crace" (I forget the var name for the race, and you might have ot use the $char var and extract or something) 12:00:07 and then you do a split of this and a map pass over the result 12:01:17 there's no way it will every work if you do a subquery for every single user 12:01:24 *will ever 12:02:32 !fn combinehashcounts 12:02:32 !fn combinehashcounts (a b) (apply hash (flatten (concat (map (fn (k) (list $k (+ (elt $k $a) (if (elt $k $b) (elt $k $b) 0)))) (hash-keys $a)) (map (fn (k) (if (elt $k $a) (list) (list $k (+ (if (elt $k $a) (elt $k $a) 0) (elt $k $b))))) (hash-keys $b))))) 12:03:00 you will probably want a function that's a bit like this to apply to a flattened list 12:03:26 so it's a little complicated 12:03:26 not sure I'm seeing how you can get the first winning game without doing a query for each player 12:03:51 you return a single result that is basically key:value for each win 12:03:56 joined by the seperator 12:04:03 the key is the player name, the value is the race 12:04:32 from there you make it a flattened list 12:04:41 then you do a pass over the list 12:04:46 and actually, as I think about it 12:04:50 oh, it would be a list of lists of wins? 12:04:56 yeah 12:05:08 and as I think about it, passing it to has is probably what you want to do 12:05:18 hash ignores subsequent entries with the same key for you 12:05:35 so you can use that behaviour to get a hash of player with value of species 12:05:56 from there you have a hash object for which it's easy to get a pass over a list of values from the hash 12:06:07 then you count the instances in that list 12:06:31 but yeah you really want to do only one lg query for everyone, and most the logic into some sequellese functions to process that 12:06:56 even a single query over a large set of games like that can take some time, although I think this would actually be fine 12:07:03 since all involved fields are index in sequell's db 12:07:13 some fields (like the 'map' field) are not indexed and are slow 12:07:21 yeah, it shouldn't be massive on the scale of db queries 12:07:42 when I have a bit more time, I can try to write it for you, if you don't get to it first :) 12:07:58 beware, once you start going down the sequellese rabbit hole... 12:08:10 heh 12:14:36 !lairratio apoch 12:14:40 apoch has reached Lair in 169 of 1755 attempts: 10% 12:35:47 annoyingly, $crace $name etc don't work in nested formats 12:56:45 advil: add them with x= 12:56:54 then index them with $x[0], $x[1] etc 12:57:42 !lg @devteamnp x=name,crace won current trunk s=end o=. fmt:"$x[0]:$x[1]" 12:57:43 Extra fields (x=name,crace) contain non-aggregates 12:57:50 oh 12:57:54 er 12:58:31 I guess that has to be nested 12:59:06 yeah, that's the problem I hit with that 13:00:04 ah 13:00:08 !lg @devteamnp current trunk s=end,name,crace o=. pfmt:"${.}:$child" 13:00:10 493 games for @devteamnp (current trunk): 2017-11-04 07:48:40:Neil:Vine Stalker, 2017-11-04 07:42:21:Neil:Vine Stalker, 2017-11-04 07:24:40:Neil:Deep Elf, 2017-11-04 07:08:18:Neil:Deep Elf, 2017-11-04 07:05:54:Neil:Deep Elf, 2017-11-04 07:04:29:Neil:Deep Elf, 2017-11-04 07:01:05:Neil:Deep Elf, 2017-11-04 05:20:54:Neil:Deep Elf, 2017-11-04 05:02:31:Neil:Deep Elf, 2017-11-03 22:30:19:Neil:Hill Orc, ... 13:00:22 that should do it 13:01:00 I'm not sure if you can do that in a way to avoid end being in there 13:01:06 you need that one for sorting though 13:01:19 so that a player's first win is reported first 13:01:26 but I think there's another way to achieve this sorting 13:01:40 but you can include in pfmt 13:01:48 some sequellese to simply split ${.} 13:02:21 and then do like (car (cdr (split : ${.}))) 13:02:29 so 13:02:44 doesn't that sort game end before name? 13:03:03 yes you want end sorted before name 13:03:14 you wan all wins returned in order of win time 13:03:22 then you will process these by name 13:03:31 retaining only the first win listed for each name 13:03:46 I see, I was working on a different solution where you sort name,end and take the first one 13:03:51 for each name 13:04:10 that would be fine as well 13:04:42 but that's just a case of taking (car (split : ${.})) 13:04:50 instead fo (car (cdr (split ...))) 13:05:13 hrm 13:05:15 actually 13:05:19 if you sort by name 13:05:23 no I think it doesn't work 13:05:32 because within a name, what will it be sorted by 13:05:39 can you do o=name,end ? 13:05:44 if you can, then yeah that should be just fine 13:06:11 you just need to make sure that the first result for a given name is the first win 13:06:11 otherwise you could leave it unsorted and try to process by the date 13:06:28 but I think that would end up being more complicated overall 13:06:38 you can do the typicall sorting of a list using a sort function 13:06:52 and have the sort function inspect the list entry, which could look at the date 13:07:00 so I guess there are a few ways you could go about that 13:07:23 but I would prefer to not have to inspect dates directly, and just make sure the sorting gave you them in order and you take the first one 13:07:34 as I said earlier, if you make a hash using player name as key 13:07:43 the hash function will ignore keys that are repeated 13:08:09 so as long as the first key-value pair for a given play has their first win (with the species of that win as a key) 13:08:19 (hash ...) will do that work for you 13:08:40 then with this assembled hash you can simply get the list (hash-keys $h) 13:08:44 er 13:08:49 then with this assembled hash you can simply get the list (hash-values $h) I guess 13:09:03 and tally this list 13:09:25 each item in the list is a species that was the first species won for that player 13:09:51 or I should say for "a player", not "that player", since you don't care about the player's identity 13:11:06 this is the sort of thing where it'd be nice if we had more code developed to simply parse logfiles into a database and run some functions on it to extract rows 13:11:25 then we could do all this in something like python 13:21:34 Unstable branch on crawl.akrasiac.org updated to: 0.21-a0-426-g98080a9 (34) 13:52:40 -!- amalloy_ is now known as amalloy 14:31:43 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg @devteamnp won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=species title:"first won species" 14:31:47 first won species: 7x Demonspawn, 5x Mountain Dwarf, 5x Hill Orc, 5x Spriggan, 4x Deep Elf, 2x Minotaur, 2x Demigod, 2x Merfolk, 2x Gargoyle, Centaur, Naga, Mottled Draconian, Human, High Elf, Troll 14:32:21 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg @mfc won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=species title:"first won species" 14:32:23 first won species: 14x Minotaur, 7x Gargoyle, 4x Demonspawn, 3x Ogre, 2x Merfolk, Vampire, Troll, Naga, Kobold, High Elf, Deep Dwarf 14:32:37 dang 14:32:39 is that it? 14:32:42 I'm not sure 14:32:51 that's just a proof of concept still using game keys 14:33:20 but it gives different results from my earlier one for devteamnp 14:33:32 so I think I did something wrong? 14:33:44 hrm 14:33:48 didn't actually mean to do that in channel yet heh 14:33:51 heh 14:33:56 well I see one high elf there 14:33:59 that could be me! 14:34:19 looks like using game key has a problem with crace 14:35:08 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg gammafunk|advil won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"first won species" 14:35:08 first won species: Demonspawn, High Elf 14:35:08 well, those are right 14:36:01 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg @devteamnp won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"first won species" 14:36:05 first won species: 7x Demonspawn, 5x Spriggan, 5x Hill Orc, 5x Mountain Dwarf, 4x Deep Elf, 2x Merfolk, 2x Demigod, 2x Minotaur, 2x Gargoyle, Troll, Naga, Human, High Elf, Draconian, Centaur 14:36:31 that's closer to the first result! 14:37:39 may just be handling nicks differently or something 14:38:25 it's still too slow to do * with game_key, sadly, so no graphs 14:39:10 would be cool if sequell had a way to use arbitrary sets of game keys as a view besides just using one big string joined with | 14:41:36 took me a while to figure out the (apply hash (flatten (map ...))) combo 14:44:21 yeah 14:44:26 that's what I did in lghashcounts 14:44:30 not sure if you saw that 14:44:45 I saw it but didn't understand it yet :) 14:44:46 and eventually you'll reinvent >>= 14:44:59 you're already most of the way there :p 14:48:57 it doesn't time out on @greatplayers, but it doesn't work either, I wonder if there's a space in there somewhere 14:49:18 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg @centuryplayers won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"first won species" 14:49:36 first won species: 14x Minotaur, 11x Demonspawn, 9x Merfolk, 9x Deep Elf, 6x Deep Dwarf, 5x Kobold, 5x Gargoyle, 5x Hill Orc, 5x Naga, 4x Tengu, 4x Spriggan, 4x Draconian, 4x Vampire, 3x Mummy, 3x Mountain Dwarf, 2x Halfling, 2x High Elf, 2x Sludge Elf, 2x Human, Troll, Djinni, Hill Dwarf, Demigod, Ogre, Formicid 14:50:10 also, it turns out that when you use -graph it displays the query, so you can't get the graph link for queries like this 14:50:17 even with a title set 14:51:42 geekosaur: I think you joke, but just to check, sequell doesn't support >>=, right?? 14:51:52 not so far as I know 14:52:14 but (flatten (map ...)) aka flatmap aka stringly-typed [sic] >>= 14:54:30 !lg * won x=cdist(name) / !current ?: N=0 14:54:35 No games for * (won). 14:54:56 you've finally done it 14:55:14 !lg * won x=cdist(name) / !recent ?: N=0 14:55:16 No games for * (won). 14:55:43 !lg . won / !recent 14:55:44 65/74 games for gammafunk (won): N=65/74 (87.84%) 14:56:03 !lg . won recent 14:56:03 9. gammafunk the Phalangite (L27 MfAM of Trog), escaped with the Orb and 3 runes on 2017-06-11 12:18:36, with 1538107 points after 84750 turns and 5:42:55. 14:56:03 well that seems alright 14:56:18 oh 14:56:47 !lg * won s=name join:"|" / !recent ?: N=0 14:56:49 4340 games for * (won): 0/1x denaiph [0.00%]|0/1x BeReasonable [0.00%]|0/1x Hasart [0.00%]|0/1x Tymir [0.00%]|0/1x Midknight [0.00%]|0/1x heranbago [0.00%]|0/1x rhaeovh [0.00%]|0/1x tryptr [0.00%]|0/1x rmamede [0.00%]|0/1x druk [0.00%]|0/1x CakeIsGreat [0.00%]|0/1x WWWYZZERDD [0.00%]|0/1x streetpizza [0.00%]|0/1x Lianjan [0.00%]|0/1x Shimonz [0.00%]|0/1x awod [0.00%]|0/1x Tyngn [0.00%]|0/1x Skodra... 14:57:06 !lg * won s=name fmt:"${.}" join:"|" / !recent ?: N=0 14:57:08 4340 games for * (won): denaiph|BeReasonable|Hasart|Tymir|Midknight|heranbago|rhaeovh|tryptr|rmamede|druk|CakeIsGreat|WWWYZZERDD|streetpizza|Lianjan|Shimonz|awod|Tyngn|Skodra|Autgah|operationiv|Schattenjager|Milesaru|Criminal|Raziel200480|Fernandocris|foxthekitsune|Bladeofmecry|cosaga3|raguz|LupusAter|HeideQueen|kingdom960|SnubMonkey|squeakweiz|AVeryAngryQuokka|Shoko|spacecamp|trm|psycobo|Fixedtra... 14:57:15 er 14:57:41 !nick recentwinners $(!lg * won s=name fmt:"${.}" join:" " / !recent ?: N=0) 14:57:44 Mapping recentwinners => denaiph bereasonable hasart tymir midknight heranbago rhaeovh tryptr rmamede druk cakeisgreat wwwyzzerdd streetpizza lianjan shimonz awod tyngn skodra autgah operationiv schattenjager milesaru criminal raziel200480 fernandocris foxthekitsune bladeofmecry cosaga3 raguz lupusater heidequeen kingdom960 snubmonkey squeakweiz averyangryquokka shoko spacecamp trm psycobo fixedtr... 14:57:53 !lg recentwinners x=cdist(name) 14:57:58 493044 games for recentwinners: cdist(name)=1454 14:58:20 advil: I think recentwinners might be what you want for people who have their first win in a recent version 14:58:37 aha 14:58:37 you could probably do that as a subquery since I don't think your main query is that slow 14:58:54 which would allow you to dynamically choose version (or have other conditions) 14:59:02 would just take what I did for the nick there 14:59:12 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg @recentwinners won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"first won species" 14:59:13 and add somethign like name=$(!lg ...) 14:59:48 first won species: 599x Minotaur, 235x Gargoyle, 130x Demonspawn, 74x Hill Orc, 64x Vine Stalker, 44x Deep Dwarf, 40x Formicid, 33x Troll, 31x Deep Elf, 23x Merfolk, 22x Centaur, 19x Naga, 18x Ghoul, 16x Octopode, 15x Mummy, 14x Spriggan, 14x Draconian, 12x Felid, 11x Barachi, 10x Human, 9x Halfling, 9x Ogre, 8x Gnoll, 7x High Elf, 7x Tengu, 7x Demigod, 4x Vampire, 3x Kobold, Frog 15:01:40 Frog!!!!! 15:01:49 I want to know who got their first win with a frog 15:01:52 !lg * won species=Frog 15:01:57 4. bazoo the Slayer (L27 FrSk of Dithmenos), escaped with the Orb and 3 runes on 2017-01-08 22:47:47, with 1548154 points after 83277 turns and 6:20:06. 15:02:00 wow 15:02:06 !lg * won species=Frog s=name 15:02:07 4 games for * (won species=Frog): bazoo, fakedynast, ParticlePhysics, removeelyvilon 15:02:11 !lg bazoo 1 won 15:02:12 1/37. bazoo the Axe Maniac (L27 HOMo of Hepliaklqana), escaped with the Orb and 3 runes on 2016-11-23 04:44:46, with 1565739 points after 85743 turns and 4:04:51. 15:02:21 !lg fakedynast 1 won 15:02:21 hm 15:02:22 1. fakedynast the Merry Frog (L27 FrHu of Gozag), escaped with the Orb and 4 runes on 2016-12-29 22:11:05, with 2298501 points after 73273 turns and 4:52:09. 15:02:24 aha 15:02:29 we have found the fake dynast 15:02:45 hrm 15:02:50 we need to look at current trunk maybe 15:02:55 to see about gnolls 15:03:01 but it's not going to be very good results 15:03:04 was barachian frog for like a day? 15:03:05 too few wins 15:03:10 longer I think 15:03:17 !lg * frog 1 15:03:22 er 15:03:23 !kw frog 15:03:24 Keyword: frog => race=barachian|barachi 15:03:28 !lg * race=frog 1 15:03:31 !lg * race=frog 15:03:36 yeah, probably most new players don't play trunk much 15:03:36 1/26141. CDDA the Covered (L1 BaFi), quit the game on D:1 (zelgadis_glass_arrival_small) on 2017-01-06 00:28:25, with 0 points after 1 turn and 0:01:14. 15:03:37 rip sequell 15:03:41 1/390. cbrotest the Skirmisher (L1 FrBe of Trog), slain by a giant cockroach on D:1 on 2016-12-28 23:36:13, with 0 points after 90 turns and 0:00:03. 15:03:42 390. Munq the Skirmisher (L3 FrBe of Trog), slain by a rat on D:1 on 2017-05-20 15:06:54, with 31 points after 1050 turns and 0:02:41. 15:03:55 maybe it was in an experimental then 15:03:58 yeah that could be a late transfer or something 15:03:59 hrm 15:04:05 !lg * race=frog 1 x=file 15:04:09 1/390. [file=cbro/crawl/meta/frogs/logfile] cbrotest the Skirmisher (L1 FrBe of Trog), slain by a giant cockroach on D:1 on 2016-12-28 23:36:13, with 0 points after 90 turns and 0:00:03. 15:04:13 ah yeah 15:04:17 that's experimental 15:04:21 <|amethyst> !lg * race=frog s=file 15:04:22 390 games for * (race=frog): 390x cbro/crawl/meta/frogs/logfile 15:04:38 <|amethyst> !kw frog race=barachian|barachi|frog 15:04:40 Defined keyword: frog => race=barachian|barachi|frog 15:08:23 !cmd !recentfirstwinspecies !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg * name=$(!lg * won s=name fmt:"${.}" join:"|" / !recent ?: N=0) won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"Recent first win species" 15:08:24 Defined command: !recentfirstwinspecies => !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg * name=$(!lg * won s=name fmt:"${.}" join:"|" / !recent ?: N=0) won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"Recent first win species" 15:08:50 could no doubt make that more customizable but I might be done with it for now 15:08:58 !recentfirstwinspecies 15:09:26 oh yeah that's easy to customize 15:09:32 I can add use of $* 15:09:54 !${*:-recent} 15:10:03 I think that might work, I can do that in a bit 15:10:09 hm it wasn't timing out in PM 15:10:28 90s limit exceeded: killed !recentfirstwinspecies 15:10:39 !recentfirstwinspecies 15:11:31 sequell can vary sometimes 15:11:45 and some queries can make it slow for a bit I think 15:11:47 !lg 15:11:55 yeah it's returning slowly right now 15:11:58 776. gammafunk the Phalangite (L27 MfAM of Trog), escaped with the Orb and 3 runes on 2017-06-11 12:18:36, with 1538107 points after 84750 turns and 5:42:55. 15:12:09 90s limit exceeded: killed !recentfirstwinspecies 15:12:13 ah well 15:12:30 can use the nick to speed things up, so it's still useful 15:12:42 will be neat to look at that data in a little more detail 15:13:14 another thing that might help 15:13:21 is to not use game key, which may not be indexed 15:13:55 oh...yeah, it would probably be faster just to add up the species directly, I had this dream of using -graph with it 15:14:08 which I guess is foiled by the interaction with really long queries 15:14:17 yeah sadly that won't work 15:14:22 you can't graph from sequellese results 15:14:44 if the outer command is !lg you should be able to, right? 15:15:00 oh I see 15:15:01 hrm 15:15:10 yeah I guess with that approach you ...oh 15:15:13 that 15:15:32 oh that's why 15:15:35 you are doing 3 queries 15:15:39 with that outer query 15:15:46 you could skip that one entirely 15:15:55 I guess that's useful for graphing purposes like you say 15:15:57 !lg * game_key=$(join "|" (hash-keys (reverse (apply hash (flatten (map (fn (game) (cdr (split "#" $game))) (split " " (!lg @devteamnp won o=rend s=rend,name,game_key pfmt:"${.}#${child}" fmt:"${.}" join:" ")))))))) s=crace title:"Recent first win species" -graph 15:16:38 that's a good general trick though for graphs I guess 15:16:42 40 games for * (game_key=Lasty:cao:20140118230835S|elliptic:cao:20090701000332S|Neil:cao:20110729235137S|amalloy:cao:20140717062104S|Medar:cdo:20110416210828S|gammafunk:cszo:20121008015229S|itsmu:cao:20090702183048S|advil:cao:20140013140525S|MarvinPA:cdo:20100016184837S|dpeg:cao:20070115143812S|brannock:cjr:20160801013939S|PleasingFungus:cao:20131024174934S|pleasingfungus:cjr:20160409233617S|worms... 15:16:59 except for that problem 15:16:59 haha 15:16:59 the graph link gets cut off 15:16:59 yeah set a title 15:16:59 there is a title set 15:17:00 it seems to ignore that for -graph 15:17:10 hmmm 15:17:24 that is indeed a problem then 15:17:24 maybe worth fixing in sequell 15:17:28 yeah 15:18:19 they used to call web browsers "diamond-studded shovels" 15:18:34 implying that while they were powerful tools, they were fundamentally primitive for their task 15:18:40 I wonder what you would call sequell.... 15:18:44 heh 15:18:50 <|amethyst> swiss-army toothpick 15:19:01 it doesn't lack for features 18:27:07 -!- mekhami is now known as notmekhami 18:27:45 -!- notmekhami is now known as mekhami 21:40:07 -!- ProzacElf_ is now known as ProzacElf 21:41:18 -!- Dracunos_ is now known as Dracunos 22:36:03 -!- 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. 22:36:05 -!- 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