00:22 -!- elenmirie has quit [Quit: Going offline, see ya! (www.adiirc.com)] 00:35 qt will do 00:35 i nooded off hah 00:35 Hi K2 00:35 i'll do the reflection skip bit tomorrow 00:35 hi Umbire 00:36 What's new 00:40 -!- elenmirie has joined #evilhack 00:42 -!- mode/Hecubus [+Ziw] by Hecubus 00:42 -!- sodium.libera.chat changed the topic on #evilhack to: EvilHack: a NetHack variant ¤ https://github.com/k21971/EvilHack ¤ public irc logs available at hardfought.org ¤ version 0.8.0 available for public play on #hardfought ¤ see https://nethackwiki.com/wiki/EvilHack for gameplay information ¤ Bug tracker and future development ideas - https://www.hardfought.org/etherpad/p/EvilHack ¤ https://redd.it/wakb2u ¤ 'gnolls witherling' 00:42 -!- mode/#evilhack [+v Hecubus] by ChanServ 00:42 -!- K2 has joined #evilhack 00:42 -!- mode/#evilhack [+o K2] by ChanServ 01:10 -!- elenmirie has quit [Quit: Going offline, see ya! (www.adiirc.com)] 01:30 -!- elenmirie has joined #evilhack 02:00 -!- elenmirie has quit [Quit: Going offline, see ya! (www.adiirc.com)] 03:06 -!- hackemslashem has joined #evilhack 03:11 Woof, I have a lot of backscroll to read on this recharging thing, but I'm psyched that K2 worked on it! Tytyty 03:16 (and qt thanks!) 03:29 -!- Umbire has quit [Ping timeout: 272 seconds] 03:45 -!- hackemslashem has quit [Ping timeout: 272 seconds] 04:00 -!- hackemslashem has joined #evilhack 04:16 -!- elenmirie has joined #evilhack 04:38 Nice, I got most of the new stuff I've imported into muse now - looks like the priorities for recharging work. 05:48 -!- mobileuser has joined #evilhack 07:10 -!- elenmirie has quit [Ping timeout: 272 seconds] 07:31 -!- amateurhour has joined #evilhack 07:38 Dug a hole. Fell through. Immediately, TWO ghosts. Uh oh... 07:40 ONE of those bones piles has THREE amulets of yendor. Not a good sign. 07:40 -!- VaderFLAG has quit [Ping timeout: 252 seconds] 07:43 !whereis arahael 07:43 nabru: [hdf-au] Arahael [evil]: (Mon Hum Fem Neu) T:3848 The Gnomish Mines level: 5 07:44 infidel mass grave? 07:46 -!- rebatela has joined #evilhack 07:47 mobileuser: Looks like it. 07:48 [hdf-us] [evil] nabru (Wiz Ith Fem Cha) killed the Goblin King, on T:633 07:49 I have 5 fire horns. 07:57 haha! 07:57 [hdf-us] [evil] nabru (Wiz Ith Fem Cha), 2384 points, T:1664, killed by a steel arrow 08:21 [hdf-eu] [evil] lacca (Inf Ith Fem Una) killed the Goblin King, on T:2428 08:22 lacca[m]: I have a huge pile of your bones. 08:22 Did you repeatedly die in minetown or something? 08:27 * arahael wonders if matrix users get notified when they're mentioned. 08:40 [hdf-eu] [evil] lacca (Inf Ith Fem Una), 4884 points, T:3578, killed by a piranha 09:08 [hdf-au] [evil] Arahael (Mon Hum Fem Neu) acquired the luckstone from Mines' End, on T:7609 09:16 K2: I might have found a bug with steeds... When a monster is riding a steed it seems like it will not return the correct result for the macro canseemon (probably because canseemon might only checking that it sees the steed and not the rider I'm guessing). Only tested with Nazgul while messing with sonic attacks. 09:29 a bug with monster riding? *gasp* 09:32 Yea it took me like 30 minutes of trying to figure out why the nazgul wasn't giving the correct message while deaf lol 09:53 [hdf-us] [evil] lgxia (Rog Hum Mal Neu), 1645 points, T:5507, killed by a piranha 10:05 hackemslashem yay 10:06 yeah monster steeds came from splicehack. we've been finding and trying to squash bugs with it for awhile now 10:07 they havent been too bad lately but theres certainly room for improvement 10:07 it's been the source of the majority of evilhack bugs in the past 10:07 yeah 10:07 certainly the wildest ones 10:07 especially when the ability for a rando monster to mount and ride another monster was introduced 10:08 in hindsight that probably never should have been a thing 10:08 but, its fun 10:09 Hopefully this will prevent some headaches in the future 10:13 we <3 bug fixes 10:13 or give more headaches 10:13 from the sonic attacks 10:13 fix one thing, cause 3 more 10:13 this is the way 10:13 ^^^ 10:14 Toques are quite good a preventing sonic attacks :) 10:15 do they go over your ears or something? 10:16 Yea, made of thick canadian hides, or something 10:16 well then natural extension of the most epic idea that has ever been raised for evilhack: 10:16 toques for doggos 10:17 we must protect ;_; 10:17 hackemslashem did you ever watch the series 'Firefly' ? 10:17 dollhouse > firefly, dont @ me 10:17 Maybe a couple episodes? I don't think I ever got into it after buffy 10:18 you should revisit, it was awesome, and Fox network fucked it all up 10:18 when wearing a toque, imagine this - https://tv-fanatic-res.cloudinary.com/iu/s--z0-ag_gC--/t_full/cs_srgb,f_auto,fl_strip_profile.lossy,q_auto:420/v1407606054/adam-baldwin-jayne-cobb-firefly.jpg 10:19 when imagining the toques for doggos patch, imagine this - https://tv-fanatic-res.cloudinary.com/iu/s--z0-ag_gC--/t_full/cs_srgb,f_auto,fl_strip_profile.lossy,q_auto:420/v1407606054/adam-baldwin-jayne-cobb-firefly.jpg 10:19 but on a doggo 10:20 haha nice, I was thinking of Strange Brew too 10:21 heh 10:23 hey hackemslashem how come confused scroll detection no longer detects portals? got any alternatives? 10:24 I'm working on the vibrating square thing from un, otherwise - use wands of secret door! 10:24 meh 10:24 So at least a couple squares away you'll get a warning 10:25 But hey - I'll nerf the wizard, so it's all good! 10:25 hackem giveth and takeawaeth 10:26 some variants (xnh? brevishack?) have magic portals visible with naked eye already 10:27 because the ascrun is about to get a lot shorter in evilhack, the odds of encountering rodney will go way down 10:27 xnh yes 10:27 can't remember what fourk does 10:27 hmm 10:27 the theory is that Hunt For the Magic Square isn't an interesting or fun challenge in the planes 10:28 (though you can still portal detect if you want to, for instance on earth to know what direction you ought to go) 10:28 actually the theory is that Hunt For the Magic Square isn't an interesting or fun challenge ever, like when searching for the quest portal 10:29 and presumably flavour wise it's not invisible, it's a tear in space/time or something 10:29 yeah maybe it has a big colored edge like in portal 10:43 a cosmic string 10:43 you have to play the right tune on a magical flute to open it enough to allow you through 11:06 [hdf-us] [evil] lgxia (Rog Hum Mal Neu) became literate by reading a scroll, on T:4567 11:18 amateurhour: I think I have a decent alternative, breaking wands of secret dd. Fits with the other wand breaking stuff so we'll try it out for now 11:27 [hdf-us] [evil] lgxia (Rog Hum Mal Neu) had a pair of cloth walking shoes entrusted to him by Mog, on T:6608 11:34 when you break a wand of secret door detection you are suddenly hemmed in by new secret doors 11:42 [hdf-us] [evil] lgxia (Rog Hum Mal Neu) changed form for the first time, becoming a werewolf, on T:7735 11:44 [hdf-eu] [evil] McPanther (Pri Trt Mal Neu), 4372 points, T:6110, killed by Ms. Enniscorthy; the shopkeeper, while sleeping 11:44 [hdf-us] [evil] Gutso (Inf Hum Mal Una), 408 points, T:1115, killed by a hobgoblin 12:05 [hdf-us] [evil] Gutso (Inf Hum Mal Una), 68 points, T:373, poisoned by a rotted newt corpse, while praying 12:25 [hdf-us] [evil] Gutso (Inf Hum Mal Una) made his first wish - "+2 blessed fixed Frost Brand", on T:921 12:57 -!- mobileuser100 has joined #evilhack 12:58 -!- mobileuser100 has quit [Client Quit] 12:58 mobileuser is that the new model? 12:58 -!- mobileuser has quit [Ping timeout: 276 seconds] 12:59 :/ 13:11 -!- mobileuser has joined #evilhack 13:28 this is neat, any of you see this yet? https://github.com/NetHack/NetHack/pull/906/commits/39b32af9458fd81e05bc7e08b337e74e666bae19 13:28 there's some issues with the code, formatting is all fucked up, but the idea is really interesting 13:36 it'd probably be simpler to add a steadfastness intrinsic 13:37 then could add that to different things, e.g. giantslayer and loadstone 13:37 temporarily from a potion, etc etc 13:37 world's your lobster 13:38 dwarves could get it intrinsically at exp level whatever 13:38 short but wide 13:38 strong legz 13:43 that'd be cool 13:43 Simpsons did it! jk - but one of the first things I did was make deep dragon scales protect against hurtling. Then I discovered Splice already had implemented a Stable property so just replaced it with that. 13:44 nice 13:45 If you are a giant, I guess you could carry a loadstone? Still must make you burdened though right? 13:46 combine it with something like this: https://nethack-yanis.github.io/yanis/3625.html 13:46 bazinga 13:46 pretty risky to have one though in case some random passing weeny curses 13:47 lesser form of that idea is just have them weight 0 when blessed 13:47 (if they have steadfastness as a benefit) 13:47 That is interesting! 13:47 They stack? 13:48 I didn't think that far ahead if I'm honest 13:49 [hdf-us] [evil] KingGizzard (Wiz Ith Mal Cha), 111425 points, T:31660, suffocated by a water elemental 13:56 [hdf-us] [evil] Gutso (Inf Hum Mal Una) killed the Goblin King, on T:2145 13:56 if i recall, if you're MZ_HUGE or bigger, you are already steadfast (in evilhack) 13:56 I always associate loadstones with https://en.wikipedia.org/wiki/Lode_Runner 13:57 i didnt know splicehack made an actual property for it, that's neat 13:58 Yep it helps because there are some wind attacks, concussive sphere, wand of wind, some others that it protects from 14:04 [hdf-us] [evil] Gutso (Inf Hum Mal Una) rejected atheism with a prayer, on T:3158 14:08 -!- Umbire has joined #evilhack 14:56 blessed loadstones should be awesome sling ammo. 14:57 like getting hit with depleted uranium tank rounds. Heavy to carry but devastating to the target. 14:59 You really should be able to Center of All those things, yeah 15:31 qt question, why would this be necessary? https://termbin.com/ep2g 15:32 all the attack wands like death, fire, etc are already wrapped in if (!reflection_skip) { } 15:32 well, the idea was to prevent reflection_skip from bypassing charging, but actually after having thought about it some more it doesn't make sense 15:33 since if the hero really does have reflection, the monster _should_ skip charging a wand it knows will be useless 15:33 my real problem is that for some reason the hero is treated as though she has reflection any time the monster is adjacent to her 15:33 which means a monster standing next to the hero will refuse to charge a wand of death, and instead go for some non-reflecting wand 15:33 I don't understand why that is 15:33 why does being adjacent mean the monster should pretend the hero has reflection? 15:34 i think the idea was because of a good chance of rebound if they did have it 15:34 huh 15:34 yeah that was my guess 15:35 but it means you can neutralize any dangerous attack wand by just getting into melee distance with the monster 15:35 true 15:35 because it will _never_ use a wand that close... that seems weird to me. maybe it should just be less likely to use the wand? 15:36 similar to how vanilla used to do reflection_skip = 'Reflection && rn2(2)' -- monster is less likely to use the wand if you are reflecting 15:36 but it's not a guarantee 15:36 3.7 handles reflection skip the same way now 15:36 i know 15:36 I guess it's similar enough to how the situation would be in reverse 15:36 I emailed the devteam about this yesterday 15:37 maybe add a !rn2(5) to the monnear bit <---- 20% of yolo 15:37 You could try a point-blank shot that hits them at least once, but with the risk of hitting yourself on the rebound as well 15:37 the thing that seems annoying to me is that there's no way to indicate the monster knows the hero _doesn't_ have reflection 15:37 so the monster can see you get hit with something, not reflect it, but then will still be too scared to zap you when you're adjacent 15:37 kind of goofy imo 15:38 right, say their shield of reflection is destroyed 15:38 i think using some sort of '&& rn2' thing would be a good idea 15:38 the YOLO factor 15:38 I don't know if it even needs to be that low though 15:39 also, shouldnt m.tocharge = 0; be m.tocharge = (struct obj *) 0; ? 15:39 or does it matter 15:39 it doesn't matter, it will cast it implicitly anyway 15:39 it's mostly just a code style thing 15:39 at least in this context 15:39 k 15:41 https://termbin.com/4cr7y <--- some other minor changes in there too 15:43 and i feel like there's some unnecessary duplicated code between find_misc and find_misc_recurse 15:43 you should add WAN_WISHING to the charging priority list 15:43 I don't know if it matters really but it's probably a good idea to be consistent 15:43 wan_wishing isnt a part of find_offensive though 15:43 its part of find_misc 15:44 i know but are you going to add the ability to charge other things in find_misc? 15:44 currently no 15:45 okay, there's no need to do it but it also doesn't hurt anything 15:45 it will make it easier in the future to add more targets if you do it consistently 15:45 monsters recharging wands of wishing qt? 15:45 that's what K2 is adding in the patch he just shared 15:46 ... 15:46 actually idk if it will work anyway 15:46 since it will select a charging target in find_misc but never look for a scroll of charging to use 15:46 unless I am just overlooking that in the patch? 15:47 or it will retain the WOW as a charging target as it goes into find_offensive? 15:47 (but in that case it definitely needs to be added to the priority list) 15:47 hold on :) monster can already charge a wand of wishing IF they come upon a scroll of charging 15:48 i just fixed an inconsistiency between find_misc and find_misc_recurse 15:48 ah so if you're really unlucky, no wishes at all at the castle 15:49 right. in grunthack, the very first thing a monster will wish for are 2 blessed scrolls of charging. i did not carry that over to evilhack 15:49 K2 where does it select the charging scroll as the item to use? 15:49 in find_offensive? 15:49 i think so yeah 15:49 ... hah 15:50 in that case wand of wishing definitely needs to be added to the priority list, because otherwise it will have a priority of 0 15:50 and any attack wand will win over it 15:50 yup 15:51 IMO you should use that pick_to_charge thing when selecting the WOW too, even though it's not necessary it will make it easier to pop in other charging targets 15:51 yeah that's a good idea 15:51 that's why I added it to wand of death -- and see, now you don't need to edit wand of death when adding the WOW 15:53 BTW it isn't important if you're using pick_to_charge, because it isn't an issue there, but just to point out: when you have 'if (!m.tocharge)' by itself, that's the lowest possible priority instead of the highest 15:54 i think you used that for wand of death, and now for WOW -- it feels like it should be the highest priority because you remove otypes from the exceptions list as it gets higher and higher priority, but it actually means any other target will override it 15:55 yup doing that now 15:55 https://termbin.com/mwnt this is what I mean 15:58 gotcha 16:01 thinking about adding recharge logic in find_defensive, but that might be a bit silly. imagine a wounded vlad with a wand of digging and a scroll of charging 16:01 could leave out digging 16:01 hmm 16:02 -!- mobileuser has quit [Quit: Connection closed] 16:03 -!- mobileuser has joined #evilhack 16:03 https://termbin.com/810u 16:05 makes sense to me, at least at a glance 16:06 k 16:12 [EvilHack] k21971 pushed 1 commit to master [+0/-0/±2] https://github.com/k21971/EvilHack/compare/0fc4b31adef4...abcf6fc8adf5 16:12 [EvilHack] k21971 abcf6fc - Fix: a bit more logic with monsters recharging wands. 16:51 [EvilHack] k21971 pushed 1 commit to master [+0/-0/±2] https://github.com/k21971/EvilHack/compare/abcf6fc8adf5...122c9cd9f561 16:51 [EvilHack] k21971 122c9cd - Fix: monster recharging a wand of wishing. 16:51 rofl 16:51 guess what? monsters could never recharge a wand of wishing until this commit 16:51 Alex, I'll take assumptions for $800 16:52 is it basically guaranteed that the wand will be (1:0) if a monster gets it? 16:53 "The grid bug wishes for world peace." 16:54 if so im imagining mobi's face like >>>>>>>:| (one forehead-wrinkle per wish lost) 16:54 the monster would have to already have a scroll of charging in inventory. that's very rare 16:54 I guess I'm okay with monsters NOT wishing, but that's me 16:56 in grunthack its brutal. very first thing it'll wish for is a scroll of charging 16:57 scroll of charging is not a wish for obj for monsters in evilhack 16:58 In FIQ, I remember monsters had some genocides, I know they were trying to geno me because a voice echoed "Thoust will cannot be done!", but I wondered why fiq would allow monsters to try that at all 16:59 dunno, but that's pretty brutal as well 16:59 you can ask him probably 16:59 kind of a 'fuck you' additon that'd i'd expect in slex 16:59 I'd be interested in knowing the answer 16:59 The dark side of symmetry... 17:00 amateurhour: I think I've solved a couple of the fuzzer issues so far, the boulder/lightsaber I think is okay now. That searmsg one is tough though 17:01 nice 17:01 light sources are a bitch 17:02 Not a light issue per se, but I think an object being accessed after being wiped 17:03 It popped up a LOT during fuzzing so I'm hoping it's gone now 17:04 I looked at the searmsg one then forgot all about it 17:04 What, is wasn't seared into your brain? :D 17:04 hah 17:04 oh was that the one where it segfaulted writing to zeroobj 17:04 (potentially) 17:05 there's a static object just filled with zeros and I think it's meant to be read-only 17:05 called `zeroobj` 17:05 fiq put a message in his game containing "thoust"? 17:06 that can't possibly be right 17:06 I think the reason for letting monsters try to genocide the player's race is because symmetry is king 17:07 and note, if the wrong type of monster (either same-race, or same-role, I don't remember) confused genocides, you ARE immediately genocided 17:08 yea, no thanks 17:11 but seriously, thoust? 17:11 it's not in there 17:11 It was a while ago, not sure exactly what the message was 17:12 "No, %s! That will not be done.", 17:12 with %s you or the monster 17:12 isn't it normally "mortal" 17:12 sigh fine 17:12 you ? mortal_or_creature(youmonst.data, TRUE) : "creature"); 17:12 nice for the genocide prompt to remind you that you're mortal 17:13 depending what you're poly'd into it changes in fiqhack, no idea if that's vanilla or not but not gonna look 17:22 it is not 17:23 [hdf-us] [evil] bouquet (Pri Hum Fem Neu) rejected atheism with a prayer, on T:4626 17:24 amateurhour: In searmsg, just notice that obj is /* the offending item, or &zeroobj if magr's body */. I suppose now that could include iron golems 17:26 -!- rebatela has quit [Read error: Connection reset by peer] 17:26 [hdf-eu] [evil] lacca (Inf Ith Fem Una), 2574 points, T:2358, killed by the Goblin King, while sleeping 17:27 haha, yes. Just tested polymorphing into a iron golem and fighting an imp barehanded (that now hates iron) and insta crash 17:29 [hdf-us] [evil] bouquet (Pri Hum Fem Neu), 3651 points, T:5237, killed by a silver crossbow bolt 17:29 nice 17:35 Not sure about the fix, wish me luck 17:38 are you writing to the searing object? 17:41 I'm having a hard time following this trace, I don't see where it would do that yet... 17:42 Looks more like it's trying to read from the zeroobj 17:43 where's the crash happening when you gdb it? 17:43 https://github.com/elunna/hackem/issues/8 17:44 idk if zeroobj is the culprit there 17:44 Maybe searmsg needs proper handling to see if it's a monster rather than a weapon being used? it says it can handle monsters being the weapon but who knows 17:44 for cxname to be called from searmsg, it is already going down the 'else' in 'if (obj == &zeroobj) { } else { }' 17:44 so it should mean that zeroobj is not involved in that backtrace 17:45 oh never mind 17:45 that's how you _should_ do it though, because 'cxnameobj' is only used in that part of hte function 17:45 like this https://termbin.com/wtc8 17:47 it looks like that is inherited from evilhack due to k2's attempt to fix some C89 'mixed declaration and code' warnings 17:49 -!- mobileuser has quit [Quit: Connection closed] 17:50 I think I get it, just trying to understand the diff 17:50 You just moved the cxnameobj def down to the else 17:51 yes moved it down so we only pass obj to cxname once we've confirmed (obj != (struct obj *) 0 && obj != &zeroobj) 17:51 aha 17:51 but actually i have some more fixes there that I am going to give to K2, so wait a minute 17:51 it got messed up a bit in 7d56bbd1341fe6359b88fa302d85f704bce767fd 17:53 idk, this is kind of messed up having obj be const but then passing it to cxname which modifies it 17:53 [hdf-us] [evil] karibou (Rog Elf Fem Neu), 204 points, T:1209, killed by a flint stone 17:54 Well my iron golem is able to do the attack now so one step forward :0 17:54 :) 17:55 [hdf-us] [evil] karibou (Rog Elf Fem Neu), 63 points, T:175, killed by a fox 17:58 this would be more comprehensive, fixes some other similar issues in searmsg https://termbin.com/axg6x 17:58 K2 ^ 17:59 <3 17:59 [hdf-us] [evil] karibou (Rog Elf Fem Neu), 142 points, T:469, killed by a death ray 17:59 it would be nice if there were some way to get rid of that 'const' 18:00 at least it seems weird to me that it's declared with const qualifier, but then gets modified... 18:00 Oh snap, didn't realize I could save that as .patch and just drag it into clion, sweet! 18:02 maybe you should also get rid of const on there? i assume the reason is because it can receive zeroobj, but it looks like special_dmgval already discards qualifiers on zeroobj when it uses it for hated_obj? 18:02 aosdict any suggestions about that? 18:04 this would be a version that also removes 'const' https://termbin.com/eivp 18:08 qt how would you label this if you had committed this? 18:09 fix fucky wucky (little fucko boingo) [patch by qt] (GONE WRONG) 18:10 ^^^ 18:11 maybe something like "title: Fix some misc issues in searmsg Description: Some definitions and derefs were mistakenly moved before null pointer guards and similar out of an attempt to untangle declarations and code in 7d56bbd134." 18:11 cool 18:18 -!- rebatela has joined #evilhack 18:23 btw hackemslashem when you post your backtraces or asan reports you can use markdown so they're just raw text 18:23 so it doesn't read the #0 #1 etc as links to other issues/PRs 18:23 (and it's more readable) 18:24 in your github issues I mean 18:24 ohh cool 18:25 -!- rebatela has quit [Ping timeout: 276 seconds] 18:34 [EvilHack] k21971 pushed 1 commit to master [+0/-0/±3] https://github.com/k21971/EvilHack/compare/122c9cd9f561...97c5b1fdbcfb 18:34 [EvilHack] k21971 97c5b1f - Fix: misc issues in searmsg. 18:35 bleh should have unindented the comment for boolean minimal 18:35 now it's way out there for no reason 18:40 the OCD is stong in this one 18:40 strong even 18:41 and now you can't fix it cuz it'll add more messages to 2 channels about it 18:41 and ever1 will know 18:42 i just fixed it 18:42 stealth fix for next commit 19:08 -!- amateurhour has quit [Quit: leaving] 19:51 [hdf-us] [evil] lgxia (Rog Hum Mal Neu) chose a runed dagger to be named "Sting", on T:7874 20:04 [hdf-us] [evil] lgxia (Rog Hum Mal Neu), 9254 points, T:8365, killed by the Goblin King 20:13 -!- nabru has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in] 20:14 -!- nabru has joined #evilhack 20:30 -!- NetSysFire has quit [Remote host closed the connection] 20:31 -!- NetSysFire has joined #evilhack 21:11 -!- Umbire has quit [Remote host closed the connection] 21:12 -!- Umbire has joined #evilhack 21:25 -!- hackemslashem has quit [Ping timeout: 272 seconds] 23:35 [hdf-au] [evil] Arahael (Mon Hum Fem Neu) tasted meat for the first time, by eating a wraith corpse, on T:12638 23:37 [hdf-au] [evil] Arahael (Mon Hum Fem Neu) completed Sokoban, acquiring a silver amulet of reflection, on T:12719 23:44 [hdf-au] [evil] Arahael (Mon Hum Fem Neu) polymorphed her first object, on T:12861 23:46 qt you still up? 23:57 Damn it! Quest portal level is the nymph level, and the first thing I lost when I went down was a magic lamp!