public int GetCoinNum() { int ret = stage_id * 3; ret += UtilRand.GetRand(3); return(ret); }
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); }
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); }
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); }); } }
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]); }
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); }
/* * 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); }
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); }
//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); }
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); } }
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); }
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(); } }
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]); }
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); }
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(); }
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); }
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); }); } }
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)); }
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; }
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); }
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); }
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(); }
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); }
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); }
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); }
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); }
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(); }
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(); }
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); }
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(); }