OSDN Git Service

アイテム生成に関わるフラグgen_flag導入
authorhoge <hoge@0568b783-4c39-0410-ac80-bf13821ea2a2>
Thu, 7 Mar 2002 12:49:43 +0000 (12:49 +0000)
committerhoge <hoge@0568b783-4c39-0410-ac80-bf13821ea2a2>
Thu, 7 Mar 2002 12:49:43 +0000 (12:49 +0000)
モンク・練気の報酬修正

16 files changed:
lib/edit/a_info_j.txt
lib/edit/e_info_j.txt
lib/edit/t0000001_j.txt
lib/edit/t_lite_j.txt
src/artifact.c
src/cmd4.c
src/defines.h
src/effects.c
src/externs.h
src/flavor.c
src/init1.c
src/load.c
src/object2.c
src/types.h
src/wizard1.c
src/wizard2.c

index c29772d..804b42f 100644 (file)
@@ -290,7 +290,7 @@ F:STR | INT | WIS | DEX | CON | CHR | SPEED | HIDE_TYPE |
 F:ACTIVATE | HOLD_LIFE | FREE_ACT | SEE_INVIS |
 F:FEATHER | REGEN | SHOW_MODS |
 F:SUST_INT | SUST_WIS | IM_COLD |
-F:INSTA_ART
+F:XTRA_POWER | INSTA_ART
 D:$The Ring of Adamant, with a pure white stone as centerpiece.  Nenya is one 
 D:$of the three Rings of Power created by the Elves and hidden by them from 
 D:$Sauron.
@@ -309,7 +309,7 @@ F:STR | INT | WIS | DEX | CON | CHR | SPEED | HIDE_TYPE |
 F:ACTIVATE | HOLD_LIFE | FREE_ACT | SEE_INVIS |
 F:FEATHER | SLOW_DIGEST | REGEN |
 F:SUST_INT | SUST_WIS | SUST_STR | SUST_DEX | IM_ELEC |
-F:INSTA_ART
+F:INSTA_ART | XTRA_POWER
 D:$The Ring of Sapphire, with clear blue gems that shine like stars, 
 D:$glittering untouchable despite all that Morgoth ever wrought.  Vilya is 
 D:$one of the three Rings of Power created by the Elves and hidden by them 
@@ -331,7 +331,7 @@ F:AGGRAVATE | DRAIN_EXP | SEE_INVIS | REGEN | TY_CURSE |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_ACID |
 F:SUST_STR | SUST_DEX | SUST_CON |
 F:SUST_INT | SUST_WIS | SUST_CHR |
-F:INSTA_ART
+F:INSTA_ART | XTRA_POWER | XTRA_H_RES
 D:$"One Ring to rule them all, One Ring to find them, One Ring to bring 
 D:$them all and in the darkness bind them."  Made of massive gold, and 
 D:$set with runes in the foul speech of Mordor, Isildur's Bane possesses 
@@ -380,7 +380,7 @@ I:19:50:4
 W:60:150:100:100000
 P:0:0d0:20:20:0
 F:SPEED | STEALTH | RES_NETHER |
