Example #1
0
    public int GetCoinNum()
    {
        int ret = stage_id * 3;

        ret += UtilRand.GetRand(3);
        return(ret);
    }
Example #2
0
    public string GetAssetName(int _iVliceType, bool _bAddPath = false)
    {
        List <CsvVoicesetData> sound_list = new List <CsvVoicesetData> ();

        foreach (CsvVoicesetData data in DataManagerAlarm.Instance.master_voiceset_list)
        {
            if (_iVliceType == data.id)
            {
                sound_list.Add(data);
            }
        }
        int iIndex = UtilRand.GetRand(sound_list.Count);

        CsvVoicesetData use_data = sound_list [iIndex];

        string strRet = "";

        if (_bAddPath == false)
        {
            strRet = use_data.name;
        }
        else
        {
            strRet = string.Format("{0}/{1}.{2}", use_data.path, use_data.name, use_data.kakucho);
        }
        return(strRet);
    }
Example #3
0
    private IEnumerator create_damage_num(int _iDamage, float _fDelay, Color _damage_color)
    {
        yield return(new WaitForSeconds(_fDelay));

        const float DAMAGE_VECTOR_BASE  = 0.2f;
        const float DAMAGE_VECTOR_SWING = 0.1f;

        Quaternion rot = new Quaternion(0.0f, 0.0f, 0.0f, 0.0f);
        GameObject obj = Instantiate(m_prefDamageText, Vector3.zero, rot, m_goRootDamageText.transform) as GameObject;

        obj.SetActive(true);
        obj.transform.localPosition = Vector3.zero;
        //obj.GetComponent<Animator>().SetInteger("damage_level", 1);

        //Debug.Log(iDamage);
        obj.GetComponent <TMPro.TextMeshPro>().text  = _iDamage.ToString();
        obj.GetComponent <TMPro.TextMeshPro>().color = _damage_color;

        Vector2 dir = new Vector2(
            DAMAGE_VECTOR_BASE + (UtilRand.GetRange(DAMAGE_VECTOR_SWING) - DAMAGE_VECTOR_SWING * 0.5f),
            1.0f + (UtilRand.GetRange(DAMAGE_VECTOR_SWING) + DAMAGE_VECTOR_SWING * 0.5f));

        obj.GetComponent <Rigidbody2D>().AddForce(200f * dir);

        Destroy(obj, 2);
    }
Example #4
0
    public void Initialize(int _iStageId, int _iWave)
    {
        int iItemCount = icon_list.Count;

        List <MasterStageShopItemParam> appear_item = DataManagerGame.Instance.masterStageShopItem.list.FindAll(p => p.stage_id == _iStageId && p.wave == _iWave);

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

        int[] item_prob = new int[appear_item.Count];
        for (int i = 0; i < appear_item.Count; i++)
        {
            item_prob[i] = appear_item[i].prob;
        }

        for (int i = 0; i < iItemCount; i++)
        {
            int index   = UtilRand.GetIndex(item_prob);
            int item_id = appear_item[index].item_id;

            MasterItemParam master = DataManagerGame.Instance.masterItem.list.Find(p => p.item_id == item_id);
            icon_list[i].Initialize(i, master);
            icon_list[i].OnClickIcon.RemoveAllListeners();
            icon_list[i].OnClickIcon.AddListener((IconStageShopItem _icon) =>
            {
                OnClickIcon.Invoke(_icon);
            });
        }
    }
Example #5
0
    public DataCardParam RandomSelectFromHand()
    {
        List <DataCardParam> temp = list.FindAll(p => p.status == (int)STATUS.HAND);

        int[] select_prob = new int[temp.Count];
        for (int i = 0; i < temp.Count; i++)
        {
            select_prob[i] = 100;
        }

        int index = UtilRand.GetIndex(select_prob);

        if (temp.Count <= index)
        {
            foreach (DataCardParam data in list)
            {
                Debug.Log(string.Format("card_id:{0} chara_id:{1} status:{2}",
                                        data.card_id,
                                        data.card_serial,
                                        (STATUS)data.status));
            }
        }

        return(temp[index]);
    }
