示例#1
0
    Enemy EnemyScript;       //enemy script

    // Use this for initialization
    void Start()
    {
        Debug.Log("バトル発生");
        player      = GameObject.Find("Chara1");
        CharaScript = player.GetComponent <CharaStatus>(); //味方ステータス読み込み
        enemy       = GameObject.Find("enemy");
        EnemyScript = enemy.GetComponent <Enemy>();        //敵ステータス読み込み

        Debug.Log("CharaScript.HP" + CharaScript.HP);
        Debug.Log("EnemyScript.HP" + EnemyScript.HP);
        //ステータス表示パネル表示
        int turn;

        turn = 1;
        while (turn <= 4)
        {
            //speed define i++
            for (int i = 0; i < ActionCharas().Length; i++)
            {
                Debug.Log(ActionCharas()[i]);
            }
            //while array speed >= 100
            //action 敵味方のスクリプトに作った行動を読み取る private functionとか
            //statusdefine
            //    //    break  敵味方どちらかが全滅するまで
            //    chara.speed = 0
            Debug.Log("turn" + turn);

            turn++;
        }
        //speed array = 0
    }
    //// Update is called once per frame
    //void Update()
    //{

    //}

    public void Attack(GameObject enemyChara)// 攻撃関数,攻撃する相手を引数として渡す
    {
        CharaStatus enemyStatus  = enemyChara.GetComponent <CharaStatus>();
        int         enemyHP      = enemyStatus.hp;
        int         enemyDefense = enemyStatus.defense;

        if (actionFlag == true)
        {
            if (farAttacker == false && magicAttacker == false)
            {
                if (attack > enemyDefense)
                {
                    enemyHP -= (attack - enemyDefense);//現在hpから(攻撃から防御だけ)引いた値。例 100-(20-10)=90
                }
            }

            if (farAttacker == true && magicAttacker == false)
            {
                if (attack > enemyDefense)
                {
                    enemyHP -= (attack - enemyDefense);//現在hpから(攻撃から防御だけ)引いた値。例 100-(20-10)=90
                }
            }

            if (farAttacker == true && magicAttacker == true)
            {
                enemyHP -= attack;//魔法攻撃は防御力関係なくダメージを与えられる。例 90 - 15 + 0 = 75
            }
            enemyStatus.hp = enemyHP;
        }
        AfterMoving(false);
    }
        static void Main(string[] args)
        {
            Console.WriteLine("攻撃側 : [リザードン][レベル50][いじっぱり][6V][AS252振り][もうか][もくたん][フレアドライブ][攻撃ランク+2][晴れ]");
            Console.WriteLine("防御側 : [ゴンベ][レベル50][わんぱく][6V][HB252振り][あついしぼう][しんかのきせき][リフレクター][防御ランク-1]");

            CharaStatus attacker = GetAttackerStatus();
            CharaStatus defender = GetDefenderStatus();

            int   techniquePower         = 120;     // 攻撃側技 フレアドライブ 威力120
            float attackerItem           = 1.2f;    // 攻撃側持ち物 もくたん 威力*1.2倍
            float attackerCharacteristic = 1.5f;    // 攻撃側特性 もうか こうげき*1.5倍
            int   attackerRank           = 2;       // 攻撃側ランク補正 +2
            float defenderItem           = 1.5f;    // 攻撃側持ち物 しんかのきせき ぼうぎょ*1.5倍
            float defenderCharacteristic = 0.5f;    // 防御側特性 あついしぼう 攻撃側のこうげき*0.5倍
            int   defenderRank           = -1;      // 防御側ランク補正 -1
            float defenderReflector      = 0.5f;    // 防御側リフレクター 0.5倍

            int             finalPower        = DamageCalculatier.GetFinalPower(techniquePower, new float[] { attackerItem });
            int             finalAttackPower  = DamageCalculatier.GetFinalAttackPower(attacker.Values[(int)CharaStatusType.PhysicsAttack], attackerRank, false, false, new float[] { attackerCharacteristic, defenderCharacteristic });
            int             finalDefensePower = DamageCalculatier.GetFinalDefensePower(defender.Values[(int)CharaStatusType.PhysicsDamage], defenderRank, false, true, new float[] { defenderItem });
            FinalCorrection finalCorrection   = new FinalCorrection();

            finalCorrection.IsTypeMatch          = true;                              // タイプ一致 1.5倍
            finalCorrection.RandomNumber         = 1.0f;                              // 乱数 1.0倍(最高乱数)
            finalCorrection.IsWeatherEnhancement = true;                              // 天候晴れ補正 1.5倍
            finalCorrection.DamageCorrections    = new float[] { defenderReflector }; // リフレクター 0.5倍 (急所の場合は設定しない)
            int maxDamage = DamageCalculatier.GetFinalDamage(50, finalPower, finalAttackPower, finalDefensePower, finalCorrection);

            finalCorrection.RandomNumber = 0.85f;    // 乱数 1.0倍(最高乱数)
            int minDamage = DamageCalculatier.GetFinalDamage(50, finalPower, finalAttackPower, finalDefensePower, finalCorrection);

            Console.WriteLine("ダメージ : " + minDamage + " ~ " + maxDamage);
            Console.ReadLine();
        }
        /// <summary>
        /// [ゴンベ][レベル50][わんぱく][6V][HB252振り]のステータス実数値を取得する
        /// </summary>
        /// <returns></returns>
        private static CharaStatus GetDefenderStatus()
        {
            // レベルを設定する
            int level = 50;
            // 性格を設定する
            Personality personality = Personality.CreatePresonality(PersonalityType.Impish);
            // 種族値を設定する
            CharaStatus raceValue = new CharaStatus();

            raceValue.Values[(int)CharaStatusType.Hp]            = 135;
            raceValue.Values[(int)CharaStatusType.PhysicsAttack] = 85;
            raceValue.Values[(int)CharaStatusType.PhysicsDamage] = 40;
            raceValue.Values[(int)CharaStatusType.SpecialAttack] = 40;
            raceValue.Values[(int)CharaStatusType.SpecialDamage] = 85;
            raceValue.Values[(int)CharaStatusType.Speed]         = 5;
            // 努力値を設定する
            CharaStatus effortValue = new CharaStatus();

            for (int i = 0; i < System.Enum.GetValues(typeof(CharaStatusType)).Length; i++)
            {
                effortValue.Values[i] = 0;
            }
            effortValue.Values[(int)CharaStatusType.Hp]            = 252;
            effortValue.Values[(int)CharaStatusType.PhysicsDamage] = 252;
            effortValue.Values[(int)CharaStatusType.SpecialDamage] = 4;
            // 個体値を設定する
            CharaStatus individualValue = new CharaStatus();

            for (int i = 0; i < System.Enum.GetValues(typeof(CharaStatusType)).Length; i++)
            {
                individualValue.Values[i] = 31;
            }
            return(CharaStatus.GetRealStatus(level, personality, raceValue, effortValue, individualValue));
        }
