C#:Dictionaryについてめも

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 で管理してターンごとに何分の一かの確立で状態異常を消すとか?
まあ状態異常ごとに処理が違うっぽいけど。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA