Merge branch 'NetHack-3.7' into twitch-interact
This commit is contained in:
+2
-1
@@ -100,5 +100,6 @@ be old and miserly.
|
|||||||
The name of Elbereth may strike fear into the hearts of thine enemies, if
|
The name of Elbereth may strike fear into the hearts of thine enemies, if
|
||||||
thou dost write it upon the ground at thy feet. If thou maintainest the
|
thou dost write it upon the ground at thy feet. If thou maintainest the
|
||||||
utmost calm, thy safety will be aided greatly, but beware lest thy clumsy
|
utmost calm, thy safety will be aided greatly, but beware lest thy clumsy
|
||||||
feet scuff the inscription, cancelling its potence.
|
feet scuff the inscription, cancelling its potence, or thy wayward
|
||||||
|
sword-arm break the truce.
|
||||||
-----
|
-----
|
||||||
|
|||||||
+24
-8
@@ -2,6 +2,7 @@ A blindfold can be very useful if you're telepathic.
|
|||||||
A candelabrum affixed with seven candles shows the way with a magical light.
|
A candelabrum affixed with seven candles shows the way with a magical light.
|
||||||
A cream pie has two uses: food... and entertainment.
|
A cream pie has two uses: food... and entertainment.
|
||||||
A crystal plate mail will not rust.
|
A crystal plate mail will not rust.
|
||||||
|
A dead body may protect your live body. But only an item can protect an item.
|
||||||
A katana might slice a worm in two.
|
A katana might slice a worm in two.
|
||||||
A magic vomit pump could be useful for gourmands.
|
A magic vomit pump could be useful for gourmands.
|
||||||
A nymph knows how to unlock chains.
|
A nymph knows how to unlock chains.
|
||||||
@@ -29,7 +30,6 @@ Bandaging wounds helps keep up appearances.
|
|||||||
Bashing monsters with a bow is not such a good idea.
|
Bashing monsters with a bow is not such a good idea.
|
||||||
Be careful! The Wizard may plan an ambush!
|
Be careful! The Wizard may plan an ambush!
|
||||||
Be nice to a nurse: Put away your weapon and take off your clothes.
|
Be nice to a nurse: Put away your weapon and take off your clothes.
|
||||||
Being digested is a painfully slow process.
|
|
||||||
Blank scrolls make more interesting reading.
|
Blank scrolls make more interesting reading.
|
||||||
Blind? Catch a floating eye!
|
Blind? Catch a floating eye!
|
||||||
Booksellers never read scrolls; they might get carried away.
|
Booksellers never read scrolls; they might get carried away.
|
||||||
@@ -45,6 +45,7 @@ Don't forget! Large dogs are MUCH harder to kill than little dogs.
|
|||||||
Don't lash out at people while blinded.
|
Don't lash out at people while blinded.
|
||||||
Don't mess with shopkeepers, or you'll get the Guild after you.
|
Don't mess with shopkeepers, or you'll get the Guild after you.
|
||||||
Dragons never whip their children; they wouldn't feel it!
|
Dragons never whip their children; they wouldn't feel it!
|
||||||
|
Dwarves use their cloaks to keep their drinks cool.
|
||||||
Eat your carrots. They're good for your eyes.
|
Eat your carrots. They're good for your eyes.
|
||||||
Eating a freezing sphere is like eating a yeti.
|
Eating a freezing sphere is like eating a yeti.
|
||||||
Eating a killer bee is like eating a scorpion.
|
Eating a killer bee is like eating a scorpion.
|
||||||
@@ -56,9 +57,10 @@ Elf corpses are incompatible with the sandman, and at times the gods as well.
|
|||||||
Elven cloaks cannot rust.
|
Elven cloaks cannot rust.
|
||||||
Elves can help you feel less tired.
|
Elves can help you feel less tired.
|
||||||
Even evil players have a guardian angel.
|
Even evil players have a guardian angel.
|
||||||
|
Even the most powerful heroes sometimes need to quaff away their injuries.
|
||||||
Ever fought with an enchanted tooth?
|
Ever fought with an enchanted tooth?
|
||||||
Ever tried reading while confused?
|
Ever tried reading while confused?
|
||||||
Ever tried to put a troll into a large box?
|
Ever tried to lock a troll inside a large box?
|
||||||
Ever wondered why one would want to dip something in a potion?
|
Ever wondered why one would want to dip something in a potion?
|
||||||
Expensive cameras have penetrating flash lights.
|
Expensive cameras have penetrating flash lights.
|
||||||
Extra staircases lead to extra levels.
|
Extra staircases lead to extra levels.
|
||||||
@@ -74,6 +76,7 @@ Got a question? Try rec.games.roguelike.nethack.
|
|||||||
Grave robbers sometimes get rich.
|
Grave robbers sometimes get rich.
|
||||||
Guy Montag keeps his scrolls in a bag.
|
Guy Montag keeps his scrolls in a bag.
|
||||||
Handle your flasks carefully -- there might be a ghost inside!
|
Handle your flasks carefully -- there might be a ghost inside!
|
||||||
|
Heavy-duty boots can protect more than just your feet.
|
||||||
Holy water has many uses.
|
Holy water has many uses.
|
||||||
Horses trust their riders, even when not so deserved.
|
Horses trust their riders, even when not so deserved.
|
||||||
Hunger is a confusing experience for a dog!
|
Hunger is a confusing experience for a dog!
|
||||||
@@ -90,6 +93,7 @@ If you want to hit, use a dagger.
|
|||||||
If you want to rob a shop, train your dog.
|
If you want to rob a shop, train your dog.
|
||||||
If you're lost, try buying a map next time you're in a shop.
|
If you're lost, try buying a map next time you're in a shop.
|
||||||
If your hands are greasy, why not wash them?
|
If your hands are greasy, why not wash them?
|
||||||
|
If your items get destroyed, you weren't wearing the right ring.
|
||||||
Inside a shop you better take a look at the price tags before buying anything.
|
Inside a shop you better take a look at the price tags before buying anything.
|
||||||
It is bad manners to use a wand in a shop.
|
It is bad manners to use a wand in a shop.
|
||||||
It is dangerous to visit a graveyard at midnight.
|
It is dangerous to visit a graveyard at midnight.
|
||||||
@@ -98,7 +102,7 @@ It is rumored that the Wizard has hired some help.
|
|||||||
It is the letter 'c' and not 'e' that changes status to statue.
|
It is the letter 'c' and not 'e' that changes status to statue.
|
||||||
It might be a good idea to offer the unicorn a ruby.
|
It might be a good idea to offer the unicorn a ruby.
|
||||||
It would be peculiarly sad were your dog turned to stone.
|
It would be peculiarly sad were your dog turned to stone.
|
||||||
It's a `d' eats `d' world.
|
It's a 'd' eats 'd' world.
|
||||||
Just because it says READ ME doesn't mean you should.
|
Just because it says READ ME doesn't mean you should.
|
||||||
Keep your armors away from rust.
|
Keep your armors away from rust.
|
||||||
Keep your weaponry away from acids.
|
Keep your weaponry away from acids.
|
||||||
@@ -119,6 +123,7 @@ Nurses are trained to touch naked persons: they don't harm them.
|
|||||||
Nymphs can unlink more than your chain mail.
|
Nymphs can unlink more than your chain mail.
|
||||||
Once your little dog will be a big dog, and you will be proud of it.
|
Once your little dog will be a big dog, and you will be proud of it.
|
||||||
Only female monsters can lay eggs.
|
Only female monsters can lay eggs.
|
||||||
|
Only the most confused adventurers would read cursed destroy armor scrolls.
|
||||||
Opening a tin is difficult, especially when you attempt it bare handed!
|
Opening a tin is difficult, especially when you attempt it bare handed!
|
||||||
Orcs and killer bees share their lifestyle.
|
Orcs and killer bees share their lifestyle.
|
||||||
Orcs do not procreate in dark rooms.
|
Orcs do not procreate in dark rooms.
|
||||||
@@ -155,12 +160,14 @@ Sometimes monsters are more likely to fight each other than attack you.
|
|||||||
Spinach, carrot, and jelly -- a meal fit for a nurse!
|
Spinach, carrot, and jelly -- a meal fit for a nurse!
|
||||||
Surviving the full extent of the mines could mean that your luck is changing.
|
Surviving the full extent of the mines could mean that your luck is changing.
|
||||||
Tainted meat is even more sickening than poison!
|
Tainted meat is even more sickening than poison!
|
||||||
|
Take your healing potions to the next level!
|
||||||
Telepathy is just a trick: once you know how to do it, it's easy.
|
Telepathy is just a trick: once you know how to do it, it's easy.
|
||||||
The Leprechaun Gold Tru$t is no division of the Magic Memory Vault.
|
The Leprechaun Gold Tru$t is no division of the Magic Memory Vault.
|
||||||
The Wizard finds death to be quite an experience.
|
The Wizard finds death to be quite an experience.
|
||||||
The best equipment for your work is, of course, the most expensive.
|
The best equipment for your work is, of course, the most expensive.
|
||||||
The gods don't appreciate pesky priesthood.
|
The gods don't appreciate pesky priesthood.
|
||||||
The gods will get angry if you kill your dog.
|
The gods will get angry if you kill your dog.
|
||||||
|
The less magic in your armor, the more you can add.
|
||||||
The magic marker is mightier than the sword.
|
The magic marker is mightier than the sword.
|
||||||
The moon is not the only heavenly body to influence this game.
|
The moon is not the only heavenly body to influence this game.
|
||||||
The orc swings his orcish broadsword named Elfrist at you. You die...
|
The orc swings his orcish broadsword named Elfrist at you. You die...
|
||||||
@@ -173,10 +180,10 @@ There is no harm in praising a large dog.
|
|||||||
There is nothing like eating a mimic.
|
There is nothing like eating a mimic.
|
||||||
There once was a Knight named Lancelot who liked to ride with his lance a lot.
|
There once was a Knight named Lancelot who liked to ride with his lance a lot.
|
||||||
They say a gelatinous cube can paralyze you...
|
They say a gelatinous cube can paralyze you...
|
||||||
They say that Juiblex is afraid of a wand of digging.
|
They say that Juiblex is somewhat afraid of a wand of digging.
|
||||||
They say that Medusa would like to put you on a pedestal.
|
They say that Medusa would like to put you on a pedestal.
|
||||||
They say that Vlad lives!!! ... in the mazes.
|
They say that Vlad lives!!! ... near the mazes.
|
||||||
They say that `Elbereth' is often written about.
|
They say that 'Elbereth' is often written about.
|
||||||
They say that a bag of holding can't hold everything.
|
They say that a bag of holding can't hold everything.
|
||||||
They say that a blessed tin of quasit meat is a quick meal.
|
They say that a blessed tin of quasit meat is a quick meal.
|
||||||
They say that a cat avoids traps.
|
They say that a cat avoids traps.
|
||||||
@@ -205,6 +212,7 @@ They say that a unicorn might bring you luck.
|
|||||||
They say that a wand of cancellation is like a wand of polymorph.
|
They say that a wand of cancellation is like a wand of polymorph.
|
||||||
They say that a wand of locking can close more than just doors.
|
They say that a wand of locking can close more than just doors.
|
||||||
They say that a wand of polymorph can change your game.
|
They say that a wand of polymorph can change your game.
|
||||||
|
They say that a wise choice of donations lets you choose your blessings.
|
||||||
They say that a wizard is even more powerful the second time around.
|
They say that a wizard is even more powerful the second time around.
|
||||||
They say that a xorn knows of no obstacles when pursuing you.
|
They say that a xorn knows of no obstacles when pursuing you.
|
||||||
They say that abusing a credit card could shock you sooner or later.
|
They say that abusing a credit card could shock you sooner or later.
|
||||||
@@ -216,7 +224,6 @@ They say that antique dealers are always interested in precious stones.
|
|||||||
They say that bandaging one's wounds helps to keep up one's appearance.
|
They say that bandaging one's wounds helps to keep up one's appearance.
|
||||||
They say that booze can be diluted but not cancelled.
|
They say that booze can be diluted but not cancelled.
|
||||||
They say that by listening carefully, you can hear a secret door!
|
They say that by listening carefully, you can hear a secret door!
|
||||||
They say that calculating your donations lets you choose your blessings.
|
|
||||||
They say that carrots and carrot juice may improve your vision.
|
They say that carrots and carrot juice may improve your vision.
|
||||||
They say that cave spiders are not considered expensive health food.
|
They say that cave spiders are not considered expensive health food.
|
||||||
They say that demigods must leave behind their prized earthly possessions.
|
They say that demigods must leave behind their prized earthly possessions.
|
||||||
@@ -227,11 +234,12 @@ They say that dwarves lawfully mind their own business.
|
|||||||
They say that eating a bat corpse will make you batty, for a while.
|
They say that eating a bat corpse will make you batty, for a while.
|
||||||
They say that eating a cram ration is a smart move.
|
They say that eating a cram ration is a smart move.
|
||||||
They say that eating blue jelly is cool if you don't fight the feeling.
|
They say that eating blue jelly is cool if you don't fight the feeling.
|
||||||
|
They say that elven armor can hold the most magic.
|
||||||
They say that escaping a dungeon is only the beginning of the end.
|
They say that escaping a dungeon is only the beginning of the end.
|
||||||
They say that feeling an unexpected draft of air is sort of a breakthrough.
|
They say that feeling an unexpected draft of air is sort of a breakthrough.
|
||||||
They say that finding a cursed gray stone is always bad luck.
|
They say that finding a cursed gray stone is always bad luck.
|
||||||
They say that gaining a level is an experience that can raise your sights.
|
They say that gaining a level is an experience that can raise your sights.
|
||||||
They say that garter snake meat rarely tastes good but it's still healthy.
|
They say that garter snake meat may not taste good but it's still healthy.
|
||||||
They say that gauntlets of dexterity have a hidden enchanted touch.
|
They say that gauntlets of dexterity have a hidden enchanted touch.
|
||||||
They say that going to heaven is just another way of escaping the dungeon.
|
They say that going to heaven is just another way of escaping the dungeon.
|
||||||
They say that golden nagas are law-abiding denizens as long as you are too.
|
They say that golden nagas are law-abiding denizens as long as you are too.
|
||||||
@@ -239,6 +247,7 @@ They say that gremlins can make you feel cooler than you are now.
|
|||||||
They say that grid bugs only exist in a strictly Cartesian sense.
|
They say that grid bugs only exist in a strictly Cartesian sense.
|
||||||
They say that hackers often feel jumpy about eating nymphs.
|
They say that hackers often feel jumpy about eating nymphs.
|
||||||
They say that having polymorph control won't shock you.
|
They say that having polymorph control won't shock you.
|
||||||
|
They say that healing potions often come in pairs.
|
||||||
They say that if it's hard getting your food down another bite could kill.
|
They say that if it's hard getting your food down another bite could kill.
|
||||||
They say that if you don't wear glasses why bother with carrots?
|
They say that if you don't wear glasses why bother with carrots?
|
||||||
They say that if you notice a loose board beneath you, don't step on it.
|
They say that if you notice a loose board beneath you, don't step on it.
|
||||||
@@ -271,6 +280,7 @@ They say that only chaotics can kill shopkeepers and get away with it.
|
|||||||
They say that only female monsters can lay eggs.
|
They say that only female monsters can lay eggs.
|
||||||
They say that playing a horn really bad is really good.
|
They say that playing a horn really bad is really good.
|
||||||
They say that prayer at an altar can sometimes make the water there holy.
|
They say that prayer at an altar can sometimes make the water there holy.
|
||||||
|
They say that the right wand may help you chase a nymph.
|
||||||
They say that rubbing a glowing potion does not make it a magic lamp.
|
They say that rubbing a glowing potion does not make it a magic lamp.
|
||||||
They say that scalpels become dull because they're not athames.
|
They say that scalpels become dull because they're not athames.
|
||||||
They say that shopkeepers don't like pick-axes.
|
They say that shopkeepers don't like pick-axes.
|
||||||
@@ -280,6 +290,7 @@ They say that shopkeepers often have a large amount of money in their purses.
|
|||||||
They say that shopkeepers often remember things that you might forget.
|
They say that shopkeepers often remember things that you might forget.
|
||||||
They say that sinks and armor don't mix, take your cloak off now!
|
They say that sinks and armor don't mix, take your cloak off now!
|
||||||
They say that sinks run hot and cold and many flavors in between.
|
They say that sinks run hot and cold and many flavors in between.
|
||||||
|
They say that sitting on a vampire's throne is worth the danger.
|
||||||
They say that snake charmers aren't charismatic, just musical.
|
They say that snake charmers aren't charismatic, just musical.
|
||||||
They say that soldiers are always prepared and usually protected.
|
They say that soldiers are always prepared and usually protected.
|
||||||
They say that some eggs could hatch in your pack, lucky or not.
|
They say that some eggs could hatch in your pack, lucky or not.
|
||||||
@@ -296,6 +307,7 @@ They say that teleport traps are the devil's work.
|
|||||||
They say that tengu don't wear rings, why should you?
|
They say that tengu don't wear rings, why should you?
|
||||||
They say that tengu never steal gold although they would be good at it.
|
They say that tengu never steal gold although they would be good at it.
|
||||||
They say that that which was stolen once can be stolen again, ask any nymph.
|
They say that that which was stolen once can be stolen again, ask any nymph.
|
||||||
|
They say that the best way to fix your injuries is a potion.
|
||||||
They say that the Delphic Oracle knows that lizard corpses aren't confusing.
|
They say that the Delphic Oracle knows that lizard corpses aren't confusing.
|
||||||
They say that the Hand of Elbereth can hold up your prayers.
|
They say that the Hand of Elbereth can hold up your prayers.
|
||||||
They say that the Leprechaun King is rich as Croesus.
|
They say that the Leprechaun King is rich as Croesus.
|
||||||
@@ -313,6 +325,7 @@ They say that the view from a fog cloud is really very moving.
|
|||||||
They say that the walls in shops are made of extra hard material.
|
They say that the walls in shops are made of extra hard material.
|
||||||
They say that there are at least 15 ways to lose a pair of levitation boots.
|
They say that there are at least 15 ways to lose a pair of levitation boots.
|
||||||
They say that throwing glass gems is the same as throwing rocks.
|
They say that throwing glass gems is the same as throwing rocks.
|
||||||
|
They say that to block a shocking sphere, you need the right shield.
|
||||||
They say that trespassing a boulder is probably beneath you.
|
They say that trespassing a boulder is probably beneath you.
|
||||||
They say that true power comes from within...except when it doesn't.
|
They say that true power comes from within...except when it doesn't.
|
||||||
They say that unicorns are fond of precious gems.
|
They say that unicorns are fond of precious gems.
|
||||||
@@ -324,6 +337,7 @@ They say that with a floating eye you could see in the dark.
|
|||||||
They say that you are lucky if you can get a unicorn to catch a ruby.
|
They say that you are lucky if you can get a unicorn to catch a ruby.
|
||||||
They say that you are what you eat.
|
They say that you are what you eat.
|
||||||
They say that you can find named weapons at an altar if you're lucky.
|
They say that you can find named weapons at an altar if you're lucky.
|
||||||
|
They say that you can give potions of extra healing new energy.
|
||||||
They say that you can safely touch cockatrice eggs but why bother?
|
They say that you can safely touch cockatrice eggs but why bother?
|
||||||
They say that you can't break an amulet of reflection.
|
They say that you can't break an amulet of reflection.
|
||||||
They say that you don't always get what you wish for.
|
They say that you don't always get what you wish for.
|
||||||
@@ -351,6 +365,7 @@ Vampires hate garlic.
|
|||||||
Vault guards never disturb their Lords.
|
Vault guards never disturb their Lords.
|
||||||
Vegetarians enjoy lichen and seaweed.
|
Vegetarians enjoy lichen and seaweed.
|
||||||
Visitors are requested not to apply genocide to shopkeepers.
|
Visitors are requested not to apply genocide to shopkeepers.
|
||||||
|
Want to heal faster? Dip your potions of healing in a potion of speed!
|
||||||
Watch out, the Wizard might come back.
|
Watch out, the Wizard might come back.
|
||||||
Water traps have no effect on dragons.
|
Water traps have no effect on dragons.
|
||||||
What is a cockatrice going to eat when it gets hungry?
|
What is a cockatrice going to eat when it gets hungry?
|
||||||
@@ -361,6 +376,7 @@ Why would anybody in his sane mind engrave "Elbereth"?
|
|||||||
Wishing too much may bring you too little.
|
Wishing too much may bring you too little.
|
||||||
You can't bribe soldier ants.
|
You can't bribe soldier ants.
|
||||||
You can't leave a shop through the back door: there isn't one!
|
You can't leave a shop through the back door: there isn't one!
|
||||||
|
You can't reflect explosions. But you might resist them.
|
||||||
You may discover a fine spirit inside a potion bottle.
|
You may discover a fine spirit inside a potion bottle.
|
||||||
You may want to dip into a potion of bottled blessings.
|
You may want to dip into a potion of bottled blessings.
|
||||||
You might be able to bribe a demon lord.
|
You might be able to bribe a demon lord.
|
||||||
|
|||||||
+3
-2
@@ -60,9 +60,10 @@ des.object("boulder", 09, 12);
|
|||||||
des.object("boulder", 03, 14);
|
des.object("boulder", 03, 14);
|
||||||
|
|
||||||
-- prevent monster generation over the (filled) holes
|
-- prevent monster generation over the (filled) holes
|
||||||
des.exclusion({ type = "monster-generation", region = { 08,01, 23,01 } });
|
des.exclusion({ type = "monster-generation", region = { 07,01, 23,01 } });
|
||||||
-- Traps
|
-- Traps
|
||||||
des.trap("hole", 08, 01);
|
des.trap("hole", 07, 01);
|
||||||
|
des.trap("rolling boulder", 08, 01);
|
||||||
des.trap("hole", 09, 01);
|
des.trap("hole", 09, 01);
|
||||||
des.trap("hole", 10, 01);
|
des.trap("hole", 10, 01);
|
||||||
des.trap("hole", 11, 01);
|
des.trap("hole", 11, 01);
|
||||||
|
|||||||
+3
-2
@@ -61,9 +61,9 @@ des.object("boulder",12,09);
|
|||||||
des.object("boulder",11,10);
|
des.object("boulder",11,10);
|
||||||
|
|
||||||
-- prevent monster generation over the (filled) holes
|
-- prevent monster generation over the (filled) holes
|
||||||
des.exclusion({ type = "monster-generation", region = { 05,01, 22,01 } });
|
des.exclusion({ type = "monster-generation", region = { 05,01, 23,01 } });
|
||||||
-- Traps
|
-- Traps
|
||||||
des.trap("hole",05,01)
|
des.trap("rolling boulder",05,01)
|
||||||
des.trap("hole",06,01)
|
des.trap("hole",06,01)
|
||||||
des.trap("hole",07,01)
|
des.trap("hole",07,01)
|
||||||
des.trap("hole",08,01)
|
des.trap("hole",08,01)
|
||||||
@@ -81,6 +81,7 @@ des.trap("hole",19,01)
|
|||||||
des.trap("hole",20,01)
|
des.trap("hole",20,01)
|
||||||
des.trap("hole",21,01)
|
des.trap("hole",21,01)
|
||||||
des.trap("hole",22,01)
|
des.trap("hole",22,01)
|
||||||
|
des.trap("hole",23,01)
|
||||||
|
|
||||||
des.monster({ id = "giant mimic", appear_as = "obj:boulder" });
|
des.monster({ id = "giant mimic", appear_as = "obj:boulder" });
|
||||||
des.monster({ id = "giant mimic", appear_as = "obj:boulder" });
|
des.monster({ id = "giant mimic", appear_as = "obj:boulder" });
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ des.object("boulder",06,06)
|
|||||||
-- prevent monster generation over the (filled) holes
|
-- prevent monster generation over the (filled) holes
|
||||||
des.exclusion({ type = "monster-generation", region = { 07,09, 18,09 } });
|
des.exclusion({ type = "monster-generation", region = { 07,09, 18,09 } });
|
||||||
-- Traps
|
-- Traps
|
||||||
|
des.trap("rolling boulder",07,09)
|
||||||
des.trap("hole",08,09)
|
des.trap("hole",08,09)
|
||||||
des.trap("hole",09,09)
|
des.trap("hole",09,09)
|
||||||
des.trap("hole",10,09)
|
des.trap("hole",10,09)
|
||||||
|
|||||||
+12
-10
@@ -15,18 +15,19 @@ des.map([[
|
|||||||
|.-....|...|.......|
|
|.-....|...|.......|
|
||||||
|....-.--.-|.......|
|
|....-.--.-|.......|
|
||||||
|..........|.......|
|
|..........|.......|
|
||||||
|.--...|...|.......|
|
|.--...|...|.......---
|
||||||
|....-.|---|.......|
|
|....-.|---|.......+.|
|
||||||
--|....|----------+|
|
--|....|------------.|
|
||||||
|................|
|
|................+.|
|
||||||
------------------
|
--------------------
|
||||||
]]);
|
]]);
|
||||||
des.stair("down", 06,11)
|
des.stair("down", 06,11)
|
||||||
des.stair("up", 15,06)
|
des.stair("up", 15,06)
|
||||||
des.door("locked",18,10)
|
des.door("locked",19,09)
|
||||||
des.region(selection.area(00,00,19,12), "lit");
|
des.door("locked",19,11)
|
||||||
des.non_diggable(selection.area(00,00,19,12));
|
des.region(selection.area(00,00,21,12), "lit");
|
||||||
des.non_passwall(selection.area(00,00,19,12));
|
des.non_diggable(selection.area(00,00,21,12));
|
||||||
|
des.non_passwall(selection.area(00,00,21,12));
|
||||||
|
|
||||||
-- Boulders
|
-- Boulders
|
||||||
des.object("boulder",04,02)
|
des.object("boulder",04,02)
|
||||||
@@ -49,7 +50,7 @@ des.object("boulder",05,11)
|
|||||||
-- prevent monster generation over the (filled) holes
|
-- prevent monster generation over the (filled) holes
|
||||||
des.exclusion({ type = "monster-generation", region = { 06,11, 18,11 } });
|
des.exclusion({ type = "monster-generation", region = { 06,11, 18,11 } });
|
||||||
-- Traps
|
-- Traps
|
||||||
des.trap("hole",07,11)
|
des.trap("rolling boulder",07,11)
|
||||||
des.trap("hole",08,11)
|
des.trap("hole",08,11)
|
||||||
des.trap("hole",09,11)
|
des.trap("hole",09,11)
|
||||||
des.trap("hole",10,11)
|
des.trap("hole",10,11)
|
||||||
@@ -60,6 +61,7 @@ des.trap("hole",14,11)
|
|||||||
des.trap("hole",15,11)
|
des.trap("hole",15,11)
|
||||||
des.trap("hole",16,11)
|
des.trap("hole",16,11)
|
||||||
des.trap("hole",17,11)
|
des.trap("hole",17,11)
|
||||||
|
des.trap("hole",18,11)
|
||||||
|
|
||||||
-- Random objects
|
-- Random objects
|
||||||
des.object({ class = "%" });
|
des.object({ class = "%" });
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ des.object("boulder",10,10)
|
|||||||
-- prevent monster generation over the (filled) holes
|
-- prevent monster generation over the (filled) holes
|
||||||
des.exclusion({ type = "monster-generation", region = { 11,10, 27,10 } });
|
des.exclusion({ type = "monster-generation", region = { 11,10, 27,10 } });
|
||||||
-- Traps
|
-- Traps
|
||||||
|
des.trap("rolling boulder",11,10)
|
||||||
des.trap("hole",12,10)
|
des.trap("hole",12,10)
|
||||||
des.trap("hole",13,10)
|
des.trap("hole",13,10)
|
||||||
des.trap("hole",14,10)
|
des.trap("hole",14,10)
|
||||||
|
|||||||
+2
-1
@@ -48,8 +48,9 @@ des.object("boulder",10,10)
|
|||||||
des.object("boulder",03,11)
|
des.object("boulder",03,11)
|
||||||
|
|
||||||
-- prevent monster generation over the (filled) holes
|
-- prevent monster generation over the (filled) holes
|
||||||
des.exclusion({ type = "monster-generation", region = { 12,10, 24,10 } });
|
des.exclusion({ type = "monster-generation", region = { 11,10, 24,10 } });
|
||||||
-- Traps
|
-- Traps
|
||||||
|
des.trap("rolling boulder",11,10)
|
||||||
des.trap("hole",12,10)
|
des.trap("hole",12,10)
|
||||||
des.trap("hole",13,10)
|
des.trap("hole",13,10)
|
||||||
des.trap("hole",14,10)
|
des.trap("hole",14,10)
|
||||||
|
|||||||
+9
-4
@@ -74,16 +74,21 @@ des.object("boulder",10,10)
|
|||||||
|
|
||||||
-- prevent monster generation over the (filled) pits
|
-- prevent monster generation over the (filled) pits
|
||||||
des.exclusion({ type = "monster-generation", region = { 01,06, 07,11 } });
|
des.exclusion({ type = "monster-generation", region = { 01,06, 07,11 } });
|
||||||
|
|
||||||
-- Traps
|
-- Traps
|
||||||
des.trap("pit",03,06)
|
|
||||||
des.trap("pit",04,06)
|
des.trap("pit",04,06)
|
||||||
des.trap("pit",05,06)
|
|
||||||
|
des.trap("pit",02,06)
|
||||||
|
des.trap("pit",02,07)
|
||||||
des.trap("pit",02,08)
|
des.trap("pit",02,08)
|
||||||
des.trap("pit",02,09)
|
des.trap("rolling boulder",02,09)
|
||||||
|
|
||||||
|
des.trap("pit",02,10)
|
||||||
|
des.trap("pit",03,10)
|
||||||
des.trap("pit",04,10)
|
des.trap("pit",04,10)
|
||||||
des.trap("pit",05,10)
|
des.trap("pit",05,10)
|
||||||
des.trap("pit",06,10)
|
des.trap("pit",06,10)
|
||||||
des.trap("pit",07,10)
|
des.trap("rolling boulder",07,10)
|
||||||
|
|
||||||
-- A little help
|
-- A little help
|
||||||
des.object("scroll of earth",02,11)
|
des.object("scroll of earth",02,11)
|
||||||
|
|||||||
+5
-2
@@ -50,11 +50,14 @@ des.trap("pit",01,03)
|
|||||||
des.trap("pit",01,04)
|
des.trap("pit",01,04)
|
||||||
des.trap("pit",01,05)
|
des.trap("pit",01,05)
|
||||||
des.trap("pit",01,06)
|
des.trap("pit",01,06)
|
||||||
des.trap("pit",01,07)
|
des.trap("rolling boulder",01,07)
|
||||||
|
|
||||||
|
des.trap("pit",01,08)
|
||||||
|
des.trap("pit",02,08)
|
||||||
des.trap("pit",03,08)
|
des.trap("pit",03,08)
|
||||||
des.trap("pit",04,08)
|
des.trap("pit",04,08)
|
||||||
des.trap("pit",05,08)
|
des.trap("pit",05,08)
|
||||||
des.trap("pit",06,08)
|
des.trap("rolling boulder",06,08)
|
||||||
|
|
||||||
-- A little help
|
-- A little help
|
||||||
des.object("scroll of earth",01,09)
|
des.object("scroll of earth",01,09)
|
||||||
|
|||||||
+5
-3
@@ -1583,8 +1583,8 @@ allow rogues to also backstab sleeping or paralyzed monsters
|
|||||||
rogues cannot backstab monsters that have no backside
|
rogues cannot backstab monsters that have no backside
|
||||||
give experience if opening Schroedinger's Box causes death of the cat inside
|
give experience if opening Schroedinger's Box causes death of the cat inside
|
||||||
priest donation amounts are explicitly stated, randomized slightly, based on
|
priest donation amounts are explicitly stated, randomized slightly, based on
|
||||||
peak rather than current level, and allow for bulk donations (buying
|
peak rather than current level, and allow for bulk donations (buying
|
||||||
larger amounts of clairvoyance/protection) if you have a lot of gold
|
larger amounts of clairvoyance/protection) if you have a lot of gold
|
||||||
amulet of magical breathing increases power regeneration
|
amulet of magical breathing increases power regeneration
|
||||||
change some command keys, 'v' is now chronicle, 'V' is versionshort,
|
change some command keys, 'v' is now chronicle, 'V' is versionshort,
|
||||||
m-prefix 'V' is longer version, remove key binding of #history
|
m-prefix 'V' is longer version, remove key binding of #history
|
||||||
@@ -1596,6 +1596,8 @@ prevent phaseable monsters hiding deep inside nondiggable walls
|
|||||||
blessed potion of see invisible does not guarantee the intrinsic
|
blessed potion of see invisible does not guarantee the intrinsic
|
||||||
prevent selecting all options in #optionsfull menu
|
prevent selecting all options in #optionsfull menu
|
||||||
shapeshifters change shape less
|
shapeshifters change shape less
|
||||||
|
rolling boulder traps aren't removed when stepped on and move boulders
|
||||||
|
pushed onto them
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
||||||
@@ -2915,7 +2917,7 @@ add "make fetch-docs" to download pre-formatted documentation
|
|||||||
monsters will use throw-and-return weapons such as an aklys
|
monsters will use throw-and-return weapons such as an aklys
|
||||||
archeologists can identify scrolls by deciphering their labels
|
archeologists can identify scrolls by deciphering their labels
|
||||||
monster destroy armor -spell first erodes armor
|
monster destroy armor -spell first erodes armor
|
||||||
iron shoes protect the wearer against certain floor-based traps
|
iron footwear protects the wearer against certain floor-based traps
|
||||||
ring of stealth prevents hero from leaving tracks
|
ring of stealth prevents hero from leaving tracks
|
||||||
the game now automatically tracks which sell prices and buy prices you have
|
the game now automatically tracks which sell prices and buy prices you have
|
||||||
seen for each type of item; these are visible in the discoveries list,
|
seen for each type of item; these are visible in the discoveries list,
|
||||||
|
|||||||
@@ -3292,6 +3292,7 @@ extern struct monst *activate_statue_trap(struct trap *, coordxy, coordxy,
|
|||||||
extern int immune_to_trap(struct monst *, unsigned) NO_NNARGS; /* revisit */
|
extern int immune_to_trap(struct monst *, unsigned) NO_NNARGS; /* revisit */
|
||||||
extern void set_utrap(unsigned, unsigned);
|
extern void set_utrap(unsigned, unsigned);
|
||||||
extern void reset_utrap(boolean);
|
extern void reset_utrap(boolean);
|
||||||
|
extern boolean wearing_iron_shoes(struct monst *);
|
||||||
extern boolean m_harmless_trap(struct monst *, struct trap *) NONNULLPTRS;
|
extern boolean m_harmless_trap(struct monst *, struct trap *) NONNULLPTRS;
|
||||||
extern void dotrap(struct trap *, unsigned) NONNULLARG1;
|
extern void dotrap(struct trap *, unsigned) NONNULLARG1;
|
||||||
extern void seetrap(struct trap *) NONNULLARG1;
|
extern void seetrap(struct trap *) NONNULLARG1;
|
||||||
|
|||||||
+20
@@ -592,6 +592,26 @@ moverock_core(coordxy sx, coordxy sy)
|
|||||||
}
|
}
|
||||||
seetrap(ttmp);
|
seetrap(ttmp);
|
||||||
return sobj_at(BOULDER, sx, sy) ? -1 : 0;
|
return sobj_at(BOULDER, sx, sy) ? -1 : 0;
|
||||||
|
case ROLLING_BOULDER_TRAP:
|
||||||
|
{
|
||||||
|
int tox = rx;
|
||||||
|
int toy = ry;
|
||||||
|
/* the boulder continues until it reaches one of
|
||||||
|
the trap's launch spots or hits a wall / out-of-bounds */
|
||||||
|
while (isok(tox + u.dx, toy + u.dy)) {
|
||||||
|
tox += u.dx;
|
||||||
|
toy += u.dy;
|
||||||
|
if (tox == ttmp->launch.x && toy == ttmp->launch.y)
|
||||||
|
break;
|
||||||
|
if (tox == ttmp->launch2.x && toy == ttmp->launch2.y)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
pline("%s away from you!",
|
||||||
|
Tobjnam(otmp, "suddenly roll"));
|
||||||
|
feeltrap(ttmp);
|
||||||
|
launch_obj(BOULDER, sx, sy, tox, toy, ROLL | LAUNCH_KNOWN);
|
||||||
|
return sobj_at(BOULDER, sx, sy) ? -1 : 0;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break; /* boulder not affected by this trap */
|
break; /* boulder not affected by this trap */
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -2131,8 +2131,10 @@ find_misc(struct monst *mtmp)
|
|||||||
if ((t = t_at(xx, yy)) != 0
|
if ((t = t_at(xx, yy)) != 0
|
||||||
&& (ignore_boulders || !sobj_at(BOULDER, xx, yy))
|
&& (ignore_boulders || !sobj_at(BOULDER, xx, yy))
|
||||||
&& !onscary(xx, yy, mtmp)) {
|
&& !onscary(xx, yy, mtmp)) {
|
||||||
/* use trap if it's the correct type */
|
/* use trap if it's the correct type and will
|
||||||
if (t->ttyp == POLY_TRAP) {
|
polymorph the monster */
|
||||||
|
if (t->ttyp == POLY_TRAP &&
|
||||||
|
!wearing_iron_shoes(mtmp)) {
|
||||||
gt.trapx = xx;
|
gt.trapx = xx;
|
||||||
gt.trapy = yy;
|
gt.trapy = yy;
|
||||||
gm.m.has_misc = MUSE_POLY_TRAP;
|
gm.m.has_misc = MUSE_POLY_TRAP;
|
||||||
|
|||||||
+14
-3
@@ -1176,9 +1176,20 @@ break_armor(void)
|
|||||||
if ((otmp = uarmc) != 0
|
if ((otmp = uarmc) != 0
|
||||||
/* mummy wrapping adapts to small and very big sizes */
|
/* mummy wrapping adapts to small and very big sizes */
|
||||||
&& (otmp->otyp != MUMMY_WRAPPING || !WrappingAllowed(uptr))) {
|
&& (otmp->otyp != MUMMY_WRAPPING || !WrappingAllowed(uptr))) {
|
||||||
pline_The("clasp on your %s breaks open!", cloak_simple_name(otmp));
|
if (otmp->otyp == MUMMY_WRAPPING) {
|
||||||
(void) Cloak_off();
|
/* doesn't have a clasp to break open */
|
||||||
dropp(otmp);
|
Your("%s tears apart!", cloak_simple_name(otmp));
|
||||||
|
(void) Cloak_off();
|
||||||
|
useup(otmp);
|
||||||
|
} else if (otmp->otyp == ALCHEMY_SMOCK) {
|
||||||
|
pline_The("knot on your %s is pulled apart!", cloak_simple_name(otmp));
|
||||||
|
(void) Cloak_off();
|
||||||
|
dropp(otmp);
|
||||||
|
} else {
|
||||||
|
pline_The("clasp on your %s breaks open!", cloak_simple_name(otmp));
|
||||||
|
(void) Cloak_off();
|
||||||
|
dropp(otmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (uarmu) {
|
if (uarmu) {
|
||||||
Your("shirt rips to shreds!");
|
Your("shirt rips to shreds!");
|
||||||
|
|||||||
@@ -325,9 +325,13 @@ special_throne_effect(int effect) {
|
|||||||
case 11:
|
case 11:
|
||||||
/* polymorph effect (not blocked by magic resistance, but other things
|
/* polymorph effect (not blocked by magic resistance, but other things
|
||||||
that protect from polymorphs work) */
|
that protect from polymorphs work) */
|
||||||
pline("This throne was not meant for those such as you!");
|
if (is_vampire(gy.youmonst.data)) {
|
||||||
You_feel("a change coming over you.");
|
You_feel("unworthy.");
|
||||||
polyself(POLY_NOFLAGS);
|
} else {
|
||||||
|
pline("This throne was not meant for those such as you!");
|
||||||
|
You_feel("a change coming over you.");
|
||||||
|
polyself(POLY_NOFLAGS);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
/* acid damage */
|
/* acid damage */
|
||||||
|
|||||||
+17
-14
@@ -16,7 +16,6 @@ staticfn boolean mu_maybe_destroy_web(struct monst *, boolean, struct trap *);
|
|||||||
staticfn struct obj *t_missile(int, struct trap *);
|
staticfn struct obj *t_missile(int, struct trap *);
|
||||||
staticfn boolean floor_trigger(int);
|
staticfn boolean floor_trigger(int);
|
||||||
staticfn boolean check_in_air(struct monst *, unsigned);
|
staticfn boolean check_in_air(struct monst *, unsigned);
|
||||||
staticfn boolean wearing_iron_shoes(struct monst *);
|
|
||||||
staticfn int trapeffect_arrow_trap(struct monst *, struct trap *, unsigned);
|
staticfn int trapeffect_arrow_trap(struct monst *, struct trap *, unsigned);
|
||||||
staticfn int trapeffect_dart_trap(struct monst *, struct trap *, unsigned);
|
staticfn int trapeffect_dart_trap(struct monst *, struct trap *, unsigned);
|
||||||
staticfn int trapeffect_rocktrap(struct monst *, struct trap *, unsigned);
|
staticfn int trapeffect_rocktrap(struct monst *, struct trap *, unsigned);
|
||||||
@@ -1094,12 +1093,12 @@ check_in_air(struct monst *mtmp, unsigned trflags)
|
|||||||
|| ((is_you ? Flying : is_flyer(mtmp->data)) && !plunged));
|
|| ((is_you ? Flying : is_flyer(mtmp->data)) && !plunged));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return TRUE if mtmp is wearing iron shoes */
|
/* return TRUE if mtmp is wearing shoes made of iron (iron/kicking) */
|
||||||
staticfn boolean
|
boolean
|
||||||
wearing_iron_shoes(struct monst *mtmp)
|
wearing_iron_shoes(struct monst *mtmp)
|
||||||
{
|
{
|
||||||
struct obj *armf = which_armor(mtmp, W_ARMF);
|
struct obj *armf = which_armor(mtmp, W_ARMF);
|
||||||
return armf && armf->otyp == IRON_SHOES;
|
return armf && objects[armf->otyp].oc_material == IRON;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* is trap ttmp harmless to monster mtmp? */
|
/* is trap ttmp harmless to monster mtmp? */
|
||||||
@@ -2453,10 +2452,6 @@ trapeffect_poly_trap(
|
|||||||
struct trap *trap,
|
struct trap *trap,
|
||||||
unsigned int trflags)
|
unsigned int trflags)
|
||||||
{
|
{
|
||||||
static int possible_boots[] = {
|
|
||||||
ELVEN_BOOTS, KICKING_BOOTS, FUMBLE_BOOTS, LEVITATION_BOOTS,
|
|
||||||
JUMPING_BOOTS, SPEED_BOOTS, WATER_WALKING_BOOTS };
|
|
||||||
|
|
||||||
if (mtmp == &gy.youmonst) {
|
if (mtmp == &gy.youmonst) {
|
||||||
boolean viasitting = (trflags & VIASITTING) != 0;
|
boolean viasitting = (trflags & VIASITTING) != 0;
|
||||||
int steed_article = ARTICLE_THE;
|
int steed_article = ARTICLE_THE;
|
||||||
@@ -2480,7 +2475,8 @@ trapeffect_poly_trap(
|
|||||||
if (wearing_iron_shoes(mtmp)) {
|
if (wearing_iron_shoes(mtmp)) {
|
||||||
deltrap(trap);
|
deltrap(trap);
|
||||||
pline("%s warps strangely.", Yname2(uarmf));
|
pline("%s warps strangely.", Yname2(uarmf));
|
||||||
poly_obj(uarmf, ROLL_FROM(possible_boots));
|
poly_obj(
|
||||||
|
uarmf, uarmf->otyp == IRON_SHOES ? KICKING_BOOTS : IRON_SHOES);
|
||||||
update_inventory();
|
update_inventory();
|
||||||
if (uarmf)
|
if (uarmf)
|
||||||
prinv(NULL, uarmf, 0);
|
prinv(NULL, uarmf, 0);
|
||||||
@@ -2506,7 +2502,8 @@ trapeffect_poly_trap(
|
|||||||
impossible("re-equipping iron shoes destroyed them?");
|
impossible("re-equipping iron shoes destroyed them?");
|
||||||
return Trap_Effect_Finished;
|
return Trap_Effect_Finished;
|
||||||
}
|
}
|
||||||
shoes = poly_obj(shoes, ROLL_FROM(possible_boots));
|
shoes = poly_obj(
|
||||||
|
shoes, shoes->otyp == IRON_SHOES ? KICKING_BOOTS : IRON_SHOES);
|
||||||
/* now equip them again */
|
/* now equip them again */
|
||||||
if (shoes) {
|
if (shoes) {
|
||||||
mtmp->misc_worn_check |= W_ARMF;
|
mtmp->misc_worn_check |= W_ARMF;
|
||||||
@@ -2671,9 +2668,13 @@ trapeffect_rolling_boulder_trap(
|
|||||||
!Deaf ? "Click! " : "");
|
!Deaf ? "Click! " : "");
|
||||||
if (!launch_obj(BOULDER, trap->launch.x, trap->launch.y,
|
if (!launch_obj(BOULDER, trap->launch.x, trap->launch.y,
|
||||||
trap->launch2.x, trap->launch2.y, style)) {
|
trap->launch2.x, trap->launch2.y, style)) {
|
||||||
deltrap(trap);
|
/* if this is a known trap, the player may have known there wasn't
|
||||||
newsym(u.ux, u.uy); /* get rid of trap symbol */
|
a lined up boulder, so use a shorter message to avoid --More--
|
||||||
pline("Fortunately for you, no boulder was released.");
|
spam */
|
||||||
|
if (style & LAUNCH_KNOWN)
|
||||||
|
pline("No boulder was released.");
|
||||||
|
else
|
||||||
|
pline("Fortunately for you, no boulder was released.");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!m_in_air(mtmp)) {
|
if (!m_in_air(mtmp)) {
|
||||||
@@ -2816,6 +2817,8 @@ immune_to_trap(struct monst *mon, unsigned ttype)
|
|||||||
hanging to the ceiling */
|
hanging to the ceiling */
|
||||||
if (Sokoban && (is_pit(ttype) || is_hole(ttype)))
|
if (Sokoban && (is_pit(ttype) || is_hole(ttype)))
|
||||||
return TRAP_NOT_IMMUNE;
|
return TRAP_NOT_IMMUNE;
|
||||||
|
if (In_sokoban(&u.uz) && ttype == ROLLING_BOULDER_TRAP)
|
||||||
|
return TRAP_CLEARLY_IMMUNE; /* not dangerous in Sokoban */
|
||||||
if (is_floater(pm) || is_flyer(pm)
|
if (is_floater(pm) || is_flyer(pm)
|
||||||
|| (is_clinger(pm) && has_ceiling(&u.uz)))
|
|| (is_clinger(pm) && has_ceiling(&u.uz)))
|
||||||
return TRAP_CLEARLY_IMMUNE;
|
return TRAP_CLEARLY_IMMUNE;
|
||||||
@@ -3585,7 +3588,7 @@ find_random_launch_coord(struct trap *ttmp, coord *cc)
|
|||||||
coordxy dx, dy;
|
coordxy dx, dy;
|
||||||
coordxy x, y;
|
coordxy x, y;
|
||||||
|
|
||||||
if (!ttmp || !cc)
|
if (!ttmp || !cc || Sokoban)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
x = ttmp->tx;
|
x = ttmp->tx;
|
||||||
|
|||||||
Reference in New Issue
Block a user