public GangColorTranslation GetGangColorTranslation(PotentialGangMember.MemberColor baseColor) { for (int i = 0; i < similarColors.Count; i++) { if (similarColors[i].baseColor == baseColor) { return(similarColors[i]); } } return(null); }
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); }
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; } } }
public GangColorTranslation(PotentialGangMember.MemberColor baseColor, List <VehicleColor> vehicleColors, int[] blipColors) { this.baseColor = baseColor; this.vehicleColors = vehicleColors; this.blipColors = blipColors; }