250
edits
(→衝撃波) |
|||
| Line 398: | Line 398: | ||
|減衰のある範囲攻撃 | |減衰のある範囲攻撃 | ||
|- | |- | ||
| | |cleave | ||
| | |旋風 | ||
|○ | |||
|× | |||
|× | |||
|攻撃が最初の相手から伝播する | |||
|- | |||
|flurry | |||
|連撃 | |||
|○ | |○ | ||
|× | |× | ||
|× | |× | ||
| | |複数回攻撃する | ||
|- | |- | ||
|chaser | |chaser | ||
| Line 412: | Line 419: | ||
|回避された際に追撃する | |回避された際に追撃する | ||
|- | |- | ||
| | |frustration | ||
| | |逆襲 | ||
|○ | |○ | ||
|× | |× | ||
|× | |× | ||
| | |回避された際に確率で確定命中クリティカル攻撃をする | ||
|- | |- | ||
|feint | |feint | ||
| Line 433: | Line 433: | ||
|制圧の状態異常を付与する | |制圧の状態異常を付与する | ||
|- | |- | ||
| | |splash | ||
| | |衝撃波 | ||
|○ | |○ | ||
|× | |× | ||
|× | |× | ||
| | |最初の攻撃対象の周りにも当たる衝撃波を発する | ||
|} | |} | ||
=== 突貫 === | === 突貫 === | ||
| Line 461: | Line 461: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
攻撃者の半径「突貫エンチャント強度 / 10 + | 攻撃者の半径「突貫エンチャント強度 / 10 + 1」マス以内かつ、攻撃者と攻撃対象を結ぶ直線上に存在する敵を攻撃します。拡散・旋風エンチャントと共存できず、拡散・旋風の処理は省略されます。 | ||
半径に小数点以下が存在する場合、小数点以下の数値の確率で半径に+1します。 | 半径に小数点以下が存在する場合、小数点以下の数値の確率で半径に+1します。 | ||
| Line 502: | Line 502: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
攻撃対象の半径1マス以内に存在する敵を攻撃します。突貫・旋風エンチャントと共存できず、旋風の処理は省略されます。 | |||
拡散の効果による攻撃はダメージ減衰補正がかかり、 | 拡散の効果による攻撃はダメージ減衰補正がかかり、 | ||
| Line 509: | Line 509: | ||
遠隔攻撃の倍率は「1.2 - 0.2 × (攻撃者と拡散の攻撃対象との距離) - (0.4、攻撃対象と同じマスにいる敵は0)」で、最小0.2倍です。 | 遠隔攻撃の倍率は「1.2 - 0.2 × (攻撃者と拡散の攻撃対象との距離) - (0.4、攻撃対象と同じマスにいる敵は0)」で、最小0.2倍です。 | ||
=== 旋風 === | |||
<syntaxhighlight lang="c#"> | |||
int num3 = GetWeaponEnc(622, addSelfEnc: true); | |||
... | |||
else if (num3 > 0) | |||
{ | |||
List<Point> list = new List<Point>(); | |||
Act.TP.ForeachNeighbor(delegate(Point p) | |||
{ | |||
list.Add(p.Copy()); | |||
}); | |||
list.Shuffle(); | |||
int num4 = 0; | |||
for (int i = 0; i < 9 && num3 > EClass.rnd(10 + (int)Mathf.Pow(3f, i + 2)); i++) | |||
{ | |||
num4++; | |||
} | |||
foreach (Point item2 in list) | |||
{ | |||
foreach (Card item3 in item2.ListCards().Copy()) | |||
{ | |||
if (num4 <= 0 || !Act.CC.IsAliveInCurrentZone) | |||
{ | |||
break; | |||
} | |||
if (item3.trait.CanBeAttacked || (item3.isChara && item3.Chara.IsHostile(Act.CC))) | |||
{ | |||
AttackWithFlurry(item3, item2, 1f, subAttack: true); | |||
num4--; | |||
} | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
攻撃対象のいるマス除く半径1マス以内のランダムな敵1体を攻撃します。攻撃回数はエンチャント強度に依存します。同じ敵を2回攻撃することはありません。 | |||
旋風の攻撃回数は "旋風エンチャント強度 > 0~「10 + 3 ^ (旋風攻撃回数 + 2)」までのランダムな値" の判定を満たし続ける限り、最大9回まで増加します。 | |||
=== 衝撃波 === | === 衝撃波 === | ||
<syntaxhighlight lang="c#"> | |||
splash = GetWeaponEnc(608, addSelfEnc: true); | |||
... | |||
if (splash > 0) | |||
{ | |||
Act.TP.ForeachNeighbor(delegate(Point p) | |||
{ | |||
if (p.Equals(Act.TP) || p.Equals(Act.CC.pos)) | |||
{ | |||
return; | |||
} | |||
if (!p.IsBlocked) | |||
{ | |||
p.PlayEffect("smoke_shockwave"); | |||
p.Copy().Animate(AnimeID.QuakeMini, animeBlock: true); | |||
} | |||
foreach (Card item4 in p.ListCards()) | |||
{ | |||
if (item4.trait.CanBeAttacked || (item4.isChara && item4.Chara.IsHostile(Act.CC))) | |||
{ | |||
int rawDamage = AttackProcess.Current.GetRawDamage(0.1f + 0.05f * Mathf.Sqrt(splash), crit: false, maxRoll: false); | |||
rawDamage = item4.ApplyProtection(rawDamage); | |||
item4.DamageHP(rawDamage, 0, 100, AttackSource.Shockwave, Act.CC); | |||
} | |||
} | |||
}); | |||
} | |||
</syntaxhighlight> | |||
攻撃対象の半径1マス以内の敵すべてを攻撃します。 | |||
エンチャント強度は衝撃波のダメージ倍率に影響し、倍率は「0.1 + 0.05 × √(衝撃波エンチャント強度)」倍です。 | |||
ただし、衝撃波のダメージは貫通率0%かつ無属性固定で、対象の物理防御力で軽減されます。 | |||
=== 連撃 === | |||
<syntaxhighlight lang="c#"> | |||
flurry = GetWeaponEnc(621, addSelfEnc: true); | |||
... | |||
void AttackWithFlurry(Card _tc, Point _tp, float mtp, bool subAttack) | |||
{ | |||
int num6 = 1; | |||
if (flurry > 0) | |||
{ | |||
for (int l = 0; l < 10 && flurry > EClass.rnd(25 + (int)Mathf.Pow(5f, l + 2)); l++) | |||
{ | |||
num6++; | |||
} | |||
} | |||
for (int m = 0; m < num6; m++) | |||
{ | |||
if (!Act.CC.IsAliveInCurrentZone) | |||
{ | |||
break; | |||
} | |||
if (!_tc.IsAliveInCurrentZone) | |||
{ | |||
break; | |||
} | |||
if (m > 0) | |||
{ | |||
Act.CC.Say("attack_flurry"); | |||
} | |||
Attack(_tc, _tp, mtp, subAttack); | |||
} | |||
} | |||
</syntaxhighlight> | |||
追加の攻撃を行います。攻撃回数はエンチャント強度に依存します。 | |||
連撃の攻撃回数は "連撃エンチャント強度 > 0~「25 + 5 ^ (連撃攻撃回数 + 2)」までのランダムな値" の判定を満たし続ける限り増加します。 | |||
=== | ===追尾・逆襲=== | ||
if (chaser > 0) | if (chaser > 0) | ||
| Line 600: | Line 680: | ||
} | } | ||
} | } | ||
=== 牽制 === | === 牽制 === | ||
edits