Unityでターン制ゲームを作っていて思ったのは状態異常を作用させるのに Dictionary が便利そう。
bool で管理するとターンを指定した際に若干不便な気がする。頑張れば実装できるとは思う。
こんな感じで定義して、ターンが来るたびに int の値が1以上だった際にダメージなり特殊効果を与えてintから引けばできる。
public Dictionary<string, int> AbnormalConditions = new Dictionary<string, int>() {
{"Burn", 0},
{ "Addiction", 0 },
{ "Stoned", 0 }
};後から追加する場合はこんな感じ。
AbnormalConditions.Add("Freeze",0);ターンが来たときの処理
if(AbnormalConditions["Burn"] > 0){
//なんか処理
AbnormalConditions["Burn"]--;
}
if(AbnormalConditions["Addiction"] > 0){
//なんか処理
AbnormalConditions["Addiction"]--;
}
if(AbnormalConditions["Stoned"] > 0){
//なんか処理
AbnormalConditions["Stoned"]--;
}
if(AbnormalConditions["Freeze"] > 0){
//なんか処理
AbnormalConditions["Freeze"]--;
}これがポケモンとかのやつだったら bool で管理してターンごとに何分の一かの確立で状態異常を消すとか?
まあ状態異常ごとに処理が違うっぽいけど。