2022年 2月 25日
キャラクターユニットとして軍師を思い付いたので実装した。
効果はダイスの目の内、低いものを「振りなおし」する能力。
能力 1で 1個、2で 2個、3で 3個を振りなおす。
上は攻撃指揮官で 2個ダイスを増やす、下は軍師で 2個振りなおし、金枠が振りなおしたダイス、なかなか互角の勝負だ。
軍師の利点は「攻勢でも守勢でも効果が出ること」、欠点は「ダイスの個数が少ないと能力を発揮しない」こと。
それは「振りなおしたダイスが必ずしも元のダイスより高いとは限らない」ため。
ソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
; 軍師 f=0 if ldcu(kln1)=13 : f=1 if ldcu(kln1)=14 : f=2 if ldcu(kln1)=15 : f=3 cun1=-1 : cun2=-1 : cun3=-1 repeat 1 if f<1 : break n1=7 : n2=7 : n3=7 repeat dcpb : n2=p1dn(cnt) if n2=0 : continue ; 無い if n2<n1 : n1=n2 : cun1=cnt loop if cun1>-1 { p1dn(cun1)=rnd(6)+1 ; 振りなおし cdwp1(cun1)=1 ; 金枠表示 } if f<2 : break n1=7 repeat dcpb : n2=p1dn(cnt) if n2=0 or cnt=cun1 : continue ; 無い or 既に選んである if n2<n1 : n1=n2 : cun2=cnt loop if cun2>-1 { p1dn(cun2)=rnd(6)+1 ; 振りなおし cdwp1(cun2)=1 ; 金枠表示 } if f<3 : break n1=7 repeat dcpb : n2=p1dn(cnt) if n2=0 or cnt=cun1 or cnt=cun2 : continue ; 無い or 既に選んである if n2<n1 : n1=n2 : cun3=cnt loop if cun3>-1 { p1dn(cun3)=rnd(6)+1 ; 振りなおし cdwp1(cun3)=1 ; 金枠表示 } loop repeat dcpb : n=p1dn(cnt) ; ダイス目 if n=0 : continue ; 無い p1dng+=n ; 総数 p1dp(cnt)=(n-1)*2+rnd(2) ; 表示ダイス loop |
f がその国の軍師と能力数。
案外ややこしかったけど、cun1、cun2、cun3が振りなおすダイスの位置。
1個ずつ最小の値のダイスを拾い、既に拾っているダイスは走査しない。
この辺でゲームの基礎部分は大体出来たと思う。
これからは、プレイヤー操作の変更やリプレイ、オプションやセーブロードなどの周辺部分を作る事になると思う。