この記事を使って出来ること:
装備や特技といったデータをカスタマイズして、説明文に特殊なロール用のボタンを入れる、何らかの情報を管理するためのオンオフ可能なボタンを作るなど、もっともっと便利にカスタマイズすることが出来ます。
(このiマークのある囲み記事は訳者の注釈です)
- Item Attributeを使ったBracket Bracket using Item Attribute
- valueでステータスを計算する Character stats in value formula
- 属性のBracket Bracketed Properties
- ダメージダイスの上書き Damage Dice override
- 上級のセレクター Advanced Selectors
- 習熟度で条件設定する Predicate by proficiency
- 打撃にオプションを使うか特性を使うか Options vs. Traits for Strikes
- ルール要素とマクロ Rule Elements and Macros
導入 Introduction
ルール要素の使用についてのショートガイド:
この文書で言うアイテムとは、特技/クラス特徴/呪文効果/武器といった、キャラクターに追加することが出来るもの全てを基本とする
このインターフェースは現在、開発中であって、変更されることがある
ルール要素を追加する際には、予備の、あるいは空のトークン/アクターでトラブルシューティング/実験を行うようにすること
ディスコードでルール要素について話すのがみんな大好きです! 質問や助けて欲しいときはぜひどうぞ!
この文章は網羅的ではありません
ルール要素って? What are they?
キャラクターシートを何らかの方法で修正するようなアイテムに適用される一連の取り扱いのことを、ルール要素と呼ぶ。別の言い方をすると、コードなしでキャラクターシートを変化させるということだ!
どういう時に使うの? When would I use them?
修正値の設定、バーバリアンの激怒、ブレス/勇気鼓舞の呪芸などキャラクターに適用する状態を作るなどなど。
どうやって使うの? How do they work
- ゲーム設定>コンフィグ設定>システム設定>アドヴァンスド・ルール要素UI
- チェックして起動状態にする
・どれかのアイテムを開いて、「ルール」タブが表示されていることをチェックする - 辞典を開き、呪文効果を見つけてキャラクターに一つ、ドラッグしてみる
・勇気鼓舞の呪芸が手をつけるのに良い - 君が選んだ呪文の効果を開き、ルールタブに書かれている文章を見る。それがルール要素だ。
正しく作成されたルール要素は幾つかのマクロの行の機能を果たす。コツを学べば、簡単に自動化が出来るようになる。
最初のルール要素 My first rule element
このガイドの最初のルール要素は、アームバンド・オヴ・アスレティシズムのアイテム・ボーナスである。
{
"key":"PF2E.RuleElement.FlatModifier",
"label":"Armbands of Athleticism",
"selector":"athletics",
"type":"item",
"value":2
}
コツを掴むのは、難しいかもしれない。一度、つかめば、何行ものコードを書かなくてもいいようになる。
これをステップごとに見ていこう:
- Key: コード内のルール要素に与えられた名前
- これが君のルールを正さない場合は、何もしないこと
- Label: ルールに名前をつける。flat modiferの場合は、特定のロールの修正値を見る際に文章が現れる
- これが実際に動作しているか確認するには、ルール効果を適用してからAC修正値を見ること、「勇気鼓舞の呪芸」が参考になる
- Selector: 修正値を何に適用するか、指定する、あるいは選択する
- 文書の一番下にリストがある
- 間違ったselectorにすると、ルールは役立たずになる
- 特定のアイテムやアイテム種別を対象にするには、アイテムの_idを追加すること
- Type: 修正値の種別
- ルール通りにボーナスを累積させるために適切に設定する必要がある
- Value: 修正値の値。ペナルティを適用するなら、この値はマイナスになる
もう少し上級者向けのケースが「勇気鼓舞の呪芸」である。これらのうちの一つだけが新しい要素なので、このガイドではその他の二つは「縮小」しておく。
{"key":"PF2E.RuleElement.FlatModifier","label":"Inspire Courage","selector":"attack","type":"status","value":1}
{"key":"PF2E.RuleElement.FlatModifier","label":"Inspire Courage","selector":"damage","type":"status","value":1}
{
"key":"PF2E.RuleElement.FlatModifier",
"label":"Inspire Courage (vs fear)",
"predicate":{
"all":[
"fear"
]
},
"selector":"will",
"type":"status",
"value":1
}
- Predicate: もし、特定の場合にだけ(たとえば、恐怖に対する場合だけ)ボーナスを適用させたいなら、君はpredicateを使うことが出来る。これには3つのモードがある。
- “all”: リスト内の全てが、修正値を適用すべきロールの記述である場合
- “any”: リストの内、少なくとも一つがあてはまれば適用される修正値の記述である場合
- “not”: リストの内、少なくとも一つがあてはまれば適用されない修正値の記述である場合
- predicateを間違えると、ルールが予想外の挙動をすることがある。センシティブなのである。
- predicatesは現在、呪文セーヴ・ボタン及び全ての特性でクエリーされる武器攻撃/ダメージを自動化している。これらはマクロで設定することも出来る。
{
“key”:”PF2E.RuleElement.FlatModifier”, //ルール要素の名前、FlatModiferという仕組みでこの部分を動かしますよという宣言
“label”:”Inspire Courage (vs fear)”, //効果に名前をつけている(好きにつけてよい)
“predicate”:{ “all”:[ “fear” ] }, //恐怖効果に対して全て適用
“selector”:”will”, //対象は意志セーヴ
“type”:”status”, //ステータス・ボーナスとして
“value”:1 //値は「+1」
}
基本ルール要素 Basic Rule Elements
ここと次の項目では、全てのルール要素の基本バリエーションを紹介する。それらのほとんどは、このガイドの後半にある上級者向けのルール要素制御で強化することが出来る。
Flat Modifier
既に導入でFlat Modifierにはスポットライトを当てているが、もう一つ、メジャーな自動化の特徴、ブラケットbracketsを紹介するべきだろう:
PF2E.RuleElement.FlatModifier
{
"key": "PF2E.RuleElement.FlatModifier",
"selector": "damage",
"label": "Rage",
"predicate": {
"not": [
"agile",
"rage"
]
},
"value": {
"brackets": [
{
"end": 6,
"value": 2
},
{
"start": 7,
"end": 14,
"value": 6
},
{
"start": 15,
"value": 12
}
]
}
}
Bracketsとは、デフォルトでは、ルールが紐付けられているプレイヤーあるいはモンスターのレベルを使う。この変更によって、怒りの本能のバーバリアンによる激怒ダメージを追加できるのである。
・レベル6以下:近接武器と素手打撃は+2点(遠隔武器と機敏武器は除く)
・レベル7-14:武器開眼によって本能の特化効果が載る。怒りの本能は上記と同じ縛りで+6点のボーナス。
・レベル15以上:上級武器開眼によって更に+12点へとボーナスが成長する。これをルール要素にすると上記のようになる……という紹介になっている(恐らくpredicateのrageはrangedの間違いか)
切り替えボタン Toggle Property
Toggle Propertyによって、キャラクターのアクションシートにチェックボックスを追加することが出来る。切り替える内容についてのやり方は「flags.pf2e.rollPOptions」のスキーマに従う。これは、切り替えボタンでオンオフされている別のルール要素のセレクターとなるもので、そのルール要素のpredicateで使われる、切り替えボタンの固有の名前である。
PF2E.RuleElement.ToggleProperty
{
"key": "PF2E.RuleElement.ToggleProperty",
"property": "flags.pf2e.rollOptions.damage-roll.power-attack"
}
チェックボックス横の名前をそのアイテムの名前からもっとふさわしいものに変更するためにtoggle Propertyはlabelを持つこともある。「強打」については、ラベルは特技の名前になるから、変更する必要はない。
ダメージ・ダイス Damage Dice
Damage Diceというルール要素はダメージあるいはクリティカル時のダメージロールに追加のダイスを加える。例は、即興武器でのクリティカル・ヒットに3d6点の刺突ダメージを追加するというものである。
PF2E.RuleElement.DamageDice
{
"critical": true,
"key": "PF2E.RuleElement.DamageDice",
"selector": "damage",
"diceNumber": 3,
"dieSize": "d6",
"damageType": "piercing",
"predicate": {
"all": [
"improvised"
]
},
"label": "Shattering Strike"
}
「dieSize」と 「damageType」は省略可能である。その場合、追加のダメージダイスは、武器に既に設定されているダイスサイズとダメージ種別になる。
「diceNumber」と「dieSize」のどちらかは、bracketsの形で設定することが出来る。この例は上級向けセクションで使われている。このルールで極めて限定した武器を対象にする方法もまた、上級向けセクションで説明されている。
速度 Base Speed
フライの呪文効果といった速度に数値を加えるものや、登攀速度を与えるような特技には、Base Speedのルールを使うことが出来る。
速度のルール要素は使い魔のために作られたが、PCのリファクタリングをして同じデータ構造を使うという意図もあった。このリファクタリングはまだされていない。
PF2E.RuleElement.BaseSpeed
{
"key": "PF2E.RuleElement.BaseSpeed",
"selector": "fly",
"value": 30
}
Base Speed要素のセレクターは、章末のセレクターリストと、「speed」の部分を省略するというところが異なる。
上記のルール要素は飛行速度を+30フィートするためのものである。
固定された習熟ボーナス FixedProficiency
このルール要素はアニマル・フォームやその類似呪文のために使うことが出来る。名前が示しているとおり、特定の値の習熟ボーナスを与えるためのものである。違いを補うため、技能への修正としてゲーム内では表示される。
PF2E.RuleElement.FixedProficiency
{
"key":"PF2E.RuleElement.FixedProficiency",
"selector":"athletics",
"value":9
}
Fixed Proficiencyのルールは、もしそのラベルが固有のものでなければ、ラベルと名称をサポートしている。
打撃 Strike
このルール要素は必須のフィールドが多いという点で少し、複雑だ。独自のカスタマイズをした打撃を作る最も簡単な方法は、ここにあるモンクの「虎の爪」のように、仕上がっている打撃から始めることである。
PF2E.RuleElement.Strike
{
"key": "PF2E.RuleElement.Strike",
"category": "unarmed",
"damage": {
"base": {
"damageType": "slashing",
"dice": 1,
"die": "d8"
}
},
"group": "brawling",
"label": "Tiger Claw",
"range": "melee",
"traits": [
"agile",
"finesse",
"unarmed",
"nonlethal"
]
}
もし必要なら、知力で命中ロールをするなら”ability”: “int”のエントリを設けること。「スピリチュアル・ウェポン」の呪文ではそうしている。これは、他の3つのキャラクター能力値についても同様に機能する。能力値修正のようにダメージにただの追加される数字を作るには、追加でFlat Modifer要素を加える。
メモ Note
Noteのルール要素は、ロール時にチャットに出力される文章を追加する。例(アルケミストの《身かわし》特技より)では、特技について全ての反応セーヴへのリマインダを追加している。
PF2E.RuleElement.Note
{
"key":"PF2E.RuleElement.Note",
"selector":"reflex",
"text":"<p class='compact-text'><strong>{item|name}</strong> When you roll a success on a Reflex save, you get a critical success instead.</p>"
}
ダメージ・ロールについては、クリティカルしたロールのみあるいは通常命中したロールのみに設定することが出来る。
{
"key": "PF2E.RuleElement.Note",
"selector": "damage",
"text": "<p class='compact-text'><strong>Axiomatic Rune</strong> When you critically succeed at an attack roll with this weapon against a chaotic creature, instead of rolling, count each weapon damage die as average damage rounded up (3 for d4, 4 for d6, 5 for d8, 6 for d10, 7 for d12).</p>",
"outcome": ["criticalSuccess"]
}
敏捷力修正値上限 Dexterity Modifier Cap
防具ではなくとも、呪文やアイテムには、敏捷力修正値上限を与えるものがある。こういったもののために、ルール要素ごとに敏捷力修正値上限を設定することが出来る。
PF2E.RuleElement.DexterityModifierCap
{
"key": "PF2E.RuleElement.DexterityModifierCap",
"value": 5
}
感覚 Sense
追加の感覚や、既存の感覚の正確性を増す特技、呪文、アイテムのためのルール要素である。例は、ブラッドハウンド・マスクと鋭敏なるノームの嗅覚である。
PF2E.RuleElement.Sense
{
"key": "PF2E.RuleElement.Sense",
"label": "PF2E.SensesDarkvision",
"selector": "darkvision"
}
{
"acuity":"imprecise",
"key":"PF2E.RuleElement.Sense",
"label":"PF2E.SensesScent",
"range":30,
"selector":"scent"
}
このルールについて、ラベルは言語データベースからクエリーされている。
武器発現とストライキング Weapon Potency and Striking
Weapon Potency(武器発現ルーン)とStriking(ストライキング・ルーン)のルール要素はflat modiferとdamage diceのルール要素と基本的に同じように機能するが、急所打ち(+3発現ルーンなら+2ダメージ)と致命的(ストライキング・ルーンがあればもっとダイスが増える)のように、適切に変化させなければならないダメージ・ロールのために分けられている。
PF2E.RuleElement.WeaponPotency
{
"key": "PF2E.RuleElement.WeaponPotency",
"selector": "{item|data.target}-attack",
"value": 1
}
PF2E.RuleElement.Striking
{
"key": "PF2E.RuleElement.Striking",
"selector": "{item|data.target}-damage",
"value": 1
}
最後の例は、ハンドラップス・オヴ・マイティ・ブロウに+1ストライキングを加えたものである:
{
"key": "PF2E.RuleElement.WeaponPotency",
"predicate":{
"all":[
"unarmed"
]
},
"selector": "attack",
"value": 1
}
PF2E.RuleElement.Striking
{
"key": "PF2E.RuleElement.Striking",
"predicate":{
"all":[
"unarmed"
]
},
"selector": "damage",
"value": 1
}
複数回攻撃ペナルティ Multiple Attack Penalty
Multiple Attack Penaltyのルール要素は特定の打撃やキャラクター全体についての、MAP(複数回攻撃ペナルティ)の増え方を変更することが出来る。2つのサンプル・ルール要素は連打レンジャーを実装するもので、これを効果アイテムを入れると、頻繁に命中させることが出来るようにしてくれる。
PF2E.RuleElement.MultipleAttackPenalty
{
"key":"PF2E.RuleElement.MultipleAttackPenalty",
"predicate": {
"all": [
"agile",
"hunted-prey"
]
},
"roll-options": [
"all"
],
"selector":"attack",
"value":-2
}
{
"key":"PF2E.RuleElement.MultipleAttackPenalty",
"predicate": {
"all": [
"hunted-prey"
],
"not": [
"agile"
]
},
"roll-options": [
"all"
],
"selector":"attack",
"value":-3
}
突風レンジャーの効果は以下の通り。
突風flurry:君は獲物に破壊的な突風を解き放つ訓練をしている。君の獲物に対する複数回攻撃ペナルティは2回目の攻撃で-5ではなく-3(機敏の武器で-2)となり、3回目以降の攻撃については、-10ではなく-6(機敏の武器で-4)となる。
効果のルール要素 Effect Rule Elements
休憩のように、これらのルール要素はどこでも使うことが出来るが、一時的効果と、技術的な理由で切り替えボタンより効果で使う方が良い機能の仕方をするもののために使われる。
一時的HP Temp HP
名前が示しているように、このルール要素はその瞬間のキャラクターに一時的HPを追加する。多くのTemp HP効果はプレイヤーのステータスからその値を決める。激怒要素は、これがシステム上でどのように機能するかの主な例である。最初の例はピンク・ロンボイドのアイウーン・ストーンAeon Stone(Pink Rhomboid)である。
PF2E.RuleElement.TempHP
{
"key": "PF2E.RuleElement.TempHP",
"value": 15
}
{
"key": "PF2E.RuleElement.TempHP",
"value": "@details.level.value + @abilities.con.mod"
}
属性の設定 Set Property
これは切り替えボタンとして、あるいはオンオフの切り替えボタンと一緒になって機能する。しかしながら、これはアクションタブにチェックボックスを追加しないのである。
PF2E.RuleElement.SetProperty
{
"key": "PF2E.RuleElement.SetProperty",
"property": "flags.pf2e.rollOptions.all.rage",
"on": {
"added": true,
"removed": false
},
"retain": true
}
激怒は本能と特技に依存して多くの異なるメカニズムを持っている。これらのうちには、一時的HPやトークンの大きさ、画像の変更といった「効果」アイテムに載っているべきものもある。煩雑になるのを避けるため、setPropertyのルール要素を用いて激怒をオンオフすることによって、predicateのルールを特技や特徴に利用するのが簡単である。ステップごとに見ていこう:
- property: これは切り替えボタンの “flags.pf2e.rollOptions..name”と同じように機能する
- on -> added: 専門的にはオプションだが、これがなければほとんどは使いようがない
- on -> removed: オプション。もし設定されているなら、”retain” を無効化する
- retain: オプション。このルール要素がキャラクターから削除された際に古い値に戻す
トークン効果アイコン Token Effect Icon
ある効果が適用されているトークンに効果アイコンをのせるための機能。T
PF2E.RuleElement.TokenEffectIcon
{
"key":"PF2E.RuleElement.TokenEffectIcon"
}
効果アイコンはデフォルトでは、ルール要素を搭載しているアイテム/特技/効果のアイコンであるが、変更するために追加のフィールドを使うことが出来る。
{
"key":"PF2E.RuleElement.TokenEffectIcon",
"value":"systems/pf2e/icons/spells/all-is-one-one-is-all.jpg"
}
トークン画像 Token Image
このルール要素は、あるアクターのトークンを、システムに含まれているイノシシのトークンに変更する。自然の化身をするのに有用であるし、効果アイテムごとにPC達に表現を設定できるようにカスタマイズすることも出来る。
PF2E.RuleElement.TokenImage
{
"key":"PF2E.RuleElement.TokenImage",
"value":"systems/pf2e/icons/bestiary-1/boar.webp"
}
トークンの大きさ Token Size
このルール要素は2レベルのエンラージの呪文効果に使用してトークンをリサイズするおんい使うことが出来る。直近に設定されたTokenSize効果をトークンから取り除くことによって、再び元のトークンの大きさにリセットすることが出来る。
PF2E.RuleElement.TokenSize
{
"key":"PF2E.RuleElement.TokenSize",
"value":2
}
or:
{
"key":"PF2E.RuleElement.TokenSize",
"value":"large"
}
効果の対象 Effect Target
Effect targetのルール要素は、効果シートにドロップダウンを追加する。これによってシート上で何らかの選択(例えば武器)をすることが出来るようになる。君はこれを使って、一つの武器を効果の対象とする動的なセレクター作成に使うことが出来る。
PF2E.RuleElement.EffectTarget
{
"key": "PF2E.RuleElement.EffectTarget",
"scope": "weapon"
}
特性の追加 Adding Traits
{
"key": "PF2E.RuleElement.ActorTraits",
"add": ["humanoid", "human", "elf"]
}
上級者向けルール要素制御 Advanced Rule Element Controls
Item Attributeを使ったBracket Bracket using Item Attribute
このルール要素は、プレイヤー・レベルではなく、ルール要素が搭載されているアイテムのレベルに依存するブラケットを使っている(この場合は、ヒロイズムの呪文効果)
{
"key":"PF2E.RuleElement.FlatModifier",
"label":"Heroism",
"selector":"saving-throw",
"type":"status",
"value":{
"brackets":[
{
"end":5,
"start":3,
"value":1
},
{
"end":8,
"start":6,
"value":2
},
{
"start":9,
"value":3
}
],
"field":"item|data.level.value"
}
}
valueでステータスを計算する Character stats in value formula
valueの指定の際@をつけてacror.dataの下にあるものをなんでもクエリーすることが出来る。
{
"key": "PF2E.RuleElement.TempHP",
"value": "@details.level.value + @abilities.con.mod"
}
属性のBracket Bracketed Properties
“value”:{“brackets”:[]} を使って、”value”の下にあるオブジェクトの属性を宣言することで、数字ではない属性を編集することが出来る。以下の例ではルール要素の最も低いレベルにあるdiceNumber Propertyとして機能する。
{
"key": "PF2E.RuleElement.DamageDice",
"predicate": {
"all": [
"melee",
"power-attack"
]
},
"selector": "damage",
"value": {
"brackets": [
{
"end": 9,
"value": {
"diceNumber": 1
}
},
{
"end": 17,
"start": 10,
"value": {
"diceNumber": 2
}
},
{
"start": 18,
"value": {
"diceNumber": 3
}
}
]
}
}
ダメージダイスの上書き Damage Dice override
overrideのフィールドを使って、ダメージダイスの属性を上書きすることが可能である。以下の場合では、ルール要素はクリティカル・ダメージに対して完全耐性を持つクリーチャーへの致命的d12の打撃のクリティカルをモデルばけしている。基本のダメージダイスのサイズに関わらず、ダイス数を宣言されていないダイス(つまりこの武器のダイスだ)を一つ増やし、ダイスをd12に変更しているのである。
{
"key": "PF2E.RuleElement.DamageDice",
"selector": "{item|_id}-damage",
"critical": true,
"diceNumber": 1,
"override": {
"dieSize": "d12"
}
}
上級のセレクター Advanced Selectors
アイテムを参照したロール(今のところは打撃とダメージのみ)を編集するために、君は「slugfied」されたバージョンの名前(小文字と「_」のみ)とそのアイテムのIDを使ってセレクターの前につけることが出来る。もし君がそのアイテム(訳注:編集しているアイテム)にルールを配置したいなら、セレクターの一部として”{item|_id}” をつけると、アイテムのIDを探さなくてもそのアイテムに変換されるし、アイテム間での移植に便利である。
{
"key": "PF2E.RuleElement.DamageDice",
"selector": "{item|_id}-damage",
"diceNumber": 1,
"dieSize": "d4",
"damageType": "fire",
"predicate": {
"all": [
"on-fire"
]
},
"label": "Ignited"
}
セレクターをつける別の方法として「slugfied」された武器グループや武器の名前を、以下のように使うことが出来る:
{
"key": "PF2E.RuleElement.FlatModifier",
"selector": "brawling-weapon-group-damage",
"value": 1,
"label": "Ignited"
}
{
"selector":"smoking-sword-damage",
"critical":false,
"key":"PF2E.RuleElement.DamageDice",
"diceNumber":1,
"dieSize":"d6",
"damageType":"fire",
"label":"Stoke Flames"
}
習熟度で条件設定する Predicate by proficiency
ルール要素の中には、特定の習熟度である場合にだけ使うことが出来るものもある。これは、 “actor.data.skills.at.rank” でbracketを設定するか、predicateを使うことで設定可能である。以下の例は、レンジャーのクラス特徴である達人のハンターである。下記は、突風ハンターのルール要素である。
{
"key":"PF2E.RuleElement.MultipleAttackPenalty",
"predicate": {
"all": [
"hunted-prey"
],
"not": [
"agile"
],
"any": [
"proficiency:master",
"proficiency:legendary"
]
},
"roll-options": [
"all"
],
"selector":"attack",
"value":-2
}
打撃にオプションを使うか特性を使うか Options vs. Traits for Strikes
Strike(打撃)のルール要素のために、君はオプションを追加することが出来る。例えば、 "options": ["dragon-jaws"]
という風に。他のルール要素によってこれをpredivateの対象にすることが出来る。これは基本的には、この打撃に特性を与えるのと同じだが、UIに表示されないため、手軽である!
ルール要素とマクロ Rule Elements and Macros
マクロはルール要素と組み合わせることで多くの目的を達成することが出来る。このガイドには三つの使用方法を記載している:
- 「効果」アイテム(大抵はルール要素を搭載している)を辞典やアイテム・ディレクトリから直接的に追加する(このマクロは、コツさえつかめば他のアイテムにも使うことが出来る)
その効果のITEM_UUIDを探すには、それをアイテムの描写部分にドラッグすればよい。こういった文字列が手に入る: @compendium[pf2e.equipment-srd.Kf4eJEXnFPuAsseP]{Chain Mail}
このアイテムをインベントリに追加するには(あるいはもし君が持っていて削除するなら)、ITEM_UUIDを
‘Compendium.pf2e.equipment-srd.Kf4eJEXnFPuAsseP’に設定すればよい。
const ITEM_UUID = 'Compendium.pf2e.spell-effects.Jemq5UknGdMO7b73'; // Spell Effect: Shield
(async () => {
const item = await fromUuid(ITEM_UUID);
for (const token of canvas.tokens.controlled) {
let existing = token.actor.items.filter(i => i.type === item.type).find(e => e.name === item.name);
if (existing) {
await token.actor.deleteOwnedItem(existing._id);
} else {
item = duplicate(item);
await token.actor.createOwnedItem(item);
}
}
})();
- 切り替えボタンの切り替え(マクロにするほど大きな作業ではないが、キーボード操作を好む人もいる)
actor.toggleRollOption('all', 'target:flatFooted');
切り替えせずに切り替えボタンの状態を固定するには、この行を使うことが出来る:
actor.setRollOption('all', 'target:flatFooted', true);
- ルール要素を使ってpredicateを起動する。書かれているとおり、このマクロと効果は、効果が「Greataxe」と呼ばれている武器に搭載されている場合にのみ、機能する。このマクロは非常に制限されているのである。
{
"key":"PF2E.RuleElement.FlatModifier",
"label":"Sweep",
"selector":"{item|_id}-attack",
"type":"circumstance",
"value":1,
"predicate":{"all":["Sweep"]}
}
let options = actor.getRollOptions(['attack']);
options.push('Sweep');
const strikeItem = () => ((actor.data.data.actions ?? [])
.filter((action) => action.type === "strike")
.find((strike) => strike.name === "Greataxe")
);
strikeItem().variants[1]?.roll(event, options);
- 大いなる激怒を例として、一つのマクロで状態と効果を追加する
const ITEM_UUID = 'Compendium.pf2e.feature-effects.z3uyCMBddrPK5umr'; // const ITEM_UUID = 'Compendium.pf2e.feature-effects.z3uyCMBddrPK5umr'; // Effect: Rage
let conditionType = game.pf2e.ConditionManager.getCondition('Clumsy'); // condition clumsy
(async () => {
// Clumsy first, the Spell effect follows clumsy
let conditionName = conditionType.name;
let conditionValue = (token.actor.data.items.find((x) => x.name === conditionType.name)) ? 0 : 1; // set the value of a valued condition here
if (conditionValue) await game.pf2e.ConditionManager.addConditionToToken(conditionType, token);
await game.pf2e.ConditionManager.updateConditionValue(token.actor.data.items.find((x) => x.name === conditionType.name)._id, token, conditionValue); // only for conditions with a value
// make the effect follow the condition
let item = await fromUuid(ITEM_UUID);
for (const token of canvas.tokens.controlled) {
let existing = token.actor.items.filter(i => i.type === item.type).find(e => e.name === item.name);
if (conditionValue) {
if (!existing) {
item = duplicate(item);
await token.actor.createOwnedItem(item);
}
} else {
if (existing) {
await token.actor.deleteOwnedItem(existing._id);
}
}
}
})();
- 完全に自動化された統合アクションマクロの作り方の例
このシステムは現在、完全なアクション・サポートの過程にある。サポートされているアクションは、このようなマクロで呼び出すことが出来る。
game.pf2e.actions.feint({ event });
まだサポートされていないアクションや、自分のゲームのために少し修正したいアクションは、以下のように自動化することが出来る:
const a = token.actor ?? game.user.character;
const traits = ['concentrate', 'secret'];
const options = a.getRollOptions([
'all',
'skill-check',
'arcana',
'action:recall-knowledge'
]);
options.push(...traits);
options.push('action:recall-knowledge');
PF2Check.roll(
new PF2CheckModifier('Recall Knowledge: Arcana', a.data.data.skills.arc),
{
actor: a,
type: 'skill-check',
options,
notes: a.data.data.skills.arc.notes,
traits,
},
event
);
有効なセレクター一覧 List of valid selectors
all
str-based
dex-based
con-based
int-based
wis-based
cha-based
attack
mundane-attack
spell-attack
attack-roll
str-attack
dex-attack
con-attack
int-attack
wis-attack
cha-attack
damage
saving-throw
fortitude
reflex
will
initiative
perception
class (still subject to change)
ac
hp
hp-per-level
speed
land-speed
burrow-speed
climb-speed
fly-speed
swim-speed
skill-check
acrobatics
arcana
athletics
crafting
deception
diplomacy
intimidation
medicine
nature
occultism
performance
religion
society
stealth
survival
thievery
spell dcs
${tradition}-spell-dc
spell-dc
${ability}-based
all\