Example #6
0
    public int GetDropItemId()
    {
        int iRet = 0;

        int[] drop_prob_arr = new int[7]
        {
            drop_prob,                          // セットされたアイテム
            1000,                               // ドロップCoin
            20,                                 // ドロップGem
            10,                                 // ドロップGemの秘伝書
            drop_prob,                          // dtop_item_id_2
            drop_prob,                          // dtop_item_id_3
            15,                                 // なんかメダルが設定されてたら
        };

        int [] drop_item_id_arr = new int[7]
        {
            drop_item_id,
            1,
            2,
            3,
            drop_item_id_2,
            drop_item_id_3,
            1,                          // 差し替え必須
        };

        // Gemの秘伝書が3つ以上ある場合はそれ以上ドロップさせない
        DataItemParam gem_book_check = DataManager.Instance.dataItem.list.Find(p => p.item_id == Defines.ITEM_ID_GEM_BOOK && Defines.GEM_BOOK_DROP_LIMIT < p.num);

        if (gem_book_check != null)
        {
            drop_prob_arr[3] = 0;
        }

        MasterDungeonParam dungeon = DataManager.Instance.masterDungeon.list.Find(p => p.dungeon_id == Defines.CurrentDungeonID);

        //Debug.Log(dungeon.dungeon_label);
        if (dungeon.item_id_medal != 0)
        {
            drop_item_id_arr[6] = dungeon.item_id_medal;
        }


        int iResultIndex = UtilRand.GetIndex(drop_prob_arr);

        iRet = drop_item_id_arr[iResultIndex];

        /*
         * if(iResultIndex== 0 )
         * {
         *      iRet = drop_item_id;
         * }
         * else
         * {
         *      iRet = iResultIndex;
         * }
         */
        return(iRet);
    }
Example #7
0
    /*
     * private void Start()
     * {
     *      m_rb.AddForce(100.0f * new Vector2(
     *              true ? 1.0f : -1.0f * UtilRand.GetRange(1.0f, 0.5f),
     *              UtilRand.GetRange(2.0f, 1.5f)));
     * }
     */

    public void Initialize(int _iNum, bool _bIsRight)
    {
        m_txtNum.text = _iNum.ToString();
        m_rb.AddForce(UtilRand.GetRange(120.0f, 80.0f) * new Vector2(
                          _bIsRight ? 1.0f : -1.0f * UtilRand.GetRange(0.75f, 0.5f),
                          UtilRand.GetRange(2.0f, 1.5f)));

        Destroy(gameObject, 2.0f);
    }
Example #8
0
    public Vector3 GetMovePos()
    {
        float fX = UtilRand.GetRange(1.0f);
        float fY = UtilRand.GetRange(1.0f);

        Vector3 v3X = Define.CELL_X_DIR * fX * m_iSize;
        Vector3 v3Y = Define.CELL_Y_DIR * fY * m_iSize;

        return(v3X + v3Y);
    }
Example #9
0
    //public DataTargetParam m_targetParam;

    private Vector3 getRandomPos(float _fRangeMinX, float _fRangeMaxX, float _fRangeMinY, float _fRangeMaxY)
    {
        Vector3 ret = new Vector3();

        float fX = UtilRand.GetRange(_fRangeMaxX, _fRangeMinX);
        float fY = UtilRand.GetRange(_fRangeMaxY, _fRangeMinY);

        ret = new Vector3(fX, fY, 0.0f);
        return(ret);
    }
Example #10
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 #11
0
    private Vector3 getRandomPos()
    {
        Vector3 ret = new Vector3();

        float fX = UtilRand.GetRange(m_Config.ReadFloat("xmax"), m_Config.ReadFloat("xmin"));
        float fY = UtilRand.GetRange(m_Config.ReadFloat("ymax"), m_Config.ReadFloat("ymin"));

        ret = new Vector3(fX, fY, 0.0f);

        return(ret);
    }
