アットウィキロゴ

BattleManager

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DxLibDLL;
 
namespace DesignProject
{
    class BattleManager
    {
 
        //仕事はダメージ計算して抱える事
        //技のインデックス抱える事
        //死亡判定とか速度判定とか
 
 
        public int my_chara_select { get; set; }
        public int enemy_chara_select { get; set; }
        //戦闘ルーチン用
        //戦闘に出ているキャラクターindex
 
        public int my_art_select { get; set; }
        public int enemy_art_select { get; set; }
        //技のindex
 
        System system;
 
        //システムとかも持たせるとか
        public BattleManager(System system)
        {
            this.system = system;
 
            this.my_art_select = 0;
            this.my_chara_select = 0;
            this.enemy_art_select = 0;
            this.enemy_chara_select = 0;
 
        }
 
 
        public void DrawState()//状態等描画
        {
 
            //無い状態なので参照禁止
            //状態描画
            //HPとかキャラとか
            DX.DrawBox(100, 20, 200, 30, DX.GetColor(255, 255, 255), DX.FALSE);
            DX.DrawBox(100, 20, 100 + ((int)(100 * (
                (double)system.player.characterManager.characterList[my_chara_select].Life /
                (double)system.player.characterManager.characterList[my_chara_select].LifeMax))),
                30, DX.GetColor(255, 255, 255), DX.TRUE);
            //自分の戦闘キャラのHPバー
 
            DX.DrawBox(300, 20, 400, 30, DX.GetColor(255, 255, 255), DX.FALSE);
            DX.DrawBox(300, 20, 300 + ((int)(100 * (
                (double)system.enemy_player.characterManager.characterList[enemy_chara_select].Life /
                (double)system.enemy_player.characterManager.characterList[enemy_chara_select].LifeMax))),
                30, DX.GetColor(255, 255, 255), DX.TRUE);
 
            system.resource.DrawGraph(0, 0, system.resource.GetGraphHandle(system.player.characterManager.characterList[my_chara_select].imageID), DX.TRUE);
            system.resource.DrawGraph(0, 0, system.resource.GetGraphHandle(system.enemy_player.characterManager.characterList[enemy_chara_select].imageID), DX.TRUE);
        }
 
