#include "cmd-activate.h"
[ソースコード]
◆ ART_AEGISFANG
#define ART_AEGISFANG 208 |
◆ ART_AEGLOS
◆ ART_AESCULAPIUS
#define ART_AESCULAPIUS 225 |
◆ ART_AGLARANG
◆ ART_AHO
◆ ART_AMBER
◆ ART_ANARION
◆ ART_ANDURIL
◆ ART_ANUBIS
◆ ART_ARRYU
◆ ART_ARUNRUTH
◆ ART_ARVEDUI
◆ ART_AULE
◆ ART_AVAVIR
◆ ART_AZAGHAL
◆ ART_BALLI
◆ ART_BARD
◆ ART_BARD_ARROW
#define ART_BARD_ARROW 153 |
◆ ART_BARUKKHELED
#define ART_BARUKKHELED 106 |
◆ ART_BELTHRONDING
#define ART_BELTHRONDING 124 |
◆ ART_BENKEI
◆ ART_BERUTHIEL
◆ ART_BLADETURNER
#define ART_BLADETURNER 130 |
◆ ART_BLOOD
◆ ART_BLOODSPIKE
#define ART_BLOODSPIKE 114 |
◆ ART_BOLISHOI
◆ ART_BOROMIR
◆ ART_BRAND
◆ ART_BUCKLAND
◆ ART_CAINE
◆ ART_CALRIS
◆ ART_CAMBELEG
◆ ART_CAMMITHRIM
#define ART_CAMMITHRIM 53 |
◆ ART_CARETH
◆ ART_CARLAMMAS
◆ ART_CASPANION
◆ ART_CELEGORM
◆ ART_CHAINSWORD
#define ART_CHAINSWORD 85 |
◆ ART_CHAOS
◆ ART_CHARIOT
◆ ART_CHARMED
◆ ART_COLANNON
◆ ART_COLLUIN
◆ ART_CORWIN
◆ ART_CRIMSON
◆ ART_CRISDURIAN
#define ART_CRISDURIAN 80 |
◆ ART_DASAI
◆ ART_DAWN
◆ ART_DEATHWREAKER
#define ART_DEATHWREAKER 121 |
◆ ART_DESTINY
◆ ART_DETHANC
◆ ART_DOOMCALLER
#define ART_DOOMCALLER 91 |
◆ ART_DOR
◆ ART_DURIN
◆ ART_DWARVES
◆ ART_DWARVES_AXE
#define ART_DWARVES_AXE 105 |
◆ ART_EARENDIL
◆ ART_EDISON
◆ ART_ELENDIL
◆ ART_EONWE
◆ ART_EORLINGAS
#define ART_EORLINGAS 100 |
◆ ART_EOWYN
◆ ART_ERIRIL
◆ ART_EXCALIBUR
#define ART_EXCALIBUR 176 |
◆ ART_EXCALIBUR_J
#define ART_EXCALIBUR_J 179 |
◆ ART_EXCALIPUR
#define ART_EXCALIPUR 177 |
◆ ART_FALIS
◆ ART_FARAMIR
◆ ART_FEANOR
◆ ART_FINGOLFIN
◆ ART_FIONA
◆ ART_FIRESTAR
◆ ART_FLORA
◆ ART_FLY_STONE
#define ART_FLY_STONE 147 |
◆ ART_FORASGIL
◆ ART_FRAKIR
◆ ART_FUNDIN
◆ ART_G_HAMMER
◆ ART_GAEBOLG
◆ ART_GALADRIEL
◆ ART_GANDALF
◆ ART_GETA
◆ ART_GHB
◆ ART_GIL_GALAD
#define ART_GIL_GALAD 138 |
◆ ART_GILES
◆ ART_GLAMDRING
◆ ART_GLASS
◆ ART_GOGO
◆ ART_GONDRICAM
◆ ART_GOTHMOG
◆ ART_GOURYU
◆ ART_GRAYSWANDIR
#define ART_GRAYSWANDIR 72 |
◆ ART_GRIMTOOTH
#define ART_GRIMTOOTH 196 |
◆ ART_GROND
◆ ART_GURENKI
◆ ART_GURTHANG
◆ ART_HAGEN
◆ ART_HAKABUSA
◆ ART_HAMMERHAND
#define ART_HAMMERHAND 38 |
◆ ART_HARAD
◆ ART_HEAVENLY_MAIDEN
#define ART_HEAVENLY_MAIDEN 233 |
◆ ART_HELL
◆ ART_HELLFIRE
◆ ART_HERMIT
◆ ART_HIMRING
◆ ART_HITHLOMIR
◆ ART_HOLCOLLETH
#define ART_HOLCOLLETH 45 |
◆ ART_HOLHENNETH
#define ART_HOLHENNETH 40 |
◆ ART_HRUNTING
◆ ART_HURIN
◆ ART_HYOUSIGI
◆ ART_ICANUS
◆ ART_INDRA
◆ ART_INGWE
◆ ART_INROU
◆ ART_IRON_BALL
#define ART_IRON_BALL 173 |
◆ ART_ISILDUR
◆ ART_JACK
◆ ART_JIZO
◆ ART_JONES
◆ ART_JUDGE
◆ ART_JULIAN
◆ ART_KAMUI
◆ ART_KANNU
◆ ART_KESHO
◆ ART_KUSANAGI
◆ ART_LOHENGRIN
◆ ART_LOTHARANG
#define ART_LOTHARANG 104 |
◆ ART_LUTHIEN
◆ ART_MAEDHROS
◆ ART_MAGATAMA
◆ ART_MATOI
◆ ART_MERLIN
◆ ART_MILIM
◆ ART_MJOLLNIR
◆ ART_MOOK
◆ ART_MORLOK
◆ ART_MURAMASA
◆ ART_MUSASI_KATANA
#define ART_MUSASI_KATANA 171 |
◆ ART_MUSASI_WAKIZASI
#define ART_MUSASI_WAKIZASI 172 |
◆ ART_NAIN
◆ ART_NAMAKE_ARMOR
#define ART_NAMAKE_ARMOR 183 |
◆ ART_NAMAKE_BOW
#define ART_NAMAKE_BOW 182 |
◆ ART_NAMAKE_HAMMER
#define ART_NAMAKE_HAMMER 181 |
◆ ART_NANACHO
◆ ART_NAR
◆ ART_NARSIL
◆ ART_NARTHANC
◆ ART_NARYA
◆ ART_NENYA
◆ ART_NIGHT
◆ ART_NIMTHANC
◆ ART_NOTHUNG
◆ ART_NOVA
◆ ART_NUMAHOKO
◆ ART_NUMENOR
◆ ART_NYOIBOU
◆ ART_ORB_OF_FATE
#define ART_ORB_OF_FATE 245 |
◆ ART_ORCRIST
◆ ART_OSONDIR
◆ ART_PAIN
◆ ART_PALANTIR
◆ ART_PAURAEGEN
◆ ART_PAURHACH
◆ ART_PAURNEN
◆ ART_PAURNIMMEN
#define ART_PAURNIMMEN 185 |
◆ ART_PERSEUS
◆ ART_POWER
◆ ART_QUICKTHORN
#define ART_QUICKTHORN 174 |
◆ ART_RAZORBACK
#define ART_RAZORBACK 129 |
◆ ART_RILIA
◆ ART_RINGIL
◆ ART_ROBIN_HOOD
#define ART_ROBIN_HOOD 221 |
◆ ART_ROBINTON
◆ ART_ROHIRRIM
◆ ART_RUNESPEAR
◆ ART_SACRED_KNIGHTS
#define ART_SACRED_KNIGHTS 217 |
◆ ART_SAMSON
◆ ART_SEIRYU
◆ ART_SHIVA_BOOTS
#define ART_SHIVA_BOOTS 63 |
◆ ART_SHIVA_JACKET
#define ART_SHIVA_JACKET 26 |
◆ ART_SHUTEN_DOJI
#define ART_SHUTEN_DOJI 194 |
◆ ART_SLAYER
◆ ART_SOULCRUSH
#define ART_SOULCRUSH 154 |
◆ ART_SOULKEEPER
#define ART_SOULKEEPER 19 |
◆ ART_SOULSWORD
◆ ART_STING
◆ ART_STONE_LORE
#define ART_STONE_LORE 17 |
◆ ART_STONEMASK
#define ART_STONEMASK 146 |
◆ ART_STORMBRINGER
#define ART_STORMBRINGER 190 |
◆ ART_TAIKOBO
◆ ART_TAILBITER
#define ART_TAILBITER 167 |
◆ ART_TARATOL
◆ ART_TERROR
◆ ART_THALKETTOTH
#define ART_THALKETTOTH 28 |
◆ ART_THANOS
◆ ART_THENGEL
◆ ART_THEODEN
◆ ART_THINGOL
◆ ART_THORIN
◆ ART_THORONGIL
◆ ART_THRANDUIL
◆ ART_THROR
◆ ART_THUNDERFIST
#define ART_THUNDERFIST 113 |
◆ ART_TIL
◆ ART_TINYTHORN
#define ART_TINYTHORN 175 |
◆ ART_TONBO
◆ ART_TOTILA
◆ ART_TULKAS
◆ ART_TUOR
◆ ART_TURMIL
◆ ART_TWILIGHT
◆ ART_ULMO
◆ ART_VETERAN
◆ ART_VILYA
◆ ART_VORPAL_BLADE
#define ART_VORPAL_BLADE 92 |
◆ ART_WEREWINDLE
#define ART_WEREWINDLE 84 |
◆ ART_WINBLOWS
◆ ART_WORPAL_BLADE
#define ART_WORPAL_BLADE 142 |
◆ ART_WRATH
◆ ART_XIAOLONG
◆ ART_YATA
◆ ART_YENDOR
◆ ART_YOICHI
◆ ART_ZANTETSU
◆ ART_ZARCUTHRA
◆ BIAS_ACID
◆ BIAS_CHAOS
◆ BIAS_CHR
◆ BIAS_COLD
◆ BIAS_CON
◆ BIAS_DEX
◆ BIAS_ELEC
◆ BIAS_FIRE
◆ BIAS_INT
◆ BIAS_LAW
◆ BIAS_MAGE
◆ BIAS_NECROMANTIC
#define BIAS_NECROMANTIC 14 |
◆ BIAS_POIS
◆ BIAS_PRIESTLY
◆ BIAS_RANGER
◆ BIAS_ROGUE
◆ BIAS_STR
◆ BIAS_WARRIOR
◆ BIAS_WIS
◆ MAX_BIAS
◆ TRG_CURSED
#define TRG_CURSED 0x00000400L /* Item is Cursed */ |
◆ TRG_HEAVY_CURSE
#define TRG_HEAVY_CURSE 0x00000800L /* Item is Heavily Cursed */ |
◆ TRG_INSTA_ART
#define TRG_INSTA_ART 0x00000001L /* Item must be an artifact */ |
◆ TRG_ONE_SUSTAIN
#define TRG_ONE_SUSTAIN 0x00000008L /* One sustain */ |
◆ TRG_PERMA_CURSE
#define TRG_PERMA_CURSE 0x00001000L /* Item is Perma Cursed */ |
◆ TRG_POWERFUL
#define TRG_POWERFUL 0x00020000L /* Item has good value even if Cursed */ |
◆ TRG_QUESTITEM
#define TRG_QUESTITEM 0x00000002L /* quest level item -KMW- */ |
◆ TRG_RANDOM_CURSE0
#define TRG_RANDOM_CURSE0 0x00002000L /* Item is Random Cursed */ |
◆ TRG_RANDOM_CURSE1
#define TRG_RANDOM_CURSE1 0x00004000L /* Item is Random Cursed */ |
◆ TRG_RANDOM_CURSE2
#define TRG_RANDOM_CURSE2 0x00008000L /* Item is Random Cursed */ |
◆ TRG_XTRA_D_RES
#define TRG_XTRA_D_RES 0x00000100L /* Extra dragon resistance */ |
◆ TRG_XTRA_DICE
#define TRG_XTRA_DICE 0x00010000L /* Extra dice */ |
◆ TRG_XTRA_E_RES
#define TRG_XTRA_E_RES 0x00000040L /* Extra element resistance */ |
◆ TRG_XTRA_H_RES
#define TRG_XTRA_H_RES 0x00000020L /* Extra high resistance */ |
◆ TRG_XTRA_L_RES
#define TRG_XTRA_L_RES 0x00000080L /* Extra lordly resistance */ |
◆ TRG_XTRA_POWER
#define TRG_XTRA_POWER 0x00000004L /* Extra power */ |
◆ TRG_XTRA_RES
#define TRG_XTRA_RES 0x00000200L /* Extra resistance */ |
◆ TRG_XTRA_RES_OR_POWER
#define TRG_XTRA_RES_OR_POWER 0x00000010L /* Extra resistance or power */ |
◆ artifact_type
◆ activation_index()
オブジェクトから能力発動IDを取得する。
いくつかのケースで定義されている発動効果から、 鍛冶師による付与>固定アーティファクト>エゴ>ランダムアーティファクト>ベースアイテムの優先順位で走査していく。
- 引数
-
- 戻り値
- 発動効果のIDを返す
◆ become_random_artifact()
ランダムアーティファクト生成のメインルーチン
既に生成が済んでいるオブジェクトの構造体を、アーティファクトとして強化する。
- 引数
-
o_ptr | 対象のオブジェクト構造体ポインタ |
a_scroll | アーティファクト生成の巻物上の処理。呪いのアーティファクトが生成対象外となる。 |
- 戻り値
- 常にTRUE(1)を返す
◆ create_named_art()
フロアの指定された位置に固定アーティファクトを生成する。 / Create the artifact of the specified number
固定アーティファクト構造体から基本ステータスをコピーした後、所定の座標でdrop_item()で落とす。
- 引数
-
a_idx | 生成する固定アーティファクト構造体のID |
y | アイテムを落とす地点のy座標 |
x | アイテムを落とす地点のx座標 |
- 戻り値
- 生成が成功したか否か、失敗はIDの不全、ベースアイテムの不全、drop_item()の失敗時に起こる。
- 注意
- この処理はdrop_near()内で普通の固定アーティファクトが重ならない性質に依存する. 仮に2個以上存在可能かつ装備品以外の固定アーティファクトが作成されれば drop_near()関数の返り値は信用できなくなる.
◆ find_activation_info()
const activation_type* find_activation_info |
( |
object_type * |
o_ptr | ) |
|
◆ make_artifact()
非INSTA_ART型の固定アーティファクトの生成を確率に応じて試行する。 Mega-Hack – Attempt to create one of the "Special Objects"
- 引数
-
o_ptr | 生成に割り当てたいオブジェクトの構造体参照ポインタ |
- 戻り値
- 生成に成功したらTRUEを返す。
Attempt to change an object into an artifact
This routine should only be called by "apply_magic()"
Note – see "make_artifact_special()" and "apply_magic()"
◆ make_artifact_special()
INSTA_ART型の固定アーティファクトの生成を確率に応じて試行する。 Mega-Hack – Attempt to create one of the "Special Objects"
- 引数
-
o_ptr | 生成に割り当てたいオブジェクトの構造体参照ポインタ |
- 戻り値
- 生成に成功したらTRUEを返す。
We are only called from "make_object()", and we assume that
"apply_magic()" is called immediately after we return.
Note – see "make_artifact()" and "apply_magic()"
- 覚え書き
- 地上ではキャンセルする / No artifacts in the town
-
get_obj_num_hookによる指定がある場合は生成をキャンセルする / Themed object
-
全固定アーティファクト中からIDの若い順に生成対象とその確率を走査する / Check the artifact list (just the "specials")
-
アーティファクト名が空の不正なデータは除外する / Skip "empty" artifacts
-
既に生成回数がカウントされたアーティファクト、QUESTITEMと非INSTA_ARTは除外 / Cannot make an artifact twice
-
アーティファクト生成階が現在に対して足りない場合は高確率で1/(不足階層*2)を満たさないと生成リストに加えられない / XXX XXX Enforce minimum "depth" (loosely)
-
1/(レア度)の確率を満たさないと除外される / Artifact "rarity roll"
-
INSTA_ART型固定アーティファクトのベースアイテムもチェック対象とする。ベースアイテムの生成階層が足りない場合1/(不足階層*5) を満たさないと除外される。 / Find the base object. XXX XXX Enforce minimum "object" level (loosely). Acquire the "out-of-depth factor". Roll for out-of-depth creation.
-
前述の条件を満たしたら、後のIDのアーティファクトはチェックせずすぐ確定し生成処理に移す / Assign the template. Mega-Hack – mark the item as an artifact. Hack: Some artifacts get random extra powers. Success.
-
全INSTA_ART固定アーティファクトを試行しても決まらなかった場合 FALSEを返す / Failure
◆ random_artifact_resistance()
固定アーティファクト生成時の特別なハードコーディング処理を行う。.
random_artifact_resistance()とあるが実際は固定アーティファクトである。 対象は恐怖の仮面、村正、ロビントンのハープ、龍争虎鬪、ブラッディムーン、羽衣、天女の羽衣、ミリム、 その他追加耐性、特性追加処理。
- 注意
- プレイヤーの各種ステータスに依存した処理がある。
- todo:
- 折を見て関数名を変更すること。
- 引数
-
o_ptr | 対象のオブジェクト構造体ポインタ |
a_ptr | 生成する固定アーティファクト構造体ポインタ |
- 戻り値
- なし
◆ a_info
◆ a_name
◆ a_text
◆ max_a_idx