Example #1
0
    //SCかCCを使用する
    //引数1 SC_or_CC          :true = SCを使う   false = CCを使う
    //引数2 click_obj         :クリック(選択)したオブジェクト情報
    //引数3 attack_player_obj :現在攻撃中のプレイヤーオブジェクト情報(クリックしたプレイヤー)
    //引数4 partner_player_obj:相手のプレイヤーオブジェクト情報(現在攻撃中でないプレイヤー)
    //引数5 SC_CC_gauge_script:現在攻撃中のプレイヤーのSC_CCゲージスクリプト情報
    public void TheyUseSC_or_CC(bool SC_or_CC, GameObject click_obj, GameObject attack_player_obj, GameObject partner_player_obj)
    {
        //ピースを置き換えるときの名前(プレイヤー名)
        string piece_player_name = click_obj.name;

        //ピースを置き換えるときの画像data(プレイヤーの画像data)
        Sprite player_sprite = click_obj.GetComponent <Image>().sprite;

        //クリックしたオブジェクトが全体マップ配列のどこにあるのかの位置情報(要素数)
        int pos_x = 0, pos_y = 0;

        //クリックしたオブジェクトが全体マップ配列のどこにあるのかの位置情報(要素数)
        PieceMapPosition(click_obj, ref pos_x, ref pos_y);

        //SCが選択されていたらSCを使用する
        //技:クリックした周囲のピースに色を移す(十字方向に1マスずつ)
        if (SC_or_CC == true)
        {
            //pos_x,pos_yを中心に4方向を調べて、マップ内であれば色を移す
            //方角(上下左右)
            int[,] direction = new int[4, 2] {
                { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 }
            };
            //移すピースの位置
            int direction_x = 0;
            int direction_y = 0;
            for (int i = 0; i < 4; i++)
            {
                direction_x = pos_x + direction[i, 0];
                direction_y = pos_y + direction[i, 1];
                //マップ内かどうかを調べる
                if (direction_x >= 0 &&
                    direction_x < map_size)
                {
                    if (direction_y >= 0 &&
                        direction_y < map_size)
                    {
                        //マップ内なら周囲の1ピースに色を移す
                        //名前と画像を差し替える
                        map[direction_x, direction_y].name = piece_player_name;
                        map[direction_x, direction_y].GetComponent <Image>().sprite = player_sprite;
                    }
                }
            }

            //現在攻撃中のプレイヤーのSC_CCゲージスクリプト情報を取得する
            SC_CC_GaugeScript SC_CC_gauge_script = attack_player_obj.GetComponent <PlayerScript>().SC_CC_Gauge.GetComponent <SC_CC_GaugeScript>();
            //SCを使用したのでゲージの状態を更新する
            SC_CC_gauge_script.UsedSC();
        }
        //CCが選択されていたらCCを使用する
        else
        {
            //ピースを置いたプレイヤーの名前
            string player_name;
            //ピースを置いたプレイヤーの名前を取得
            if (piece_player_name == "Player1")
            {
                player_name = PlayerManagemaentScript.player1_name;
            }
            else
            {
                player_name = PlayerManagemaentScript.player2_name;
            }

            //固有のスキル発動のための構造体
            UniqueSkill unique_skill = new UniqueSkill();
            //固有のスキル構造体の初期化
            unique_skill.Initialization(player_name, piece_player_name, pos_x, pos_y, player_sprite, map, map_size);
            //固有のスキルを発動する
            unique_skill.SkillInvocation(null, attack_player_obj, partner_player_obj);
        }
    }