いちのデスクトップ

適当なこと言ってます

自作modの進捗7

初投稿です。

やっとテストが終わりました。これでmod作りに専念することが出来ます。やったぜ。

進捗

f:id:ichi1223:20200217143556p:plain

外交ツリーをちょっとだけ作りました。このツリーでは、主にイベントを沢山使用する予定です。なので昨日、練習がてらに複雑な連鎖イベントを作ってみました。

 

外交NFの紹介

f:id:ichi1223:20200217143720p:plain

このNFを達成すると、国家精神"中欧経済同盟"を得て、中欧の各国に"経済協定を提案"というイベントを発生させられます。

f:id:ichi1223:20200217144331p:plain

こんなイベントですね

上の選択肢を選ぶと承諾し、それぞれ国家精神"中欧経済同盟"を得られます。下の選択肢を選ぶと拒否します。

f:id:ichi1223:20200217144853p:plain

承諾だとこのイベントが

f:id:ichi1223:20200217144724p:plain

拒否だとこのイベントが

それぞれドナウ連邦に発生します。

そしてすべての国から返答が終わると…

f:id:ichi1223:20200217145211p:plain

このイベントが発生し、国家精神"中欧経済同盟"に効果を追加します。

この中欧経済同盟に追加する効果は承諾した国の数が多ければ多いほど強力になります。今回はギリシャブルガリアアルバニアの三国が承諾してくれたので消費財が-6%という効果になっていますが、これが七か国承諾した場合消費財-14%になります。うっそだろお前wwwwwwwwwwwwwww。

 

仕組み

マジでこのイベントの仕組みを考えるのには苦労しました。実現も苦労したけど…

このイベントも先日紹介したディシジョンも変数を使って実現できました。

 

まず最初のNFから仕掛けが始まります。コードを見てみましょう。

f:id:ichi1223:20200217150901p:plain

字が汚い。まぁ…読めるからいいよね…?

まずset_variableというエフェクトでドナウ連邦DNU_dip_1DNU_dip_2という二種類の変数の数値を0に設定します。これで数字を入れる入れ物が二つ作れました。あとはアイデア(国家精神)を追加して各国にイベントdonauevent.1を起こします。

f:id:ichi1223:20200217151827p:plain

これがdonauevent.1のコードです。先ほどと同じく変数に関係するところを緑、イベント発生に関係するところを赤で囲っています。

まずイベントが発生すると、選択肢に関係なくadd_to_variableというエフェクトでドナウ連邦のDNU_dip_2の値が+2されます。次に選択肢の分岐になり、上(承諾の選択肢)を選ぶとドナウ連邦のDNU_dip_1の値が+2され、その国にアイデアを追加し、ドナウ連邦でイベントdonauevent.2が発生します。下(拒否の選択肢)では、DNU_dip_1追加されずドナウ連邦でイベントdonauevent.4が発生します。

つまり7か国中、例えば4か国が承諾すると

ドナウ連邦のDNU_dip_1の値は8になり

ドナウ連邦のDNU_dip_2の値は14になります。

 

つぎのイベント、donauevent.2のコードを見てみましょう。

f:id:ichi1223:20200217153611p:plain

このイベントにも選択肢が二つありますが、

上の選択肢はドナウ連邦のDNU_dip_2の値が14ではない時に、

下の選択肢はドナウ連邦のDNU_dip_2の値が14の時に、

それぞれ選択肢に出現するようになっています。

donauevent.1の時に説明した通り、DNU_dip_2という変数はdonauevent.1が発生するたびに+2されていきます。なので7回発生した場合にDNU_dip_2の値は14になります。

つまり、donauevent.1の発生が7回目の時は下の選択肢だけが出現し、それ以外の時は上の選択肢だけが出現するということになります。

ここで発生回数のカウントによって次のイベントに移るか否かを判断できるわけですね。

donauevent.1の下の選択肢で発生するdonauevent.4というイベントもdonauevent.2と同じようなコードをしています。

さて下の選択肢が出現し、次はdonauevent.3というイベントに移ります。これは序盤に画像で見せた"中欧経済同盟の形成!"というイベントのコードです。

f:id:ichi1223:20200217160255p:plain

なっっっっっっっっっっが!!!!!!!

はい。これがdonauevent.3、この連鎖イベントのメインとなるイベントのコードです。

でも仕組みはdonauevent.2とほぼほぼ一緒です。つまり出現する選択肢を制限してるだけです。

ですがこのイベントはdonauevent.2と違い、ドナウ連邦の変数DNU_dip_1の値を調べます。このDNU_dip_1という変数は、donauevent.1の上の選択肢を選ぶと2増加します。つまり、DNU_dip_1の値はdonauevent.1上を選んだ数×2になるわけです。

この方法を使えば何か国が合意したかを調べることができるので、このイベントのように、数によって選択肢の効果を変えることができるようになります。

f:id:ichi1223:20200217161042p:plain

疲れた。

はい。こんな感じです。

以上、このイベントが実装できたうれしさから衝動でこんな誰のためになるかわかんないような記事を書いた私でした。