• R/O
  • SSH
  • HTTPS

xangband: コミット


コミットメタ情報

リビジョン1635 (tree)
日時2008-08-22 00:58:20
作者iks

ログメッセージ

さらに追加。

変更サマリ

差分

--- XAngband/branches/material/src/tables.c (revision 1634)
+++ XAngband/branches/material/src/tables.c (revision 1635)
@@ -2921,26 +2921,26 @@
29212921 {
29222922 #ifdef JP
29232923 "サンド・ボルト",
2924- "燃素生成",
29252924 "無生物感知",
29262925 "魔法の地図",
29272926 "トラップ破壊",
2928- "熱素球",
2927+ "風化球",
29292928 "鑑定",
29302929 "軟化",
29312930 "地下採掘",
29322931 "岩石爆破",
2932+ "肌石化",
29332933 #else
29342934 "Sand bolt",
2935- "Phlogiston",
29362935 "Detect nonliving",
29372936 "Magic mapping",
29382937 "Trap destruction",
2939- "Caloric ball",
2938+ "Weathering ball",
29402939 "Identify",
29412940 "Stone to flesh",
29422941 "Borling",
29432942 "Rock brast",
2943+ "Stone skin",
29442944 #endif
29452945
29462946 #ifdef JP
--- XAngband/branches/material/src/spells1.c (revision 1634)
+++ XAngband/branches/material/src/spells1.c (revision 1635)
@@ -1016,7 +1016,7 @@
10161016 c_ptr->info &= ~(CAVE_MARK);
10171017
10181018 /* Destroy the feature */
1019- cave_set_feat(y, x, FEAT_FLOOR);
1019+ cave_set_feat(y, x, FEAT_GRASS);
10201020
10211021 /* Make many foods */
10221022 i = lookup_kind(TV_FOOD, SV_FOOD_SLIME_MOLD);
@@ -1057,7 +1057,9 @@
10571057 /* XAngband: Flood water */
10581058 case GF_FLOOD:
10591059 {
1060- if (c_ptr->feat == FEAT_SHAL_LAVA)
1060+ if (c_ptr->feat == FEAT_DEEP_LAVA)
1061+ cave_set_feat(y, x, FEAT_SHAL_LAVA);
1062+ else if (c_ptr->feat == FEAT_SHAL_LAVA)
10611063 cave_set_feat(y, x, FEAT_FLOOR);
10621064 else if (cave_floor_bold(y, x) && (c_ptr->feat != FEAT_DEEP_WATER))
10631065 {
@@ -1072,15 +1074,16 @@
10721074 /* XAngband: Lava */
10731075 case GF_LAVA:
10741076 {
1075- if (cave_floor_bold(y, x))
1077+ if (c_ptr->feat == FEAT_SHAL_LAVA)
10761078 {
10771079 cave[y][x].info |= CAVE_GLOW;
10781080 cave_set_feat(y, x, FEAT_DEEP_LAVA);
10791081 }
1080- else if (c_ptr->feat == FEAT_DEEP_WATER)
1081- cave_set_feat(y, x, FEAT_SHAL_WATER);
1082- else if (c_ptr->feat == FEAT_SHAL_WATER)
1083- cave_set_feat(y, x, FEAT_FLOOR);
1082+ else if (cave_floor_bold(y, x))
1083+ {
1084+ cave[y][x].info |= CAVE_GLOW;
1085+ cave_set_feat(y, x, FEAT_SHAL_LAVA);
1086+ }
10841087 break;
10851088 }
10861089 }
--- XAngband/branches/material/src/cmd5.c (revision 1634)
+++ XAngband/branches/material/src/cmd5.c (revision 1635)
@@ -1611,7 +1611,7 @@
16111611
16121612 static bool cast_earth_spell(int spell)
16131613 {
1614- int dam, dir;
1614+ int dir;
16151615 int plev = p_ptr->lev;
16161616
16171617 switch(spell)
@@ -1618,28 +1618,25 @@
16181618 {
16191619 case 0: /* Sand Bolt */
16201620 if (!get_aim_dir(&dir)) return FALSE;
1621- fire_bolt(GF_SHARDS, dir, 7 + (plev + 2) / 4);
1621+ fire_bolt(GF_SHARDS, dir, 5 + (plev / 5));
16221622 break;
1623- case 1: /* Phlogiston */
1624- phlogiston();
1623+ case 1: /* Detect Nonliving*/
1624+ (void)detect_monsters_xxx(DETECT_RAD_DEFAULT, (RF3_UNDEAD | RF3_NONLIVING | RF3_HURT_ROCK));
16251625 break;
1626- case 2: /* Detect Nonliving*/
1627- (void)detect_monsters_xxx(DETECT_RAD_DEFAULT, (RF3_UNDEAD | RF3_NONLIVING));
1628- break;
1629- case 3: /* Magic Mapping */
1626+ case 2: /* Magic Mapping */
16301627 map_area(DETECT_RAD_DEFAULT);
16311628 break;
1632- case 4: /* Trap Destruction */
1629+ case 3: /* Trap Destruction */
16331630 (void)destroy_doors_touch();
16341631 break;
1635- case 5: /* Caloric Ball */
1632+ case 4: /* Weathering Ball */
16361633 if (!get_aim_dir(&dir)) return FALSE;
1637- fire_ball(GF_PLASMA, dir, 10 + randint1(plev / 2), 1);
1634+ fire_ball(GF_DISINTEGRATE, dir, 10 + randint1(plev / 2), 1);
16381635 break;
1639- case 6: /* Identify */
1636+ case 5: /* Identify */
16401637 return ident_spell();
16411638 break;
1642- case 7: /* Stone to Flesh */
1639+ case 6: /* Stone to Flesh */
16431640 {
16441641 u16b flg = PROJECT_BEAM | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
16451642 if (!get_aim_dir(&dir)) return FALSE;
@@ -1646,7 +1643,7 @@
16461643 (void)project_hook(GF_SOFTEN, dir, (plev + randint1(plev)), flg);
16471644 break;
16481645 }
1649- case 8: /* Borling */
1646+ case 7: /* Borling */
16501647 {
16511648 byte f, ft[] = { FEAT_SHAL_WATER, FEAT_SHAL_WATER, FEAT_SHAL_LAVA };
16521649 cave_type *c_ptr = &cave[py][px];
@@ -1674,10 +1671,13 @@
16741671 }
16751672 break;
16761673 }
1677- case 9: /* Rock Blast */
1674+ case 8: /* Rock Blast */
16781675 if (!get_aim_dir(&dir)) return FALSE;
16791676 fire_ball_hide(GF_ROCK_BLAST, dir, (75 + plev * 3 / 2), 0);
16801677 break;
1678+ case 9: /* Stone Skin */
1679+ (void)set_shield(p_ptr->shield + randint1(25) + 30);
1680+ break;
16811681 case 10: /* Earthquake */
16821682 (void)earthquake(py, px, 10);
16831683 break;
@@ -1852,7 +1852,54 @@
18521852 if (!get_aim_dir(&dir)) return FALSE;
18531853 break;
18541854 case 25: /* Polishing */
1855+ {
1856+ int item;
1857+ object_type *o_ptr;
1858+ char o_name[MAX_NLEN];
1859+ cptr q, s;
1860+
1861+ item_tester_tval = TV_SHIELD;
1862+
1863+ /* Get an item */
1864+#ifdef JP
1865+ q = "どのアイテムを磨きますか? ";
1866+ s = "磨くアイテムがない。";
1867+#else
1868+ q = "Enchant which item? ";
1869+ s = "You have nothing to enchant.";
1870+#endif
1871+
1872+ if (!get_item(&item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR))) return (FALSE);
1873+
1874+ /* Get the item (in the pack) */
1875+ if (item >= 0)
1876+ {
1877+ o_ptr = &inventory[item];
1878+ }
1879+
1880+ /* Get the item (on the floor) */
1881+ else
1882+ {
1883+ o_ptr = &o_list[0 - item];
1884+ }
1885+
1886+ /* Description */
1887+ object_desc(o_name, o_ptr, OD_OMIT_PREFIX | OD_NAME_ONLY);
1888+
1889+ /* Describe */
1890+#ifdef JP
1891+ msg_format("%s は明るく輝いた!", o_name);
1892+#else
1893+ msg_format("%s %s glow%s brightly!",
1894+ ((item >= 0) ? "Your" : "The"), o_name,
1895+ ((o_ptr->number > 1) ? "" : "s"));
1896+#endif
1897+
1898+ /* Coat */
1899+ o_ptr->art_flags2 |= (TR2_REFLECT);
1900+
18551901 break;
1902+ }
18561903 case 26: /* Whirlpool */
18571904 {
18581905 int i, c = 0;
@@ -1898,7 +1945,53 @@
18981945 case 30: /* Tidal wave */
18991946 break;
19001947 case 31: /* Lava burst */
1948+ {
1949+ int tx, ty;
1950+ int i, dam, rad, num;
1951+ bool is_lava = FALSE;
1952+
1953+ if (!target_set(TARGET_KILL)) return FALSE;
1954+
1955+ ty = target_row;
1956+ tx = target_col;
1957+
1958+ if (!los(py, px, ty, tx) || !(cave[ty][tx].info & CAVE_MARK))
1959+ {
1960+#ifdef JP
1961+ msg_print("そこは見えない!");
1962+#else
1963+ msg_print("You can not see there.");
1964+#endif
1965+ return FALSE;
1966+ }
1967+
1968+ /* Volcanos burst stronger */
1969+ if ((cave[ty][tx].feat == FEAT_SHAL_LAVA) ||
1970+ (cave[ty][tx].feat == FEAT_DEEP_LAVA))
1971+ is_lava = TRUE;
1972+
1973+ dam = plev * ((is_lava) ? 7 : 3);
1974+ rad = (is_lava) ? 8 : 4;
1975+ num = (is_lava) ? 10 : 5;
1976+
1977+ project(0, rad, ty, tx, 0, GF_DISINTEGRATE,
1978+ (PROJECT_JUMP | PROJECT_HIDE | PROJECT_GRID));
1979+ project(0, rad, ty, tx, dam, GF_LAVA,
1980+ (PROJECT_JUMP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL));
1981+
1982+ for (i = 0; i < num; i++)
1983+ {
1984+ int rx = tx - 5 + randint0(11);
1985+ int ry = ty - 5 + randint0(11);
1986+
1987+ if (!in_bounds(ry, rx)) continue;
1988+ if (!cave_floor_bold(ry, rx)) continue;
1989+
1990+ project(0, 3, ry, rx, plev * 3, GF_METEOR,
1991+ (PROJECT_JUMP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL));
1992+ }
19011993 break;
1994+ }
19021995 default:
19031996 #ifdef JP
19041997 msg_format("あなたは不明な大地の呪文 %d を唱えた。", spell);
旧リポジトリブラウザで表示