-F:ACTIVATE | SHOW_MODS | INSTA_ART
+F:ACTIVATE | SHOW_MODS | INSTA_ART | XTRA_POWER | XTRA_H_RES
 D:¡Ö¡½¤½¤³¤Ï³¹Á´ÂΤ¬Ëâʪ¤Î½»½è¤È²½¤·¤Æ¤¤¤¿¡£¤½¤Î¤È¤­»×¤ï¤º
 D:»È¤Ã¤¿½Æ¡Ý¥¯¥ê¥à¥¾¥ó¤¬±ÛÁ°¤ò½õ¤±¡¢¤½¤·¤Æ¡¢¤¿¤¿¤«¤¦¤´¤È¤Ë¡¢
 D:¥¯¥ê¥à¥¾¥ó¤Ï¤è¤ê¶¯ÎϤÊÉð´ï¤Ø¤È¿Ê²½¤·¤Æ¤¤¤Ã¤¿¡£¡½¡×(¥Ç¥¹¥¯
@@ -480,7 +480,7 @@ E:of the Rohirrim
 I:37:9:2
 W:30:3:200:30000
 P:19:1d4:0:0:15
-F:STR | DEX | HIDE_TYPE |
+F:STR | DEX | HIDE_TYPE | XTRA_H_RES |
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_CONF | RES_SOUND
 D:$Small metal plates cover an inner layer of sturdy canvas, and both bear 
 D:$scenes of hunting and war.  You feel the spirit of Eorl the Young, matchless 
@@ -516,7 +516,7 @@ W:40:15:250:120000
 P:15:2d4:-2:0:40
 F:STR | CHR | HIDE_TYPE |
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_DARK |
-F:RES_DISEN | ACTIVATE
+F:RES_DISEN | XTRA_H_RES | ACTIVATE
 D:¿¿À¤³¦¥¢¥ó¥Ð¡¼¤Î¥¢¡¼¥Ç¥ó¤Î¿¹¤ò¼é¤ë¥¸¥å¥ê¥¢¥ó¤Î¶ä¤Î³»¤À¡£
 
 
@@ -533,7 +533,7 @@ E:of Arvedui
 I:37:4:2
 W:20:3:220:32000
 P:14:1d4:-2:0:15
-F:STR | CHR | HIDE_TYPE |
+F:STR | CHR | HIDE_TYPE | XTRA_H_RES |
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_SHARDS | RES_NEXUS
 D:¥¤¥·¥ë¥É¥¥¥¢¤ÎËöêã¤Ç¤¢¤ê¡¢¥¢¥ó¥°¥Þ¡¼¥ëËâ¹ñ¤ÈÀï¤Ã¤¿
 D:ËÌÊý²¦Ä«¥¢¥ë¥»¥À¥¤¥ó¹ñ¤ÎºÇ¸å¤Î²¦¥¢¥ë¥ô¥§¥É¥¥¥¤¤¬¿È¤ËÉÕ¤±¤Æ¤¤¤¿º¿Öé»Ò¤À¡£
@@ -555,7 +555,7 @@ E:of Caspanion
 I:37:6:3
 W:25:9:270:40000
 P:16:1d4:-2:0:20
-F:INT | WIS | CON | HIDE_TYPE |
+F:INT | WIS | CON | HIDE_TYPE | XTRA_H_RES |
 F:RES_ACID | RES_POIS | RES_CONF | ACTIVATE
 D:$A hauberk, leggings, and sleeves of interlocking steel rings, strategically 
 D:$reinforced at vital locations with a second layer of chain.  Magics to 
@@ -588,7 +588,7 @@ E:'Hithlomir'
 I:36:4:4
 W:20:3:80:45000
 P:4:0d0:0:0:20
-F:STEALTH | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_DARK
+F:STEALTH | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_DARK | XTRA_H_RES
 D:$Familar with the secret ways hidden in darkness, this leather cuirass is 
 D:$truly more than it appears.
 D:¡Ö̸¤ÎÊõÀСפò°ÕÌ£¤¹¤ë̾¤ò»ý¤Ä¡¢¤³¤Î³×¤Îƹ³»¤Ï¡¢
@@ -602,7 +602,7 @@ E:'Thalkettoth'
 I:36:11:3
 W:20:3:60:25000
 P:11:1d1:-1:0:25
-F:DEX | HIDE_TYPE | RES_ACID | RES_SHARDS
+F:DEX | HIDE_TYPE | RES_ACID | RES_SHARDS | XTRA_H_RES
 D:$An amazingly light tunic and skirt sewn with thick, overlapping scales of 
 D:$hardened leather whose wearer moves with agility and assurance.
 D:An amazingly light tunic and skirt sewn with thick, overlapping scales of 
@@ -620,6 +620,7 @@ I:34:3:4
 W:40:12:65:120000
 P:5:1d2:0:0:21
 F:STR | CON | HIDE_TYPE | FREE_ACT | IM_ACID | RES_SOUND | RES_CHAOS
+F:XTRA_H_RES
 D:$Invoking the strength and endurance of Thorin, King under the Mountain, 
 D:$this little metal shield is proof against the Element of Earth.
 D:»³¤Î²¼¤Î²¦¥È¡¼¥ê¥ó¡¦¥ª¡¼¥±¥ó¥·¡¼¥ë¥É¤Î¶¯¤µ¤È´è¾æ¤µ¤ò¼õ¤±·Ñ¤¤¤À
@@ -638,7 +639,7 @@ E:of Celegorm
 I:34:4:0
 W:30:3:60:30000
 P:6:1d2:0:0:20
-F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_LITE | RES_DARK
+F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_LITE | RES_DARK | XTRA_H_RES
 D:$This shield emblazoned with a multitude of creatures not seen for ages 
 D:$once protected Celegorm, lord of Himlad; around it lies a mystic balance  
 D:$that contains the conflicts of the elements.
@@ -663,7 +664,7 @@ I:34:5:0
 W:40:9:120:160000
 P:8:1d3:0:0:18
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | SUST_STR | SUST_INT |
-F:SUST_WIS | SUST_DEX | SUST_CON | SUST_CHR
+F:SUST_WIS | SUST_DEX | SUST_CON | SUST_CHR | XTRA_H_RES
 D:$The great metal-bound shield of Anarion, son of Elendil, who Sauron found 
 D:$himself powerless to wither or diminish.
 D:¤«¤Ä¤Æ¥µ¥¦¥í¥ó¤Èͦ´º¤ËÀï¤Ã¤¿
@@ -714,7 +715,7 @@ I:33:10:-25
 W:40:12:20:0
 P:0:1d1:0:0:25
 F:STR | DEX | CON | HIDE_TYPE | DEC_MANA
-F:FREE_ACT | SEE_INVIS | TELEPATHY | CURSED
+F:FREE_ACT | SEE_INVIS | TELEPATHY | CURSED | XTRA_POWER
 D:$The midnight-hued steel circlet of the sorceress-queen Beruthiel, which 
 D:$grants extraordinary powers of sight and awareness at a terrible physical 
 D:$cost.
@@ -730,7 +731,7 @@ E:of Thranduil
 I:32:2:2
 W:20:2:15:50000
 P:2:0d0:0:0:10
-F:INT | WIS | HIDE_TYPE | RES_BLIND | TELEPATHY
+F:INT | WIS | HIDE_TYPE | RES_BLIND | TELEPATHY | XTRA_H_RES
 D:$The hunting cap of King Thranduil, to whose ears come all the secrets of 
 D:$his forest domain.
 D:¥ì¥´¥é¥¹¤ÎÉã¤Ç¤¢¤ê¡¢ÎÎÅڤο¹¤Î¤¢¤é¤æ¤ë»ö¤òÃΤ륹¥é¥ó¥É¥¦¥£¥ë²¦
@@ -835,6 +836,7 @@ P:0:1d1:0:0:15
 F:STR | WIS | CON | HIDE_TYPE | SPEED |
 F:RES_COLD | RES_FIRE | RES_LITE | RES_BLIND | RES_ELEC | RES_CONF |
 F:RES_CHAOS | LITE | SEE_INVIS | REGEN | ACTIVATE
+F:XTRA_POWER | XTRA_H_RES
 D:¥¢¥ó¥Ð¡¼¤Î²¦°Ì¤Î¾Ýħ¤Ç¤¢¤ë¡¢Â¿¿ô¤ÎÊõÀФǾþ¤é¤ì¤¿¶â¤Î²¦´§¤À¡£
 D:¤³¤ì¤ò¤á¤°¤Ã¤Æ¹üÆù¤ÎÁ褤¤¬²¦»Ò¤¿¤Á¤Î´Ö¤Ç·«¤ê¹­¤²¤é¤ì¤¿¡£
 
@@ -900,7 +902,7 @@ E:of Thingol
 I:35:1:3
 W:10:90:10:45000
 P:1:0d0:0:0:18
-F:DEX | CHR | HIDE_TYPE |
+F:DEX | CHR | HIDE_TYPE | XTRA_POWER |
 F:FREE_ACT | RES_ACID | RES_FIRE | RES_COLD | ACTIVATE
 D:$A sable-hued cloak, with glowing elven-runes to restore magic showing calm 
 D:$and clear as moonlight on still water.
@@ -955,7 +957,7 @@ W:40:40:5:80000
 P:6:0d0:0:0:20
 F:INT | WIS | CHR | HIDE_TYPE | SPEED | STEALTH |
 F:RES_ACID | RES_FIRE | RES_COLD | ACTIVATE |
-F:RES_DARK | RES_LITE
+F:RES_DARK | RES_LITE | XTRA_H_RES
 D:$The opaque midnight folds, inset with a multitude of tiny diamonds, of 
 D:$this cloak swirl around you and you feel a hint, a fragment of the 
 D:$knowledge and power to restore that lay in Luthien, the most beautiful 
@@ -1092,7 +1094,7 @@ I:31:5:4
 W:40:15:40:110000
 P:5:1d1:10:10:20
 F:DEX | HIDE_TYPE |
-F:FREE_ACT | RES_ACID | ACTIVATE | SHOW_MODS
+F:FREE_ACT | RES_ACID | ACTIVATE | SHOW_MODS | XTRA_POWER
 D:$The hand-sheathing of Fingolfin, warrior-king of Elves and Men, who gave 
 D:$Morgoth seven mighty wounds and pain that will last forever.
 D:¥Õ¥§¥¢¥Î¡¼¥ëË´¤­¸åÃæ¤Ä¹ñ¤Î¥Î¥ë¥É¡¼¥ë¤òΨ¤¤¤Æ̽²¦¤ÈÀï¤Ã¤¿
@@ -1153,7 +1155,7 @@ E:of Thror
 I:30:6:3
 W:30:25:80:85000
 P:6:1d1:0:0:20
-F:STR | CON | HIDE_TYPE | SPEED
+F:STR | CON | HIDE_TYPE | SPEED | XTRA_H_RES
 D:$Sturdy footwear of leather and steel as enduring as the long-suffering 
 D:$Dwarven King-in-exile who wore them.  Of dwarven make, the wearer of 
 D:$these boots will be completely at home in the mountains.
@@ -1186,7 +1188,7 @@ E:of Maedhros
 I:23:5:3
 W:15:30:30:62500
 P:0:2d5:12:15:0
-F:INT | DEX | HIDE_TYPE | SPEED |
+F:INT | DEX | HIDE_TYPE | SPEED | XTRA_RES_OR_POWER |
 F:SLAY_TROLL | SLAY_GIANT | FREE_ACT | SEE_INVIS | SHOW_MODS
 D:$A short thrusting blade with a large guard worn by Maedhros the Tall, 
 D:$eldest son of Feanor, and wielded with his left hand after the loss of 
@@ -1216,7 +1218,7 @@ E:'Narthanc'
 I:23:4:0
 W:4:10:12:12000
 P:0:1d4:4:6:0
-F:BRAND_FIRE | RES_FIRE | ACTIVATE | SHOW_MODS | LITE | THROW
+F:BRAND_FIRE | RES_FIRE | ACTIVATE | SHOW_MODS | LITE | THROW | XTRA_H_RES
 D:$A fiery dagger finely balanced for deadly throws.
 D:¡Ö±ë¤Î²ç¡×¤ò°ÕÌ£¤¹¤ë̾¤ò»ý¤Ä¤³¤Îdz¤¨À¹¤ëû·õ¤Ï¡¢
 D:¤½¤Î¿Ï¤«¤é±ë¤ÎÌð¤òíþ¤é¤»¤ëÎϤò¤â¤Ä¡£
@@ -1229,7 +1231,7 @@ E:'Nimthanc'
 I:23:4:0
 W:3:10:12:11000
 P:0:1d4:4:6:0
-F:BRAND_COLD | RES_COLD | ACTIVATE | SHOW_MODS | THROW
+F:BRAND_COLD | RES_COLD | ACTIVATE | SHOW_MODS | THROW | XTRA_H_RES
 D:$A frosty dagger finely balanced for deadly throws.
 D:¡ÖÇò¤­²ç¡×¤ò°ÕÌ£¤¹¤ë̾¤ò»ý¤Ä¤³¤Îû·õ¤Ïɬ»¦¤ÎÎ䵤¤ò¤â¤Ã¤Æ
 D:Ũ¤òÅà¤Æ¤Ä¤«¤»¡¢¿Ï¤«¤é¤Ïɹ¤ÎÌð¤òíþ¤é¤»¤ëÎϤò¤â¤Ä¡£
@@ -1243,7 +1245,7 @@ E:'Dethanc'
 I:23:4:0
 W:5:10:12:13000
 P:0:1d4:4:6:0
-F:BRAND_ELEC | RES_ELEC | ACTIVATE | SHOW_MODS | THROW
+F:BRAND_ELEC | RES_ELEC | ACTIVATE | SHOW_MODS | THROW | XTRA_H_RES
 D:$A dagger covered in sparks and finely balanced for deadly throws.
 D:¡Ö¹õ¤Î²ç¡×¤ò°ÕÌ£¤¹¤ë̾¤ò»ý¤Ä¡¢¤³¤Îû·õ¤ÏÍë¸÷¤Ëʤ¤ï¤ì¡¢
 D:¤½¤Î¿Ï¤«¤éÍë¤ÎÌð¤òíþ¤é¤»¤ëÎϤò¤â¤Ä¡£
@@ -1339,7 +1341,7 @@ W:20:20:150:40000
 P:0:2d5:10:15:0
 F:SEARCH |
 F:SLAY_EVIL | BRAND_FIRE | SLAY_ORC | RES_FIRE | RES_LITE | LITE |
-F:SLOW_DIGEST | SHOW_MODS | RIDING
+F:SLOW_DIGEST | SHOW_MODS | RIDING | XTRA_RES_OR_POWER
 D:$This fiery, shining blade earned its sobriquet "Foe-Hammer" from dying orcs 
 D:$who dared to come near hidden Gondolin.
 D:¤³¤Îdz¤¨¤ë¤è¤¦¤Ëµ±¤¯·õ¤Ï¡Ø¥ª¥ë¥¯¥ê¥¹¥È¡Ù¤ÈÂФòÀ®¤·¡¢
@@ -1401,7 +1403,7 @@ I:23:16:3
 W:20:20:150:40000
 P:0:2d5:10:15:0
 F:STEALTH | SLAY_EVIL | BRAND_COLD | SLAY_ORC | RES_COLD | LITE |
-F:SLOW_DIGEST | SHOW_MODS | RIDING
+F:SLOW_DIGEST | SHOW_MODS | RIDING | XTRA_RES_OR_POWER
 D:$This coldly gleaming blade is called simply "Biter", by orcs who came to 
 D:$know its power all too well.
 D:¤³¤ÎÎ䤿¤¯µ±¤¯·õ¤Ï¡Ø¥°¥é¥à¥É¥ê¥ó¥°¡Ù¤ÈÂФòÀ®¤·¡¢¥ª¡¼¥¯¤¿¤Á¤«¤é¤Ï
@@ -1422,7 +1424,7 @@ E:'Gurthang'
 I:23:25:2
 W:30:30:200:100000
 P:0:3d6:13:17:0
-F:STR | HIDE_TYPE |
+F:STR | HIDE_TYPE | XTRA_RES_OR_POWER |
 F:KILL_DRAGON | SLAY_TROLL | FREE_ACT | SLOW_DIGEST | REGEN | SHOW_MODS
 D:$A giant sword once wielded by mighty Turin, and a great dragonbane which 
 D:$bathed in Glaurung's blood:  but beware, it will drink the blood of those 
@@ -1440,7 +1442,7 @@ E:'Zarcuthra'
 I:23:25:4
 W:30:180:250:205000
 P:0:4d6:19:21:0
-F:STR | CHR | INFRA | HIDE_TYPE | VORPAL |
+F:STR | CHR | INFRA | HIDE_TYPE | VORPAL | XTRA_RES_OR_POWER |
 F:KILL_DRAGON | SLAY_ANIMAL | SLAY_EVIL | BRAND_FIRE | LITE |
 F:SLAY_UNDEAD | SLAY_DEMON | SLAY_TROLL | SLAY_GIANT | SLAY_ORC |
 F:RES_FIRE | RES_CONF | RES_CHAOS | FREE_ACT | SEE_INVIS | AGGRAVATE |
@@ -1548,7 +1550,7 @@ E:'Anduril'
 I:23:17:4
 W:20:40:130:80000
 P:0:2d5:10:15:5
-F:STR | HIDE_TYPE | RIDING |
+F:STR | HIDE_TYPE | RIDING | XTRA_RES_OR_POWER |
 F:SLAY_EVIL | BRAND_FIRE | SLAY_TROLL | SLAY_ORC | FREE_ACT |
 F:RES_FIRE | SUST_DEX | SEE_INVIS | ACTIVATE | SHOW_MODS | LITE
 D:$The famed "Flame of the West", the sword that was broken and is forged 
@@ -1635,7 +1637,7 @@ I:23:8:2
 W:20:15:75:100000
 P:0:1d6:7:8:0
 F:STR | DEX | CON | BLOWS | SLAY_EVIL | SLAY_UNDEAD | SLAY_ORC |
-F:FREE_ACT | RES_LITE | LITE | SEE_INVIS | SHOW_MODS | QUESTITEM
+F:FREE_ACT | RES_LITE | LITE | SEE_INVIS | SHOW_MODS | XTRA_H_RES | QUESTITEM
 D:$"I will give you a name, and I shall call you Sting."  The perfect size 
 D:$for Bilbo, and stamped forever by the courage he found in Mirkwood, this 
 D:$sturdy little blade grants the wearer combat prowess and survival 
@@ -1657,7 +1659,7 @@ P:0:2d5:9:11:0
 F:INT | WIS | BLOWS | SEE_INVIS | BLESSED |
 F:SLAY_ANIMAL | SLAY_EVIL | SLAY_UNDEAD | SLAY_DRAGON | SLAY_DEMON |
 F:RES_CHAOS | RES_DISEN | RES_NEXUS | RES_NETHER | HOLD_LIFE |
-F:SHOW_MODS
+F:SHOW_MODS | XTRA_RES_OR_POWER
 
 
 # The Short Sword Gilettar -> of Merlin
@@ -2014,7 +2016,7 @@ E:of Ulmo
 I:22:5:4
 W:30:90:70:120000
 P:0:4d8:15:19:0
-F:DEX | HIDE_TYPE |
+F:DEX | HIDE_TYPE | XTRA_POWER |
 F:SLAY_DRAGON | SLAY_ANIMAL | FREE_ACT | HOLD_LIFE | IM_ACID |
 F:RES_NETHER | SEE_INVIS | SLOW_DIGEST | REGEN | ACTIVATE |
 F:BLESSED | SHOW_MODS | RIDING
@@ -2055,7 +2057,8 @@ W:40:120:130:250000
 P:0:3d5:20:20:0
 F:ACTIVATE | LITE | BRAND_FIRE | FREE_ACT | RES_FIRE | INFRA | RIDING |
 F:SLAY_EVIL | SLAY_DRAGON | SLAY_UNDEAD | SLAY_DEMON | VORPAL |
-F:CHR | SUST_CHR | RES_FEAR | RES_LITE | RES_BLIND | REGEN | SHOW_MODS
+F:CHR | SUST_CHR | RES_FEAR | RES_LITE | RES_BLIND | REGEN | SHOW_MODS |
+F:XTRA_RES_OR_POWER
 D:$Forged in the farthest East by a race of mighty spellcasters, this 
 D:$shiny pale sword gleams with the rays of rising sun as you invoke 
 D:$its power of commanding legions of powerful immortal warriors...
@@ -2180,7 +2183,7 @@ P:0:9d3:19:21:5
 F:WIS | HIDE_TYPE |
 F:KILL_DRAGON | SLAY_EVIL | BRAND_ELEC | SLAY_UNDEAD | SLAY_DEMON |
 F:FREE_ACT | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_NEXUS |
-F:SEE_INVIS | SHOW_MODS
+F:SEE_INVIS | SHOW_MODS | XTRA_POWER | XTRA_H_RES
 D:$The wondrous hammer of Aule, creator of the wise Dwarven lords of old.  
 D:$It bears magics of demolishing that no serpent or demon can withstand, and 
 D:$invokes the strength of mountains to ward off the tumult of the elements.
@@ -2231,7 +2234,7 @@ I:21:21:4
 W:30:50:40:140000
 P:0:3d2:10:13:0
 F:INT | WIS | CHR | HIDE_TYPE | SEARCH | BRAND_FIRE | FORCE_WEAPON |
-F:SLAY_EVIL | SLAY_TROLL | SLAY_ORC | LITE | DEC_MANA |
+F:SLAY_EVIL | SLAY_TROLL | SLAY_ORC | LITE | DEC_MANA | XTRA_POWER |
 F:HOLD_LIFE | RES_FIRE | RES_NETHER | SEE_INVIS | ACTIVATE | SHOW_MODS
 D:$The staff of the great wizard Gandalf.  
 D:$It is tall and sturdy, with rough-hewn runes that invoke the element of 
@@ -2275,7 +2278,7 @@ W:20:15:120:30000
 P:0:2d5:10:6:8
 F:WIS | INFRA | HIDE_TYPE | BLESSED |
 F:BRAND_COLD | SLAY_ORC | RES_COLD | RES_LITE | LITE | REGEN |
-F:ACTIVATE | SHOW_MODS
+F:ACTIVATE | SHOW_MODS | XTRA_H_RES
 D:$Wielded by the High Priest of Meneltarma, this great mace gleams coldly as 
 D:$though moonlit, and it can strike as mighty a blow spiritually as 
 D:$physically.
@@ -2334,7 +2337,7 @@ E:of Brand
 I:19:23:10
 W:50:25:110:100000
 P:0:0d0:10:14:0
-F:SPEED | RES_FIRE | XTRA_MIGHT | ACTIVATE | SHOW_MODS
+F:SPEED | RES_FIRE | XTRA_MIGHT | ACTIVATE | SHOW_MODS | XTRA_RES_OR_POWER
 D:¥È¥é¥ó¥×¤ÎËâÎϤò¼«Ê¬¤Îʪ¤Ë¤·¡¢¿·¤¿¤Ê±§Ãè¤òÁϤ¤·¤è¤¦¤È¤·¤¿
 D:¥¢¥ó¥Ð¡¼¤Î²¦»Ò¥Ö¥é¥ó¥É¤¬»È¤Ã¤Æ¤¤¤¿¥¯¥í¥¹¥Ü¥¦¤À¡£
 D:¤½¤ÎËâÎϤˤè¤êÁõÈ÷¤¹¤ë¤â¤Î¤ÏÈó¾ï¤ËÁÇÁ᤯¹ÔÆ°¤Ç¤­¤ë¡£
@@ -2468,7 +2471,7 @@ I:19:2:3
 W:40:35:20:50000
 P:0:2d1:19:15:0
 F:SPEED | XTRA_MIGHT |
-F:RES_FEAR | RES_BLIND | RES_CONF | SHOW_MODS
+F:RES_FEAR | RES_BLIND | RES_CONF | SHOW_MODS | XTRA_RES_OR_POWER
 D:$A sling granting extraordinary clarity of mind amidst darkness and 
 D:$confusion, and which hurls shot with deadly speed.
 D:¤³¤Î¥¹¥ê¥ó¥°¤Ï°Å°Ç¤Èº®Íð¤Î¤¿¤ÀÃæ¤Ë±÷¤¤¤Æ¤µ¤¨¶Ã¤¯¤Û¤ÉÌÀÚò¤Ê»×¹Í¤ò²Äǽ¤Ë¤·¡¢
@@ -2479,7 +2482,7 @@ E:of Azaghal
 I:23:5:0
 W:15:30:30:40000
 P:0:2d5:12:14:0
-F:KILL_DRAGON | IM_FIRE
+F:KILL_DRAGON | IM_FIRE | XTRA_RES_OR_POWER
 D:$At the Nirnaeth the Dwarves stayed the onslaught of Glaurung, and 
 D:$Azaghal their lord drove this short blade into the drake's belly before 
 D:$he was trampled underfoot. The black blood of the Father of Dragons 
@@ -3380,7 +3383,7 @@ I:21:7:2
 W:35:40:70:125000
 P:0:1d7:8:8:8
 F:STR | WIS | BLOWS | TUNNEL | ACTIVATE | RES_ACID | RES_ELEC
-F:REGEN | FREE_ACT | BRAND_ELEC | BLESSED
+F:REGEN | FREE_ACT | BRAND_ELEC | BLESSED | XTRA_H_RES
 D:¤½¤ÎÀΡ¢Âý¤ò°ú¤­Ï¢¤ì¤Æ´ßÏÂÅĤÎÃϤò¼é¤ë¤¿¤á¤ËÀ狼¤Ã¤¿¤È¤¤¤¦
 D:ÂýË¡»Õ¤³¤ÈÃÏ¢ÂçÊ¤Î²½¿È¤¬»È¤Ã¤Æ¤¤¤¿Ï»´Ä¤Î¼â¾ó¤À¡£
 D:¡Ö¡Ä¤½¤Î»þ¡£°ì¿Í¤ÎË¡»Õ¤¬¤É¤³¤«¤é¤È¤â¤Ê¤¯¸½¤ì¤Æ¡¢²¿Ëü¤È¤¤¤¦Å¨¤ËÈô¤Ó¤«¤«¤ê¡¢
index 1ee6a7d..fb4ebb3 100644 (file)
@@ -89,7 +89,7 @@ X:31:20
 W:0:18:0:12500
 C:0:0:10:0
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | 
-F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
+F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | XTRA_H_RES
 
 # OnePower
 
@@ -100,7 +100,7 @@ W:0:18:0:15000
 C:0:0:10:3
 F:STEALTH | 
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | 
-F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
+F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | XTRA_H_RES
 
 N:10:(¥É¥ï¡¼¥Õ)
 E:(Dwarven)
@@ -119,7 +119,7 @@ W:0:0:0:30000
 C:0:0:10:0
 F:SUST_STR | SUST_DEX | SUST_CON | SUST_INT | SUST_WIS | SUST_CHR | 
 F:HOLD_LIFE | RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | 
-F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
+F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | XTRA_H_RES
 
 N:12:¾¬°Ç¤Î
 E:of The Twilight
@@ -233,20 +233,21 @@ C:0:0:0:3
 F:INT | SUST_INT | 
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | 
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
+F:XTRA_H_RES | XTRA_POWER
 
 N:28:ÎϤÎ
 E:of Might
 X:33:19
 W:0:36:0:10000
 C:0:0:0:3
-F:STR | DEX | CON | SUST_STR | SUST_DEX | SUST_CON | FREE_ACT
+F:STR | DEX | CON | SUST_STR | SUST_DEX | SUST_CON | FREE_ACT | XTRA_H_RES
 
 N:29:º¸·¤Î
 E:of Lordliness
 X:33:17
 W:0:18:0:10000
 C:0:0:0:3
-F:WIS | CHR | SUST_WIS | SUST_CHR
+F:WIS | CHR | SUST_WIS | SUST_CHR | XTRA_H_RES
 
 N:30:±ÔÉÒ¤Î
 E:of Seeing
@@ -341,7 +342,7 @@ E:of Aman
 X:32:20
 W:0:36:0:15000
 C:0:0:20:3
-F:STEALTH | 
+F:STEALTH | XTRA_H_RES
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
 
 # Aura, Fire
@@ -415,7 +416,7 @@ E:of Power
 X:34:22
 W:0:18:0:8000
 C:5:5:0:5
-F:STR | SHOW_MODS | HIDE_TYPE
+F:STR | SHOW_MODS | HIDE_TYPE | XTRA_H_RES
 
 N:52:¸»»á¤Î
 E:of Genji
@@ -516,7 +517,7 @@ W:0:36:0:20000
 C:6:6:4:4
 F:WIS | 
 F:SLAY_EVIL | SLAY_UNDEAD | SLAY_DEMON | 
-F:SEE_INVIS | BLESSED | RES_FEAR
+F:SEE_INVIS | BLESSED | RES_FEAR | ONE_SUSTAIN
 
 # OneSustain
 
@@ -527,7 +528,7 @@ W:0:36:0:10000
 C:4:4:8:4
 F:STEALTH | 
 F:FREE_ACT | SEE_INVIS | FEATHER | REGEN | 
-F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | 
+F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | ONE_SUSTAIN | XTRA_H_RES |
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
 
 # OneAbility
@@ -610,7 +611,7 @@ N:77:(
 E:(Chaotic)
 X:24:28
 W:0:36:0:10000
-F:CHAOTIC | RES_CHAOS | IGNORE_ELEC | IGNORE_ACID | IGNORE_FIRE
+F:CHAOTIC | RES_CHAOS | IGNORE_ELEC | IGNORE_ACID | IGNORE_FIRE | XTRA_RES
 
 #JZ#
 N:78:ÀÚ¤ìÌ£¤Î
@@ -675,7 +676,7 @@ N:87:
 E:of Slay Dragon
 X:24:18
 W:0:23:0:3500
-F:SLAY_DRAGON
+F:SLAY_DRAGON | XTRA_E_RES
 
 # The "Kill" brands (8)
 
@@ -733,7 +734,7 @@ E:of *Slay* Dragon
 X:24:24
 W:0:90:0:6000
 C:0:0:0:1
-F:CON | SLAY_DRAGON | KILL_DRAGON
+F:CON | SLAY_DRAGON | KILL_DRAGON | XTRA_E_RES | XTRA_D_RES
 
 #JZ#
 N:96:(µÛ·ì)
@@ -756,7 +757,7 @@ X:24:22
 W:0:18:0:7000
 C:4:4:0:2
 F:SLAY_EVIL | TELEPORT | FREE_ACT | SEARCH |
-F:REGEN | SLOW_DIGEST | RES_NEXUS | ACTIVATE
+F:REGEN | SLOW_DIGEST | RES_NEXUS | ACTIVATE | XTRA_H_RES
 
 #JZ#
 N:99:(¥Ñ¥¿¡¼¥ó)
@@ -766,7 +767,7 @@ W:0:36:0:25000
 C:6:6:0:2
 F:STR | CON |
 F:SLAY_EVIL | SLAY_DEMON | SLAY_UNDEAD |
-F:FREE_ACT | SEE_INVIS |
+F:FREE_ACT | SEE_INVIS | XTRA_H_RES
 
 #J0#
 #J0# ´ß¤µ¤ó¤ÎÌõ¤Ç¤¹
@@ -814,7 +815,7 @@ E:of Extra Might
 X:26:20
 W:0:18:0:10000
 C:2:4:0:0
-F:XTRA_MIGHT
+F:XTRA_MIGHT | XTRA_RES
 
 N:109:¶¯Â®¼Í¤Î
 E:of Extra Shots
index be51a8e..b5be887 100644 (file)
@@ -60,7 +60,7 @@ F:!:1:3:0:42
 F:b:129:3:0:0:0:0:0:14
 F:!:1:3:0:543
 
-?:[AND [EQU $QUEST1 3] [EQU $CLASS Monk] [EQU $CLASS ForceTrainer] ]
+?:[AND [EQU $QUEST1 3] [IOR [EQU $CLASS Monk] [EQU $CLASS ForceTrainer] ] ]
 F:b:129:3:0:0:0:0:0:14
 F:!:1:3:0:126
 
index 0db141a..6e3389e 100644 (file)
@@ -74,7 +74,7 @@ F:!:1:3:0:42
 F:b:129:3:0:0:0:0:0:2
 F:!:1:3:0:543
 
-?:[AND [EQU $QUEST1 3] [EQU $CLASS Monk] [EQU $CLASS ForceTrainer] ]
+?:[AND [EQU $QUEST1 3] [IOR [EQU $CLASS Monk] [EQU $CLASS ForceTrainer] ] ]
 F:b:129:3:0:0:0:0:0:2
 F:!:1:3:0:126
 
index e7c8b33..23cc909 100644 (file)
@@ -74,7 +74,7 @@ void one_high_resistance(object_type *o_ptr)
 /*
  * Choose one random high resistance ( except poison and disenchantment )
  */
-void one_loadly_high_resistance(object_type *o_ptr)
+void one_lordly_high_resistance(object_type *o_ptr)
 {
        switch (randint0(10))
        {
@@ -2898,7 +2898,7 @@ bool activate_random_artifact(object_type * o_ptr)
 }
 
 
-void random_artifact_resistance(object_type * o_ptr)
+void random_artifact_resistance(object_type * o_ptr, artifact_type *a_ptr)
 {
        bool give_resistance = FALSE, give_power = FALSE;
 
@@ -2921,7 +2921,7 @@ void random_artifact_resistance(object_type * o_ptr)
        {
                if (p_ptr->pclass != CLASS_SAMURAI)
                {
-                       o_ptr->art_flags3 |= (TR3_NO_TELE | TR3_NO_MAGIC | TR3_HEAVY_CURSE);
+                       o_ptr->art_flags3 |= (TR3_NO_MAGIC | TR3_HEAVY_CURSE);
                        o_ptr->ident |= IDENT_CURSED;
                }
        }
@@ -2950,6 +2950,15 @@ void random_artifact_resistance(object_type * o_ptr)
                }
        }
 
+       if (a_ptr->gen_flags & (TRG_XTRA_POWER)) give_power = TRUE;
+       if (a_ptr->gen_flags & (TRG_XTRA_H_RES)) give_resistance = TRUE;
+       if (a_ptr->gen_flags & (TRG_XTRA_RES_OR_POWER))
+       {
+               /* Give a resistance OR a power */
+               if (one_in_(2)) give_resistance = TRUE;
+               else give_power = TRUE;
+       }
+#if 0
        switch (o_ptr->name1)
        {
                case ART_JULIAN:
@@ -3014,6 +3023,7 @@ void random_artifact_resistance(object_type * o_ptr)
                        }
                        break;
        }
+#endif
 
        if (give_power)
        {
@@ -3069,7 +3079,7 @@ void create_named_art(int a_idx, int y, int x)
        /* Hack -- acquire "cursed" flag */
        if (a_ptr->flags3 & TR3_CURSED) q_ptr->ident |= (IDENT_CURSED);
 
-       random_artifact_resistance(q_ptr);
+       random_artifact_resistance(q_ptr, a_ptr);
 
        /* Drop the artifact from heaven */
        (void)drop_near(q_ptr, -1, y, x);
index 86b5048..d272c9b 100644 (file)
@@ -6581,7 +6581,7 @@ static void do_cmd_knowledge_objects(void)
                object_kind *k_ptr = &k_info[k];
 
                /* Hack -- skip artifacts */
-               if (k_ptr->flags3 & (TR3_INSTA_ART)) continue;
+               if (k_ptr->gen_flags & (TRG_INSTA_ART)) continue;
 
                /* List known flavored objects */
                if (k_ptr->flavor && k_ptr->aware)
index c7fae8d..b6fdec6 100644 (file)
 
 #define TR3_SH_FIRE             0x00000001L     /* Immolation (Fire) */
 #define TR3_SH_ELEC             0x00000002L     /* Electric Sheath */
-#define TR3_QUESTITEM           0x00000004L     /* quest level item -KMW- */
+#define TR3_XXX1                0x00000004L     /* quest level item -KMW- */
 #define TR3_SH_COLD             0x00000008L     /* cold aura */
 #define TR3_NO_TELE             0x00000010L     /* Anti-teleportation */
 #define TR3_NO_MAGIC            0x00000020L     /* Anti-magic */
 #define TR3_WARNING             0x00000100L     /* Warning */
 #define TR3_HIDE_TYPE           0x00000200L     /* Hide "pval" description */
 #define TR3_SHOW_MODS           0x00000400L     /* Always show Tohit/Todam */
-#define TR3_INSTA_ART           0x00000800L     /* Item must be an artifact */
+#define TR3_XXX2                0x00000800L     /* XXX1 */
 #define TR3_FEATHER             0x00001000L     /* Feather Falling */
 #define TR3_LITE                0x00002000L     /* Permanent Light */
 #define TR3_SEE_INVIS           0x00004000L     /* See Invisible */
 #define TR3_PERMA_CURSE         0x80000000L     /* Item is Perma Cursed */
 
 
+#define TRG_INSTA_ART           0x00000001L     /* Item must be an artifact */
+#define TRG_QUESTITEM           0x00000002L     /* quest level item -KMW- */
+#define TRG_XTRA_POWER          0x00000004L     /* Extra power */
+#define TRG_ONE_SUSTAIN         0x00000008L     /* One sustain */
+#define TRG_XTRA_RES_OR_POWER   0x00000010L     /* Extra resistance or power */
+#define TRG_XTRA_H_RES          0x00000020L     /* Extra high resistance */
+#define TRG_XTRA_E_RES          0x00000040L     /* Extra element resistance */
+#define TRG_XTRA_L_RES          0x00000080L     /* Extra lordly resistance */
+#define TRG_XTRA_D_RES          0x00000100L     /* Extra dragon resistance */
+#define TRG_XTRA_RES            0x00000200L     /* Extra resistance */
+
+
 /*
  * Hack -- flag set 1 -- mask for "pval-dependant" flags.
  * Note that all "pval" dependant flags must be in "flags1".
index cb09dec..5d6ff13 100644 (file)
@@ -5241,7 +5241,7 @@ void calc_android_exp(void)
                if (o_ptr->name1)
                {
                        level = (level + MAX(a_info[o_ptr->name1].level - 8, 5)) / 2;
-                       level += MIN(20, a_info[o_ptr->name1].rarity/(a_info[o_ptr->name1].flags3 & TR3_INSTA_ART ? 10 : 3));
+                       level += MIN(20, a_info[o_ptr->name1].rarity/(a_info[o_ptr->name1].gen_flags & TRG_INSTA_ART ? 10 : 3));
                }
                else if (o_ptr->name2) level += MAX(3, (e_info[o_ptr->name2].rating - 5)/2);
                value = object_value_real(q_ptr);
index d99043f..1f5738d 100644 (file)
@@ -1288,14 +1288,14 @@ extern bool monst_spell_monst(int m_idx);
 /* artifact.c */
 extern void one_sustain(object_type *o_ptr);
 extern void one_high_resistance(object_type *o_ptr);
-extern void one_loadly_high_resistance(object_type *o_ptr);
+extern void one_lordly_high_resistance(object_type *o_ptr);
 extern void one_ele_resistance(object_type *o_ptr);
 extern void one_dragon_ele_resistance(object_type *o_ptr);
 extern void one_resistance(object_type *o_ptr);
 extern void one_ability(object_type *o_ptr);
 extern bool create_artifact(object_type *o_ptr, bool a_scroll);
 extern bool activate_random_artifact(object_type * o_ptr);
-extern void random_artifact_resistance(object_type * o_ptr);
+extern void random_artifact_resistance(object_type * o_ptr, artifact_type *a_ptr);
 extern void create_named_art(int a_idx, int y, int x);
 
 /* scores.c */
index bf66e99..234ec2f 100644 (file)
@@ -1256,7 +1256,7 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode)
                        /* Known artifacts */
                        if (artifact_p(o_ptr) && aware) break;
 
-                       if ((k_ptr->flags3 & TR3_INSTA_ART) && aware) break;
+                       if ((k_ptr->gen_flags & TRG_INSTA_ART) && aware) break;
 
                        /* Color the object */
                        modstr = amulet_adj[indexx];
@@ -1283,7 +1283,7 @@ void object_desc(char *buf, object_type *o_ptr, int pref, int mode)
                        /* Known artifacts */
                        if (artifact_p(o_ptr) && aware) break;
 
-                       if ((k_ptr->flags3 & TR3_INSTA_ART) && aware) break;
+                       if ((k_ptr->gen_flags & TRG_INSTA_ART) && aware) break;
 
                        /* Color the object */
                        modstr = ring_adj[indexx];
index d9b3273..dfe27e3 100644 (file)
@@ -573,7 +573,7 @@ static cptr k_info_flags3[] =
 {
        "SH_FIRE",
        "SH_ELEC",
-       "QUESTITEM",
+       "XXX1",
        "SH_COLD",
        "NO_TELE",
        "NO_MAGIC",
@@ -582,7 +582,7 @@ static cptr k_info_flags3[] =
        "WARNING",
        "HIDE_TYPE",
        "SHOW_MODS",
-       "INSTA_ART",
+       "XXX2",
        "FEATHER",
        "LITE",
        "SEE_INVIS",
@@ -606,6 +606,43 @@ static cptr k_info_flags3[] =
 };
 
 
+static cptr k_info_gen_flags[] =
+{
+       "INSTA_ART",
+       "QUESTITEM",
+       "XTRA_POWER",
+       "ONE_SUSTAIN",
+       "XTRA_RES_OR_POWER",
+       "XTRA_H_RES",
+       "XTRA_E_RES",
+       "XTRA_L_RES",
+       "XTRA_D_RES",
+       "XTRA_RES",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+       "XXX",
+};
+
+
 /*
  * Dungeon flags
  */
@@ -1252,6 +1289,16 @@ static errr grab_one_kind_flag(object_kind *k_ptr, cptr what)
                }
        }
 
