Example #1
0
    public int SelectBattleCard_FromHand(MasterCardParam master_enemy_card, List <MasterCardParam> _master_card_list, List <MasterCardSymbolParam> _master_symbol_list)
    {
        int iRetSerial           = 0;
        int enemy_main_symbol_id = master_enemy_card.GetMainSymbolId();

        List <DataCardParam> search_card_list = list.FindAll(p => p.status == (int)DataCard.STATUS.HAND);

        switch (enemy_main_symbol_id)
        {
        case 1001:                //物理攻撃
            iRetSerial = GetSerialContainSymbol(2001, search_card_list, _master_card_list);
            break;

        case 3001:                //魔法攻撃
            iRetSerial = GetSerialContainSymbol(4001, search_card_list, _master_card_list);
            break;

        case 2001:                //物理防御
            iRetSerial = GetSerialContainSymbol(3001, search_card_list, _master_card_list);
            break;

        case 4001:                //魔法防御
            iRetSerial = GetSerialContainSymbol(1001, search_card_list, _master_card_list);
            break;

        default:
            break;
        }
        return(iRetSerial);
    }
Example #2
0
    public void Initialize(int _iStageId, int _iWave, int[] _iCharaIdArr)
    {
        //Debug.Log(_iStageId);
        foreach (Card c in card_list)
        {
            Destroy(c.gameObject);
        }
        card_list.Clear();

        for (int i = 0; i < _iCharaIdArr.Length; i++)
        {
            Card c = PrefabManager.Instance.MakeScript <Card>(m_prefCard, m_goCardRoot);
            card_list.Add(c);
        }

        List <MasterStageCardParam> appear_card = DataManagerGame.Instance.masterStageCard.list.FindAll(p => p.stage_id == _iStageId && p.wave == _iWave);

        if (appear_card.Count == 0)
        {
            appear_card = DataManagerGame.Instance.masterStageCard.list.FindAll(p => p.stage_id == _iStageId && p.wave == 0);
        }

        int[] item_prob = new int[appear_card.Count];
        //Debug.Log(appear_card.Count);
        for (int i = 0; i < appear_card.Count; i++)
        {
            item_prob[i] = appear_card[i].prob;
        }

        for (int i = 0; i < _iCharaIdArr.Length; i++)
        {
            int index = UtilRand.GetIndex(item_prob);

            DataCardParam add_card = new DataCardParam();
            // tempシリアルを配布

            MasterCardParam master = DataManagerGame.Instance.masterCard.list.Find(p => p.card_id == appear_card[index].card_id);

            add_card.Copy(master, _iCharaIdArr[i], i);

            /*
             * add_card.card_id = appear_card[index].card_id;
             * add_card.chara_id = _iCharaIdArr[i];
             * //Debug.Log(add_card.chara_id);
             *
             * add_card.card_serial = i;
             */


            //add_card.card_type = appear_card[index].card_type;
            //add_card.power = appear_card[index].power;

            card_list[i].Initialize(add_card, DataManagerGame.Instance.masterCardSymbol.list);
        }
    }
Example #3
0
    public int GetSerialContainSymbol(int _iContainSymbolId, List <DataCardParam> _data_list, List <MasterCardParam> _master_list)
    {
        foreach (DataCardParam data in _data_list)
        {
            MasterCardParam master = _master_list.Find(p => p.card_id == data.card_id);

            if (master.ContainSymbolId(_iContainSymbolId))
            {
                return(data.card_serial);
            }
        }
        return(0);
    }
Example #4
0
    /*
     * // masterのデータと同じ(ただし拡張の可能性あり)
     * public string label { get; set; }
     * public int symbol_1 { get; set; }
     * public int symbol_2 { get; set; }
     * public int symbol_3 { get; set; }
     * public int symbol_4 { get; set; }
     * public int symbol_5 { get; set; }
     * public int symbol_6 { get; set; }
     * public int power { get; set; }
     */

    /*
     * public MasterCardParam master {
     *      get
     *      {
     *              if(master_card_param == null)
     *              {
     *                      master_card_param = DataManagerGame.Instance.masterCard.list.Find(p => p.card_id == card_id);
     *              }
     *              return master_card_param;
     *      }
     *      set
     *      {
     *              master_card_param = value;
     *      }
     * }
     * private MasterCardParam master_card_param;
     */

    public void Copy(MasterCardParam c, int _iCharaId, int _card_serial)
    {
        card_id     = c.card_id;
        card_serial = _card_serial;
        status      = (int)DataCard.STATUS.DECK;
        chara_id    = _iCharaId;

        label    = c.label;
        symbol_1 = c.symbol_1;
        symbol_2 = c.symbol_2;
        symbol_3 = c.symbol_3;
        symbol_4 = c.symbol_4;
        symbol_5 = c.symbol_5;
        symbol_6 = c.symbol_6;
        power    = c.power;
    }