示例#5
0
    public Chara SpawnChar(CharaData.CharClassType classType,int charModelType,int camp,int level,Vector3 pos,Vector3 dir,CharaStatus.Pose pose)
    {
        this.START_METHOD("SpawnChar");
        Chara tempChar = null;
        if(classType==CharaData.CharClassType.CHARACTER)
        {

        }
        else if(classType==CharaData.CharClassType.BUILDING)
        {
            if((CharaData.buildingModel)charModelType==CharaData.buildingModel.BARRACK)
            {
                Barrack chara = new Barrack();//TODO: need change class to resource pool
                chara.SetPos(pos);
                chara.SetDir(dir);
                chara.SetCamp(camp);
                tempChar = chara;
            }
            if (tempChar != null)
                building.Add(tempChar);
            else
                throw new UnityException("no current building type to spawn!!");
        }

        allChara.Add(tempChar);
        this.END_METHOD("SpawnChar");
        return tempChar;
    }
示例#6
0
        public void Setup(CharaStatus status)
        {
            _status = status;

            _status.EquipAttack.SetMax(999);
            _status.EquipDefence.SetMax(999);
        }
 void Start()
 {
     status = Player.GetComponent<CharaStatus>();
     this.UpdateAsObservable()
         .Subscribe(_ => PlayerHPMaxText.text = "PlayerHPMax:" + status.Max_HP);
     PlayerHPMax.SubscribeToText(PlayerHPMaxText);
 }
