示例#1
0
        public GangColorTranslation GetGangColorTranslation(PotentialGangMember.MemberColor baseColor)
        {
            for (int i = 0; i < similarColors.Count; i++)
            {
                if (similarColors[i].baseColor == baseColor)
                {
                    return(similarColors[i]);
                }
            }

            return(null);
        }
示例#2
0
        public Gang CreateNewEnemyGang(bool notifyMsg = true)
        {
            if (PotentialGangMember.MemberPool.memberList.Count <= 0)
            {
                UI.Notify("Enemy gang creation failed: bad/empty/not found memberPool file. Try adding peds as potential members for AI gangs");
                return(null);
            }
            //set gang name from options
            string gangName = "Gang";

            do
            {
                gangName = string.Concat(RandoMath.GetRandomElementFromList(ModOptions.instance.possibleGangFirstNames), " ",
                                         RandoMath.GetRandomElementFromList(ModOptions.instance.possibleGangLastNames));
            } while (GetGangByName(gangName) != null);

            PotentialGangMember.MemberColor gangColor = (PotentialGangMember.MemberColor)RandoMath.CachedRandom.Next(9);

            //the new gang takes the wealthiest gang around as reference to define its starting money.
            //that does not mean it will be the new wealthiest one, hehe (but it may)
            Gang newGang = new Gang(gangName, RandoMath.GetRandomElementFromList(ModOptions.instance.GetGangColorTranslation(gangColor).vehicleColors),
                                    false, (int)(RandoMath.Max(Game.Player.Money, GetWealthiestGang().moneyAvailable) * (RandoMath.CachedRandom.Next(1, 11) / 6.5f)))
            {
                blipColor = RandoMath.GetRandomElementFromArray(ModOptions.instance.GetGangColorTranslation(gangColor).blipColors)
            };

            GetMembersForGang(newGang);

            //relations...
            newGang.relationGroupIndex = World.AddRelationshipGroup(gangName);

            World.SetRelationshipBetweenGroups(Relationship.Hate, newGang.relationGroupIndex, Game.Player.Character.RelationshipGroup);
            World.SetRelationshipBetweenGroups(Relationship.Hate, Game.Player.Character.RelationshipGroup, newGang.relationGroupIndex);

            for (int i = 0; i < gangData.gangs.Count; i++)
            {
                World.SetRelationshipBetweenGroups(Relationship.Hate, gangData.gangs[i].relationGroupIndex, newGang.relationGroupIndex);
                World.SetRelationshipBetweenGroups(Relationship.Hate, newGang.relationGroupIndex, gangData.gangs[i].relationGroupIndex);
            }

            gangData.gangs.Add(newGang);

            newGang.GetPistolIfOptionsRequire();

            SaveGangData();
            if (notifyMsg)
            {
                UI.Notify("The " + gangName + " have entered San Andreas!");
            }


            return(newGang);
        }
示例#3
0
 public void GetMembersForGang(Gang targetGang)
 {
     PotentialGangMember.MemberColor gangColor = ModOptions.instance.TranslateVehicleToMemberColor(targetGang.vehicleColor);
     PotentialGangMember.DressStyle  gangStyle = (PotentialGangMember.DressStyle)RandoMath.CachedRandom.Next(3);
     for (int i = 0; i < RandoMath.CachedRandom.Next(2, 6); i++)
     {
         PotentialGangMember newMember = PotentialGangMember.GetMemberFromPool(gangStyle, gangColor);
         if (newMember != null)
         {
             targetGang.AddMemberVariation(newMember);
         }
         else
         {
             break;
         }
     }
 }
示例#4
0
 public GangColorTranslation(PotentialGangMember.MemberColor baseColor, List <VehicleColor> vehicleColors, int[] blipColors)
 {
     this.baseColor     = baseColor;
     this.vehicleColors = vehicleColors;
     this.blipColors    = blipColors;
 }