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); }
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); } }
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); }
/* * // 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; }
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(); 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(); }
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 }
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; } }
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(); }); }
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); }