00:00 -!- Grasshopper has joined #hardfought 00:00 -!- mode/#hardfought [+v Grasshopper] by ChanServ 00:00 the messages have been starting to pile up for a day or two 00:00 you think that's bad, look at crawldragon 00:00 he doesn't come for weeks at a time, and whenever he does come back, he has a boatload of messages 00:01 not in this channel...? 00:01 he hasn't come for weeks 00:01 he's overdue :P 00:16 Just killed a mummy named Jendic 00:16 AC-12 00:16 guess must be a bones mummy 00:17 oh hello Excalibur... 00:21 Elronnd: I think the objection to boolean was that there might be a compiler on some lost magnetic tape reel in a museam somewhere that didn't support it, back when there was still hardware in the world capable of running said compiler. 00:24 I mean, sure, Turbo C had boolean support in the eighties. But there might be something even older, out there, somewhere. 00:26 jonadab: the boolean problem is that there are locations in nethack source in which the fact that boolean is typedefed to xchar is abused 00:26 (and xchar isn't actually an xchar, it's an schar) 00:27 Oh, yes, that's also true. 00:27 IIRC, there are three values for some of NetHack's booleans. 00:28 Such as True, False, and Error. 00:28 Or True, False, and default 00:29 Is it considered a bad practice in the C world to set and compare pointers to 0? 00:29 Because there is tons of that in the code. 00:29 I think it depends who you ask. 00:30 Also, when NetHack does that, doesn't it explicitly cast? 00:30 As in (const char *)0 00:30 (struct monst *)0 00:30 etc.? 00:31 I think that's technically different from just saying 0. 00:31 When defining stuff, sure. For things like if(mtmp = somefunc()), no. 00:31 Ah. 00:31 And also stuff like otmp = 0; return; 00:32 Oh, hmm. 00:32 Not sure then. 00:33 aosdict: null is often used as a 'default' value. Whether this is good practice is debatable 00:33 * Elronnd has changed most of the pointer assignments to explicitly use NULL in slshem 00:34 I think zig is the only language that has a proper xchar (u7) 00:34 jonadab: but this is for nh4, where we don't care about computers using tape reels in museums 00:35 I guess the only reason why I wouldn't want to use NULL is if it's not defined by the C standard to be zero. (I do not know whether it is.) 00:35 why do you care if NULL is 0 or not? 00:36 the reason that the c standard doesn't define ULL to be 0 is that there's no *actual* reason for it to be 0 00:36 (and you might be able to dereference 0 and get a value, even though you can't deref ULL) 00:36 because people do things like if(ptr) all the time 00:36 that's defined 00:36 !NULL is true 00:37 So it implicitly translates if(ptr) to if(ptr != NULL) when detecting that ptr is a pointer type? 00:37 what do you mean by it? 00:38 the standard dictates that if ptr === NULL, then (bool)ptr = false 00:38 I always assumed that if(ptr) would just check whether ptr == 0x0 00:38 it doesn't say shit about translating 00:38 a compiler will set NULL to 0, and not worry about it 00:39 aosdict: it's confusing, but generally you use $ with pointers. So it would check if pointer == $0 00:39 YASI: a langauge where pointers are false if they point to a numeric type, true if they point to a non-numeric type. 00:40 since when does $ mean anything syntactically in C? 00:40 in order to do that, you have to differentiate between a numeric 00:40 aosdict: it doesn't. This is a convention in writing, not in c 00:40 And if the pointer is null or points to unallocated memory, testing whether it's true or not is a run-time error. 00:40 jonadab: in order to do that, you need some way to differentiate between a numeric and a non-numeric type 00:40 -!- rikersan has joined #hardfought 00:41 which can be hard. In c, the only non--numeric type, afaik, is a struct 00:41 Elronnd: Many languages have that. 00:41 C doesn't of course. 00:41 But many strongly typed languages do. 00:41 Pascal for instance. 00:42 pascal is strongly-typed 00:42 but it's also a pain in the ass to work with sometimes 00:42 maybe because it hasn't been maintained and updated, like c has 00:42 K2: the spam of "lock" msgs when you die on the /dev/null tourney is annoying 00:43 I happened to die to a grue, not sure if that matters 00:43 -!- raisse has joined #hardfought 00:43 -!- mode/#hardfought [+v raisse] by ChanServ 00:43 Yes, Pascal doesn't give you enough rope to hang yourself, or hang up your laundry, or anything else you might want to do with rope. 00:43 I mean, yes, it's theoretically Turing-complete. 00:43 But it's not designed to be really general-purpose. It's designed to be simple for teaching. 00:44 (it has file-handling in the spec...but what fiels you want to open you have to specify at copmile-time!) 00:44 rikersan: Presumably that means you didn't leave a corpse. Because you were eaten by a grue. 00:44 I dunno 00:44 I'm kinda frustrated about that, I forgot that opening your invent triggers 00:45 Ah, the lava time bug. 00:45 yes 00:45 why are c eggs standard drops in slex 00:46 Why is _anything_ the way it is in slex? 00:46 good point 00:46 including "small red sneakers" being speed boots? 00:47 jonadab: some things in slex are good, imo 00:47 like phase door, scrolls of healing and cure 00:48 [nh] HyperNeutrino (Wiz Elf Mal Cha), 0 points, T:39, killed by a falling rock 00:55 -!- noty has quit [Quit: WeeChat 1.9] 01:01 -!- Tarmunora__ has quit [Read error: Connection reset by peer] 01:14 -!- rikersan has quit [Quit: Lost terminal] 01:16 [nh] HyperNeutrino (Wiz Elf Mal Cha), 525 points, T:744, killed by a kitten 01:24 [nh] HyperNeutrino (Wiz Elf Mal Cha), 190 points, T:516, poisoned by a rotted kobold corpse 01:34 -!- bgiannan has left #hardfought 01:34 [nh] HyperNeutrino (Wiz Elf Mal Cha), 118 points, T:466, killed by Mr. Raciborz, the shopkeeper 01:34 -!- bgiannan has joined #hardfought 01:35 [nh] HyperNeutrino (Wiz Elf Mal Cha), 30 points, T:83, killed by a fox 01:36 jonadab: eh, people have used pascal for non-trivial applications 01:36 lazarus, the fpc IDE, is written in pascal 01:36 and I think fpc itself might alsol be written in pascal 01:42 [nh] HyperNeutrino (Wiz Elf Mal Cha), 393 points, T:843, killed by a giant rat 01:44 -!- LarienTelrunya has joined #hardfought 01:56 :D 01:56 LarienTelrunya: Message from aosdict at 2017-10-10 21:35 EDT: did you implement the "You noob!" thing from that YANI recently, or was it already there? 01:56 aosdict: yeah I implemented it after the YANI got thrown around in the channel 02:10 yay, mollified Thoth with a vampire bat corpse 02:11 (he was pissed off because I prayed too early) 02:12 -!- nht has joined #hardfought 02:13 You kill the rabid rat! It explodes! You seem unaffected by it. 02:21 -!- elenmirie has quit [Ping timeout: 255 seconds] 02:26 [nd] Raisse (Wiz Gno Fem Neu) acquired the luckstone from Mines' End, on T:13118 02:32 -!- lorimer has quit [Read error: Connection reset by peer] 02:32 -!- lorimer has joined #hardfought 02:40 not that I needed it, already had a bessed luckstone 02:40 blessed, even 02:45 I wish controlled teleportitis would target the last travel destination 02:46 the place you were going when teleportitis interrupted your travel 03:21 -!- firemonkey has quit [Quit: Nettalk6 - www.ntalk.de] 03:43 -!- Grasshopper has quit [Read error: Connection reset by peer] 03:48 -!- Grasshopper has joined #hardfought 03:48 -!- mode/#hardfought [+v Grasshopper] by ChanServ 03:57 -!- Grasshopper has quit [Remote host closed the connection] 04:03 -!- Grasshopper has joined #hardfought 04:03 -!- mode/#hardfought [+v Grasshopper] by ChanServ 04:09 [nd] Raisse (Wiz Gno Fem Neu) killed Medusa, on T:19341 04:51 [nd] Raisse (Wiz Gno Fem Neu) had Vorpal Blade bestowed upon her by Thoth, on T:19882 04:54 -!- bug_sniper has quit [Ping timeout: 255 seconds] 05:08 are revgeno'd dragons less likely to leave scales now? 05:08 -!- elenmirie has joined #hardfought 05:08 -!- mode/#hardfought [+v elenmirie] by ChanServ 05:09 I did two lots, 10 total, no scales at all 05:19 -!- khoR has joined #hardfought 05:22 [nd] Raisse (Wiz Gno Fem Neu) killed the invisible Dark One, on T:22115 05:22 [nd] Raisse (Wiz Gno Fem Neu) acquired the Bell of Opening, on T:22116 05:23 eep something cursed my unicorn horn 05:23 I suppose it was the Dark One 05:23 he's a jerk 05:24 or rather, he was a jerk 05:24 he *was* a jerk :-) 05:24 yes 05:24 lol 05:24 * raisse wants another magic marker 05:24 or a scroll of charging at least 05:25 oh! no wonder that happened, I was whacking him with a pickaxe 05:25 instead of magicbane 05:30 [nd] Raisse (Wiz Gno Fem Neu) polymorphed her first object, on T:22338 05:32 yay magic mapping 05:32 [nd] elagabalus (Pri Hum Fem Neu), 1334 points, T:2778, killed by a rabid rat 05:45 -!- firemonkey has joined #hardfought 05:46 poor Neferet, I forgot to tell her that I killed the Dark One 05:46 [nd] elagabalus (Pri Hum Fem Neu), 353 points, T:788, killed by a hobbit 05:59 Nefermind 06:03 but I prefer it if she doesn't keep asking for help every time I pass that level 06:03 (and my most convenient altar is on that level so I do pass it often) 06:33 [nd] Raisse (Wiz Gno Fem Neu) made her first wish - "blessed +3 silver dragon scale mail", on T:25289 06:34 [nd] Raisse (Wiz Gno Fem Neu) wished for "uncursed magic marker", on T:25307 06:34 oh wow, 0:97 06:39 Elronnd: Some versions of Pascal have somewhat more functionality than the language was originally supposed to have. Heck, Delphi is basically a Pascal dialect. But the original design of the language was for teaching, similar to BASIC. 06:41 pff, all that effort to move a whole regiment of soldiers' gear off the castle throne and it vanishes on the first #sit 06:49 [nd] Raisse (Wiz Gno Fem Neu) entered Gehennom, on T:25514 06:53 hm, I have a c corpse but there's an incubus around 06:53 also I'd have to unwield Magicbane to wield it and there's an arch-lich around 06:53 better put it in my bag so nobody else can pick it up 06:59 [nd] elagabalus (Pri Hum Fem Neu), 1296 points, T:3144, killed by a hobgoblin 07:34 [nd] Raisse (Wiz Gno Fem Neu) killed Juiblex, on T:27483 07:35 jonadab: I spent several months working on a twenty-year-old codebase in Delphi... never again 07:39 aosdict: Was it as bad as working on a thirty-five-year-old codebase in pre-ANSI C? 07:41 [nd] Raisse (Wiz Gno Fem Neu) killed Baalzebub, on T:27719 07:42 Actually, yes, I would say it was worse. 07:43 C at least is more readable and malleable. 07:48 And a lot of edits don't actually require you to wrap your head around the pre-ANSI-isms 07:50 Hmm, I've never faulted Pascal for its ability to be readable. 07:50 I can see where it would have a problem with malleability. 07:50 !tell rikersan lock issue fixed 07:50 Will do, K2! 07:57 was a permissions thing 08:11 dentist time! 08:11 bbl 08:25 -!- Tarmunora has joined #hardfought 08:31 [nd] Raisse (Wiz Gno Fem Neu) destroyed Vlad the Impaler, on T:29528 08:31 [nd] Raisse (Wiz Gno Fem Neu) acquired the Candelabrum of Invocation, on T:29529 08:37 -!- noty has joined #hardfought 08:37 argh orcus read cursed teleport 08:46 -!- bug_sniper has joined #hardfought 08:46 -!- LarienTelrunya has quit [Quit: Page closed] 08:47 hey, that's better than Rodney doing it 08:47 or, actually, Vlad. 09:03 -!- bug_sniper has quit [Read error: Connection reset by peer] 09:10 [nd] Raisse (Wiz Gno Fem Neu) killed Asmodeus, on T:30840 09:11 You now detect it where the vampire bat was. 09:11 is that a spurious "it" message? 09:11 I could see the vampire bat with telepathy but not the "it" 09:11 and monster detection had just timed out 09:25 huh, I thought that was fixed 09:25 it's a bug 09:26 is this a tame vampire? 09:26 no, it was a random vampire on the asmo level 09:27 when I recast monster detection I could see the fog cloud turning back into a bat 09:28 -!- NotTheOracle\dnt has quit [Remote host closed the connection] 09:31 I wonder if vampshifted fog clouds should count as intelligent and still show up with telepathy 09:32 I wish I had a ring of protection from shape changers 09:33 when I get back to my stash I'll do some polypiling, I've been picking up all kinds of rinds 09:33 rings* 09:33 not worth an actual wish as long as I have poly charges 09:34 (and I'm opening everything with knock, I may get good enough at matter spells to actually cast poly) 09:34 have it at 96% fail now, basic in matter 09:39 if vampires are actually mindless while they are fog clouds, that raises some interesting existential questions as to whether they would *want* to. 09:39 er, want to turn into fog clouds 09:42 sometimes it's nice to be mindless for a while? 09:44 must go and do some grocery shopping 09:44 that will probably kill me when I get back, most of my late-game deaths are just after reload 09:56 -!- raisse has quit [Ping timeout: 246 seconds] 10:01 YASI: your god respects your conducts and will not gift artifact weapons if weaponless, books if illiterate, and might give minions if pacifist 10:02 not sure why YASI 10:03 because some people dislike the idea of balancing the game around conduct play 10:04 Stuff like "polytrap doesn't work if you still have polyselfless intact" makes sense to oppose. But it makes sense for your god to observe your conduct. 10:05 At least, it makes more sense than letting them gift you useless stuff. 10:06 YANI: your god respects your conducts only if lawful or neutral. Chaotic gods will still give you whatever. 10:06 Haha 10:07 EPI: when you convert an altar, the altar's god will spite you by "gifting" you one of the useless artifacts (preferring intelligent ones of their own alignment) 10:15 You sense the power of Mars increasing. Venus cries out, "Use my gift wisely!" a - a morning star named Ogresmasher. 10:19 Actually, intelligent crossaligned non-quest artifacts can still be useful, so they use a prioritized list of [Trollsbane, Ogresmasher, Giantslayer, Dragonbane, ...] 10:19 -!- bug_sniper has joined #hardfought 10:20 -!- raisse has joined #hardfought 10:20 -!- mode/#hardfought [+v raisse] by ChanServ 10:28 Heart of Ahriman. 10:33 -!- aosdict has quit [Ping timeout: 260 seconds] 10:33 -!- aosdict_ has joined #hardfought 10:35 aosdict_: ogresmasher is worse than trollsbane 10:36 (did I quit just now? if so what was the quit reason?) 10:37 16:33 -!- aosdict [~hidenb2@75-136-80-112.dhcp.wrcs.ma.charter.com] has quit [Ping timeout: 260 seconds] 10:37 hmm 10:37 I wonder whether my bouncing server crashed 10:44 -!- rikersan has joined #hardfought 11:04 -!- noty has quit [Quit: WeeChat 1.9] 11:06 -!- aosdict has joined #hardfought 11:06 -!- aosdict_ has quit [Quit: Quit] 11:07 hmm. I guess the connection was just interrupted 11:16 [slex] rikerw (Fla Ang Mal Neu), 24318 points, T:2441, killed by a monster (4chan horse) 11:26 -!- Grassy has joined #hardfought 11:26 -!- mode/#hardfought [+v Grassy] by ChanServ 11:29 -!- Grasshopper has quit [Ping timeout: 255 seconds] 11:33 *now* I get silver dragon scales 11:33 from one summoned by a purple L 11:33 !whereis raisse 11:33 rikersan: Message from K2 at 2017-10-11 07:50 EDT: lock issue fixed 11:33 rikersan: Raisse [nd]: No details available 11:33 k2: thanks 11:34 raisse: RIP 11:34 I aten't dead yet 11:34 I'm on level 44 (the one with the portal to rodney's tower) in gehennom 11:35 have you found the square yet? 11:35 yes, and the bell and candelabrum with candles are on it 11:38 gah, there are *no* tinning kits in this game 11:38 and I've just murdered a tribe of giants 11:48 -!- LarienTelrunya has joined #hardfought 11:49 !tell K2 fix a memory leak introduced a day ago-ish 11:49 Will do, FIQ! 11:49 *fixed 11:59 -!- raisse has quit [Ping timeout: 248 seconds] 12:02 -!- Grassy has quit [Read error: Connection reset by peer] 12:20 -!- Grasshopper has joined #hardfought 12:20 -!- mode/#hardfought [+v Grasshopper] by ChanServ 12:21 @d?quinon 12:21 quinon (e) | Lvl: 5 | Diff: 12 | Spd: 5 | Res: sleep poison petrification | Confers: sleep | MR: 50 | Generates: gehennom dungeons | AC: 0 | Attacks: 1d5 passive paralyze, 1d15 gaze study, 5d2 claw physical, 5d3 kick stun, 5d4 cast spell, 5d5 breath sleep | Alignment: 10 | Flags: amphibious, breathless, seeinvis, nopoly, infravisible 12:22 @le?quinon 12:22 quinon (e) | Lvl: 5 | Diff: 14 | Spd: 5 | Res: sleep poison petrification | Confers: sleep | MR: 50 | Generates: special | AC: 0 | Attacks: 1d18 passive paralyze, 1d18 touch paralyze, 5d2 claw physical, 5d3 kick stun, 3d4 cast spell, 5d5 breath sleep | Alignment: 10 | Flags: amphibious, breathless, seeinvis, infravisible 12:22 same thing 12:24 LarienTelrunya: is that recent wiki forum post about slex? It doesn't seem like regular nethack 12:26 nope, slex doesn't have hireable mercenaries; I wondered what it was about, too 12:26 ^ 12:26 sounds like another game to me 12:26 iirc I read about a new-ish one on r/roguelikes a month or so ag 12:47 where are the fiqhack options? 12:47 um 12:47 press o? :P 12:48 I thought it was it's own rc 12:48 ah 12:48 sorry, NH4 variants doesn't believe in rcfiles 12:49 lol 12:49 I intend to fix it 12:49 but it's nontrivial 12:49 which is why I haven't 12:49 how do I use ascii? 12:49 bottom option 12:49 thanks 12:49 out of curiousity, why? 12:50 I think you're the first one who askedf or it :P 12:50 I don't like the unicode graphics 12:50 *asked for it 12:50 OK, so no graphical glitches 12:50 shrug 12:50 all good then 12:50 nah not that 12:50 at least fiqhack doesn't 12:50 OK 12:50 Yeah, up to you 12:50 DEC and IBM don't work in my stock terminal, this looks fine though 12:50 Just wanted to see if there was some graphical errors 12:50 Yeah, libuncursed tries its hardest at parsing correctly everywhere 12:51 autodetecting stuff 12:51 shrug 12:51 :/ msgs are really hard to read w/ my terminal 12:51 You can turn off message colors or change pallet 12:52 if you'd like 12:52 can I do that within fiqhack? 12:52 yes 12:52 I'm changing that color in my term settings rn 12:52 ooh 12:53 what's that under? I don't see it 12:53 interface options 12:53 messages and menus for msgcolor 12:53 you can use arrow keys 12:53 to move a line at a time 12:54 thanks :D 12:54 np 12:54 lol, I'll need to change my terminal settings anyway I think 12:54 yellow is dark blue for whatever reason 12:54 so newts are practically invisible 12:54 lol 12:54 FIQHack offers some pallets 12:55 you can change it in options near the bottom 12:55 I'll check later 12:55 ok 12:55 (some terminals will not recognize pallet changes, in these cases you'd have to set it up yourself) 12:55 -!- Grasshopper has quit [Remote host closed the connection] 12:56 I can't quit? 12:56 huh 12:56 oh 12:56 other options that might interest you: classic_status (NH3 status bar), show_ac (replace Def:0+ with AC:10-) 12:56 hm that's a cool save 12:56 [fh] riker (rikerw) (Kni Hum Mal Law), 13650 points, T:258, quit 12:56 -!- Grasshopper has joined #hardfought 12:56 -!- mode/#hardfought [+v Grasshopper] by ChanServ 12:57 -!- raisse has joined #hardfought 12:57 -!- mode/#hardfought [+v raisse] by ChanServ 12:58 where does it show my stats? 12:58 ? 12:58 I don't see my stats on this 12:58 you mean str, dex, etc? 12:58 ye 12:58 you will either need to revert to classic_status 12:58 ah, ctrl-x 12:59 or use a bigger terminal so that it is 3 lines 12:59 if you want it on bottom bar 12:59 but yeah, you can use ctrl+x too 12:59 if you're fine with not having them show all the time 13:02 huh, starting spellbooks don't teach you the spell? 13:03 slight change 13:03 the alternative would make you not start with books 13:03 due to how they changed 13:04 ye 13:04 I ensured that they were blessed 13:04 to make it not have a significant gameplay impact 13:04 ye 13:06 hm, the inability to use enter/esc to clear menus is annoying 13:10 _sigh_ fiq, nymphs will put on, say, a stolen "oLS right? 13:10 or will they not know what it is 13:11 yep it did 13:12 if a monster puts on an unknown amulet you know that it's either reflection or life saving 13:12 it was known 13:12 they will, yes 13:12 (and you can check by zapping a ray at them 13:12 ) 13:12 and what raisse is saying doesn't apply to fiqhack 13:12 what will they do in fiqhack? 13:12 oh sorry, I didn't read backscroll 13:12 because they put on several amulets in FIQHack 13:13 including those 2, and others 13:15 You feel like you've been here before. To what position do you want to be teleported? 13:15 as if I'd know! 13:16 lol, a whole zoo that I never got to because all the pathways to it are behind secret doors 13:16 I'll just leave it be 13:16 is this still the same game as earlier? 13:16 yes 13:17 remapping levels I lost after being mindflayed when I pass them anyway 13:17 FIQ: I prefer the ascii tileset as well. 13:18 fiq: how do I hide message spam? 13:18 things like " displaces " 13:20 Ah, we need channel display customization. 13:20 also, why are things auto-id'ed as uncursed/cursed? 13:20 is it only if they would stack? 13:21 yes 13:21 @ latter 13:21 huh cool 13:21 as for the former... can you give an example of when this is msgspam? 13:22 when I got 3 msgs in a row of "it displaces the garter snake" 13:22 -!- MTF has quit [Quit: *poof*] 13:22 and I couldn't skip them because I have to hit enter twice for each "--more--" 13:22 [nd] Raisse (Wiz Gno Fem Neu) performed her first genocide (class L), on T:34099 13:22 *them easily 13:22 -!- MTF has joined #hardfought 13:22 ooh magical crossbow 13:22 sadly monks can't use that 13:23 gah, would have been genoless if not for that pesky L that kept summon get-in-the-way monsters 13:23 or I can :D 13:23 summoning* 13:23 rikersan: hmm 13:23 rikersan: If you are getting --more-- on a regular basis, your msgheight is too small (or your terminal is too small). 13:23 it's 80x24 13:23 I'll try increasing that 13:23 Ah. 13:23 Yeah. 13:23 remember that if you increase term size 13:24 you need to fully exit dgl 13:24 Note that dgamelaunch doesn't like it if you change it while connected. 13:24 for it to take effect 13:24 :D 13:24 yep I know 13:24 now it's perm_invent and everything 13:24 thanks :D 13:24 yeah that's more like it 13:24 But yes, you're missing half the advantages of NH4 if you don't have room for the sidebar and a sizeable message area. 13:24 * aosdict likes playing nethack in small terminals 13:25 I do too 13:25 it's just for nh4 it looks necessary 13:25 aosdict: I can't stand playing without at least a ten-line message area. 13:25 rikersan: It's necessary for all roguelikes, IMO. 13:25 Well, anything that ever issues more than one message per turn. 13:25 Going back and playing 3.4.3 without it is physically painful for me now. 13:26 lol 13:26 urgh 13:26 "How did I ever live with having to lean on the spacebar and then hit Ctrl-P after EVERY SINGLE ACTION?" 13:26 there's this weird bug that I don't understand lol 13:26 The barrow wight casts a spell! You can see again. 13:26 raisse: healing :) 13:26 for whatever reason, after my object memory stuff, I can no longer pickup objects in an object pile 13:26 yes, because cure blindness doesn't work on anything except the caster 13:26 otherwise stuff works fine 13:27 You escape a trap door. It misses! 13:27 raisse: in FIQHack where monsters do cast stuff like healing/etc, it will cure blindness unless selfzapped 13:27 to mimic how it worked in NH3 13:27 The trap door hits you! 13:27 yes, that's the definition of "escape", isn't it? 13:28 jonadab: I just hit esc to skip things a lot :p 13:28 jonadab: guess how long ADOM's msgbuffer is 13:28 rikersan: And then you skip the message that told you you're going to die in three turns... 13:28 FIQ: I don't remember. 13:28 just one 13:28 of course 13:28 that's why we have MSGTYPE=stop 13:28 Ugh. 13:28 jonadab: that's what status colors are for 13:28 I knew there were things about the ADOM UI that I hated. 13:28 aosdict: doesn't work if escaped 13:28 rikersan: statuscolors don't tell you everything. 13:28 and I don't normally do that when around illness/stoning/etc. causing monsters 13:28 jonadab: easily the worst part about ADOM IMO 13:28 is its horrible interface 13:29 like, it's even worse than NH3 tty 13:29 and that's saying something 13:29 EPI: hitting the Escape key, at any time, makes you escape from the dungeon instantly and ends the game. 13:29 aosdict: If you hit Escape to skill all your messages, MSGTYPE=stop won't help you. 13:29 aosdict: Ouch. 13:29 That is horrible. 13:29 (NH3-NAO, at least, 3.4.3's is worse) 13:29 why thank you :) 13:29 aosdict: Bonus points if it works for anything that causes an escape character to be sent. 13:29 Such as the arrow keys. 13:30 jonadab: however, there's one major difference 13:30 between NH3 msgbuffer and NH4 single-line msgbuffer 13:30 NH3 unix-tty will not split up a single message, ever 13:31 NH4 will 13:31 so single-line msgbuffer is even worse in NH4 than NH3 13:31 what's the "or some reason, you think that you can almost hear the Wizard laugh manically" msg mean? 13:31 [fh] riker (rikerw) (Mon Hum Mal Neu), 49263 points, T:2159, killed by an owlbear 13:31 it means that if you made bones 13:32 huh cool 13:32 you respawn as a player monster 13:32 that's only semicool 13:32 why :P 13:32 last I checked player monks were not good 13:32 You drop 1448 gold pieces. You hear a clank. 13:32 it makes bones much more interesting 13:32 though I guess it depends on level 13:32 rikersan: did you learn your spell 13:32 what spell was it 13:32 ? 13:32 was it sleep 13:32 healing 13:32 ah 13:32 I tried to cast, failed cuz I wanted good AC and had some metal gear on 13:32 so if a player finds your bones 13:33 you'll be able to heal 13:33 heh 13:33 that's nice 13:33 you'll also liberally use all the items you had against whoever finds it 13:33 it makes stuff... intersting 13:33 *interesting 13:33 much moreso than vanilla bones 13:33 I had a scroll of earth too :D 13:33 will things still be cursed? 13:33 not if you spawn as a player monster 13:33 :D 13:33 let's say that you had a wand of create monster 13:34 that would mean that whenever you find the next player subject to the bones 13:34 you'll spam create monster 13:34 :D 13:34 it's pretty cool IMO 13:34 yes 13:34 very 13:34 though RIP person who gets endgame wizard bones 13:34 heh 13:35 jonadab: you should port that feature ;) 13:35 -!- rikersan has quit [Quit: Lost terminal] 13:36 FIQ: Sounds like work. Can I get it for free if I wait and rebase, after you finish xhity? 13:37 yes 13:37 but who knows when that is done 13:37 quite a major refactor 13:37 jonadab: and I've already tried once :P 13:37 Yeah, I know, you keep doing, like, features that _players_ care about lately, instead of code stuff that only developers will ever notice. 13:37 but at least I now have a partially-done xhity refactor 13:37 and it has been rather well-tested 13:38 since there has been complete games with ascensions since 13:38 jonadab: yeah, I do both 13:39 jonadab: doing the former makes more want to try out FIQHack 13:39 which makes it easier to test the latter 13:39 [nd] Raisse (Wiz Gno Fem Neu) wished for "blessed wand of death", on T:34995 13:39 FIQ: good point 13:39 [nd] Raisse (Wiz Gno Fem Neu) killed the invisible Wizard of Yendor, on T:35003 13:40 [nd] Raisse (Wiz Gno Fem Neu) acquired the Book of the Dead, on T:35009 13:40 jonadab: this current thing I'm working on is something I've missed in vanilla since like 2014 13:40 The object memory? 13:40 I keep forgetting where I stash stuff 13:40 yes 13:40 That's gonna _need_ testing. 13:40 really :P 13:40 I predict bugs. 13:40 yeah 13:40 But yes, players will like it. 13:40 it is mostly "stable" atm 13:40 as in, it no longer constantly crashes 13:41 now it will only crash most of the time? 13:41 no 13:41 Now it only panics 13:41 latest build I have yet to cause it to crash 13:41 Instead of segfaulting. 13:41 yeah 13:41 if I pickup an object 13:41 from an object pile 13:41 it loses track of it somehow 13:41 [nd] Raisse (Wiz Gno Fem Neu) performed the invocation, on T:35029 13:41 "Error: extract_nobj: object lost" 13:42 with gdb watchpoints on the floating obj chain, it seems like object memory updates is fucking up the floating object chain 13:42 -duplicate wording 13:43 however I don't understand why it only happens when object piles are involved 13:43 at least I tracked down a very annoying bug that refused to reproduce in debuggers 13:43 that could've been bad 13:47 -!- tacco| has joined #hardfought 13:52 -!- khoR has quit [Quit: Connection closed for inactivity] 14:24 [nd] Raisse (Wiz Gno Fem Neu) killed the high priest of Moloch, on T:35751 14:24 [nd] Raisse (Wiz Gno Fem Neu) acquired the Amulet of Yendor, on T:35751 14:26 I charmed Yeenoghu and now he's peaceful and obnoxious 14:32 grr mysterious force 14:32 don't wanna do that now 14:33 -!- nht has quit [Quit: nht] 15:13 -!- rikersan has joined #hardfought 15:15 raisse: You can charm demon lords? 15:16 I know they can spawn peaceful, but didn't know they could be pacified when hostile 15:17 [gh] nethack333 (Kni Hum Mal Law), 0 points, T:131, killed by an iguana 15:19 [dnh] snake153 (Val Swn Fem Law), 242 points, T:565, killed by a poisonous corpse 15:22 FIQ: I didn't know I could, didn't intend to charm him, only the other monsters so they wouldn't be bothering me 15:22 but then he became peaceful 15:22 (not tame of course) 15:22 and every time the MF puts me back on the level where I thought I'd left him he's with me again 15:23 which lord? 15:24 [nd] munterplant (Val Hum Fem Law) polymorphed her first object, on T:10033 15:24 !whereis munterplant 15:24 rikersan: munterplant [nd]: No details available 15:24 :/ 15:27 rikersan: Yeenoghu 15:28 showed up in the sanctum, probably gated in by another & 15:28 [dnh] rikersan (Ana Hum Mal Neu), 60 points, T:320, caught himself in his own blast 15:29 raisse: ah cool 15:29 rikersan: no, not at al, he gets in the way so! 15:29 lol 15:29 how? 15:29 can't you just whistle him away and ditch him in soko or smth? 15:29 gets in front of me when I walk from one staircase to the next 15:29 ah lol 15:29 no, he's not tame, he's peaceful and glued to me 15:30 and I can't levelport or branchport with the amulet 15:30 (also subject to mysterious force, can't seem to leave level 44) 15:32 ah 15:32 that's odd 15:32 wonder why he's following you hm 15:32 [nd] munterplant (Val Hum Fem Law) completed Sokoban, on T:10252 15:33 [dnh] rikersan (Ana Hum Mal Neu), 103 points, T:17, caught himself in his own blast 15:33 freaking stupid blasters 15:50 [dnh] rikersan (Ana Dro Mal Neu) entered Minetown for the first time, on T:2083 15:57 why can i successfully read a spellbook while hallucinating? 16:00 YASI: if you read spellbooks while hallucinating, you learn hallucinatory spells, which A) are tied to spellbook appearance (so it can't be used to ID the book while hallucinating), B) can only be cast while hallucinating, C) use no Pw, and D) print funny messages about the stuff your spells are supposedly doing, but there's no actual gameplay effect. 16:00 lol 16:01 [dnh] rikersan (Ana Dro Mal Neu), 5999 points, T:3515, fell into a pit 16:01 "You cast Cosmic Rays! Gamma radiation bursts from your fingers! All your enemies mutate!" 16:01 >_< landmine 16:02 ... which does nothing other than change their hallu glyph :p 16:02 Yes. 16:10 [dnh] rikersan (Ana Vam Mal Neu) entered Minetown for the first time, on T:1368 16:17 jonadab: RadSick 16:18 FIQ: Yes. 16:20 "You cast Evan's Spiked Tentacles of Forced Intrusion. The Ravenous Bugblatter Beast of Traal is not comfortable being grappled there!" 16:29 [dnh] rikersan (Ana Vam Mal Neu), 12770 points, T:3113, killed by a dwarf king 16:29 ;-; 16:29 mattocks are strong and I was not 16:32 -!- rikersan has quit [Quit: Lost terminal] 16:39 how did 3.6 change msgtype? 16:39 wiki is unhelpful 16:44 [nd] munterplant (Val Hum Fem Law) wished for "blessed figurine of an Archon", on T:11156 16:45 FIQ: MSGTYPE is a community patch. 16:45 3.4.3 didn't have it, except when patched. 16:45 No 16:45 I think. 16:45 No? 16:45 Well 16:45 It was 16:45 But not anymore 16:45 3.6.0 has it 16:45 Ah. 16:45 I am setting up my devnull config 16:45 But it's all good 16:45 I fixed it 16:46 [nd] munterplant (Val Hum Fem Law) averted death, on T:11165 16:46 Replace * with .* 16:46 Oh, right, actual regexes. 16:46 Goind to see if I can use the SYMBOLS thingy to create my own unicodegraphics 16:47 ;) 16:47 K2: Message from FIQ at 2017-10-11 11:49 EDT: fix a memory leak introduced a day ago-ish 16:47 Apparently the answer to that question is "no" 16:48 [nd] munterplant (Val Hum Fem Law), 39130 points, T:11173, killed by a green dragon 16:48 FIQhack updated 16:49 Hmm, I don't understand this vismon_at stuff. I think it has to do with monster displacement? 16:49 But it seems unsafe to just replace it with m_at 16:49 -!- K2 changed the topic on #hardfought to: Welcome to Hardfought - https://www.hardfought.org/ - public irc logs available on website ¤ Public NetHack server - ssh nethack@hardfought.org ¤ /dev/null/nethack tribute tournament news update - https://redd.it/75me9m 16:49 You are looking at FIQHack code? 16:49 Yes, the monster lookup stuff. 16:50 I'm not sure if you need to mess with the monster vision checks for that 16:50 I didn't when I added lookup/etc 16:50 Yes you did. 16:50 pager.c line 926 (in Fourk, not sure what the line number would be in fh) 16:50 mon = vismon_at(level, cc.x, cc.y); 16:51 But yes, vismon_at is basically "what monster does the player see here" 16:51 Yeah, I don't have a function for that. 16:51 Or don't know what it's called, more likely. 16:51 Where is this code? 16:51 There's m_at, but it doesn't check whether you can see the monster. 16:51 Is it committed? 16:52 FIQ: feature branch. 16:52 Hang on. 16:52 Because I can't exactly check this new code if it isn't committed :) 16:52 Pushed monster_lookup branch. 16:52 But I'm pretty sure I didn't add that vismon stuff when I added monster lookup, but rather earlier 16:52 It might have been added in merge though 16:53 Anyway, I'll look 16:53 I only cherry-picked the monster lookup commits. 16:53 perhaps I moved stuff, then 16:53 The LAST_AT stuff I can handle. 16:54 Well, this is in function do_look() 16:55 oh, I guess I did add vismon stuff then 16:55 Right below the Dudley's Ghost comment. 16:55 yeah 16:56 I probably just need to call something that gives me the monster (if any) that the player can see there. 16:56 But I don't know what function does that in not-FIQHack. 16:56 I added this because at that point I don't know what monster is there 16:56 I mean, I can m_at 16:56 If we know that the player is seeing _a_ monster at that location, that'd be good enough. 16:57 But if the player can't see the monster, that'll leak information. 16:57 jonadab: m_at seems to be safe 16:57 in FIQHack code, I use vismon in describe_mon 16:58 presumably this is a potential issue in FIQHack due to displacement 16:58 which can show monsters where there is none 16:58 and farlook should report it "appropriately" 16:58 yeah that's why 16:58 Ok. 16:58 try m_at 16:58 Ok. 16:58 might want to double check 16:58 but it should be OK 16:58 Yeah, I'll test. 16:59 or um_at, if 4k has that 16:59 not sure if that's a thing FIQHack did or not 16:59 I don't seem to have um_at 16:59 (um_at() is an m_at() that allows returning &youmonst) 16:59 ok 17:00 The code there seems to handle &youmonst already. 17:00 right, because there's no uvismon_at 17:00 haven't seen the need :P 17:00 Right. 17:00 Only worth adding if you'd call it in more than two places. 17:00 yeah 17:00 -!- rikersan has joined #hardfought 17:01 Ok, that compiles. One new warning, which I'll look at. 17:01 there is however a mvismon_at in FIQHack :P 17:01 But first, testing :-) 17:01 which, like most FIQHack functions that has the same name as another function with an m in front, takes a monster's POV 17:02 mgetargdir, mrnl, etc 17:02 mrnl. I forget, did you add an actual luck stat to struct monst, or do you just check for luckstones in inventory? 17:02 check luckstones 17:03 I don't even think mrnl is in 4.3.0 17:03 just checked, it isn't 17:03 but I know I added it in master 17:03 when I did the do_throw merge 17:03 to handle monster mulching 17:04 Ah. 17:04 Strategy: if a monster is firing ammo at you that you'd like to keep, throw a luckstone at it first thing... 17:05 Haha 17:05 IIRC there's unfinished code for handling monsters throwing gems at unicorns 17:06 including you, as one 17:06 in master 17:08 "Corpse conveys nothing." -- Newt 17:08 (I know, I know, it's a hardcoded special case.) 17:09 Ah, but the text hints. 17:09 Maybe that's good enough? 17:11 Is "Normally appears everywhere, not randomly generated." sensible (for e.g. a barbarian)? 17:12 jonadab: Perhaps not 17:12 But you should be able to understand the code 17:12 to fix issues 17:12 Also I just remembered 17:12 True. 17:12 I forgot to add speed 17:13 Oh, yes, speed would be a useful addition. 17:13 hmm 17:13 so apparently symbols 80-FF are DECgraphics 17:14 when inserted as a symset thingy 17:20 FIQ: Have you done lookup on a master mind flayer? 17:28 No, why? 17:28 Is something wrong? 17:29 -!- LarienTelrunya has quit [Quit: Page closed] 17:29 Oh, I see 17:29 You think the attack string is a bit long I take it 17:36 -!- rikersan has quit [Quit: Lost terminal] 17:44 -!- ais523 has joined #hardfought 17:47 -!- ais523 has quit [Remote host closed the connection] 17:47 -!- ais523 has joined #hardfought 17:47 Beholder: message? 17:47 ais523: Message from FIQ at 2017-10-09 09:57 EDT: am I missing something or is converting invent to youmonst.minvent a change of like 3 lines? 17:47 ais523: Message from Elronnd at 2017-10-09 16:54 EDT: remember to fix jettyplay uncompressed output as per https://github.com/Elronnd/ttyrec2video/commit/bd0dd824a20fe796d1532437ca721883943bf4df 17:47 ais523: Message from FIQ at 2017-10-09 18:52 EDT: So the off-level timer thing. I think what happens is: monster gets migrating. As part of monster restoration of migrating levels, dlevel is set to NULL. Also, monster inventory (restobjchn) inherits the monster level, so their olev is set to NULL. This makes them lose track of where the timer went during object migration with the monster. There is 2 issues: the one mentioned, and timers not 17:47 ais523: Message from FIQ at 2017-10-09 18:53 EDT: being transferred into a non-level-specific timer list. The latter is the obvious fix here which should fix the issues 17:47 ais523: Message from FIQ at 2017-10-09 18:56 EDT: I meant migrating monsters, not migrating levels, but yeah 17:47 ais523: Message from Elronnd at 2017-10-09 20:29 EDT: how do you get the candles 17:47 ais523: Message from Elronnd at 2017-10-09 20:38 EDT: more to the point, how do you get the candelabrum? 17:47 ais523: Message from LarienTelrunya at 2017-10-10 07:55 EDT: why is there no link to the TAS on nethack4.org anywhere? I always have to google for the link to find it :P 17:47 ais523: Message from FIQ at 2017-10-10 09:41 EDT: What is wrong with the previous code here? clang warns and I got some interruption oddities, but I don't see what is wrong. FIQHack 8d5073605c83f7389b251268bafd766a17a968b6 17:47 ais523: Message from jonadab at 2017-10-10 20:14 EDT: Is it possible to set up substution tiles for being engulfed by specific monsters, so e.g. being engulfed by an air elemental looks different from being engulfed by a purple worm? 17:47 ais523: Message from Elronnd at 2017-10-10 23:54 EDT: (in libnitrohack), even if boolean can't be switched to bool completely, couldn't it be done in some places, incrementally, and used in new code? 17:47 *messages? 17:47 not sure why I'm correcting the typo, you don't read the content of the line anyway 17:50 ais523: seems like you're quite popular :p 17:50 jonadab: the tiles code doesn't at present handle being engulfed by a specific monster but it shouldn't be too hard to change it to do so (I assume you're asking about this for ASCIItiles? even if the RLtiles artist could probably be persuaded to make some) 17:50 jonadab: funny you should ask that, I wanted to ask the same thing 17:50 since I messed with trying to do substitution tiles with it 17:50 but didn't really get it to work 17:51 one problem is that without a good default, engulfing will look very weird (like you're surrounded by the monster) 17:51 I just forgot to actually ask, seems like there was no need :) 17:51 but it's fairly easy to put in a default rule 17:51 ais523: well what would be convenient here 17:51 would be if you could do substitutions that only say "change the color" 17:52 !tell ais523 I have no messages for you at this time 17:52 Will do, K2! 17:52 FIQ: you can, pretty much 17:52 ais523: Message from K2 at 2017-10-11 17:52 EDT: I have no messages for you at this time 17:52 when I tried to do substitution stuff a few days ago 17:52 :) 17:52 [gh] nethack333 (Kni Hum Mal Law), 455 points, T:909, killed by a gnomish lord 17:52 although the way you do it is by setting a default rule that defines the substitution tile for an engulfing monster via overriding the character part of the cchar to / 17:52 I ended up changing the player tile 17:52 not the things I *actually* wanted to change 17:52 actually there are 8 engulf segments 17:53 so it doesn't fit all that well into our current substitution tile system 17:53 yeah 17:53 you're working on two dimensions 17:53 you'd need 8 substitutions 17:53 or three, encoded as a bitfield 17:53 either way it'd be a pain 17:53 with the current setup 17:54 also, what warning did Clang give you with ocm_all? there's nothing /obviously/ wrong with the old code unless occ_last >= 32 17:54 err, >= 31 17:54 in which case you have an integer overflow issue 17:54 let me double check 17:55 yeah there is only 15 17:55 one sec I will get the warning 17:56 I didn't really understand it 17:56 libnethack/include/prop.h:249:5: warning: enumeration value 'ocm_all' is out of range of flags in enumeration type 'occupation_ 17:56 mask' [-Wflag-enum] 17:56 ocm_all = (1 << (occ_last + 1)) - 1, 17:56 ^ 17:56 FIQ: ooh, is occ_last actually the last occupation? or is it 1 past the end? 17:56 I ended up defining ocm_all to -1 for now because it seemed to warn for basically every single compiled file 17:57 occ_last = occ_prepare 17:57 the last one that isn't explicitly set 17:57 is occ_prepare 17:58 I based it off the helpless stuff 17:58 and I didn't understand the difference 17:58 that made clang whine 17:58 hmm, so if say occ_last is 5, then the mask for occ_last would be 16 (fifth element in 1, 2, 4, 8, 16), thus the mask for everything would be 31; the formula gives (1 << (5+1)) - 1 == 64 - 1 == 63 17:58 http://sprunge.us/CBGg 17:58 it looks like you just have an off by one in your formula 17:59 wait, no 17:59 but it is the same in helplessness and yet it doesn't complain? 17:59 is the first occupation 0 or 1 17:59 and is the first occupation mask 1 or 2 17:59 hmm 17:59 the only difference is that helplessness has no "hr_none = 0" 18:01 ais523: first mask is 0 18:01 2nd should be 10, 3rd 100 18:01 I think 18:01 you mean 0b1, 0b10, 0b100? 18:02 or are your masks in decimal with the first one not working? 18:02 no, ocm_none is explicitly set to 0 18:02 that's not a mask 18:02 or, well, it's the absence of a mask 18:02 right 18:02 hm 18:02 it was mostly to be consistent, but I can see why it would make no sense 18:02 should probably be 1 18:03 ais523: actually, helplessness also has a hm_none = 0 18:03 that I didn't insert 18:03 hmm 18:03 FIQ: I think you're maybe not understanding what a mask is? 18:03 but the first real mask is hm_asleep 18:03 a mask is like a bitfield, only stored in an integer 18:03 no I know what a mask is 18:04 just trying to figure out why I added ocm_none 18:04 presumably as a method of representing that no occupations are taking place 18:04 …why are occupations a mask anyway, can you do two at the same time? 18:04 oh this was for being able to abort a mask of occupations 18:05 occupations are just a regular enum 18:05 occupation masks are used for the purpose of interrupt_occupation, something I did so I can interrupt only certain kinds of occupations 18:05 for example, ocm_rest = ocm_wait | ocm_search, 18:05 ah right, that makes sense 18:06 ocm_rest is used when interrupting if HP or Pw becomes full 18:06 only those are interrupted 18:08 ais523: anyway, I don't understand why I get that warning 18:08 I set ocm_all to -1 to silence it and accomplishing basically the same thing 18:08 but yeah 18:08 I don't get why -1 silences the warning 18:08 like, if the number really is off, wouldn't -1 be even further off? 18:08 well I have no idea :P 18:09 honestly I don't understand the warning in first place 18:09 I just figured I'd try -1 18:09 and it worked 18:09 ais523: oh there is another warning btw 18:10 this one is on you, I'm not sure if changing unsigned->signed is the right fix 18:10 libnethack/src/log.c:1029:26: warning: passing 'char [32]' to parameter of type 'const unsigned char *' converts between 18:10 pointers to integer types with different sign [-Wpointer-sign] 18:10 base64_encode_binary(u.uplname, encbuf, 18:10 ^~~~~~~~~ 18:10 libnethack/src/log.c:484:43: note: passing argument to parameter 'in' here 18:10 base64_encode_binary(const unsigned char *in, char *out, int len, 18:10 ^ 18:11 what I don't get here is why it is even defined as unsigned in first place 18:11 is there a good reason for this? 18:11 that's an overwarning when done on "char" specifically 18:11 the rule in the Standard is that anything can be treated as an array of unsigned char, to get at its individual bytes 18:12 and that generalizes to a convention among programmers of using unsigned char for an array that's just bytes with no meaning 18:12 even if the warning is bogus, I don't like warnings 18:12 clang should probably not warn on that unless you specifically ask it to 18:12 is removing the unsigned keyword here safe? 18:12 I mean, it's inconsistent anyway with *out 18:12 so I figured there was reason 18:12 *there was a reason 18:12 I'm not confident that removing unsigned is safe (although it probably is and would be in practice on any real system), the safe warning fix is to add a cast at the call site 18:12 -!- Grasshopper has quit [Ping timeout: 248 seconds] 18:12 and no, in is binary, out is text 18:13 which would be the normal message conveyed by "unsigned char" and "char" specifically 18:13 Hm I suppose 18:17 ais523: also I did a thing, but it's unfinished and unstable: http://home.fiq.se/daggers.png 18:17 FIQ: the only reason that isn't in NH4 is that I couldn't figure out how to implement it in a way that's based on character knowledge, not spoiler knowledge 18:18 and that wasn't nonsensically inefficient 18:18 what do you mean with nonsensically inefficient? 18:19 -!- Grasshopper has joined #hardfought 18:19 -!- mode/#hardfought [+v Grasshopper] by ChanServ 18:19 ais523: my biggest concern atm, when disregarding the fact that it atm has issues (picking up objects from a pile panics), is how it performs in larger saves 18:19 FIQ: things like a linear search of all items that had to be updated every time an item changed position, struck me as not performing very well 18:20 the object lookup itself isn't a problem, I ran it on a save 1 turn before ascension searching for space (which finds everything) before I added actual object memory and just referenced the real object lists, and it finds 5k objects without issues 18:20 however, my concern atm is how my object memory linking performs 18:20 so what I do atm is this 18:21 every time you see a new object, an object memory is created -- basically a duplicate version of that object that is stored in memory tables 18:21 and they point to each other to keep track 18:21 if you find out that an object is no longer where you remember it 18:22 then the memory gets deleted 18:22 it is either freed (in case the original object is gone), or marked as "lost" (which doesn't free it but effectively loses it from your memory) 18:22 and presumably the hard part is saving the object/memory pair 18:22 my performance concerns here is 18:22 when I save+load 18:23 I write the object IDs on the respective objects 18:23 and when loading object memories (not the original objects) 18:23 I use a slightly more efficient version of find_oid (which starts by making reasonable guesses if the object didn't move) 18:23 I believe the correct solution (at least if you don't care about save compat) is to save the memory along with the object 18:23 and my concern is, how will this perform on a save with like 10k objects 18:24 I was going to do this at first 18:24 but then I don't know how to appropriately store olev 18:24 as dungeon number, depth pair, surely? 18:24 how is it saved at the moment? 18:24 implicit from what level file it's in? 18:24 it isn't 18:24 yeah 18:25 hmm 18:25 it shouldn't be too hard to store a level in the save file by reference 18:25 well I don't know if I can uniquely reference a level, since objects currently didn't for some reason 18:25 but I guess I can, then 18:25 in which case yeah, simple fix, just store the memory alongside the object 18:25 anyway, the "parallel set of objects" seemed like the most promising approach so I think you're on the right lines 18:26 it complicates things a bit when storing memories whose original object is lost 18:26 but I could store them in the way I currently store all memories 18:26 should be simple enough 18:28 -!- raisse has quit [Ping timeout: 255 seconds] 18:28 hmm 18:28 not sure if this works for contained objects 18:29 will have to think about this 18:29 ais523: anyway, I did actually get save/load to work fully I think 18:30 the current outstanding issue is a panic regarding picking things up from object piles 18:30 there's some bug that screws up the floating object chain as a result 18:31 quite happy with how the UI tuned out at least 18:31 are object memories on the floating object chain when not in use, or not? you need to make a decision about that 18:31 search for stuff, pick a result to display the level +highlight the position where it is 18:32 the general NH4 rule is "all objects are always on some chain, floating if there's nowhere else to put them" 18:32 ais523: they are there when moving them around 18:32 but it makes sense to me that object memories should always be on the object memory chain and never anywhere else 18:32 mostly to ensure that the game will be able to handle them properly in case an error condition ensues 18:32 how often do they need to be moved? I can only see them being on the floating chain during creation and during destruction 18:32 one sec 18:33 update_obj_memory in https://raw.githubusercontent.com/FredrIQ/fiqhack/obj_memory/libnethack/src/memobj.c 18:34 is what handles most stuff regarding how it's stored 18:34 basically 18:34 whenever it's updated 18:34 it's extracted from wherever it happens to be at the moment 18:34 then either placed in a container, on the "floor" or in inventory depending on where the original object is 18:35 ah right 18:35 my preference for memobj->where would always be OBJ_OBJMEMORY, and to use the pointer back to the original object to get at an actual where 18:36 I think your method can work too, it's just more complex and more likely to break 18:36 but it needs to know if nexthere should be nexthere or ocontainer 18:36 which can be mismatched 18:37 if a monster decides to loot a container behind your back and then die 18:37 oh right 18:37 hmm, are we tracking the "object is in a container" on the container or on the object itself? 18:37 on the object itself 18:37 I guess it has to be on the memory of the container, because what if the container is destroyed offscreen? 18:37 OBJ_CONTAINED 18:38 yeah 18:38 I mean, suppose you remember that you have a chest containing an amulet 18:38 basically a duplicate container is made, more or less 18:38 and it is deliberately not kept in sync automatically 18:38 (atm there is no function that refreshes container content, but that is mostly because this isn't finished yet -- that is the idea) 18:38 so we now have a memory of a chest that contains a memory of an amulet? or do we have a memory of a (chest that contains an amulet) and a separate memory of an amulet? or do we have a memory of a chest /and/ a memory of an amulet? 18:39 ais523: if a container is destroyed with an amulet 18:39 if we discover the amulet elsewhere, what happens to the memory of the chest? if we discover that the chest was destroyed, what happens to the memory of the amulet? 18:39 the memory of the amulet will be unchanged 18:39 the memory of the container will have its mem_obj set to NULL 18:39 since the obj no longer exist 18:39 but the player doesn't know yet 18:40 and when the player discovers that the container is no longer present 18:40 so if we search for the amulet, we get something like "amulet (in container)"? 18:40 the container memory, and all of its content, will be freed 18:40 Currently the UI will not show this 18:40 But yes, that is the idea 18:40 IIRC, DCSS's approach to this sort of thing (it doesn't have containers, but there are some analogous situations) is to assume that the amulet is on the floor next to the container, for stash search purposes 18:41 (I was just going to do an "Inside x: (continue list)" but your line makes more sense 18:41 ) 18:41 which would at least make the code a lot simpler 18:41 but it causes problems if you come back to the square with the container and don't look inside it 18:54 ais523: oh also, another thing that was a bit weird regarding the UI of this 18:54 the game makes a new line and does nothing with it for some reason 18:54 what I do when a player selects an object 18:54 is to 1: show the full level, with "Viewing Dungeons of Doom: level 22." 18:54 2: pause the input 18:55 3: blank the entire screen except for the square with the object, with "The scroll of teleportation is here." 18:55 4: pause again 18:55 on #4, the game inserts a newline for whatever reason 18:56 like this: http://home.fiq.se/blank_line.png 18:57 I use flush_screen_nopos() + win_pause_output(P_MAP) + notify_levelchange(NULL) + doredraw() 18:58 after the 2nd messge 18:58 *message 18:59 hmm, I wonder if win_pause_output is only meant to be used immediately after (or before?) a message? it's not used very often 18:59 -!- greqrg has joined #hardfought 19:04 -!- rikersan has joined #hardfought 19:13 -!- rikersan has quit [Ping timeout: 240 seconds] 19:16 -!- rikersan has joined #hardfought 19:21 -!- rikersan has quit [Ping timeout: 248 seconds] 19:39 -!- rikersan has joined #hardfought 19:40 -!- greqrg has quit [Read error: Connection reset by peer] 19:40 trying to test taming something in wiz mode, but it's only making the monster peaceful 19:40 it was originally hostile, and has a mr of 10 19:41 is there a way to make it tame? or will it always be peaceful 19:41 and is thus impossible to tame 19:41 what is it? 19:41 deep one 19:41 @d?deep one 19:41 deep one (h) | Lvl: 7 | Diff: 10 | Spd: 9 | Res: cold sleep poison | Confers: sleep | MR: 10 | Generates: dungeons | AC: 5 | Attacks: 1d6 weapon physical, 1d6 weapon physical, 2d4 kick physical, 1d6 passive soul | Alignment: 0 | Flags: omnivore, swims, amphibious, poisonous, stalker, infravisible 19:41 there are some untameable classes of monsters, like playermonsters 19:41 figurines can't be wished for and I'm not in actual wizmode 19:42 hm 19:42 not familiar with that one 19:42 I don't know how that would be expanded in varianta 19:42 *variants 19:42 the wiki said it could be tamed, which implies it was done before 19:42 @4?floating eye 19:42 not sure though 19:43 ais: so for those monsters, it's just impossible to make them tame? 19:43 there's no way to? 19:44 or would a hacked in figurine succeeed 19:44 you'll need to source dive dnethack to see what flags it has 19:44 pinoclone may not be accurate with all monsters in its database 19:44 yeah I can do that easily 19:45 all it's got is "MT_OMNIVORE|MT_HOSTILE|MT_STALK|MT_GREEDY|MT_JEWELS|MT_COLLECT|MT_MAGIC|MT_TRAITOR" 19:45 I don't know hte specifics but that doesn't look like anythign that's not tameable 19:45 rikersan: right, for playermonsters in vanilla they're untameable by any means, even IIRC in wizmode 19:45 I don't know what the source of that restriction is, though, or how variants would change it 19:45 hm 19:46 do you know where that's defined? 19:46 deep ones are an offshoot of humanity, I think 19:47 yes 19:47 or rather, I know for sure they were due to a sacrificing incident, and I think they still are 19:47 they're an 'h' tho 19:47 in the game 19:47 rikersan: no 19:47 so maybe they're treated as @ for taming purposes - I don't think you can tame @ either 19:47 you can tame @ I thouhgt 19:47 nope 19:47 and you can definitely tame h so 19:48 TIL 19:48 I thought you could, at least the non-human ones like elves 19:48 just make them peaceful (@) 19:48 heh now this makes me want to test it 19:48 yeah, vanilla wiztest wishing for figurines of player monsters fails 19:48 grid bug appears to be the default 19:49 confused cursed genocide will work :) 19:49 true 19:55 the source says it can't be tagged MG_NOTAME, which deep ones aren't, hm 19:57 and it's just that all @ are tagged MG_NOTAME, there's no special flag for S_HUMAN 19:57 @?mad seer 19:57 No such monster. 19:57 @d?mad seer 19:57 mad seer (@) | Lvl: 12 | Diff: 14 | Spd: 12 | Res: magic | Confers: nothing | MR: 50 | Generates: special | AC: 0 | Attacks: 0d4 cast magic missile | Alignment: 0 | Flags: omnivore, nopoly, infravisible 19:59 @le?mad bear 19:59 mad bear ~2~ war bear (q) | Lvl: 9 | Diff: 11 | Spd: 12 | Res: none | Confers: nothing | MR: 0 | Generates: special | AC: 0 | Attacks: 1d4 claw physical, 1d4 claw physical, 1d6 bite physical | Alignment: 0 | Flags: genocidable, omnivore 19:59 what 19:59 that was random 19:59 ? 19:59 aosdict: edit distance 2 20:00 presumably mad bears aren't in Beholder's database 20:00 also, why are bears in q? 20:00 it\s not actually Beholder\s 20:00 admittedly they don't fall any more obviously into any other category 20:00 it's not actually Beholder's 20:00 it's pinobot's 20:01 Beholder just piggybacks on it because K2 didn't like it being here 20:01 Beholder struck me as acting in a very pinobot-like way 20:01 oh, hmm, is Beholder actually PMing Pinobot? 20:01 something like that 20:01 that would be pointless 20:01 I thought it was just duplicating the code 20:01 no 20:01 and yes 20:01 I find it silly 20:01 I don't understand why it is this way 20:01 but w/e 20:04 -!- greqrg has joined #hardfought 20:07 we've talked about incorporating pino code into beholder 20:07 just havent yet 20:07 plus pinobot was doing other things other than just reporting monster stats 20:07 or was that thereasabot 20:08 i dont remember 20:08 * K2 shrugs 20:10 [fh] Nope (sk1j) (Mon Elf Fem Cha), 66499 points, T:16732, killed by an ettin zombie 20:11 yani: blessed potions of polymorph give a 1/2 chance of asking you what you want to become 20:12 why 1/2? Make it 100% and they'd actually be tactically useful. 20:13 But to compensate, cursed potions of polymorph should try several times to pick a large monster so you will break your armor. 20:13 lol 20:13 that was why I suggested 1/2 20:13 so cursed potions and uncursed potions could be fine 20:13 as-is 20:14 -!- greqrg has quit [Read error: Connection reset by peer] 20:15 what's the cursed versus uncursed effect at the moment? 20:15 none afair 20:15 maybe it should be like levitation, where the cursed effect has a wildly variable duration 20:15 yeah nothing 20:15 meaning that you can't safely use it to cross water 20:15 because it might drop out at any point 20:15 ais523: I thought 3.6.0 or .1 warned the player that levitation was about to end 20:16 possibly 20:16 I'm not a huge expert on 3.6 20:16 which is a good change imo 20:16 although in such a case, I'd argue that it shouldn't if the potion is cursed 20:16 (but should in other cases) 20:16 -!- greqrg has joined #hardfought 20:16 yeah but the lev timer won't know whether you got it from cursed levitation or not 20:17 [fh] Po (sk1j) (Pri Elf Fem Cha) wished for "Blessed Greased Fixed +2 Gray Dragon Scale Mail", on T:601 20:18 ais523: hmm oh yeah 20:18 for the new obj locator 20:18 I wanted to map ctrl+f 20:19 aosdict: there's already a blessed lev state in the timer 20:19 used by wizport 20:19 -!- Grassy has joined #hardfought 20:19 -!- mode/#hardfought [+v Grassy] by ChanServ 20:19 do you know if I can remap old configs? 20:19 FIQ: a clash between a wizmode and regular command is normally safe UI-wise, although it might need a bit of coding work 20:19 so people don't have to fiddle with keymap settings 20:19 but I'd recommend moving wizport to an extended command 20:19 which is simplest 20:19 wizard commands aren't stable in terms of keybindings 20:20 isn't all commands extended? 20:20 in the nitro engine, commands have an extended flag 20:20 which can be turned on or off by the user but it has a default 20:20 well 20:20 I unassigned ctrl+f from wizport 20:20 to find 20:20 the UI didn't catch on 20:20 but old configs are interpreting it as wizport? 20:20 looking at keymap, find was completely unmapped 20:20 yeah 20:21 actually I'm not sure if newly added commands get bindings at all even if there aren't clashes 20:21 the way nitro stored this was completely insane 20:21 hmm 20:21 the way nitro does anything is insane 20:21 (it stored the command opposite every possible key, which is hugely wasteful of disk space if you're using something like libuncursed that can handle shift-ctrl-alt combinations…) 20:21 -!- Grasshopper has quit [Ping timeout: 248 seconds] 20:22 command opposite every possible key? 20:23 the keymap file would start by listing the command meant by key 0, then the command meant by key 1, and so on 20:23 up to the maximum possible key number 20:23 which isn't so out of control in curses because it's not very good at key parsing 20:23 that is backwards 20:23 in libuncursed, though, there's over a million easily 20:24 you aren't planning on storing a 40M keymap config? :D 20:25 I guess I can tell people to map it... would be a hassle though 20:25 (for them, not for me) 20:26 anyway, I changed the keymap save format when introducing libuncursed because the old one was insane 20:26 but the rest of the code is still insane, that's the only bit I improved 20:26 ok 20:27 easy 20:27 -!- greqrg has quit [Read error: Connection reset by peer] 20:27 I will make wizport alias to find in non-debug 20:27 that is totally not crazy 20:27 :P 20:27 that's how AceHack dealt with this situation 20:28 (levelport was treated as tutorial outside wizmode) 20:28 I think there are a few other examples around too 20:28 there is chat/close 20:28 yes 20:32 -!- greqrg has joined #hardfought 20:42 [fh] Po (sk1j) (Pri Elf Fem Cha), 39216 points, T:2293, killed by a bolt of fire 20:43 [sp] k2 (Pri Hum Mal Law), 2306156 points, T:44218, killed by an Archon (with the Amulet) 20:43 hah damn 20:43 :( 20:44 ouch 20:44 Astral, I assume? 20:44 nope 20:44 dlvl 9 or 8 i think 20:45 archon spawned got caught in a poison gas cloud near me and got angry 20:45 and it had an artifact weapon 20:45 kicked my ass 20:45 AC -36 may as well have been ac 10 20:46 what created the poison gas cloud? 20:46 iron golem 20:46 then why did the archon get angry? 20:46 no idea 20:46 i was lawful 20:47 and was not using conflict 20:47 mybe it got angry because sporkhack 20:47 maybe it spawned hostile? or something else was going on? 20:47 no i was wasnt hostile initially 20:47 i saw the msg about it getting angry 20:48 *it wasnt hostile 20:48 weird 20:48 in sporkhack, casting light can make friendlies angry - screwed up my quest leader that way once 20:49 ah well 20:51 maybe it was because i was between the archon and the iron golem when the golem breathed its poison gas breath 20:51 guilty by association 20:52 [nh] HyperNeutrino (Wiz Elf Mal Cha), 489 points, T:744, killed by an acidic corpse 20:52 ^ trying to get my friend to play more nethack 20:52 nice 20:53 not working so far 20:53 he's upset that he can't save jackals and things and eat them later 20:53 lorimer are archons more touchy in sporkhack vs vanilla? 20:54 well you can save lichens. nice of the game to give you one monster early on whose corpse doesn't rot. 20:55 his first icebox will probably be a very good experience heh 20:55 those are really rare, no? 20:55 and heavy af 20:55 yup 20:56 As a representative of the Campaign to Make Containers Lighter, I can state that 900 weight is a ridiculous amount for an ice box. 20:57 that is correct 20:57 have you ever had to move a full sized freezer anywhere? 20:57 heck my cooler irl is only a couple pounds 20:57 though I'm not certain it could hold a jackal 20:57 those are heavy 20:57 yani: instead of making box/chests lighter, make bags more common 20:58 K2: traditional pre-electric ice boxes were not huge like full sized freezers 20:58 rikersan: The ice boxes in NetHack are much more substantial than a modern plastic picnic cooler. 20:58 true 20:58 You can find them with *dragon* corpses in them. And they often have 20+ corpses. 20:58 and consider what they can hold 20:58 they would have to be huge 20:58 YANI: portable cooler, a lightweight ice box that can only hold up to 400 weight. 20:58 or thereabouts 20:58 and/or a single giant corpse because why not 20:59 next you'll be asking for fanny packs for tourists 20:59 "Got myself a fanny pack / they were havin' a sale down at the Gap..." 20:59 [dnh] rikersan (Bar Orc Mal Cha), 239 points, T:396, killed by a dwarf 21:00 heh 21:00 jonadab: apparently when a webcomic I read had some time off, they asked some guest authors to fill in, and one did one based around NetHack screenshots: "That dragon's the size of an ant!" "Yes, but that ant's the size of a dragon!" 21:00 ok goin home, bbl 21:01 ais523: Heh. 21:01 People in #nethack always tell me that nobody has ever heard of NetHack, it never appears in any media anywhere. 21:02 there's a list (almost certainly very incomplete) on nethack.org 21:02 It does, but references outside the roguelike community are sparse at best. 21:02 But I see references to it more often than any other computer game (if consoles and phones aren't counted as computers) except maybe ADVENT. 21:02 ais523: That's ridiculously incomplete. 21:02 it was added to a few days ago, but yes 21:03 however, I think references to other PC games are much more common, just you wouldn't necessarily recognise them 21:03 I don't know if I've ever gone a whole year without seeing a reference to NetHack in some non-gaming-related medium. 21:03 Probably not since college. 21:03 a single meme referencing Portal, "The cake is a lie", almost certainly outnumbers NetHack by itself; you'd see it multiple times a day at one point 21:03 although it's mostly died down now 21:03 Hmm, _maybe_. 21:04 Doom would be another contender. 21:04 all I'm gathering from this is that you tend to stay in communities that are more interested in old games than new ones 21:04 the new games easily win on reference frequency because they have so many more players 21:04 especially big popular ones 21:04 That's short-term though. 21:04 Mostly. 21:04 yes 21:05 * ais523 experimentally types "the cake is a lie" into Wikipedia's search box 21:05 Yes, the big games hit the "bestseller" list. 21:05 it gave me a link to the plot of Portal, which seems like a sensible response 21:05 the ice box is a lie has no results 21:05 nothign useful at least 21:05 did you expect any? :-D 21:06 But if you look at a twenty-year window instead of a month, all the books on the New York Times best seller list combined haven't sold as many copies as, say, Hamlet. 21:06 I expected some shittily translated russian spam site 21:06 jonadab: that list is pretty easy to manipulate 21:06 Remaining well known over a long period of time is notable. 21:06 there is plenty of stuff like https://www.xkcd.com/1474/ which _could_ be a nethack reference, but could also be some other roguelike or RPG system. 21:06 ais523: Yes, publishers manipulate it all the time. THat's how they sell books. 21:07 apparently there have been people writing a book, then buying a huge number of copies of their own book as some sort of tax dodge 21:07 aosdict: I'd count that as a D&D reference probably. 21:07 And yes, D&D references are _more_ common than NetHack references. 21:07 By about an order of magnitude. 21:07 NetHack and D&D use exactly the same phrasing there 21:07 Yes, but D&D is the source for it. 21:07 yes 21:08 However, something like "The newt hits. You die", is clearly a NetHack reference. 21:09 it's clearly a roguelike reference, the actual roguelike would depend on the exact monster chosen and might be ambiguous in some cases 21:10 Sure, if it were an orc or a kobold, it could be Crawl or whatnot. 21:11 "do you want your possessions identified" is a sure cue to NetHack 21:12 but doesn't make much sense out of context 21:12 * ais523 searches for that on Wikipedia too 21:12 "Did you mean: do you want your possession identifier" 21:12 Hmm, a possession identifier *would* be a nice thing to have in NetHack... 21:12 top two results are "Stop and identify statutes" and "Demonic possession" 21:17 -!- rikersan has quit [Ping timeout: 260 seconds] 21:26 -!- captain42 has quit [K-Lined] 21:31 -!- tacco| has quit [] 21:43 -!- captain42 has joined #hardfought 21:49 -!- rikersan has joined #hardfought 21:56 !who 21:56 Tarmunora: mtf [fh] Grandolar [un] 22:07 -!- ais523 has quit [Quit: quit] 22:23 [dnh] rikersan (Rog Hum Mal Cha), 1412 points, T:1920, killed by a rabid rat 22:23 poison instakill 22:26 That's you you get poison resistance :P 22:26 this was level 2 :P 22:26 *you you -> why you 22:27 Wondering what a good symmetric formula would be to replace poison instadeath. 22:27 max hp drain? 22:27 Maybe reduce HP by 90%? 22:27 tha'ts in some variant 22:27 by 90%? 22:27 no 22:27 just 22:27 no 22:27 Current, not max 22:27 -!- MTF has quit [Quit: *poof*] 22:27 ah true 22:27 misread 22:27 Yeah, not max. 22:28 The intent is not to make the game unplayable. 22:28 lol 22:28 -!- MTF has joined #hardfought 22:32 [dnh] rikersan (Dnb-Nob Dwa Mal Law) entered Minetown for the first time, on T:1563 22:33 Though, if HP is less than 10, is killing you outright still fair? 22:33 no 22:35 Yeah 22:35 -!- MTF has quit [Quit: *poof*] 22:35 Considering poison damage itself is able to one-shot at <10 HP 22:35 true 22:35 Then is cutting it to 1 if HP is less than 20 still fair? 22:35 [dnh] rikersan (Nob Dwa Mal Law), 1454 points, T:1952, quit 22:35 -!- MTF has joined #hardfought 22:36 I am not hunting the naiad with a small crude dagger 22:36 As long as the base poison damage is applied before the 'deadly' poison 22:36 -!- NeroOneTrueKing has joined #hardfought 22:40 Tarmunora: this would replace the "deadly" effect, which is independent of normal poison damage. 22:41 Yes, but I'm saying it would be silly if the new 'deadly' effect could be less deadly than the max roll of the d12(?) of normal poison damage 22:41 So a minimum of 12 damage would work 22:42 I'd be a fan of all insta-deaths being changed to max(d(dice), (X% of your health)) 22:42 Even stoning? 22:43 excluding stoning, since that is a delayed instadeath 22:43 and I'm none too fond of the instant-instadeath that is touching a *trice corpse 22:44 digestion could easily become a "max(dice, %health)" thing 22:45 even better, it starts out with small dice and %s and increases the longer you are digested 22:45 -!- greqrg has quit [Quit: Disconnected] 22:48 drowning, eh, I like dnethack's 'breath' system, which gives you at least 2 turns (you get grabbed; you get pulled under; you are pulled under and drowned) 22:49 what other instadeaths are there? 22:51 death magic (but that's its own problem) 22:53 wiki lists choke, starve, drawbridge, genocide, controlled level teleport out of the dungeon, lava... 22:55 starvation is a-ok as instadeath but could be changed to hp-loss for flavour 22:55 but normally is death by newt + fainting anyways 22:56 drawbridge could just be severe physical damage. I can easily see a character with half phys able to survive it. 22:56 choking... maxhp loss feels appropriate, but I can't place a number to it. 22:57 Nah, I think choking should fall under the breath system. 22:57 Not sure what actions the player could take to stop choking though. 22:57 #selfheimlichmaneuver 22:58 Put on an "oLS, an "oMagicalBreathing, or pray 22:58 or polyself into an unbreathing creature 22:58 #vomit 22:59 haha 22:59 genocide and controlled level-port are unique and should stay as-is 22:59 [dnh] HyperNeutrino (Wiz Elf Mal Cha), 135 points, T:427, killed by a fox 22:59 I think in vanilla at least, stuffing oneself then vomiting voluminously doesn't actually take any time, unlike actual "vomiting" (nausea effects) that take multiple turns 23:01 Other instadeaths: disintegration, divine lightning, WADB, bisecting/beheading artis, level drain, death by mind flayer, eating the Riders 23:01 disintegration: could be damage-based, but since it destroys armor first is probably fine 23:02 divine lightning: this is god-anger only, right? And if you survive is followed by even deadlier wrath? It's fine. 23:03 instakilling artifacts: I'm not sure here. Needs discussion. 23:04 level drain: requires draining you repeatedly so isn't an instant-instadeath; the player ought to be able to do something about it in plenty of time 23:05 only happens to players who prayscum at the beginning of the game, get a foocubus minion, and then get drained from that, I think. Would be different if levels were more easily drained (they aren't, because they're so hard to restore). 23:06 mind flayers: you have a buffer (INT), protection (wearing a helmet), temporary immunity (greasing said helmet), and avoidance (fight purple 'h' at a range) 23:06 mind flayer instadeath is fine 23:07 eating the riders: not okay as-is. Up until these guys, eating a reviving corpse has been a good idea, until suddenly your game is over. 23:10 I'd be a fan of all insta-deaths being changed to max(d(dice), (X% of your health)) <-- so we're what, 1 for 10 here? 23:12 poison, death magic, drawbridge, digestion. 4/16 or so 23:12 [nh] HyperNeutrino (Wiz Elf Mal Cha), 67 points, T:66, killed by a sewer rat 23:12 less than I thought, actually 23:12 what about lava? 23:13 4/17 23:13 :P 23:13 (without fire resistance, or possibly with it) 23:13 or 5/17. You just take a *ton* of fire damage 23:14 I think that would be better than an instakill 23:16 If I may explain my thinking: 23:17 Currently, without fire resistance, you get instaburned. With fire resistance, it's akin to sinking into thick mud (at least, if you replaced "lava" with "mud" in these messages it would make perfect sense) 23:18 YANI: mud terrain, brown } that you can get stuck in 23:19 Instadeaths that are simply instant hard-to-avoid death aren't good 23:19 Good instadeaths are alternate ways of dying than running out of hp 23:20 They often use unusual resources. INT, breath, disintegrable body armor 23:22 Or are avoided through normal non-tedious play: Levelport, self-genocide, divine wrath 23:22 And hopefully, said unusual resources are not too hard to recover. 23:23 (Except in the early game, which is why poison instadeath, say, setting Str to 3 instead is a bad idea.) 23:29 The instadeaths that don't fall into these categories (or are gradual) are the problematic ones. Poison, death magic, rider corpses, vorpal artifacts, drawbridges. 23:30 You either get the resistance ASAP, or avoid it as much as possible and treat with the utmost caution. 23:30 you can't resist vorpal though 23:30 which isn't that big of a deal most of a game 23:30 there's nothign wrong with that I don't think 23:31 -!- rikersan has quit [Read error: Connection reset by peer] 23:31 -!- rikersan has joined #hardfought 23:31 any character capable of making it to astral will have no problem with vorpal blade 23:32 How about Samurai and their quest nemesis with the bisecting blade? 23:32 Albeit it is a situation you can plan for 23:33 rikersan: it can theoretically come as fast as "Grasshopper the Explorer wields a long sword named Vorpal Blade! Grasshopper the Explorer swings his long sword [...] The vorpal blade decapitates you! You die..." 23:33 [nh] HyperNeutrino (Wiz Elf Mal Cha), 1168 points, T:1433, killed by a gnome lord 23:34 i.e. you do not see it coming because you did not know the NPC had Vorpal Blade till it was too late 23:35 bringing a wand of probing to the astral plane to check playermon inventories should not become a standard strategy practice 23:35 right 23:38 Personally, I think some of the best moments are when I see that shit has hit the fan (pardon my french) and now I need to salvage a very sticky situation. 23:40 aosdict: "oLS? 23:41 The instadeaths we've mostly agreed to being 'bad' don't give sticky situations, they give dead characters. 23:41 or just wand of death everything 23:41 will angels wield vorpal blade if they find it? 23:41 or no because it's cross-aligned 23:45 rikersan: I don't think "oLS is a valid argument here, because it protects from all instadeaths, bad or good. 23:45 you know, I've always wondered why drawbridge deaths are such a ceoncern for everyone 23:47 bug_sniper: they're not really a concern for me, I've only lost 1 good character to them 23:47 aosdict: vorpal blade will really only ever be on astral though, you should be able to have it then 23:47 but it seems prudent to not ignore them as we look at other instadeaths as well 23:47 bug_sniper: idiots (like me) get killed by them a lot 23:47 iirc I have 4 deaths to them 23:47 1 on a server, 3 local 23:48 rikersan: Also, because for these several instadeaths, "oLS is the only method of protection, unlike the others. 23:49 Which ties into ascension kit degeneracy.