        public void DrawBattle()
        {
            //player1側のキャラが素早い
            if (system.player.characterManager.characterList[my_chara_select].speed >= system.enemy_player.characterManager.characterList[enemy_chara_select].speed)
            {
                //1の攻撃
                int damage = system.player.characterManager.characterList[my_chara_select].attack +
                    system.player.characterManager.characterList[my_chara_select].arts[my_art_select].power;
 
                system.enemy_player.characterManager.characterList[enemy_chara_select].Life -= damage;
 
                DX.DrawString(0, 0,system.player.characterManager.characterList[my_chara_select].name + "は" +
                    system.enemy_player.characterManager.characterList[enemy_chara_select].name + "に" + 
                    damage.ToString() + "ダメージ与えた", DX.GetColor(255, 255, 255));
 
                //2の死亡判定
                if (system.enemy_player.characterManager.characterList[enemy_chara_select].Life <= 0)//HPが0以下
                {
                    DX.DrawString(0, 0,system.enemy_player.characterManager.characterList[enemy_chara_select].name +  "は倒れた", DX.GetColor(255, 255, 255));
 
                    enemy_chara_select++;//次のキャラへ
 
                    if (enemy_chara_select == 3)//全滅
                    {
                        DX.DrawString(0, 0, "相手の手持ちは全滅しました", DX.GetColor(255, 255, 255));
                        DX.DrawString(0, 0, "あなたの勝ちです", DX.GetColor(255, 255, 255));
 
                        //終了処理
 
                        //system.isClose = true;//上位のsysytemにアクセス
 
                    }
                    return;//相手側が死んだので相手側の攻撃は無し
 
                }
 
 
                //2の攻撃
                damage = system.enemy_player.characterManager.characterList[enemy_chara_select].attack +
                    system.enemy_player.characterManager.characterList[enemy_chara_select].arts[enemy_art_select].power;
 
                system.player.characterManager.characterList[my_chara_select].Life -= damage;
 
                DX.DrawString(0, 0, system.enemy_player.characterManager.characterList[enemy_chara_select].name + "は" + 
                    system.player.characterManager.characterList[my_chara_select].name + "に" + 
                    damage.ToString() + "ダメージ与えた", DX.GetColor(255, 255, 255));
 
                //1の死亡判定
                if (system.player.characterManager.characterList[my_chara_select].Life <= 0)
                {
                    DX.DrawString(0, 0, system.player.characterManager.characterList[my_chara_select].name + "は倒れた", DX.GetColor(255, 255, 255));
                    my_chara_select++;
 
                    if (my_chara_select == 3)//全員死んでいたら
                    {
                        DX.DrawString(0, 0, "あなたの手持ちは全滅しました", DX.GetColor(255, 255, 255));
                        DX.DrawString(0, 0, "相手の勝ちです", DX.GetColor(255, 255, 255));
                        //終了処理
                    }
                }
            }
 
 
            //player2側のキャラが素早い
            else if (system.player.characterManager.characterList[my_chara_select].speed < system.enemy_player.characterManager.characterList[enemy_chara_select].speed)
            {
                //2の攻撃
                int damage = system.enemy_player.characterManager.characterList[enemy_chara_select].attack +
                    system.enemy_player.characterManager.characterList[enemy_chara_select].arts[enemy_art_select].power;
 
                system.player.characterManager.characterList[my_chara_select].Life -= damage;
 
                DX.DrawString(0, 0, system.enemy_player.characterManager.characterList[enemy_chara_select].name + "は" +
                    system.player.characterManager.characterList[my_chara_select].name + "に" +
                    damage.ToString() + "ダメージ与えた", DX.GetColor(255, 255, 255));
 
                //1の死亡判定
                if (system.player.characterManager.characterList[my_chara_select].Life <= 0)
                {
                    DX.DrawString(0, 0, system.player.characterManager.characterList[my_chara_select].name + "は倒れた", DX.GetColor(255, 255, 255));
                    my_chara_select++;
 
                    if (my_chara_select == 3)//全員死んでいたら
                    {
                        DX.DrawString(0, 0, "あなたの手持ちは全滅しました", DX.GetColor(255, 255, 255));
                        DX.DrawString(0, 0, "相手の勝ちです", DX.GetColor(255, 255, 255));
                        //終了処理
                    }
                    return;//自分側が死んだので自分側の攻撃は無し
                }
 
 
                //1の攻撃
                damage = system.player.characterManager.characterList[my_chara_select].attack +
                    system.player.characterManager.characterList[my_chara_select].arts[my_art_select].power;
 
                system.enemy_player.characterManager.characterList[enemy_chara_select].Life -= damage;
 
                DX.DrawString(0, 0, system.player.characterManager.characterList[my_chara_select].name + "は" +
                    system.enemy_player.characterManager.characterList[enemy_chara_select].name + "に" +
                    damage.ToString() + "ダメージ与えた", DX.GetColor(255, 255, 255));
 
                //2の死亡判定
                if (system.enemy_player.characterManager.characterList[enemy_chara_select].Life <= 0)//HPが0以下
                {
                    DX.DrawString(0, 0, system.enemy_player.characterManager.characterList[enemy_chara_select].name + "は倒れた", DX.GetColor(255, 255, 255));
 
                    enemy_chara_select++;//次のキャラへ
 
                    if (enemy_chara_select == 3)//全滅
                    {
                        DX.DrawString(0, 0, "相手の手持ちは全滅しました", DX.GetColor(255, 255, 255));
                        DX.DrawString(0, 0, "あなたの勝ちです", DX.GetColor(255, 255, 255));
 
                        //終了処理
 
                        //system.isClose = true;//上位のsysytemにアクセス
 
                    }
 
 
                }
 
            }
        }
    }
}
 

タグ:

+ タグ編集
  • タグ:
最終更新:2011年01月17日 22:40
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。