アーティファクトの生成と管理 / Artifact code [詳細]
#include "angband.h"
マクロ定義 | |
#define | SINDARIN_NAME 10 |
ランダムアーティファクトにシンダリン銘をつける確率 [詳細] | |
#define | TABLE_NAME 20 |
ランダムアーティファクトに漢字銘をつける確率(正確には TABLE_NAME - SINDARIN_NAME %)となる [詳細] | |
#define | A_CURSED 13 |
1/nの確率で生成の巻物以外のランダムアーティファクトが呪いつきになる。 [詳細] | |
#define | WEIRD_LUCK 12 |
1/nの確率でrandom_resistance()の処理中バイアス外の耐性がつき、create_artifactで4を超えるpvalが許可される。 [詳細] | |
#define | BIAS_LUCK 20 |
1/nの確率でrandom_resistance()で付加する元素耐性が免疫になる [詳細] | |
#define | IM_LUCK 7 |
1/nの確率でrandom_resistance()で複数免疫の除去処理が免除される [詳細] | |
#define | ACTIVATION_CHANCE 3 |
1/nの確率でランダムアーティファクトに発動が付加される。ただし防具はさらに1/2 [詳細] | |
関数 | |
void | one_sustain (object_type *o_ptr) |
対象のオブジェクトにランダムな能力維持を一つ付加する。/ Choose one random sustain [詳細] | |
void | one_high_resistance (object_type *o_ptr) |
対象のオブジェクトにランダムな上位耐性を一つ付加する。/ Choose one random high resistance [詳細] | |
void | one_lordly_high_resistance (object_type *o_ptr) |
対象のオブジェクトに王者の指輪向けの上位耐性を一つ付加する。/ Choose one random high resistance [詳細] | |
void | one_ele_resistance (object_type *o_ptr) |
対象のオブジェクトに元素耐性を一つ付加する。/ Choose one random element resistance [詳細] | |
void | one_dragon_ele_resistance (object_type *o_ptr) |
対象のオブジェクトにドラゴン装備向け元素耐性を一つ付加する。/ Choose one random element or poison resistance [詳細] | |
void | one_low_esp (object_type *o_ptr) |
対象のオブジェクトに弱いESPを一つ付加する。/ Choose one lower rank esp [詳細] | |
void | one_resistance (object_type *o_ptr) |
対象のオブジェクトに耐性を一つ付加する。/ Choose one random resistance [詳細] | |
void | one_ability (object_type *o_ptr) |
対象のオブジェクトに能力を一つ付加する。/ Choose one random ability [詳細] | |
void | one_activation (object_type *o_ptr) |
対象のオブジェクトに発動を一つ付加する。/ Choose one random activation [詳細] | |
static void | curse_artifact (object_type *o_ptr) |
ランダムアーティファクト生成中、対象のオブジェクトを呪いのアーティファクトにする経過処理。/ generation process of cursed artifact. [詳細] | |
static void | random_plus (object_type *o_ptr) |
ランダムアーティファクト生成中、対象のオブジェクトにpval能力を付加する。/ Add one pval on generation of randam artifact. [詳細] | |
static void | random_resistance (object_type *o_ptr) |
ランダムアーティファクト生成中、対象のオブジェクトに耐性を付加する。/ Add one resistance on generation of randam artifact. [詳細] | |
static void | random_misc (object_type *o_ptr) |
ランダムアーティファクト生成中、対象のオブジェクトにその他特性を付加する。/ Add one misc flag on generation of randam artifact. [詳細] | |
static void | random_slay (object_type *o_ptr) |
ランダムアーティファクト生成中、対象のオブジェクトにスレイ効果を付加する。/ Add one slaying on generation of randam artifact. [詳細] | |
static void | give_activation_power (object_type *o_ptr) |
ランダムアーティファクト生成中、対象のオブジェクトにバイアスに依存した発動を与える。/ Add one activaton of randam artifact depend on bias. [詳細] | |
static void | get_random_name (char *return_name, bool armour, int power) |
ランダムアーティファクト生成中、対象のオブジェクトに名前を与える。/ Set name of randomartifact. [詳細] | |
bool | create_artifact (object_type *o_ptr, bool a_scroll) |
ランダムアーティファクト生成のメインルーチン [詳細] | |
int | activation_index (object_type *o_ptr) |
オブジェクトから能力発動IDを取得する。 [詳細] | |
const activation_type * | find_activation_info (object_type *o_ptr) |
オブジェクトから発動効果構造体のポインタを取得する。 [詳細] | |
static bool | activate_dragon_breath (object_type *o_ptr) |
発動によるブレスの属性をアイテムの耐性から選択し、実行を処理する。/ Dragon breath activation [詳細] | |
bool | activate_random_artifact (object_type *o_ptr) |
アイテムの発動効果を処理する。 [詳細] | |
void | get_bloody_moon_flags (object_type *o_ptr) |
固定アーティファクト『ブラッディムーン』の特性を変更する。 [詳細] | |
void | random_artifact_resistance (object_type *o_ptr, artifact_type *a_ptr) |
固定アーティファクト生成時の特別なハードコーディング処理を行う。. [詳細] | |
bool | create_named_art (int a_idx, int y, int x) |
フロアの指定された位置に固定アーティファクトを生成する。 / Create the artifact of the specified number [詳細] | |
変数 | |
static int | artifact_bias |
アーティファクトのバイアスIDを保管する。 / Use for biased artifact creation [詳細] | |
アーティファクトの生成と管理 / Artifact code
#define A_CURSED 13 |
1/nの確率で生成の巻物以外のランダムアーティファクトが呪いつきになる。
#define ACTIVATION_CHANCE 3 |
1/nの確率でランダムアーティファクトに発動が付加される。ただし防具はさらに1/2
#define BIAS_LUCK 20 |
1/nの確率でrandom_resistance()で付加する元素耐性が免疫になる
#define IM_LUCK 7 |
1/nの確率でrandom_resistance()で複数免疫の除去処理が免除される
#define SINDARIN_NAME 10 |
ランダムアーティファクトにシンダリン銘をつける確率
#define TABLE_NAME 20 |
ランダムアーティファクトに漢字銘をつける確率(正確には TABLE_NAME - SINDARIN_NAME %)となる
#define WEIRD_LUCK 12 |
1/nの確率でrandom_resistance()の処理中バイアス外の耐性がつき、create_artifactで4を超えるpvalが許可される。
|
static |
発動によるブレスの属性をアイテムの耐性から選択し、実行を処理する。/ Dragon breath activation
対象となる耐性は dragonbreath_info テーブルを参照のこと。
o_ptr | 対象のオブジェクト構造体ポインタ |
bool activate_random_artifact | ( | object_type * | o_ptr | ) |
アイテムの発動効果を処理する。
activate_random_artifact()とされているが、実際は全発動が統合された。
o_ptr | 対象のオブジェクト構造体ポインタ |
int activation_index | ( | object_type * | o_ptr | ) |
オブジェクトから能力発動IDを取得する。
いくつかのケースで定義されている発動効果から、 鍛冶師による付与>固定アーティファクト>エゴ>ランダムアーティファクト>ベースアイテムの優先順位で走査していく。
o_ptr | 対象のオブジェクト構造体ポインタ |
bool create_artifact | ( | object_type * | o_ptr, |
bool | a_scroll | ||
) |
ランダムアーティファクト生成のメインルーチン
既に生成が済んでいるオブジェクトの構造体を、アーティファクトとして強化する。
o_ptr | 対象のオブジェクト構造体ポインタ |
a_scroll | アーティファクト生成の巻物上の処理。呪いのアーティファクトが生成対象外となる。 |
bool create_named_art | ( | int | a_idx, |
int | y, | ||
int | x | ||
) |
フロアの指定された位置に固定アーティファクトを生成する。 / Create the artifact of the specified number
固定アーティファクト構造体から基本ステータスをコピーした後、所定の座標でdrop_item()で落とす。
a_idx | 生成する固定アーティファクト構造体のID |
y | アイテムを落とす地点のy座標 |
x | アイテムを落とす地点のx座標 |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトを呪いのアーティファクトにする経過処理。/ generation process of cursed artifact.
pval、AC、命中、ダメージが正の場合、符号反転の上1d4だけ悪化させ、重い呪い、呪いフラグを必ず付加。 祝福を無効。確率に応じて、永遠の呪い、太古の怨念、経験値吸収、弱い呪いの継続的付加、強い呪いの継続的付加、HP吸収の呪い、 MP吸収の呪い、乱テレポート、反テレポート、反魔法をつける。
o_ptr | 対象のオブジェクト構造体ポインタ |
const activation_type* find_activation_info | ( | object_type * | o_ptr | ) |
オブジェクトから発動効果構造体のポインタを取得する。
activation_index() 関数の結果から参照する。
o_ptr | 対象のオブジェクト構造体ポインタ |
void get_bloody_moon_flags | ( | object_type * | o_ptr | ) |
固定アーティファクト『ブラッディムーン』の特性を変更する。
スレイ2d2種、及びone_resistance()による耐性1d2種、pval2種を得る。
o_ptr | 対象のオブジェクト構造体(ブラッディムーン)のポインタ |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトに名前を与える。/ Set name of randomartifact.
確率によって、シンダリン銘、漢字銘、固定名のいずれか一つが与えられる。
return_name | 名前を返すための文字列参照ポインタ |
armour | 対象のオブジェクトが防具が否か |
power | 銘の基準となるオブジェクトの価値レベル(0=呪い、1=低位、2=中位、3以上=高位) |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトにバイアスに依存した発動を与える。/ Add one activaton of randam artifact depend on bias.
バイアスが無い場合、一部のバイアスの確率によっては one_ability() に処理が移行する。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_ability | ( | object_type * | o_ptr | ) |
対象のオブジェクトに能力を一つ付加する。/ Choose one random ability
候補は浮遊、永久光源+1、透明視、警告、遅消化、急回復、麻痺知らず、経験値維持のいずれか。 重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_activation | ( | object_type * | o_ptr | ) |
対象のオブジェクトに発動を一つ付加する。/ Choose one random activation
候補多数。ランダムアーティファクトのバイアスには一切依存せず、 whileループによる構造で能力的に強力なものほど確率を落としている。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_dragon_ele_resistance | ( | object_type * | o_ptr | ) |
対象のオブジェクトにドラゴン装備向け元素耐性を一つ付加する。/ Choose one random element or poison resistance
候補は1/7の確率で毒、6/7の確率で火炎、冷気、電撃、酸のいずれか(one_ele_resistance()のコール)であり、重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_ele_resistance | ( | object_type * | o_ptr | ) |
対象のオブジェクトに元素耐性を一つ付加する。/ Choose one random element resistance
候補は火炎、冷気、電撃、酸のいずれかであり、重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_high_resistance | ( | object_type * | o_ptr | ) |
対象のオブジェクトにランダムな上位耐性を一つ付加する。/ Choose one random high resistance
重複の抑止はない。候補は毒、閃光、暗黒、破片、盲目、混乱、地獄、因果混乱、カオス、劣化、恐怖のいずれか。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_lordly_high_resistance | ( | object_type * | o_ptr | ) |
対象のオブジェクトに王者の指輪向けの上位耐性を一つ付加する。/ Choose one random high resistance
候補は閃光、暗黒、破片、盲目、混乱、地獄、因果混乱、カオス、恐怖であり 王者の指輪にあらかじめついている耐性をone_high_resistance()から除外したものである。 ランダム付加そのものに重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_low_esp | ( | object_type * | o_ptr | ) |
対象のオブジェクトに弱いESPを一つ付加する。/ Choose one lower rank esp
候補は動物、アンデッド、悪魔、オーク、トロル、巨人、 ドラゴン、人間、善良、ユニークESPのいずれかであり、重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_resistance | ( | object_type * | o_ptr | ) |
対象のオブジェクトに耐性を一つ付加する。/ Choose one random resistance
1/3で元素耐性(one_ele_resistance())、2/3で上位耐性(one_high_resistance) をコールする。重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void one_sustain | ( | object_type * | o_ptr | ) |
対象のオブジェクトにランダムな能力維持を一つ付加する。/ Choose one random sustain
重複の抑止はない。
o_ptr | 対象のオブジェクト構造体ポインタ |
void random_artifact_resistance | ( | object_type * | o_ptr, |
artifact_type * | a_ptr | ||
) |
固定アーティファクト生成時の特別なハードコーディング処理を行う。.
random_artifact_resistance()とあるが実際は固定アーティファクトである。 対象は恐怖の仮面、村正、ロビントンのハープ、龍争虎鬪、ブラッディムーン、羽衣、天女の羽衣、ミリム、 その他追加耐性、特性追加処理。
o_ptr | 対象のオブジェクト構造体ポインタ |
a_ptr | 生成する固定アーティファクト構造体ポインタ |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトにその他特性を付加する。/ Add one misc flag on generation of randam artifact.
優先的に付加される耐性がランダムアーティファクトバイアスに依存して存在する。 原則的候補は各種能力維持、永久光源+1、麻痺知らず、経験値維持、浮遊、透明視、急回復、遅消化、 乱テレポート、反魔法、反テレポート、警告、テレパシー、各種ESP、一部装備に殺戮修正。
o_ptr | 対象のオブジェクト構造体ポインタ |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトにpval能力を付加する。/ Add one pval on generation of randam artifact.
優先的に付加されるpvalがランダムアーティファクトバイアスに依存して存在する。 原則的候補は腕力、知力、賢さ、器用さ、耐久、魅力、探索、隠密、赤外線視力、加速。武器のみ採掘、追加攻撃も候補に入る。
o_ptr | 対象のオブジェクト構造体ポインタ |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトに耐性を付加する。/ Add one resistance on generation of randam artifact.
優先的に付加される耐性がランダムアーティファクトバイアスに依存して存在する。 原則的候補は火炎、冷気、電撃、酸(以上免疫の可能性もあり)、 毒、閃光、暗黒、破片、轟音、盲目、混乱、地獄、カオス、劣化、恐怖、火オーラ、冷気オーラ、電撃オーラ、反射。 戦士系バイアスのみ反魔もつく。
o_ptr | 対象のオブジェクト構造体ポインタ |
|
static |
ランダムアーティファクト生成中、対象のオブジェクトにスレイ効果を付加する。/ Add one slaying on generation of randam artifact.
優先的に付加される耐性がランダムアーティファクトバイアスに依存して存在する。 原則的候補は強力射、高速射、混沌効果、吸血効果、祝福、投擲しやすい、焼棄、凍結、電撃、溶解、毒殺、 動物スレイ、邪悪スレイ、悪魔スレイ、不死スレイ、オークスレイ、トロルスレイ、巨人スレイ、ドラゴンスレイ、 *ドラゴンスレイ*、人間スレイ、切れ味、地震、理力。
o_ptr | 対象のオブジェクト構造体ポインタ |
|
static |
アーティファクトのバイアスIDを保管する。 / Use for biased artifact creation