Example #12
0
        private void create_enemies(int _iCurrentFloor, string _strDungeonId)
        {
            gameMain.ClearEnemy();

            MasterFloorParam floor_param = DataManager.Instance.masterFloor.list.Find(p =>
                                                                                      p.dungeon_id == _strDungeonId &&
                                                                                      (p.start <= _iCurrentFloor && _iCurrentFloor <= p.end));

            int[] enemy_index_prob = floor_param.GetEnemyIndexProb();

            int enemy_num = UtilRand.GetRand(10, 3);

            int[] pos_index      = new int[enemy_num];
            int[] pos_index_prob = new int[10];
            for (int i = 0; i < 10; i++)
            {
                pos_index_prob[i] = 100;
            }
            for (int i = 0; i < enemy_num; i++)
            {
                int iResult = UtilRand.GetIndex(pos_index_prob);
                pos_index[i]            = iResult;
                pos_index_prob[iResult] = 0;

                //Debug.Log(iResult);
            }



            for (int i = 0; i < enemy_num; i++)
            {
                //float x = UtilRand.GetRange(8.5f, 3.5f);
                float x = 3.5f + ((8.5f - 3.5f) / 10.0f) * pos_index[i];

                int index = UtilRand.GetIndex(enemy_index_prob);

                int enemy_id           = floor_param.GetEnemyId_fromIndex(index);
                MasterEnemyParam enemy = DataManager.Instance.masterEnemy.list.Find(p => p.enemy_id == enemy_id);

                gameMain.CreateEnemy(enemy, x, false);
            }

            if (_iCurrentFloor % 10 == 0)
            {
                MasterEnemyParam boss = DataManager.Instance.masterEnemy.list.Find(p => p.enemy_id == floor_param.boss);
                DataEnemyParam   data = gameMain.CreateEnemy(boss, 9.0f, true);
                gameMain.panelBossStatus.Initialize(data, boss);
            }
            else
            {
                gameMain.panelBossStatus.Disable();
            }
        }
Example #13
0
    public static MasterStageEventParam GetRand(List <MasterStageEventParam> _event_list)
    {
        int[] prob_list = new int[_event_list.Count];
        for (int i = 0; i < _event_list.Count; i++)
        {
            prob_list[i] = _event_list[i].prob;
        }

        int iIndex = UtilRand.GetIndex(prob_list);

        return(_event_list[iIndex]);
    }
Example #14
0
    public int CalcDamage(DataUnitParam _target, MasterSkillParam _skill, MasterWeaponParam _weapon)
    {
        int use_attack = attack;

        if (_weapon != null)
        {
            //Debug.Log(_weapon.weapon_type);
            if (_weapon.weapon_type == "hammer")
            {
                use_attack /= 2;
            }
            else if (_weapon.weapon_type == "dagger")
            {
                use_attack = use_attack + use_attack / 2;
            }
            else
            {
            }
        }
        //Debug.Log(string.Format("{0}:{1}", attack, use_attack));

        float base_damage = (use_attack * 3 - _target.def) * 0.717f;

        //Debug.Log(base_damage);

        if (base_damage < 1.0f)
        {
            base_damage = 1.0f;
        }

        float skill_rate = 1.0f;

        if (_skill != null)
        {
            skill_rate = _skill.param * 0.01f;
        }

        float[] rand_rate_table = { 0.98f, 0.99f, 1.00f, 1.01f, 1.02f };
        //int[] rand_add_table = { 0,1,2,3,4 };
        int[] rand_add_table = { 0, 1, 1, 2, 2 };

        int index_rand_rate = UtilRand.GetRand(rand_rate_table.Length);
        int index_rand_add  = UtilRand.GetRand(rand_add_table.Length);

        float fRet = (base_damage * skill_rate * rand_rate_table[index_rand_rate]) + rand_add_table[index_rand_add];

        if (fRet < 1.0f)
        {
            fRet = 1.0f;
        }
        return((int)fRet);
    }
Example #15
0
        public override void OnEnter()
        {
            base.OnEnter();
            int select_index = UtilRand.GetRand(roulette.banner_list.Count);

            roulette.BannerActive(select_index);
            MasterItemParam master_item = roulette.GetBannerItem(select_index);

            get_item_id.Value          = master_item.item_id;
            roulette.m_txtMessage.text = string.Format("<color=#0FF>{0}</color>\nを手に入れました", master_item.name);

            Finish();
        }
Example #16
0
    public static T GetParam <T>(ref List <T> _paramList, string _strProbField)
    {
        int[] probArr = new int[_paramList.Count];
        for (int i = 0; i < _paramList.Count; i++)
        {
            FieldInfo field_info = _paramList[i].GetType().GetField(_strProbField);
            probArr[i] = (int)field_info.GetValue(_paramList[i]);
        }
        int index = UtilRand.GetIndex(probArr);

        return(_paramList[index]);
        //return  UtilRand.GetIndex(probArr);
        //return UtilRand.GetIndex(probArr);
    }
