public void AddEquips() { List <GDEEquipmentData> _gdes = SDDataManager.Instance.getAllOwnedEquips(); if (_gdes.Count < 4) { List <EquipItem> all = SDDataManager.Instance.AllEquipList; all = all.FindAll(x => x.IconFromAtlas != null && x.WeaponRace != null && x.WeaponRace.WeaponClass == SDConstants.WeaponClass.Claymore); List <int> enables = RandomIntger.NumListReturn(5, all.Count); for (int i = 0; i < all.Count; i++) { if (enables.Contains(i)) { SDDataManager.Instance.addEquip(all[i].ID); } } List <EquipItem> allcs = all.FindAll(x => x.WeaponRace.WeaponClass == SDConstants.WeaponClass.Claymore); EquipItem _item = allcs[Random.Range(0, allcs.Count)]; SDDataManager.Instance.addEquip(_item.ID); List <GDEEquipmentData> gdes = SDDataManager.Instance.getAllOwnedEquips(); int[] posLists = new int[(int)EquipPosition.End]; for (int i = 0; i < gdes.Count; i++) { string id = gdes[i].id; EquipItem item = SDDataManager.Instance.GetEquipItemById(id); EquipPosition pos = item.EquipPos; posLists[(int)pos]++; } string S = ""; for (int i = 0; i < posLists.Length; i++) { S += ((EquipPosition)i).ToString().ToUpper() + ": " + posLists[i] + "/ "; } Debug.Log(S); } if (!_gdes.Exists(x => MustHave.Exists(y => y.ID == x.id))) { for (int i = 0; i < MustHave.Count; i++) { SDDataManager.Instance.addEquip(MustHave[i].ID); } } }
public void Test_AddConsumableItems() { List <GDEItemData> alls = SDDataManager.Instance.PlayerData.consumables; if (alls.Count < 10) { List <consumableItem> all = SDDataManager.Instance.AllConsumableList; all = all.FindAll(x => x.IconFromAtlas != null); List <int> enables = RandomIntger.NumListReturn(5, all.Count); string s = ""; for (int i = 0; i < enables.Count; i++) { SDDataManager.Instance.addConsumable(all[enables[i]].ID, 5); s += all[enables[i]].name + "| "; } Debug.Log(s); } }
public List <BattleRoleData> DealWithAOEAction (bool targetIsHero, SDConstants.AOEType AOE, bool isRevive = false) { if (!BM) { BM = FindObjectOfType <BattleManager>(); } List <BattleRoleData> results = new List <BattleRoleData>(); List <BattleRoleData> All; BattleRoleData target; if (isRevive) { All = targetIsHero ? BM.AllSRL_Array : BM.AllORL_Array; List <BattleRoleData> _all = All.FindAll(x => x.IsDead); All = _all; target = All[UnityEngine.Random.Range(0, All.Count)]; } else { All = targetIsHero ? BM.Remaining_SRL : BM.Remaining_ORL; target = All[UnityEngine.Random.Range(0, All.Count)]; } if (AOE == SDConstants.AOEType.None) { //this.StartSkill(source, target); results.Add(target); } else if (AOE == SDConstants.AOEType.Horizontal) { string _N = target.gameObject.name; if (_N.Contains("POS8")) { results.Add(target); } else { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { if (_N.Contains("POS0") || _N.Contains("POS2") || _N.Contains("POS6") || _N.Contains("POS4") || _N.Contains("POS5")) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS2") || N.Contains("POS6") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } else if (_N.Contains("POS1") || _N.Contains("POS3") || _N.Contains("POS7") || _N.Contains("POS4") || _N.Contains("POS5")) { string N = _parent.GetChild(i).name; if (N.Contains("POS1") || N.Contains("POS3") || N.Contains("POS7") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } } } else if (AOE == SDConstants.AOEType.Horizontal1) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS2") || N.Contains("POS6") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.Horizontal2) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS1") || N.Contains("POS3") || N.Contains("POS7") || N.Contains("POS4") || N.Contains("POS5") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.Vertical) { string _N = target.gameObject.name; if (_N.Contains("POS8")) { results.Add(target); } else { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { //bool exit = false; if (_N.Contains("POS2") || _N.Contains("POS3") || _N.Contains("POS5") || _N.Contains("POS6") || _N.Contains("POS7")) { string N = _parent.GetChild(i).name; if (N.Contains("POS2") || N.Contains("POS3") || N.Contains("POS5") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } else if (_N.Contains("POS0") || _N.Contains("POS1") || _N.Contains("POS4") || _N.Contains("POS6") || _N.Contains("POS7")) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS1") || N.Contains("POS4") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } } } else if (AOE == SDConstants.AOEType.Vertical1) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS2") || N.Contains("POS3") || N.Contains("POS5") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.Vertical2) { Transform _parent = target.transform.parent; for (int i = 0; i < _parent.childCount; i++) { string N = _parent.GetChild(i).name; if (N.Contains("POS0") || N.Contains("POS1") || N.Contains("POS4") || N.Contains("POS6") || N.Contains("POS7") || N.Contains("POS8")) { BattleRoleData unit0 = _parent.GetChild(i).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } } } } else if (AOE == SDConstants.AOEType.All) { BattleRoleData[] list = target.transform.parent .GetComponentsInChildren <BattleRoleData>(); for (int i = 0; i < list.Length; i++) { bool flag = false; if (list[i].IsDead && isRevive) { flag = true; } else if (!list[i].IsDead) { flag = true; } if (flag) { //this.StartSkill(source, list[i]); results.Add(list[i]); } } } else if (AOE == SDConstants.AOEType.Random1)//随机选择一个 { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(1, list.Count); for (int i = 0; i < _results.Count; i++) { //this.StartSkill(source, BM.All_Array[list[_results[i]]]); results.Add(BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random2) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(2, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random3) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(3, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Continuous2) { results.Add(target); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else if (AOE == SDConstants.AOEType.Continuous3) { results.Add(target); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else { results.Add(target); //this.StartSkill(source, target); } return(results); }
public List <BattleRoleData> DealWithAOEAction (BattleRoleData currentActionUnit, BattleRoleData propTargetUnit , SDConstants.AOEType AOE, bool isRevive = false) { BattleManager BM = FindObjectOfType <BattleManager>(); List <BattleRoleData> results = new List <BattleRoleData>(); if (AOE == SDConstants.AOEType.None) { results.Add(propTargetUnit); } else if (AOE == SDConstants.AOEType.Horizontal) { int childId = propTargetUnit.transform.GetSiblingIndex(); int nextId = (childId + 2) % SDConstants.MaxSelfNum; results.Add(propTargetUnit); BattleRoleData next = propTargetUnit.transform.parent.GetChild(nextId) .GetComponent <BattleRoleData>(); bool flag = false; if (next.IsDead && isRevive) { flag = true; } else if (!next.IsDead) { flag = true; } if (flag) { results.Add(next); } } else if (AOE == SDConstants.AOEType.Horizontal1) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(0).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(2).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.Horizontal2) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(1).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(3).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.Vertical) { int childId = propTargetUnit.transform.GetSiblingIndex(); int nextId; if (childId > 1) { nextId = 5 - childId; } else { nextId = 1 - childId; } //this.StartSkill(source, target); results.Add(propTargetUnit); BattleRoleData next = propTargetUnit.transform.parent.GetChild(nextId) .GetComponent <BattleRoleData>(); bool flag = false; if (next.IsDead && isRevive) { flag = true; } else if (!next.IsDead) { flag = true; } if (flag) { results.Add(next); } //this.StartSkill(source, next); } else if (AOE == SDConstants.AOEType.Vertical1) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(2).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(3).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.Vertical2) { BattleRoleData unit0 = propTargetUnit.transform.parent.GetChild(0).GetComponent <BattleRoleData>(); bool flag0 = false; if (unit0.IsDead && isRevive) { flag0 = true; } else if (!unit0.IsDead) { flag0 = true; } if (flag0) { results.Add(unit0); } BattleRoleData unit1 = propTargetUnit.transform.parent.GetChild(1).GetComponent <BattleRoleData>(); bool flag1 = false; if (unit1.IsDead && isRevive) { flag1 = true; } else if (!unit1.IsDead) { flag1 = true; } if (flag1) { results.Add(unit1); } } else if (AOE == SDConstants.AOEType.All) { BattleRoleData[] list = propTargetUnit.transform.parent .GetComponentsInChildren <BattleRoleData>(); for (int i = 0; i < list.Length; i++) { bool flag = false; if (list[i].IsDead && isRevive) { flag = true; } else if (!list[i].IsDead) { flag = true; } if (flag) { //this.StartSkill(source, list[i]); results.Add(list[i]); } } } else if (AOE == SDConstants.AOEType.Random1)//随机选择一个 { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(1, list.Count); for (int i = 0; i < _results.Count; i++) { //this.StartSkill(source, BM.All_Array[list[_results[i]]]); results.Add(BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random2) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(2, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Random3) { List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } List <int> _results = RandomIntger.NumListReturn(3, list.Count); for (int i = 0; i < _results.Count; i++) { results.Add(BM.All_Array[list[_results[i]]]); //this.StartSkill(source, BM.All_Array[list[_results[i]]]); } } else if (AOE == SDConstants.AOEType.Continuous2) { results.Add(propTargetUnit); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else if (AOE == SDConstants.AOEType.Continuous3) { results.Add(propTargetUnit); List <int> list = new List <int>(); for (int i = 0; i < BM.All_Array.Count; i++) { if (BM.All_Array[i].IsDead && isRevive) { list.Add(i); } else if (!BM.All_Array[i].IsDead) { list.Add(i); } } int index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); index = UnityEngine.Random.Range(0, list.Count); results.Add(BM.All_Array[list[index]]); } else { results.Add(propTargetUnit); } return(results); }
public void setupEnemies(int currentLevel) { if (SDGameManager.Instance.gameType == SDConstants.GameType.Normal && currentLevel % SDConstants.LevelNumPerSerial == SDConstants.LevelNumPerSerial - 1) { setupBoss(currentLevel); return;//生成boss } //控制敌人种类 List <string> enemies = new List <string>(); List <EnemyInfo> enemydatas = SDDataManager.Instance.AllEnemyList; for (int i = 0; i < enemydatas.Count; i++) { EnemyInfo s = enemydatas[i]; int weight = s.weight; if (enemyBuild.CanBeUsedInThisLevel(weight) && s.EnemyRank.Index < 3) { enemies.Add(enemydatas[i].ID); } } startEnemyGroup.Clear(); int groupNum = Mathf.Min(SDGameManager.Instance.currentLevel + 1, SDConstants.MaxOtherNum); for (int i = 0; i < groupNum; i++) { string s = enemies[Random.Range(0, enemies.Count)]; startEnemyGroup.Add(s); Debug.Log("选中的Enemy id:" + s); } int num = enemyBuild.createCareerByLevel(); List <int> rareList = RandomIntger.NumListReturn(num, startEnemyGroup.Count); if (SDGameManager.Instance.gameType == SDConstants.GameType.Normal && currentLevel % SDConstants.LevelNumPerSection == SDConstants.LevelNumPerSection - 1) { addLittleBoss(startEnemyGroup[0], 4, 1); for (int i = 2; i < SDConstants.MaxOtherNum; i++) { if (rareList.Contains(i)) { addEnemy(startEnemyGroup[i], i, 1); } else { addEnemy(startEnemyGroup[i], i, 0); } } } else { for (int i = 0; i < startEnemyGroup.Count; i++) { if (rareList.Contains(i)) { addEnemy(startEnemyGroup[i], i, 1); } else { addEnemy(startEnemyGroup[i], i, 0); } } } }