Beispiel #1
0
    /// <summary>
    /// 受英雄嘲讽值影响
    /// </summary>
    /// <param name="heros">当前的英雄们</param>
    /// <returns></returns>
    public int TauntFunction()
    {
        float[] allTs = new float[Remaining_SRL.Count];
        float   maxT  = 0;

        for (int i = 0; i < allTs.Length; i++)
        {
            allTs[i] = Remaining_SRL[i].HeroProperty._role.taunt;
            allTs[i] = Mathf.Max(0.5f, allTs[i]);
            float f = allTs[i];
            if (Remaining_SRL[i].HeroProperty._hero._heroJob
                == _currentBattleUnit.EnemyProperty.AttackPreferenceInJob)
            {
                allTs[i] += f / 2;
            }
            if (Remaining_SRL[i].HeroProperty._hero._heroRace
                == _currentBattleUnit.EnemyProperty.AttackPreferenceInRace)
            {
                allTs[i] += f / 2;
            }
            maxT = Mathf.Max(maxT, allTs[i]);
        }
        if (_currentBattleUnit.EnemyProperty.CunningAttack)
        {
            for (int i = 0; i < allTs.Length; i++)
            {
                allTs[i] = Mathf.Max(maxT - allTs[i], 0.5f);
            }
        }
        int _rand = RandomIntger.StandardReturn(allTs);

        return(_rand);
    }
Beispiel #2
0
    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);
            }
        }
    }
Beispiel #3
0
    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);
        }
    }
Beispiel #4
0
    public GDEItemData oneDropReward()
    {
        float[]       all   = new float[] { normalRate, rareRate, epicRate, legendRate };
        int           final = RandomIntger.StandardReturn(all);
        GDEItemData   drop  = new GDEItemData(GDEItemKeys.Item_MaterialEmpty);
        List <string> list  = allProbablyDropIds_normal;

        if (final == 0)//normal
        {
            list = allProbablyDropIds_normal;
        }
        else if (final == 1)//rare
        {
            list = allProbablyDropIds_rare;
        }
        else if (final == 2)//epic
        {
            list = allProbablyDropIds_epic;
        }
        else if (final == 3)//legend
        {
            list = allProbablyDropIds_legend;
        }
        int flag = UnityEngine.Random.Range(0, list.Count);

        drop.id = list[flag];
        //int stockKind = drop.id % 1000000;
        int weight = SDDataManager.Instance.getMaterialWeightById(list[flag]);

        if (weight <= 1)
        {
            drop.num = 1;
        }
        else
        {
            drop.num = UnityEngine.Random.Range(1, weight + 1);
        }
        return(drop);
    }
Beispiel #5
0
    /// <summary>
    /// 被封印类道具生效后结果
    /// </summary>
    /// <param name="pos"></param>
    /// <param name="type"></param>
    /// <param name="Num"></param>
    /// <returns></returns>
    public string ReapNormalEquip(EquipPosition pos, int type)
    {
        List <EquipItem> equips = SDDataManager.Instance.AllEquipList;
        List <EquipItem> all    = equips.FindAll(x => x.EquipPos == pos);

        if (pos == EquipPosition.End)
        {
            all = equips;
        }

        if (type > 0)
        {
            all = all.FindAll(x => x.ArmorRank.Index == type);
        }

        float[] r     = new float[] { 6, 3.5f, 0.46f, 0.04f };
        int     level = RandomIntger.Choose(r);

        all = all.FindAll(x => x.LEVEL == level);
        int       randomNum = UnityEngine.Random.Range(0, all.Count);
        EquipItem result    = all[randomNum];

        return(result.ID);
    }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    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);
                }
            }
        }
    }