+       /* Check gen_flags */
+       for (i = 0; i < 32; i++)
+       {
+               if (streq(what, k_info_gen_flags[i]))
+               {
+                       k_ptr->gen_flags |= (1L << i);
+                       return (0);
+               }
+       }
+
        /* Oops */
 #ifdef JP
        msg_format("̤ÃΤΥ¢¥¤¥Æ¥à¡¦¥Õ¥é¥° '%s'¡£", what);
@@ -1525,6 +1572,16 @@ static errr grab_one_artifact_flag(artifact_type *a_ptr, cptr what)
                }
        }
 
+       /* Check gen_flags */
+       for (i = 0; i < 32; i++)
+       {
+               if (streq(what, k_info_gen_flags[i]))
+               {
+                       a_ptr->gen_flags |= (1L << i);
+                       return (0);
+               }
+       }
+
        /* Oops */
 #ifdef JP
        msg_format("̤ÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à¡¦¥Õ¥é¥° '%s'¡£", what);
@@ -1755,8 +1812,18 @@ static bool grab_one_ego_item_flag(ego_item_type *e_ptr, cptr what)
                        return (0);
                }
        }
+       
+       /* Check gen_flags */
+       for (i = 0; i < 32; i++)
+       {
+               if (streq(what, k_info_gen_flags[i]))
+               {
+                       e_ptr->gen_flags |= (1L << i);
+                       return (0);
+               }
+       }
 
