I:39:4:1
W:30:1:10:10000
P:0:1d1:0:0:0
-F:ACTIVATE | SEARCH | INSTA_ART
+F:ACTIVATE | SEARCH | INSTA_ART | LITE_3 |
U:LIGHT
D:$A small crystal phial, with the light of Earendil's Star contained inside.
D:$Its light is imperishable, and near it darkness cannot endure.
I:39:5:1
W:50:25:5:32500
P:0:1d1:0:0:0
-F:ACTIVATE | SEE_INVIS | HOLD_LIFE | INSTA_ART | SPEED
+F:ACTIVATE | SEE_INVIS | HOLD_LIFE | INSTA_ART | SPEED | LITE_3 |
U:MAP_LIGHT
D:$The shining Star of the West, a famed heirloom of Elendil's house.
D:µ±¤¯¡ØÀ¾Êý¹ñ¤ÎÀ±¡Ù¤Ç¡¢¥¨¥ì¥ó¥Ç¥£¥ë¤Î²È·Ï¤ËÅÁ¤ï¤ë²ÈÊõ¤À¡£
I:39:6:3
W:70:90:5:150000
P:0:1d1:0:0:0
-F:ACTIVATE | SEE_INVIS | HOLD_LIFE | RES_CONF | RES_CHAOS |
+F:ACTIVATE | SEE_INVIS | HOLD_LIFE | RES_CONF | RES_CHAOS | LITE_3 |
F:INSTA_ART | SPEED | WIS | INT
U:JUDGE
D:$This crimson jewelry which is chained with a gold chain is
I:39:3:3
W:40:20:5:20000
P:0:1d1:0:0:0
-F:INSTA_ART | INFRA | SH_FIRE | SH_ELEC
+F:INSTA_ART | INFRA | SH_FIRE | SH_ELEC | LITE_3 |
D:$The Incandescent Light of Yeduson
D:$Thomas Alva Yeduson the "Wizard of Menlo Park"
D:$patented 1,093 inventions.
I:39:8:3
W:60:50:10:60000
P:0:1d1:0:0:0
-F:WIS | CHR | ACTIVATE | TELEPATHY | INSTA_ART | FULL_NAME
+F:WIS | CHR | ACTIVATE | TELEPATHY | INSTA_ART | FULL_NAME | LITE_3 |
U:DETECT_UNIQUE
D:$A shining white ball of unbreakable crystal, the ancient palantiri,
D:$or 'far-watchers', were used by kings of Numenor and later by the Exiles
I:39:7:0
W:15:12:15:20000
P:0:1d1:0:0:0
-F:ACTIVATE | INSTA_ART
+F:ACTIVATE | INSTA_ART | LITE_3 |
U:LORE
D:$A great emerald that fills your mind with images of knowledge and dreadful
D:$understanding as you stare into its depths.
I:39:9:2
W:60:60:10:60000
P:0:1d1:0:0:0
-F:INT | CHR | SPEED | ACTIVATE | LEVITATION | HOLD_LIFE | INSTA_ART
+F:INT | CHR | SPEED | ACTIVATE | LEVITATION | HOLD_LIFE | INSTA_ART | LITE_3 |
U:BA_MANA
D:ÉâÍ·¤ÎÎϤòÍ¿¤¨¤Æ¤¯¤ì¤ëÀĤ¯Ð¼¸÷¤ëÊõÀФÀ¡£
W:50:150:2:50000
P:0:0d0:0:0:5
F:STEALTH | SEARCH | HIDE_TYPE | SEE_INVIS |
-F:RES_DARK | ACTIVATE | LITE |
+F:RES_DARK | ACTIVATE | LITE_M1 |
F:INSTA_ART
U:BA_DARK
D:¼¿¹õ¤ÎÊõ¶Ì¤¬¤Ä¤±¤é¤ì¤¿ðô¾þ¤ê¤À¡£
I:39:10:3
W:70:70:15:45000
P:0:1d1:0:0:20
-F:WIS | CON | WARNING | ACTIVATE | FULL_NAME
+F:WIS | CON | WARNING | ACTIVATE | FULL_NAME | LITE_3 |
U:TELEPORT_LEVEL
D:¡Ö±¿Ì¿¤Î¥ª¡¼¥Ö¤ò»ý¤Ã¤Æ¤¤¤¤Ê¤µ¤¤¡£¤ï¤¿¤·¤Ï±¿Ì¿¤Î¥ª¡¼¥Ö¤«¤é
D:¿Í´Ö¤Î¼ê¤Ë¿¨¤ì¤Æ¤Ï¤Ê¤é¤Ì̤Íè¤ò¹ð¤²¤ëÎϤò¼è¤ê½ü¤¤Þ¤·¤¿¡£
E:of Darkness
X:33:6
W:0:18:0:800
-F:LITE | RES_DARK
+F:LITE_M1 | RES_DARK
# intelligence, wisdom, beauty -> combined to brilliance
W:0:36:0:0
F:STR | INT | WIS | DEX | CON | CHR | HEAVY_CURSE | CURSED | RANDOM_CURSE2 |
F:RES_COLD | RES_POIS | RES_NEXUS | RES_NETHER |
-F:SH_COLD | SEE_INVIS | LITE | XTRA_H_RES | XTRA_POWER | ADD_H_CURSE |
+F:SH_COLD | SEE_INVIS | LITE_M1 | XTRA_H_RES | XTRA_POWER | ADD_H_CURSE |
F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
N:39:¼ÀɤÎ
I:39:0:4000
W:1:0:30:2
A:1/1
+F:LITE | LITE_FUEL
P:0:1d1:0:0:0
N:347:¿¿ï«¤Î¥é¥ó¥¿¥ó
W:3:0:50:35
A:3/1
P:0:1d1:0:0:0
-F:IGNORE_FIRE
+F:IGNORE_FIRE | LITE_2 | LITE_FUEL
N:348:Ìý¤Ä¤Ü
E:& Flask~ of oil
W:15:40:60:450
A:15/1
P:0:1d1:0:0:0
-F:IGNORE_FIRE
+F:IGNORE_FIRE | LITE_2
N:583:´äÀÐÍϲò:¥¢¥À¥Þ¥ó¥¿¥¤¥È¤Î
E:Stone to Mud:Adamantite
switch (randint0(10))
{
case 0: add_flag(o_ptr->art_flags, TR_LEVITATION); break;
- case 1: add_flag(o_ptr->art_flags, TR_LITE); break;
+ case 1: add_flag(o_ptr->art_flags, TR_LITE_1); break;
case 2: add_flag(o_ptr->art_flags, TR_SEE_INVIS); break;
case 3: add_flag(o_ptr->art_flags, TR_WARNING); break;
case 4: add_flag(o_ptr->art_flags, TR_SLOW_DIGEST); break;
break;
case BIAS_FIRE:
- if (!(have_flag(o_ptr->art_flags, TR_LITE)))
+ if (!(have_flag(o_ptr->art_flags, TR_LITE_1)))
{
- add_flag(o_ptr->art_flags, TR_LITE); /* Freebie */
+ add_flag(o_ptr->art_flags, TR_LITE_1); /* Freebie */
}
break;
}
break;
case 10:
case 11:
- add_flag(o_ptr->art_flags, TR_LITE);
+ add_flag(o_ptr->art_flags, TR_LITE_1);
break;
case 12:
case 13:
#define TR_HIDE_TYPE 73 /* Hide "pval" description */
#define TR_SHOW_MODS 74 /* Always show Tohit/Todam */
#define TR_SLAY_GOOD 75
-#define TR_LEVITATION 76 /* Feather Falling */
-#define TR_LITE 77 /* Permanent Light */
+#define TR_LEVITATION 76 /* Feather Falling */
#define TR_SEE_INVIS 78 /* See Invisible */
#define TR_TELEPATHY 79 /* Telepathy */
#define TR_SLOW_DIGEST 80 /* Item slows down digestion */
#define TR_DRAIN_HP 120
#define TR_DRAIN_MANA 121
-#define TR_FLAG_MAX 122
+#define TR_LITE_1 77 /* Light Radius 1*/
+#define TR_LITE_2 122
+#define TR_LITE_3 123
+#define TR_LITE_M1 124 /* Permanent decrease Light Area (-1) */
+#define TR_LITE_M2 125 /* Permanent decrease Light Area (-1) */
+#define TR_LITE_M3 126 /* Permanent decrease Light Area (-1) */
+#define TR_LITE_FUEL 127 /* Lights need Fuels */
+
+#define TR_FLAG_MAX 128
#define TR_FLAG_SIZE 4
add_flag(flgs, TR_HOLD_LIFE);
add_flag(flgs, TR_RES_DARK);
add_flag(flgs, TR_RES_NETHER);
- if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE);
+ if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_RES_COLD);
add_flag(flgs, TR_SEE_INVIS);
add_flag(flgs, TR_HOLD_LIFE);
add_flag(flgs, TR_RES_DARK);
add_flag(flgs, TR_RES_NETHER);
- if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE);
+ if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
add_flag(flgs, TR_RES_POIS);
add_flag(flgs, TR_RES_COLD);
break;
if (p_ptr->muta3 & MUT3_FIRE_BODY)
{
add_flag(flgs, TR_SH_FIRE);
- add_flag(flgs, TR_LITE);
+ add_flag(flgs, TR_LITE_1);
}
if (p_ptr->muta3 & MUT3_WINGS)
add_flag(flgs, TR_RES_BLIND);
add_flag(flgs, TR_RES_CONF);
add_flag(flgs, TR_HOLD_LIFE);
- if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE);
+ if (p_ptr->pclass != CLASS_NINJA) add_flag(flgs, TR_LITE_1);
if (p_ptr->lev > 9)
add_flag(flgs, TR_SPEED);
}
add_flag(flgs, TR_SH_ELEC);
add_flag(flgs, TR_SH_COLD);
add_flag(flgs, TR_LEVITATION);
- add_flag(flgs, TR_LITE);
+ add_flag(flgs, TR_LITE_1);
add_flag(flgs, TR_SEE_INVIS);
add_flag(flgs, TR_TELEPATHY);
add_flag(flgs, TR_SLOW_DIGEST);
add_flag(flgs, TR_SH_ELEC);
add_flag(flgs, TR_SH_COLD);
add_flag(flgs, TR_LEVITATION);
- add_flag(flgs, TR_LITE);
+ add_flag(flgs, TR_LITE_1);
add_flag(flgs, TR_SEE_INVIS);
add_flag(flgs, TR_TELEPATHY);
add_flag(flgs, TR_SLOW_DIGEST);
display_flag_aux(row+5, col, "Ãپò½ :", TR_SLOW_DIGEST, &f, 0);
display_flag_aux(row+6, col, "µÞ²óÉü :", TR_REGEN, &f, 0);
display_flag_aux(row+7, col, "ÉâÍ· :", TR_LEVITATION, &f, 0);
-display_flag_aux(row+8, col, "±Ê±ó¸÷¸» :", TR_LITE, &f, 0);
+display_flag_aux(row+8, col, "±Ê±ó¸÷¸» :", TR_LITE_1, &f, 0);
display_flag_aux(row+9, col, "¼ö¤¤ :", 0, &f, DP_CURSE);
#else
display_flag_aux(row+0, col, "Speed :", TR_SPEED, &f, 0);
display_flag_aux(row+5, col, "SlowDigest:", TR_SLOW_DIGEST, &f, 0);
display_flag_aux(row+6, col, "Regene. :", TR_REGEN, &f, 0);
display_flag_aux(row+7, col, "Levitation:", TR_LEVITATION, &f, 0);
- display_flag_aux(row+8, col, "Perm Lite :", TR_LITE, &f, 0);
+ display_flag_aux(row+8, col, "Perm Lite :", TR_LITE_1, &f, 0);
display_flag_aux(row+9, col, "Cursed :", 0, &f, DP_CURSE);
#endif
{ "ÃÙ", "Sd", TR_SLOW_DIGEST, -1 },
{ "³è", "Rg", TR_REGEN, -1 },
{ "Éâ", "Lv", TR_LEVITATION, -1 },
- { "ÌÀ", "Lu", TR_LITE, -1 },
+ { "ÌÀ", "Lu", TR_LITE_1, -1 },
{ "·Ù", "Wr", TR_WARNING, -1 },
{ "ÇÜ", "Xm", TR_XTRA_MIGHT, -1 },
{ "¼Í", "Xs", TR_XTRA_SHOTS, -1 },
{ "Sd", TR_SLOW_DIGEST, -1 },
{ "Rg", TR_REGEN, -1 },
{ "Lv", TR_LEVITATION, -1 },
- { "Lu", TR_LITE, -1 },
+ { "Lu", TR_LITE_1, -1 },
{ "Wr", TR_WARNING, -1 },
{ "Xm", TR_XTRA_MIGHT, -1 },
{ "Xs", TR_XTRA_SHOTS, -1 },
"ADD_H_CURSE",
"DRAIN_HP",
"DRAIN_MANA",
+
+ "LITE_2",
+ "LITE_3",
+ "LITE_M1",
+ "LITE_M2",
+ "LITE_M3",
+ "LITE_FUEL",
};
switch (o_ptr->xtra2 % 8)
{
case 0: add_flag(o_ptr->art_flags, TR_LEVITATION); break;
- case 1: add_flag(o_ptr->art_flags, TR_LITE); break;
+ case 1: add_flag(o_ptr->art_flags, TR_LITE_1); break;
case 2: add_flag(o_ptr->art_flags, TR_SEE_INVIS); break;
case 3: add_flag(o_ptr->art_flags, TR_WARNING); break;
case 4: add_flag(o_ptr->art_flags, TR_SLOW_DIGEST); break;
o_ptr->art_name = quark_add(buf);
}
else o_ptr->art_name = 0;
+
+ if(h_older_than(2,1,2,3))
+ {
+ u32b flgs[TR_FLAG_SIZE];
+ object_flags(o_ptr, flgs);
+
+ if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT))
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_M1);
+ remove_flag(o_ptr->art_flags, TR_LITE_1);
+ remove_flag(o_ptr->art_flags, TR_LITE_2);
+ remove_flag(o_ptr->art_flags, TR_LITE_3);
+ }
+
+ if (o_ptr->name2 == EGO_LITE_DARKNESS)
+ {
+ if (o_ptr->sval == SV_LITE_TORCH)
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_M1);
+ }
+ else if (o_ptr->sval == SV_LITE_LANTERN)
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_M2);
+ }
+ else if (o_ptr->sval == SV_LITE_FEANOR)
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_M3);
+ }
+ }
+ else if (o_ptr->sval == SV_LITE_TORCH)
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_1);
+ add_flag(o_ptr->art_flags, TR_LITE_FUEL);
+ }
+ else if (o_ptr->sval == SV_LITE_LANTERN)
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_2);
+ add_flag(o_ptr->art_flags, TR_LITE_FUEL);
+ }
+ else if (o_ptr->sval == SV_LITE_FEANOR)
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_2);
+ }
+ else if ((o_ptr->tval == TV_LITE) && object_is_fixed_artifact(o_ptr))
+ {
+ add_flag(o_ptr->art_flags, TR_LITE_3);
+ }
+ }
}
cptr info[128];
char o_name[MAX_NLEN];
int wid, hgt;
+ int rad;
+ char desc[256];
int trivial_info = 0;
}
/* Hack -- describe lite's */
- if (o_ptr->tval == TV_LITE)
+
+ if (o_ptr->name2 == EGO_LITE_DARKNESS) info[i++] = _("¤½¤ì¤ÏÁ´¤¯¸÷¤é¤Ê¤¤¡£", "It provides no light.");
+
+ rad = 0;
+ if (have_flag(flgs, TR_LITE_1)) rad += 1;
+ if (have_flag(flgs, TR_LITE_2)) rad += 2;
+ if (have_flag(flgs, TR_LITE_3)) rad += 3;
+ if (have_flag(flgs, TR_LITE_M1)) rad -= 1;
+ if (have_flag(flgs, TR_LITE_M2)) rad -= 2;
+ if (have_flag(flgs, TR_LITE_M3)) rad -= 3;
+
+ if(o_ptr->name2 == EGO_LITE_SHINE) rad++;
+
+ if (have_flag(flgs, TR_LITE_FUEL))
{
- if (o_ptr->name2 == EGO_LITE_DARKNESS)
- {
-#ifdef JP
- info[i++] = "¤½¤ì¤ÏÁ´¤¯¸÷¤é¤Ê¤¤¡£";
-#else
- info[i++] = "It provides no light.";
-#endif
-
- if (o_ptr->sval == SV_LITE_FEANOR)
- {
-#ifdef JP
- info[i++] = "¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-3)¡£";
-#else
- info[i++] = "It decreases radius of light source by 3.";
-#endif
- }
- else if (o_ptr->sval == SV_LITE_LANTERN)
- {
-#ifdef JP
- info[i++] = "¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-2)¡£";
-#else
- info[i++] = "It decreases radius of light source by 2.";
-#endif
- }
- else
- {
-#ifdef JP
- info[i++] = "¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-1)¡£";
-#else
- info[i++] = "It decreases radius of light source by 1.";
-#endif
- }
- }
- else if (object_is_fixed_artifact(o_ptr))
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤Ï±Ê±ó¤Ê¤ëÌÀ¤«¤ê(Ⱦ·Â 3)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 3) forever.";
-#endif
-
- }
- else if (o_ptr->name2 == EGO_LITE_SHINE)
- {
- if (o_ptr->sval == SV_LITE_FEANOR)
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤Ï±Ê±ó¤Ê¤ëÌÀ¤«¤ê(Ⱦ·Â 3)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 3) forever.";
-#endif
-
- }
- else if (o_ptr->sval == SV_LITE_LANTERN)
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏdzÎÁÊäµë¤Ë¤è¤Ã¤ÆÌÀ¤«¤ê(Ⱦ·Â 3)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 3) when fueled.";
-#endif
-
- }
- else
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏdzÎÁÊäµë¤Ë¤è¤Ã¤ÆÌÀ¤«¤ê(Ⱦ·Â 2)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 2) when fueled.";
-#endif
-
- }
- }
- else
- {
- if (o_ptr->sval == SV_LITE_FEANOR)
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤Ï±Ê±ó¤Ê¤ëÌÀ¤«¤ê(Ⱦ·Â 2)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 2) forever.";
-#endif
-
- }
- else if (o_ptr->sval == SV_LITE_LANTERN)
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏdzÎÁÊäµë¤Ë¤è¤Ã¤ÆÌÀ¤«¤ê(Ⱦ·Â 2)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 2) when fueled.";
-#endif
-
- }
- else
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏdzÎÁÊäµë¤Ë¤è¤Ã¤ÆÌÀ¤«¤ê(Ⱦ·Â 1)¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light (radius 1) when fueled.";
-#endif
-
- }
- }
- if (o_ptr->name2 == EGO_LITE_LONG)
- {
-#ifdef JP
-info[i++] = "¤½¤ì¤ÏŤ¤¥¿¡¼¥óÌÀ¤«¤ê¤ò¼ø¤±¤ë¡£";
-#else
- info[i++] = "It provides light for much longer time.";
-#endif
- }
+ if(rad > 0) sprintf(desc, _("¤½¤ì¤ÏdzÎÁÊäµë¤Ë¤è¤Ã¤ÆÌÀ¤«¤ê(Ⱦ·Â %d)¤ò¼ø¤±¤ë¡£", "It provides light (radius %d) when fueled."), rad);
}
+ else
+ {
+ if(rad > 0) sprintf(desc, _("¤½¤ì¤Ï±Ê±ó¤Ê¤ëÌÀ¤«¤ê(Ⱦ·Â %d)¤ò¼ø¤±¤ë¡£", "It provides light (radius %d) forever."), rad);
+ if(rad < 0) sprintf(desc, _("¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-%d)¡£", "It decreases radius of light source by %d."), -rad);
+ }
+
+ if(rad != 0) info[i++] = desc;
+
+ if (o_ptr->name2 == EGO_LITE_LONG)
+ {
+ info[i++] = _("¤½¤ì¤ÏŤ¤¥¿¡¼¥óÌÀ¤«¤ê¤ò¼ø¤±¤ë¡£", "It provides light for much longer time.");
+ }
/* And then describe it fully */
#endif
}
- if (have_flag(flgs, TR_LITE))
- {
- if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT))
- info[i++] = _("¤½¤ì¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¶¹¤á¤ë(Ⱦ·Â¤Ë-1)¡£" , "It decreases radius of your light source by 1.");
- else
- info[i++] = _("¤½¤ì¤Ï±Ê±ó¤ÎÌÀ¤«¤ê¤ò¼ø¤±¤ë(Ⱦ·Â¤Ë+1)¡£", "It provides permanent light. (radius +1)");
- }
+
if (have_flag(flgs, TR_SEE_INVIS))
{
info[i++] = _("¤½¤ì¤ÏÆ©ÌÀ¤Ê¥â¥ó¥¹¥¿¡¼¤ò¸«¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë¡£", "It allows you to see invisible monsters.");
if (have_flag(flgs, TR_HIDE_TYPE)) total += 0;
if (have_flag(flgs, TR_SHOW_MODS)) total += 0;
if (have_flag(flgs, TR_LEVITATION)) total += 1250;
- if (have_flag(flgs, TR_LITE)) total += 1250;
+ if (have_flag(flgs, TR_LITE_1)) total += 1500;
+ if (have_flag(flgs, TR_LITE_2)) total += 2500;
+ if (have_flag(flgs, TR_LITE_3)) total += 4000;
+ if (have_flag(flgs, TR_LITE_M1)) total -= 1500;
+ if (have_flag(flgs, TR_LITE_M2)) total -= 2500;
+ if (have_flag(flgs, TR_LITE_M3)) total -= 4000;
if (have_flag(flgs, TR_SEE_INVIS)) total += 2000;
if (have_flag(flgs, TR_TELEPATHY)) total += 20000;
if (have_flag(flgs, TR_ESP_ANIMAL)) total += 1000;
o_ptr->name2 = EGO_RING_REGEN;
break;
case 5: case 6:
- if (have_flag(k_ptr->flags, TR_LITE)) break;
+ if (have_flag(k_ptr->flags, TR_LITE_1)) break;
o_ptr->name2 = EGO_RING_LITE;
break;
case 7: case 8:
{TR_NO_MAGIC, "È¿ËâË¡", 3, TR_NO_MAGIC, 15},
{TR_WARNING, "·Ù¹ð", 3, TR_WARNING, 20},
{TR_LEVITATION, "ÉâÍ·", 3, TR_LEVITATION, 20},
- {TR_LITE, "±Êµ×¸÷¸»", 3, TR_LITE, 15},
+ {TR_LITE_1, "±Êµ×¸÷¸»", 3, TR_LITE_1, 15},
{TR_SEE_INVIS, "²Ä»ëÆ©ÌÀ", 3, TR_SEE_INVIS, 20},
{TR_TELEPATHY, "¥Æ¥ì¥Ñ¥·¡¼", 6, TR_TELEPATHY, 15},
{TR_SLOW_DIGEST, "Ãپò½", 3, TR_SLOW_DIGEST, 15},
{TR_NO_MAGIC, "anti magic", 3, TR_NO_MAGIC, 15},
{TR_WARNING, "warning", 3, TR_WARNING, 20},
{TR_LEVITATION, "levitation", 3, TR_LEVITATION, 20},
- {TR_LITE, "permanent light", 3, TR_LITE, 15},
+ {TR_LITE_1, "permanent light", 3, TR_LITE_1, 15},
{TR_SEE_INVIS, "see invisible", 3, TR_SEE_INVIS, 20},
{TR_TELEPATHY, "telepathy", 6, TR_TELEPATHY, 15},
{TR_SLOW_DIGEST, "slow digestion", 3, TR_SLOW_DIGEST, 15},
static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list)
{
u32b flgs[TR_FLAG_SIZE];
+ int rad;
+ char desc[256];
object_flags(o_ptr, flgs);
N_ELEMENTS(misc_flags3_desc));
/*
- * Artifact lights -- large radius light.
- */
- if ((o_ptr->tval == TV_LITE) && object_is_fixed_artifact(o_ptr))
+ * Glowing artifacts -- small radius light.
+ */
+ rad = 0;
+ if (have_flag(flgs, TR_LITE_1)) rad += 1;
+ if (have_flag(flgs, TR_LITE_2)) rad += 2;
+ if (have_flag(flgs, TR_LITE_3)) rad += 3;
+ if (have_flag(flgs, TR_LITE_M1)) rad -= 1;
+ if (have_flag(flgs, TR_LITE_M2)) rad -= 2;
+ if (have_flag(flgs, TR_LITE_M3)) rad -= 3;
+
+ if(o_ptr->name2 == EGO_LITE_SHINE) rad++;
+
+ if (have_flag(flgs, TR_LITE_FUEL))
{
- *misc_list++ = _("±Êµ×¸÷¸»(Ⱦ·Â3)", "Permanent Light(3)");
+ if(rad > 0) sprintf(desc, _("¤½¤ì¤ÏdzÎÁÊäµë¤Ë¤è¤Ã¤ÆÌÀ¤«¤ê(Ⱦ·Â %d)¤ò¼ø¤±¤ë¡£", "It provides light (radius %d) when fueled."), rad);
}
-
- /*
- * Glowing artifacts -- small radius light.
- */
- if (have_flag(flgs, TR_LITE))
+ else
{
- *misc_list++ = _("±Êµ×¸÷¸»(Ⱦ·Â1)", "Permanent Light(1)");
+ if(rad > 0) sprintf(desc, _("±Êµ×¸÷¸»(Ⱦ·Â %d)", "Permanent Light(radius %d)"), rad);
+ if(rad < 0) sprintf(desc, _("±Êµ×¸÷¸»(Ⱦ·Â-%d)¡£", "Permanent Light(radius -%d)"), -rad);
}
+
+ if(rad != 0) *misc_list++ = desc;
/*
* Handle cursed objects here to avoid redundancies such as noting
for (i = INVEN_RARM; i < INVEN_TOTAL; i++)
{
o_ptr = &inventory[i];
-
- /* Examine actual lites */
- if ((i == INVEN_LITE) && (o_ptr->k_idx) && (o_ptr->tval == TV_LITE))
+ /* Skip empty slots */
+ if (!o_ptr->k_idx) continue;
+
+ if (o_ptr->name2 == EGO_LITE_SHINE) p_ptr->cur_lite++;
+
+ /* Need Fuels */
+ if (o_ptr->name2 != EGO_LITE_DARKNESS)
{
- if (o_ptr->name2 == EGO_LITE_DARKNESS)
- {
- if (o_ptr->sval == SV_LITE_TORCH)
- {
- p_ptr->cur_lite -= 1;
- }
-
- /* Lanterns (with fuel) provide more lite */
- else if (o_ptr->sval == SV_LITE_LANTERN)
- {
- p_ptr->cur_lite -= 2;
- }
-
- else if (o_ptr->sval == SV_LITE_FEANOR)
- {
- p_ptr->cur_lite -= 3;
- }
- }
- /* Torches (with fuel) provide some lite */
- else if ((o_ptr->sval == SV_LITE_TORCH) && (o_ptr->xtra4 > 0))
- {
- p_ptr->cur_lite += 1;
- }
-
- /* Lanterns (with fuel) provide more lite */
- else if ((o_ptr->sval == SV_LITE_LANTERN) && (o_ptr->xtra4 > 0))
- {
- p_ptr->cur_lite += 2;
- }
-
- else if (o_ptr->sval == SV_LITE_FEANOR)
- {
- p_ptr->cur_lite += 2;
- }
-
- /* Artifact Lites provide permanent, bright, lite */
- else if (object_is_fixed_artifact(o_ptr))
- {
- p_ptr->cur_lite += 3;
- }
-
- if (o_ptr->name2 == EGO_LITE_SHINE) p_ptr->cur_lite++;
+ if((o_ptr->sval == SV_LITE_TORCH) && !(o_ptr->xtra4 > 0)) break;
+ if((o_ptr->sval == SV_LITE_LANTERN) && !(o_ptr->xtra4 > 0)) break;
}
- else
- {
- /* Skip empty slots */
- if (!o_ptr->k_idx) continue;
-
- /* Extract the flags */
- object_flags(o_ptr, flgs);
- /* does this item glow? */
- if (have_flag(flgs, TR_LITE))
- {
- if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT)) p_ptr->cur_lite--;
- else p_ptr->cur_lite++;
- }
- }
+ /* Extract the flags */
+ object_flags(o_ptr, flgs);
+ /* calc the lite_radius */
+ if (have_flag(flgs, TR_LITE_1)) p_ptr->cur_lite += 1;
+ if (have_flag(flgs, TR_LITE_2)) p_ptr->cur_lite += 2;
+ if (have_flag(flgs, TR_LITE_3)) p_ptr->cur_lite += 3;
+ if (have_flag(flgs, TR_LITE_M1)) p_ptr->cur_lite -= 1;
+ if (have_flag(flgs, TR_LITE_M2)) p_ptr->cur_lite -= 2;
+ if (have_flag(flgs, TR_LITE_M3)) p_ptr->cur_lite -= 3;
}
/* max radius is 14 (was 5) without rewriting other code -- */