Example #17
0
    public void Initialize(int _iNum, int _iStage, int _iWave, int[] _iCharaIdArr)
    {
        m_prefBattleBonusHolder.SetActive(false);
        BattleBonusHolder[] arr = m_goRootBBHolder.GetComponentsInChildren <BattleBonusHolder>();
        foreach (BattleBonusHolder c in arr)
        {
            if (m_prefBattleBonusHolder != c.gameObject)
            {
                GameObject.Destroy(c.gameObject);
            }
        }
        battle_bonus_holder_list.Clear();

        List <MasterStageBattleBonusParam> stage_bb_list = DataManagerGame.Instance.masterStageBattleBonus.list.FindAll(p => p.stage_id == _iStage && p.wave == _iWave);

        if (stage_bb_list.Count == 0)
        {
            stage_bb_list = DataManagerGame.Instance.masterStageBattleBonus.list.FindAll(p => p.stage_id == _iStage && p.wave == 0);
        }
        if (stage_bb_list.Count == 0)
        {
            stage_bb_list = DataManagerGame.Instance.masterStageBattleBonus.list.FindAll(p => p.stage_id == 0 && p.wave == _iWave);
        }

        int[] prob_arr = new int[stage_bb_list.Count];
        for (int i = 0; i < stage_bb_list.Count; i++)
        {
            prob_arr[i] = stage_bb_list[i].prob;
            //Debug.Log(string.Format("index={0} prob={1}", i, prob_arr[i]));
        }

        for (int set_index = 0; set_index < _iNum; set_index++)
        {
            BattleBonusHolder holder = PrefabManager.Instance.MakeScript <BattleBonusHolder>(m_prefBattleBonusHolder, m_goRootBBHolder);
            holder.Reset(set_index + 1);
            for (int party_index = 0; party_index < _iCharaIdArr.Length; party_index++)
            {
                int index = UtilRand.GetIndex(prob_arr);
                //Debug.Log(index);
                MasterBattleBonusParam master_bb = DataManagerGame.Instance.masterBattleBonus.list.Find(p => p.battle_bonus_id == stage_bb_list[index].battle_bonus_id);

                holder.Add(master_bb, _iCharaIdArr[party_index]);
            }
            battle_bonus_holder_list.Add(holder);
            holder.OnClick.AddListener((int _iIndex) =>
            {
                OnClickHolder.Invoke(_iIndex);
            });
        }
    }
Example #18
0
    public void Damage(int _iAttack, string _strAttribute)
    {
        // 減るHPがないときはダメージを受けない

        //Debug.Log(string.Format("hp={0} is_dead={1}", DataManager.Instance.dataChara.is_dead, DataManager.Instance.dataChara.hp));
        if (DataManager.Instance.dataChara.hp < 0 || DataManager.Instance.dataChara.is_dead)
        {
            return;
        }

        const float DAMAGE_VECTOR_BASE  = -0.2f;
        const float DAMAGE_VECTOR_SWING = 0.1f;

        /*
         * float fDamage = (float)(_iAttack * _iAttack) / (float)DataManager.Instance.dataChara.defence * (DAMAGE_RATE + (UtilRand.GetRange(DAMAGE_SWING) - DAMAGE_SWING * 0.5f));
         * fDamage *= Defines.GetAttributeRate(DataManager.Instance.dataChara.attribute_defence, _strAttribute);
         * if (fDamage < 1.0f)
         * {
         *      fDamage = 1.0f;
         * }
         * int iDamageResult = (int)fDamage;
         */

        int iDamageResult = CalcDamage.Damage(_iAttack, _strAttribute, DataManager.Instance.dataChara.defence, DataManager.Instance.dataChara.attribute_defence);

        //Debug.Log(string.Format("chara attack={0} defence={1}", _iAttack, DataManager.Instance.dataChara.defence));

        Defines.ATTRIBUTE_CONDITION condition = Defines.GetAttributeCondition(DataManager.Instance.dataChara.attribute_defence, _strAttribute);
        Color damage_color = Defines.GetAttributeDamageColor(condition);


        //Debug.Log("player damage :" + iDamageResult.ToString());
        Quaternion rot = new Quaternion(0.0f, 0.0f, 0.0f, 0.0f);
        GameObject obj = Instantiate(m_prefDamageText, Vector3.zero, rot, m_goRootDamageText.transform) as GameObject;

        obj.SetActive(true);
        obj.transform.localPosition = Vector3.zero;
        //obj.GetComponent<Animator>().SetInteger("damage_level", 1);
        obj.GetComponent <TMPro.TextMeshPro>().text  = iDamageResult.ToString();
        obj.GetComponent <TMPro.TextMeshPro>().color = damage_color;

        Vector2 dir = new Vector2(
            DAMAGE_VECTOR_BASE - (UtilRand.GetRange(DAMAGE_VECTOR_SWING) + DAMAGE_VECTOR_SWING * 0.5f),
            1.0f + (UtilRand.GetRange(DAMAGE_VECTOR_SWING) + DAMAGE_VECTOR_SWING * 0.5f));

        obj.GetComponent <Rigidbody2D>().AddForce(200f * dir);
        Destroy(obj, 2);
        DataManager.Instance.dataChara.hp -= iDamageResult;
        GameMain.Instance.BattleLog(string.Format("<color=red>{0}</color>のダメージを受けた!", iDamageResult));
    }
