残りの特殊能力を整備し、戦闘は一通り終わった


(ソースコードが長いので表示までしばらくお待ち下さい)
 
 
2017年 12月16日
 
 
 ついに戦闘プログラムが一応一通り完成した。

 始めが 10月の 5日くらいだから、やっぱり 2ヶ月くらいはかかってる。

 しかもこれで終わりでは無く、この後エフェクト表示、つまり戦闘表示を作らないといけない。
 
 
 今回はユニットの特殊能力の残りを埋めた。

  “残りの特殊能力を整備し、戦闘は一通り終わった” の続きを読む

召還とリザレクション(蘇生)を作った


2017年 12月9日
 
 
 今回もそれなりに大変だった。

 隊列の処理が意外とややこしい。

 それと召還のユニットデータとステータスデータをどうするか、というのもある。
 
 
 では召還から。
  “召還とリザレクション(蘇生)を作った” の続きを読む

状態異常を作った


2017年 12月2日
 
 
 あ~もう 12月になってしまった.

 計画では 12月末に、そう年末商戦に間に合うように作ろうと思ったんだけど、7ヶ月経って、これ半分くらいだろうか。

 これは来年の 3月ですら怪しい。

 今回のゲームはきちんとしたのを、という計画だったけど、流石に時間がかかる。

 やはり、もうちょっとミニゲームの発表からやるべきだったかな。

 ゲーム制作は、というか何でもそうなんだけど、思った以上に時間がかかる。
 マーフィーの法則だと、見積もりの 2倍は見ておけだったかな?
 
 
 さて、今回は状態異常を作った。

 麻痺、気絶、魅惑、毒といったものだ。

  “状態異常を作った” の続きを読む

とりあえず魔法一揃い


2017年 11月23日
 
 
 途中だけど区切りが良いので。
 
 
 ソースには魔法一揃い並べたけど、まだ機能は全部実装してない。

 補助ステータスのソースをまとめたのとヒールを追加したくらい。

  “とりあえず魔法一揃い” の続きを読む

ステータス魔法を追加する


2017年 11月17日
 
 
 前回より 2週間の時間が経ちました。
 
 
 いやあ、今回も大変だった(こればっか)

 何が大変だったかと言うと、ステータスを変化した値をどこに格納して参照するか。

 ud、ユニットデータに格納すれば事は簡単なのだが、これだとステータスの変数が例えば 30種類だったとして、200ユニット作るとデータが 6000増える、6kバイト?いや、一つの変数はたぶん 4バイト、つまり 2バイトで最大値 65536だから、いくつかはめんどくさいので計算しないが、4バイトだとそれ以上の最大値で、それを確保してるはずだから・・・、まあいいや、とにかく 6000*4で 24Kバイト、1000ユニット作ったら、ええと・・・。

 まあとにかくユニットデータに余分なデータを格納すると、死にデータ領域が増えるし、オーバーフローで動かなくなる可能性が。

 と言っても最近のスマホなら気にしなくても大丈夫なんだろうか?

  “ステータス魔法を追加する” の続きを読む

特殊攻撃を追加


2017年 11月1日
 
 
 たぶん今一番ややこしい箇所になってる。
 やっぱり戦闘部分が一番複雑かもしれない。

 今回は特殊攻撃を追加して、合わせてプログラムも改変している。
 改変自体はまだまだどんどん続くだろう。

 そういえば前にプログラムを適性化してはならないと言ったけど、それは完成して動いてるやつね。
 それもたぶん、なるべくしない方が良いくらいのニュアンスだと思う。

  “特殊攻撃を追加” の続きを読む

属性補整ができた


2017年 10月25日
 
 
 思った以上に複雑だった。

 属性が単だったら簡単だけど、複数の属性を持った同士が想定されるので難解だ。
 
 
 属性相関図

 本ゲームでは、

 火は、炎と熱、火傷。
 地は、大地と植物、地震、重力、スタン(気絶)。
 風は、突風やカマイタチ、雷、マヒ。
 水は、水、冷気、フリーズ(氷化による鈍化)。
 光は、聖なる、4属性に弱い、ターンアンデッド。
 闇は、邪悪、4属性に強い、毒。

 と言う取り決めに今の所なってるが、魔法などでどれだけ生かされるかは、まだ分からない。

  “属性補整ができた” の続きを読む

戦闘プロフラムの基礎部分ができた