示例#8
0
    //public IEnumerable<IEnumerable<T>> Do<T>(IEnumerable<IEnumerable<T>> values)
    //{
    //    return IEnumerable.Range(0, values.Max(c => c.Count())).Select(i => values.Max(c => i < c.Count() ? c.ElementAt(i) : default));
    //}


    public void ObjectInformation(ref int[,] obstacleMap, ref GameObject[,] charaMap)//キャラのいる所を通行不可にするメソッド
    {
        GameObject[] ally  = GameObject.FindGameObjectsWithTag("ally");
        GameObject[] enemy = GameObject.FindGameObjectsWithTag("enemy");
        GameObject[] bomb  = GameObject.FindGameObjectsWithTag("bomb");
        GameObject[] chara = new GameObject[ally.Length + enemy.Length + bomb.Length];
        int          i2    = 0;

        for (int i = 0; i < ally.Length; i++)
        {
            chara[i2] = ally[i];
            i2++;
        }
        for (int i = 0; i < enemy.Length; i++)
        {
            chara[i2] = enemy[i];
            i2++;
        }
        for (int i = 0; i < bomb.Length; i++)
        {
            chara[i2] = bomb[i];
            i2++;
        }
        CharaStatus[] charaStatuses = new CharaStatus[chara.Length];
        for (int xcount = 0; xcount < mapRangeX; xcount++)
        {
            for (int ycount = 0; ycount < mapRangeY; ycount++)
            {
                obstacleMap[xcount, ycount] = obstaclemap[xcount, ycount];
            }
        }

        charaMap = new GameObject[mapRangeX, mapRangeY];
        for (int i = 0; i < chara.Length; i++)
        {
            //Debug.Log(chara[i]);
            charaStatuses[i] = chara[i].GetComponent <CharaStatus>();
            int x = charaStatuses[i].posX;
            int y = charaStatuses[i].posY;
            charaMap[x, y]    = chara[i];
            obstacleMap[x, y] = 1;
        }

        //for (int y = 0; y < 10; y++)
        //{
        //    for (int x = 0; x < 20; x++)
        //    {
        //        if (charamap[y, x] != null)
        //        {
        //            obstaclemap[y, x] = 1;
        //        }
        //        else
        //        {
        //            obstaclemap[y, x] = 0;
        //        }
        //    }
        //}
    }
示例#9
0
    ///<summery>
    ///エネミー情報入力
    //別途クラス用意検討
    ///</summery>
    public void SetEnemyStatus(GameObject e)
    {
        //ランダムなエネミー情報を取得・生成
        int         rnd         = Random.Range(0, enemyManager.enemyStatusList.Count);
        CharaStatus status      = enemyManager.enemyStatusList[rnd];
        EnemyStatus enemyStatus = e.GetComponent <EnemyStatus>();

        enemyStatus.SetStatus(status, enemyObjList.Count - 1);
    }
    }//演出の挿入以外完成

    //enemyTurnCount(何番目の敵のターンか)から、次の敵をactiveCharaに代入
    private void ActivateEnemy(int enemyNum)//アクティブ状態の敵キャラ
    {
        Debug.Log("ActivateEnemy");
        //obstaclemap = mapPosition.obstaclemap;
        mapPosition.ObjectInformation(ref obstaclemap, ref charamap);
        activeChara       = enemyArray[enemyNum];
        activeCharaStatus = activeChara.GetComponent <CharaStatus>();
        activeCharaPos[0] = activeCharaStatus.posX;
        activeCharaPos[1] = activeCharaStatus.posY;
        StartCoroutine("EnemyCommandCall");//敵AIの呼び出し
    }//一応完成