Example #19
0
    public void CallVoice(int _iVliceType)
    {
        List <string> sound_list = new List <string> ();

        foreach (CsvVoicesetData data in DataManagerAlarm.Instance.master_voiceset_list)
        {
            if (_iVliceType == data.id)
            {
                sound_list.Add(data.name);
            }
        }
        int iIndex = UtilRand.GetRand(sound_list.Count);

        SoundManager.Instance.PlaySE(sound_list[iIndex]);
        return;
    }
Example #20
0
    public bool IsSuccess()
    {
        bool bRet = false;

        int[] prob_arr = new int[]
        {
            prob_success,
            prob_fail
        };

        if (UtilRand.GetIndex(prob_arr) == 0)
        {
            bRet = true;
        }
        return(bRet);
    }
Example #21
0
        public override void OnEnter()
        {
            base.OnEnter();
            DateTime check_datetime;

            if (!DataManager.Instance.user_data.HasKey(Defines.KEY_LAST_REWARD_TIME_FREE_WEAPON))
            {
                check_datetime = new DateTime(2020, 1, 1);
            }
            else
            {
                check_datetime = System.DateTime.Parse(DataManager.Instance.user_data.Read(Defines.KEY_LAST_REWARD_TIME_FREE_WEAPON));
            }

            DataManager.Instance.user_data.Write(
                Defines.KEY_LAST_REWARD_TIME_FREE_WEAPON,
                NTPTimer.Instance.now.ToString("yyyy/MM/dd HH:mm:ss"));
            check_datetime = System.DateTime.Parse(DataManager.Instance.user_data.Read(Defines.KEY_LAST_REWARD_TIME_FREE_WEAPON));

            GachaMain.Instance.OnGachaFinished.RemoveAllListeners();
            GachaMain.Instance.OnGachaFinished.AddListener(() =>
            {
                GachaMain.Instance.Close();
                Finish();
            });
            List <MasterWeaponParam> hit_weapon_list = DataManager.Instance.masterWeapon.list.FindAll(p => 1 <= p.rarity && p.rarity <= 3);

            int[] prob_arr = new int[hit_weapon_list.Count];
            for (int i = 0; i < hit_weapon_list.Count; i++)
            {
                prob_arr[i] = hit_weapon_list[i].GetGachaProbFree();
            }
            int index = UtilRand.GetIndex(prob_arr);

            MasterWeaponParam get_weapon = hit_weapon_list[index];

            DataManager.Instance.dataWeapon.Add(get_weapon.weapon_id);

            GachaMain.ChestData chest_data = new GachaMain.ChestData();
            chest_data.rarity    = get_weapon.rarity;
            chest_data.spr_item  = shop.m_sprAtlasWeapon.GetSprite(get_weapon.sprite_name);
            chest_data.spr_chest = shop.m_sprAtlasIcons.GetSprite("chest_t_01");
            DataManager.Instance.dataWeapon.Save();
            DataManager.Instance.dataWeaponAlbum.Save();
            DataManager.Instance.user_data.Save();
            GachaMain.Instance.GachaSingle(chest_data);
        }
Example #22
0
    private IEnumerator spin()
    {
        bool bPushed = false;

        m_btnDecide.onClick.AddListener(() =>
        {
            bPushed = true;
        });

        while (bPushed == false)
        {
            yield return(new WaitForSeconds(0.1f));

            int show_index = UtilRand.GetRand(m_bannerList.Count);
            ShowBanner(show_index);
        }
        m_btnDecide.onClick.RemoveAllListeners();
    }