Example #5
0
        public override void OnEnter()
        {
            base.OnEnter();

            List <MasterStageCardParam> appear_card = simulator.masterStageCard.list.FindAll(p => p.stage_id == stage_id.Value && p.wave == wave.Value);

            if (appear_card.Count == 0)
            {
                appear_card = simulator.masterStageCard.list.FindAll(p => p.stage_id == stage_id.Value && p.wave == 0);
            }

            int[] item_prob = new int[appear_card.Count];
            //Debug.Log(appear_card.Count);
            for (int i = 0; i < appear_card.Count; i++)
            {
                item_prob[i] = appear_card[i].prob;
            }

            int index = UtilRand.GetIndex(item_prob);

            DataUnitParam left_chara = simulator.dataUnit.list.Find(p => p.unit == "chara" && p.position == "left");

            DataCardParam add_card = new DataCardParam();
            // tempシリアルを配布
            //add_card.card_id = appear_card[index].card_id;
            //add_card.chara_id = left_chara.chara_id;
            //Debug.Log(add_card.chara_id);


            MasterCardParam master = simulator.masterCard.list.Find(p => p.card_id == appear_card[index].card_id);

            if (master == null)
            {
            }


            // シリアルはAddNewCardで設定し直し
            add_card.Copy(master, left_chara.chara_id, 0);

            simulator.dataCard.AddNewCard(add_card, DataCard.STATUS.DECK);
            Finish();
        }
Example #6
0
        public override void OnEnter()
        {
            base.OnEnter();

            DataCardParam   data_enemy_card   = simulator.dataCardEnemy.list.Find(p => p.card_serial == enemy_card_serial.Value);
            MasterCardParam master_enemy_card = simulator.masterCard.list.Find(p => p.card_id == enemy_card_id.Value);

            int iSerialPlayerCard = simulator.dataCard.SelectBattleCard_FromHand(
                master_enemy_card,
                simulator.masterCard.list,
                simulator.masterCardSymbol.list);

            if (iSerialPlayerCard == 0)
            {
                iSerialPlayerCard = simulator.dataCard.RandomSelectFromHand().card_serial;
            }

            player_card_serial.Value = iSerialPlayerCard;

            Finish();
        }
Example #7
0
        public override void OnUpdate()
        {
            base.OnUpdate();

            #region Aging
            if (DataManagerGame.Instance.IsAging)
            {
                aging_timer += Time.deltaTime;
                if (3.0f < aging_timer)
                {
                    if (0 == select_card_serial.Value)
                    {
                        //int index = UtilRand.GetRand(battleMain.gameMain.card_list_hand.Count);

                        // シミュレーターから持ってきた
                        DataCardParam   data_enemy_card   = battleMain.dataCardEnemy.list.Find(p => p.card_serial == enemy_card_serial.Value);
                        MasterCardParam master_enemy_card = DataManagerGame.Instance.masterCard.list.Find(p => p.card_id == enemy_card_id.Value);


                        int iSerialPlayerCard = DataManagerGame.Instance.dataCard.SelectBattleCard_FromHand(
                            master_enemy_card,
                            DataManagerGame.Instance.masterCard.list,
                            DataManagerGame.Instance.masterCardSymbol.list);

                        if (iSerialPlayerCard == 0)
                        {
                            iSerialPlayerCard = DataManagerGame.Instance.dataCard.RandomSelectFromHand().card_serial;
                        }

                        OnClickCard(iSerialPlayerCard);
                    }
                    else
                    {
                        OnClickCard(select_card_serial.Value);
                    }
                }
            }
            #endregion
        }