2017年 10月19日
 
 
 やっと初歩の攻撃部分だけできた。

 差配プログラムも変更されたが、部隊が 3部隊で 1部隊 3ユニットというややこしさと、武器を持ってる持って無い、射程がある、ユニットによっては手の攻撃が無い、2手攻撃、複数攻撃とか要素が多くて大変だった。

 あまりの作成する要素の量と、たぶん現在全行程の3割くらいしか進んでない状況から、もう完成しないのではないかと日に 1度は思う。

 やっぱりもっと簡単なゲームから制作した方が良かったのか・・・・。
 そう考えるのはクリエイターのお約束なんだろうなあ。

  “戦闘プロフラムの基礎部分ができた” の続きを読む

戦闘部隊の差配プログラムができた


2017年 10月8日
 
 
 戦闘部隊は最大でそれぞれ 3部隊ずつあるので、どの順番で戦うか、というプログラムね。

 これが意外とややこしくて、てこずった。

 部隊数が敵より少ない場合、順番にもう一度繰り返し戦う。
 
 
 ソース。

*battle ; 戦闘メイン ////////////////////////////////

	btvf=0	; 勝利フラグ

	repeat 1 ; -------------------------------------------------

	 dim ff1,4	; forceフラグ、攻撃側
	 dim ff2,4	; forceフラグ、防衛側

	 repeat 3 : cnt2=cnt ; 部隊が存在するか
	  repeat 3
	   if mu(kn1*10+cnt2*3+cnt+1)=0 : continue
	   ff1(cnt2+1)=1 : break
	  loop
	  repeat 3
	   if mu(kn2*10+cnt2*3+cnt+1)=0 : continue
	   ff2(cnt2+1)=1 : ff2(0)=-1 : break
	  loop
	 loop

	 if ff2(0)=0 : btvf=1 : break; 防衛部隊が無いので勝利


; 戦闘部隊差配 -------------

	 fc1=0 : fc2=0 ; 部隊No.

	 repeat 3	; 攻撃側
	  if ff1(fc1\3+1)=0 : fc1+ : continue

	  bf=0 ; 不戦勝フラグ
	  repeat 3	; 防衛側
	   if ff2(fc2\3+1)=1 : gosub *fight : fc2+ : bf=1 : break
	   fc2+
	  loop
	  if bf=0 : btvf+ ; 不戦勝

	  fc1+
	 loop

	 repeat 3	; 防衛側
	  if fc2>=3 : break ; 全部隊戦闘したので終わり
	  if ff2(fc2\3+1)=0 : fc2+ : continue

	  bf=0 ; 不戦負フラグ
	  repeat 3	; 攻撃側
	   if ff1(fc1\3+1)=1 : gosub *fight : fc1+ : bf=1 : break
	   fc1+
	  loop
	  if bf=0 : btvf- ; 不戦負

	  fc2+
	 loop

	loop ;------------------------------------------------------

    return


*fight ; 戦闘 ///////////////////////////////////////

	fg1=fc1\3+1
	fg2=fc2\3+1

	dim fn1,4 ; 攻撃側ユニットNp.
	dim fn2,4 ; 防衛側ユニットNp.

	repeat 3,1 ; ユニットNo.ひかえ
	 fn1(cnt)=mu(kn1*10+(fg1-1)*3+cnt)
	 fn2(cnt)=mu(kn2*10+(fg2-1)*3+cnt)
	loop

	return

 btvf=勝敗数。

 ff=どの部隊が存在するか。
 1は攻撃側、2は防衛側。

 fc=部隊の順番カウント。
 部隊が敵より少ない場合に、順番に戦わせるため。
 部隊数は fc\(余り)3+1で求める。

 攻撃側と防御側、それぞれ 3回ずつで判定する。

 fg=今戦っている部隊No.
 fn=戦うユニットNo.
 
 
 攻撃側


 
 
 防衛側


 
 
 1戦目。左が攻撃側、右が防衛側。


 
 
 2戦目

 
 
 3戦目

 
 
 3戦目は防衛側が第 2部隊をもう一度出している。

 1部隊しかなければ 3戦出る。

 まだ戦闘が出来てないので、たぶん 1戦目でやられるだろうから、実際には 3戦目は不戦勝とかそんな感じ。
 
 
 あ、そうそう、部隊は前衛、中衛、後衛で出来ていて、射程の概念がある。