00:00:33 -!- ais523 has joined ##crawl-dev 00:03:49 -!- edlothiol has joined ##crawl-dev 00:06:49 -!- ais523 has quit [Ping timeout: 272 seconds] 00:13:16 -!- ainsophyao has quit [Remote host closed the connection] 00:14:19 -!- st_ has quit [] 00:51:22 -!- jeanjacques has quit [] 00:56:50 -!- edlothiol has quit [Ping timeout: 244 seconds] 01:03:07 Praying over remove curse scroll for Ashenzari also chops corpses. (https://crawl.develz.org/mantis/view.php?id=5632) by nubinia 01:05:41 -!- heteroy__ has joined ##crawl-dev 01:05:47 -!- heteroy has quit [Ping timeout: 246 seconds] 01:05:54 -!- heteroy__ is now known as heteroy 01:06:08 -!- dtsund has quit [Ping timeout: 244 seconds] 01:13:58 damn, another crash 01:15:33 -!- ais523 has joined ##crawl-dev 01:29:34 -!- Pingas has quit [Read error: Connection reset by peer] 01:29:37 -!- ais523 has quit [Ping timeout: 245 seconds] 01:35:13 -!- ais523 has joined ##crawl-dev 01:39:38 -!- dtsund has joined ##crawl-dev 01:41:57 -!- Heteroy_ has quit [Ping timeout: 260 seconds] 01:44:12 -!- Sombrero_Mott has quit [Read error: Connection reset by peer] 01:44:27 -!- Sombrero_Mott has joined ##crawl-dev 01:46:39 -!- jeanjacques has joined ##crawl-dev 01:48:09 -!- nrook has quit [Quit: ChatZilla 0.9.88.2 [Firefox 12.0/20120420145725]] 02:11:07 -!- Heteroy_ has joined ##crawl-dev 02:27:25 -!- Heteroy_ has quit [Ping timeout: 272 seconds] 02:36:11 -!- dtsund has quit [Quit: dtsund] 02:49:32 -!- rast has quit [Quit: ChatZilla 0.9.88.2 [Firefox 12.0/20120420145725]] 02:55:06 -!- jle_ has joined ##crawl-dev 02:56:44 -!- Zaba_ has joined ##crawl-dev 02:57:07 -!- Chousuke has joined ##crawl-dev 02:57:27 -!- Zaba has quit [Ping timeout: 248 seconds] 02:57:27 -!- jle has quit [Ping timeout: 248 seconds] 02:57:27 -!- Chousuke_ has quit [Ping timeout: 248 seconds] 02:57:42 -!- kilobyte has quit [Ping timeout: 248 seconds] 02:58:27 -!- kilobyte has joined ##crawl-dev 03:00:04 -!- __duncan has quit [Remote host closed the connection] 03:00:23 -!- __duncan has joined ##crawl-dev 03:08:04 -!- ais523_ has joined ##crawl-dev 03:08:10 -!- ais523_ has quit [Changing host] 03:08:11 -!- ais523_ has joined ##crawl-dev 03:08:11 -!- ais523 has quit [Disconnected by services] 03:08:23 -!- ais523_ is now known as ais523 03:12:23 -!- ais523 has quit [Read error: Connection reset by peer] 03:12:28 -!- ais523_ has joined ##crawl-dev 03:12:35 -!- ais523_ is now known as ais523 03:15:16 -!- Ragdoll has joined ##crawl-dev 03:16:23 -!- oberste1n has joined ##crawl-dev 03:16:53 -!- alefury has joined ##crawl-dev 03:21:24 -!- Fa has joined ##crawl-dev 03:21:32 -!- Mottie has quit [*.net *.split] 03:21:33 -!- oberstein has quit [*.net *.split] 03:21:36 -!- oberste1n is now known as oberstein 03:25:18 -!- Zao has joined ##crawl-dev 03:31:42 -!- Zao has left ##crawl-dev 03:38:51 galehar: https://github.com/msysgit/msysgit/wiki/UpdatingMSysGit 03:39:38 i dont think thats any less complicated than just deleting your installation and starting fresh, but looks like a full reinstall is not necessary 03:41:40 !tell elliptic ugh, d7a33adb breaks milestones again: you get that redundant "Entered a Sewer (Sewer)" and so on again. Also, place and br/lvl are out of sync. 03:41:41 kilobyte: OK, I'll let elliptic know. 03:42:22 could there just be a branch for each sprint map? 03:42:59 that would make the bot messages about sprint games much more relevant, and probably would solve any problems with multi-level sprints 03:43:12 or at least some 03:58:15 -!- absolutego_ has joined ##crawl-dev 04:01:34 swinepaste the Hawkeye (L27 KoAs) ASSERT(branches[place.branch].numlevels > 1 || !diff) in 'mon-place.cc' at line 537 failed on turn 133368. (Abyss) 04:01:38 god dammit 04:04:46 bleh, just managed to screw a manual CDO update 04:05:02 thank Yog-Sothoth for git-reflog 04:05:52 would be nice to see what triggered that assertion for swinepaste (I added some extra data there) 04:06:41 * due waves kilobyte. 04:06:59 kilobyte: that's probably the third crash today, and they seem more common in the abyss 04:07:42 Unstable branch on crawl.develz.org updated to: 0.11-a0-1669-g0d713f4 (33) 04:07:47 due: about that sdl-sound thingy, do you think adding coordinates to messages so we can have surround sound would be a crazy idea? 04:08:00 kilobyte: not at all! :D 04:08:13 kilobyte: in fact, it might help people using screen-readers. 04:08:33 (games without sound would want "in the northwest" for out-of-LOS messages so there's no extra information) 04:09:20 there are very few such messages: "You hear a shout", "You hear a splash" 04:09:39 * due nod. 04:27:24 swinepaste the Hawkeye (L27 KoAs) ASSERT(branches[place.branch].numlevels > 1 || !diff) in 'mon-place.cc' at line 537 failed on turn 136834. (Abyss) 04:27:36 hrm 04:31:50 can someone add ??topic[$] to henzell? 04:32:12 it would be very useful for checking for new stuff in ??badforum etc. 04:40:32 -!- mikee_ has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Nine out of ten l33t h4x0rz prefer it] 04:57:40 -!- alefury has quit [Read error: Connection reset by peer] 05:02:41 oh heck, indeed, bad forum is bad 05:06:11 Portals: 05:06:12 Buggy: Abyss****** 05:06:15 what does this mean exactly? 05:06:23 (below it in the list there's also ": Abyss************") 05:06:58 interestingly, the same screen lists a bunch of shops in the abyss 05:06:58 "Abyss: ((((((((((((((((" 05:08:48 -!- Sequell has quit [Ping timeout: 250 seconds] 05:12:46 -!- Sequell has joined ##crawl-dev 05:42:56 -!- Textmode has quit [Ping timeout: 255 seconds] 05:48:32 -!- alefury has joined ##crawl-dev 05:54:43 -!- ark____ has joined ##crawl-dev 05:57:47 -!- Zaba_ is now known as Zaba 06:03:45 -!- headz0ne is now known as headzone 06:10:23 -!- edlothiol has joined ##crawl-dev 06:11:29 I like the idea of adding source direction to sounds 06:11:48 would make searching for timed bazaar less random 06:12:01 would need to reduce the timer to compensate of course :) 06:15:04 cataclysm has direction for offscreen sounds 06:15:06 it works well 06:15:58 galehar: uhm, now that's one part where it would detract a bit 06:16:04 ie, the mad labyrinth chase 06:16:35 it can still be mad if the timer is short. Just less random. 06:17:39 swinepaste the Imperceptible (L27 KoAs) ASSERT(smc) in 'mon-util.cc' at line 2506 failed on turn 157896. (Abyss) 06:17:57 that time I was fighting a zombie kraken and I think it was retreating, if that matters 06:18:05 I mean, in general, non-mono sound is a great thing: if you fight a bunch of enemies to the left, it sounding different than a bunch of enemies from the right, but I don't have big balance changes on mind 06:18:28 but it's more interesting for monsters' sound. If "you hear shouts coming from the north" 06:18:36 G-Flex: retreating far enough to be partially off the map after an Abyss shift? 06:18:53 galehar: yeah, directional shouts are good 06:18:54 hard to say, there might have been smoke in the way, I didn't see exactly where it was 06:19:03 I was fighting the tentacles 06:19:07 I think the effect on tactical decisions is more interesting than without directions 06:19:51 I'm not sure how webtiles can handle directional sound 06:20:33 kilobyte: if giving directions for timed portals is bad, we can remove it and says that the sounds echoes around you or something. 06:20:39 remote console surprisingly isn't a big problem, except for ttyrecs 06:20:59 really? How does that work? 06:21:00 galehar: ooh, even better. They could work differently, too. 06:22:40 I think it would be better to have an option to also have sound direction in messages. For soundless plateform, or just players who just want to play without sounds 06:22:44 -!- syllogism has joined ##crawl-dev 06:23:48 galehar: since you would need to have a copy of the sounds locally, it could be done either as a ssh wrapper or a proxy (the latter is clumsier, but easier for Windows users). The data would be given in in-band terminal codes, if the client negotiated that capability. Breaks ttyrecs, though. 06:24:12 galehar: obviously, yeah. If a minority has sound, they shouldn't have an advantage. 06:27:18 odjn (L15 MiMo) ERROR in 'mon-movetarget.cc' at line 109: ZotDef: monster it failed to pathfind to (39,48) (the Orb) (D:1 (ZotDef)) 06:27:51 for all in-LOS messages, the source of the sound is obvious or irrelevant, so there's no loss. "You hear a shout" can have "from the northwest" added. Labyrinths can echo all around. 06:30:06 kilobyte: haven't looked into the html5 sound apis at all yet, but it looks like they support positional audio 06:31:05 odjn (L15 MiMo) ERROR in 'mon-movetarget.cc' at line 109: ZotDef: monster it failed to pathfind to (39,48) (the Orb) (D:1 (ZotDef)) 06:31:07 though I don't know how good the browser support there is 06:37:35 -!- ais523 has quit [Ping timeout: 246 seconds] 06:39:00 we're only at the wild brainstorming phase yet 06:52:11 -!- ais523 has joined ##crawl-dev 07:07:42 -!- ainsophyao has joined ##crawl-dev 07:35:57 -!- G-Flex has quit [Read error: Connection reset by peer] 07:42:55 -!- G-Flex has joined ##crawl-dev 07:52:49 -!- ussdefiant_ has joined ##crawl-dev 07:55:02 -!- ussdefiant has quit [Ping timeout: 265 seconds] 07:55:12 -!- ussdefiant_ is now known as ussdefiant 08:01:43 -!- Wensley has joined ##crawl-dev 08:01:53 ??suppression 08:01:53 I don't have a page labeled suppression in my learndb. 08:06:03 !learn add suppression While under this effect, all magical item properties that require the item to be equipped are nullified. Evocables that must be equipped in order to evoke them are rendered inoperable. Effects that occur when items are equipped/unequipped (vampirism, distortion, etc.) happen as usual. 08:06:03 suppression[1/1]: While under this effect, all magical item properties that require the item to be equipped are nullified. Evocables that must be equipped in order to evoke them are rendered inoperable. Effects that occur when items are equipped/unequipped (vampirism, distortion, etc.) happen as usual. 08:06:32 really tempted to rename it to "mundanity" 08:07:57 hrm, it's still not enabled. You don't want me to edit the changelog twice, do you? 08:08:07 !learn add suppression Consumables (including wands) do not need to be equipped to use them, and are therefore unaffected. 08:08:07 suppression[2/2]: Consumables (including wands) do not need to be equipped to use them, and are therefore unaffected. 08:08:52 kilobyte: I'll be sure to have the terminology nailed down before these things are ready to be in the game :P 08:10:18 !learn edit suppression[2] s/$/. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. 08:10:19 suppression[2/2]: Consumables (including wands) do not need to be equipped to use them, and are therefore unaffected.. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. 08:10:22 fff 08:10:37 !learn edit suppression[2] s/\.\./. 08:10:37 suppression[2/2]: Consumables (including wands) do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. 08:11:38 "moth of mundanity" seems a bit clunky though 08:12:18 let's try some synonyms 08:13:41 "banal moth" 08:13:44 "sober moth" 08:13:52 <|amethyst> "moth of annulment" 08:13:57 <|amethyst> "interdiction moth" 08:14:05 <|amethyst> none of which are quite right 08:14:22 I like the idea of a moth divorce lawyer 08:14:49 annulment at least sounds good 08:14:57 <|amethyst> Make it ring-shaped as an homage to David Foster Wallace 08:15:38 <|amethyst> (_Infinite Jest_ has "annular energy" as a minor plot device; it seems to be based on a pun between "annular" and Fr. "annuler", "cancel" 08:16:49 ooooo 08:16:53 "banausic" 08:16:56 that's a new word 08:17:31 I sort of love it 08:18:13 <|amethyst> it has a bit of an implication of "mechanical" 08:18:16 "pedestrian moth" 08:18:26 <|amethyst> "I'm walkin' here!" 08:18:53 I kind of like "moth of mundanity" 08:18:54 Keskitalo: You have 1 message. Use !messages to read it. 08:18:57 !messages 08:18:59 (1/1) galehar said (6d 3h 38m 29s ago): I'd like your opinion on mouse control changes: https://crawl.develz.org/tavern/viewtopic.php?f=9&t=4433 08:19:37 moth of mundanity might win because I think "mundanity" might just be the best name for the effect 08:19:40 <|amethyst> oh, wow, "banausic" and "banal" are etymologically completely unrelated 08:19:55 which isn't to say that we couldn't name the effect one thing and the moth a completely different thing 08:20:16 I don't think people will fail to see the relationship 08:20:32 Urf, that's an awesome thread, but I lack the brainpower to make comments.. 08:21:18 Keskitalo: Ideally we should have modes like classic, tablet, advanced. A mode has a set of defaults, but everything is configurable. 08:21:43 wensley 08:21:52 what was that thing you were making fun of me for that i said should be changed 08:21:55 i forget what it was 08:22:45 Pacra: I make fun of a lot of people, you'll have to be more specific 08:22:58 if it was in this channel you could check out the logs 08:23:08 nope in ##crawl 08:23:21 perhaps about brand and misc item prices in shops 08:23:29 nope 08:23:33 hmrmhmm 08:24:09 Pacra: next time you have an idea add it to ??pacra so you don't forget 08:24:13 Wensley: does the moth prevents the use of rods and decks then? 08:24:39 galehar: that's what I wanted to talk about, I think definitely rods, and definitely decks for non-nemelexites, but not sure about nem worshippers 08:25:07 I'm sort of inclined to block them as well 08:25:13 but interested in other opinions 08:25:15 Wow, so I can't sign up to edit the wiki - is that something someone in here can assist with? 08:25:23 <|amethyst> phyphor: which wiki? 08:25:37 chasoforge (badwiki) 08:25:53 wanted to neaten up Elynae's guide to try and make badwiki notasbadwiki 08:25:56 <|amethyst> I don't think any chaosforge wiki admins frequent IRC 08:26:04 well, screw them, then 08:26:09 do they just not allow registration anymore 08:26:13 <|amethyst> Elynae does of course 08:26:15 apparently not 08:27:25 err, apparently they don't allow registration 08:27:27 galehar: I also wanted to talk about what exactly enchantments are, and whether we ought to block them. the effect won't get rid of the base AC from your armor or the base dam of your weapon, but should it negate your enchantments? 08:27:29 <|amethyst> phyphor: the front page has an email link for creating an account 08:27:48 <|amethyst> phyphor: As long as your email doesn't look like it's from a bot it should be good 08:28:19 <|amethyst> I'm half tempted to give you my account since I don't use it anymore 08:28:21 my email address is notreallyaspambothonest@ so I should be OK 08:28:27 <|amethyst> but you probably don't want to be "Neil" :) 08:29:01 <|amethyst> Now, if Mu wanted my account 08:29:11 <|amethyst> I'd be kind of obliged :) 08:29:22 !learn add suppression Open issues: whether to block the use of decks by nemelexites; whether weapon/armor enchantments are sufficiently magical to be blocked 08:29:23 suppression[3/3]: Open issues: whether to block the use of decks by nemelexites; whether weapon/armor enchantments are sufficiently magical to be blocked 08:29:50 ??suppression[2] 08:29:50 suppression[2/3]: Consumables (including wands) do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. 08:30:31 !learn edit suppression[2] s/$/ The base properties of weapons and armor (dam, AC, etc.) are unaffected. 08:30:32 suppression[2/3]: Consumables (including wands) do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. The base properties of weapons and armor (dam, AC, etc.) are unaffected. 08:30:35 "like silence, only worse" 08:30:48 only if by worse you mean really awesome 08:30:54 well, yeah 08:31:54 "basal moth" 08:32:28 <|amethyst> sacrifcice for two black mana? 08:32:40 you can neutralize a basal moth with an acid blob 08:32:58 is basal moth a mtg card 08:33:13 <|amethyst> Basal Thrull: http://magiccards.info/fe/en/6.html 08:33:21 <|amethyst> not a moth 08:33:45 Wensley: I don't think enchantment should be affected 08:34:00 good enough for me 08:34:14 !learn edit suppression[3] s/;.*// 08:34:14 suppression[3/3]: Open issues: whether to block the use of decks by nemelexites 08:34:16 also, you want to edit [2] to remove consumables. Decks are consumables and are blocked. 08:34:24 good point 08:34:28 I'll be more explicit 08:34:51 <|amethyst> lantern of shadows? 08:35:05 you need to wield it right? 08:35:08 so blocked 08:35:08 !learn edit suppression[2] s/.*do/Potions, scrolls, and wands do 08:35:08 suppression[2/3]: Potions, scrolls, and wands do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. The base properties of weapons and armor (dam, AC, etc.) are unaffected. 08:35:14 wield = blocked 08:35:21 that's just the simplest thing to convey 08:35:30 <|amethyst> does that work yet? 08:35:38 <|amethyst> blocking lantern of shadows I mean 08:35:41 |amethyst: not wielding things, just armor effects at the moment 08:35:46 <|amethyst> aha 08:35:53 go spawn the milk chocolate 08:36:07 it and the dark chocolate are basically everything that is blocked right now 08:36:12 which is probably why it should prevent nem users from using their draw one ability 08:36:12 <|amethyst> 1learn add innuendo 08:36:21 *shouldn't 08:37:04 <|amethyst> I forget, do any of Nemelex's abilities temporarily wield the deck? 08:37:23 So it's like a curse on your wielded weapon, only not 08:37:28 I don't think so. 08:37:54 |amethyst: I believe you can nem even with a cursed weapon 08:38:27 or a cursed deck 08:38:28 ;) 08:38:58 <|amethyst> did we decide what happens with temp brands? 08:39:17 <|amethyst> I guess with the new rule they wouldn't do extra damage etc, since they're on a wielded item 08:39:22 !learn edit suppression[2] s/.$/ and enchantments from scrolls of enchant foo are preserved. 08:39:22 suppression[2/3]: Potions, scrolls, and wands do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. The base properties of weapons and armor (dam, AC, etc.) are unaffected and enchantments from scrolls of enchant foo are preserved. 08:39:32 galehar: Yeah 08:39:44 <|amethyst> What about Tukima's Dance? 08:40:10 |amethyst: right, they'd be castable and they'd technically be on your weapon, but you wouldn't get the status light nor any effect until you left the aura 08:40:32 <|amethyst> Wensley: good good 08:40:33 TD is just a spell, wouldn't block it, but any weapons in the aura would have their brands suppressed 08:40:57 <|amethyst> so the animating effect wouldn't be suppressed? 08:41:01 nope 08:41:19 <|amethyst> sounds much easier to implement that way :) 08:41:26 I still find "mundane moth" amusing. Crawl's moths are insane, maybe this one is really boring on the moth planet 08:41:39 players can figure out it's not all that mundane within about 3 seconds, too 08:41:40 haha 08:41:43 -!- headzone has quit [Ping timeout: 276 seconds] 08:41:47 I might just do mundane moth 08:41:55 -!- ToBeFree has joined ##crawl-dev 08:41:59 -!- headzone has joined ##crawl-dev 08:42:02 really the only object is the conflation with that monster that can never spawn 08:42:13 also I really love giving innocuous names to dangerous things 08:42:29 roguelikes enjoy understatement, too. See the unremarkable dungeon in adom... 08:42:44 <|amethyst> mundane moth, boring beetle, .... dull dhole? tiresome tarantella? 08:42:51 hahaha 08:43:52 mundane moth is a great name 08:44:09 <|amethyst> perfectly normal beast 08:44:29 unexceptional ungulate 08:44:47 actually, i feel we could really use an imaginary monster somewhere 08:45:24 what about 'imaginary enemy', as a new zot monster? 08:45:31 how would that work? 08:46:03 as a pun, very well; as a monster, who knows 08:47:01 maybe it's very powerful, follows you around, but it disappears from the map (not just invis) if there are any other enemies around 08:49:29 <|amethyst> make it like the greater hell beast 08:49:45 galehar, kilobyte: re sound: I doubt i would ever want to play crawl with sound (or music). It would be hard to find a fitting sound for everything that "needs" a sound. And if you use sound effects from many different sets you wont end up with a coherent feel. Using directional sound in some messages would be very nice, though, and I think it would work fine for labs with a slightly shorter... 08:49:46 ...timer (people who want to go into a lab read mapping anyway if they have it, this would make this decision less trivial). 08:50:43 <|amethyst> lots of people would never want to play crawl with tiles either :) 08:50:55 directional sound messages are just a cool idea anyway 08:51:09 <|amethyst> yeah 08:51:09 it would be a bit of a buff for the player, but it would be fun, which I think is more important 08:51:59 <|amethyst> sound does pathfinding, right? 08:52:15 sound goes through walls now 08:52:20 so im not really sure 08:52:27 well both 08:52:29 <|amethyst> I mean, in the situation: 08:52:31 <|amethyst> ... 08:52:33 <|amethyst> ^#@ 08:53:04 it will be loud, the person who implemented it is probably not stupid 08:53:09 <|amethyst> would the bulk of the sound from the alarm trap come through the wall, or would it come from NE "around" the wall 08:53:31 i kind of think alarm traps should do more than make sound 08:53:44 afaik theres a tool that lets you look at loudness 08:53:44 <|amethyst> well, pretend the ^ is a shouting monster then 08:53:54 they are considered magical traps, they should alert monsters to your position. maybe just intelligent ones, detect creatures-style 08:53:55 i have no idea where it is and how to use it, though 08:54:03 |amethyst: it would be much easier to implement if we make it comes right from the trap. 08:54:42 it would be quite easy actually 08:54:46 <|amethyst> galehar: what happens currently? do you get wall-attenuated sound in that case, or unattenuated but further away? 08:55:25 <|amethyst> presumably not the sum over all paths, since that would be kind of inefficient to compute 08:55:30 you get both. You just hear the sound, there's no notion of how loud and from where 08:55:53 what if you were a monster? 08:56:19 monster's already know the sources of sounds 08:56:21 <|amethyst> galehar: in terms of whether you can hear it at all? let's say the noise is quiet enough that one wall reduces it to being unhearable 08:57:40 <|amethyst> oh, I see... it looks like it does a BFS 08:58:07 |amethyst: if the message tells you from where the sound reaches you instead of the direction of the source, it would be both harder to implement, and useless/confusing to players 08:58:38 <|amethyst> I guess that's true 08:59:11 <|amethyst> felids, btw, should be better than most races at determining the direction from which sound came 08:59:28 <|amethyst> since they have pivoting ears and all that 08:59:55 could also be a mutation 09:00:50 <|amethyst> not sure how to do that, though, without making the player remember what "north by northwest" means 09:01:31 what about how sound travels in water? 09:02:00 |amethyst: let's keep it simple and approximate it to the 8 directions 09:04:18 could add a marker at the edge of los for exact directions 09:04:38 just appending " from dir" to msg at shout.cc:542 should do it. Anyone up for implementing? 09:04:41 need to have a raytracer in our sound engine 09:04:44 could be a rather interesting mutation 09:04:54 alefury: do you have a compass and GPS in your ears? Let's keep it simple 09:05:05 i mean for felids/mutated people 09:05:23 i dont have a device for projecting a repulsive field in my body, but its still a crawl mutation 09:05:30 let's start by implementing the simple version for everyone 09:05:37 i can probably do that 09:05:44 it sounds way easier than those fucking portal timers 09:05:54 indeed :) 09:06:14 can you make it an implementable so i dont forget? 09:06:25 sure 09:06:38 also, gas traps dont have a tile 09:06:45 Duckman the Archer (L10 CeHu) ASSERT(branches[place.branch].numlevels > 1 || !diff) in 'mon-place.cc' at line 537 failed on turn 10426. (Abyss) 09:06:52 unless |amethyst is already coding it 09:06:59 |amethyst: are you? 09:07:39 ohhhh, bunny ears Ds facet 09:07:40 -!- jeanjacques has quit [] 09:07:45 <|amethyst> I am not 09:07:54 the possibilities! 09:08:17 ??suppression[2] 09:08:18 suppression[2/3]: Potions, scrolls, and wands do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. The base properties of weapons and armor (dam, AC, etc.) are unaffected and enchantments from scrolls of enchant foo are preserved. 09:09:13 !learn edit suppression[2] s/$/ Nemelexites can still use Draw One. 09:09:13 New text exceeds the maximum length of 350 characters, aborting. 09:11:03 can anyone else think of any gray areas with suppression that might need clarification 09:11:54 ??suppression 09:11:56 suppression[1/3]: While under this effect, all magical item properties that require the item to be equipped are nullified. Evocables that must be equipped in order to evoke them are rendered inoperable. Effects that occur when items are equipped/unequipped (vampirism, distortion, etc.) happen as usual. 09:12:11 why would a wand work, but a rod not work? 09:12:25 Wensley: right now it boils down to "supresses the effect of equipped magical items" 09:12:36 am I right? If so, this is pretty straightforward 09:12:38 G-Flex: because one needs to be equipped and one does not. the better reason is because one is infinite use and one is not. 09:12:48 but the former is easier to coney 09:12:51 convey 09:13:14 well, "equipped magical items" is a good rule. Nice and simple. 09:13:17 You'd have to cover rods 09:13:17 we never want to discourage people from using consumables 09:13:35 decks seem like a difficult case. I see they were brought up already 09:13:49 evilmike: consensus is block them unless you're using draw one 09:13:52 I suppose it would make sense to suppress wielded decks but still allow the nemelex power 09:13:53 yeah 09:14:00 which by consensus I just mean galehar (I really don't care) 09:14:29 leaving draw one operable seems more reasonable anyway 09:14:38 sort of like nemelex is drawing for you 09:14:40 would it remove the +mp from wielded staves? 09:14:42 (of power) 09:14:47 yeah 09:14:50 <|amethyst> draw one but also the other nemelex abilities 09:14:51 it's just a stick inside the field 09:15:07 magical armor just becomes metal plates and leather bands 09:15:15 and rings? 09:15:15 <|amethyst> can you be killed by suppression of +HP ? 09:15:26 (would it stop hunger+/-) 09:15:28 |amethyst: that's something I'm curious about 09:15:39 I would expect it to take off maxhp 09:15:40 |amethyst: by which I mean I'm not sure that suppressing HP works at all atm 09:16:00 I just wrote some ideas about deep trolls btw (also includes proposal to remove rock trolls) 09:16:02 https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:monster:creatures:deep_trolls 09:16:42 kind of thinking of them as something like deep orc bands 09:16:58 phyphor: rings too. it stops all negative and positive effects 09:17:12 there's already code for handling maxhp reduction. Happens when drained a level or reskilling off fighting 09:17:24 One last question - does this mean instadeath if you're levitating over deep water? 09:17:35 ??suppression[2] 09:17:36 suppression[2/3]: Potions, scrolls, and wands do not need to be equipped to use them, and are therefore unaffected. Entering a suppression aura has no effect on magical effects that were placed upon you before you entered the aura. The base properties of weapons and armor (dam, AC, etc.) are unaffected and enchantments from scrolls of enchant foo are preserved. 09:17:38 phyphor: ^ 09:17:47 hp is scaled down proportionaly, so it's almost impossible to die from it. And there's probably a safety too. 09:17:55 Wensley: ah, right, yes 09:18:06 Wensley: boots of levitation? 09:18:18 You need to activate them, don't you, to lev? 09:18:20 galehar: note that suppression could only kill you if taking off the ring itself could kill you, i.e. you had 7 mhp with a +8 hp ring 09:18:21 <|amethyst> Wensley: right now it interacts strangely with +HP (and probably +MP)... if you already had it on you keep the HP; taking it off reduces your MHP as expected; and putting it back on does not give you anything 09:18:27 I was reminded of the Ds that died from levelling up 09:18:31 phyphor: you do, but once active the levitation is permanent 09:19:01 so its not a temporary buff 09:19:23 alefury: fixedarts are a tricky thing. it would turn it off once inside the aura, yes. we could also make it gradually degrade if this is seen as too harsh 09:19:24 yes, but it's an effect on you already 09:19:25 -!- absolutego has quit [Quit: leaving] 09:19:46 Presumably the singing sword would shut up as well :) 09:19:51 ??suppression[3] 09:19:52 suppression[3/3]: Open issues: whether to block the use of decks by nemelexites 09:19:52 <|amethyst> Wensley: and taking off the ring doesn't kill you, as it subtracts proportially from current HP 09:20:08 <|amethyst> I haven't tested with the player at exactly one HP 09:20:27 <|amethyst> ah, it leaves you at one HP 09:22:35 I'm thinking of lowering fungal colony xp. It's 500 for killing one, which is kind of huge in early levels, considering how easy it is to do this 09:22:42 how does 200 sound? 09:23:06 better :) 09:23:34 !learn edit suppression[3] s/.*/Nemelexites don't need to wield decks to use their powers, so their abilities are unaffected. Fixedarts will also have their magical properties suppressed, but that will take a while to implement. 09:23:35 suppression[3/3]: Nemelexites don't need to wield decks to use their powers, so their abilities are unaffected. Fixedarts will also have their magical properties suppressed, but that will take a while to implement. 09:24:38 !learn add suppression Open issues: whether levitating over open water using boots of lev upon entering the suppression field causes instadeath 09:24:39 suppression[4/4]: Open issues: whether levitating over open water using boots of lev upon entering the suppression field causes instadeath 09:26:10 !learn edit suppression[4] s/$/ (perhaps a warning for moving adjacent to the field will suffice) 09:26:12 suppression[4/4]: Open issues: whether levitating over open water using boots of lev upon entering the suppression field causes instadeath (perhaps a warning for moving adjacent to the field will suffice) 09:35:19 [10:12:23] we never want to discourage people from using consumables 09:35:26 there are cases where consumables are disallowed 09:35:32 those cases are bad 09:35:38 <|amethyst> lichform? 09:35:42 that's a pretty strong assertion 09:35:45 petrification/paralysis? 09:35:45 <|amethyst> silence 09:35:47 <|amethyst> hogform 09:35:48 the goal of all encounters should be to encourage the player to spend permanent resources 09:35:51 you can't use potions in lich form, you can't read scrolls while silenced 09:35:56 why does killing a fungal colony give you so much exp at all, except to encourage you to do it 09:36:06 Wensley: except that doesn't even necessarily do that 09:36:15 if you can't read a scroll of teleport you might just use a wand of teleport instead 09:36:16 <|amethyst> Patashu: because you get none for killing the component 09:36:16 Patashu: every act of killing gives xp 09:36:17 <|amethyst> s 09:36:26 the fungal colony gives xp as a whole, because its a single organism 09:36:35 ah, it's anti-scumming, I see 09:36:38 it just had the number set a bit too high 09:38:59 evilmike: as the chief executive of monsters are you giving me the go-ahead to do a mass rename of "moth of suppression" -> "mundane moth" and "aura of suppression" -> "aura of mundanity" ? 09:39:04 let me see if I have this right: if I evoke for lev then enter a field of suppression, the lev is still active? I just can't re-evoke while suppressed 09:39:05 ? 09:39:11 when did i become the cheif executive of anything 09:39:18 evilmike: when I appointed you just now 09:39:22 congratulations 09:39:26 here is your first assignment 09:39:28 do i get a sash 09:39:35 evilmike: I will make you a sash later on today 09:39:48 -!- Heteroy_ has joined ##crawl-dev 09:40:07 although note that sash-wearing is frowned upon in the workplace 09:40:09 Wensley: I think this renaming makes sense 09:40:26 and it's not really a big deal, considering this is a monster that doesn't fully exist yet 09:40:30 haha 09:40:40 also, I like mundanity over suppression 09:41:01 less likely to be confused with silence, and alliterates 09:42:15 "mundane moth" sounds horrible 09:42:28 and doesn't mean whatever you think it should mean 09:42:46 G-Flex: proposals 09:42:47 that literally just makes it sound like a normal, regular, everyday moth 09:43:04 a moth that suppresses magical effects isn't terribly mundane 09:43:14 -!- clouded_ has joined ##crawl-dev 09:43:29 you're terribly mundane 09:43:30 would you prefer "mundanity moth" 09:43:50 or "moth of mundanity" 09:44:03 I don't know, I'm trying to think of other things that could get the point across 09:44:05 moth of mundanity is better 09:44:10 moth of mundanity flows better 09:44:14 what they said 09:44:22 I sort of hate the "of" in moth names but I tend to agree that "moth of mundanity" sounds better 09:44:23 mundanity moth is too similar to "Mundane moth" i.e. it's an uninteresting moth 09:44:24 you could go for more of a name-like name than a descriptive name if necessary 09:44:30 of course the same could be said fo "Boring beetles" 09:44:38 haha 09:44:43 well that's just a double-meaning 09:44:47 "philistine moth" 09:44:47 boring beetles and mundane moths! 09:44:56 i like mundane moth 09:45:04 "this beetle eats rocks, lawl!" 09:45:14 it can have a learndb entry "not very mundane" 09:45:20 I don't like "mundane moth" because english is my native language so I know what it means :P 09:45:33 there is no other meaning to "mundane moth" than "moth that is ordinary" 09:45:36 "catoblepas moth" 09:45:38 english is not my native languange and i know what it means 09:45:41 i just think its funny 09:45:58 galehar: any opinions on this moth name 09:46:05 "shimmering butterfly!" 09:46:20 "dull moth" 09:46:34 that would be a moth you cant cut things with? 09:46:35 (it loses its shimmer when it activates its supression ability) 09:46:41 'infectiously dull moth' 09:46:42 obviously 09:46:45 "moth" 09:46:56 the suppression affects the name of it 09:47:13 what about 'disenchanter moth' 09:47:21 except it makes it sound like a horrible monster to linger around 09:47:34 should we open a poll on the tavern 09:47:40 on par with those late game angband monsters that murder your equipment 09:47:43 one quick question, how deadly would Mennas in a crowd of these moths be? 09:48:00 because combined silence and suppression sounds lethal 09:48:03 would that be that much worse than Mennas normally? 09:48:03 phyphor: well his holy wrath brand would be suppressed 09:48:25 I guess wands still work 09:48:27 @??mennas 09:48:27 Mennas (15A) | Spd: 15 | Int: high (items) | HD: 19 | HP: 150 | AC/EV: 15/28 | Dam: 30, 20 | Fl: 08holy, spellcaster, see invisible, fly | Res: 06magic(202), 10elec++, 03poison, 04rot, 13neg+++, 08holy | XP: 6578 | Sp: confuse, silence, minor healing. 09:48:34 mennas is exactly as fast as the moth 09:48:40 they will be speedbuddies 09:48:40 until someone invents a beetle that saps wands :) 09:48:53 liches should drain charges from wands like... 09:48:53 adom I think 09:49:06 (electric eels should make your rings explode, like nethack) 09:49:08 (guys? anyone?) 09:49:11 <|amethyst> angband does that doesn't it? 09:49:26 <|amethyst> liches draining charges I mean 09:49:27 only if you aren't wearing them 09:49:28 elliptic: You have 1 message. Use !messages to read it. 09:49:30 oh that 09:49:31 lightning bolts can drain wand charges like how cold attacks break potions and fire attacks burn scrolls 09:49:41 that's what we need 09:49:43 more item destruction 09:49:44 excellent 09:49:49 g-flex: more stashing 09:49:55 more quick dropping items when you see foo monster appear 09:49:57 elliptic: I have codified suppression according to your criteria. review in ??suppression 09:49:58 also, poison should spoil your food 09:50:00 also, fire can burn robes and cloaks 09:50:14 <|amethyst> Patashu: there are already food-destroying attacks 09:50:18 negative energy effects can lower item enchantment value 09:50:21 <|amethyst> not just harpies either 09:50:21 |amethyst: they're too rare add more 09:50:30 <|amethyst> more giant spores! 09:50:31 |amethyst: harpies, spore explosions, and what else? 09:50:36 also: fire can burn decks 09:50:47 now the game is balanced 09:50:59 cold damage breaks crystal balls 09:51:16 <|amethyst> acid melts everything 09:51:23 ok this is beginning to sound like ivan now 09:51:29 petrifying dust ruins your food 09:52:01 <|amethyst> FR: fire crab with petrifying dust 09:52:04 <|amethyst> of course, it should be named 09:52:07 Wensley: I like suppression -> mundanity change. I like mundane moth a bit more than moth of mundanity and don't care much 09:52:07 <|amethyst> "rock lobster" 09:52:08 dust crabs 09:52:16 +1 09:52:23 I like the irony of the misleading name :) 09:52:36 |amethyst: looks like a large rock until you approach it 09:53:11 <|amethyst> here comes a bikini whale! 09:53:17 people dont hate swamp enough. make shallow water blank your scrolls. 09:53:20 and spellbooks. 09:53:48 let's render items in crawl completely meaningless via vulnerability 09:53:56 water needs to rust your weapons 09:54:07 you should be able to blow up your inventory with a rod of negation 09:54:10 fr: rod of negation 09:54:15 or what. cancellation was it called? 09:55:38 -!- Heteroy_ has quit [Ping timeout: 250 seconds] 09:55:39 !tell kilobyte "Entered a Sewer (Sewer)" is a bug with Gretell, not with the milestone. Henzell and Sequell handle this correctly. 09:55:40 elliptic: OK, I'll let kilobyte know. 09:55:48 evilmike: shouldn't it turn your potions into potions of water too? 09:55:58 it should turn your wands into wands of water 09:56:06 getting trampled can cause you to spill your potions 09:56:11 when you zap them they spray water at the target, which does nothing but rust and deteriorate equipment 09:56:13 elliptic: soliciting opinions, is "mundane moth" as a new name for the moth of suppression good or bad 09:56:14 !tell i.e., greensnark fixed this redundancy by adding oplace long ago, but gretell doesn't know about it 09:56:15 I don't grok. Syntax is !tell PERSON MESSAGE. 09:56:16 oops 09:56:18 (making it a prime candidate for generation in ijyb's inventory) 09:56:23 !tell kilobyte i.e., greensnark fixed this redundancy by adding oplace long ago, but gretell doesn't know about it 09:56:24 elliptic: OK, I'll let kilobyte know. 09:56:26 drinking a potion of curing while confused also has a 1/3 chance of spilling it 09:56:26 g-flex: sounds like shiren 09:56:31 (when you get trampled in shiren you drop your inventory) 09:56:35 (and pots break when thrown) 09:56:45 !tell kilobyte you are right that br and lvl should be fixed though 09:56:46 elliptic: OK, I'll let kilobyte know. 09:56:51 potions of water are sometimes contaminated and will give you dysentery 09:56:52 <|amethyst> s/Orb of Zot/Amulet of Yendor/ 09:57:19 someone mentioned IVAN earlier 09:57:24 I tried looking at the source code for IVAN once 09:57:28 I think my vision was permanently degraded 09:57:41 <|amethyst> G-Flex: you should look at old old crawl 09:57:42 it's like a badmutation 09:57:42 G-Flex: it's even worse than Crawl's? seriously? 09:57:50 really old crawl looks bad, yeah 09:57:54 ais523: current crawl? probably 09:58:08 what roguelikes have good codebases 09:58:09 in my opinion that's why nobody ever continued work on it, or at least one reason 09:58:09 <|amethyst> and I hear Liberal Crime Squad, when the source was first released, was one file 09:58:13 because the source code is incomprehensible 09:58:18 |amethyst: worse than that 09:58:31 Patashu: apparently POWDER does, but it's closed-source anyway so it's hard to tell 09:58:32 LCS is the kind of C++ written by someone who didn't really know how object-oriented programming worked 09:58:38 it's around 300-500 thousand lines and for some bizarre reason there aren't spaces, except when absolutely necessary 09:58:40 from what I've seen 09:58:48 evilmike: I write LaTeX like that 09:58:57 I only looked at the code for LCS because I heard it was cool 09:58:59 because it's not significantly more readable no matter what you do 09:59:10 apparently the current version of the game is better, because people took it and made it more reasonable 09:59:17 by that I mean you have lots of weird switch-case structures where actual object properties *should* be used 09:59:18 <|amethyst> I wonder if Dwarf Fortress is one file? 09:59:31 DF is undoubtedly a lot better than LCS in that regard, and there's virtually no way it's one file 09:59:42 |amethyst: probably not... I think parts of the DF source were made open, and it wasn't one file 09:59:45 it's still a mess as far as anyone can tell 09:59:47 but I was told it was pretty bad 09:59:49 in theory you can bundle any program into one file, if it's all in the same language, and it's in one of several very common languages 10:00:02 I did that with the new nethack 4 build system, to make it easy to deploy 10:00:07 <|amethyst> What is it about games? 10:00:11 evilmike: they were made open as part of some kind of dummy project or small game or something, yes 10:00:30 I can't wait for df source code to be released 10:00:32 <|amethyst> I guess it makes sense that games attract autodidacts 10:00:32 |amethyst: it's sturgeon's law, 90% of /all/ code is bad quality, this applies to games as much as to everything else 10:00:42 <|amethyst> ais523: that's true 10:00:48 tarn adams' programming experience is basically bedroom-programming stuff, small probjects and relatively unstructured/archaic languages and that sort of thing, so he's not as good at larger projects and scalability and maintaining things 10:01:00 projects* 10:01:06 meanwhile, NetHack's code is not so much bad, as predating good coding practices by decades 10:01:06 <|amethyst> G-Flex: almost certainly the same for Linley 10:01:12 ancient crawl (we're talking the first versions) was when linley was learning programming for the first time, so it has cool stuff 10:01:23 there's an issue of dwarf fortress being a kind of project that requires a skillset he never really developed prior 10:01:25 no enums anywhere, just raw numbers all over the place... 10:01:27 java is an example of a language where you can't just concatenate all the files together 10:01:39 one class per file, unless that's changed in recent years 10:01:48 ha, I guess you could put them all in one giant superclass 10:01:52 <|amethyst> Wensley: you can make a Program class that has all your other classes as inner classes 10:01:55 his other projects didn't really need to be performant or well-maintained or... particularly clean or readable, they were just silly little projects 10:01:56 <|amethyst> yeah 10:02:17 Also, I thought tarn adams had a PhD in mathematics 10:02:23 he does 10:02:28 that doesn't make him a programmer, but it should at least give him a head start over some people 10:02:29 evilmike: he was a professor of math at a university 10:02:30 that doesn't mean he has a PhD in software engineering :P 10:02:39 he's also been programming since he was relatively young 10:03:27 you can be programming for a long time and still be pretty lousy at it (not saying that tarn is lousy, mind you). part of getting better is soliciting feedback and seeing how better programmers do things 10:03:30 it's not that he has no experience programming or doesn't understand algorithms or anything like that, it's just a a matter of what I mentioned, where his experience hasn't really taught him the skills necessary to do his current project very "properly" and he can't exactly take a bunch of time off to learn new technique 10:03:35 that's my impression, anyway 10:03:55 I dont know if he's really losy at it, all I've seen is the liberal crime squad stuff and that was an early project of his 10:04:09 DF is a huge mess, but I think that's because he is extremely disorganized 10:04:12 god knows there are a lot of enterprise code monkeys who have been writing terrible code for decades 10:04:20 As in, he just kind of adds features without planning anything 10:04:50 given the nature of DF I think this might be the only way to ever actually get anything done :P 10:04:51 <|amethyst> Wensley: when I see how bad most CS grad students are at programming.... I worry about the 90% of them that went to industry instead of grad school 10:04:55 evilmike: he plans 10:05:05 evilmike: he has a pretty clear view of where he's going and has extensive long-term plans 10:05:31 DF is just a complicated enough project that features wind up requiring other features which require other features, etc., so things get implemented in an odd order and not always optimally 10:05:53 <|amethyst> evilmike: DF has much more of a long term plan than DCSS 10:06:04 |amethyst: I think that CS majors are probably worse at programming than technical school graduates, they're just more well-rounded 10:06:09 that's interesting 10:06:25 cs majors don't learn how to code real things 10:06:36 when I played it, I got the impression that a lot of stuff was just added because it seemed cool. No worries about the implications behind that 10:06:47 I don't think that's the case 10:06:54 if that were the case the game would be a much more disorganized mess at this point 10:07:03 considering it's been, what, eight years? 10:07:09 |amethyst: I'd really like to start establishing a "this is what we need to get to 1.0" plan rather than just continue this aimless wandering for the next decade 10:07:21 re: crawl long-term planning 10:07:21 a roadmap? 10:07:31 I don't know. I stopped playing it shortly after he made the "3d" version, I felt like it really went off the rails at that point 10:07:33 <|amethyst> Wensley: complete simulation of an alternate reality 10:07:38 didn't feel much like a game to me, any more 10:07:51 evilmike: that's an interesting viewpoint, since to me that's basically when it got *on* the rails 10:07:55 and started to become more of what it's actually intended to be 10:08:07 I never played the 2D version but it seems like it was a lot more... gamey, I guess 10:08:13 <|amethyst> wait, is fortress mode supposed to be a game? 10:08:21 I really enjoy the 3D, but I tend to just build cool things and let my dwarves starve and get murdered by goblins 10:08:22 the 2d one was definitely a game 10:08:23 <|amethyst> I thought it was just level generation for adventure mode 10:08:42 |amethyst: sure, five years ago that was the case (more or less) 10:08:46 it had a fairly straightforward goal, and wasn't that complicated of a simulator 10:08:49 actually I'm not sure that was ever entirely the case 10:08:51 evilmike: tear off the < and > keys on your keyboard, there you go, 2D mode :) 10:08:59 after a while it became more of a "city simulator" or something 10:09:04 evilmike: right now DF is in an odd state where there aren't enough long-term fortress goals for fortress mode to feel right 10:09:06 <|amethyst> I played about 2-1 years ago 10:09:15 certainly that'll change 10:09:26 I also didn't like how the interface got more complicated (and worse) with each version 10:09:30 but right now the problem is that once your fortress is defensible and running smoothly, there's nothing left to do 10:09:32 piloting a space shuttle is probably easier 10:10:08 the interface is one of those things that he's held off on reworking until it's more clear what its actual requirements are and more features are implemented 10:10:10 or something like that 10:10:21 <|amethyst> G-Flex: once you have all the candy and have murdered all the clowns, you mean? :) 10:10:30 I hate when people say that 10:10:38 everyone knows what they are, why do people still use bizarre euphemisms 10:10:51 <|amethyst> because it's fun? 10:10:55 <|amethyst> for some people 10:11:07 eh, it gets a little grating when you're on the forums/IRC a lot and hear it constantly 10:11:11 loses its novelty value pretty quick 10:11:34 anyway, I think it'll be much better once you can interact with the world at large more and there are more internal/social things to deal with 10:11:43 basically, more external and internal (to your fortress) goals and problems 10:12:03 I remember hearing that like 6 years ago 10:12:28 it's come a long way since then, at least 10:12:39 albeit slowly 10:13:12 evilmike: I think that he's planning on releasing 1.0 in 2025 10:13:17 so, long term thinking 10:13:22 I think there's going to come a point where the issues with the interface, performance, etc. get so bad that it'll be very clear the project isn't sustainable without serious reworking 10:13:34 oh god, performance 10:13:43 needs parallelism soooo bad 10:13:46 it's heinous 10:13:55 I think one reason he doesn't work on more "boring" stuff like optimization and code refactoring, aside from the fact that he doesn't find it fun, is that it doesn't draw in donations 10:14:02 cool new features drive donations 10:14:26 at some point the perf problems will get so bad that parallelism will draw donations 10:14:48 thing is that'll require a lot of behind-the-scenes stuff that he won't even be able to talk about much 10:14:54 learning how to do that in the first place, for instance 10:14:56 then all the work to do it 10:15:05 what kind of development log entries can he even make about that? 10:15:21 "made the game actually run on modern computers" 10:15:27 people who pay attention to DF expect a constant stream of interesting updates and get weird when even a few days go by without one 10:15:34 evilmike: except he's not going to do that in a day 10:15:56 a dry spell lasting god knows how long, where no interesting or noteworthy updates at all can be posted, would not do well 10:15:58 G-Flex: there was a long time there where he wasn't updating the dev log more than once a month 10:16:18 though I do appreciate the near-daily updates, which are frequently hilarious 10:16:22 I believe donations did dry up a bit 10:16:25 when that was the case 10:16:39 perhaps he can kickstarter it 10:17:03 that's everyone's solution these days! 10:17:08 something like that might work actually 10:17:14 right, except he might actually have a chance :) 10:17:17 "pay for my next six months so I can do what I actually need to do" 10:17:35 you need some cachet to actually make it big on kickstarter, and he has it 10:18:19 right now, as I mentioned, I think there's an issue where he'd need to learn a lot of new technique and conceptual stuff before being able to make the necessary changes, but there's (perhaps) little time for that 10:18:23 he's been featured in the new york times, I'd say he's sort of a big deal (at least compared to the 1000 other games on kickstarter) 10:18:29 yeah 10:18:42 G-Flex: he doesn't need to open the source, just hire someone who knows what they're doing 10:19:05 wensley: how much are they being paid 10:19:38 Patashu: I'm sure there are good programmers who are avid DF fans who would be willing to get paid less than exorbitant salaries for a bit of exposure 10:19:58 I suppose so, but I get the impression the only one who can understand the DF code is the guy who made it 10:20:02 if it's as sizable as I suspect it is 10:20:08 right, he'd have to work with them 10:20:13 <|amethyst> there are good programmers who are avid DF fans who would work on it for free 10:20:30 but I'd really doubt that he'd do a good job parallelizing without someone who knew what they were doing 10:20:37 it would be a two-man job regardless 10:21:30 needs someone who can do instrumentation and profiling to determine what are the biggest problem spots 10:21:53 but off the top of my head he could probably just outsource fluid dynamics and pathfinding to threads of their own for immediate gains 10:22:23 there proabably needs to be some kind of pathfinding cache 10:22:25 or heuristics 10:23:20 !tell kilobyte I'm leaving for the weekend and don't have time to figure out the best way to fix the br/lvl thing... best would be to just change the milestone so that it happens after you.where_are_you and you.depth and such have been updated, as it used to. 10:23:20 elliptic: OK, I'll let kilobyte know. 10:23:35 about crawl: its a little weird that you can constrict sticky-flamed things 10:23:48 simple, just constrict the non sticky flamed part 10:23:49 what about spiny things? 10:23:50 -!- Patashu has quit [Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .] 10:24:13 Wensley: porcupines can already not be constricted anymore. also flaming corpses. and some other stuff. 10:24:14 -!- ais523 has quit [Read error: Connection reset by peer] 10:24:22 do pythons etc eat animals like porcupines? 10:24:25 -!- ais523 has joined ##crawl-dev 10:24:27 I guess their ranges don't exactly overlap 10:24:39 not sure about hell sentinels 10:24:44 those have spines, too? 10:25:13 evilmike: pretty sure a snake would stay the hell away from a porcupine 10:26:55 Wensley: personally I'd go for "moth of mundanity" over "mundane moth", but there's probably a better name 10:27:12 I'll keep looking 10:27:22 I do think I'm going to rename the aura to "mundanity" though 10:27:26 I like that a lot better 10:31:51 "muggle moth" 10:31:56 and then we were sued. 10:33:52 "prometheus moth" 10:34:56 "quaker moth" 10:36:07 "ignoramoth" 10:36:44 -!- elliptic has quit [Quit: Leaving] 10:41:20 just call it shimmering moth, and shimmering moths have an aura of mundanity? 10:41:28 we could 10:41:38 not really thrilled at the name though 10:41:42 like, it sucks up all the magic around it or something, which makes it shimmer 10:41:44 trying to think of better generic names 10:41:53 I still like "tyrant moth" 10:41:55 shimmering is just an example, no need to have it related to the moth effect 10:42:23 ghost moths arent called moth of draining either 10:42:34 no, but they are invisible :P 10:42:39 even though thats basically what they do, drain stats and mp (but not actual draining) 10:42:51 Wensley: which ghosts in crawl are invisible? 10:43:01 none, but the ghosts in the real world are 10:43:06 riiiiight 10:43:16 apparently they are 10:43:17 take a photo of one and prove me wrong 10:43:57 also "ghost moth" is a real type of moth, but I already looked through wikipedia's list of all moths and didn't see one to fit this moth 10:46:33 <|amethyst> "dark arches moth" should be something 10:47:23 earthly moth 10:50:44 <|amethyst> Hebrew Character moth (apparently called a Gothic Catkin in German, and a Nun Moth in Dutch) 10:51:41 what is gothic catkin in german? 10:52:13 <|amethyst> I may be mistranslating 10:52:15 <|amethyst> Gothica-Ktzcheneule 10:52:27 <|amethyst> "gothica" is the species name 10:52:37 oh. i think i heard ktzcheneule before, but i wouldnt know when when i see it 10:52:55 <|amethyst> catkinmoth literally I guess 10:53:01 "gothic moth" 10:53:04 funny german moth name: nachtpfauenauge (night peacock's eye) 10:53:25 |amethyst: more like kitty-owl 10:53:29 or kitten-owl 10:53:50 <|amethyst> oh, owl 10:53:51 <|amethyst> okay 10:54:22 <|amethyst> yeah, I guess that could be kitten instead of catkin 10:54:26 -!- Heteroy_ has joined ##crawl-dev 10:54:31 <|amethyst> as one might imagine the English words are cognate 10:55:10 <|amethyst> I think "catkin" comes from Dutch actually 10:55:24 <|amethyst> which would explain the 'k' 10:56:09 <|amethyst> "manikin" is also from Dutch 10:57:08 <|amethyst> (and mannequin French < Dutch) 10:57:39 <|amethyst> a 10:57:40 <|amethyst> aha 10:57:51 <|amethyst> the family is called "owlet moths" in English 11:02:17 -!- ais523 has quit [] 11:09:44 -!- Heteroy_ has quit [Ping timeout: 250 seconds] 11:12:49 -!- rast has joined ##crawl-dev 11:14:14 * phyphor restarts the campaing to clal it simply "moth" 11:14:31 heck, have it randomised in appearance until the mundanity effect kicks in and it becomes "moth" :) 11:14:31 no 11:14:52 that is inconsistent with other crawl monsters 11:15:16 you and your consistency, like it's a game design ideal or something! 11:15:38 you can't call it a "moth" because there's a dummy monster using that name 11:15:41 DO they have to be "moths"? 11:15:50 it's part of the weird species-genus thing crawl does 11:16:01 moth of blandness 11:16:23 A spider that draws in magical-ness would also work, no? 11:16:36 It can be a "mundane alot" (like a yak) 11:16:41 can we get a vault with 7 sin moths 11:16:46 moth of lust 11:17:51 as for moth vs. spider: spider would work, but crawl having cool powerful magic moths is flavorful 11:18:31 though ghost moths are weird in that they are not like other moths at all 11:20:05 -!- Heteroy_ has joined ##crawl-dev 11:20:26 moths are the support monsters, and yes ghost moths are weird 11:20:49 I think I'd prefer if ghost moths were just invisible mana-eaters, but whatever 11:23:38 Wensley: i think they should either get stat changed again or change their name 11:24:16 ...oh man 11:24:16 oh maaaaan 11:25:01 ghost moth => time fly; they are invisible because they're still partially in the future; they're stealing mana from the past because there's less mana in the future; they drain stats because they age you 11:28:23 -!- blabber has joined ##crawl-dev 11:29:03 -!- rast has quit [Quit: ChatZilla 0.9.88.2 [Firefox 12.0/20120420145725]] 11:41:42 -!- Heteroy_ has quit [Ping timeout: 245 seconds] 11:41:54 gilgaladt (L17 HESk) ASSERT(feat < NUM_FEATURES) in 'feature.cc' at line 24 failed. (Abyss) 11:45:01 Eronarn: does that mean mummies are immune? 11:47:53 Unstable branch on crawl.akrasiac.org updated to: 0.11-a0-1672-gbb00af4 (33) 11:49:07 phyphor: they can still deteriorate over time, though they could be made immune too 11:56:28 -!- absolutego_ has quit [Quit: leaving] 11:56:58 !tell kilobyte the changelog is missing spell failure percentages and hunger bars 11:56:59 alefury: OK, I'll let kilobyte know. 11:58:23 !tell kilobyte oh, percentages are in 0.10 it seems. hunger bars are missing, though. 11:58:23 alefury: OK, I'll let kilobyte know. 11:59:58 -!- Heteroy_ has joined ##crawl-dev 12:25:07 <|amethyst> Eronarn: do they eat arrows? 12:25:51 heh :P 12:26:21 <|amethyst> my cheques have bad jokes, including that one, printed on them in ASCII hexadecimal 12:26:42 <|amethyst> I was quite happy to find that the "computer code" cheques actually had content and not just random hex digits 12:26:57 ...that's kind of awesome 12:27:20 <|amethyst> yeah 12:27:31 <|amethyst> I hope I can find the order form when I run out several years from now 12:27:51 <|amethyst> I guess cheques will be (even more) obsolete by then 12:28:45 okay so it's time to fix this supmoth bug where it does not redraw your stats after it changes them 12:29:04 there's a banking consortium making plans for the transition away from checks iirc 12:29:13 read something about it 12:29:35 I think it was suggested that I add a .is_suppressed field to the player which is updated every turn, and then check to see if it changes each turn and if so call for the stats portion of the screen to be redrawn 12:29:48 knowing nothing really about crawl's game loop does this sound terrible or fine 12:30:37 Wensley: that is basically how i was doing lorcs 12:32:33 I guess it would actually be a .were_suppressed field and every turn we'd just check against the .suppressed() method and update if it's not the same 12:32:43 .was_suppressed 12:33:21 <|amethyst> oh, here's a weird one: 12:34:10 <|amethyst> rod of warding has condensation shield, which allows you to train Shields even if you aren't wearing one (and even if you don't have the spell active) 12:34:27 <|amethyst> should that be disabled inside a suppression aura? 12:34:45 <|amethyst> it works even if not wielded, but thematically that's because you could wield it and practise at any time 12:34:52 I think that should be disabled period 12:35:14 thanks for the detective work though :) 12:35:17 <|amethyst> I could see making it not use shield skill 12:35:25 <|amethyst> but if it does it should probably allow training it 12:35:44 <|amethyst> unless you meant shield training restrictions altogether 12:36:04 I specifically meant having the rod allowing you to train shields 12:36:09 but 12:36:16 even if we want to leave it 12:36:21 magical shields definitely shouldn't use shields skill 12:36:25 1) I don't think it's a big deal, at all 12:36:35 a bunch of complication for no reason 12:36:45 2) how would you handle a skill that was temporarily toggled off in the m screen 12:37:06 <|amethyst> Eronarn: for condensation shield we could use a formula based on spell power instead... what about TSO? base the formula on piety? 12:37:11 <|amethyst> or invocations? 12:37:17 invo 12:37:36 yeah, piety/invo is fine 12:37:55 invo is the best skill, just need to get rid of god wrath 12:41:56 -!- Voxxik has joined ##crawl-dev 12:43:46 Wensley: while youre making people get rid of stupid stuff, can you make a moth that makes someone remove distill/evap from the game? that would be awesome! 12:47:23 i liked the idea that came up for it last time 12:47:37 one spell, which makes temporary vials that are thrown 12:47:59 it solves a huge amount of the problems with it while keeping the cool flavor 12:48:00 -!- Voxxik has quit [Quit: WeeChat 0.3.7] 12:48:16 alefury: moth that causes all potions you're carrying to explode instantly into a huge mixed cloud of effects 12:48:42 can we add chaos butterflies yet 12:48:55 yes, instantly 12:49:20 just a chaos-colored butterfly with a chaos attack 12:49:32 butterfly, give it chaos brand, give it a new description, make it spawn really rarely in zot, xom effect for them, add a vault or two with them, done 12:50:13 well what it really needs is a dummy attack that will cause chaos effects guaranteed, and not do any normal hit damage/effects 12:50:23 otherwise you'd have to actually give it damage and stuff 12:50:41 “A butterfly flaps its wings somewhere and the wind changes, and a warm front hits a cold front off the coast of western Africa and before you know it you've got a hurricane closing in. By the time anyone figured out the storm was coming, it was too late to do anything but batten down the hatches and exercise damage control.” 12:50:47 ^ there's the quote 12:51:30 bug: crawl hatches can't be battened 12:52:17 <|amethyst> nor can they be megabattened 12:53:01 "a fluttering, mobile tear in the fabric of space, casting evanescent ripples in the air with every beat of its wings" 12:53:05 ^ there's the description 12:53:31 so, make the monster, you know how to! :) 12:53:38 giving it 1 damage is probably totally fine 12:53:42 would they accept the patch, though 12:53:50 who knows? 12:53:53 also, does chaos brand do chaos things if it doesn't do damage 12:53:59 who knows? 12:54:08 i'd say give it 0 and specialcase it, so that it's immediately obvious that it's a special monster to ?@ 12:54:11 (i think it will, unless it mimics a brand that doesnt) 12:54:12 0 (chaos) 12:54:28 need a tile too 12:54:43 hmm, that's a good point alefury 12:54:49 roctavian comes here 12:54:52 someone needs to cut a butterfly-shaped hole out of the chaos cloud tile 12:54:52 stuff like chaos imitating ice brand 12:55:20 the bonus is that the butterfly would be completely invisible against the chaos cloud tile 12:55:37 maybe it would be better to make it a real enemy rather than butterfly+chaos 12:55:54 I just wouldn't make it permanent confused 12:56:16 Wensley: i think we should have a new butterfly AI: permanent confusion, unless it's not nearby you 12:56:24 that reminds me 12:56:27 ??wensley[13] 12:56:27 I don't have a page labeled wensley[13] in my learndb. 12:56:30 ??wensley[12] 12:56:30 wensley[12/12]: make moths mesmerized if the player is glowing 12:57:38 player.h is 1000 lines 12:58:15 okay so a question 12:58:17 will I like 12:58:34 perpetrate crazy memory alignment shenanigans if I just put this new field anywhere in player.h 12:58:44 does it have to go right at the end 12:58:53 read save_compat 12:58:56 i think 12:59:16 not sure if its really called that, but there should be something like that in docs/devel 12:59:23 i should read that some time 12:59:32 half the patches i submit break it 12:59:59 i think you need to put stuff at the end and increase minor version, then youre mostly good 13:00:04 but some stuff is more complicated 13:00:32 <|amethyst> shouldn't matter where you put it, but what about other actors? 13:00:32 what I am asking is if the order of fields in header files has any effect on memory alignment of save files 13:00:48 like I know to add enums at the end of things 13:00:56 I have read this file before but I will still read it again 13:01:00 <|amethyst> no, structures are marshalled into save files explicitly 13:01:33 <|amethyst> your save compat stuff will be in how you handle restoring the flag from old saves that don't have it 13:01:44 <|amethyst> all that stuff goes in tags.cc 13:01:49 which reminds me, i forgot to increase minor version in my old potion of evolution patch 13:02:05 <|amethyst> alefury: did it need it? 13:02:11 it added a new potion 13:02:15 <|amethyst> alefury: that's not a problem 13:02:31 so what happens when you load a save with a new potion in an older version? 13:02:32 |amethyst: so you are saying I will need to bump the minor version to add this field to player.h 13:02:37 <|amethyst> alefury: ohh 13:02:40 <|amethyst> alefury: it doesn't work 13:02:44 the save compat file mentions touching actor.h 13:02:45 <|amethyst> alefury: probably crashes 13:02:52 hence, minor version :P 13:03:17 <|amethyst> usually minor version is only incremented when you need to tell the difference between old and new saves when loading 13:03:18 oh ha 13:03:30 this document acutally uses an example of adding a field to the player structure 13:03:34 how handy 13:03:41 maybe it would have worked anyway, i have no idea 13:04:04 when items were removed in the past they were turned into dummies, though, so i guess it would at least cause some problems 13:04:11 <|amethyst> "minorVersion" should usually be th.getMinorVersion() though 13:04:49 <|amethyst> actually 13:04:59 <|amethyst> Wensley: what about a prop, as it suggests 13:05:10 <|amethyst> "was_suppressed", not present if it wasn't suppressed last turn 13:05:26 |amethyst: a prop and a field are the same thing, right 13:05:30 <|amethyst> no 13:05:32 what 13:05:36 <|amethyst> props are stored in a hash table 13:06:09 Wensley: go look up the iood code if you want to see fun with props 13:06:13 I guess it is not strictly true that we need to remember the player's was_suppressed value 13:06:20 <|amethyst> props are still saved 13:06:28 <|amethyst> you don't have to do it by hand 13:06:47 <|amethyst> the whole hashtable is saved 13:09:25 -!- Heteroy_ has quit [Ping timeout: 252 seconds] 13:09:41 so how do you use hashtables in c++ 13:09:57 <|amethyst> these aren't ordinary C++ hash tables, but a crawl-specific thing 13:09:58 do I need to have a header file where I declare my key somewhere 13:10:06 <|amethyst> keys are just strings 13:10:15 can I just do props.("player_was_suppressed") 13:10:21 i was serious about looking up the iood code :P 13:10:25 <|amethyst> search for original_was_unique 13:10:58 <|amethyst> it's closer to your use case (being a bool) than the massive amounts of IOOD stuff 13:11:23 <|amethyst> mons->props["was_suppressed"] = true; 13:11:25 massive is an understatement 13:11:43 is the props table a static thing or is there an instance for each actor 13:11:53 that reminds me i should do monster lava orcs at least 13:12:52 <|amethyst> Wensley: one per actor 13:13:07 <|amethyst> Wensley: items have props hashtables too 13:13:35 silly hats patch... 13:14:04 okay this doesn't seem so bad 13:14:17 where is the main game loop located 13:14:25 it's too bad i lost the original, i blame the devs for this tragedy 13:14:31 <|amethyst> Wensley: main.cc 13:14:48 Wensley: look for 'antenna' in there iirc 13:15:01 cool 13:15:02 unless that got moved somewhere else 13:15:23 <|amethyst> main() does while (true) input(); 13:15:25 <|amethyst> err 13:15:27 <|amethyst> _input() 13:15:43 -!- Voxxik has joined ##crawl-dev 13:15:50 <|amethyst> which calls world_reacts() 13:16:02 think I'm going to stick this right after the player moves 13:16:17 <|amethyst> Wensley: _player_reacts_to_monsters() I'd say 13:16:26 <|amethyst> hm 13:16:34 <|amethyst> maybe both 13:16:50 really we're just setting a flag to redraw the stats section so it doesn't matter where it goes, iiuc 13:16:56 <|amethyst> well 13:17:12 <|amethyst> what if you move, you're outside the aura, and on the same turn the moth moves, putting you in the aura 13:17:19 good point 13:17:27 or if the moth dies of sticky flame 13:17:59 why did you want to put it in both? 13:18:19 <|amethyst> In case something repaints the screen in between 13:18:24 <|amethyst> not sure if that can happen though 13:19:29 uh oh 13:19:44 I wonder if someonebyte will be mad at me for using braces with one-line if statements 13:20:22 best to stick to coding_conventions or whatever its called 13:20:29 <|amethyst> "If both the condition itself and the conditional code are single line 13:20:32 <|amethyst> doh 13:20:43 <|amethyst> statements, the braces *may* be omitted." (emphasis added) 13:20:45 manual line breaks 13:20:52 <|amethyst> if he complains he gets to fix it 13:20:58 *g* 13:21:24 I'm going to leave them 13:21:27 an act of defiance! 13:21:52 so question 13:21:56 <|amethyst> just make sure they're allman style 13:21:58 because I am not a c++ guy 13:22:12 why do we do mons->props["original_was_unique"] 13:22:16 but 13:22:27 you.props.exists("was_suppressed") 13:22:32 why the arrow versus the dot 13:22:39 are these not method accesses 13:22:49 . is for things, -> for pointers 13:22:53 <|amethyst> you is a structure (object), 'mons' here is a pointer to a structure (object) 13:22:54 iirc 13:22:56 okay 13:23:17 its so you dont have to do *. i guess 13:23:21 -!- dtsund has joined ##crawl-dev 13:23:25 -!- Heteroy_ has joined ##crawl-dev 13:23:31 <|amethyst> foo->bar is the same thing as (*foo)->bar 13:23:32 because presumably that might cause parsing problems? 13:23:39 <|amethyst> *foo->bar means *(foo->bar) 13:23:55 <|amethyst> err 13:24:02 <|amethyst> foo->bar is the same thing as (*foo).bar 13:24:19 what about foo->bar and (foo*).bar ? 13:24:29 and dont you mean &? 13:24:33 <|amethyst> (foo*).bar is a syntax error 13:24:43 -!- Heteroy__ has joined ##crawl-dev 13:24:47 <|amethyst> no, & is address of 13:24:54 <|amethyst> foo.bar is the same thing as (&foo)->bar 13:25:11 is there any type checking on props 13:25:14 i am confused 13:25:16 you.props["was_suppressed"] = you.suppressed(); 13:25:20 ^ valid ? 13:25:23 pointer syntax confuses me 13:25:31 <|amethyst> Wensley: as long as you.suppressed() returns a bool 13:25:35 yes 13:25:55 <|amethyst> Wensley: but when you extract it you have to use .get_bool() 13:26:02 <|amethyst> or in this case just exists() 13:26:09 okay, im not confused anymore. 13:26:21 i still think this is a bit silly, though :/ 13:26:27 <|amethyst> err, no, get_bool(); if you use exists() you'd need to erase it when false though 13:26:34 <|amethyst> s/though// 13:27:34 <|amethyst> alefury: it's the "value semantics for objects" thing 13:27:45 <|amethyst> it's IMHO the weirdest thing about C++ 13:28:06 <|amethyst> most OO languages use reference semantics 13:28:22 -!- Heteroy_ has quit [Ping timeout: 252 seconds] 13:28:43 <|amethyst> only in something like C++ would it even make sense, for example, to overload the assignment operator 13:29:50 <|amethyst> that's not entirely true, but... 13:31:48 okay, so where are all these screen-redraw flags defined 13:32:11 -!- roctavian has joined ##crawl-dev 13:32:15 <|amethyst> player.h 13:32:20 <|amethyst> redraw_quiver etc 13:32:33 <|amethyst> they predate props almost certainly :) 13:33:25 change them to props so we can have redraw_quiver for monsters 13:33:30 -!- Heteroy__ has quit [Ping timeout: 252 seconds] 13:34:14 <|amethyst> FR: let spectators control the monsters 13:34:52 <|amethyst> when I was quite young I convinced my brother (even younger) that Excitebike was two-player, and he was controlling the blue motorcycle 13:35:08 haha 13:35:24 |amethyst: There is a two-player version of Excitebike. 13:35:25 |amethyst: actually, Everquest added that as a feature 13:35:31 it was very, very fun 13:35:33 It was never released outside of Japan, though. 13:35:52 you could choose a zone and spawn as a monster (it only worked in a few specific zones), and then just do whatever 13:36:02 players couldn't tell whether you were human or not except by your behavior 13:36:16 that's pretty great 13:36:35 i think you could even choose to help players by attacking mobs 13:36:54 another great thing EQ had: in-game tetris 13:37:06 (not actually tetris, more like dr mario i guess? that kind of style of game though) 13:39:26 -!- Pingas has joined ##crawl-dev 13:46:20 -!- alefury has quit [Quit: ChatZilla 0.9.85 [Iceape 2.0.11/20111108220737]] 13:51:16 -!- roctavian has quit [Ping timeout: 245 seconds] 13:52:16 dammit 13:52:24 accidentally saved player.h with no changes 13:52:42 and make doesn't compare via contents, just via modified date 13:52:58 <|amethyst> get ccache 13:53:31 that looks handy 13:53:42 <|amethyst> it's the only way I can tolerate changing branches 13:53:50 <|amethyst> or doing both ascii and tiles builds 13:54:32 yeah, tiles -> console kills me 13:57:18 -!- heteroy_ has joined ##crawl-dev 13:58:35 -!- heteroy has quit [Ping timeout: 246 seconds] 14:00:56 -!- heteroy has joined ##crawl-dev 14:02:49 -!- heteroy_ has quit [Ping timeout: 276 seconds] 14:13:12 -!- ToBeFree has quit [Read error: Connection reset by peer] 14:17:25 |amethyst: not sure that ccache is working. I installed it, saved player.h with no changes, and did make. then I saved player.h with no changes again and did make again. both times did a full recompilation 14:30:47 -!- alefury has joined ##crawl-dev 14:31:39 okay, so stats/defenses are now displaying properly 14:31:59 hp/mp changes still are not happening 14:32:14 and it's not just that they aren't showing up, it's that hp/mp just aren't recalculated every step 14:32:22 so somehow I need to trigger that 14:32:24 any ideas? 14:32:32 there are about 100 hp/mp functions in player.cc 14:32:36 not sure where to start 14:41:00 the code path is correct, because it properly negates the effect of putting on the item while in the field 14:42:34 <|amethyst> Wensley: it will look like it does a full recompilation, but instead of actually compiling it just checks the cache and copies the old .o file 14:42:42 okay, well it doesn't seem much faster :P 14:42:56 <|amethyst> you might need to do some configuration to make 'gcc' call ccache 14:42:59 <|amethyst> what OS? 14:43:03 debian 14:43:30 <|amethyst> /usr/share/doc/ccache/README.Debian 14:43:44 <|amethyst> easiest way is to put /usr/lib/ccache in your path ahead of /usr/bin 14:44:40 -!- jeanjacques has joined ##crawl-dev 14:45:00 <|amethyst> you probably want to do ccache -M and ccache -F to increase the limits 14:45:28 <|amethyst> mine's four gigs :) 14:48:07 how do I see the defaults 14:48:22 not sure what's really reasonable 14:48:43 <|amethyst> ccache -s 14:49:10 doesn't appear to show me how the max number of files it can cache 14:49:19 <|amethyst> probably unlimited by default then 14:49:23 ha, okay 14:49:27 I will try it out 14:53:17 4GB for ccache is enough for an occasional branch switch, but the first rebase will blow it away 14:53:18 kilobyte: You have 6 messages. Use !messages to read them. 14:54:16 although usually you don't care about much more than your normal build surviving one bisection 14:54:21 er, s/rebase/bisect/ 14:55:36 !seen casmith789 14:55:36 I last saw casmith789 at Thu Apr 26 16:40:57 2012 UTC (1w 3h 14m 39s ago) quitting with message Ping timeout: 244 seconds. 14:56:27 hmm, I overestimated the size... only 316MB for a single set 14:58:15 |amethyst: yes, that certainly is much faster :) thank you 14:58:33 but I still have to figure out how to get mp/hp to recalculate upon entering the suppression aura 14:59:09 I'm not sure if there's a single "entry point" for "tell the game to recalculate hp" 15:03:57 <|amethyst> Wensley: calc_hp() ? 15:04:08 -!- dtsund has quit [Ping timeout: 240 seconds] 15:04:52 aha, there it is 15:04:56 hiding in skills2.cc 15:05:44 is that just a... permanently global function? 15:06:14 <|amethyst> it's used all over the place, so... 15:06:25 welp 15:06:51 <|amethyst> btw, you may want to look at _hp_artefact in player-equip.cc 15:07:07 code organization, what is it? 15:07:14 <|amethyst> probably the curr-HP changes from suppression should match that from taking the item off 15:07:19 <|amethyst> s/changes/change/ 15:07:29 * Zannick still kind of wants to organize the crawl source into more folders 15:08:16 |amethyst: what is this function used for? 15:08:32 <|amethyst> Wensley: it's called when the player puts on or takes off an artefact with the +HP property 15:09:18 <|amethyst> it does the calc_hp() call 15:09:37 well anything that does calc_hp will hit the suppression check 15:09:46 <|amethyst> yeah, so probably you could just call _hp_artefact() when such an artefact is suppressed/unsuppressed 15:09:49 because calc_hp calls get_real_hp which is where we test forthe artefact 15:10:07 -!- blabber has quit [Quit: leaving] 15:10:08 <|amethyst> right, but _hp_artefact is needed so you don't just lose 15 current HP too 15:10:25 oh, you're talking about hp and I'm talking about mhp? 15:10:59 <|amethyst> yes, I think; calc_hp() is enough to calculate the max HP, but for current HP from +HP items, you need _hp_artefact or something like it 15:11:09 so instead of calling calc_hp you're saying I need to call _hp_artefact 15:11:13 which is a private function 15:11:20 or so I presume 15:11:24 <|amethyst> yeah, it would need to be made global 15:12:27 am I wrong or does it seep like calc_hp should call _hp_artefact and not the other way around 15:12:34 seem 15:12:53 ah well 15:12:58 <|amethyst> err 15:13:12 <|amethyst> no, because not all ways of changing max HP do the proportionate curr HP thing 15:14:02 what if I just made a separate calc_hp that does do the proportionate thing, and just calls _hp_artefact 15:14:11 calc_hp_nondestructive 15:14:37 <|amethyst> would it do anything other than call _hp_artefact() ? 15:14:56 <|amethyst> if not, just rename _hp_artefact() and make it not-static 15:15:07 I just don't want to break anything 15:15:26 <|amethyst> it's static, so all the calls are currently in that one file 15:15:40 <|amethyst> you can just do a global search-and-replace on the name :) 15:15:55 <|amethyst> (and remove "static" and add it to the header) 15:16:05 okay, how do I make a function global 15:16:09 are all functions global 15:16:19 if they are in a header 15:16:20 <|amethyst> remove the "static" and put a prototype in a header 15:16:33 <|amethyst> anything that's not static is global 15:16:50 <|amethyst> s/thing/ function/ 15:17:10 <|amethyst> (ignoring methods for the moment, where 'static' means something different) 15:17:13 I'm calling it calc_mhp_leave_hp_alone 15:17:20 <|amethyst> that's not quite right 15:17:25 <|amethyst> it doesn't leave HP alone 15:17:30 <|amethyst> the whole point is to adjust HP 15:17:48 you just said it shouldn't cause the player to lose hp for taking the item off :P 15:18:14 <|amethyst> huh? 15:18:30 <+|amethyst> right, but _hp_artefact is needed so you don't just lose 15 current HP too 15:18:48 <|amethyst> you don't lose zero either 15:18:50 -!- Pingas has quit [Read error: Operation timed out] 15:19:36 fuck it, I'm just calling it calc_hp_artefact 15:19:42 <|amethyst> if you were at 30/50 HP, you will lose 9 HP 15:19:49 <|amethyst> that works :) 15:20:28 <|amethyst> calc_hp_prorated() :) 15:22:54 it is apparently not enough to declare calc_hp_artefact in player-equip.h, as main.cc still can't see it 15:22:58 it is no longer static 15:24:04 <|amethyst> main.cc needs to #include "player-equip.h" 15:24:19 <__duncan> was poison's affect on the low hp'd recently adjusted? 15:24:22 <|amethyst> at the top---put it in alphabetic order with the rest 15:24:59 <|amethyst> __duncan: not specifically for low HP players 15:25:11 <|amethyst> __duncan: AF_POISON_STRONG was buffed a month or so ago 15:25:18 <__duncan> i just hovered @ 2hp when i for sure wouldve died. 15:25:28 <|amethyst> __duncan: ah, that's been there for a while 15:25:47 <__duncan> seems like a recent change. i would have died almost assuredly 15:26:01 <__duncan> just curious. not a bad tweak imo 15:26:09 __duncan: no, I think you just got lucky 15:26:48 -!- edlothiol has quit [Ping timeout: 252 seconds] 15:27:37 <__duncan> no that _never_ happens lol 15:27:45 <|amethyst> whee, git blame on player.cc is quite slow 15:35:58 ??autumn_katana 15:35:59 autumn katana[1/1]: A +8,+8 vorpal katana {clarity} who didn't get the news about {katana} removal. Dam 14 Acc +3 Delay 12. 15:36:09 so I guess clarity is a randart property 15:36:14 good to know 15:50:43 not randart, it's used only in this one case 15:50:52 could be added to randarts, of course 15:51:03 well it should be future proof, in any case 15:51:20 I have added it to the fixedarts that I use to test suppression and it suppresses successfully 15:51:26 -!- roctavian has joined ##crawl-dev 15:51:51 |amethyst: https://gitorious.org/~wensleydale/crawl/wensleydale-crawl/commits/supp2 15:52:11 |amethyst: this branch should fix all the bugs that currently exist with suppression 15:52:35 features still to come: suppress weapons, suppress evocable abilities from equipment 15:54:13 !learn add suppresion TODO: suppress weapons; suppress evocable abilities; suppress/defer equip messages; handle fixedarts 15:54:14 suppresion[1/1]: TODO: suppress weapons; suppress evocable abilities; suppress/defer equip messages; handle fixedarts 15:55:31 ack 15:56:12 !learn move suppresion suppression 15:56:13 suppression exists, cannot overwrite it. 15:56:17 ?? suppression 15:56:18 suppression[1/4]: While under this effect, all magical item properties that require the item to be equipped are nullified. Evocables that must be equipped in order to evoke them are rendered inoperable. Effects that occur when items are equipped/unequipped (vampirism, distortion, etc.) happen as usual. 15:56:25 oh ha, thank you 15:56:45 !learn move suppresion suppression[5] 15:56:45 Syntax: !learn commands/learn/move.pl SRC[x] DST[y] or SRC[x] DST or SRC DST 15:56:56 !learn move suppresion[1] suppression[5] 15:56:56 suppresion[1] -> suppression[5/5]: TODO: suppress weapons; suppress evocable abilities; suppress/defer equip messages; handle fixedarts 15:57:03 ?? suppresion 15:57:04 I don't have a page labeled suppresion in my learndb. 15:57:17 no problem ;) 16:01:02 -!- Wensley has quit [Quit: leaving] 16:14:12 -!- MarvinPA has quit [Read error: Connection reset by peer] 16:21:16 -!- Voxxik has quit [Ping timeout: 255 seconds] 16:24:14 -!- dtsund has joined ##crawl-dev 16:31:37 -!- MarvinPA has joined ##crawl-dev 16:33:24 -!- SamB_XP has quit [Ping timeout: 250 seconds] 16:33:52 -!- SamB has quit [Ping timeout: 255 seconds] 16:48:51 -!- Voxxik has joined ##crawl-dev 16:54:57 -!- Wensley has joined ##crawl-dev 17:13:47 Wensley: still around? 17:14:24 wait a sec. my naga can constrict dispater? 17:14:34 why is dispater not some fucking huge dude? 17:15:20 why would he be huge? 17:16:27 galehar: pong 17:17:17 I understand adding the suppressed status in the player class is good. But are you sure you need to save it? 17:17:51 I just skimmed through the backlog, so maybe I missed something important 17:22:08 galehar: we don't need to save it, I ended up putting it in the hashtable rather than making it a field on player 17:22:16 mostly because that seemed the easiest 17:22:29 yeah, it is indeed easier 17:22:54 <|amethyst> it's still saved in that case 17:23:12 have you tried just replicating what haloed does? 17:23:39 well yes, obviously since that's what in trunk 17:23:50 and it doesn't work? 17:23:57 no, it all works 17:23:59 everything is good 17:24:16 <|amethyst> the issue is that you need to recalc all kinds of stuff when you or the moth moves 17:24:35 |amethyst: well we only recalc hp and mp whenever we detect that the player's suppressed status has changed 17:24:40 so it's better than every step 17:25:10 I see 17:25:32 well, in that case, you absolutely don't need to save it 17:25:36 right 17:25:55 but I think it would be more effort to not save it than to save it 17:26:03 <|amethyst> for a prop, yeah 17:26:10 you can just add a boolean to the player.h 17:26:11 <|amethyst> just make sure it works right on load 17:26:27 <|amethyst> yeah, adding a bool and not saving it is even simpler 17:26:32 there are many stuff in the player class which isn't saved 17:26:40 <|amethyst> no need to worry about save compat in that case 17:26:43 |amethyst: if there's no prior record of a player's suppressed status then it recalcs and redraws anyway, to be safe 17:26:52 do you want me to go back and change it? 17:27:29 <|amethyst> if it's already working as a prop, no need to change it 17:27:51 it all works with no issues 17:28:17 ??suppression[5] 17:28:18 suppression[5/5]: TODO: suppress weapons; suppress evocable abilities; suppress/defer equip messages; handle fixedarts 17:29:38 ok. the CrawlHashTable has a limit of 255 key/value pairs, so we shouldn't abuse it needlessly. For stuff very temporary (like mundanity is), it's fine though. 17:30:06 just don't forget to delete the key when the actor leave the aura. Not just the value. 17:32:05 galehar: well the idea is that we need to know when to recalculate/redraw stats whenever we *cross into* the aura, so we need some record of what the suppressed status was on the previous turn, and then we compare it to what it is currently and see if it's changed 17:32:21 -!- HangedMan has joined ##crawl-dev 17:32:37 it's not enough to test for suppression, because we also need to recalculate whenever the player moves out of the aura as well 17:32:50 yeah, I got that. I mean you can test the key existence instead of its value. 17:33:26 I suppose, but that seems a bit precarious if we have more than 255 things potentially wanting to use the hash table :P but I can do that 17:34:36 CrawlHashTable has exists and erase methods 17:35:11 I'm the one who put the recommandation to use props in the save_compat guide. I should probably mention this stuff too. 17:35:35 Several more branch-specific staircases (https://crawl.develz.org/mantis/view.php?id=5633) by roctavian 17:36:49 <|amethyst> galehar: the example code needs updating too 17:37:55 indeed 17:38:06 it would be good to update and write more of those 17:38:24 -!- Voxxik has quit [Ping timeout: 250 seconds] 17:38:54 explaining how monsters' id work and which one is recommended to use would be great for example 17:40:15 <|amethyst> tracers 17:41:51 kilobyte: dispater would be pretty large because he has a tall tile now 17:42:06 pff 17:42:16 i kind of always expected all the unique demons to be freaking huge 17:42:20 lom lobon has a "tall" tile but is not very large within said tile 17:42:25 since he floats 17:42:34 <|amethyst> Cerebov is the only one who is actually bigger than SIZE_LARGE 17:42:53 hm, well, im a naga, so im kind of large too 17:43:15 i was just really surprised to be able to constrict him is all 17:43:27 also kilobyte you are a terrible person for using "Golubria's Roulette" instead of "Roulette of Golubria" 17:43:54 HangedMan: btw, have you seen dispaters tile? freaking huge. also, <3 all the new demon lord tiles. 17:44:14 yes I have seen the varied tiles 17:44:48 personally I don't think mnoleg should be large and antaeus should be larger then larger 17:44:54 larger then large 17:45:32 he looks pretty huge 17:45:37 which he 17:46:06 giant demon jester is not much scarier then regular demon jester 17:47:27 hmm, "the x of y" as opposed to "y's x" is only done for hellbinder and cloud mage, not counting golubria 17:47:46 i hate demon jester mnoleg in general 17:48:17 id prefer a non-humanoid mnoleg 17:49:59 I had some weird chaos monster ideas a while back, things like splindly, amorphous figures with organ systems constantly growing out of them and being shed 17:51:05 mnoleg and cerebov could be less humanoid since the hell lords are meant to be distinctly humanoid, lom is a ball-guy and gloorx is a floating hood 17:52:03 -!- ainsophyao has quit [Remote host closed the connection] 17:52:30 i opted to not change the original tiles much when i did the tall ones 17:52:48 aside from flipping mnoleg upside-down, you mean 17:52:54 "much" 17:53:54 HangedMan: somewhere on the wiki there is a list of lovecraftian monster descriptions 17:54:26 https://crawl.develz.org/wiki/doku.php?id=dcss:brainstorm:monster:creatures:abyss 17:54:35 squirming 17:54:46 glistening 17:56:21 you could apply such adjectives to upside-down demonic jesters 17:56:43 -!- Textmode has joined ##crawl-dev 17:57:59 <|amethyst> you could make him a mockery of the human form 17:58:06 -!- Ragdoll has quit [Quit: Ragdoll] 17:58:11 <|amethyst> upside-down doesn't count as a mockery :) 17:58:28 backwards legs and arms 17:58:34 <|amethyst> upside-down with legs growing out of the head, that sort of thing 17:59:01 look around in scp for ideas 17:59:11 all things considered, i'm not a giant fan of the new tile and i'd be perfectly willing to make a new one 17:59:54 |amethyst: extra limb joints! 18:00:42 "the insides of the stomach were lined with teeth and faces" 18:01:03 other things that come to mind: smt arioch, mara 18:01:15 <|amethyst> maybe some percentage of killer klowns could be upside-down to compensate 18:01:49 spinning 18:01:51 do killer klowns not change tile often like they do color in ascii? 18:02:06 they change tile like they do colour, I think they're the only that do that 18:02:16 old subtractor snakes, I guess 18:02:39 <|amethyst> FR: make the attack correspond to the current colour 18:02:42 ontoclasm's tiles to that with chaos spawn should really be in 18:02:46 <|amethyst> final fantasy stone soup 18:02:47 ??klown 18:03:05 those chaos spawn tiles are cool but i feel like they might be better on another monster 18:03:05 klown[1/1]: Special damage type used by Killer Klowns. Per attack randomly: nasty poison (spiny frog), rot (necrophage), drain (wraith), fire (lava fish), cold (ice beast), blink (phantom). Has antimagic (lorocyproca) in 0.10. 18:03:21 what colours are rot and drain 18:03:28 brown, pink? 18:03:37 <|amethyst> brown and black 18:03:41 <|amethyst> I guess 18:03:43 heh 18:03:55 depends whether you mean in-game or for the bot 18:04:03 @??wraith 18:04:03 wraith (16W) | Spd: 10 | Int: normal (doors) | HD: 6 | HP: 21-45 | AC/EV: 10/10 | Dam: 1313(drain) | Fl: 07undead, evil, see invisible, lev | Res: 06magic(56), 02cold, 03poison, 12drown, 04rot+++, 13neg+++, 13torm | Vul: 08holy++ | XP: 210. 18:04:17 necrophage (15n) | Spd: 10 | Int: normal (items) | HD: 5 | HP: 17-38 | AC/EV: 2/10 | Dam: 804(rot) | 07undead, evil | Res: 06magic(33), 02cold, 03poison, 12drown, 04rot, 13neg+++, 13torm | Vul: 08holy++ | Chunks: 04rot | XP: 151. 18:04:17 <|amethyst> %??necrophage 18:04:25 @??lava fish 18:04:26 lava fish (05;) | Spd: 10 | Int: insect | HD: 4 | HP: 13-31 | AC/EV: 4/15 | Dam: 1004(fire:4-7) | Res: 06magic(16), 04fire+++ | Vul: 12cold | XP: 60. 18:04:30 rotfire 18:04:48 would klowns be better if they did chaos instead of klown 18:04:49 wraith (16W) | Spd: 10 | Int: normal (doors) | HD: 6 | HP: 21-45 | AC/EV: 10/10 | Dam: 1313(drain) | 07undead, evil, see invisible, lev | Res: 06magic(56), 02cold, 03poison, 12drown, 04rot+++, 13neg+++, 13torm | Vul: 08holy++ | XP: 210. 18:04:49 %?? wraith 18:04:57 klown just seems like a less fun chaos 18:05:17 well, it lets them be more reliable for damage 18:05:27 when i think reliable i think klowns 18:05:32 -!- syllogism has quit [] 18:05:36 fair point 18:05:57 <|amethyst> FR: makhleb-worshipping demon priest with major destruction 18:06:04 <|amethyst> upgraded major destruction maybe 18:06:12 fr greater clown 18:06:12 deep dwarf blood knight 18:06:15 <|amethyst> hellfire, freezing cloud, ... 18:06:35 rath the Bludgeoner (L18 TeBe) ERROR in 'mon-place.cc' at line 543: Requested a monster for Abyss:7 (got: white imp) (Abyss) 18:06:42 abyss:7 18:06:43 nice 18:06:51 fr abyss zig 18:07:05 <|amethyst> ah, requesting an OOD abyss monster 18:07:06 there are already abyss zigs 18:07:09 do you mean zig abysses 18:07:10 klown unique with quad damage 18:07:28 <|amethyst> !tell kilobyte rath the Bludgeoner (L18 TeBe) ERROR in 'mon-place.cc' at line 543: Requested a monster for Abyss:7 (got: white imp) (Abyss) 18:07:29 |amethyst: OK, I'll let kilobyte know. 18:07:46 <|amethyst> !lm rath crash -log 18:07:47 4. rath, XL18 TeBe, T:48707 (milestone): http://crawl.akrasiac.org/rawdata/rath/crash-rath-20120503-230634.txt 18:08:36 s/230634/230633/ 18:08:49 should really fix that 18:08:53 it's so annoying 18:09:43 <|amethyst> I wonder if there may be similar problems with the morgue viewer 18:11:08 it's possible 18:11:58 this stems, i think, from using timestamps instead of filenames 18:12:15 but it is either a rounding issue, or multiple timestamps being taken 18:17:59 <|amethyst> ah, the hs list shouldn't have a problem 18:18:04 roctavian: can you make a gas trap tile? 18:18:13 ontoclasm already made one 18:18:22 oh 18:18:30 <|amethyst> the death dump filename uses the death time from the incipient scorefile entry 18:18:59 <|amethyst> not sure how henzell and gretell calc the death time 18:19:15 <|amethyst> err, I guess this is sequell 18:20:22 someone should add that gas trap tile 18:20:37 or any gas trap tile really 18:20:49 a ? looks dumb. 18:21:17 chaos clouds being white smoke is also dumb 18:22:02 there are also like 15 old tile submission issues that evktalo never got around to looking at 18:22:18 at least some of them are pretty nice 18:34:10 they'll make it in eventually 18:34:56 -!- roctavian has quit [Quit: Page closed] 18:48:00 -!- Voxxik has joined ##crawl-dev 18:50:04 -!- alefury has quit [Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/] 18:50:15 -!- Patashu has joined ##crawl-dev 19:06:02 -!- ark____ has quit [Quit: Leaving] 19:34:19 now that the elven halls is only 3 levels deep, donald should have some changed lines reflecting this 19:35:08 idk what though... 19:35:09 Donald says, "I descended 3 levels and the next staircase said 'closed for renovation'. Renovation to what?" 19:35:35 Donald says, "I think they're selling off parts of the halls to the dwarves." 19:36:31 -!- G-Flex has quit [Read error: Connection reset by peer] 19:38:08 -!- G-Flex has joined ##crawl-dev 19:39:44 elf isn't necessarily 3 levels deep 19:40:03 when is it not? 19:40:16 when it's 4 levels deep 19:40:23 when it's fo...yeah that 19:40:34 donald speech isn't supposed to reference old versions or obsoleted stuff, generally 19:40:56 the lines need to be changed, in any case, since he still thinks the elven halls are huuuuge 19:41:08 heh 19:41:44 @The_monster@ says, "This place goes on forever. I hate that." @The_monster@ says, "This place goes down forever. Maybe there are turtles at the bottom." 19:48:57 Yunor the Demonologist (L19 DECj) ERROR in 'mon-movetarget.cc' at line 110: ZotDef: monster it failed to pathfind to (39,48) (the Orb) (Zot) 19:58:53 -!- nicolae- has joined ##crawl-dev 20:21:58 -!- jeanjacques has quit [] 20:36:14 Teron (L15 MiFi) ERROR in 'mon-place.cc' at line 543: Requested a monster for Abyss:7 (got: hell hound) (Abyss) 20:48:25 <|amethyst> Move that to Pan 20:55:43 -!- res has quit [Read error: Connection reset by peer] 20:56:37 -!- res has joined ##crawl-dev 20:58:42 how is there an Abyss:7 21:01:01 -!- mikee_ has joined ##crawl-dev 21:01:35 magic 21:02:28 i see. there's so much about crawl i don't understand... 21:25:35 -!- HangedMan has quit [Ping timeout: 256 seconds] 21:29:33 -!- Wensley has quit [Ping timeout: 252 seconds] 21:42:31 -!- dtsund has quit [Ping timeout: 244 seconds] 21:45:08 -!- Pacra has quit [Ping timeout: 246 seconds] 21:52:45 -!- dtsund has joined ##crawl-dev 21:54:17 -!- jeanjacques has joined ##crawl-dev 21:56:28 -!- ainsophyao has joined ##crawl-dev 21:57:02 -!- Pacra has joined ##crawl-dev 21:58:19 ebarrett the Elven Blade (L27 HECj) ERROR in 'mon-place.cc' at line 543: Requested a monster for Abyss:7 (got: freezing wraith) (Abyss) 22:11:01 -!- jeanjacques has quit [Ping timeout: 265 seconds] 22:18:20 -!- jeanjacques has joined ##crawl-dev 22:34:03 -!- capablanca has joined ##crawl-dev 22:34:57 -!- mikee_ has quit [Disconnected by services] 22:35:01 -!- capablanca is now known as mikee_ 22:35:13 -!- ainsophyao has quit [Remote host closed the connection] 23:05:30 -!- Pingas has joined ##crawl-dev 23:14:30 another abyss:7 23:15:21 -!- mikee_ has quit [Read error: Connection reset by peer] 23:19:31 -!- mikee_ has joined ##crawl-dev 23:35:33 -!- ainsophyao has joined ##crawl-dev 23:36:35 Autofight with tab doesn't work properly if vi keys are disabled. (https://crawl.develz.org/mantis/view.php?id=5634) by blackflame 23:36:53 -!- nicolae- has left ##crawl-dev