Example #8
0
        private void create_enemy(int _enemy_chara_id)
        {
            simulator.dataUnit.list.RemoveAll(p => p.unit == "enemy");
            MasterCharaParam master_enemy = simulator.masterChara.list.Find(p => p.chara_id == _enemy_chara_id);
            DataUnitParam    enemy        = DataUnit.MakeUnit(master_enemy, 1, "enemy", 60);

            simulator.dataUnit.list.Add(enemy);

            //Debug.LogError(_enemy_chara_id);

            simulator.dataCardEnemy.list.Clear();
            int iSerial = 1;

            foreach (MasterCharaCardParam cc in simulator.masterCharaCard.list.FindAll(p => p.chara_id == _enemy_chara_id))
            {
                DataCardParam   add         = new DataCardParam();
                MasterCardParam master_card = simulator.masterCard.list.Find(p => p.card_id == cc.card_id);
                add.Copy(master_card, _enemy_chara_id, iSerial);
                simulator.dataCardEnemy.list.Add(add);
                iSerial += 1;
            }
        }
Example #9
0
        public override void OnEnter()
        {
            base.OnEnter();

            battleMain.Opening();

            battleMain.m_animChara.Play("idle");
            battleMain.m_animEnemy.Play("idle");


            if (battleMain.player_card != null)
            {
                GameObject.Destroy(battleMain.player_card.gameObject);
                battleMain.player_card = null;
            }
            if (battleMain.enemy_card != null)
            {
                GameObject.Destroy(battleMain.enemy_card.gameObject);
                battleMain.enemy_card = null;
            }
            battleMain.dataCardEnemy.list.Clear();

            BattleIcon[] arr = battleMain.m_goBattleChara.GetComponentsInChildren <BattleIcon>();
            foreach (BattleIcon c in arr)
            {
                GameObject.Destroy(c.gameObject);
            }
            arr = battleMain.m_goBattleEnemy.GetComponentsInChildren <BattleIcon>();
            foreach (BattleIcon c in arr)
            {
                GameObject.Destroy(c.gameObject);
            }

            // 敵のデッキデータ
            //Debug.LogWarning(DataManagerGame.Instance.masterCharaCard.list.FindAll(p => p.chara_id == enemy_chara_id.Value).Count);


            MasterCharaParam master_enemy = DataManagerGame.Instance.masterChara.list.Find(p => p.chara_id == enemy_chara_id.Value);

            battleMain.dataCardEnemy.SetSaveFilename(Defines.FILENAME_CARD_ENEMY);


            if (0 == DataManagerGame.Instance.gameData.ReadInt(Defines.KEY_GAME_BATTLE_ENEMY_ID))
            {
                // 敵は1体消して新規に追加
                DataManagerGame.Instance.dataUnit.list.RemoveAll(p => p.unit == "enemy");

                // 敵にこっそりテンションを入れるならここ
                DataUnitParam enemy = DataUnit.MakeUnit(master_enemy, 1, "enemy", 60);
                DataManagerGame.Instance.dataUnit.list.Add(enemy);

                DataManagerGame.Instance.gameData.WriteInt(Defines.KEY_GAME_BATTLE_ENEMY_ID, enemy_chara_id.Value);

                int iSerial = 1;
                foreach (MasterCharaCardParam cc in DataManagerGame.Instance.masterCharaCard.list.FindAll(p => p.chara_id == enemy_chara_id.Value))
                {
                    DataCardParam   add         = new DataCardParam();
                    MasterCardParam master_card = DataManagerGame.Instance.masterCard.list.Find(p => p.card_id == cc.card_id);
                    add.Copy(master_card, enemy_chara_id.Value, iSerial);
                    battleMain.dataCardEnemy.list.Add(add);
                    iSerial += 1;
                }
            }
            else
            {
                Debug.Log("battle resume");
                enemy_chara_id.Value = DataManagerGame.Instance.gameData.ReadInt(Defines.KEY_GAME_BATTLE_ENEMY_ID);
                master_enemy         = DataManagerGame.Instance.masterChara.list.Find(p => p.chara_id == enemy_chara_id.Value);

                battleMain.dataCardEnemy.LoadMulti();
            }


            battleMain.m_sprEnemy.sprite = SpriteManager.Instance.Get(master_enemy.sprite_name);
            battleMain.HpRefresh();


            battleMain.OnOpeningEnd.AddListener(() =>
            {
                battleMain.OnOpeningEnd.RemoveAllListeners();
                if (is_boss.Value)
                {
                    BGMControl.Instance.Play(Defines.BGM_NAME_BOSS);
                }
                else
                {
                    BGMControl.Instance.Play(Defines.BGM_NAME_BATTLE);
                }
                Finish();
            });
        }
Example #10
0
 public void Initialize(MasterCardParam _master_card, List <MasterCardSymbolParam> _master_card_symbol_list)
 {
     data_card = new DataCardParam();
     data_card.Copy(_master_card, 0, 0);
     _initialize(_master_card_symbol_list);
 }