/// <summary>
    /// 戦闘準備
    /// お互いの与ダメージと
    /// オブジェクト、Characterスクリプト、命中率のセット
    /// </summary>
    /// <param name="_attack">攻撃側のオブジェクト</param>
    /// <param name="_interceptor">迎撃側のオブジェクト</param>
    public void BattleSetup(GameObject _attack, GameObject _interceptor)
    {
        Attack_manager _attacker = new Attack_manager();
        Attack_manager _def      = new Attack_manager();

        _battleend = false;

        //初期化
        _attacker.Initialize();
        _def.Initialize();

        //クラスセット
        _attacker.set_chara(_attack);
        _def.set_chara(_interceptor);

        //与ダメセット
        _attacker.set_atk(_def._chara._totaldef, 1);
        _def.set_atk(_attacker._chara._totaldef, 1);

        //命中率セット
        _attacker.set_hit(_def._chara._avoidance);
        _def.set_hit(_attacker._chara._avoidance);

        //必殺率セット
        _attacker.set_critical(_def._chara._totalluk);
        _def.set_critical(_attacker._chara._totalluk);

        //スキルチェック
        //_attacker.Skill_Check();
        //_def.Skill_Check();

        //戦闘処理開始
        Battle(_attacker, _def);
    }
    /// <summary>
    /// 与ダメージ
    /// </summary>
    /// <param name="_attack">攻撃側のオブジェクト</param>
    /// <param name="_interceptor">攻撃される側のオブジェクト</param>
    public int GetDamage(GameObject _attack, GameObject _interceptor)
    {
        Attack_manager _attacker = new Attack_manager();
        Attack_manager _def      = new Attack_manager();

        //与ダメセット
        _attacker.set_atk(_def._chara._totaldef, 1);
        return(_attacker._atk);
    }
    /// <summary>
    /// 戦闘詳細表示用
    /// 戻り値[A:HP,A:威力,A:命中,A:必殺率,D:HP,D:威力,D:命中,D:必殺率]
    /// </summary>
    /// <param name="_attack">攻撃側のオブジェクト</param>
    /// <param name="_interceptor">迎撃側のオブジェクト</param>
    /// <returns>表示用配列</returns>
    public int[] GetBattleState(GameObject _attack, GameObject _interceptor)
    {
        int[]          i         = { 0, 0, 0, 0, 0, 0, 0, 0 };
        Attack_manager _attacker = new Attack_manager();
        Attack_manager _def      = new Attack_manager();

        _battleend = false;

        //初期化
        _attacker.Initialize();
        _def.Initialize();

        //クラスセット
        _attacker.set_chara(_attack);
        _def.set_chara(_interceptor);

        //与ダメセット
        _attacker.set_atk(_def._chara._totaldef, 1);
        _def.set_atk(_attacker._chara._totaldef, 1);

        //命中率セット
        _attacker.set_hit(_def._chara._avoidance);
        _def.set_hit(_attacker._chara._avoidance);

        //必殺率セット
        _attacker.set_critical(_def._chara._totalluk);
        _def.set_critical(_attacker._chara._totalluk);

        i[0] = _attacker._chara._totalhp;
        i[1] = _attacker._atk;
        i[2] = (int)_attacker._Totalhit;
        i[3] = (int)_attacker._critical;

        i[4] = _def._chara._totalhp;
        i[5] = _def._atk;
        i[6] = (int)_def._Totalhit;
        i[7] = (int)_def._critical;

        return(i);
    }
    /// <summary>
    /// 戦闘処理
    /// </summary>
    /// <param name="_atkside">攻撃側</param>
    /// <param name="_defside">迎撃側</param>
    /// <param name="_addcri">必殺補正</param>
    /// <param name="weapon_stock">今の戦闘での武器の消耗</param>
    /// <returns>経験値</returns>
    int BattleSystem(Attack_manager _atkside, Attack_manager _defside, int _addcri, int weapon_stock)
    {
        if (!_battleend && _atkside._stock - weapon_stock >= 1)
        {
            //攻撃側の攻撃
            //命中判定
            if (Random.Range(0, 100) <= _atkside._Totalhit)
            {
                //命中
                //無敵判定
                if (_defside._fortress == true && Random.Range(0, 101) < _defside._chara._level)
                {
                    Debug.Log(_defside._chara._name + ":無敵!");
                }
                else
                {
                    //必殺判定
                    if (Random.Range(0, 100) <= _atkside._critical + _addcri)
                    {
                        //必殺発動
                        //力を2倍にして攻撃力を再計算
                        _defside.set_atk(_atkside._chara._totaldef, 2);
                        _defside._chara._totalhp -= _atkside._atk;
                        Debug.Log(_atkside._chara._name + ":必殺!" + _atkside._atk);
                        //吸収判定
                        if (_atkside._drain && Random.Range(0, 101) < _atkside._chara._totalskl)
                        {
                            _atkside._chara._totalhp += (_atkside._atk) / 2;
                        }
                        _defside.set_atk(_atkside._chara._totaldef, 1);
                    }
                    else
                    {
                        //通常
                        _defside._chara._totalhp -= _atkside._atk;
                        Debug.Log(_atkside._chara._name + ":命中!" + _atkside._atk);
                        //吸収判定
                        if (_atkside._drain && Random.Range(0, 101) < _atkside._chara._totalskl)
                        {
                            _atkside._chara._totalhp += _atkside._atk / 2;
                        }
                    }

                    if (_defside._chara._totalhp <= 0)
                    {
                        //根性判定
                        if (_defside._fightingspirit && Random.Range(0, 101) < _defside._chara._totalluk)
                        {
                            _defside._chara._totalhp = 1;
                        }
                        else
                        {
                            _battleend = true;
                            //戦闘終了処理
                            return(_atkside.addexpwin(_defside._chara._totalLevel));
                        }
                    }
                    else
                    {
                        return(_atkside.addexpdraw(_defside._chara._totalLevel, _atkside._atk));
                    }
                }
            }
            else
            {
                //外れ
                Debug.Log(_atkside._chara._name + ":ミス");
                return(0);
            }
        }
        return(0);
    }