Example #23
0
        public override void OnEnter()
        {
            base.OnEnter();
            temp_serial = -1;
            select(temp_serial);
            foreach (Card c in panel.card_list)
            {
                c.OnClickCard.AddListener(OnClickCard);
            }

            aging_timer = 0.0f;
            int aging_index = UtilRand.GetRand(panel.card_list.Count);

            temp_serial_aging = panel.card_list[aging_index].data_card.card_serial;

            panel.m_btnDecide.interactable = false;
            panel.m_btnDecide.onClick.AddListener(OnDecide);
        }
Example #24
0
    public bool CardFill(int _iFillNum, ref List <DataCardParam> _add_list)
    {
        int _iExistNum = list.FindAll(p => p.status == (int)STATUS.HAND).Count;
        int iAdd       = _iFillNum - _iExistNum;

        int[] create_prob_arr = new int[list.Count];

        int deck_card = 0;

        for (int i = 0; i < list.Count; i++)
        {
            int prob = 0;
            if (list[i].status == (int)STATUS.DECK)
            {
                prob       = 100;
                deck_card += 1;
            }
            else
            {
            }
            create_prob_arr[i] = prob;
        }

        int select_count = iAdd <= deck_card ? iAdd : deck_card;

        //Debug.Log(string.Format("fill={0} deck_card={1} add={2} select_count={3}", _iFillNum, deck_card, iAdd, select_count));

        for (int i = 0; i < select_count; i++)
        {
            hand_number += 1;

            int select_index = UtilRand.GetIndex(create_prob_arr);

            list[select_index].status = (int)STATUS.HAND;
            list[select_index].order  = hand_number;

            // 再選択させない
            create_prob_arr[select_index] = 0;

            _add_list.Add(list[select_index]);
        }
        return(iAdd <= deck_card);
    }
Example #25
0
    public string GetItemRouletteResult(int _iNum)
    {
        string ret = "";

        ItemResult result = new ItemResult();

        result.keys = new List <string>();

        for (int i = 0; i < _iNum; i++)
        {
            int iTempIndex = UtilRand.GetIndex(m_iProbList);
            result.keys.Add(m_getItemList[iTempIndex].item_key);
        }
        result.result_index = UtilRand.GetRand(m_getItemList.Count);
        ret = JsonUtility.ToJson(result);
        //Debug.Log(ret);

        return(ret);
    }
Example #26
0
    public bool Heal(int _iHeal)
    {
        bool bRet = DataManager.Instance.dataChara.hp < DataManager.Instance.dataChara.hp_max;

        // HPが0以下の場合も回復出来ず
        if (DataManager.Instance.dataChara.hp <= 0)
        {
            bRet = false;
        }

        if (bRet == false)
        {
            return(false);
        }

        const float HEAL_RATE  = 1.0f;
        const float HEAL_SWING = 0.05f;
        float       fHeal      = (float)(_iHeal) * (HEAL_RATE + (UtilRand.GetRange(HEAL_SWING) - HEAL_SWING * 0.5f));
        int         iHeal      = (int)fHeal;

        DataManager.Instance.dataChara.hp += iHeal;
        if (DataManager.Instance.dataChara.hp_max < DataManager.Instance.dataChara.hp)
        {
            DataManager.Instance.dataChara.hp = DataManager.Instance.dataChara.hp_max;
        }

        Quaternion rot = new Quaternion(0.0f, 0.0f, 0.0f, 0.0f);
        GameObject num = Instantiate(m_prefRecoverNum.gameObject, gameObject.transform.position + new Vector3(0.0f, 0.0f, 0.0f), rot, GameMain.Instance.m_goStage.transform) as GameObject;

        num.SetActive(true);

        num.GetComponent <RecoverNum>().Initialize(iHeal);

        GameObject effect = Instantiate(m_prefHealEffect, gameObject.transform.position + new Vector3(0.0f, 0.75f, 0.0f), rot, GameMain.Instance.m_goStage.transform) as GameObject;

        effect.SetActive(true);

        Destroy(num, 2.0f);
        Destroy(effect, 2.0f);

        return(true);
    }