示例#11
0
    public void OnHited()
    {
        CharaStatus status = curTarget.GetComponent <CharaStatus> ();

        SkillManager.Instance.CalcSkillDamage(parent, status.Parent);
        if (status.Parent.Life <= 0)
        {
            Cannon cannon = parent as Cannon;
            cannon.curEnemy = null;
        }

        GameObject.Destroy(gameObject);
    }
示例#12
0
    ///<summary>
    ///UIオブジェクトの取得・値の受け渡し
    ///</summary>
    public IEnumerator SetElements(CharaStatus status)
    {
        elements[0].GetComponent <StatusBarManager>().SetValue(status.hp, status.maxHp);
        elements[1].GetComponent <StatusBarManager>().SetValue(status.exp, status.maxExp);
        elements[2].GetComponent <StatusTextManager>().SetText(status.name.ToString());
        elements[3].GetComponent <StatusTextManager>().SetLevel(status.level.ToString());
        elements[4].GetComponent <StatusTextManager>().SetPower(status.power.ToString());
        elements[5].GetComponent <StatusTextManager>().SetMoney(status.money.ToString());

        //UI表示位置へ移動
        rect.DOLocalMoveY(yPos * (-1), 1f).SetRelative();
        yield return(null);
    }
示例#13
0
    int[] attackpos   = new int[2];                                  //攻撃先座標
    #endregion

    //######################################################################################################
    //#             変数、配列の初期化
    //######################################################################################################


    //ゲームオブジェクトの格納、インスタンスの作成など
    // Use this for initialization
    void Start()
    {
        mapPosition      = GameObject.Find("ObjectManager").GetComponent <MapPosition>();
        battleMapManager = GameObject.Find("BattleMapManager").GetComponent <BattleMapManager>();//オブジェクト名入力
        encampmentnum    = GameObject.FindGameObjectsWithTag("flag").Length;
        gameManagement   = GameObject.Find("Main Camera").GetComponent <GameManagement>();
        enemyStatus      = this.GetComponent <CharaStatus>();
        playerStatus     = new CharaStatus[4];
        player           = GameObject.FindGameObjectsWithTag("ally");
        for (int i = 0; i < player.Length; i++)
        {
            playerStatus[i] = player[i].GetComponent <CharaStatus>();
        }
    }
示例#14
0
    ///<summery>
    ///プレイヤー情報入力
    //別途クラス用意検討
    ///</summery>
    public void SetPlayerStatus(GameObject p)
    {
        CharaStatus status = new CharaStatus(
            "fusa",
            image,
            1,
            1000,
            500,
            50,
            1500
            );
        PlayerStatus playerStatus = p.GetComponent <PlayerStatus>();

        playerStatus.SetStatus(status);
    }
示例#15
0
    ///<summary>
    ///エネミーターン
    ///</summary>
    public IEnumerator EnemyTurnCoroutine(GameObject enemy)
    {
        //カメラ移動メソッド呼び出し     
        cameraController.SetTarget(enemy);
        cameraController.ZoomInCamera();

        CharaStatus status = enemy.GetComponent<EnemyStatus>().GetStatus();
        //名前出力
        StartCoroutine(TextManager.textManager.TextCoroutine(status.name + "のターン"));

        // //player順にサイコロ・移動メソッド
        // PlayerMoveCounter.pmCounter.InstantiateDice();
        // yield return StartCoroutine(PlayerMoveCounter.pmCounter.MoveCountCoroutine(player));  
        // Debug.Log("ok");  

        cameraController.ZoomOutCamera();
        yield return new WaitForSeconds(turnInterval);
    }
