주문, 인챈트 및 기타 커스텀 효과
주문 (Spells)
data/json/debug_spells.json에 템플릿 주문이 있으며, 여기에 복사되어 있습니다:
{
// This spell exists in json as a template for contributors to see the possible values of the spell
"id": "example_template", // id of the spell, used internally. not translated
"type": "SPELL",
"name": "Template Spell", // name of the spell that shows in game
"description": "This is a template to show off all the available values",
"blocker_mutations": ["THRESH_RAT"], // list of mutations that will not allow you to cast the spell
"valid_targets": ["hostile", "ground", "self", "ally"], // if a valid target is not included, you cannot cast the spell on that target.
"effect": "shallow_pit", // effects are coded in C++. A list will be provided below of possible effects that have been coded.
"effect_str": "template", // special. see below
"extra_effects": [{ "id": "fireball", "hit_self": false, "max_level": 3 }], // this allows you to cast multiple spells with only one spell
"melee_dam": ["cut", "elemental"], // the melee damage of these listed types will be added to spell damage. Supports standard damage type strings and also the categories of 'physical' and 'elemental' for convenience
"affected_body_parts": [
"HEAD",
"TORSO",
"MOUTH",
"EYES",
"ARM_L",
"ARM_R",
"HAND_R",
"HAND_L",
"LEG_L",
"FOOT_L",
"FOOT_R"
], // body parts affected by effects
"spell_class": "NONE", //
"scale_str": true, // The spell will scale off of strength. Also valid: scale_dex, scale_per, scale_int
"base_casting_time": 100, // this is the casting time (in moves)
"base_energy_cost": 10, // the amount of energy (of the requisite type) to cast the spell
"energy_source": "MANA", // the type of energy used to cast the spell. types are: MANA, BIONIC, HP, STAMINA, FATIGUE, NONE (none will not use mana)
"components": [requirement_id], // an id from a requirement, like the ones you use for crafting. spell components require to cast.
"difficulty": 12, // the difficulty to learn/cast the spell
"max_level": 10, // maximum level you can achieve in the spell
"min_damage": 0, // minimum damage (or "starting" damage)
"max_damage": 100, // maximum damage the spell can achieve
"damage_increment": 2.5, // to get damage (and any of the other below stats) multiply this by spell's level and add to minimum damage
"min_aoe": 0, // area of effect (currently not implemented)
"max_aoe": 5,
"aoe_increment": 0.1,
"min_range": 1, // range of the spell
"max_range": 10,
"range_increment": 2,
"min_accuracy": 50, // percentage "accuracy" of the spell. used for determining which body part was hit
"max_accuracy": 70,
"accuracy_increment": 2,
"min_dot": 0, // damage over time (currently not implemented)
"max_dot": 2,
"dot_increment": 0.1,
"min_duration": 0, // duration of spell effect (if the spell has a special effect)
"max_duration": 1000,
"duration_increment": 4,
"min_pierce": 0, // how much of the spell pierces armor (currently not implemented)
"max_pierce": 1,
"pierce_increment": 0.1,
"field_id": "fd_blood", // the string id of the field (currently hardcoded)
"field_chance": 100, // one_in( field_chance ) chance of spawning a field per tile in aoe
"min_field_intensity": 10, // field intensity of fields generated
"max_field_intensity": 10,
"field_intensity_increment": 1,
"field_intensity_variance": 0.1, // the field can range in intensity from -variance as a percent to +variance as a percent i.e. this spell would be 9-11
"sound_type": "combat", // the type of sound. possible types are: background, weather, music, movement, speech, activity, destructive_activity, alarm, combat, alert, order
"sound_description": "a whoosh", // the sound description. in the form of "You hear %s" by default it is "an explosion"
"sound_ambient": true, // whether or not this is treated as an ambient sound or not
"sound_id": "misc", // the sound id
"sound_variant": "shockwave", // the sound variant
"sprite": "fd_electricity", // This changes the spell sprite to any valid field ID. Do not use with NO_EXPLOSION_VFX
"learn_spells": { "acid_resistance_greater": 15 } // You learn the specified spell once your level in this spell is greater than or equal to the number shown.
}
위의 대부분의 기본값은 0 또는 "NONE"이므로, 주문과 관련이 없는 경우 대부분의 값을 생략할 수 있습니다.
이들 중 일부의 값을 결정할 때, 일부 공식은 선형이 아니라는 점에 유의하는 것이 중요합니다. 예를 들어, 주문 실패 확률에 대한 공식은 다음과 같습니다:
( ( ( ( spell_level - spell_difficulty ) * 2 + intelligence + spellcraft_skill ) - 30 ) / 30 ) ^ 2
즉, 난이도 0인 주문을 지능 8, 주문술 0, 주문 레벨 0인 플레이어가 시전하면 53%의 주문 실패 확률을 갖게 됩니다. 반면에, 지능 12, 주문술 6, 동일한 주문의 레벨 6인 플레이어는 0%의 주문 실패 확률을 갖게 됩니다.
그러나 경험치 획득은 계산하기가 조금 더 복잡합니다. 레벨에 도달하는 데 필요한 경험치에 대한 공식은 다음과 같습니다:
e ^ ( ( level + 62.5 ) * 0.146661 ) ) - 6200
현재 구현된 주문 플래그
-
PERMANENT- 이 주문으로 생성된 아이템이나 생물은 사라지지 않고 정상적으로 죽지 않습니다 -
IGNORE_WALLS- 주문의 범위 효과가 벽을 통과합니다 -
SWAP_POS- 원거리 주문에 사용될 때 시전자를 대상 위치로 순간이동시키며, 방해가 되는 생물과 위치를 바꿉니다 -
HOSTILE_SUMMON- 소환 주문은 항상 적대적인 몬스터를 생성합니다 -
HOSTILE_50- 소환된 몬스터가 50%의 확률로 우호적으로 생성됩니다 -
SILENT- 주문이 대상에서 소음을 내지 않습니다 -
NO_EXPLOSION_VFX- 주문에 시각적 폭발이 없습니다 -
LOUD- 주문이 대상에서 추가 소음을 냅니다 -
VERBAL- 주문이 시전자 위치에서 소음을 내며, 입 방해가 실패율에 영향을 줍니다 -
SOMATIC- 팔 방해가 실패율과 시전 시간에 (약간) 영향을 줍니다 -
NO_HANDS- 손이 주문 에너지 비용에 영향을 주지 않습니다 -
UNSAFE_TELEPORT- 순간이동 주문이 시전자나 다른 사람을 죽일 위험이 있습니다 -
NO_LEGS- 다리가 시전 시간에 영향을 주지 않습니다 -
CONCENTRATE- 집중력이 주문 실패율에 영향을 줍니다 -
RANDOM_AOE- 일반 동작 대신 min+increment*level과 max 사이의 무작위 숫자를 선택합니다 -
RANDOM_DAMAGE- 일반 동작 대신 min+increment*level과 max 사이의 무작위 숫자를 선택합니다 -
DIVIDE_DAMAGE- 주문의 피해를 맞은 모든 생물에게 균등하게 나눕니다 -
RANDOM_DURATION- 일반 동작 대신 min+increment*level과 max 사이의 무작위 숫자를 선택합니다 -
RANDOM_TARGET- 일반 동작 대신 범위 내의 무작위 유효 대상을 선택합니다. -
MUTATE_TRAIT- 변이 spell_effect를 재정의하여 카테고리 대신 특정 trait_id를 사용합니다 -
WONDER- 각 extra_spells를 시전하는 대신, 그 중 N개를 선택하여 시전합니다(여기서 N은 std::min( damage(), number_of_spells )입니다) -
PAIN_NORESIST- 고통을 변경하는 주문은 저항될 수 없습니다(둔화된 특성과 같이) -
BRAWL- Brawler 특성을 가진 캐릭터가 주문을 시전할 수 있도록 허용합니다(그렇지 않으면 불가능) -
DUPE_SOUND- 주문이 같은 소리를 여러 번 재생할 수 있도록 허용합니다(즉, 영향을 받은 각 대상에 대한 소리) -
ADD_MELEE_DAM- 현재 장착한 아이템의 최고 근접 피해 카테고리를 주문의 피해에 추가합니다(레거시, Bash Stab 및 Cut만 처리합니다. 대신melee_dam필드를 사용하세요) -
PHYSICAL- BRAWL을 의미하며 또한 Brawler가 주문을 사용할 때 보너스를 받는다는 것을 의미합니다. 주로 "Physical Techniques"용입니다 -
MOD_MELEE_MOVES- 무기의 근접 이동 비용이 "주문"의 시전 비용에 추가됩니다. 특수 동작: 이 플래그와 함께 base_casting_time이 음수인 경우, "increment"는 대신 근접 비용에 대한 배수입니다(주문 형태로 빠른 공격을 복제하는 데 유용합니다) -
MOD_MEELE_STAM-MOD_MELEE_MOVES와 유사하지만 주문의 시전 비용과 무기의 스태미나 비용에 적용됩니다. 주로 스태미나 기술용입니다. 음수 기본 비용과 increment 필드와 관련된 동일한 특수 동작을 가집니다. -
NO_FAIL- 이 주문은 시전할 때 실패할 수 없습니다
현재 구현된 효과 및 특수 규칙
-
pain_split- 모든 사지의 피해를 균등하게 만듭니다. -
move_earth- 대상 위치를 "파냅니다". 일부 지형은 이 방식으로 파낼 수 없습니다. -
target_attack- 대상에게 피해를 입힙니다(벽을 무시합니다). 음수 피해는 대상을 치유합니다. "effect_str"이 포함된 경우, 가능하면 affected_body_parts에 정의된 신체 부위에 해당 효과(json의 다른 곳에 정의됨)를 대상에 추가합니다. 모든 범위 효과는 대상을 중심으로 한 원형 영역으로 나타나며, valid_targets에만 피해를 입힙니다. (범위 효과는 벽을 무시하지 않습니다) -
projectile_attack- target_attack과 유사하지만, 발사한 투사체가 통과할 수 없는 지형에서 멈춥니다. "effect_str"이 포함된 경우, 가능하면 affected_body_parts에 정의된 신체 부위에 해당 효과(json의 다른 곳에 정의됨)를 대상에 추가합니다. -
cone_attack- 대상을 향해 범위까지 원뿔을 발사합니다. 원뿔의 호는 도 단위로 범위 효과입니다. 벽에서 멈춥니다. "effect_str"이 포함된 경우, 가능하면 affected_body_parts에 정의된 신체 부위에 해당 효과(json의 다른 곳에 정의됨)를 대상에 추가합니다. -
line_attack- 대상을 향해 너비가 범위 효과인 선을 발사하며, 도중에 벽에 의해 차단됩니다. "effect_str"이 포함된 경우, 가능하면 affected_body_parts에 정의된 신체 부위에 해당 효과(json의 다른 곳에 정의됨)를 대상에 추가합니다. -
spawn_item- 지속 시간이 끝나면 사라질 아이템을 생성합니다. 기본 지속 시간은 0입니다. 피해가 수량을 결정합니다. -
summon_vehicle- 지속 시간 후 사라져야 하는 지정된 차량을 생성합니다 -
summon- 지속 시간이 끝나면 사라질 몬스터를 생성합니다. 기본적으로 플레이어에게 우호적입니다. 피해가 수량을 결정합니다. -
translocate- Magical Nights의 게이트와 같이 등록된 'translocators' 사이에서 플레이어를 순간이동시킵니다 -
teleport_random- 플레이어를 범위 공간만큼 무작위로 순간이동시키며 범위 효과 변화가 있습니다 -
recover_energy- 주문의 피해와 같은 에너지 소스(effect_str에 정의됨, 아래 참조)를 회복합니다
- "MANA"
- "STAMINA"
- "FATIGUE"
- "PAIN"
- "BIONIC"
-
ter_transform- 대상을 중심으로 한 영역의 지형과 가구를 변환합니다. 범위 효과 영역의 점 중 하나가 변경될 확률은 one_in( damage )입니다. effect_str은 ter_furn_transform의 id입니다. -
vomit- 범위 효과 내의 모든 생물이 가능하면 즉시 구토합니다. -
timed_event- 플레이어에게만 시간 제한 이벤트를 추가합니다. 유효한 시간 제한 이벤트: "help", "wanted", "robot_attack", "spawn_wyrms", "amigara", "roots_die", "temple_open", "temple_flood", "temple_spawn", "dim", "artifact_light" 참고: 이것은 아티팩트 활성 효과에만 추가되었습니다. 지원이 제한되어 있으며, 자신의 책임 하에 사용하세요. -
explosion- 폭발이 대상을 중심으로 하며, 위력은 damage()이고 계수는 aoe()/10입니다 -
flashbang- 섬광탄 효과가 대상을 중심으로 하며, 위력은 damage()이고 계수는 aoe()/10입니다 -
mod_moves- 대상에 damage() 이동을 추가합니다. 음수일 수 있어 해당 시간 동안 대상을 "동결"할 수 있습니다 -
map- 플레이어를 중심으로 aoe()의 반경까지 오버맵을 매핑합니다 -
morale- 범위 효과 내의 모든 npc 또는 아바타에게 값이 damage()인 사기 효과를 부여합니다. decay_start는 duration() / 10입니다. -
charm_monster- damage()보다 hp가 적은 몬스터를 대략 duration() 동안 매혹시킵니다 -
mutate- 대상을 변이시킵니다. effect_str이 정의된 경우, 무작위로 선택하는 대신 해당 카테고리로 변이합니다. "MUTATE_TRAIT" 플래그는 effect_str이 카테고리 대신 특정 특성이 되도록 허용합니다. damage() / 100은 변이가 성공할 백분율 확률입니다(값 10000은 100.00%를 나타냅니다) -
bash- 대상의 지형을 때립니다. damage()를 타격의 강도로 사용합니다. -
dash- 플레이어를 대상 타일로 이동시키며, 필드를 남길 수 있습니다. -
area_push- 단일 지점에서 바깥쪽으로 밀어냅니다 -
directed_push당신으로부터 멀어지는 단일 방향으로 밀어냅니다. -
noise주문의 피해와 같은 소음 크기로 소음을 냅니다. -
WONDER- 위와 달리, 이것은 "효과"가 아니라 "플래그"입니다. 이것은 부모 주문의 동작을 크게 변경합니다: 주문 자체는 시전되지 않지만, 피해와 범위 정보는 extra_effects를 시전하는 데 사용됩니다. N개의 extra_effects가 무작위로 선택되어 시전되며, 여기서 N은 주문의 현재 피해입니다(RANDOM_DAMAGE 플래그와 스택됩니다) 그리고 이 주문에 의해 시전된 주문의 메시지도 표시됩니다. 이 주문의 메시지가 표시되지 않기를 원하면 메시지가 빈 문자열인지 확인하세요. -
RANDOM_TARGET- (wonder와 같은) 특수 주문 플래그로, 시전자가 대상을 선택하는 대신 주문이 범위 내의 무작위 유효 대상을 선택하도록 강제합니다. 이것은 extra_effects에도 영향을 줍니다.
공격 타입을 가진 주문의 경우, 사용 가능한 피해 타입(대소문자 구분 안 함):
fireacidbashbulletbio- 독과 같은 내부 피해coldcutelectriclight- 실제 빛과 '신성함' 모두에 사용됨darkpsi- 정신stabtrue- 이 피해 타입은 방어구를 완전히 통과하므로 매우 강력합니다. 지정되지 않은 경우 기본 피해 타입입니다.
레벨업하는 주문
레벨업할 때 효과가 변경되는 주문은 최소 및 최대 효과와 증분이 있어야 합니다. 최소 효과는 주문이 레벨 0에서 수행할 것이고, 최대 효과는 성장을 멈추는 곳입니다. 증분은 레벨당 얼마나 변경되는지입니다. 예:
"min_range": 1,
"max_range": 25,
"range_increment": 5,
최소값과 최대값은 항상 같은 부호를 가져야 하지만, 음수일 수 있습니다. 예를 들어 고통이나 스태미나 피해를 일으키기 위해 음수 'recover' 효과를 사용하는 주문의 경우입니다. 예:
{
"id": "stamina_damage",
"type": "SPELL",
"name": "Tired",
"description": "decreases stamina",
"valid_targets": ["hostile"],
"min_damage": -2000,
"max_damage": -10000,
"damage_increment": -3000,
"max_level": 10,
"effect": "recover_energy",
"effect_str": "STAMINA"
}
주문 학습
구현된 주문 부여 방법은 세 가지입니다: 변이는 "spells_learned" 필드로 주문을 부여할 수 있으며, 부여된 레벨도 지정할 수 있습니다. 특정 주문은 "learn_spells" 변수를 통해 적절한 레벨에 도달하면 주문을 가르칠 수도 있습니다. 마지막으로, use_action을 통해 아이템에서 주문을 배울 수 있으며, 이것은 주문을 사용하는 것 외에 주문을 훈련하는 유일한 방법이기도 합니다. 세 가지 모두의 예는 아래에 나와 있습니다:
{
"id": "DEBUG_spellbook",
"type": "GENERIC",
"name": "A Technomancer's Guide to Debugging C:BN",
"description": "static std::string description( spell sp ) const;",
"weight": 1,
"volume": "1 ml",
"symbol": "?",
"color": "magenta",
"use_action": {
"type": "learn_spell",
"spells": [ "debug_hp", "debug_stamina", "example_template", "debug_bionic", "pain_split", "fireball" ] // this is a list of spells you can learn from the item
}
},
아래 예의 경우 Acid Resistance가 레벨 15에 도달하면 Greater Acid Resistance 주문을 배웁니다
{
"id": "acid_resistance",
"type": "SPELL",
"name": { "str": "Acid Resistance" },
"description": "Protects the user from acid.",
...
"learn_spells": { "acid_resistance_greater": 15 }
}
이 주문서를 지능, 주문술, 집중력에 따라 턴당 ~1 경험치의 비율로 공부할 수 있습니다.
"spells_learned": [ [ "debug_hp", 1 ], [ "debug_stamina", 1 ], [ "example_template", 1 ], [ "pain_split", 1 ] ],
직업 및 NPC 클래스의 주문
다음과 같이 직업이나 NPC 클래스 정의에 "spell" 멤버를 추가할 수 있습니다:
"spells": [ { "id": "summon_zombie", "level": 0 }, { "id": "magic_missile", "level": 10 } ]
참고: 이것은 클래스와 충돌하는 주문을 배울 수 있게 합니다. 또한 클래스를 획득하는 프롬프트를 제공하지 않습니다. 직업에 이것을 추가할 때 신중하세요!
몬스터의 주문
몬스터의 특수 공격으로 주문을 할당할 수 있습니다.
{ "type": "spell", "spell_id": "burning_hands", "spell_level": 10, "cooldown": 10 }
- spell_id: 시전되는 주문의 id.
- spell_level: 주문이 시전되는 레벨. 몬스터가 시전하는 주문은 플레이어 주문처럼 레벨을 얻지 않습니다.
- cooldown: 몬스터가 이 주문을 얼마나 자주 시전할 수 있는지
인챈트 (Enchantments)
인챈트는 아이템, 생체공학 또는 변이에 의해 제공되는 커스텀 효과를 지정할 수 있게 합니다.
필드
id
(string) 이 인챈트의 고유 식별자.
has
(string) 인챈트가 활성화되기 위한 올바른 위치에 있는지 여부를 결정하는 방법.
이 필드는 아이템에만 관련됩니다.
값:
HELD(기본값) - 인벤토리에 있을 때WIELD- 손에 장착했을 때WORN- 방어구로 착용했을 때
condition
(string) 인챈트가 활성화되기 위한 올바른 환경에 있는지 여부를 결정하는 방법.
값:
ALWAYS(기본값) - 항상 활성UNDERGROUND- 아이템 소유자가 Z-레벨 0 아래에 있을 때ABOVEGROUND- 아이템 소유자가 Z-레벨 0 이상에 있을 때UNDERWATER- 소유자가 수영 가능한 지형에 있을 때NIGHT- 밤일 때DUSK- 황혼일 때DAY- 낮일 때DAWN- 새벽일 때ACTIVE- 인챈트가 부착된 아이템, 변이, 생체공학 등이 활성화되어 있을 때.INACTIVE-ACTIVE의 반대
emitter
(string) 이 인챈트가 활성화되어 있는 한 활성화되는 이미터의 식별자. 기본값: 이미터 없음.
ench_effects
(array) 이 인챈트가 활성화되어 있는 한 지정된 강도의 효과를 부여합니다.
단일 항목에 대한 구문:
{
// (필수) 효과의 식별자
"effect": "effect_identifier",
// (필수) 강도. 실제로 강도가 없는 효과의 경우 1로 설정하면 됩니다.
"intensity": 2
}
hit_you_effect
(array) 인챈트가 활성화되어 있고 캐릭터가 생물을 근접 공격할 때 시전될 수 있는 주문 목록.
단일 항목에 대한 구문:
{
// (필수) 주문의 식별자
"id": "spell_identifier",
// true인 경우, 주문은 캐릭터의 위치를 중심으로 합니다.
// false인 경우, 주문은 공격하는 생물을 중심으로 합니다.
// 기본값: false
"hit_self": false,
// 트리거 확률, X 중 1.
// 기본값: 1
"once_in": 1,
// 당신을 위해 주문이 트리거될 때의 메시지.
// %1$s는 당신의 이름, %2$s는 생물의 이름
// 기본값: 메시지 없음
"message": "You pierce %2$s with Magic Piercing!",
// NPC를 위해 주문이 트리거될 때의 메시지.
// %1$s는 그들의 이름, %2$s는 생물의 이름
// 기본값: 메시지 없음
"npc_message": "%1$s pierces %2$s with Magic Piercing!",
// TODO: 깨졌나요?
"min_level": 1,
// TODO: 깨졌나요?
"max_level": 2
}
hit_me_effect
(array) 인챈트가 활성화되어 있고 캐릭터가 생물에게 근접 공격당할 때 시전될 수 있는 주문 목록.
hit_you_effect와 동일한 구문.
mutations
(array) 인챈트가 활성화되어 있는 동안 일시적으로 부여되는 변이 목록.
intermittent_activation
(object) 인챈트가 활성화되어 있는 동안 발생하는 무작위 효과를 지정하는 규칙.
구문:
{
// 인챈트가 활성화되어 있는 동안 매 턴마다 실행할 검사 목록.
"effects": [
{
// 평균 활성화 빈도.
// 통과할 정확한 확률은 턴당 "X를 턴으로 변환한 것 중 1" 입니다.
"frequency": "5 minutes",
// 검사가 통과하면 시전할 주문 목록.
"spell_effects": [
{
// (필수) 주문의 식별자
"id": "nasty_random_effect",
// TODO: 깨졌나요?
"min_level": 1,
// TODO: 깨졌나요?
"max_level": 5
// TODO: 다른 필드들이 로드되는 것으로 보이지만 사용되지 않음
}
]
}
]
}
values
(array) 수정할 기타 캐릭터/아이템 값 목록.
단일 항목에 대한 구문:
{
// (필수) 수정할 값 ID, 아래 목록 참조.
"value": "VALUE_ID_STRING",
// 가산 보너스. 선택적 정수, 기본값은 0.
// 일부 값에서는 무시될 수 있습니다.
"add": 13,
// 곱셈 보너스. 선택적, 기본값은 0.
"multiply": -0.3
}
가산 보너스는 곱셈과 별도로 적용되며, 다음과 같습니다:
bonus = add + base_value * multiply
따라서, multiply 값 -0.8은 -80%이고, multiply 2.5는 +250%입니다. 정수 값을 수정할 때, 최종 보너스는 0으로 반올림됩니다(잘림).
여러 인챈트(예: 아이템에서 하나, 생체공학에서 하나)가 동일한 값을 수정하는 경우, 보너스는 반올림 없이 함께 더해지며, 그런 다음 합계가 기본 값에 적용되기 전에 반올림됩니다(필요한 경우).
캐릭터가 한 번에 가질 수 있는 인챈트 수에 제한이 없으므로, 최종 계산된 값에는 의도하지 않은 동작을 방지하기 위해 하드코딩된 경계가 있습니다.
수정 가능한 값의 ID
캐릭터 값
STRENGTH
힘 스탯. 여기서 base_value는 기본 스탯 값입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
DEXTERITY
민첩성 스탯. 여기서 base_value는 기본 스탯 값입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
PERCEPTION
지각 스탯. 여기서 base_value는 기본 스탯 값입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
INTELLIGENCE
지능 스탯. 여기서 base_value는 기본 스탯 값입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
SPEED
캐릭터 속도. 여기서 base_value는 고통/배고픔/무게 페널티를 포함한 캐릭터 속도입니다. 최종 속도 값은 기본 속도의 25% 아래로 내려갈 수 없습니다.
ATTACK_COST
근접 공격 비용. 낮을수록 좋습니다. 여기서 base_value는 스탯 및 기술의 수정자를 포함한 주어진 무기의 공격 비용입니다. 최종 값은 25 아래로 내려갈 수 없습니다.
MOVE_COST
이동 비용. 여기서 base_value는 옷과 특성의 수정자를 포함한 타일 이동 비용입니다. 최종 값은 20 아래로 내려갈 수 없습니다.
METABOLISM
신진대사율. 이 수정자는 add 필드를 무시합니다. 여기서 base_value는 특성에 의해 수정된 PLAYER_HUNGER_RATE입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
MANA_CAP
마나 용량. 여기서 base_value는 특성에 의해 수정된 캐릭터의 기본 마나 용량입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
MANA_REGEN
마나 재생 속도. 이 수정자는 add 필드를 무시합니다. 여기서 base_value는 특성에 의해 수정된 캐릭터의 기본 마나 획득 속도입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
STAMINA_CAP
스태미나 용량. 이 수정자는 add 필드를 무시합니다. 여기서 base_value는 특성에 의해 수정된 캐릭터의 기본 스태미나 용량입니다. 최종 값은 PLAYER_MAX_STAMINA의 10% 아래로 내려갈 수 없습니다.
STAMINA_REGEN
스태미나 재생 속도. 이 수정자는 add 필드를 무시합니다. 여기서 base_value는 입 방해에 의해 수정된 캐릭터의 기본 스태미나 획득 속도입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
THIRST
갈증 획득 속도. 이 수정자는 add 필드를 무시합니다. 여기서 base_value는 캐릭터의 기본 갈증 획득 속도입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
FATIGUE
피로 획득 속도. 이 수정자는 add 필드를 무시합니다. 여기서 base_value는 캐릭터의 기본 피로 획득 속도입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
BONUS_DODGE
회피 페널티가 시작되기 전 턴당 추가 회피 수. 여기서 base_value는 페널티 전 캐릭터의 기본 턴당 회피 수입니다(보통 1). 최종 값은 0 아래로 내려갈 수 있으며, 이는 회피 굴림에 페널티를 초래합니다.
ARMOR_X
들어오는 피해 수정자. Active Defense System 생체공학 이후에 적용되지만 피해가 아이템에 의해 흡수되기 전입니다. 여기서 base_value는 해당 타입의 들어오는 피해 값이므로, 양수 add와 1보다 큰 mul은 캐릭터가 받는 피해를 증가시킵니다. 각 피해 타입에는 자체 인챈트 값이 있습니다:
ARMOR_ACIDARMOR_BASHARMOR_BIOARMOR_BULLETARMOR_COLDARMOR_CUTARMOR_LIGHTARMOR_DARKARMOR_PSIARMOR_ELECARMOR_HEATARMOR_STAB
아이템 값
ITEM_ATTACK_COST
이 아이템의 공격 비용(근접 또는 던지기). 조건 / 위치를 무시하며 항상 활성입니다. 여기서 base_value는 기본 아이템 공격 비용입니다. 최종 값은 0 아래로 내려갈 수 없습니다.
ITEM_DAMAGE_X
이 아이템의 근접 피해. 조건 / 위치를 무시하며 항상 활성입니다. 여기서 base_value는 해당 타입의 기본 아이템 피해입니다. 최종 값은 0 아래로 내려갈 수 없습니다. 지원되는 피해 타입:
ITEM_DAMAGE_BASHITEM_DAMAGE_CUTITEM_DAMAGE_STABITEM_DAMAGE_BULLETITEM_DAMAGE_ACIDITEM_DAMAGE_BIOITEM_DAMAGE_COLDITEM_DAMAGE_DARKITEM_DAMAGE_ELECTRICITEM_DAMAGE_FIREITEM_DAMAGE_LIGHTITEM_DAMAGE_PSIITEM_DAMAGE_TRUE
ITEM_ARMOR_X
이 아이템의 들어오는 피해 수정자, 피해가 아이템에 의해 흡수되기 전에 적용됩니다. 여기서 base_value는 해당 타입의 들어오는 피해 값이므로, 양수 add와 1보다 큰 mul은 캐릭터가 받는 피해를 증가시킵니다. 각 피해 타입에는 자체 인챈트 값이 있습니다:
ITEM_ARMOR_ACIDITEM_ARMOR_BASHITEM_ARMOR_BIOITEM_ARMOR_BULLETITEM_ARMOR_COLDITEM_ARMOR_CUTITEM_ARMOR_LIGHTITEM_ARMOR_DARKITEM_ARMOR_PSIITEM_ARMOR_ELECITEM_ARMOR_HEATITEM_ARMOR_STAB
예제
[
{
"//": "On-hit effect for ink glands mutation, implemented via enchantment.",
"type": "enchantment",
"id": "MEP_INK_GLAND_SPRAY",
"hit_me_effect": [
{
"id": "generic_blinding_spray_1",
"hit_self": false,
"once_in": 15,
"message": "Your ink glands spray some ink into %2$s's eyes.",
"npc_message": "%1$s's ink glands spay some ink into %2$s's eyes."
}
]
},
{
"//": "This one would look good on a katana for an anime mod.",
"type": "enchantment",
"id": "ENCH_ULTIMATE_ASSKICK",
"has": "WIELD",
"condition": "ALWAYS",
"ench_effects": [{ "effect": "invisibility", "intensity": 1 }],
"hit_you_effect": [{ "id": "AEA_FIREBALL" }],
"hit_me_effect": [{ "id": "AEA_HEAL" }],
"mutations": ["KILLER", "PARKOUR"],
"values": [{ "value": "STRENGTH", "multiply": 1.1, "add": -5 }],
"intermittent_activation": {
"effects": [
{
"frequency": "1 hour",
"spell_effects": [
{ "id": "AEA_ADRENALINE" }
]
}
]
}
}
]