2017年 10月25日
思った以上に複雑だった。
属性が単だったら簡単だけど、複数の属性を持った同士が想定されるので難解だ。
属性相関図
本ゲームでは、
火は、炎と熱、火傷。
地は、大地と植物、地震、重力、スタン(気絶)。
風は、突風やカマイタチ、雷、マヒ。
水は、水、冷気、フリーズ(氷化による鈍化)。
光は、聖なる、4属性に弱い、ターンアンデッド。
闇は、邪悪、4属性に強い、毒。
と言う取り決めに今の所なってるが、魔法などでどれだけ生かされるかは、まだ分からない。
という訳でソース。
; 属性補整 -------------------------------- zk1=0 ; 種族補整 ------- if ud(ug+7)=1 { ; 火 if ud(eg+7)=4 or ud(eg+7)=5 : zk1=20 ; +20% if ud(eg+7)=2 or ud(eg+7)=6 : zk1=-20 ; -20% } if ud(ug+7)=2 { ; 水 if ud(eg+7)=1 or ud(eg+7)=5 : zk1=20 ; +20% if ud(eg+7)=3 or ud(eg+7)=6 : zk1=-20 ; -20% } if ud(ug+7)=3 { ; 風 if ud(eg+7)=2 or ud(eg+7)=5 : zk1=20 ; +20% if ud(eg+7)=4 or ud(eg+7)=6 : zk1=-20 ; -20% } if ud(ug+7)=4 { ; 地 if ud(eg+7)=3 or ud(eg+7)=5 : zk1=20 ; +20% if ud(eg+7)=1 or ud(eg+7)=6 : zk1=-20 ; -20% } if ud(ug+7)=5 { ; 光 if 1<=ud(eg+7) and ud(eg+7)<4 : zk1=-20 ; 4属 if ud(eg+7)=6 : zk1=20 ; 闇 } if ud(ug+7)=6 { ; 闇 if 1<=ud(eg+7) and ud(eg+7)<4 : zk1=20 ; 4属 if ud(eg+7)=5 : zk1=-20 ; 光 } zk2=0 : k1=120 : k2=80 ; アイテム補整 ------- if ud(ug+31)>0 { ; 火 n=ud(ug+31)-ud(eg+32)+ud(eg+34)-ud(eg+36)+ud(eg+35) ; 火値-水+地-闇+光 if n>ud(ug+31) : n=ud(ug+31) ; 最大値 if n<0 and n<ud(ug+31) : n=-ud(ug+31) ; 最小値 if ud(eg+7)=4 or ud(eg+7)=5 { ; 地、光。+% if n>0 : n=n*k1/100 : else : n=n*k2/100 } if ud(eg+7)=2 or ud(eg+7)=6 { ; 水、闇。-% if n>0 : n=n*k2/100 : else : n=n*k1/100 } zk2+=n } if ud(ug+32)>0 { ; 水 n=ud(ug+32)-ud(eg+33)+ud(eg+31)-ud(eg+36)+ud(eg+35) ; 水値-風+火-闇+光 if n>ud(ug+32) : n=ud(ug+32) ; 最大値 if n<0 and n<ud(ug+32) : n=-ud(ug+32) ; 最小値 if ud(eg+7)=1 or ud(eg+7)=5 { ; 火、光。+% if n>0 : n=n*k1/100 : else : n=n*k2/100 } if ud(eg+7)=3 or ud(eg+7)=6 { ; 風、闇。-% if n>0 : n=n*k2/100 : else : n=n*k1/100 } zk2+=n } if ud(ug+33)>0 { ; 風 n=ud(ug+33)-ud(eg+34)+ud(eg+32)-ud(eg+36)+ud(eg+35) ; 風値-地+水-闇+光 if n>ud(ug+33) : n=ud(ug+33) ; 最大値 if n<0 and n<ud(ug+33) : n=-ud(ug+33) ; 最小値 if ud(eg+7)=2 or ud(eg+7)=5 { ; 水、光。+% if n>0 : n=n*k1/100 : else : n=n*k2/100 } if ud(eg+7)=4 or ud(eg+7)=6 { ; 地、闇。-% if n>0 : n=n*k2/100 : else : n=n*k1/100 } zk2+=n } if ud(ug+34)>0 { ; 地 n=ud(ug+34)-ud(eg+31)+ud(eg+33)-ud(eg+36)+ud(eg+35) ; 地値-火+風-闇+光 if n>ud(ug+34) : n=ud(ug+34) ; 最大値 if n<0 and n<ud(ug+34) : n=-ud(ug+34) ; 最小値 if ud(eg+7)=3 or ud(eg+7)=5 { ; 風、光。+% if n>0 : n=n*k1/100 : else : n=n*k2/100 } if ud(eg+7)=1 or ud(eg+7)=6 { ; 火、闇。-% if n>0 : n=n*k2/100 : else : n=n*k1/100 } zk2+=n } if ud(ug+35)>0 { ; 光 n=0 repeat 4 if ud(eg+31+cnt)>0 : n+=ud(eg+31+cnt) loop nn=ud(ug+35)-n+ud(eg+36) if nn>ud(ug+35) : nn=ud(ug+35) ; 最大値 if nn<0 and nn<ud(ug+35) : nn=-ud(ug+35) ; 最小値 if 1<=ud(eg+7) and ud(eg+7)<=4 { ; 4属、+% if nn>0 : nn=nn*k2/100 : else : nn=nn*k1/100 } if ud(eg+7)=6 { ; 闇、-% if nn>0 : nn=nn*k1/100 : else : nn=nn*k2/100 } zk2+=nn } if ud(ug+36)>0 { ; 闇 n=0 repeat 4 if ud(eg+31+cnt)>0 : n+=ud(eg+31+cnt) loop nn=ud(ug+36)+n-ud(eg+35) if nn>ud(ug+36) : nn=ud(ug+36) ; 最大値 if nn<0 and nn<ud(ug+36) : nn=-ud(ug+36) ; 最小値 if 1<=ud(eg+7) and ud(eg+7)<=4 { ; 4属、+% if nn>0 : nn=nn*k1/100 : else : nn=nn*k2/100 } if ud(eg+7)=5 { ; 光、-% if nn>0 : nn=nn*k2/100 : else : nn=nn*k1/100 } zk2+=nn } ; ダメージ計算 --------------------------------- atkg=atkn*(gensui+zk1)/100 ; 攻撃力 atn=0 : repeat 2 : atn+=rnd(atkg+1) : loop ; 攻撃値 dfn=0 : repeat 2 : dfn+=rnd(ud(eg+12)+1) : loop ; 防御値 dm=atn-dfn : if dm<0 : dm=0 ; 基礎ダメージ dm=dm+(zk2*gensui/100) ; ダメージ+属性ダメージ if dm=0 : n=dm : cn=0 if dm>0 : n=dm : cn=1 if dm<0 : n=-dm : cn=4 if fs=1 : dmp_set n,3+et,cn ; ダメージ表示 if fs=2 : dmp_set n,et,cn repeat 1 ; HP処理 ud(eg+26)-=dm : if ud(eg+26)>0 : break ud(eg+26)=0 loop return
zk1=属性補整 1は種族に対する種族の属性補整なので、単なので簡単だ。
これはダメージの減衰率に足す事によって、ダメージの%を操作する。
zk2=アイテムの属性補整で、装備によって色々な属性を持つので、その全てを計算する。
最大値はその属性の値。
弱点属性で -の値になった場合は回復になる。
その属性の最終値は、相手の種族属性の %補整を受ける。
zk2はダメージ計算に +する形なので、ダメージが 0でもアイテム属性のダメージは入る仕様にした。
テスト
選手 1、ダークエルフ
種族は闇、アイテムの属性補整は、火 10。
選手 2、ジェネラル
種族は風、アイテムの属性補整は、火 15、水22。
ジェネラルの攻撃。
闇に対する風の種族で種族補整 zk1=-20%。
火属性の 15は、火の闇種族に対する弱点補整から -20%減の 12。
水属性は 29と出てるけど zk2は足し算なので、29-12=17の値。
水属性の 22は、水の闇種族に対する弱点補整から -20%減の 17となる。
合計値、zk2=29がアイテムの属性補整値。
ダメージが 26だったので、26に29を足して 55が最終ダメージとなる。
テスト2
選手 1、ウォーロック
種族は地、アイテムの属性補整は、水 10。
選手 2、火の族長
種族は火、アイテムの属性補整は、風 15。
ファイト!
火に対する地の種族で種族補整 zk1=-20%。
アイテム属性補整は、水 10の風 15に対して、弱点補整なので最大値の-10となるが、水は火の種族に強いので、この場合-20%の修正(不利が軽減される)で-8となる。
つまり -の場合はダメージでは無く、相手への回復になる。
ダメージが 30、回復が -8で、22ダメ-ジ。
2回目
地に対する火の種族で種族補整 zk1=+20%。
アイテム属性補整は、風 15の水 10に対して、有利補整なので最大値の 15、風属性は地属性に弱いので-20%の種族補整で 12となる。
3回目
ダメージは 0だが、アイテム属性補整が付いて 12ダメージ。
4回目
ダメージが 0なので、そのまま回復になっている。
4回目
今回は火の族長が勝ったようです。
大体、属性補整の基礎はそんな感じ。
後はバグつぶしと、ダメージの算出がピーキーなので、後で修正する予定。
補整値もバランス調整で、変更されていくと思う。