示例#16
0
    /// <summary>
    /// 実数値を取得する
    /// </summary>
    /// <param name="level">レベル</param>
    /// <param name="raceValue">種族値</param>
    /// <param name="effortValue">努力値</param>
    /// <param name="individualValue">個体値</param>
    public static CharaStatus GetRealStatus(int level, Personality personality, CharaStatus raceValue, CharaStatus effortValue, CharaStatus individualValue)
    {
        CharaStatus realStatus = new CharaStatus();

        for (int i = 0; i < System.Enum.GetValues(typeof(CharaStatusType)).Length; i++)
        {
            CharaStatusType type = (CharaStatusType)i;
            if (type == CharaStatusType.Hp)
            {
                realStatus.Values[i] = GetRealHp(level, raceValue.Values[i], effortValue.Values[i], individualValue.Values[i]);
            }
            else
            {
                float personalityCorrection = personality.GetCorrection(type);
                realStatus.Values[i] = GetRealOtherThanHp(level, personalityCorrection, raceValue.Values[i], effortValue.Values[i], individualValue.Values[i]);
            }
        }

        return(realStatus);
    }
    }//一応完成

    //味方を
    private IEnumerator ActivateAlly()//アクティブ状態の味方キャラ
    {
        //obstaclemap = mapPosition.obstaclemap;
        mapPosition.ObjectInformation(ref obstaclemap, ref charamap);
        Debug.Log("ActivateAlly");
        yield return(null);

        bool charaChoice = false;

        while (charaChoice == false)
        {
            if (Input.GetMouseButtonDown(0))
            {
                mouseUpdate();
                //Debug.Log(onMouseObject);



                if (onMouseObject.tag == "ally")
                {
                    //Debug.Log("actionFlag = " + onMouseObject.GetComponent<CharaStatus>().actionFlag);
                    if (onMouseObject.GetComponent <CharaStatus>().actionFlag == true)
                    {
                        activeChara       = onMouseObject;
                        activeCharaStatus = activeChara.GetComponent <CharaStatus>();
                        charaChoice       = true;
                        activeCharaPos[0] = activeCharaStatus.posX;
                        activeCharaPos[1] = activeCharaStatus.posY;
                        activeCharaPrePos = activeChara.transform.position;
                    }
                }
                else
                {
                }
            }
            yield return(null);
        }
        StartCoroutine("MouseButtonCheck");
        yield break;
    }//一応完成