-       /* Oops */
+/* Oops */
 #ifdef JP
        msg_format("̤ÃΤÎ̾¤Î¤¢¤ë¥¢¥¤¥Æ¥à¡¦¥Õ¥é¥° '%s'¡£", what);
 #else
@@ -3437,7 +3504,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in
                                        r_ptr->flags1 |= RF1_QUESTOR;
 
                                a_ptr = &a_info[q_ptr->k_idx];
-                               a_ptr->flags3 |= TR3_QUESTITEM;
+                               a_ptr->gen_flags |= TRG_QUESTITEM;
                        }
                        return (0);
                }
index e87a0c1..66bff10 100644 (file)
@@ -2538,7 +2538,7 @@ note(format("
                                        rd_s16b(&quest[i].k_idx);
 
                                        if (quest[i].k_idx)
-                                               a_info[quest[i].k_idx].flags3 |= TR3_QUESTITEM;
+                                               a_info[quest[i].k_idx].gen_flags |= TRG_QUESTITEM;
 
                                        rd_byte(&quest[i].flags);
 
index 7b713ea..3e72948 100644 (file)
@@ -774,7 +774,7 @@ void object_aware(object_type *o_ptr)
        o_ptr->aware = TRUE;
 #endif /* SCRIPT_OBJ_KIND */
 
-       if(mihanmei && !(k_info[o_ptr->k_idx].flags3 & TR3_INSTA_ART) && record_ident &&
+       if(mihanmei && !(k_info[o_ptr->k_idx].gen_flags & TRG_INSTA_ART) && record_ident &&
           !death && ((o_ptr->tval >= TV_AMULET && o_ptr->tval <= TV_POTION) || (o_ptr->tval == TV_FOOD)))
        {
                object_type forge;
@@ -988,13 +988,11 @@ s32b flag_cost(object_type * o_ptr, int plusses)
        if (f3 & TR3_SH_FIRE) total += 5000;
        if (f3 & TR3_SH_ELEC) total += 5000;
        if (f3 & TR3_SH_COLD) total += 5000;
-       if (f3 & TR3_QUESTITEM) total += 0;
        if (f3 & TR3_NO_TELE) total -= 10000;
        if (f3 & TR3_NO_MAGIC) total += 2500;
        if (f3 & TR3_TY_CURSE) total -= 15000;
        if (f3 & TR3_HIDE_TYPE) total += 0;
        if (f3 & TR3_SHOW_MODS) total += 0;
-       if (f3 & TR3_INSTA_ART) total += 0;
        if (f3 & TR3_FEATHER) total += 1250;
        if (f3 & TR3_LITE) total += 1250;
        if (f3 & TR3_SEE_INVIS) total += 2000;
@@ -2057,8 +2055,8 @@ static bool make_artifact_special(object_type *o_ptr)
                /* Cannot make an artifact twice */
                if (a_ptr->cur_num) continue;
 
-               if (a_ptr->flags3 & TR3_QUESTITEM) continue;
-               if (!(a_ptr->flags3 & TR3_INSTA_ART)) continue;
+               if (a_ptr->gen_flags & TRG_QUESTITEM) continue;
+               if (!(a_ptr->gen_flags & TRG_INSTA_ART)) continue;
 
                /* XXX XXX Enforce minimum "depth" (loosely) */
                if (a_ptr->level > dun_level)
@@ -2093,7 +2091,7 @@ static bool make_artifact_special(object_type *o_ptr)
                o_ptr->name1 = i;
 
                /* Hack: Some artifacts get random extra powers */
-               random_artifact_resistance(o_ptr);
+               random_artifact_resistance(o_ptr, a_ptr);
 
                /* Success */
                return (TRUE);
@@ -2133,9 +2131,9 @@ static bool make_artifact(object_type *o_ptr)
                /* Cannot make an artifact twice */
                if (a_ptr->cur_num) continue;
 
-               if (a_ptr->flags3 & TR3_QUESTITEM) continue;
+               if (a_ptr->gen_flags & TRG_QUESTITEM) continue;
 
-               if (a_ptr->flags3 & TR3_INSTA_ART) continue;
+               if (a_ptr->gen_flags & TRG_INSTA_ART) continue;
 
                /* Must have the correct fields */
                if (a_ptr->tval != o_ptr->tval) continue;
@@ -2158,7 +2156,7 @@ static bool make_artifact(object_type *o_ptr)
                o_ptr->name1 = i;
 
                /* Hack: Some artifacts get random extra powers */
-               random_artifact_resistance(o_ptr);
+               random_artifact_resistance(o_ptr, a_ptr);
 
                /* Success */
                return (TRUE);
@@ -2330,28 +2328,22 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
                                case EGO_HA:
                                        if (one_in_(4) && (level > 40))
                                                o_ptr->art_flags1 |= TR1_BLOWS;
-                                       one_sustain(o_ptr);
                                        break;
                                case EGO_DF:
                                        if (one_in_(3))
                                                o_ptr->art_flags2 |= TR2_RES_POIS;
-                                       one_high_resistance(o_ptr);
-                                       one_sustain(o_ptr);
                                        break;
                                case EGO_SLAY_DRAGON:
-                                       one_ele_resistance(o_ptr);
                                        break;
                                case EGO_KILL_DRAGON:
-                                       one_ele_resistance(o_ptr);
                                        if (one_in_(3))
                                                o_ptr->art_flags2 |= TR2_RES_POIS;
-                                       one_dragon_ele_resistance(o_ptr);
+                                       break;
                                case EGO_WEST:
                                        if (one_in_(3))
                                                o_ptr->art_flags2 |= TR2_RES_FEAR;
                                        break;
                                case EGO_CHAOTIC:
-                                       one_resistance(o_ptr);
                                        break;
                                case EGO_SLAYING_WEAPON:
                                        if (one_in_(3)) /* double damage */
@@ -2381,7 +2373,6 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
                                        }
                                        break;
                                case EGO_TRUMP:
-                                       one_high_resistance(o_ptr);
                                        if (one_in_(5))
                                                o_ptr->art_flags1 |= TR1_SLAY_DEMON;
                                        if (one_in_(7))
@@ -2394,7 +2385,6 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
                                                o_ptr->art_flags1 |= TR1_DEX;
                                        if (one_in_(5))
                                                o_ptr->art_flags2 |= TR2_RES_FEAR;
-                                       one_high_resistance(o_ptr);
                                        break;
                                case EGO_SHARPNESS:
                                        o_ptr->pval = m_bonus(5, level) + 1;
@@ -2450,13 +2440,6 @@ static void a_m_aux_1(object_type *o_ptr, int level, int power)
                                        break;
                                }
                                o_ptr->name2 = get_random_ego(INVEN_BOW, TRUE, level);
-
-                               switch (o_ptr->name2)
-                               {
-                               case EGO_EXTRA_MIGHT:
-                                       one_resistance(o_ptr);
-                                       break;
-                               }
                        }
 
                        break;
@@ -2597,7 +2580,6 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        else
                                        {
                                                o_ptr->name2 = EGO_PERMANENCE;
-                                               one_high_resistance(o_ptr);
                                        }
                                        break;
                                }
