<ClCompile Include="..\..\src\object\object-broken.cpp" />\r
<ClCompile Include="..\..\src\object\lite-processor.cpp" />\r
<ClCompile Include="..\..\src\player\patron.cpp" />\r
- <ClCompile Include="..\..\src\player\player-class.cpp" />\r
+ <ClCompile Include="..\..\src\player-info\class-info.cpp" />\r
<ClCompile Include="..\..\src\player\player-damage.cpp" />\r
<ClCompile Include="..\..\src\status\action-setter.cpp" />\r
<ClCompile Include="..\..\src\inventory\player-inventory.cpp" />\r
<ClInclude Include="..\..\src\mspell\mspell-ball.h" />\r
<ClInclude Include="..\..\src\player\player-personality-types.h" />\r
<ClInclude Include="..\..\src\player-info\race-types.h" />\r
- <ClInclude Include="..\..\src\player\player-class-types.h" />\r
+ <ClInclude Include="..\..\src\player-info\class-types.h" />\r
<ClInclude Include="..\..\src\spell-kind\spells-detection.h" />\r
<ClInclude Include="..\..\src\system\angband-version.h" />\r
<ClInclude Include="..\..\src\core\turn-compensator.h" />\r
<ClInclude Include="..\..\src\object\object-kind-hook.h" />\r
<ClInclude Include="..\..\src\object\object-kind.h" />\r
<ClInclude Include="..\..\src\player\patron.h" />\r
- <ClInclude Include="..\..\src\player\player-class.h" />\r
+ <ClInclude Include="..\..\src\player-info\class-info.h" />\r
<ClInclude Include="..\..\src\player\player-damage.h" />\r
<ClInclude Include="..\..\src\status\action-setter.h" />\r
<ClInclude Include="..\..\src\player\player-move.h" />\r
<ClCompile Include="..\..\src\room\rooms-pit-nest.cpp">\r
<Filter>room</Filter>\r
</ClCompile>\r
- <ClCompile Include="..\..\src\player\player-class.cpp">\r
- <Filter>player</Filter>\r
+ <ClCompile Include="..\..\src\player-info\class-info.cpp">\r
+ <Filter>player-info</Filter>\r
</ClCompile>\r
<ClCompile Include="..\..\src\player\player-damage.cpp">\r
<Filter>player</Filter>\r
<ClInclude Include="..\..\src\room\rooms-vault.h">\r
<Filter>room</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\src\player\player-class.h">\r
- <Filter>player</Filter>\r
+ <ClInclude Include="..\..\src\player-info\class-info.h">\r
+ <Filter>player-info</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\src\player\player-damage.h">\r
<Filter>player</Filter>\r
<ClInclude Include="..\..\src\player\player-personality-types.h">\r
<Filter>player</Filter>\r
</ClInclude>\r
- <ClInclude Include="..\..\src\player\player-class-types.h">\r
- <Filter>player</Filter>\r
+ <ClInclude Include="..\..\src\player-info\class-types.h">\r
+ <Filter>player-info</Filter>\r
</ClInclude>\r
<ClInclude Include="..\..\src\spell\spell-types.h">\r
<Filter>spell</Filter>\r
player/permanent-resistances.cpp player/permanent-resistances.h \
player/temporary-resistances.cpp player/temporary-resistances.h \
player/digestion-processor.cpp player/digestion-processor.h \
- player/player-class-types.h \
- player/player-class.cpp player/player-class.h \
player/player-damage.cpp player/player-damage.h \
player/player-move.cpp player/player-move.h \
player/player-personality.cpp player/player-personality.h \
player-info/base-status-info.cpp player-info/base-status-info.h \
player-info/body-improvement-info.cpp player-info/body-improvement-info.h \
player-info/class-ability-info.cpp player-info/class-ability-info.h \
+ player-info/class-types.h \
+ player-info/class-info.cpp player-info/class-info.h \
player-info/equipment-info.cpp player-info/equipment-info.h \
player-info/mimic-info-table.cpp player-info/mimic-info-table.h \
player-info/mutation-info.cpp player-info/mutation-info.h \
#include "core/show-file.h"
#include "game-option/input-options.h"
#include "game-option/keymap-directory-getter.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "system/player-type-definition.h"
#include "term/term-color-types.h"
#include "avatar/avatar.h"
#include "core/player-update-types.h"
#include "game-option/text-display-options.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "realm/realm-names-table.h"
#include "system/player-type-definition.h"
#include "cmd-io/cmd-gameoption.h"
#include "io/input-key-acceptor.h"
#include "main/sound-of-music.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-sex.h"
#include "player/player-status-table.h"
#pragma once
#include "player-info/race-types.h"
-#include "player/player-class-types.h"
+#include "player-info/class-types.h"
#include "player/player-personality.h"
#include "realm/realm-names-table.h"
#include "system/angband.h"
#include "birth/birth-select-class.h"
#include "birth/birth-util.h"
#include "io/input-key-acceptor.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "system/player-type-definition.h"
#include "term/screen-processor.h"
#include "term/term-color-types.h"
#include "birth/birth-stat.h"
#include "birth/auto-roller.h"
#include "core/player-redraw-types.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "player/player-personality-types.h"
#include "player/player-personality.h"
#include "player/player-skill.h"
#include "io/input-key-acceptor.h"
#include "main/sound-definitions-table.h"
#include "main/sound-of-music.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
#include "player/patron.h"
-#include "player/player-class.h"
#include "player/player-sex.h"
#include "player/player-status-table.h"
#include "player/player-status.h"
#include "main/sound-of-music.h"
#include "mind/mind-elementalist.h"
#include "monster-floor/monster-remover.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
#include "player/patron.h"
-#include "player/player-class.h"
#include "player/player-sex.h"
#include "player/race-info-table.h"
#include "store/store-owners.h"
#pragma once
-#include "player/player-class-types.h"
+#include "player-info/class-types.h"
#include "system/angband.h"
extern byte player_init[MAX_CLASS][3][2];
#include "birth/game-play-initializer.h"
#include "core/player-update-types.h"
#include "io/input-key-acceptor.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-sex.h"
#include "player/player-status.h"
#pragma once
+#include "player-info/class-types.h"
#include "player-info/race-types.h"
-#include "player/player-class-types.h"
#include "player/player-personality-types.h"
#include "player/player-sex.h"
#include "system/angband.h"
#include "mind/mind-numbers.h"
#include "mind/mind-power-getter.h"
#include "mind/mind-types.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-status/player-energy.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-status-table.h"
#include "player/player-status.h"
#include "monster/smart-learn-types.h"
#include "object-hook/hook-weapon.h"
#include "pet/pet-util.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-status/player-energy.h"
#include "player-status/player-hand-types.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-move.h"
#include "player/player-skill.h"
feature_type *f_ptr = &f_info[g_ptr->get_feat_mimic()];
#ifdef JP
msg_format("そのモンスターは%sの%sにいる。", f_ptr->name.c_str(),
- (f_ptr->flags.has_none_of({FF::MOVE, FF::CAN_FLY})
- || f_ptr->flags.has_none_of({FF::LOS, FF::TREE}))
- ? "中"
- : "上");
+ (f_ptr->flags.has_none_of({ FF::MOVE, FF::CAN_FLY }) || f_ptr->flags.has_none_of({ FF::LOS, FF::TREE })) ? "中" : "上");
#else
msg_format("This monster is %s the %s.",
- (f_ptr->flags.has_none_of({FF::MOVE, FF::CAN_FLY})
- || f_ptr->flags.has_none_of({FF::LOS, FF::TREE}))
- ? "in"
- : "on",
- f_ptr->name.c_str());
+ (f_ptr->flags.has_none_of({ FF::MOVE, FF::CAN_FLY }) || f_ptr->flags.has_none_of({ FF::LOS, FF::TREE })) ? "in" : "on", f_ptr->name.c_str());
#endif
return false;
#include "object/item-tester-hooker.h"
#include "object/item-use-flags.h"
#include "object/object-info.h"
+#include "player-info/class-info.h"
#include "player-info/self-info.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
#include "player/eldritch-horror.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-realm.h"
#include "player/player-skill.h"
auto item_tester = get_castable_spellbook_tester(caster_ptr);
- o_ptr = choose_object(
- caster_ptr, &item, q, s, (USE_INVEN | USE_FLOOR | (caster_ptr->pclass == CLASS_FORCETRAINER ? USE_FORCE : 0)), item_tester);
+ o_ptr = choose_object(caster_ptr, &item, q, s, (USE_INVEN | USE_FLOOR | (caster_ptr->pclass == CLASS_FORCETRAINER ? USE_FORCE : 0)), item_tester);
if (!o_ptr) {
if (item == INVEN_FORCE) /* the_force */
{
#include "cmd-io/cmd-menu-content-table.h"
-#include "player/player-class-types.h"
+#include "player-info/class-types.h"
#include "util/int-char-converter.h"
special_menu_content special_menu_info[MAX_SPECIAL_MENU_NUM] = {
{ "", 0, false },
},
- { { _("使う(m)", "Use(m)"), 'm', true },
- { _("調べる(b/P)", "See tips(b/P)"), 'b', true },
- { _("覚える(G)", "Study(G)"), 'G', true },
- { _("特殊能力を使う(U/O)", "Special abilities(U/O)"), 'U', true },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false } },
+ { { _("使う(m)", "Use(m)"), 'm', true }, { _("調べる(b/P)", "See tips(b/P)"), 'b', true }, { _("覚える(G)", "Study(G)"), 'G', true },
+ { _("特殊能力を使う(U/O)", "Special abilities(U/O)"), 'U', true }, { "", 0, false }, { "", 0, false }, { "", 0, false }, { "", 0, false },
+ { "", 0, false }, { "", 0, false } },
- { { _("休息する(R)", "Rest(R)"), 'R', true },
- { _("トラップ解除(D)", "Disarm a trap(D)"), 'D', true },
- { _("探す(s)", "Search(s)"), 's', true },
- { _("周りを調べる(l/x)", "Look(l/x)"), 'l', true },
- { _("ターゲット指定(*)", "Target(*)"), '*', true },
- { _("穴を掘る(T/^t)", "Dig(T/^t)"), 'T', true },
- { _("階段を上る(<)", "Go up stairs(<)"), '<', true },
- { _("階段を下りる(>)", "Go down stairs(>)"), '>', true },
- { _("ペットに命令する(p)", "Command pets(p)"), 'p', true },
- { _("探索モードのON/OFF(S/#)", "Search mode ON/OFF(S/#)"), 'S', true } },
+ { { _("休息する(R)", "Rest(R)"), 'R', true }, { _("トラップ解除(D)", "Disarm a trap(D)"), 'D', true }, { _("探す(s)", "Search(s)"), 's', true },
+ { _("周りを調べる(l/x)", "Look(l/x)"), 'l', true }, { _("ターゲット指定(*)", "Target(*)"), '*', true }, { _("穴を掘る(T/^t)", "Dig(T/^t)"), 'T', true },
+ { _("階段を上る(<)", "Go up stairs(<)"), '<', true }, { _("階段を下りる(>)", "Go down stairs(>)"), '>', true },
+ { _("ペットに命令する(p)", "Command pets(p)"), 'p', true }, { _("探索モードのON/OFF(S/#)", "Search mode ON/OFF(S/#)"), 'S', true } },
- { { _("読む(r)", "Read a scroll(r)"), 'r', true },
- { _("飲む(q)", "Drink a potion(q)"), 'q', true },
- { _("杖を使う(u/Z)", "Use a staff(u/Z)"), 'u', true },
- { _("魔法棒で狙う(a/z)", "Aim a wand(a/z)"), 'a', true },
- { _("ロッドを振る(z/a)", "Zap a rod(z/a)"), 'z', true },
- { _("始動する(A)", "Activate equipped item(A)"), 'A', true },
- { _("食べる(E)", "Eat(E)"), 'E', true },
- { _("飛び道具で撃つ(f/t)", "Fire missile weapon(f/t)"), 'f', true },
- { _("投げる(v)", "Throw an item(v)"), 'v', true },
- { "", 0, false } },
+ { { _("読む(r)", "Read a scroll(r)"), 'r', true }, { _("飲む(q)", "Drink a potion(q)"), 'q', true }, { _("杖を使う(u/Z)", "Use a staff(u/Z)"), 'u', true },
+ { _("魔法棒で狙う(a/z)", "Aim a wand(a/z)"), 'a', true }, { _("ロッドを振る(z/a)", "Zap a rod(z/a)"), 'z', true },
+ { _("始動する(A)", "Activate equipped item(A)"), 'A', true }, { _("食べる(E)", "Eat(E)"), 'E', true },
+ { _("飛び道具で撃つ(f/t)", "Fire missile weapon(f/t)"), 'f', true }, { _("投げる(v)", "Throw an item(v)"), 'v', true }, { "", 0, false } },
- { { _("拾う(g)", "Get items(g)"), 'g', true },
- { _("落とす(d)", "Drop an item(d)"), 'd', true },
- { _("壊す(k/^d)", "Destroy an item(k/^d)"), 'k', true },
- { _("銘を刻む({)", "Inscribe an item({)"), '{', true },
- { _("銘を消す(})", "Uninscribe an item(})"), '}', true },
- { _("調査(I)", "Uninscribe an item(})"), 'I', true },
- { _("アイテム一覧(i)", "Inventory list(i)"), 'i', true },
- { "", 0, false },
- { "", 0, false },
+ { { _("拾う(g)", "Get items(g)"), 'g', true }, { _("落とす(d)", "Drop an item(d)"), 'd', true }, { _("壊す(k/^d)", "Destroy an item(k/^d)"), 'k', true },
+ { _("銘を刻む({)", "Inscribe an item({)"), '{', true }, { _("銘を消す(})", "Uninscribe an item(})"), '}', true },
+ { _("調査(I)", "Uninscribe an item(})"), 'I', true }, { _("アイテム一覧(i)", "Inventory list(i)"), 'i', true }, { "", 0, false }, { "", 0, false },
{ "", 0, false } },
- { { _("装備する(w)", "Wear(w)"), 'w', true },
- { _("装備を外す(t/T)", "Take off(t/T)"), 't', true },
- { _("燃料を補給(F)", "Refuel(F)"), 'F', true },
- { _("装備一覧(e)", "Equipment list(e)"), 'e', true },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
+ { { _("装備する(w)", "Wear(w)"), 'w', true }, { _("装備を外す(t/T)", "Take off(t/T)"), 't', true }, { _("燃料を補給(F)", "Refuel(F)"), 'F', true },
+ { _("装備一覧(e)", "Equipment list(e)"), 'e', true }, { "", 0, false }, { "", 0, false }, { "", 0, false }, { "", 0, false }, { "", 0, false },
{ "", 0, false } },
- { { _("開ける(o)", "Open(o)"), 'o', true },
- { _("閉じる(c)", "Close(c)"), 'c', true },
- { _("体当たりする(B/f)", "Bash a door(B/f)"), 'B', true },
- { _("くさびを打つ(j/S)", "Jam a door(j/S)"), 'j', true },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false },
+ { { _("開ける(o)", "Open(o)"), 'o', true }, { _("閉じる(c)", "Close(c)"), 'c', true }, { _("体当たりする(B/f)", "Bash a door(B/f)"), 'B', true },
+ { _("くさびを打つ(j/S)", "Jam a door(j/S)"), 'j', true }, { "", 0, false }, { "", 0, false }, { "", 0, false }, { "", 0, false }, { "", 0, false },
{ "", 0, false } },
- { { _("ダンジョンの全体図(M)", "Full map(M)"), 'M', true },
- { _("位置を確認(L/W)", "Map(L/W)"), 'L', true },
- { _("階の雰囲気(^f)", "Level feeling(^f)"), KTRL('F'), true },
- { _("ステータス(C)", "Character status(C)"), 'C', true },
- { _("文字の説明(/)", "Identify symbol(/)"), '/', true },
- { _("メッセージ履歴(^p)", "Show prev messages(^p)"), KTRL('P'), true },
- { _("現在の時刻(^t/')", "Current time(^t/')"), KTRL('T'), true },
- { _("現在の知識(~)", "Various information(~)"), '~', true },
- { _("プレイ記録(|)", "Play record menu(|)"), '|', true },
- { "", 0, false } },
+ { { _("ダンジョンの全体図(M)", "Full map(M)"), 'M', true }, { _("位置を確認(L/W)", "Map(L/W)"), 'L', true },
+ { _("階の雰囲気(^f)", "Level feeling(^f)"), KTRL('F'), true }, { _("ステータス(C)", "Character status(C)"), 'C', true },
+ { _("文字の説明(/)", "Identify symbol(/)"), '/', true }, { _("メッセージ履歴(^p)", "Show prev messages(^p)"), KTRL('P'), true },
+ { _("現在の時刻(^t/')", "Current time(^t/')"), KTRL('T'), true }, { _("現在の知識(~)", "Various information(~)"), '~', true },
+ { _("プレイ記録(|)", "Play record menu(|)"), '|', true }, { "", 0, false } },
- { { _("オプション(=)", "Set options(=)"), '=', true },
- { _("マクロ(@)", "Interact with macros(@)"), '@', true },
- { _("画面表示(%)", "Interact w/ visuals(%)"), '%', true },
- { _("カラー(&)", "Interact with colors(&)"), '&', true },
- { _("設定変更コマンド(\")", "Enter a user pref(\")"), '\"', true },
- { _("自動拾いをロード($)", "Reload auto-pick pref($)"), '$', true },
- { _("システム(!)", "System(!)"), '!', true },
- { "", 0, false },
- { "", 0, false },
- { "", 0, false } },
+ { { _("オプション(=)", "Set options(=)"), '=', true }, { _("マクロ(@)", "Interact with macros(@)"), '@', true },
+ { _("画面表示(%)", "Interact w/ visuals(%)"), '%', true }, { _("カラー(&)", "Interact with colors(&)"), '&', true },
+ { _("設定変更コマンド(\")", "Enter a user pref(\")"), '\"', true }, { _("自動拾いをロード($)", "Reload auto-pick pref($)"), '$', true },
+ { _("システム(!)", "System(!)"), '!', true }, { "", 0, false }, { "", 0, false }, { "", 0, false } },
- { { _("セーブ&中断(^x)", "Save and quit(^x)"), KTRL('X'), true },
- { _("セーブ(^s)", "Save(^s)"), KTRL('S'), true },
- { _("ヘルプ(?)", "Help(out-of-date)(?)"), '?', true },
- { _("再描画(^r)", "Redraw(^r)"), KTRL('R'), true },
- { _("メモ(:)", "Take note(:)"), ':', true },
- { _("記念撮影())", "Dump screen dump(()"), ')', true },
- { _("記念撮影の表示(()", "Load screen dump())"), '(', true },
- { _("バージョン情報(V)", "Version info(V)"), 'V', true },
- { _("引退する(Q)", "Quit(Q)"), 'Q', true },
- { "", 0, false } },
+ { { _("セーブ&中断(^x)", "Save and quit(^x)"), KTRL('X'), true }, { _("セーブ(^s)", "Save(^s)"), KTRL('S'), true },
+ { _("ヘルプ(?)", "Help(out-of-date)(?)"), '?', true }, { _("再描画(^r)", "Redraw(^r)"), KTRL('R'), true }, { _("メモ(:)", "Take note(:)"), ':', true },
+ { _("記念撮影())", "Dump screen dump(()"), ')', true }, { _("記念撮影の表示(()", "Load screen dump())"), '(', true },
+ { _("バージョン情報(V)", "Version info(V)"), 'V', true }, { _("引退する(Q)", "Quit(Q)"), 'Q', true }, { "", 0, false } },
};
#include "object/object-kind.h"
#include "perception/object-perception.h"
#include "player-base/player-race.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
#include "player/digestion-processor.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-status-flags.h"
#include "player/special-defense-types.h"
#include "object/item-use-flags.h"
#include "perception/identification.h"
#include "perception/object-perception.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
#include "player-info/self-info.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/player-personality-types.h"
#include "player/player-status.h"
#include "player/special-defense-types.h"
#include "main/sound-of-music.h"
#include "object/object-kind-hook.h"
#include "object/object-kind.h"
+#include "player-info/class-info.h"
#include "player-status/player-energy.h"
-#include "player/player-class.h"
#include "player/player-status-table.h"
#include "spell/spell-info.h"
#include "sv-definition/sv-other-types.h"
#include "object/object-info.h"
#include "object/object-kind.h"
#include "perception/object-perception.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
#include "player-info/race-types.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/player-status-flags.h"
#include "player/special-defense-types.h"
#include "spell-kind/earthquake.h"
#include "object/object-info.h"
#include "object/object-kind.h"
#include "perception/object-perception.h"
+#include "player-info/class-info.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/special-defense-types.h"
#include "spell-kind/spells-beam.h"
#include "spell-kind/spells-detection.h"
#include "object/object-info.h"
#include "object/object-kind.h"
#include "perception/object-perception.h"
+#include "player-info/class-info.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/special-defense-types.h"
#include "spell-kind/spells-beam.h"
#include "spell-kind/spells-charm.h"
#include "object/object-info.h"
#include "object/object-kind.h"
#include "object/object-mark-types.h"
+#include "player-info/class-info.h"
#include "player-status/player-energy.h"
-#include "player/player-class.h"
#include "player/player-personality-types.h"
#include "player/player-skill.h"
#include "player/player-status-table.h"
#include "monster-race/monster-race.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-util.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "player/player-personality-types.h"
#include "player/player-skill.h"
#include "player/player-status.h"
#include "io/report.h"
#include "io/signal-handlers.h"
#include "io/uid-checker.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-personality.h"
#include "player/player-status.h"
#include "player/race-info-table.h"
#include "object/object-info.h"
#include "object/object-kind.h"
#include "perception/object-perception.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-status.h"
#include "sv-definition/sv-food-types.h"
#include "sv-definition/sv-lite-types.h"
#else
#include "locale/english.h"
#include "monster-race/race-flags1.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#endif
static void describe_monster_ball(flavor_type *flavor_ptr)
#include "monster/monster-update.h"
#include "object/item-tester-hooker.h"
#include "object/object-mark-types.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-status-flags.h"
#include "player/player-status.h"
#include "room/rooms-builder.h"
/* Check for "complex" illumination */
auto *floor_ptr = creature_ptr->current_floor_ptr;
- if ((feat_supports_los(floor_ptr->grid_array[yy][xx].get_feat_mimic())
- && (floor_ptr->grid_array[yy][xx].info & CAVE_GLOW))
- || (feat_supports_los(floor_ptr->grid_array[y][xx].get_feat_mimic())
- && (floor_ptr->grid_array[y][xx].info & CAVE_GLOW))
- || (feat_supports_los(floor_ptr->grid_array[yy][x].get_feat_mimic())
- && (floor_ptr->grid_array[yy][x].info & CAVE_GLOW))) {
+ if ((feat_supports_los(floor_ptr->grid_array[yy][xx].get_feat_mimic()) && (floor_ptr->grid_array[yy][xx].info & CAVE_GLOW))
+ || (feat_supports_los(floor_ptr->grid_array[y][xx].get_feat_mimic()) && (floor_ptr->grid_array[y][xx].info & CAVE_GLOW))
+ || (feat_supports_los(floor_ptr->grid_array[yy][x].get_feat_mimic()) && (floor_ptr->grid_array[yy][x].info & CAVE_GLOW))) {
return true;
} else
return false;
if (!player_can_enter(player_ptr, g_ptr->feat, 0))
return false;
- if (f_ptr->flags.has_all_of({FF::WATER, FF::DEEP})) {
+ if (f_ptr->flags.has_all_of({ FF::WATER, FF::DEEP })) {
if (!player_ptr->levitation && !player_ptr->can_swim)
return false;
}
#include "monster-floor/monster-summon.h"
#include "monster-floor/place-monster-types.h"
#include "monster/monster-util.h"
+#include "player-info/class-info.h"
#include "player/eldritch-horror.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-personality-types.h"
#include "player/player-status-flags.h"
#include "game-option/runtime-arguments.h"
#include "io/files-util.h"
#include "main/init-error-messages-table.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "realm/realm-names-table.h"
#include "system/floor-type-definition.h"
#include "system/player-type-definition.h"
#include "info-reader/parse-error-types.h"
#include "main/angband-headers.h"
#include "player-ability/player-ability-types.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "util/string-processor.h"
namespace {
#include "game-option/input-options.h"
#include "game-option/runtime-arguments.h"
#include "io-dump/random-art-info-dumper.h"
-#include "io/record-play-movie.h"
#include "io/command-repeater.h"
#include "io/files-util.h"
#include "io/input-key-requester.h" //!< @todo 相互依存している、後で何とかする.
+#include "io/record-play-movie.h"
#include "io/write-diary.h"
#include "knowledge/knowledge-autopick.h"
#include "knowledge/knowledge-quests.h"
#include "mind/mind-magic-eater.h"
#include "mind/mind-sniper.h"
#include "mind/snipe-types.h"
+#include "player-info/class-info.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
#include "player/digestion-processor.h"
-#include "player/player-class.h"
#include "player/player-status.h"
#include "player/special-defense-types.h"
#include "status/action-setter.h"
-#include "store/home.h"
#include "store/cmd-store.h"
+#include "store/home.h"
#include "store/store-util.h"
#include "system/floor-type-definition.h"
#include "system/player-type-definition.h"
msg_print(_("呪文を唱えられない!", "You cannot cast spells!"));
break;
}
-
+
if (floor_ptr->dun_level && d_info[creature_ptr->dungeon_idx].flags.has(DF::NO_MAGIC) && (creature_ptr->pclass != CLASS_BERSERKER)
&& (creature_ptr->pclass != CLASS_SMITH)) {
msg_print(_("ダンジョンが魔法を吸収した!", "The dungeon absorbs all attempted magic!"));
msg_print(nullptr);
break;
}
-
+
if (creature_ptr->anti_magic && (creature_ptr->pclass != CLASS_BERSERKER) && (creature_ptr->pclass != CLASS_SMITH)) {
concptr which_power = _("魔法", "magic");
switch (creature_ptr->pclass) {
PlayerEnergy(creature_ptr).reset_player_turn();
break;
}
-
+
if (is_shero(creature_ptr) && (creature_ptr->pclass != CLASS_BERSERKER)) {
msg_format(_("狂戦士化していて頭が回らない!", "You cannot think directly!"));
PlayerEnergy(creature_ptr).reset_player_turn();
#include "io/pref-file-expressor.h"
#include "game-option/runtime-arguments.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "realm/realm-names-table.h"
#include "system/player-type-definition.h"
#include "system/system-variables.h"
#include "io/files-util.h"
#include "io/interpret-pref-file.h"
#include "io/pref-file-expressor.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "realm/realm-names-table.h"
#include "system/player-type-definition.h"
#include "util/angband-files.h"
#include "io/inet.h"
#include "io/input-key-acceptor.h"
#include "mind/mind-elementalist.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-status.h"
#include "realm/realm-names-table.h"
#include "game-option/text-display-options.h"
#include "io-dump/dump-util.h"
#include "object/object-kind.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-skill.h"
#include "player/player-status.h"
#include "realm/realm-names-table.h"
if (show_actual_value)
fprintf(fff, "----/---- ");
fprintf(fff, "[--]");
- }
- else {
+ } else {
if (show_actual_value)
fprintf(fff, "%4d/%4d ", MIN(spell_exp, SPELL_EXP_MASTER), SPELL_EXP_MASTER);
if (exp_level >= EXP_LEVEL_MASTER)
#include "info-reader/fixed-map-parser.h"
#include "io-dump/dump-util.h"
#include "player-info/alignment.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-status-table.h"
#include "player/race-info-table.h"
#include "store/store-util.h"
#include "market/bounty.h"
#include "monster-race/monster-race.h"
#include "pet/pet-util.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
#include "player/attack-defense-types.h"
#include "player/patron.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-skill.h"
#include "realm/realm-types.h"
#include "load/quest-loader.h"
#include "load/store-loader.h"
#include "load/world-loader.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-sex.h"
#include "player/race-info-table.h"
#include "monster-race/monster-race.h"
#include "object-enchant/object-ego.h"
#include "object/object-kind.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-skill.h"
#include "room/rooms-vault.h"
#include "system/angband-version.h"
* @param player_ptr プレーヤーへの参照ポインタ
* @return エラーコード
*/
-errr init_misc(player_type *player_ptr) { return parse_fixed_map(player_ptr, "misc.txt", 0, 0, 0, 0); }
+errr init_misc(player_type *player_ptr)
+{
+ return parse_fixed_map(player_ptr, "misc.txt", 0, 0, 0, 0);
+}
/*!
* @brief ヘッダ構造体の更新
#include "monster/monster-status-setter.h"
#include "monster/monster-status.h"
#include "pet/pet-fall-off.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "player/player-personality-types.h"
#include "system/floor-type-definition.h"
#include "system/monster-race-definition.h"
#include "mind/mind-force-trainer.h"
#include "mind/mind-info.h"
#include "mind/mind-types.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
-#include "player/player-class.h"
#include "player/player-status-table.h"
#include "system/player-type-definition.h"
#include "term/screen-processor.h"
prt("", y, x);
put_str(_("名前", "Name"), y, x + 5);
- put_str(
- format(_("Lv %s 失率 効果", "Lv %s Fail Info"), ((this->use_mind == mind_kind_type::BERSERKER) || (this->use_mind == mind_kind_type::NINJUTSU)) ? "HP" : "MP"), y,
- x + 35);
+ put_str(format(_("Lv %s 失率 効果", "Lv %s Fail Info"),
+ ((this->use_mind == mind_kind_type::BERSERKER) || (this->use_mind == mind_kind_type::NINJUTSU)) ? "HP" : "MP"),
+ y, x + 35);
display_each_mind_chance();
prt("", y + this->index + 1, x);
return true;
#include "mspell/mspell-selector.h"
#include "mspell/mspell-util.h"
#include "object-enchant/object-curse.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "spell-kind/spells-world.h"
#include "spell-realm/spells-hex.h"
#include "spell/range-calc.h"
#include "object-enchant/tr-types.h"
#include "object/object-flags.h"
#include "perception/object-perception.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-realm.h"
#include "realm/realm-names-table.h"
#include "system/object-type-definition.h"
else if (!is_magic(tval2realm(o_ptr->tval)))
return false;
- return (get_realm1_book(player_ptr) == o_ptr->tval) || (get_realm2_book(player_ptr) == o_ptr->tval) || (choices & (0x0001U << (tval2realm(o_ptr->tval) - 1)));
+ return (get_realm1_book(player_ptr) == o_ptr->tval) || (get_realm2_book(player_ptr) == o_ptr->tval)
+ || (choices & (0x0001U << (tval2realm(o_ptr->tval) - 1)));
}
/*!
#include "object-enchant/tr-types.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
-#include "player/player-class.h"
#include "player/player-status-flags.h"
#include "player/player-status-resist.h"
#include "player/special-defense-types.h"
#include "monster-race/race-flags7.h"
#include "monster/monster-info.h"
#include "monster/monster-status.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "system/floor-type-definition.h"
#include "system/grid-type-definition.h"
#include "system/monster-race-definition.h"
#include "player-ability/player-charisma.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "player/special-defense-types.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "player/special-defense-types.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "player/special-defense-types.h"
#include "player-ability/player-intelligence.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "player/special-defense-types.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
-#include "player/player-class.h"
+#include "realm/realm-types.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "player/special-defense-types.h"
#include "player-ability/player-wisdom.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "player/special-defense-types.h"
* @author deskull
*/
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "core/player-redraw-types.h"
#include "inventory/inventory-slot-types.h"
#include "player-info/race-info.h"
const player_magic *mp_ptr;
std::vector<player_magic> m_info;
-const player_class *cp_ptr;
+const player_class_info *cp_ptr;
/*!
* @brief 職業情報 /
* HD, Exp, pet_upkeep_div
* </pre>
*/
-const player_class class_info[MAX_CLASS] = {
+const player_class_info class_info[MAX_CLASS] = {
{
#ifdef JP
"戦士",
--- /dev/null
+#pragma once
+
+/* 人畜無害なenumヘッダを先に読み込む */
+#include "system/angband.h"
+
+#include "object/tval-types.h"
+#include "player-info/class-types.h"
+#include "realm/realm-types.h"
+#include "spell/technic-info-table.h"
+
+#include <string>
+#include <vector>
+
+/** m_info.txtでMPの無い職業に設定される */
+#define SPELL_FIRST_NO_SPELL 99
+
+/*
+ * Information about the player's "magic"
+ *
+ * Note that a player with a "spell_book" of "zero" is illiterate.
+ */
+
+struct player_magic {
+ tval_type spell_book{}; /* Tval of spell books (if any) */
+ BIT_FLAGS8 spell_xtra{}; /* Something for later */
+
+ int spell_stat{}; /* Stat for spells (if any) */
+ int spell_type{}; /* Spell type (mage/priest) */
+
+ int spell_first{}; /* Level of first spell */
+ int spell_weight{}; /* Weight that hurts spells */
+
+ magic_type info[MAX_MAGIC][32]{}; /* The available spells */
+};
+
+extern std::vector<player_magic> m_info;
+extern const player_magic *mp_ptr;
+
+struct player_class_info {
+ concptr title; /* Type of class */
+
+#ifdef JP
+ concptr E_title; /* 英語職業 */
+#endif
+ int16_t c_adj[6]; /* Class stat modifier */
+
+ int16_t c_dis; /* class disarming */
+ int16_t c_dev; /* class magic devices */
+ int16_t c_sav; /* class saving throws */
+ int16_t c_stl; /* class stealth */
+ int16_t c_srh; /* class searching ability */
+ int16_t c_fos; /* class searching frequency */
+ int16_t c_thn; /* class to hit (normal) */
+ int16_t c_thb; /* class to hit (bows) */
+
+ int16_t x_dis; /* extra disarming */
+ int16_t x_dev; /* extra magic devices */
+ int16_t x_sav; /* extra saving throws */
+ int16_t x_stl; /* extra stealth */
+ int16_t x_srh; /* extra searching ability */
+ int16_t x_fos; /* extra searching frequency */
+ int16_t x_thn; /* extra to hit (normal) */
+ int16_t x_thb; /* extra to hit (bows) */
+
+ int16_t c_mhp; /* Class hit-dice adjustment */
+ int16_t c_exp; /* Class experience factor */
+
+ byte pet_upkeep_div; /* Pet upkeep divider */
+
+ int num;
+ int wgt;
+ int mul;
+};
+
+extern const player_class_info *cp_ptr;
+extern const player_class_info class_info[MAX_CLASS];
+
+extern const concptr player_title[MAX_CLASS][10];
#include "object-enchant/tr-flags.h"
#include "object-enchant/tr-types.h"
#include "player-ability/player-ability-types.h"
+#include "player-info/class-types.h"
#include "player-info/race-types.h"
-#include "player/player-class-types.h"
#include "system/angband.h"
/*
#include "core/window-redrawer.h"
#include "mutation/mutation-flag-types.h"
#include "object/object-flags.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-status.h"
#include "player/race-info-table.h"
*/
int16_t PlayerBasicStatistics::class_value()
{
- const player_class *c_ptr = &class_info[this->owner_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[this->owner_ptr->pclass];
return c_ptr->c_adj[this->ability_type];
}
#include "player-status/player-stealth.h"
#include "mind/mind-ninja.h"
#include "mutation/mutation-flag-types.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-info/mimic-info-table.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-skill.h"
#include "player/player-status-flags.h"
*/
int16_t PlayerStealth::class_base_value()
{
- const player_class *c_ptr = &class_info[this->owner_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[this->owner_ptr->pclass];
return c_ptr->c_stl + (c_ptr->x_stl * this->owner_ptr->lev / 10);
}
#include "mutation/mutation-investor-remover.h"
#include "object-enchant/object-curse.h"
#include "object/object-kind-hook.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "spell-kind/spells-floor.h"
#include "spell-kind/spells-genocide.h"
+++ /dev/null
-#pragma once
-
-/* 人畜無害なenumヘッダを先に読み込む */
-#include "system/angband.h"
-
-#include "object/tval-types.h"
-#include "player/player-class-types.h"
-#include "realm/realm-types.h"
-#include "spell/technic-info-table.h"
-
-#include <string>
-#include <vector>
-
-/** m_info.txtでMPの無い職業に設定される */
-#define SPELL_FIRST_NO_SPELL 99
-
-/*
- * Information about the player's "magic"
- *
- * Note that a player with a "spell_book" of "zero" is illiterate.
- */
-
-typedef struct player_magic {
- tval_type spell_book{}; /* Tval of spell books (if any) */
- BIT_FLAGS8 spell_xtra{}; /* Something for later */
-
- int spell_stat{}; /* Stat for spells (if any) */
- int spell_type{}; /* Spell type (mage/priest) */
-
- int spell_first{}; /* Level of first spell */
- int spell_weight{}; /* Weight that hurts spells */
-
- magic_type info[MAX_MAGIC][32]{}; /* The available spells */
-} player_magic;
-
-extern std::vector<player_magic> m_info;
-extern const player_magic *mp_ptr;
-
-/*
- * Player class info
- */
-
-typedef struct player_class player_class;
-
-struct player_class
-{
- concptr title; /* Type of class */
-
-#ifdef JP
- concptr E_title; /* 英語職業 */
-#endif
- int16_t c_adj[6]; /* Class stat modifier */
-
- int16_t c_dis; /* class disarming */
- int16_t c_dev; /* class magic devices */
- int16_t c_sav; /* class saving throws */
- int16_t c_stl; /* class stealth */
- int16_t c_srh; /* class searching ability */
- int16_t c_fos; /* class searching frequency */
- int16_t c_thn; /* class to hit (normal) */
- int16_t c_thb; /* class to hit (bows) */
-
- int16_t x_dis; /* extra disarming */
- int16_t x_dev; /* extra magic devices */
- int16_t x_sav; /* extra saving throws */
- int16_t x_stl; /* extra stealth */
- int16_t x_srh; /* extra searching ability */
- int16_t x_fos; /* extra searching frequency */
- int16_t x_thn; /* extra to hit (normal) */
- int16_t x_thb; /* extra to hit (bows) */
-
- int16_t c_mhp; /* Class hit-dice adjustment */
- int16_t c_exp; /* Class experience factor */
-
- byte pet_upkeep_div; /* Pet upkeep divider */
-
- int num;
- int wgt;
- int mul;
-};
-
-extern const player_class *cp_ptr;
-extern const player_class class_info[MAX_CLASS];
-
-extern const concptr player_title[MAX_CLASS][10];
#include "object/item-tester-hooker.h"
#include "object/object-broken.h"
#include "object/object-flags.h"
+#include "player-info/class-info.h"
#include "player-info/race-types.h"
-#include "player/player-class.h"
#include "player/player-personality-types.h"
#include "player/player-status-flags.h"
#include "player/player-status-resist.h"
#include "object-hook/hook-weapon.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-info/mimic-info-table.h"
#include "player-status/player-basic-statistics.h"
#include "player-status/player-stealth.h"
#include "player/attack-defense-types.h"
#include "player/digestion-processor.h"
-#include "player/player-class.h"
#include "player/player-skill.h"
#include "player/player-status.h"
#include "player/race-info-table.h"
#include "object-hook/hook-weapon.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "player/player-skill.h"
#include "player/player-status-flags.h"
#include "player/player-status.h"
#include "pet/pet-util.h"
#include "player-base/player-race.h"
#include "player-info/alignment.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-info/mimic-info-table.h"
#include "player-status/player-basic-statistics.h"
#include "player/attack-defense-types.h"
#include "player/digestion-processor.h"
#include "player/patron.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-move.h"
#include "player/player-personality-types.h"
tmp_rp_ptr = &mimic_info[creature_ptr->mimic_form];
else
tmp_rp_ptr = &race_info[enum2i(creature_ptr->prace)];
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
pow = tmp_rp_ptr->r_dis + c_ptr->c_dis + a_ptr->a_dis;
tmp_rp_ptr = &mimic_info[creature_ptr->mimic_form];
else
tmp_rp_ptr = &race_info[enum2i(creature_ptr->prace)];
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
pow = tmp_rp_ptr->r_dev + c_ptr->c_dev + a_ptr->a_dev;
tmp_rp_ptr = &mimic_info[creature_ptr->mimic_form];
else
tmp_rp_ptr = &race_info[enum2i(creature_ptr->prace)];
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
pow = tmp_rp_ptr->r_sav + c_ptr->c_sav + a_ptr->a_sav;
tmp_rp_ptr = &mimic_info[creature_ptr->mimic_form];
else
tmp_rp_ptr = &race_info[enum2i(creature_ptr->prace)];
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
pow = tmp_rp_ptr->r_srh + c_ptr->c_srh + a_ptr->a_srh;
tmp_rp_ptr = &mimic_info[creature_ptr->mimic_form];
else
tmp_rp_ptr = &race_info[enum2i(creature_ptr->prace)];
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
pow = tmp_rp_ptr->r_fos + c_ptr->c_fos + a_ptr->a_fos;
{
ACTION_SKILL_POWER pow;
const player_race_info *tmp_rp_ptr;
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
if (creature_ptr->mimic_form)
{
ACTION_SKILL_POWER pow;
const player_race_info *tmp_rp_ptr;
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
if (creature_ptr->mimic_form)
{
ACTION_SKILL_POWER pow;
const player_race_info *tmp_rp_ptr;
- const player_class *c_ptr = &class_info[creature_ptr->pclass];
+ const player_class_info *c_ptr = &class_info[creature_ptr->pclass];
const player_personality *a_ptr = &personality_info[creature_ptr->pseikaku];
if (creature_ptr->mimic_form)
#include "object/item-tester-hooker.h"
#include "object/item-use-flags.h"
#include "perception/object-perception.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "store/store-util.h"
#include "store/store.h"
#include "system/floor-type-definition.h"
#include "mind/stances-table.h"
#include "mutation/mutation-flag-types.h"
#include "object/item-tester-hooker.h"
+#include "player-info/class-info.h"
#include "player-info/equipment-info.h"
#include "player-info/race-info.h"
#include "player-info/race-types.h"
#include "player-status/player-energy.h"
#include "player-status/player-hand-types.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/player-damage.h"
#include "player/player-status.h"
#include "racial/racial-android.h"
#include "hpmp/hp-mp-processor.h"
#include "monster-floor/monster-summon.h"
#include "monster-floor/place-monster-types.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "spell-kind/spells-beam.h"
#include "spell-kind/spells-curse-removal.h"
#include "spell-kind/spells-detection.h"
#include "effect/effect-characteristics.h"
#include "effect/effect-processor.h"
#include "hpmp/hp-mp-processor.h"
+#include "player-info/class-info.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/player-status.h"
#include "realm/realm-song-numbers.h"
#include "spell-kind/earthquake.h"
#include "game-option/input-options.h"
#include "monster-floor/place-monster-types.h"
#include "mutation/mutation-calculator.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "spell-kind/spells-detection.h"
#include "spell-kind/spells-fetcher.h"
#include "spell-kind/spells-launcher.h"
#include "monster-floor/place-monster-types.h"
#include "object-enchant/item-apply-magic.h"
#include "perception/object-perception.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-damage.h"
#include "player/player-status-flags.h"
#include "spell-kind/spells-equipment.h"
#include "spell-kind/spells-launcher.h"
#include "spell-kind/spells-sight.h"
+#include "spell/spell-types.h"
#include "spell/spells-summon.h"
#include "spell/summon-types.h"
-#include "spell/spell-types.h"
#include "status/bad-status-setter.h"
#include "status/base-status.h"
#include "status/element-resistance.h"
#define SV_CHEST_MIN_LARGE 4
/*!
-* @brief 箱からアイテムを引き出す /
-* Allocates objects upon opening a chest -BEN-
-* @param scatter TRUEならばトラップによるアイテムの拡散処理
-* @param y 箱の存在するマスのY座標
-* @param x 箱の存在するマスのX座標
-* @param o_idx 箱のオブジェクトID
-* @return なし
-* @details
-* <pre>
-* Disperse treasures from the given chest, centered at (x,y).
-*
-* Small chests often contain "gold", while Large chests always contain
-* items. Wooden chests contain 2 items, Iron chests contain 4 items,
-* and Steel chests contain 6 items. The "value" of the items in a
-* chest is based on the "power" of the chest, which is in turn based
-* on the level on which the chest is generated.
-* </pre>
-*/
+ * @brief 箱からアイテムを引き出す /
+ * Allocates objects upon opening a chest -BEN-
+ * @param scatter TRUEならばトラップによるアイテムの拡散処理
+ * @param y 箱の存在するマスのY座標
+ * @param x 箱の存在するマスのX座標
+ * @param o_idx 箱のオブジェクトID
+ * @return なし
+ * @details
+ * <pre>
+ * Disperse treasures from the given chest, centered at (x,y).
+ *
+ * Small chests often contain "gold", while Large chests always contain
+ * items. Wooden chests contain 2 items, Iron chests contain 4 items,
+ * and Steel chests contain 6 items. The "value" of the items in a
+ * chest is based on the "power" of the chest, which is in turn based
+ * on the level on which the chest is generated.
+ * </pre>
+ */
void chest_death(player_type *owner_ptr, bool scatter, POSITION y, POSITION x, OBJECT_IDX o_idx)
{
- int number;
+ int number;
- bool small;
- BIT_FLAGS mode = AM_GOOD | AM_FORBID_CHEST;
+ bool small;
+ BIT_FLAGS mode = AM_GOOD | AM_FORBID_CHEST;
- object_type forge;
- object_type *q_ptr;
+ object_type forge;
+ object_type *q_ptr;
- floor_type *floor_ptr = owner_ptr->current_floor_ptr;
- object_type *o_ptr = &floor_ptr->o_list[o_idx];
+ floor_type *floor_ptr = owner_ptr->current_floor_ptr;
+ object_type *o_ptr = &floor_ptr->o_list[o_idx];
- /* Small chests often hold "gold" */
- small = (o_ptr->sval < SV_CHEST_MIN_LARGE);
+ /* Small chests often hold "gold" */
+ small = (o_ptr->sval < SV_CHEST_MIN_LARGE);
- /* Determine how much to drop (see above) */
- number = (o_ptr->sval % SV_CHEST_MIN_LARGE) * 2;
+ /* Determine how much to drop (see above) */
+ number = (o_ptr->sval % SV_CHEST_MIN_LARGE) * 2;
- if (o_ptr->sval == SV_CHEST_KANDUME)
- {
- number = 5;
- small = false;
- mode |= AM_GREAT;
- floor_ptr->object_level = o_ptr->xtra3;
- }
- else
- {
- /* Determine the "value" of the items */
- floor_ptr->object_level = ABS(o_ptr->pval) + 10;
- }
+ if (o_ptr->sval == SV_CHEST_KANDUME) {
+ number = 5;
+ small = false;
+ mode |= AM_GREAT;
+ floor_ptr->object_level = o_ptr->xtra3;
+ } else {
+ /* Determine the "value" of the items */
+ floor_ptr->object_level = ABS(o_ptr->pval) + 10;
+ }
- /* Zero pval means empty chest */
- if (!o_ptr->pval) number = 0;
+ /* Zero pval means empty chest */
+ if (!o_ptr->pval)
+ number = 0;
-
- /* Drop some objects (non-chests) */
- for (; number > 0; --number)
- {
- q_ptr = &forge;
+ /* Drop some objects (non-chests) */
+ for (; number > 0; --number) {
+ q_ptr = &forge;
q_ptr->wipe();
- /* Small chests often drop gold */
- if (small && (randint0(100) < 25))
- {
- /* Make some gold */
- if (!make_gold(owner_ptr, q_ptr)) continue;
- }
-
- /* Otherwise drop an item */
- else
- {
- /* Make a good object */
- if (!make_object(owner_ptr, q_ptr, mode)) continue;
- }
-
- /* If chest scatters its contents, pick any floor square. */
- if (scatter)
- {
- int i;
- for (i = 0; i < 200; i++)
- {
- /* Pick a totally random spot. */
- y = randint0(MAX_HGT);
- x = randint0(MAX_WID);
-
- /* Must be an empty floor. */
- if (!is_cave_empty_bold(owner_ptr, y, x)) continue;
-
- /* Place the object there. */
- (void)drop_near(owner_ptr, q_ptr, -1, y, x);
-
- /* Done. */
- break;
- }
- }
- /* Normally, drop object near the chest. */
- else (void)drop_near(owner_ptr, q_ptr, -1, y, x);
- }
-
- /* Reset the object level */
- floor_ptr->object_level = floor_ptr->base_level;
-
- /* Empty */
- o_ptr->pval = 0;
-
- /* Known */
- object_known(o_ptr);
+ /* Small chests often drop gold */
+ if (small && (randint0(100) < 25)) {
+ /* Make some gold */
+ if (!make_gold(owner_ptr, q_ptr))
+ continue;
+ }
+
+ /* Otherwise drop an item */
+ else {
+ /* Make a good object */
+ if (!make_object(owner_ptr, q_ptr, mode))
+ continue;
+ }
+
+ /* If chest scatters its contents, pick any floor square. */
+ if (scatter) {
+ int i;
+ for (i = 0; i < 200; i++) {
+ /* Pick a totally random spot. */
+ y = randint0(MAX_HGT);
+ x = randint0(MAX_WID);
+
+ /* Must be an empty floor. */
+ if (!is_cave_empty_bold(owner_ptr, y, x))
+ continue;
+
+ /* Place the object there. */
+ (void)drop_near(owner_ptr, q_ptr, -1, y, x);
+
+ /* Done. */
+ break;
+ }
+ }
+ /* Normally, drop object near the chest. */
+ else
+ (void)drop_near(owner_ptr, q_ptr, -1, y, x);
+ }
+
+ /* Reset the object level */
+ floor_ptr->object_level = floor_ptr->base_level;
+
+ /* Empty */
+ o_ptr->pval = 0;
+
+ /* Known */
+ object_known(o_ptr);
}
-
/*!
-* @brief 箱のトラップ処理 /
-* Chests have traps too.
-* @param y 箱の存在するマスのY座標
-* @param x 箱の存在するマスのX座標
-* @param o_idx 箱のオブジェクトID
-* @return なし
-* @details
-* <pre>
-* Exploding chest destroys contents (and traps).
-* Note that the chest itself is never destroyed.
-* </pre>
-*/
+ * @brief 箱のトラップ処理 /
+ * Chests have traps too.
+ * @param y 箱の存在するマスのY座標
+ * @param x 箱の存在するマスのX座標
+ * @param o_idx 箱のオブジェクトID
+ * @return なし
+ * @details
+ * <pre>
+ * Exploding chest destroys contents (and traps).
+ * Note that the chest itself is never destroyed.
+ * </pre>
+ */
void chest_trap(player_type *target_ptr, POSITION y, POSITION x, OBJECT_IDX o_idx)
{
- int i, trap;
-
- object_type *o_ptr = &target_ptr->current_floor_ptr->o_list[o_idx];
-
- int mon_level = o_ptr->xtra3;
-
- /* Ignore disarmed chests */
- if (o_ptr->pval <= 0) return;
-
- /* Obtain the traps */
- trap = chest_traps[o_ptr->pval];
-
- /* Lose strength */
- if (trap & (CHEST_LOSE_STR))
- {
- msg_print(_("仕掛けられていた小さな針に刺されてしまった!", "A small needle has pricked you!"));
- take_hit(target_ptr, DAMAGE_NOESCAPE, damroll(1, 4), _("毒針", "a poison needle"));
- (void)do_dec_stat(target_ptr, A_STR);
- }
-
- /* Lose constitution */
- if (trap & (CHEST_LOSE_CON))
- {
- msg_print(_("仕掛けられていた小さな針に刺されてしまった!", "A small needle has pricked you!"));
- take_hit(target_ptr, DAMAGE_NOESCAPE, damroll(1, 4), _("毒針", "a poison needle"));
- (void)do_dec_stat(target_ptr, A_CON);
- }
-
- /* Poison */
- if (trap & (CHEST_POISON))
- {
- msg_print(_("突如吹き出した緑色のガスに包み込まれた!", "A puff of green gas surrounds you!"));
- if (!(has_resist_pois(target_ptr) || is_oppose_pois(target_ptr)))
- {
- (void)set_poisoned(target_ptr, target_ptr->poisoned + 10 + randint1(20));
- }
- }
-
- /* Paralyze */
- if (trap & (CHEST_PARALYZE))
- {
- msg_print(_("突如吹き出した黄色いガスに包み込まれた!", "A puff of yellow gas surrounds you!"));
- if (!target_ptr->free_act)
- {
- (void)set_paralyzed(target_ptr, target_ptr->paralyzed + 10 + randint1(20));
- }
- }
-
- /* Summon monsters */
- if (trap & (CHEST_SUMMON))
- {
- int num = 2 + randint1(3);
- msg_print(_("突如吹き出した煙に包み込まれた!", "You are enveloped in a cloud of smoke!"));
- for (i = 0; i < num; i++)
- {
- if (randint1(100)<target_ptr->current_floor_ptr->dun_level)
- activate_hi_summon(target_ptr, target_ptr->y, target_ptr->x, false);
- else
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_NONE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
-
- /* Elemental summon. */
- if (trap & (CHEST_E_SUMMON))
- {
- msg_print(_("宝を守るためにエレメンタルが現れた!", "Elemental beings appear to protect their treasures!"));
- for (i = 0; i < randint1(3) + 5; i++)
- {
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
-
- /* Force clouds, then summon birds. */
- if (trap & (CHEST_BIRD_STORM))
- {
- msg_print(_("鳥の群れがあなたを取り巻いた!", "A storm of birds swirls around you!"));
-
- for (i = 0; i < randint1(3) + 3; i++)
- (void)fire_meteor(target_ptr, -1, GF_FORCE, y, x, o_ptr->pval / 5, 7);
-
- for (i = 0; i < randint1(5) + o_ptr->pval / 5; i++)
- {
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_BIRD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
-
- /* Various colorful summonings. */
- if (trap & (CHEST_H_SUMMON))
- {
- /* Summon demons. */
- if (one_in_(4))
- {
- msg_print(_("炎と硫黄の雲の中に悪魔が姿を現した!", "Demons materialize in clouds of fire and brimstone!"));
- for (i = 0; i < randint1(3) + 2; i++)
- {
- (void)fire_meteor(target_ptr, -1, GF_FIRE, y, x, 10, 5);
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
-
- /* Summon dragons. */
- else if (one_in_(3))
- {
- msg_print(_("暗闇にドラゴンの影がぼんやりと現れた!", "Draconic forms loom out of the darkness!"));
- for (i = 0; i < randint1(3) + 2; i++)
- {
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
-
- /* Summon hybrids. */
- else if (one_in_(2))
- {
- msg_print(_("奇妙な姿の怪物が襲って来た!", "Creatures strange and twisted assault you!"));
- for (i = 0; i < randint1(5) + 3; i++)
- {
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_HYBRID, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
-
- /* Summon vortices (scattered) */
- else
- {
- msg_print(_("渦巻が合体し、破裂した!", "Vortices coalesce and wreak destruction!"));
- for (i = 0; i < randint1(3) + 2; i++)
- {
- (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_VORTEX, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
- }
- }
- }
-
- /* Dispel player. */
- if ((trap & (CHEST_RUNES_OF_EVIL)) && o_ptr->k_idx)
- {
- /* Determine how many nasty tricks can be played. */
- int nasty_tricks_count = 4 + randint0(3);
-
- msg_print(_("恐ろしい声が響いた: 「暗闇が汝をつつまん!」", "Hideous voices bid: 'Let the darkness have thee!'"));
- /* This is gonna hurt... */
- for (; nasty_tricks_count > 0; nasty_tricks_count--)
- {
- /* ...but a high saving throw does help a little. */
- if (randint1(100 + o_ptr->pval * 2) > target_ptr->skill_sav)
- {
- if (one_in_(6)) take_hit(target_ptr, DAMAGE_NOESCAPE, damroll(5, 20), _("破滅のトラップの宝箱", "a chest dispel-player trap"));
- else if (one_in_(5)) (void)set_cut(target_ptr,target_ptr->cut + 200);
- else if (one_in_(4))
- {
- if (!target_ptr->free_act)
- (void)set_paralyzed(target_ptr, target_ptr->paralyzed + 2 +
- randint0(6));
- else
- (void)set_stun(target_ptr, target_ptr->stun + 10 +
- randint0(100));
- }
- else if (one_in_(3)) apply_disenchant(target_ptr, 0);
- else if (one_in_(2))
- {
- (void)do_dec_stat(target_ptr, A_STR);
- (void)do_dec_stat(target_ptr, A_DEX);
- (void)do_dec_stat(target_ptr, A_CON);
- (void)do_dec_stat(target_ptr, A_INT);
- (void)do_dec_stat(target_ptr, A_WIS);
- (void)do_dec_stat(target_ptr, A_CHR);
- }
- else (void)fire_meteor(target_ptr, -1, GF_NETHER, y, x, 150, 1);
- }
- }
- }
-
- /* Aggravate monsters. */
- if (trap & (CHEST_ALARM))
- {
- msg_print(_("けたたましい音が鳴り響いた!", "An alarm sounds!"));
- aggravate_monsters(target_ptr, 0);
- }
-
- /* Explode */
- if ((trap & (CHEST_EXPLODE)) && o_ptr->k_idx)
- {
- msg_print(_("突然、箱が爆発した!", "There is a sudden explosion!"));
- msg_print(_("箱の中の物はすべて粉々に砕け散った!", "Everything inside the chest is destroyed!"));
- o_ptr->pval = 0;
- sound(SOUND_EXPLODE);
- take_hit(target_ptr, DAMAGE_ATTACK, damroll(5, 8), _("爆発する箱", "an exploding chest"));
- }
- /* Scatter contents. */
- if ((trap & (CHEST_SCATTER)) && o_ptr->k_idx)
- {
- msg_print(_("宝箱の中身はダンジョンじゅうに散乱した!", "The contents of the chest scatter all over the dungeon!"));
- chest_death(target_ptr, true, y, x, o_idx);
- o_ptr->pval = 0;
- }
+ int i, trap;
+
+ object_type *o_ptr = &target_ptr->current_floor_ptr->o_list[o_idx];
+
+ int mon_level = o_ptr->xtra3;
+
+ /* Ignore disarmed chests */
+ if (o_ptr->pval <= 0)
+ return;
+
+ /* Obtain the traps */
+ trap = chest_traps[o_ptr->pval];
+
+ /* Lose strength */
+ if (trap & (CHEST_LOSE_STR)) {
+ msg_print(_("仕掛けられていた小さな針に刺されてしまった!", "A small needle has pricked you!"));
+ take_hit(target_ptr, DAMAGE_NOESCAPE, damroll(1, 4), _("毒針", "a poison needle"));
+ (void)do_dec_stat(target_ptr, A_STR);
+ }
+
+ /* Lose constitution */
+ if (trap & (CHEST_LOSE_CON)) {
+ msg_print(_("仕掛けられていた小さな針に刺されてしまった!", "A small needle has pricked you!"));
+ take_hit(target_ptr, DAMAGE_NOESCAPE, damroll(1, 4), _("毒針", "a poison needle"));
+ (void)do_dec_stat(target_ptr, A_CON);
+ }
+
+ /* Poison */
+ if (trap & (CHEST_POISON)) {
+ msg_print(_("突如吹き出した緑色のガスに包み込まれた!", "A puff of green gas surrounds you!"));
+ if (!(has_resist_pois(target_ptr) || is_oppose_pois(target_ptr))) {
+ (void)set_poisoned(target_ptr, target_ptr->poisoned + 10 + randint1(20));
+ }
+ }
+
+ /* Paralyze */
+ if (trap & (CHEST_PARALYZE)) {
+ msg_print(_("突如吹き出した黄色いガスに包み込まれた!", "A puff of yellow gas surrounds you!"));
+ if (!target_ptr->free_act) {
+ (void)set_paralyzed(target_ptr, target_ptr->paralyzed + 10 + randint1(20));
+ }
+ }
+
+ /* Summon monsters */
+ if (trap & (CHEST_SUMMON)) {
+ int num = 2 + randint1(3);
+ msg_print(_("突如吹き出した煙に包み込まれた!", "You are enveloped in a cloud of smoke!"));
+ for (i = 0; i < num; i++) {
+ if (randint1(100) < target_ptr->current_floor_ptr->dun_level)
+ activate_hi_summon(target_ptr, target_ptr->y, target_ptr->x, false);
+ else
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_NONE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+
+ /* Elemental summon. */
+ if (trap & (CHEST_E_SUMMON)) {
+ msg_print(_("宝を守るためにエレメンタルが現れた!", "Elemental beings appear to protect their treasures!"));
+ for (i = 0; i < randint1(3) + 5; i++) {
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+
+ /* Force clouds, then summon birds. */
+ if (trap & (CHEST_BIRD_STORM)) {
+ msg_print(_("鳥の群れがあなたを取り巻いた!", "A storm of birds swirls around you!"));
+
+ for (i = 0; i < randint1(3) + 3; i++)
+ (void)fire_meteor(target_ptr, -1, GF_FORCE, y, x, o_ptr->pval / 5, 7);
+
+ for (i = 0; i < randint1(5) + o_ptr->pval / 5; i++) {
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_BIRD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+
+ /* Various colorful summonings. */
+ if (trap & (CHEST_H_SUMMON)) {
+ /* Summon demons. */
+ if (one_in_(4)) {
+ msg_print(_("炎と硫黄の雲の中に悪魔が姿を現した!", "Demons materialize in clouds of fire and brimstone!"));
+ for (i = 0; i < randint1(3) + 2; i++) {
+ (void)fire_meteor(target_ptr, -1, GF_FIRE, y, x, 10, 5);
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+
+ /* Summon dragons. */
+ else if (one_in_(3)) {
+ msg_print(_("暗闇にドラゴンの影がぼんやりと現れた!", "Draconic forms loom out of the darkness!"));
+ for (i = 0; i < randint1(3) + 2; i++) {
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+
+ /* Summon hybrids. */
+ else if (one_in_(2)) {
+ msg_print(_("奇妙な姿の怪物が襲って来た!", "Creatures strange and twisted assault you!"));
+ for (i = 0; i < randint1(5) + 3; i++) {
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_HYBRID, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+
+ /* Summon vortices (scattered) */
+ else {
+ msg_print(_("渦巻が合体し、破裂した!", "Vortices coalesce and wreak destruction!"));
+ for (i = 0; i < randint1(3) + 2; i++) {
+ (void)summon_specific(target_ptr, 0, y, x, mon_level, SUMMON_VORTEX, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+ }
+ }
+ }
+
+ /* Dispel player. */
+ if ((trap & (CHEST_RUNES_OF_EVIL)) && o_ptr->k_idx) {
+ /* Determine how many nasty tricks can be played. */
+ int nasty_tricks_count = 4 + randint0(3);
+
+ msg_print(_("恐ろしい声が響いた: 「暗闇が汝をつつまん!」", "Hideous voices bid: 'Let the darkness have thee!'"));
+ /* This is gonna hurt... */
+ for (; nasty_tricks_count > 0; nasty_tricks_count--) {
+ /* ...but a high saving throw does help a little. */
+ if (randint1(100 + o_ptr->pval * 2) > target_ptr->skill_sav) {
+ if (one_in_(6))
+ take_hit(target_ptr, DAMAGE_NOESCAPE, damroll(5, 20), _("破滅のトラップの宝箱", "a chest dispel-player trap"));
+ else if (one_in_(5))
+ (void)set_cut(target_ptr, target_ptr->cut + 200);
+ else if (one_in_(4)) {
+ if (!target_ptr->free_act)
+ (void)set_paralyzed(target_ptr, target_ptr->paralyzed + 2 + randint0(6));
+ else
+ (void)set_stun(target_ptr, target_ptr->stun + 10 + randint0(100));
+ } else if (one_in_(3))
+ apply_disenchant(target_ptr, 0);
+ else if (one_in_(2)) {
+ (void)do_dec_stat(target_ptr, A_STR);
+ (void)do_dec_stat(target_ptr, A_DEX);
+ (void)do_dec_stat(target_ptr, A_CON);
+ (void)do_dec_stat(target_ptr, A_INT);
+ (void)do_dec_stat(target_ptr, A_WIS);
+ (void)do_dec_stat(target_ptr, A_CHR);
+ } else
+ (void)fire_meteor(target_ptr, -1, GF_NETHER, y, x, 150, 1);
+ }
+ }
+ }
+
+ /* Aggravate monsters. */
+ if (trap & (CHEST_ALARM)) {
+ msg_print(_("けたたましい音が鳴り響いた!", "An alarm sounds!"));
+ aggravate_monsters(target_ptr, 0);
+ }
+
+ /* Explode */
+ if ((trap & (CHEST_EXPLODE)) && o_ptr->k_idx) {
+ msg_print(_("突然、箱が爆発した!", "There is a sudden explosion!"));
+ msg_print(_("箱の中の物はすべて粉々に砕け散った!", "Everything inside the chest is destroyed!"));
+ o_ptr->pval = 0;
+ sound(SOUND_EXPLODE);
+ take_hit(target_ptr, DAMAGE_ATTACK, damroll(5, 8), _("爆発する箱", "an exploding chest"));
+ }
+ /* Scatter contents. */
+ if ((trap & (CHEST_SCATTER)) && o_ptr->k_idx) {
+ msg_print(_("宝箱の中身はダンジョンじゅうに散乱した!", "The contents of the chest scatter all over the dungeon!"));
+ chest_death(target_ptr, true, y, x, o_idx);
+ o_ptr->pval = 0;
+ }
}
#include "monster/monster-describer.h"
#include "monster/monster-status-setter.h"
#include "monster/monster-status.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-damage.h"
#include "spell-kind/spells-floor.h"
#include "spell-kind/spells-launcher.h"
#include "spell/spell-info.h"
#include "io/input-key-requester.h"
#include "monster-race/monster-race.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-skill.h"
#include "player/player-status-table.h"
#include "player/player-status.h"
#include "spell/spells-diceroll.h"
+#include "monster-race/monster-race-hook.h"
#include "monster-race/monster-race.h"
#include "monster-race/race-flags-resistance.h"
#include "monster-race/race-flags1.h"
#include "monster-race/race-flags3.h"
#include "monster-race/race-flags7.h"
-#include "monster-race/monster-race-hook.h"
#include "monster/monster-flag-types.h"
#include "monster/monster-info.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-status-table.h"
#include "room/rooms-builder.h"
#include "system/floor-type-definition.h"
*/
bool common_saving_throw_charm(player_type *operator_ptr, HIT_POINT pow, monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ monster_race *r_ptr = &r_info[m_ptr->r_idx];
- if (operator_ptr->current_floor_ptr->inside_arena) return true;
+ if (operator_ptr->current_floor_ptr->inside_arena)
+ return true;
- /* Memorize a flag */
- if (r_ptr->flagsr & RFR_RES_ALL)
- {
- if (is_original_ap_and_seen(operator_ptr, m_ptr)) r_ptr->r_flagsr |= (RFR_RES_ALL);
- return true;
- }
+ /* Memorize a flag */
+ if (r_ptr->flagsr & RFR_RES_ALL) {
+ if (is_original_ap_and_seen(operator_ptr, m_ptr))
+ r_ptr->r_flagsr |= (RFR_RES_ALL);
+ return true;
+ }
- if (r_ptr->flags3 & RF3_NO_CONF)
- {
- if (is_original_ap_and_seen(operator_ptr, m_ptr)) r_ptr->r_flags3 |= (RF3_NO_CONF);
- return true;
- }
+ if (r_ptr->flags3 & RF3_NO_CONF) {
+ if (is_original_ap_and_seen(operator_ptr, m_ptr))
+ r_ptr->r_flags3 |= (RF3_NO_CONF);
+ return true;
+ }
- if (r_ptr->flags1 & RF1_QUESTOR || m_ptr->mflag2.has(MFLAG2::NOPET)) return true;
+ if (r_ptr->flags1 & RF1_QUESTOR || m_ptr->mflag2.has(MFLAG2::NOPET))
+ return true;
- pow += (adj_chr_chm[operator_ptr->stat_index[A_CHR]] - 1);
- if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) pow = pow * 2 / 3;
- return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
+ pow += (adj_chr_chm[operator_ptr->stat_index[A_CHR]] - 1);
+ if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL))
+ pow = pow * 2 / 3;
+ return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
}
/*!
*/
bool common_saving_throw_control(player_type *operator_ptr, HIT_POINT pow, monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ monster_race *r_ptr = &r_info[m_ptr->r_idx];
- if (operator_ptr->current_floor_ptr->inside_arena) return true;
+ if (operator_ptr->current_floor_ptr->inside_arena)
+ return true;
- /* Memorize a flag */
- if (r_ptr->flagsr & RFR_RES_ALL)
- {
- if (is_original_ap_and_seen(operator_ptr, m_ptr)) r_ptr->r_flagsr |= (RFR_RES_ALL);
- return true;
- }
+ /* Memorize a flag */
+ if (r_ptr->flagsr & RFR_RES_ALL) {
+ if (is_original_ap_and_seen(operator_ptr, m_ptr))
+ r_ptr->r_flagsr |= (RFR_RES_ALL);
+ return true;
+ }
- if (r_ptr->flags1 & RF1_QUESTOR || m_ptr->mflag2.has(MFLAG2::NOPET)) return true;
+ if (r_ptr->flags1 & RF1_QUESTOR || m_ptr->mflag2.has(MFLAG2::NOPET))
+ return true;
- pow += adj_chr_chm[operator_ptr->stat_index[A_CHR]] - 1;
- if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) pow = pow * 2 / 3;
- return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
+ pow += adj_chr_chm[operator_ptr->stat_index[A_CHR]] - 1;
+ if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL))
+ pow = pow * 2 / 3;
+ return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
}
/*!
-* @brief 一部ボルト魔法のビーム化確率を算出する / Prepare standard probability to become beam for fire_bolt_or_beam()
-* @return ビーム化確率(%)
-* @details
-* ハードコーティングによる実装が行われている。
-* メイジは(レベル)%、ハイメイジ、スペルマスターは(レベル)%、それ以外の職業は(レベル/2)%
-*/
+ * @brief 一部ボルト魔法のビーム化確率を算出する / Prepare standard probability to become beam for fire_bolt_or_beam()
+ * @return ビーム化確率(%)
+ * @details
+ * ハードコーティングによる実装が行われている。
+ * メイジは(レベル)%、ハイメイジ、スペルマスターは(レベル)%、それ以外の職業は(レベル/2)%
+ */
PERCENTAGE beam_chance(player_type *caster_ptr)
{
- if (caster_ptr->pclass == CLASS_MAGE)
- return (PERCENTAGE)(caster_ptr->lev);
- if (caster_ptr->pclass == CLASS_HIGH_MAGE || caster_ptr->pclass == CLASS_SORCERER)
- return (PERCENTAGE)(caster_ptr->lev + 10);
+ if (caster_ptr->pclass == CLASS_MAGE)
+ return (PERCENTAGE)(caster_ptr->lev);
+ if (caster_ptr->pclass == CLASS_HIGH_MAGE || caster_ptr->pclass == CLASS_SORCERER)
+ return (PERCENTAGE)(caster_ptr->lev + 10);
- return (PERCENTAGE)(caster_ptr->lev / 2);
+ return (PERCENTAGE)(caster_ptr->lev / 2);
}
#include "object/object-kind-hook.h"
#include "object/object-kind.h"
#include "perception/object-perception.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-damage.h"
#include "racial/racial-android.h"
#include "spell-kind/spells-perception.h"
#include "monster/monster-describer.h"
#include "object/object-kind-hook.h"
#include "object/object-kind.h"
+#include "player-info/class-info.h"
#include "player-status/player-energy.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "spell-kind/spells-launcher.h"
#include "spell-kind/spells-teleport.h"
#include "spell-kind/spells-world.h"
#include "core/window-redrawer.h"
#include "game-option/disturbance-options.h"
#include "monster/monster-status-setter.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
#include "player/attack-defense-types.h"
-#include "player/player-class.h"
#include "player/player-status.h"
#include "realm/realm-song-numbers.h"
#include "spell-realm/spells-song.h"
#include "grid/grid.h"
#include "hpmp/hp-mp-processor.h"
#include "mutation/mutation-investor-remover.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-damage.h"
#include "player/player-personality.h"
#include "player/player-sex.h"
/* 人畜無害なenumヘッダを先に読み込む */
#include "object/tval-types.h"
+#include "player-info/class-types.h"
#include "player-info/race-types.h"
-#include "player/player-class-types.h"
#include "realm/realm-types.h"
#include "system/angband.h"
#include "object-enchant/trc-types.h"
#include "object/tval-types.h"
#include "player-ability/player-ability-types.h"
+#include "player-info/class-types.h"
#include "player-info/race-types.h"
-#include "player/player-class-types.h"
#include "player/player-personality-types.h"
#include "player/player-sex.h"
#include "system/angband.h"
#include "birth/auto-roller.h"
#include "birth/birth-stat.h"
#include "game-option/birth-options.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-status.h"
#include "system/player-type-definition.h"
-#include "player-info/mimic-info-table.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
+#include "player-info/mimic-info-table.h"
#include "player/player-personality.h"
#include "player/player-sex.h"
#include "system/player-type-definition.h"
#include "object-enchant/tr-types.h"
#include "object/object-flags.h"
#include "player-base/player-race.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
#include "player/permanent-resistances.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-status-table.h"
#include "player/player-status.h"
#include "object/object-info.h"
#include "object/object-kind.h"
#include "player-info/alignment.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
#include "player/patron.h"
-#include "player/player-class.h"
#include "player/player-personality.h"
#include "player/player-sex.h"
#include "player/player-status-flags.h"
#include "core/score-util.h"
#include "io/files-util.h"
#include "io/input-key-acceptor.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-personality.h"
#include "player/race-info-table.h"
#include "system/angband.h"
if (highscore_fd < 0) {
return;
}
-
+
if (from < 0) {
from = 0;
}
-
+
if (to < 0) {
to = 10;
}
-
+
if (to > MAX_HISCORES) {
to = MAX_HISCORES;
}
if (highscore_seek(0)) {
return;
}
-
+
auto num_scores = 0;
high_score the_score;
for (; num_scores < MAX_HISCORES; num_scores++) {
for (user = the_score.uid; iswspace(*user); user++) /* loop */
;
- concptr when;
+ concptr when;
for (when = the_score.day; iswspace(*when); when++) /* loop */
;
} else {
sprintf(out_val, " ");
}
-
+
/* 死亡原因をオリジナルより細かく表示 */
if (streq(the_score.how, "yet")) {
sprintf(out_val + 13, " まだ生きている (%d%s)", cdun, "階");
if (highscore_fd < 0) {
quit(_("スコア・ファイルが使用できません。", "Score file unavailable."));
}
-
+
term_clear();
display_scores(from, to, -1, nullptr);
(void)fd_close(highscore_fd);
#include "mind/mind-info.h"
#include "mind/mind-sniper.h"
#include "mind/mind-types.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "player/player-status-table.h"
#include "realm/realm-names-table.h"
#include "spell/spells-execution.h"
#include "market/arena-info-table.h"
#include "monster-race/monster-race.h"
#include "monster/monster-status.h"
+#include "player-info/class-info.h"
#include "player-info/mimic-info-table.h"
-#include "player/player-class.h"
#include "player/player-status-table.h"
#include "system/floor-type-definition.h"
#include "system/monster-race-definition.h"
#include "object-enchant/trg-types.h"
#include "object/object-kind.h"
#include "perception/object-perception.h"
+#include "player-info/class-info.h"
#include "player-info/race-info.h"
#include "player-info/race-types.h"
#include "player-info/self-info.h"
#include "player-status/player-energy.h"
#include "player/digestion-processor.h"
#include "player/patron.h"
-#include "player/player-class.h"
#include "player/player-skill.h"
#include "player/player-status-table.h"
#include "player/player-status.h"
#include "monster-race/race-flags7.h"
#include "monster-race/race-flags8.h"
#include "object/object-kind-hook.h"
-#include "player/player-class.h"
+#include "player-info/class-info.h"
#include "realm/realm-names-table.h"
#include "spell/spells-execution.h"
#include "spell/spells-util.h"
#pragma once
-#include "player/player-class-types.h"
+#include "player-info/class-types.h"
#include "system/angband.h"
#include "util/flag-group.h"