示例#18
0
    ///<summary>
    ///プレイヤーターン
    ///</summary>
    public IEnumerator PlayerTurnCoroutine(GameObject player)
    {
        //カメラ移動メソッド呼び出し     
        cameraController.SetTarget(player);
        cameraController.ZoomInCamera();

        CharaStatus status = player.GetComponent<PlayerStatus>().GetStatus();
        //名前出力
        StartCoroutine(TextManager.textManager.TextCoroutine(status.name + "のターン"));
        //statusUI出力
        yield return StartCoroutine(pUIMana.SetElements(status));

        //player順にサイコロ・移動メソッド
        PlayerMoveCounter.pmCounter.InstantiateDice();
        yield return StartCoroutine(PlayerMoveCounter.pmCounter.MoveCountCoroutine(player));  

        //tileごとのイベント

        cameraController.ZoomOutCamera();
        yield return StartCoroutine(pUIMana.RemoveUI());
        yield return new WaitForSeconds(turnInterval);
    }
    public void Heal(GameObject allyChara)//回復関数,回復させる相手を引数として渡す(自分の場合は自分が引数になる)
    {
        CharaStatus allyStatus = allyChara.GetComponent <CharaStatus>();
        int         charaHP    = allyStatus.hp;
        int         charaMaxHP = allyStatus.maxhp;

        if (actionFlag == true)
        {
            if (charaMaxHP < charaHP + heal)
            {
                charaHP = charaMaxHP;
            }

            else
            {
                charaHP = charaHP + heal;
            }
            Debug.Log(battleMapManager.turn);
            actionLevel[battleMapManager.turn] = 1;
        }
        allyStatus.hp = charaHP;
        AfterMoving(false);
    }
 void Start()
 {
     status = player.GetComponent<CharaStatus>();
     this.UpdateAsObservable()
         .Subscribe(_ => lineGauge.fillAmount = status.HP > 75 ? (status.HP - 75)/100.0f : 0.0f);
 }
 void Start()
 {
     status = player.GetComponent<CharaStatus>();
     this.UpdateAsObservable()
         .Subscribe(_ => baseCircleGauge.fillAmount = status.Max_HP > 75 ? 0.75f : status.Max_HP / 100.0f);
 }
    public IEnumerator PlayerBattleCommand()//コマンド表示→コマンド選択を待つ→それぞれの処理を呼び出す(攻撃,回復の場合はキャラを選ぶという処理もここに書いたうえで)
    {
        yield return(null);

        Debug.Log("PlayerBattleCommand");

        ////攻撃範囲内に敵味方がいるかの判定(途中でわけ分からんことになったからとりあえずコメントアウト)
        //int arrayX = activeChara.GetComponent<Charastatus>().posX;//味方キャラのx座標
        //int arrayY = activeChara.GetComponent<Charastatus>().posY;//味方キャラのy座標
        //int attackDistance = activeChara.GetComponent<Charastatus>().attackDistance;//味方キャラの攻撃範囲
        //GameObject[,] charamap = GameObject.Find("ObjectManager").GetComponent<MapPosition>().charamap;

        //bool attackFlag = false;

        //for (int i = 0; i < 20; i++)
        //{
        //    for (int j = 0; j < 10; j++)
        //    {
        //        if (Mathf.Abs(i - arrayX) + Mathf.Abs(j - arrayY) <= attackDistance)
        //        {
        //            if (charamap[i, j].tag == "enemy")
        //            {
        //                attackFlag = true;
        //            }
        //        }
        //    }
        //}

        //1.コマンド表示
        //コマンドとマウスの当たり判定については後々
        Canvas.SetActive(true);

        while (choosingchoice == 0)
        {
            yield return(null);
        }

        Canvas.SetActive(false);

        mapPosition.ObjectInformation(ref obstaclemap, ref charamap);
        int attackDistance = activeCharaStatus.attackDistance;//味方キャラの攻撃範囲

        //コマンドが選択された後の処理
        bool targetFlag = false; //クリックしたキャラが敵キャラであった場合true

        if (choosingchoice == 1) //攻撃を選択
        {
            //マスの色付け
            for (int countX = 0; countX < maprange[0]; countX++)
            {
                for (int countY = 0; countY < maprange[1]; countY++)
                {
                    if (Mathf.Abs(countX - activeCharaPos[0]) + Mathf.Abs(countY - activeCharaPos[1]) <= attackDistance)
                    {
                        maptips[countX, countY].GetComponent <SpriteRenderer>().color = attackColor;
                    }
                }
            }

            while (targetFlag == false)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    mapPosition.ObjectInformation(ref obstaclemap, ref charamap);
                    mouseUpdate();
                    if (Mathf.Abs(mousePos[0] - activeCharaPos[0]) + Mathf.Abs(mousePos[1] - activeCharaPos[1]) <= attackDistance)
                    {
                        if (onMouseObject != null)
                        {
                            if (onMouseObject.tag == "enemy")
                            {
                                attackedChara = onMouseObject;
                                targetFlag    = true;
                            }

                            if (onMouseObject.tag == "bomb")
                            {
                                attackedChara = onMouseObject;
                                targetFlag    = true;
                            }
                        }
                    }
                    if (targetFlag == false)//攻撃対象をクリックしなかった場合この関数をもう一度開始
                    {
                        yield return(null);

                        choosingchoice = 0;
                        MaptipsReset();
                        StartCoroutine("PlayerBattleCommand");
                        yield break;
                    }
                }
                yield return(null);
            }
            MaptipsReset();
        }

        if (choosingchoice == 2)                                  //回復を選択
        {
            bool magicAttacker = activeCharaStatus.magicAttacker; //兵種選別用の変数の呼び出し
            if (magicAttacker == false)                           //魔導士以外のキャラだったら
            {
                attackedChara = activeChara;
                //activeChara.GetComponent<CharaStatus>().Heal(attackedChara);//選択している味方キャラ(onMouseObject)の回復関数を呼び出し
            }

            if (magicAttacker == true)//魔導士だったら
            {
                for (int xcount = 0; xcount <= maprange[0] - 1; xcount++)
                {
                    for (int ycount = 0; ycount <= maprange[1] - 1; ycount++)
                    {
                        if (Mathf.Abs(xcount - activeCharaPos[0]) + Mathf.Abs(ycount - activeCharaPos[1]) <= 1)
                        {
                            maptips[xcount, ycount].GetComponent <SpriteRenderer>().color = healColor;
                        }
                    }
                }

                while (targetFlag == false)
                {
                    if (Input.GetMouseButtonDown(0))
                    {
                        mouseUpdate();
                        if (Mathf.Abs(mousePos[0] - activeCharaPos[0]) + Mathf.Abs(mousePos[1] - activeCharaPos[1]) <= 1)//選択したキャラが回復範囲内なら
                        {
                            if (onMouseObject.tag == "ally")
                            {
                                attackedChara = onMouseObject;
                                targetFlag    = true;
                            }
                        }
                        else
                        {
                            yield return(null);

                            choosingchoice = 0;
                            //マスの色消し
                            MaptipsReset();
                            StartCoroutine("PlayerBattleCommand");
                            yield break;
                        }
                    }
                    yield return(null);
                }
                //マスの色消し
                MaptipsReset();
            }
        }

        if (choosingchoice == 3)//待機を選択
        {
            attackedChara = activeChara;
            //Debug.Log("activeCharaPos[0](待機選択直後)" + activeCharaPos[0]+","+ "activeCharaPos[1]" + activeCharaPos[1]);
        }

        if (choosingchoice == 4)
        {
            choosingchoice    = 0;
            activeCharaPos[0] = activeCharaStatus.posX;
            activeCharaPos[1] = activeCharaStatus.posY;
            yield return(null);

            StartCoroutine("MouseButtonCheck");
            yield break;
        }

        attackedCharaStatus    = attackedChara.GetComponent <CharaStatus>();
        activeCharaStatus.posX = activeCharaPos[0];
        activeCharaStatus.posY = activeCharaPos[1];
        //Debug.Log( "移動後の座標(activecharaStatus,activeCharaPos)"+ activeCharaStatus.posX + "," + activeCharaStatus.posY + "," + activeCharaPos[0]+","+activeCharaPos[1]);
        yield return(null);

        IEnumerator coroutine = CharaActionWait(attackedChara, (Command)choosingchoice);

        StartCoroutine(coroutine);//ここで攻撃,回復,待機の実際の処理を行う関数をコルーチンで呼び出し,開始
        choosingchoice = 0;
        yield break;
    }//コマンド表示、
