From 812f4b0cc662f96413962df7c80e6181da745fa9 Mon Sep 17 00:00:00 2001 From: dis- Date: Sun, 9 Jun 2013 14:22:39 +0000 Subject: [PATCH] Add Item flags. TR_CALL_ANIMAL TR_CALL_DEMON TR_CALL_DRAGON TR_CALL_UNDEAD TR_COWARDICE TR_LOW_MELEE TR_LOW_AC TR_LOW_MAGIC TR_FAST_DIGEST TR_SLOW_REGEN --- src/defines.h | 19 ++++++++++++---- src/dungeon.c | 70 ++++++++++++++++++----------------------------------------- src/init1.c | 12 +++++++++- src/object1.c | 20 ++++++++++------- src/xtra1.c | 10 +++++++++ 5 files changed, 69 insertions(+), 62 deletions(-) diff --git a/src/defines.h b/src/defines.h index f112059f5..e895ee015 100644 --- a/src/defines.h +++ b/src/defines.h @@ -76,7 +76,7 @@ #define H_VER_MAJOR 2 #define H_VER_MINOR 1 #define H_VER_PATCH 2 -#define H_VER_EXTRA 2 +#define H_VER_EXTRA 3 #define ANGBAND_2_8_1 @@ -3373,6 +3373,7 @@ #define TR_SHOW_MODS 74 /* Always show Tohit/Todam */ #define TR_SLAY_GOOD 75 #define TR_LEVITATION 76 /* Feather Falling */ +#define TR_LITE_1 77 /* Light Radius 1*/ #define TR_SEE_INVIS 78 /* See Invisible */ #define TR_TELEPATHY 79 /* Telepathy */ #define TR_SLOW_DIGEST 80 /* Item slows down digestion */ @@ -3418,8 +3419,6 @@ #define TR_ADD_H_CURSE 119 #define TR_DRAIN_HP 120 #define TR_DRAIN_MANA 121 - -#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) */ @@ -3427,7 +3426,18 @@ #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_CALL_ANIMAL 128 +#define TR_CALL_DEMON 129 +#define TR_CALL_DRAGON 130 +#define TR_CALL_UNDEAD 131 +#define TR_COWARDICE 132 +#define TR_LOW_MELEE 133 +#define TR_LOW_AC 134 +#define TR_LOW_MAGIC 135 +#define TR_FAST_DIGEST 136 +#define TR_SLOW_REGEN 137 + +#define TR_FLAG_MAX 138 #define TR_FLAG_SIZE 4 @@ -3474,6 +3484,7 @@ #define TRC_FAST_DIGEST 0x00040000L #define TRC_DRAIN_HP 0x00080000L #define TRC_DRAIN_MANA 0x00100000L +#define TRC_CALL_UNDEAD 0x00200000L #define TRC_TELEPORT_SELF 0x00000001L #define TRC_CHAINSWORD 0x00000002L diff --git a/src/dungeon.c b/src/dungeon.c index 2f404ad92..ee1e482cc 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -2992,11 +2992,7 @@ static void process_world_aux_curse(void) if ((p_ptr->cursed & TRC_CHAINSWORD) && one_in_(CHAINSWORD_NOISE)) { char noise[1024]; -#ifdef JP - if (!get_rnd_line("chainswd_j.txt", 0, noise)) -#else - if (!get_rnd_line("chainswd.txt", 0, noise)) -#endif + if (!get_rnd_line(_("chainswd_j.txt", "chainswd.txt"), 0, noise)) msg_print(noise); disturb(FALSE, FALSE); } @@ -3032,11 +3028,7 @@ static void process_world_aux_curse(void) object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); o_ptr->curse_flags |= new_curse; -#ifdef JP - msg_format("°­°Õ¤ËËþ¤Á¤¿¹õ¤¤¥ª¡¼¥é¤¬%s¤ò¤È¤ê¤Þ¤¤¤¿...", o_name); -#else - msg_format("There is a malignant black aura surrounding your %s...", o_name); -#endif + msg_format(_("°­°Õ¤ËËþ¤Á¤¿¹õ¤¤¥ª¡¼¥é¤¬%s¤ò¤È¤ê¤Þ¤¤¤¿...", "There is a malignant black aura surrounding your %s..."), o_name); o_ptr->feeling = FEEL_NONE; @@ -3059,12 +3051,7 @@ static void process_world_aux_curse(void) object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); o_ptr->curse_flags |= new_curse; -#ifdef JP - msg_format("°­°Õ¤ËËþ¤Á¤¿¹õ¤¤¥ª¡¼¥é¤¬%s¤ò¤È¤ê¤Þ¤¤¤¿...", o_name); -#else - msg_format("There is a malignant black aura surrounding your %s...", o_name); -#endif - + msg_format(_("°­°Õ¤ËËþ¤Á¤¿¹õ¤¤¥ª¡¼¥é¤¬%s¤ò¤È¤ê¤Þ¤¤¤¿...", "There is a malignant black aura surrounding your %s..."), o_name); o_ptr->feeling = FEEL_NONE; p_ptr->update |= (PU_BONUS); @@ -3079,12 +3066,7 @@ static void process_world_aux_curse(void) char o_name[MAX_NLEN]; object_desc(o_name, choose_cursed_obj_name(TRC_CALL_ANIMAL), (OD_OMIT_PREFIX | OD_NAME_ONLY)); -#ifdef JP - msg_format("%s¤¬Æ°Êª¤ò°ú¤­´ó¤»¤¿¡ª", o_name); -#else - msg_format("Your %s have attracted an animal!", o_name); -#endif - + msg_format(_("%s¤¬Æ°Êª¤ò°ú¤­´ó¤»¤¿¡ª", "Your %s have attracted an animal!"), o_name); disturb(0, 1); } } @@ -3096,12 +3078,7 @@ static void process_world_aux_curse(void) char o_name[MAX_NLEN]; object_desc(o_name, choose_cursed_obj_name(TRC_CALL_DEMON), (OD_OMIT_PREFIX | OD_NAME_ONLY)); -#ifdef JP - msg_format("%s¤¬°­Ëâ¤ò°ú¤­´ó¤»¤¿¡ª", o_name); -#else - msg_format("Your %s have attracted a demon!", o_name); -#endif - + msg_format(_("%s¤¬°­Ëâ¤ò°ú¤­´ó¤»¤¿¡ª", "Your %s have attracted a demon!"), o_name); disturb(0, 1); } } @@ -3114,12 +3091,20 @@ static void process_world_aux_curse(void) char o_name[MAX_NLEN]; object_desc(o_name, choose_cursed_obj_name(TRC_CALL_DRAGON), (OD_OMIT_PREFIX | OD_NAME_ONLY)); -#ifdef JP - msg_format("%s¤¬¥É¥é¥´¥ó¤ò°ú¤­´ó¤»¤¿¡ª", o_name); -#else - msg_format("Your %s have attracted an animal!", o_name); -#endif + msg_format(_("%s¤¬¥É¥é¥´¥ó¤ò°ú¤­´ó¤»¤¿¡ª", "Your %s have attracted an dragon!"), o_name); + disturb(0, 1); + } + } + /* Call undead */ + if ((p_ptr->cursed & TRC_CALL_UNDEAD) && one_in_(1111)) + { + if (summon_specific(0, py, px, dun_level, SUMMON_UNDEAD, + (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET))) + { + char o_name[MAX_NLEN]; + object_desc(o_name, choose_cursed_obj_name(TRC_CALL_DRAGON), (OD_OMIT_PREFIX | OD_NAME_ONLY)); + msg_format(_("%s¤¬»àÎî¤ò°ú¤­´ó¤»¤¿¡ª", "Your %s have attracted an undead!"), o_name); disturb(0, 1); } } @@ -3128,12 +3113,7 @@ static void process_world_aux_curse(void) if (!p_ptr->resist_fear) { disturb(0, 1); -#ifdef JP - msg_print("¤È¤Æ¤â°Å¤¤... ¤È¤Æ¤â¶²¤¤¡ª"); -#else - msg_print("It's so dark... so scary!"); -#endif - + msg_print(_("¤È¤Æ¤â°Å¤¤... ¤È¤Æ¤â¶²¤¤¡ª", "It's so dark... so scary!")); set_afraid(p_ptr->afraid + 13 + randint1(26)); } } @@ -3151,11 +3131,7 @@ static void process_world_aux_curse(void) char o_name[MAX_NLEN]; object_desc(o_name, choose_cursed_obj_name(TRC_DRAIN_HP), (OD_OMIT_PREFIX | OD_NAME_ONLY)); -#ifdef JP - msg_format("%s¤Ï¤¢¤Ê¤¿¤ÎÂÎÎϤòµÛ¼ý¤·¤¿¡ª", o_name); -#else - msg_format("Your %s drains HP from you!", o_name); -#endif + msg_format(_("%s¤Ï¤¢¤Ê¤¿¤ÎÂÎÎϤòµÛ¼ý¤·¤¿¡ª", "Your %s drains HP from you!"), o_name); take_hit(DAMAGE_LOSELIFE, MIN(p_ptr->lev*2, 100), o_name, -1); } /* Handle mana draining */ @@ -3164,11 +3140,7 @@ static void process_world_aux_curse(void) char o_name[MAX_NLEN]; object_desc(o_name, choose_cursed_obj_name(TRC_DRAIN_MANA), (OD_OMIT_PREFIX | OD_NAME_ONLY)); -#ifdef JP - msg_format("%s¤Ï¤¢¤Ê¤¿¤ÎËâÎϤòµÛ¼ý¤·¤¿¡ª", o_name); -#else - msg_format("Your %s drains mana from you!", o_name); -#endif + msg_format(_("%s¤Ï¤¢¤Ê¤¿¤ÎËâÎϤòµÛ¼ý¤·¤¿¡ª", "Your %s drains mana from you!"), o_name); p_ptr->csp -= MIN(p_ptr->lev, 50); if (p_ptr->csp < 0) { diff --git a/src/init1.c b/src/init1.c index 7cb96ba60..a80a5143e 100644 --- a/src/init1.c +++ b/src/init1.c @@ -785,9 +785,19 @@ static cptr k_info_flags[] = "LITE_M2", "LITE_M3", "LITE_FUEL", + + "CALL_ANIMAL", + "CALL_DEMON", + "CALL_DRAGON", + "CALL_UNDEAD", + "COWARDICE", + "LOW_MELEE", + "LOW_AC", + "LOW_MAGIC", + "FAST_DIGEST", + "SLOW_REGEN", }; - static cptr k_info_gen_flags[] = { "INSTA_ART", diff --git a/src/object1.c b/src/object1.c index a194eaa3e..469aa101d 100644 --- a/src/object1.c +++ b/src/object1.c @@ -1672,19 +1672,23 @@ info[i++] = " { info[i++] = _("¤½¤ì¤Ï¶¯ÎϤʼö¤¤¤òÁý¤ä¤¹¡£","It adds heavy curses."); } - if (o_ptr->curse_flags & TRC_CALL_ANIMAL) + if ((have_flag(flgs, TR_CALL_ANIMAL)) || (o_ptr->curse_flags & TRC_CALL_ANIMAL)) { info[i++] = _("¤½¤ì¤Ïưʪ¤ò¸Æ¤Ó´ó¤»¤ë¡£", "It attracts animals."); } - if (o_ptr->curse_flags & TRC_CALL_DEMON) + if ((have_flag(flgs, TR_CALL_DEMON)) || (o_ptr->curse_flags & TRC_CALL_DEMON)) { info[i++] = _("¤½¤ì¤Ï°­Ëâ¤ò¸Æ¤Ó´ó¤»¤ë¡£", "It attracts demons."); } - if (o_ptr->curse_flags & TRC_CALL_DRAGON) + if ((have_flag(flgs, TR_CALL_DRAGON)) || (o_ptr->curse_flags & TRC_CALL_DRAGON)) { info[i++] = _("¤½¤ì¤Ï¥É¥é¥´¥ó¤ò¸Æ¤Ó´ó¤»¤ë¡£", "It attracts dragons."); } - if (o_ptr->curse_flags & TRC_COWARDICE) + if ((have_flag(flgs, TR_CALL_UNDEAD)) || (o_ptr->curse_flags & TRC_CALL_UNDEAD)) + { + info[i++] = _("¤½¤ì¤Ï»àÎî¤ò¸Æ¤Ó´ó¤»¤ë¡£", "It attracts undeads."); + } + if ((have_flag(flgs, TR_COWARDICE)) || (o_ptr->curse_flags & TRC_COWARDICE)) { info[i++] = _("¤½¤ì¤Ï¶²ÉÝ´¶¤ò°ú¤­µ¯¤³¤¹¡£", "It makes you subject to cowardice."); } @@ -1692,19 +1696,19 @@ info[i++] = " { info[i++] = _("¤½¤ì¤Ï¥é¥ó¥À¥à¤Ê¥Æ¥ì¥Ý¡¼¥È¤ò°ú¤­µ¯¤³¤¹¡£", "It induces random teleportation."); } - if (o_ptr->curse_flags & TRC_LOW_MELEE) + if ((have_flag(flgs, TR_LOW_MELEE)) || o_ptr->curse_flags & TRC_LOW_MELEE) { info[i++] = _("¤½¤ì¤Ï¹¶·â¤ò³°¤·¤ä¤¹¤¤¡£", "It causes you to miss blows."); } - if (o_ptr->curse_flags & TRC_LOW_AC) + if ((have_flag(flgs, TR_LOW_AC)) || (o_ptr->curse_flags & TRC_LOW_AC)) { info[i++] = _("¤½¤ì¤Ï¹¶·â¤ò¼õ¤±¤ä¤¹¤¤¡£", "It helps your enemies' blows."); } - if (o_ptr->curse_flags & TRC_LOW_MAGIC) + if ((have_flag(flgs, TR_LOW_MAGIC)) || (o_ptr->curse_flags & TRC_LOW_MAGIC)) { info[i++] = _("¤½¤ì¤ÏËâË¡¤ò¾§¤¨¤Ë¤¯¤¯¤¹¤ë¡£", "It encumbers you while spellcasting."); } - if (o_ptr->curse_flags & TRC_FAST_DIGEST) + if ((have_flag(flgs, TR_FAST_DIGEST)) || (o_ptr->curse_flags & TRC_FAST_DIGEST)) { info[i++] = _("¤½¤ì¤Ï¤¢¤Ê¤¿¤Î¿·ÄÄÂå¼Õ¤ò®¤¯¤¹¤ë¡£", "It speeds your metabolism."); } diff --git a/src/xtra1.c b/src/xtra1.c index 79d12d9b5..201a89aac 100644 --- a/src/xtra1.c +++ b/src/xtra1.c @@ -4195,6 +4195,16 @@ void calc_bonuses(void) if (have_flag(flgs, TR_ADD_H_CURSE)) p_ptr->cursed |= TRC_ADD_H_CURSE; if (have_flag(flgs, TR_DRAIN_HP)) p_ptr->cursed |= TRC_DRAIN_HP; if (have_flag(flgs, TR_DRAIN_MANA)) p_ptr->cursed |= TRC_DRAIN_MANA; + if (have_flag(flgs, TR_CALL_ANIMAL)) p_ptr->cursed |= TRC_CALL_ANIMAL; + if (have_flag(flgs, TR_CALL_DEMON)) p_ptr->cursed |= TRC_CALL_DEMON; + if (have_flag(flgs, TR_CALL_DRAGON)) p_ptr->cursed |= TRC_CALL_DRAGON; + if (have_flag(flgs, TR_CALL_UNDEAD)) p_ptr->cursed |= TRC_CALL_UNDEAD; + if (have_flag(flgs, TR_COWARDICE)) p_ptr->cursed |= TRC_COWARDICE; + if (have_flag(flgs, TR_LOW_MELEE)) p_ptr->cursed |= TRC_LOW_MELEE; + if (have_flag(flgs, TR_LOW_AC)) p_ptr->cursed |= TRC_LOW_AC; + if (have_flag(flgs, TR_LOW_MAGIC)) p_ptr->cursed |= TRC_LOW_MAGIC; + if (have_flag(flgs, TR_FAST_DIGEST)) p_ptr->cursed |= TRC_FAST_DIGEST; + if (have_flag(flgs, TR_SLOW_REGEN)) p_ptr->cursed |= TRC_SLOW_REGEN; if (have_flag(flgs, TR_DEC_MANA)) p_ptr->dec_mana = TRUE; if (have_flag(flgs, TR_BLESSED)) p_ptr->bless_blade = TRUE; if (have_flag(flgs, TR_XTRA_MIGHT)) p_ptr->xtra_might = TRUE; -- 2.11.0