@@ -2619,10 +2601,8 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        case EGO_RESISTANCE:
                                                if (one_in_(4))
                                                        o_ptr->art_flags2 |= TR2_RES_POIS;
-                                               one_high_resistance(o_ptr);
                                                break;
                                        case EGO_ELVENKIND:
-                                               one_high_resistance(o_ptr);
                                                break;
                                        case EGO_DWARVEN:
                                                if (o_ptr->tval != TV_HARD_ARMOR)
@@ -2707,13 +2687,6 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        break;
                                }
                                o_ptr->name2 = get_random_ego(INVEN_HANDS, TRUE, level);
-
-                               switch (o_ptr->name2)
-                               {
-                               case EGO_POWER:
-                                       one_high_resistance(o_ptr);
-                                       break;
-                               }
                        }
                        
                        /* Very cursed */
@@ -2784,17 +2757,10 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
                                        switch (o_ptr->name2)
                                        {
                                        case EGO_MAGI:
-                                               one_high_resistance(o_ptr);
-                                               one_ability(o_ptr);
-                                               break;
                                        case EGO_MIGHT:
-                                               one_high_resistance(o_ptr);
-                                               break;
                                        case EGO_TELEPATHY:
                                        case EGO_REGENERATION:
-                                               break;
                                        case EGO_LORDLINESS:
-                                               one_high_resistance(o_ptr);
                                                break;
                                        case EGO_SEEING:
                                                if (one_in_(3)) o_ptr->art_flags3 |= TR3_TELEPATHY;
@@ -2884,9 +2850,6 @@ static void a_m_aux_2(object_type *o_ptr, int level, int power)
 
                                switch (o_ptr->name2)
                                {
-                               case EGO_AMAN:
-                                       one_high_resistance(o_ptr);
-                                       break;
                                case EGO_BAT:
                                        o_ptr->to_d -= 6;
                                        o_ptr->to_h -= 6;
@@ -3014,7 +2977,7 @@ static void a_m_aux_3(object_type *o_ptr, int level, int power)
                                {
                                        do
                                        {
-                                               one_loadly_high_resistance(o_ptr);
+                                               one_lordly_high_resistance(o_ptr);
                                        }
                                        while (one_in_(4));
 
@@ -3337,8 +3300,8 @@ static void a_m_aux_3(object_type *o_ptr, int level, int power)
                                                        break;
                                                case SV_RING_LORDLY:
                                                        if (!one_in_(20)) break;
-                                                       one_loadly_high_resistance(o_ptr);
-                                                       one_loadly_high_resistance(o_ptr);
+                                                       one_lordly_high_resistance(o_ptr);
+                                                       one_lordly_high_resistance(o_ptr);
                                                        o_ptr->name2 = EGO_RING_TRUE;
                                                        break;
                                                case SV_RING_SUSTAIN:
@@ -4265,6 +4228,14 @@ void apply_magic(object_type *o_ptr, int lev, bool okay, bool good, bool great,
                /* Hack -- acquire "cursed" flag */
                if (e_ptr->flags3 & (TR3_CURSED)) o_ptr->ident |= (IDENT_CURSED);
 
+               if (e_ptr->gen_flags & (TRG_ONE_SUSTAIN)) one_sustain(o_ptr);
+               if (e_ptr->gen_flags & (TRG_XTRA_POWER)) one_sustain(o_ptr);
+               if (e_ptr->gen_flags & (TRG_XTRA_H_RES)) one_high_resistance(o_ptr);
+               if (e_ptr->gen_flags & (TRG_XTRA_E_RES)) one_ele_resistance(o_ptr);
+               if (e_ptr->gen_flags & (TRG_XTRA_D_RES)) one_dragon_ele_resistance(o_ptr);
+               if (e_ptr->gen_flags & (TRG_XTRA_L_RES)) one_lordly_high_resistance(o_ptr);
+               if (e_ptr->gen_flags & (TRG_XTRA_RES)) one_resistance(o_ptr);
+
                /* Hack -- apply extra penalties if needed */
                if (cursed_p(o_ptr) || broken_p(o_ptr))
                {
index 6d08df2..7a8595f 100644 (file)
@@ -108,6 +108,8 @@ struct object_kind
        u32b flags2;            /* Flags, set 2 */
        u32b flags3;            /* Flags, set 3 */
 
+       u32b gen_flags;         /* flags for generate */
+
        byte locale[4];         /* Allocation level(s) */
        byte chance[4];         /* Allocation chance(s) */
 
@@ -171,6 +173,8 @@ struct artifact_type
        u32b flags2;            /* Artifact Flags, set 2 */
        u32b flags3;            /* Artifact Flags, set 3 */
 
+       u32b gen_flags;         /* flags for generate */
+
        byte level;                     /* Artifact level */
        byte rarity;            /* Artifact rarity */
 
@@ -207,6 +211,8 @@ struct ego_item_type
        u32b flags1;            /* Ego-Item Flags, set 1 */
        u32b flags2;            /* Ego-Item Flags, set 2 */
        u32b flags3;            /* Ego-Item Flags, set 3 */
+
+       u32b gen_flags;         /* flags for generate */
 };
 
 
index 196d106..678751c 100644 (file)
@@ -447,7 +447,7 @@ static void spoil_obj_desc(cptr fname)
                        if (k_ptr->tval != group_item[i].tval) continue;
 
                        /* Hack -- Skip instant-artifacts */
-                       if (k_ptr->flags3 & (TR3_INSTA_ART)) continue;
+                       if (k_ptr->gen_flags & (TRG_INSTA_ART)) continue;
 
                        /* Save the index */
                        who[n++] = k;
index c943caf..2d3295d 100644 (file)
@@ -586,11 +586,11 @@ static void wiz_display_item(object_type *o_ptr)
        prt_binary(f2, 23, j);
 
        prt("+------------FLAGS3------------+", 10, j+32);
-       prt("fe cnn t   i  stdrmsiiii d abchp", 11, j+32);
-       prt("aa aoomyehsnlleeieihgggg rtgluvr", 12, j+32);
-       prt("uu utmacaihseielgggonnnnaaerercc", 13, j+32);
-       prt("rr reanusdotvtieeehtrrrrcilassuu", 14, j+32);
-       prt("aa algaryewaienpsntsaefctnevserr", 15, j+32);
+       prt("fe cnn t      stdrmsiiii d abchp", 11, j+32);
+       prt("aa aoomywhs lleeieihgggg rtgluvr", 12, j+32);
+       prt("uu utmacaih eielgggonnnnaaerercc", 13, j+32);
+       prt("rr reanurdo vtieeehtrrrrcilassuu", 14, j+32);
+       prt("aa algarnew ienpsntsaefctnevserr", 15, j+32);
        prt_binary(f3, 16, j+32);
 }
 
@@ -1341,7 +1341,7 @@ static void wiz_create_item(void)
        /* Create the item */
        object_prep(q_ptr, k_idx);
 
-       if (k_info[k_idx].flags3 & TR3_INSTA_ART)
+       if (k_info[k_idx].gen_flags & TRG_INSTA_ART)
        {
                int i;