示例#23
0
    /*
     * public string name;
     * public Sprite image;
     * public int level;
     * public int maxHp;
     * public int hp;
     * public int maxExp;
     * public int exp;
     * public int power;
     * public int money;
     */

    ///<summary>
    ///オブジェクト生成時に外部からSET
    ///</summary>
    public void SetStatus(CharaStatus data)
    {
        status = data;
        SetSprite();
    }
示例#24
0
 // Use this for initialization
 void Start()
 {
     status = GetComponent<CharaStatus>();
 }
    void Update()
    {
        //if (isFadeIn)
        //{
        //    if (junban == (int)Turn.ALLY)
        //    {
        //        YourFadeIn();
        //    }
        //    if (junban == (int)Turn.ENEMY)
        //    {
        //        EnemyFadeIn();
        //    }
        //}
        //if (isFadeOut)
        //{
        //    if (junban == (int)Turn.ALLY)
        //    {
        //        YourFadeOut();
        //    }
        //    if (junban == (int)Turn.ENEMY)
        //    {
        //        EnemyFadeOut();
        //    }

        //}

        /*例キャストの処理をいったんコメントアウト
         *
         * Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         * // Rayの当たったオブジェクトの情報を格納する
         * RaycastHit hit = new RaycastHit();
         * // オブジェクトにrayが当たった時
         * if (Physics.Raycast(ray, out hit, distance))
         * {
         *  string objectName = hit.collider.gameObject.name;// rayが当たったオブジェクトの名前を取得
         *
         *  string objectTag = hit.collider.gameObject.tag;// rayが当たったオブジェクトのタグを取得
         *
         *
         *  if (One)
         *  {
         *      if (objectTag == "Ally")//味方
         *      {
         *          Charaste = GameObject.Find(objectName).GetComponent<CharaStatus>();
         *          CharaLEVEL = Charaste.Lv;
         *          CharaHP = Charaste.hp;
         *          CharaATTACK = Charaste.attack;  //          (/ω・\)
         *          CharaDEFENCE = Charaste.defense;
         *          CharaEXP = Charaste.Exp;
         *          Debug.Log("みかた");
         *          Panel.SetActive(true);
         *
         *          StatusText.text =
         *              objectName + "\n" +
         *              "Lv " + CharaLEVEL + "\n" +
         *              "経験値 " + CharaEXP + "\n" +
         *               "HP " + CharaHP + "\n" +
         *              "攻撃力 " + CharaATTACK + "\n" +
         *              "防御力 " + CharaDEFENCE;
         *
         *
         *
         *
         *          One = false;
         *
         *      }
         *
         *      else if (objectTag == "Enemy")//敵
         *      {
         *          Charaste = GameObject.Find(objectName).GetComponent<CharaStatus>();
         *          CharaHP = Charaste.hp;
         *          CharaATTACK = Charaste.attack;
         *          CharaDEFENCE = Charaste.defense;
         *          Debug.Log("てき");
         *          Panel.SetActive(true);
         *
         *          StatusText.text =
         *              objectName + "\n" +
         *               "HP " + CharaHP + "\n" +
         *              "攻撃力 " + CharaATTACK + "\n" +
         *              "防御力 " + CharaDEFENCE;
         *
         *          One = false;
         *      }
         *      else
         *      {
         *          Panel.SetActive(false);
         *      }
         *
         *  }
         *
         * }
         * else  //オブジェクトにRayが当たらないorRayが外れた時
         * {
         *  Panel.SetActive(false);
         *  One = true;
         * }
         *
         */


        battleMapManager.mouseUpdate();

        GameObject charactor = battleMapManager.onMouseObject;// rayが当たったオブジェクトの名前を取得

        waitFrame++;

        if (waitFrame > 50)
        {
            if (charactor.tag == "ally")//味方
            {
                Charaste     = charactor.GetComponent <CharaStatus>();
                CharaLEVEL   = Charaste.Lv;
                CharaHP      = Charaste.hp;
                CharaATTACK  = Charaste.attack; //          (/ω・\)
                CharaDEFENCE = Charaste.defense;
                CharaEXP     = Charaste.Exp;
                //Debug.Log("みかた");
                Panel.SetActive(true);

                StatusText.text =
                    Charaste.charaName + "\n" +
                    "Lv " + CharaLEVEL + "\n" +
                    "経験値 " + CharaEXP + "\n" +
                    "HP " + CharaHP + "\n" +
                    "攻撃力 " + CharaATTACK + "\n" +
                    "防御力 " + CharaDEFENCE;



                One = false;
            }

            else if (charactor.tag == "enemy")//敵
            {
                Charaste = charactor.GetComponent <CharaStatus>();
                Occupation charaOccupation = (Occupation)Charaste.occupation;
                CharaHP      = Charaste.hp;
                CharaATTACK  = Charaste.attack;
                CharaDEFENCE = Charaste.defense;
                //Debug.Log("てき");
                Panel.SetActive(true);

                StatusText.text =
                    charaOccupation + "\n" +
                    "HP " + CharaHP + "\n" +
                    "攻撃力 " + CharaATTACK + "\n" +
                    "防御力 " + CharaDEFENCE;

                One = false;
            }
            else
            {
                waitFrame = 0;
                Panel.SetActive(false);
            }
        }

        // マウス関係のイベントを関数にまとめる
        this.CameraPos();
        return;
    }
示例#26
0
 ///<summary>
 ///オブジェクト生成時に外部からSET
 ///</summary>
 public void SetStatus(CharaStatus data, int num)
 {
     status  = data;
     listNum = num;
     SetSprite();
 }