{"push_id":827331049,"size":24,"distinct_size":2,"ref":"refs/heads/bleeding-edge","head":"b9d3d6aab35a8614f033a944e89dbab61e01549b","before":"aecea80cfd4044fb79df94de6c4c3cf5f0c6dea5","commits":[{"sha":"bbb31fd3aece0f90f5ad0b064c1a92c8b2e86ac4","author":{"email":"913ddee49ccf76074a79ec47e37a53a8ac365f41@gmail.com","name":"Fredrik Ljungdahl"},"message":"* Fixed a bug where wands/potions of speed (monster) doesn't ID when monsters use it.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/bbb31fd3aece0f90f5ad0b064c1a92c8b2e86ac4"},{"sha":"38d2cdfa964aa3955e2709159a2203e04f200e25","author":{"email":"05e896af68d9ff60c4b413a55719fb80907d550e@nethack4.org","name":"Alex Smith"},"message":"Add separate \"dying\" and \"dead\" states for monsters\n\nThis fixes numerous bugs where, say, monsters would be described as\n\"it\" while they were dying, because they were on negative HP but\nhadn't been killed yet. The game now tracks a specific moment at\nwhich the monster is dead; up to that point, it's considered alive\nbut on negative hitpoints.\n\nThis should also hopefully get rid of any lingering dmonsfree()\nbugs from vanilla (although it possibly introduces its own, they'll\nprobably be in different places).","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/38d2cdfa964aa3955e2709159a2203e04f200e25"},{"sha":"944efbd8b08c8b09e6310bb67f8d791cf664e917","author":{"email":"05e896af68d9ff60c4b413a55719fb80907d550e@nethack4.org","name":"Alex Smith"},"message":"Merge remote-tracking branch 'fiq4/master'","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/944efbd8b08c8b09e6310bb67f8d791cf664e917"},{"sha":"79eb702c8b3d0fa420b585e3932a90ddf6d6a257","author":{"email":"913ddee49ccf76074a79ec47e37a53a8ac365f41@gmail.com","name":"Fredrik Ljungdahl"},"message":"* Fixed #925: Peaceful, hiding monsters detected with monster detection is buggy\nThis was actually completely irrelevant to monster detection -- concealment in general was broken.\nThe reason for this was that the sense code was checking for monsters that hide, but not all monsters\nthat conceal themselves are hiders -- snakes conceal themselves under objects, and isn't counted as\na \"hider\" by NetHack.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/79eb702c8b3d0fa420b585e3932a90ddf6d6a257"},{"sha":"ec2667db503b4adade79bc3b038a85e020b2c465","author":{"email":"05e896af68d9ff60c4b413a55719fb80907d550e@nethack4.org","name":"Alex Smith"},"message":"Merge remote-tracking branch 'fiq4/master'","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/ec2667db503b4adade79bc3b038a85e020b2c465"},{"sha":"59a7e31b5966aa814ac9deac97179dba9b5064f5","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Make prices shopkeepers offer depend on object /type/, not object /class/.\n\nSo for example shopkeepers may always offer you a lowball price for a\nring of searching (any ring of searching), but still might offer full\nprice for rings of fire resistance.\n\nAlso, I decided that going to another shopkeeper would just be\ntedious, so the shopkeeper ID no longer matters.  If one shopkeeper\noffers lowball prices for rings of searching, all shopkeepers will\noffer lowball prices for rings of searching.\n\nHowever, the lowball price still only applies to items that are not\n(officially) type identified.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/59a7e31b5966aa814ac9deac97179dba9b5064f5"},{"sha":"b7242a5f2b2a6e583f6ada515cfdcedd03b112d3","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Implement the stealth skill, part one, basic infrastructure only.\n\nThis adds stealth to the list of miscellaneous skills and sets\ntentative values for the skill cap based on race and role.\n\nIt doesn't yet do anything, and there's no way to exercise it yet.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/b7242a5f2b2a6e583f6ada515cfdcedd03b112d3"},{"sha":"bcce3771239c8bffcd89b8bbc67642d0d7f4827f","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Don't impossible() when placing advent calendar branch.\n\nThe preferred secret code values to tell place_br() to pick a random\nspot on its own are now COLNO,ROWNO rather than 0,0.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/bcce3771239c8bffcd89b8bbc67642d0d7f4827f"},{"sha":"aa2c29ac3c254d213dfc86cdf02942f77e9f9e4f","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Don't impossible() when something is written in colored lights.\n\nC switch statements do not have implicit break; I know this, but\nI forget, because my background is mostly in languages with more\nreasonable switch() semantics, wherein switch statements are in\nfact _less_ verbose than the equivalent if/elsif/elsif sequence.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/aa2c29ac3c254d213dfc86cdf02942f77e9f9e4f"},{"sha":"455da9fff338e099c26b0e87c172af7ff9b0d2f5","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Advent calendar:  don't switch in/out positions when ROWNO is large.\n\nThe original patch assumed normal values of ROWNO and so compared y to\na constant (10) when deciding whether a given door was in the top half\nor bottom half of the level.  This failed when compiled with a large\nvalue of ROWNO, resulting in the numbers being inside the locked\nclosets and the candy canes and sugar plums and story elements being\non the outside, in front of the doors.  By comparing to (ROWNO / 2),\nwe can get the correct layout regardless of how large ROWNO is, since\nthe geometry line in the .des file centers the level vertically.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/455da9fff338e099c26b0e87c172af7ff9b0d2f5"},{"sha":"e18791d954590456cd8f9e3225d54d6770189abb","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Adjust sequence of advent messages -- we have only 24 doors, not 25.\n\nI commented out one of the less important lines, to allow the final\none to be used.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/e18791d954590456cd8f9e3225d54d6770189abb"},{"sha":"6c092fb66319db80b9687f49a4bbec18059c1063","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Merge branch 'advent'","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/6c092fb66319db80b9687f49a4bbec18059c1063"},{"sha":"4a8d7a8a4fa521eb2630cc64fb98c63aada32cb8","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Merge branch 'master' into bleeding-edge","distinct":true,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/4a8d7a8a4fa521eb2630cc64fb98c63aada32cb8"},{"sha":"8202b6b648642446e9f995f58626eddcfbd80135","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Give couatls some resistances.\n\nThis gives couatls most of the resistances that Angels have, with\ncold being a notable exception (because cold-blooded reptiles are\nusually considered vulnerable to that).","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/8202b6b648642446e9f995f58626eddcfbd80135"},{"sha":"cdcb0395fe8d9b0e816b32e2f5a3db9118a7ac8e","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Clarify in README-MSWindows.txt that GetGnuWin doesn't install flex or bison.\n\nAs near as I can tell, GetGnuWin does not have the capability to\ninstall any GnuWin software except GetGnuWin.  If it does, the\ncapability is so well hidden as to be useless.  So I advise the\nuser to download the flex and bison packages, which do work.\n\nI also clarified the SDL situation:  it isn't needed unless you\nwant graphical tiles, IMO.\n(cherry picked from commit 4b9ec46722aba5853ea4b4a19c0bb59606da2dbf)","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/cdcb0395fe8d9b0e816b32e2f5a3db9118a7ac8e"},{"sha":"ba8ba35dbd146bff19f5d5ab3f5f883df94eb340","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Give couatls some resistances.\n\nThis gives couatls most of the resistances that Angels have, with\ncold being a notable exception (because cold-blooded reptiles are\nusually considered vulnerable to that).\n\nAlso, Angels only have magic resistance by virtue of having a\nmagic missile attack; I didn't give couatls that either.","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/ba8ba35dbd146bff19f5d5ab3f5f883df94eb340"},{"sha":"bc9eca31f98acedef2fb9ae7fc85bb59b620eb24","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Merge branch 'couatls'\n\nConflicts:\n\tlibnethack/src/monst.c","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/bc9eca31f98acedef2fb9ae7fc85bb59b620eb24"},{"sha":"965e9c3449f2543e3241bbaed71fe98242c66997","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Stealth infrastructure:  numeric stealth property, disturb() overhaul\n\n* Introduces a get_stealth() function that takes a struct monst *\n  and returns that monster's current stealth level.\n   + For the player, ask for get_stealth(&youmonst).\n   + The lowest possible and most typical return value is 0.\n   + Some monsters are inherently stealthy (e.g., elves).\n     This is accomplished by adding a new field to the permonst.\n     This also works for the player based on current polyform\n     if polyselfed or by race otherwise.\n   + Equipped items that grant stealth are taken into account,\n     including artifact weapons in the primary slot only.\n     Quivered and off-hand items do not count, however.\n     Rings of stealth are now chargeable: their spe matters.\n\n* The disturb() function, which decides whether a sleeping monster\n  should wake up, has been greatly overhauled.\n   + The function takes a number of things into account that\n     make it harder or easier to sneak up on a monster.  These\n     factors include conflict, scent at close range, and whether\n     the monster is an ettin (because it's hard to sneak up on\n     both of their heads).\n   + The result is somewhat random: if the monster's awareness\n     is higher than your stealth, it _can_ wake up, but it may\n     not do so every time.  Higher awareness increases the odds\n     it will wake up, and higher stealth decreases them.\n\n* The old binary STEALTH property still exists, because objects\n  and artifacts use the constant to signal that they grant stealth.\n  However, the Stealth and HStealth macros have been commented out\n  and should no longer be used:  use get_stealth() instead.  There\n  are comments to this effect.\n\n* The binary STEALTH property has been removed from race and role\n  property-at-level lists, including starting properties for two\n  roles.  I put in TODO comments to the effect that they should\n  be given Basic skill in stealth to start instead, but that is\n  not implemented yet.  (Acquiring it later on levelup will no\n  longer be a thing as such, but the skill exists now, so it can\n  be #enhanced, which more than compensates.)\n\nThis isn't well tested yet, because I found out that I can't\ntrivially test it by using #genesis to create monsters and zapping\nsleep at them -- because zapping sleep at monsters doesn't set\ntheir msleeping state, it does something else different.  I plan\nto add \"sleeping\" support to #genesis as a workaround for this,\nand then I will do testing and probably tweak the formulae in\ndisturb() and possibly in get_stealth().","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/965e9c3449f2543e3241bbaed71fe98242c66997"},{"sha":"d0460b7df21ce449f84367286c3602fbb702a413","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Teach #genesis the adjectives for various status effects.\n\nI needed to test the effects of something on a sleeping monster, but I\ndiscovered that zapping a wand of sleeping at a monster does not cause\nit to sleep.  It causes a different, unrelated effect.  Why?  I have\nno idea.  But anyway, I decided it would be useful for debugging if I\ncould just create sleeping monsters directly.  And then while I was at\nit I added support for a number of other status effects as well, so\nyou can now directly create a fleeing monster, a stunned monster, a\nconfused monster, a fast or slow monster, etc.  The various\nadjectives, both the new ones and the existing tame/hostile/peaceful,\ncan be combined in any order (except you can't combine ones that\ncontradict each other, e.g., you can't get a monster that is both tame\nand hostile or both fast and slow).","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/d0460b7df21ce449f84367286c3602fbb702a413"},{"sha":"7e819f962c0a9333f902d441e9f3ed21c081718e","author":{"email":"5050a7261ac601bac799af5f9c1b71bdad6b1b2a@columbus.rr.com","name":"Jonadab the Unsightly One"},"message":"Teach #genesis the adjectives for various status effects.\n\nI needed to test the effects of something on a sleeping monster, but I\ndiscovered that zapping a wand of sleeping at a monster does not cause\nit to sleep.  It causes a different, unrelated effect.  Why?  I have\nno idea.  But anyway, I decided it would be useful for debugging if I\ncould just create sleeping monsters directly.  And then while I was at\nit I added support for a number of other status effects as well, so\nyou can now directly create a fleeing monster, a stunned monster, a\nconfused monster, a fast or slow monster, etc.  The various\nadjectives, both the new ones and the existing tame/hostile/peaceful,\ncan be combined in any order (except you can't combine ones that\ncontradict each other, e.g., you can't get a monster that is both tame\nand hostile or both fast and slow).\n(cherry picked from commit d0460b7df21ce449f84367286c3602fbb702a413)","distinct":false,"url":"https://api.github.com/repos/tsadok/nhfourk/commits/7e819f962c0a9333f902d441e9f3ed21c081718e"}]}