4,458
edits
m (DEFAULTSORTを追加) |
Sakumashiki (talk | contribs) (EN版の変更を反映。格闘武器と投擲、近接、射撃、魔法のダメージ計算) |
||
Line 1: | Line 1: | ||
==Evalueリスト== | ==Evalueリスト== | ||
{| class="wikitable" | {| class="wikitable" | ||
!Value# | !Value# | ||
!Element | !Element | ||
Line 11: | Line 10: | ||
|- | |- | ||
|(92) | |(92) | ||
| | |貫通率 | ||
| | |||
|- | |||
|(108) | |||
|投擲 | |||
| | | | ||
|- | |- | ||
|(132) | |(132) | ||
| | |戦術 | ||
| | |||
|- | |||
|(133) | |||
|射撃 | |||
| | | | ||
|- | |- | ||
|(1400) | |(305) | ||
| | |魔道具 | ||
| | |||
|- | |||
|(411) | |||
|魔法強化エンチャント | |||
| | |||
|- | |||
| (482) | |||
|理力武器 | |||
| | |||
|- | |||
|(1400) | |||
| 武器の知識フィート | |||
|1, 2 | |1, 2 | ||
|- | |||
|(1404) | |||
|射撃の名手フィート | |||
|1, 2 | |||
|} | |} | ||
==格闘== | == 格闘== | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
else if (this.IsMartial) | else if (this.IsMartial || this.IsMartialWeapon) | ||
{ | |||
this.weaponSkill = this.CC.elements.GetOrCreateElement(100); | |||
this.attackType = (this.CC.race.meleeStyle.IsEmpty() ? ((EClass.rnd(2) == 0) ? AttackType.Kick : AttackType.Punch) : this.CC.race.meleeStyle.ToEnum(true)); | |||
this.dBonus = this.CC.DMG + this.CC.encLV + (int)Mathf.Sqrt((float)(this.CC.STR / 5 + this.weaponSkill.Value / 4)); | |||
this.dNum = 2 + Mathf.Min(this.weaponSkill.Value / 10, 4); | |||
this.dDim = 5 + (int)Mathf.Sqrt((float)(this.weaponSkill.Value / 3)); | |||
this.dMulti = 0.6f + (float)(this.CC.STR / 2 + this.weaponSkill.Value / 2 + this.CC.Evalue(132) / 2) / 50f; | |||
this.dMulti += 0.05f * (float)this.CC.Evalue(1400); | |||
this.toHitBase = EClass.curve(this.CC.DEX / 3 + this.CC.STR / 3 + this.weaponSkill.Value, 50, 25, 75) + 50; | |||
this.toHitFix = this.CC.HIT; | |||
if (this.attackStyle == AttackStyle.Shield) | |||
{ | |||
this.toHitBase = this.toHitBase * 75 / 100; | |||
} | |||
this.penetration = Mathf.Clamp(this.weaponSkill.Value / 10 + 5, 5, 20) + this.CC.Evalue(92); | |||
if (this.IsMartialWeapon) | |||
{ | |||
this.dBonus += this.weapon.DMG; | |||
this.dNum += this.weapon.source.offense[0]; | |||
this.dDim = Mathf.Max(this.dDim / 2 + this.weapon.c_diceDim, 1); | |||
this.toHitFix += this.weapon.HIT; | |||
this.penetration += this.weapon.Penetration; | |||
if (!this.weapon.source.attackType.IsEmpty()) | |||
{ | { | ||
this. | this.attackType = this.weapon.source.attackType.ToEnum(true); | ||
} | } | ||
</syntaxhighlight> | } | ||
} | |||
</syntaxhighlight> | |||
プレイヤーは格闘スキルを使用してキックまたはパンチを繰り出します。近接戦闘スタイルやキャラクターの特性に基づいて攻撃エフェクトは変わります。 | |||
ダメージは「格闘、筋力、器用、エンチャント値」によって決定されます。 | |||
ダメージのダイスは「2+(格闘/10)」、最大で「d6」です。 | |||
ダイスのダメージ値は「5+√(格闘/3)」です。 | |||
ダメージ倍率は『'''0.6 + ((筋力 / 2 + 格闘 / 2 + 戦術 / 2) / 50.0)』です。''' | |||
プレイヤーが武器の知識フィートを持っている場合、追加ダメージが『0.05×(''武器の知識フィートのランク)』の割合で与えられます。''(事実上、+0.05または+0.10) | |||
命中率は「(筋力/3 + 器用/3 + 格闘)+50)」で、最低値は「25+50」、最高値は「75+50」です。プレイヤーが「盾」を装備している場合、-25%の下方修正があります。 | |||
貫通率は「(格闘/10)+5」で計算され、最低5%、最高「20% + 貫通率」です。 | |||
格闘技武器を装備している場合: | |||
ダメージボーナスは素手のダメージボーナス + '''武器のダメージボーナス''' | |||
ダイス数は、素手のダイス数 + '''武器のダイス数''' | |||
ダイス面は、素手のダイス面 / 2 + '''武器のダイス面''' | |||
命中ボーナスは素手の命中命中ボーナス + '''武器の命中ボーナス''' | |||
貫通率は素手の貫通率 + '''武器の貫通率''' | |||
==投擲== | ==投擲== | ||
<syntaxhighlight lang="c#" line="1"> | |||
if (this.isThrow) | |||
{ | |||
bool flag = this.weapon.HasTag(CTAG.throwWeapon) || this.weapon.HasTag(CTAG.throwWeaponEnemy); | |||
int num2 = (int)Mathf.Clamp(Mathf.Sqrt((float)(this.weapon.SelfWeight + this.weapon.ChildrenWeight)) * 3f + 25f + (float)(flag ? 75 : 0), 10f, 400f + Mathf.Sqrt((float)this.CC.STR) * 50f); | |||
int num3 = Mathf.Clamp(this.weapon.material.hardness, flag ? 40 : 20, 200); | |||
this.weaponSkill = this.CC.elements.GetOrCreateElement(108); | |||
this.attackType = AttackType.Blunt; | |||
this.dBonus = (this.CC.IsPCParty ? 3 : 7); | |||
this.dNum = 2; | |||
this.dDim = ((this.CC.IsPCParty ? 0 : this.CC.LV) + this.CC.STR + this.CC.Evalue(108)) * num2 * num3 / 10000 / 2; | |||
this.dMulti = 1f; | |||
this.toHitBase = EClass.curve(this.CC.DEX / 4 + this.CC.STR / 2 + this.weaponSkill.Value, 50, 25, 75) + (this.CC.IsPC ? 75 : 250); | |||
this.toHitFix = this.CC.HIT + this.weapon.HIT; | |||
this.penetration = 25; | |||
} | |||
</syntaxhighlight>プレイヤーの投げたアイテムは、投擲スキルの使用するかしないかにかかわらず、手元に戻ってきます。 | |||
攻撃エフェクトは常に'''鈍器'''です。 | |||
重量値は'''√アイテムの重量×3 + 武器を投げている場合: 75''' それ以外は'''0'''、'''10'''から'''400'''までの範囲で、'''√(筋力 x 50)'''を上限とします | |||
武器の材質値は'''材質の硬度'''で、'''武器を投げている場合'''は'''40'''、それ以外は'''0'''から'''200'''までの範囲で下限が設定されます | |||
ダイスの目は常に'''2'''です | |||
ダイスの目は ('''プレイヤーキャラクターでない場合:キャラクターレベル''' + '''筋力''' + '''投擲''' ) x '''武器の重量値''' x '''武器の材質値 / 10000 / 2''' | |||
正確さは、'''器用'''/4 + '''筋力'''/2 + '''投擲'''で、最低値は'''25+50'''、最高値は'''75+50 +''' ('''プレイヤーキャラクターの場合:75'''、それ以外:'''250''') | |||
命中ボーナスは、'''キャラクターの命中ボーナス''' + '''武器の命中ボーナス''' | |||
ダメージボーナスは、'''プレイヤーキャラクターの場合:3'''、それ以外:7 | |||
ダメージ倍率は常に'''1''' | |||
貫通力は常に'''25'''です。 | |||
==近接&遠隔武器== | |||
<syntaxhighlight lang="c#" line="1"> | |||
else | |||
{ | |||
if (this.IsRanged) | |||
{ | |||
this.weaponSkill = this.CC.elements.GetOrCreateElement(this.toolRange.WeaponSkill); | |||
} | |||
else | |||
{ | |||
this.weaponSkill = this.CC.elements.GetOrCreateElement(this.weapon.category.skill); | |||
} | |||
if (!this.weapon.source.attackType.IsEmpty()) | |||
{ | |||
this.attackType = this.weapon.source.attackType.ToEnum(true); | |||
} | |||
bool flag2 = this.IsCane || this.weapon.Evalue(482) > 0; | |||
if (flag2) | |||
{ | |||
this.weaponSkill = this.CC.elements.GetOrCreateElement(305); | |||
} | |||
this.dBonus = this.CC.DMG + this.CC.encLV + this.weapon.DMG; | |||
this.dNum = this.weapon.source.offense[0]; | |||
this.dDim = this.weapon.c_diceDim; | |||
this.dMulti = 0.6f + (float)(this.weaponSkill.GetParent(this.CC).Value + this.weaponSkill.Value / 2 + this.CC.Evalue(flag2 ? 304 : (this.IsRanged ? 133 : 132))) / 50f; | |||
this.dMulti += 0.05f * (float)this.CC.Evalue(this.IsRanged ? 1404 : 1400); | |||
this.toHitBase = EClass.curve((this.IsCane ? this.CC.WIL : this.CC.DEX) / 4 + this.weaponSkill.GetParent(this.CC).Value / 3 + this.weaponSkill.Value, 50, 25, 75) + 50; | |||
this.toHitFix = this.CC.HIT + this.weapon.HIT; | |||
this.penetration = this.weapon.Penetration + this.CC.Evalue(92); | |||
if (this.IsCane) | |||
{ | |||
this.toHitBase += 50; | |||
} | |||
} | |||
if (this.ammo != null) | |||
{ | |||
this.dNumAmmo = ((this.ammo.source.offense.Length != 0) ? this.ammo.source.offense[0] : 0); | |||
this.dDimAmmo = this.ammo.c_diceDim; | |||
this.dBonusAmmo = this.ammo.DMG; | |||
if (this.dNumAmmo < 1) | |||
{ | |||
this.dNumAmmo = 1; | |||
} | |||
if (this.dDimAmmo < 1) | |||
{ | |||
this.dDimAmmo = 1; | |||
} | |||
this.dBonus += this.ammo.DMG; | |||
this.toHitFix += this.ammo.HIT; | |||
} | |||
else | |||
{ | |||
this.dNumAmmo = 0; | |||
this.dDimAmmo = 0; | |||
} | |||
</syntaxhighlight>プレイヤーは、戦術スキルを使用して近接武器を振るうか、または射撃スキルを使用して遠距離武器を撃ちます。 | |||
武器が'''ワンド'''であるか、または'''理力武器'''のエンチャントが付いている場合、戦術スキルまたは射撃スキルの代わりに'''魔道具'''スキルを使用します | |||
ダメージボーナスは、'''プレイヤーのダメージボーナス''' + '''武器の改造道具によるダメージボーナス''' + '''武器のダメージボーナス'''です | |||
ダメージ倍率は0.6 + ('''武器に対応する主能力''' + '''武器スキル / 2''' + (近接武器は'''戦術'''、遠距離武器は'''射撃'''、ワンドまたは理力武器の場合'''魔道具''')) / 50 | |||
プレイヤーが武器の知識/射撃の名手のフィートを持っている場合、追加ダメージが'''0.05 x (フィートランク)'''の割合で与えられます。''<sub>(事実上、+0.05または+0.10)</sub>'' | |||
命中率は('''器用'''、ワンドや理力武器なら'''意志''') / 4 + '''武器スキル''' / 3 + (近接武器は'''戦術'''、遠距離武器は'''射撃'''、ワンドまたは理力武器の場合'''魔道具''') で、最小値は'''25+50'''、最大値は'''75+50'''です。 | |||
'''ワンド'''の命中率には、さらに+50が加わります | |||
命中ボーナスは、'''キャラクターの命中ボーナス''' + '''武器の命中ボーナス''' + '''弾薬の命中ボーナス'''(弾薬を装填している場合) | |||
ダメージボーナスは、'''キャラクターのダメージボーナス''' + '''武器のダメージボーナス''' + '''弾薬のダメージボーナス'''(弾薬を装填している場合) | |||
貫通力は、'''キャラクターの貫通率''' + '''武器の貫通率''' | |||
==魔法:魔法のパワー== | |||
<syntaxhighlight lang="c#"> | |||
public override int GetPower(Card c) | |||
{ | |||
int num = base.Value * 8 + 50; | |||
if (!c.IsPC) | |||
{ | |||
num = Mathf.Max(num, c.LV * 6 + 30); | |||
} | |||
num = EClass.curve(num, 400, 100, 75); | |||
if (this is Spell) | |||
{ | |||
num = num * (100 + c.Evalue(411)) / 100; | |||
} | |||
return num; | |||
} | |||
</syntaxhighlight><syntaxhighlight lang="c#"> | |||
public static int curve(int a, int start, int step, int rate = 75) | |||
{ | |||
if (a <= start) | |||
{ | |||
return a; | |||
} | |||
for (int i = 0; i < 10; i++) | |||
{ | |||
int num = start + i * step; | |||
if (a <= num) | |||
{ | |||
return a; | |||
} | |||
a = num + (a - num) * rate / 100; | |||
} | |||
return a; | |||
} | |||
</syntaxhighlight>プレイヤーキャラクターの場合、魔法のパワーはcurve( ('''魔法レベル''' x 8 + 50), 400, 100, 75 ) x (100 + '''魔法強化エンチャント''') / 100 です | |||
プレイヤーキャラクター以外の場合、魔法のパワーは'''魔法レベル''' x 8 + 50 または '''キャラレベル''' x 6 + 30 のうち大きい方です | |||
'''曲線関数<code>curve(a, start, step, rate)</code>について:''' | |||
<code>i = 0</code> とします。 <code>num = start + i * step</code> を計算します。 <code>a</code> が <code>num</code> を超える場合、超過分は <code>rate / 100</code> を掛ける必要があります。 その後、<code>i</code> を1 増やします。 上記の手順を10回繰り返します | |||
簡単に言えば、この関数は数値を圧縮するために使用されます。関数の曲線の傾きは、<code>(rate / 100)^10</code>まで徐々に減少します。 | |||
==魔法:攻撃魔法== | |||
{| class="wikitable" | |||
!魔法 | |||
!ダイス数 | |||
!ダイス面 | |||
!ダメージボーナス | |||
!備考 | |||
|- | |||
|手 | |||
|1+魔法のパワー/100+対応主能力/10 | |||
|3+魔法のパワー/50 | |||
| | |||
|近接範囲 | |||
|- | |||
|矢 | |||
|1+魔法のパワー/160+対応主能力/30 | |||
|8+魔法のパワー/12 | |||
|魔法のパワー/25 | |||
|単体攻撃 | |||
|- | |||
|光線 | |||
|1+魔法のパワー/120+対応主能力/20 | |||
|4+魔法のパワー/20 | |||
| | |||
|10マスにわたる直線上のすべてのターゲットにダメージを与える | |||
|- | |||
|球 | |||
|1+魔法のパワー/70+対応主能力/20 | |||
|2+魔法のパワー/35 | |||
| | |||
|発動者から5マスの範囲のボール内のすべてのターゲットにダメージを与える | |||
ダメージ = ダメージ x 100 / (90 + 射程 x 10) | |||
|- | |||
|瘴気 | |||
|2+魔法のパワー/150 | |||
|5+魔法のパワー/80 | |||
| | |||
|ターンに1回ダメージを与える | |||
|- | |||
|ブレス | |||
|1+魔法のパワー/80+対応主能力/20 | |||
|6+魔法のパワー/100 | |||
|対応主能力/4 | |||
|発動者から7マスにわたる35°の円錐内のすべてのターゲットにダメージを与える | |||
|- | |||
|メテオ | |||
|1+魔法のパワー/150 | |||
|4+対応主能力*3 | |||
| | |||
|火炎属性固定 | |||
ダメージ 発動者から10タイルの半径のボール内のすべてのターゲットにダメージを与えます。 壁でブロックされることがあります。 また、発動者にもダメージを与えます。 | |||
|- | |||
|地震 | |||
|5+魔法のパワー/30 | |||
|10+対応主能力/3 | |||
| | |||
|衝撃属性固定 | |||
発動者から12タイルの半径のボール内のすべてのターゲットにダメージを与えます。 重力デバフを持つ敵には、最大ダイスダメージの2倍のダメージを与えます。 浮遊効果を持つ敵には、ダメージの半分を与えます。 | |||
|- | |||
|破呪 | |||
|1+魔法のパワー/160+対応主能力/30 | |||
|8+魔法のパワー/12 | |||
|魔法のパワー/25 | |||
|対象のすべてのデバフを除去し、周囲の敵にダメージを与えます。 | |||
対象に少なくとも1つのデバフがなければ効果はありません。 | |||
|} | |||
==魔法:回復魔法== | |||
{| class="wikitable" | |||
!魔法 | |||
!ダイス数 | |||
!ダイス面 | |||
!回復ボーナス | |||
!備考 | |||
|- | |||
|軽傷治癒 | |||
|1+魔法のパワー/50+Will/30 | |||
|5+魔法のパワー/40 | |||
|魔法のパワー/30 | |||
| | |||
|- | |||
|重傷治癒 | |||
|2+魔法のパワー/40+Will/25 | |||
|6+魔法のパワー/30 | |||
|魔法のパワー/25 | |||
| | |||
|- | |||
|致命傷治癒 | |||
|3+魔法のパワー/35+Will/20 | |||
|7+魔法のパワー/25 | |||
|魔法のパワー/20 | |||
| | |||
|- | |||
|Healing | |||
|4+魔法のパワー/30+Will/15 | |||
|8+魔法のパワー/20 | |||
|魔法のパワー/15 | |||
| | |||
|- | |||
|《エリス》の癒し | |||
|5+魔法のパワー/25+Will/10 | |||
|9+魔法のパワー/15 | |||
|魔法のパワー/10 | |||
| | |||
|- | |||
|《オディナ》の癒し | |||
|6+魔法のパワー/20+Will/5 | |||
|10+魔法のパワー/10 | |||
|魔法のパワー/5 | |||
| | |||
|- | |||
|《ジュア》の癒し | |||
|8+魔法のパワー/10+Will | |||
|15+魔法のパワー/5 | |||
|魔法のパワー | |||
| | |||
|- | |||
|自然の抱擁 | |||
|1+魔法のパワー/125 | |||
|4+魔法のパワー/75 | |||
| | |||
| | |||
|} | |||
==魔法:召喚魔法== | |||
<syntaxhighlight lang="c#" line="1"> | |||
case EffectId.Funnel: | |||
{ | |||
if (EClass._zone.CountMinions(CC) > CC.MaxSummon || CC.c_uidMaster != 0) | |||
{ | |||
CC.Say("summon_ally_fail", CC, null, null); | |||
return; | |||
} | |||
CC.Say("spell_funnel", CC, element.Name.ToLower(), null); | |||
CC.PlaySound("spell_funnel", 1f, true); | |||
Chara chara = CharaGen.Create("bit", -1); | |||
chara.SetMainElement(element.source.alias, element.Value, true); | |||
chara.SetSummon(20 + power / 20 + EClass.rnd(10)); | |||
chara.SetLv(power / 15); | |||
EClass._zone.AddCard(chara, tp.GetNearestPoint(false, false, true, false)); | |||
chara.PlayEffect("teleport", true, 0f, default(Vector3)); | |||
chara.MakeMinion(CC, MinionType.Default); | |||
return; | |||
} | |||
</syntaxhighlight> | |||
{| class="wikitable" | |||
!魔法 | |||
!持続時間 | |||
!レベル | |||
!備考 | |||
|- | |||
|具象 | |||
|20 + rnd (20) + 魔法のパワー / 20 | |||
|魔法のパワー / 15 | |||
| | |||
|- | |||
|動物召喚 | |||
|死ぬまで | |||
|魔法レベル * (100 + 魔法のパワー / 10) / 100 + 魔法のパワー / 30 | |||
| | |||
|- | |||
|アンデッド妹召喚 | |||
|死ぬまで | |||
|魔法レベル* (100 + 魔法のパワー / 10) / 100 + 魔法のパワー / 30 | |||
| | |||
|- | |||
|影召喚 | |||
|死ぬまで | |||
|魔法のパワー / 10 + 1 | |||
|自爆攻撃を行う | |||
|} | |||
{{DEFAULTSORT:カイセキ,ダメージケイサンシキ}} | {{DEFAULTSORT:カイセキ,ダメージケイサンシキ}} | ||
[[Category:JA]] | [[Category:JA]] | ||
[[Category:Elin Spoiler]] | [[Category:Elin Spoiler]] |
edits