Example #27
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 #28
0
        public override void OnEnter()
        {
            base.OnEnter();

            List <MasterStageBattleBonusParam> stage_bb_list = simulator.masterStageBattleBonus.list.FindAll(p => p.stage_id == stage_id.Value && p.wave == wave.Value);

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

            int[] prob_arr = new int[stage_bb_list.Count];
            for (int i = 0; i < stage_bb_list.Count; i++)
            {
                prob_arr[i] = stage_bb_list[i].prob;
                //Debug.Log(string.Format("index={0} prob={1}", i, prob_arr[i]));
            }

            foreach (DataUnitParam unit in simulator.dataUnit.list.FindAll(p => p.unit == "chara"))
            {
                int index = UtilRand.GetIndex(prob_arr);
                //Debug.Log(index);
                MasterBattleBonusParam master_bb = simulator.masterBattleBonus.list.Find(p => p.battle_bonus_id == stage_bb_list[index].battle_bonus_id);

                //Debug.Log(master_bb.battle_bonus_id);
                //Debug.Log(master_bb.field);
                //Debug.Log(master_bb.param);

                simulator.dataUnit.AddAssist(unit, "bb", "バトルボーナス",
                                             unit.chara_id,
                                             master_bb.field,
                                             master_bb.param,
                                             -1);
            }

            Finish();
        }
Example #29
0
    public bool Eat(int _iEat)
    {
        bool bRet = DataManager.Instance.dataChara.hunger < DataManager.Instance.dataChara.hunger_max;

        if (bRet == false)
        {
            return(false);
        }

        const float EAT_RATE  = 1.0f;
        const float EAT_SWING = 0.05f;
        float       fEat      = (float)(_iEat) * (EAT_RATE + (UtilRand.GetRange(EAT_SWING) - EAT_SWING * 0.5f));
        int         iEat      = (int)fEat;

        if (DataManager.Instance.dataChara.hunger_max < DataManager.Instance.dataChara.hunger + iEat)
        {
            DataManager.Instance.dataChara.hunger = DataManager.Instance.dataChara.hunger_max;
        }
        else
        {
            DataManager.Instance.dataChara.hunger += iEat;
        }

        Quaternion rot = new Quaternion(0.0f, 0.0f, 0.0f, 0.0f);
        GameObject num = Instantiate(m_prefRecoverNum.gameObject, gameObject.transform.position + new Vector3(0.0f, 0.0f, 0.0f), rot, GameMain.Instance.m_goStage.transform) as GameObject;

        num.SetActive(true);
        RecoverNum script =  num.GetComponent <RecoverNum>();

        script.Initialize(iEat);
        script.m_txtNum.color = Color.yellow;
        GameObject effect = Instantiate(m_prefEatEffect, gameObject.transform.position + new Vector3(0.0f, 0.75f, 0.0f), rot, GameMain.Instance.m_goStage.transform) as GameObject;

        effect.SetActive(true);
        Destroy(num, 2.0f);
        Destroy(effect, 2.0f);

        return(true);
    }
Example #30
0
        private IEnumerator HealEffectAppear(BattleIcon arg0)
        {
            // この微妙なずらし作業がしたかっただけ
            yield return(new WaitForSeconds(0.5f));

            int iHeal  = 12;
            int iSwing = UtilRand.GetRand(5) - 2;

            if (is_player.Value)
            {
                DataUnitParam unit_chara = DataManagerGame.Instance.dataUnit.list.Find(p => p.chara_id == select_chara_id.Value && p.unit == "chara");
                iHeal = unit_chara.heal + iSwing;
            }
            else
            {
                DataUnitParam unit_enemy = DataManagerGame.Instance.dataUnit.list.Find(p => p.unit == "enemy");
                iHeal = unit_enemy.heal + iSwing;
            }
            //Debug.Log(iDamage);

            battleMain.Heal(is_player.Value, iHeal, OnHealFinished);

            // プレイヤー側の攻撃
            if (arg0.is_left)
            {
                DataUnitParam unit_chara = DataManagerGame.Instance.dataUnit.list.Find(p => p.chara_id == select_chara_id.Value && p.unit == "chara");
                unit_chara.HpHeal(iHeal);
                GameMain.Instance.CharaRefresh();
            }
            else
            {
                DataUnitParam unit_enemy = DataManagerGame.Instance.dataUnit.list.Find(p => p.unit == "enemy");
                unit_enemy.HpHeal(iHeal);
            }
            battleMain.HpRefresh();
        }