モンク DPS予想
これまでの実験で分かったことを総合し、モンクのDPSを予想するプログラムを作っている。
今のところ、チェインはファストブローとブラスティングブローのみで、通常放置でかかしを叩いた場合のみを想定している。
それでも、グロで与ダメが変わったりするので、案外作るのに苦労している。
まだ未完成で、動かすこともできていない><。けれど、「りあえず今こんな感じ」というのを載せてみる。完成までもう少しかかりそう。
FB=0.45*(1.21+0.05) # FB発動率 BB1=0.05*(1.21+0.05) # BB発動率 BB2=BB1+0.45 # BB発動率(FBからの発動) DM_N = 371 DM_FB = 824 DM_BB = 1396 CRI=0.8 # クリ率 CRI_DM=1.5+1.0+0.07 # クリダメ増 GRO_DM= 1.0+1.2 # グロダメ増 MaxStamina = 280 # かかしの最大スタミナ $frand=Random.new() def occ(q) $frand.rand(1.0) < q end # 攻撃の種類を決める def at_type(prev) case prev when :start return :normal when :normal return :bb if occ(BB1) return :fb if occ(FB) return :normal when :fb return :bb if occ(BB2) return :fb if occ(FB) return :normal when :bb return :fb if occ(FB) return :normal end end DM_Hash={:normal => DM_N, :fb => DM_FB, :bb => DM_BB} ST_Hash={:normal => ST_N, :fb => ST_FB, :bb => ST_BB} TM_Hash={:normal => TM_N, :fb => TM_FB, :bb => TM_BB} def sim (max_time) type=:start stamina=MaxStamina gro_time=0 time=0 while time < max_time type=at_type(type) dm = DM_Hash[type] dm *= CRI_DM if occ(CRI) if time <= gro_time then # グロ中 dm *= GRO_DM if gro else # グロ中でない stamina -= ST_Hash[type] end total+=dm time +=TM_Hash[type] if stamina < 0 then stamina = MaxStamina gro_time = time + 5 # 5秒間グロ end end end sim(60)