太閤立志伝5イベントソース チャプター:{ イベント:軍備制限有無設定{ 属性:一度だけ 発生契機:ゲームスタート時 発生条件:{ } スクリプト:{ ナレーション可否選択:[[軍備制限を実行しますか]] 分岐:(可){ ナレーション:[[軍備制限を行います]] 更新:(イベントフラグ::軍備制限有り)(成立) 更新:(イベントフラグ::城規模等制限初回処理完了)(不成立) 更新:(イベントフラグ::兵士数制限初回処理完了)(不成立) } } } イベント:城規模防御度備蓄制限{ 属性:何度でも 発生契機:毎月処理の最後絶対 発生条件:{ 調査:(イベントフラグ::軍備制限有り)==(成立) } スクリプト:{ //城規模・防御度・備蓄チェック コンテナ設定:(城,無効,無効)//全城コンテナ 条件ループ:(コンテナカウンタ)>(0){ コンテナ選択:(城A,先頭) 代入拠点A:(城::城A.城番号) //城規模の制限 //平地は制限なし、港湾は27まで、山地は23まで //本城か城主居城でないと城規模大以上にはできない //防御度の制限 //平地・港湾は3/4、山地は制限なし //ただし、規模27以上は平地・港湾でも最大まで //また、寺は3/4、館は1/2にさらに制限する //規模に基づく最大値の取り方がわからないので独自に下記の計算式で //(防御度最大)=(城規模)*(8) //備蓄の制限 //基準値は城規模の二乗 //兵糧は(城規模の二乗)*(50) //軍馬は(城規模の二乗)*(20) //鉄砲は(城規模の二乗)*(10) //大筒は(城規模の二乗)/(2) //港湾は規模巨で2倍、山地は巨で3/4、通常は1/2、平地は制限・特典なし //超過ペナルティは城防御度の減少 調査:(城::城A.戦闘フラグ)==(平常)//戦闘中は処理しない 分岐:(真){ //本城の判定 代入国A:(拠点::拠点A.所属国) 調査:(国::国A.本城)==(城A) 分岐:(真){ //本城の時だけ制限最大まで //制限値設定 調査:(拠点::拠点A.立地)==(港湾) 分岐:(真){ 代入b:(27)//城規模制限、港湾は27 } 調査:(拠点::拠点A.立地)==(山地) 分岐:(真){ 代入b:(23)//城規模制限、山地は23 } 調査:(拠点::拠点A.立地)==(平地) 分岐:(真){ 代入b:(30)//城規模制限、平地はなし } 調査:(拠点::拠点A.規模)>(b) 分岐:(真){ 更新:(拠点::拠点A.規模)(b) } 代入z:(拠点::拠点A.規模) } 分岐:(偽){ 代入人物A:(城::城A.城主) 調査:(人物::人物A.所属拠点)==(拠点A) 分岐:(真){ //本城以外で居城の場合は大にはできる 調査:(拠点::拠点A.規模)>(15) 分岐:(真){ 更新:(拠点::拠点A.規模)(15) } 代入z:(拠点::拠点A.規模) } 分岐:(偽){ //通常の城は一律で大にはできない 調査:(拠点::拠点A.規模)>(14) 分岐:(真){ 更新:(拠点::拠点A.規模)(14) } 代入z:(拠点::拠点A.規模) } } //防御度の制限 代入e:(z)*(8)//防御度最大値 調査:(z)>=(27) 分岐:(真){//変化があるのは城規模27以上(平地、港湾) //規模27以上は制限なし } 分岐:(偽){ //立地別処理 調査:(拠点::拠点A.立地)==(港湾) 分岐:(真){ //港湾は3/4 代入e:(e)*(3) 代入e:(e)/(4) } 調査:(拠点::拠点A.立地)==(山地) 分岐:(真){ //山地は制限なし } 調査:(拠点::拠点A.立地)==(平地) 分岐:(真){ //平地は3/4 代入e:(e)*(3) 代入e:(e)/(4) } } //拠点タイプ別処理 調査:(拠点::拠点A.拠点タイプ)==(寺) 分岐:(真){ //寺は3/4 代入e:(e)*(3) 代入e:(e)/(4) } 調査:(拠点::拠点A.拠点タイプ)==(館) 分岐:(真){ //館は半分 代入e:(e)/(2) } 調査:(城::城A.防御度)>(e) 分岐:(真){ 調査:(e)>(0) 分岐:(真){ 更新:(城::城A.防御度)(e) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } } //備蓄の制限 代入x:(z)*(z)//基準値を城規模の二乗に 代入f:(x)*(50)//兵糧最大値の設定 代入g:(x)*(20)//軍馬最大値の設定 代入h:(x)*(10)//鉄砲最大値の設定 代入i:(x)/(2)//大筒最大値の設定 調査:(z)>=(23) 分岐:(真){//変化があるのは城規模23以上(山地、港湾) //立地別処理 調査:(拠点::拠点A.立地)==(港湾) 分岐:(真){ //港湾は2倍 代入f:(f)*(2) 代入g:(g)*(2) 代入h:(h)*(2) 代入i:(i)*(2) } 調査:(拠点::拠点A.立地)==(山地) 分岐:(真){ //山地は3/4 代入f:(f)*(3) 代入g:(g)*(3) 代入h:(h)*(3) 代入i:(i)*(3) 代入f:(f)/(4) 代入g:(g)/(4) 代入h:(h)/(4) 代入i:(i)/(4) } 調査:(拠点::拠点A.立地)==(平地) 分岐:(真){ //平地は制限なし } } 分岐:(偽){ //立地別処理 調査:(拠点::拠点A.立地)==(港湾) 分岐:(真){ //港湾は制限なし } 調査:(拠点::拠点A.立地)==(山地) 分岐:(真){ //山地は1/2 代入f:(f)/(2) 代入g:(g)/(2) 代入h:(h)/(2) 代入i:(i)/(2) } 調査:(拠点::拠点A.立地)==(平地) 分岐:(真){ //平地は制限なし } } //備蓄制限ロジック 代入k:(0)//超過兵糧 代入l:(0)//超過軍馬 代入m:(0)//超過鉄砲 代入n:(0)//超過大筒 代入r:(0)//兵糧超過での減少防御 代入s:(0)//軍馬超過での減少防御 代入t:(0)//鉄砲超過での減少防御 代入u:(0)//大筒超過での減少防御 //兵糧 調査:(城::城A.兵糧)>(f) 分岐:(真){ //主人公が城主の城に対してのみペナルティ有り //制限を超えることができるのも主人公が城主の城のみ //廃棄・継続の選択ができるように改良予定 AND調査:{ 調査:(イベントフラグ::城規模等制限初回処理完了)==(成立) 調査:(城::城A.城主)==(人物::主人公) } 分岐:(真){ 代入k:(城::城A.兵糧)-(f) 代入r:(k)/(f) } 分岐:(偽){ 更新:(城::城A.兵糧)(f) } } //軍馬 調査:(城::城A.軍馬)>(g) 分岐:(真){ AND調査:{ 調査:(イベントフラグ::城規模等制限初回処理完了)==(成立) 調査:(城::城A.城主)==(人物::主人公) } 分岐:(真){ 代入l:(城::城A.軍馬)-(g) 代入s:(l)/(50) } 分岐:(偽){ 更新:(城::城A.軍馬)(g) } } //鉄砲 調査:(城::城A.鉄砲)>(h) 分岐:(真){ AND調査:{ 調査:(イベントフラグ::城規模等制限初回処理完了)==(成立) 調査:(城::城A.城主)==(人物::主人公) } 分岐:(真){ 代入m:(城::城A.鉄砲)-(h) 代入t:(m)/(30) } 分岐:(偽){ 更新:(城::城A.鉄砲)(h) } } //大筒 調査:(城::城A.大筒)>(i) 分岐:(真){ AND調査:{ 調査:(イベントフラグ::城規模等制限初回処理完了)==(成立) 調査:(城::城A.城主)==(人物::主人公) } 分岐:(真){ 代入n:(城::城A.大筒)-(i) 代入u:(n)/(1) } 分岐:(偽){ 更新:(城::城A.大筒)(i) } } 代入o:(0)//超過フラグ 調査:(r)>(0)//兵糧超過 分岐:(真){ 代入o:(o)+(8) } 調査:(s)>(0)//軍馬超過 分岐:(真){ 代入o:(o)+(4) } 調査:(t)>(0)//鉄砲超過 分岐:(真){ 代入o:(o)+(2) } 調査:(u)>(0)//大筒超過 分岐:(真){ 代入o:(o)+(1) } AND調査:{ 調査:(イベントフラグ::城規模等制限初回処理完了)==(成立) 調査:(城::城A.城主)==(人物::主人公) 調査:(o)>(0) } 分岐:(真){ 代入p:(城::城A.防御度) 会話:(忍者,主人公)[[<城A>の物資が過多になっているために、城の防備に影響が出て{いる}]] 会話:(忍者,主人公)[[物資を適正にするため、一部の物資を処分{なさる}か?]] 条件ループ:(o)>(0){ 場合別:(o){ 場合分岐:(15){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n軍馬超過:<l> 防御度<s>低下\n鉄砲超過:<m> 防御度<t>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[兵糧処分]][[軍馬処分]][[鉄砲処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.軍馬)(g) 更新:(城::城A.鉄砲)(h) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(s)//軍馬起因 代入p:(p)-(t)//鉄砲起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(14){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n軍馬超過:<l> 防御度<s>低下\n鉄砲超過:<m> 防御度<t>低下]] 選択:[[兵糧処分]][[軍馬処分]][[鉄砲処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.軍馬)(g) 更新:(城::城A.鉄砲)(h) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(s)//軍馬起因 代入p:(p)-(t)//鉄砲起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(13){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n軍馬超過:<l> 防御度<s>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[兵糧処分]][[軍馬処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.軍馬)(g) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(s)//軍馬起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(12){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n軍馬超過:<l> 防御度<s>低下]] 選択:[[兵糧処分]][[軍馬処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.軍馬)(g) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(s)//軍馬起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(11){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n鉄砲超過:<m> 防御度<t>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[兵糧処分]][[鉄砲処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.鉄砲)(h) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(t)//鉄砲起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(10){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n鉄砲超過:<m> 防御度<t>低下]] 選択:[[兵糧処分]][[鉄砲処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.鉄砲)(h) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(t)//鉄砲起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(9){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[兵糧処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.兵糧)(f) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(8){ ナレーション選択:[[兵糧超過:<k> 防御度<r>低下]] 選択:[[兵糧処分]][[現状維持]] 分岐:([[兵糧処分]]){ 更新:(城::城A.兵糧)(f) 代入o:(o)-(8)//兵糧処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(r)//兵糧起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(7){ ナレーション選択:[[軍馬超過:<l> 防御度<s>低下\n鉄砲超過:<m> 防御度<t>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[軍馬処分]][[鉄砲処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.軍馬)(g) 更新:(城::城A.鉄砲)(h) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(s)//軍馬起因 代入p:(p)-(t)//鉄砲起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(6){ ナレーション選択:[[軍馬超過:<l> 防御度<s>低下\n鉄砲超過:<m> 防御度<t>低下]] 選択:[[軍馬処分]][[鉄砲処分]][[一括処分]][[現状維持]] 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.軍馬)(g) 更新:(城::城A.鉄砲)(h) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(s)//軍馬起因 代入p:(p)-(t)//鉄砲起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(5){ ナレーション選択:[[軍馬超過:<l> 防御度<s>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[軍馬処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.軍馬)(g) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(s)//軍馬起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(4){ ナレーション選択:[[軍馬超過:<l> 防御度<s>低下]] 選択:[[軍馬処分]][[現状維持]] 分岐:([[軍馬処分]]){ 更新:(城::城A.軍馬)(g) 代入o:(o)-(4)//軍馬処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(s)//軍馬起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(3){ ナレーション選択:[[鉄砲超過:<m> 防御度<t>低下\n大筒超過:<n> 防御度<u>低下]] 選択:[[鉄砲処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[一括処分]]){ 更新:(城::城A.鉄砲)(h) 更新:(城::城A.大筒)(i) 代入o:(0)//一括処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(t)//鉄砲起因 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(2){ ナレーション選択:[[鉄砲超過:<m> 防御度<t>低下]] 選択:[[鉄砲処分]][[大筒処分]][[一括処分]][[現状維持]] 分岐:([[鉄砲処分]]){ 更新:(城::城A.鉄砲)(h) 代入o:(o)-(2)//鉄砲処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(t)//鉄砲起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(1){ ナレーション選択:[[大筒超過:<n> 防御度<u>低下]] 選択:[[大筒処分]][[現状維持]] 分岐:([[大筒処分]]){ 更新:(城::城A.大筒)(i) 代入o:(o)-(1)//大筒処理完了 } 分岐:([[現状維持]]){ 代入p:(p)-(u)//大筒起因 調査:(p)>(0) 分岐:(真){ 更新:(城::城A.防御度)(p) } 分岐:(偽){ 更新:(城::城A.防御度)(0) } 代入o:(0)//フラグをクリアして処理完了 } } 場合分岐:(0){ //何もしない、たぶんここは通らない } } } } } コンテナ選抜:(削る,1) 調査:(コンテナカウンタ)==(0) 分岐:(真){ 調査:(イベントフラグ::城規模等制限初回処理完了)!=(成立) 分岐:(真){ 更新:(イベントフラグ::城規模等制限初回処理完了)(成立) } } } } } イベント:兵士数制限{ 属性:何度でも 発生契機:毎月処理の最後絶対 発生条件:{ 調査:(イベントフラグ::軍備制限有り)==(成立) } スクリプト:{ //総兵士数は石高基準(千石あたり30人) //城毎の兵士数は城規模基準(規模の2乗/2*100) //総兵士数が基準を超えると全城の安定度低下 //低下安定度=(超過数)/100/(城数) //城毎の兵士数が基準を超えるとその城の安定度低下、超過分の1割の兵士数が減少 //低下安定度=(超過数)/100 //COM城主は各城に規模1あたり100人の兵士を置いて、残りを居城に集めようとする //ついでにCOM城主が制限を超えることはない //城主以上の全人物コンテナ コンテナ設定:(人物,カテゴリ,武将) コンテナ絞り込み:(人物,所属勢力タイプ,大名家) コンテナ除外:(人物,身分,足軽組頭) コンテナ除外:(人物,身分,足軽大将) コンテナ除外:(人物,身分,侍大将) コンテナ除外:(人物,身分,部将) コンテナ除外:(人物,身分,家老) コンテナ除外:(人物,身分,娘) コンテナ除外:(人物,死亡フラグ,死亡) コンテナ除外:(人物,出現フラグ,未出現) 条件ループ:(コンテナカウンタ)>(0){ コンテナ選択:(人物A,先頭) コンテナ複写:(退避)//人物コンテナを退避 代入a:(0)//総石高 代入b:(0)//総兵士数 代入m:(0)//総規模 代入n:(0)//居城規模 代入o:(0)//居城以外の総規模 コンテナ設定:(城,城主,人物A) 条件ループ:(コンテナカウンタ)>(0){ コンテナ選択:(城A,先頭) 代入a:(a)+(城::城A.現石高) 代入b:(b)+(城::城A.兵士数) 代入m:(m)+(城::城A.規模) コンテナ選抜:(削る,1) } 代入拠点A:(人物::人物A.所属拠点) 代入n:(拠点::拠点A.規模) 代入城B:(人物::人物A.所属拠点) 代入o:(m)-(n) 代入p:(o)*(100)//規模*(100)の兵士を居城以外に置いたとする(A) 代入q:(n)*(n) 代入q:(q)*(100) 代入q:(q)/(2)//居城の最大兵士数 代入s:(n)*(100)//居城の規模*(100) 代入t:(0) 代入x:(b) 代入a:(a)*(30)//軍役率に応じて 代入c:(0)//超過数の初期化 調査:(b)>(a) 分岐:(真){//総兵士数が上限を超過している 代入c:(b)-(a)//全体の超過数 代入c:(c)/(100) 代入x:(a) } 代入r:(x)-(p)//(A)の場合に居城に置くことのできる兵士 コンテナ設定:(城,城主,人物A)//再度すべての城のコンテナ 代入c:(c)/(コンテナカウンタ)//総兵士数ペナルティ1城あたり AND調査:{ 調査:(人物::人物A)==(人物::主人公) 調査:(イベントフラグ::兵士数制限初回処理完了)==(成立) } 分岐:(真){ 調査:(c)>(0) 分岐:(真){ 会話:(忍者,主人公)[[領内の軍役が過重になっているために、領内の住民に不満の声が上がって{いる}]] 会話:(忍者,主人公)[[兵士数を適正にするため、一部の兵士を解雇しますか?]] ナレーション選択:[[兵士数上限:<a>\n現総兵士数:<b>\n安定度低下:<c>]] 選択:[[解雇する]][[軍備を維持する]] 分岐:([[解雇する]]){ 更新:(イベントフラグ::兵士解雇実行)(成立) } 分岐:([[軍備を維持する]]){ 更新:(イベントフラグ::兵士解雇実行)(不成立) 会話:(忍者,主人公)[[領内の住民安定度がそれぞれ<c>低下し{ました}]] } } } 分岐:(偽){ 代入t:(p)//pの退避 代入大名家A:(人物::人物A.所属大名家) OR調査:{//大名家の戦略が攻撃型か守備型かで兵士の配備方針が異なる 調査:(大名家::大名家A.戦略)==(敵城攻略) 調査:(大名家::大名家A.戦略)==(大名攻略) 調査:(大名家::大名家A.戦略)==(国内統一) 調査:(大名家::大名家A.戦略)==(地方統一) 調査:(大名家::大名家A.戦略)==(天下統一) } 分岐:(真){ //攻撃戦略の場合は各城主居城に最低8割の兵を置く 調査:(o)>(0) 分岐:(真){ //居城以外に城がある 調査:(b)>(a) 分岐:(真){ 代入v:(a)*(8) 代入v:(v)/(10)//総兵数の8割 } 分岐:(偽){ 代入v:(b)*(8) 代入v:(v)/(10)//総兵数の8割 } 調査:(v)>(r)//各城に規模*(100)の兵士を置いた場合とどちらが多いか 分岐:(真){ 代入r:(v) 代入p:(x)-(r) } } } 調査:(r)>(s)//居城の兵士数チェック 分岐:(真){//規模1あたり100を超えている 調査:(r)>(q)//居城の兵士上限チェック 分岐:(真){ 更新:(城::城B.兵士数)(q)//上限まで 代入p:(x)-(q)//居城以外の総兵士が変わる } 分岐:(偽){ 更新:(城::城B.兵士数)(r) } } 分岐:(偽){//規模1あたり100以下 調査:(s)>(q)//居城の兵士上限チェック 分岐:(真){ 更新:(城::城B.兵士数)(q)//上限まで 代入p:(x)-(q)//居城以外の総兵士が変わる } 分岐:(偽){ 調査:(s)>(a) 分岐:(真){ 更新:(城::城B.兵士数)(a) 代入p:(0) } 分岐:(偽){ 更新:(城::城B.兵士数)(s) 代入p:(x)-(s)//居城以外の総兵士が変わる } } } コンテナ除外:(城,城番号,城B) } 条件ループ:(コンテナカウンタ)>(0){ コンテナ選択:(城A,先頭) AND調査:{ //超過できるのは主人公のみ、ペナライズされるのも主人公のみ 調査:(イベントフラグ::兵士数制限初回処理完了)==(成立) 調査:(人物::人物A)==(人物::主人公) } 分岐:(真){ 調査:(イベントフラグ::兵士解雇実行)==(不成立) 分岐:(真){ 代入d:(城::城A.住民安定度) 調査:(c)>(0) 分岐:(真){ 代入d:(d)-(c) } 代入e:(城::城A.規模) 代入e:(e)*(e) 代入e:(e)*(100) 代入e:(e)/(2) 代入f:(城::城A.兵士数) 調査:(f)>(e) 分岐:(真){ 代入g:(f)-(e)//超過兵士数 代入h:(g)/(100)//減少する安定度 代入i:(g)/(10)//減少する兵士 代入d:(d)-(h) 調査:(d)<(0) 分岐:(真){ 代入d:(0) } 代入f:(f)-(i) 更新:(城::城A.兵士数)(f) 会話:(忍者,主人公)[[<城A>では規模に対して兵士数が多く、住民安定度が<h>低下し{ました}]] 会話:(忍者,主人公)[[<城A>の兵士数が<i>減少し{ました}]] } 更新:(城::城A.住民安定度)(d) } 調査:(イベントフラグ::兵士解雇実行)==(成立) 分岐:(真){ //主人公の所有城については、居城を含め現状の比率を維持して減らす 代入f:(城::城A.兵士数) 代入f:(f)*(100) 代入f:(f)/(b) 代入f:(f)*(a) 代入f:(f)/(100) 更新:(城::城A.兵士数)(f) } } 分岐:(偽){ 調査:(t)==(p) 分岐:(真){ 代入u:(城::城A.規模)*(100) 更新:(城::城A.兵士数)(u) } 分岐:(偽){ 調査:(p)!=(0) 分岐:(真){ 代入k:(城::城A.規模)*(100) 代入k:(k)/(o) 代入k:(p)*(k) 代入k:(k)/(100) 更新:(城::城A.兵士数)(k) } 分岐:(偽){ 更新:(城::城A.兵士数)(0) } } } コンテナ選抜:(削る,1) } コンテナ複写:(復帰)//人物コンテナを戻す コンテナ選抜:(削る,1) } 調査:(イベントフラグ::兵士数制限初回処理完了)!=(成立) 分岐:(真){ 更新:(イベントフラグ::兵士数制限初回処理完了)(成立) } } } イベント:諸勢力制限{ 属性:何度でも 発生契機:毎月処理の最後絶対 発生条件:{ 調査:(イベントフラグ::軍備制限有り)==(成立) } スクリプト:{ //大名家以外の勢力は兵士数のみ制限 //城規模基準に忍者は100倍で兵士数そのものを制限する //海賊衆はとりあえず船舶の10倍を兵士数としてみる //その他諸々汎用化する場合は修正 コンテナ設定:(里,無効,無効) 条件ループ:(コンテナカウンタ)>(0){ コンテナ選択:(里A,先頭) 代入a:(里::里A.規模) 代入a:(a)*(100) 調査:(里::里A.兵士数)>(a) 分岐:(真){ 更新:(里::里A.兵士数)(a) } コンテナ選抜:(削る,1) } コンテナ設定:(砦,無効,無効) 条件ループ:(コンテナカウンタ)>(0){ コンテナ選択:(砦A,先頭) 代入a:(砦::砦A.規模) 代入a:(a)*(10) 代入b:(砦::砦A.所有船舶数)+(砦::砦A.大型船舶数) 代入b:(b)+(砦::砦A.鉄甲船数) 調査:(b)>(a) 分岐:(真){ 代入c:(砦::砦A.所有船舶数)*(100) 代入c:(c)/(b) 代入c:(a)*(c) 代入c:(c)/(100) 更新:(砦::砦A.所有船舶数)(c) 代入c:(砦::砦A.大型船舶数)*(100) 代入c:(c)/(b) 代入c:(a)*(c) 代入c:(c)/(100) 更新:(砦::砦A.大型船舶数)(c) 代入c:(砦::砦A.鉄甲船数)*(100) 代入c:(c)/(b) 代入c:(a)*(c) 代入c:(c)/(100) 更新:(砦::砦A.鉄甲船数)(c) } コンテナ選抜:(削る,1) } 更新:(イベントフラグ::諸勢力制限処理完了)(成立)//処理完了フラグ } } }