Beispiel #1
0
 public Dialog_NamePlayerFaction()
 {
     this.curName               = NameGenerator.GenerateName(Faction.OfPlayer.def.factionNameMakerPlayer, null, false, null);
     this.nameMessageKey        = "NamePlayerFactionMessage";
     this.gainedNameMessageKey  = "PlayerFactionGainsName";
     this.invalidNameMessageKey = "PlayerFactionNameIsInvalid";
 }
Beispiel #2
0
 public Dialog_NamePlayerFaction()
 {
     base.curName               = NameGenerator.GenerateName(Faction.OfPlayer.def.factionNameMakerPlayer, (Predicate <string>)null, false, (string)null);
     base.nameMessageKey        = "NamePlayerFactionMessage";
     base.gainedNameMessageKey  = "PlayerFactionGainsName";
     base.invalidNameMessageKey = "PlayerFactionNameIsInvalid";
 }
 public static Name GeneratePawnName(Pawn pawn, NameStyle style = NameStyle.Full, string forcedLastName = null)
 {
     if (style == NameStyle.Full)
     {
         RulePackDef nameGenerator = pawn.RaceProps.GetNameGenerator(pawn.gender);
         if (nameGenerator != null)
         {
             string name = NameGenerator.GenerateName(nameGenerator, (string x) => !new NameSingle(x, false).UsedThisGame, false, null, null);
             return(new NameSingle(name, false));
         }
         if (pawn.Faction != null && pawn.Faction.def.pawnNameMaker != null)
         {
             string rawName = NameGenerator.GenerateName(pawn.Faction.def.pawnNameMaker, delegate(string x)
             {
                 NameTriple nameTriple4 = NameTriple.FromString(x);
                 nameTriple4.ResolveMissingPieces(forcedLastName);
                 return(!nameTriple4.UsedThisGame);
             }, false, null, null);
             NameTriple nameTriple = NameTriple.FromString(rawName);
             nameTriple.CapitalizeNick();
             nameTriple.ResolveMissingPieces(forcedLastName);
             return(nameTriple);
         }
         if (pawn.RaceProps.nameCategory != PawnNameCategory.NoName)
         {
             if (Rand.Value < 0.5f)
             {
                 NameTriple nameTriple2 = PawnBioAndNameGenerator.TryGetRandomUnusedSolidName(pawn.gender, forcedLastName);
                 if (nameTriple2 != null)
                 {
                     return(nameTriple2);
                 }
             }
             return(PawnBioAndNameGenerator.GeneratePawnName_Shuffled(pawn, forcedLastName));
         }
         Log.Error("No name making method for " + pawn, false);
         NameTriple nameTriple3 = NameTriple.FromString(pawn.def.label);
         nameTriple3.ResolveMissingPieces(null);
         return(nameTriple3);
     }
     else
     {
         if (style == NameStyle.Numeric)
         {
             int    num = 1;
             string text;
             while (true)
             {
                 text = pawn.KindLabel + " " + num.ToString();
                 if (!NameUseChecker.NameSingleIsUsed(text))
                 {
                     break;
                 }
                 num++;
             }
             return(new NameSingle(text, true));
         }
         throw new InvalidOperationException();
     }
 }
Beispiel #4
0
        public static Faction NewGeneratedFaction(FactionDef facDef)
        {
            Faction faction = new Faction();

            faction.def               = facDef;
            faction.loadID            = Find.UniqueIDsManager.GetNextFactionID();
            faction.colorFromSpectrum = FactionGenerator.NewRandomColorFromSpectrum(faction);
            if (!facDef.isPlayer)
            {
                if (facDef.fixedName != null)
                {
                    faction.Name = facDef.fixedName;
                }
                else
                {
                    faction.Name = NameGenerator.GenerateName(facDef.factionNameMaker, from fac in Find.FactionManager.AllFactionsVisible
                                                              select fac.Name, false, null);
                }
            }
            faction.centralMelanin = Rand.Value;
            foreach (Faction current in Find.FactionManager.AllFactionsListForReading)
            {
                faction.TryMakeInitialRelationsWith(current);
            }
            if (!facDef.hidden && !facDef.isPlayer)
            {
                FactionBase factionBase = (FactionBase)WorldObjectMaker.MakeWorldObject(WorldObjectDefOf.FactionBase);
                factionBase.SetFaction(faction);
                factionBase.Tile = TileFinder.RandomFactionBaseTileFor(faction, false, null);
                factionBase.Name = FactionBaseNameGenerator.GenerateFactionBaseName(factionBase);
                Find.WorldObjects.Add(factionBase);
            }
            faction.GenerateNewLeader();
            return(faction);
        }
 public Dialog_NamePlayerFaction()
 {
     nameGenerator         = (() => NameGenerator.GenerateName(Faction.OfPlayer.def.factionNameMaker, (Predicate <string>)((Dialog_GiveName)this).IsValidName, appendNumberIfNameUsed: false, (string)null, (string)null));
     curName               = nameGenerator();
     nameMessageKey        = "NamePlayerFactionMessage";
     gainedNameMessageKey  = "PlayerFactionGainsName";
     invalidNameMessageKey = "PlayerFactionNameIsInvalid";
 }
 public Dialog_NamePlayerFaction()
 {
     this.nameGenerator         = (() => NameGenerator.GenerateName(Faction.OfPlayer.def.factionNameMaker, new Predicate <string>(this.IsValidName), false, null, null));
     this.curName               = this.nameGenerator();
     this.nameMessageKey        = "NamePlayerFactionMessage";
     this.gainedNameMessageKey  = "PlayerFactionGainsName";
     this.invalidNameMessageKey = "PlayerFactionNameIsInvalid";
 }
 public Dialog_NamePlayerFactionBase(FactionBase factionBase)
 {
     this.factionBase = factionBase;
     if (factionBase.HasMap && factionBase.Map.mapPawns.FreeColonistsSpawnedCount != 0)
     {
         this.suggestingPawn = factionBase.Map.mapPawns.FreeColonistsSpawned.RandomElement <Pawn>();
     }
     this.curName               = NameGenerator.GenerateName(Faction.OfPlayer.def.baseNameMakerPlayer, null, false, null);
     this.nameMessageKey        = "NamePlayerFactionBaseMessage";
     this.gainedNameMessageKey  = "PlayerFactionBaseGainsName";
     this.invalidNameMessageKey = "PlayerFactionBaseNameIsInvalid";
 }
 public Dialog_NamePlayerSettlement(Settlement settlement)
 {
     this.settlement = settlement;
     if (settlement.HasMap && settlement.Map.mapPawns.FreeColonistsSpawnedCount != 0)
     {
         suggestingPawn = settlement.Map.mapPawns.FreeColonistsSpawned.RandomElement();
     }
     nameGenerator         = () => NameGenerator.GenerateName(Faction.OfPlayer.def.settlementNameMaker, IsValidName);
     curName               = nameGenerator();
     nameMessageKey        = "NamePlayerFactionBaseMessage";
     gainedNameMessageKey  = "PlayerFactionBaseGainsName";
     invalidNameMessageKey = "PlayerFactionBaseNameIsInvalid";
 }
 public Dialog_NamePlayerSettlement(Settlement settlement)
 {
     this.settlement = settlement;
     if (settlement.HasMap && settlement.Map.mapPawns.FreeColonistsSpawnedCount != 0)
     {
         this.suggestingPawn = settlement.Map.mapPawns.FreeColonistsSpawned.RandomElement <Pawn>();
     }
     this.nameGenerator         = (() => NameGenerator.GenerateName(Faction.OfPlayer.def.settlementNameMaker, new Predicate <string>(this.IsValidName), false, null, null));
     this.curName               = this.nameGenerator();
     this.nameMessageKey        = "NamePlayerFactionBaseMessage";
     this.gainedNameMessageKey  = "PlayerFactionBaseGainsName";
     this.invalidNameMessageKey = "PlayerFactionBaseNameIsInvalid";
 }
        private static Name NameResolvedFrom(RulePackDef nameMaker, string forcedLastName)
        {
            NameTriple nameTriple = NameTriple.FromString(NameGenerator.GenerateName(nameMaker, delegate(string x)
            {
                NameTriple nameTriple2 = NameTriple.FromString(x);
                nameTriple2.ResolveMissingPieces(forcedLastName);
                return(!nameTriple2.UsedThisGame);
            }));

            nameTriple.CapitalizeNick();
            nameTriple.ResolveMissingPieces(forcedLastName);
            return(nameTriple);
        }
 public Dialog_NamePlayerSettlement(Settlement settlement)
 {
     this.settlement = settlement;
     if (settlement.HasMap && settlement.Map.mapPawns.FreeColonistsSpawnedCount != 0)
     {
         suggestingPawn = settlement.Map.mapPawns.FreeColonistsSpawned.RandomElement();
     }
     nameGenerator         = (() => NameGenerator.GenerateName(Faction.OfPlayer.def.settlementNameMaker, (Predicate <string>)((Dialog_GiveName)this).IsValidName, appendNumberIfNameUsed: false, (string)null, (string)null));
     curName               = nameGenerator();
     nameMessageKey        = "NamePlayerFactionBaseMessage";
     gainedNameMessageKey  = "PlayerFactionBaseGainsName";
     invalidNameMessageKey = "PlayerFactionBaseNameIsInvalid";
 }
        protected void AddFeature(List <int> members, List <int> tilesForTextDrawPosCalculation)
        {
            WorldFeature worldFeature = new WorldFeature();

            worldFeature.uniqueID = Find.UniqueIDsManager.GetNextWorldFeatureID();
            worldFeature.def      = def;
            worldFeature.name     = NameGenerator.GenerateName(def.nameMaker, Find.WorldFeatures.features.Select((WorldFeature x) => x.name), appendNumberIfNameUsed: false, "r_name");
            WorldGrid worldGrid = Find.WorldGrid;

            for (int i = 0; i < members.Count; i++)
            {
                worldGrid[members[i]].feature = worldFeature;
            }
            AssignBestDrawPos(worldFeature, tilesForTextDrawPosCalculation);
            Find.WorldFeatures.features.Add(worldFeature);
        }
Beispiel #13
0
        public TradeShip(TraderKindDef def)
        {
            this.def    = def;
            this.things = new ThingOwner <Thing>(this);
            TradeShip.tmpExtantNames.Clear();
            List <Map> maps = Find.Maps;

            for (int i = 0; i < maps.Count; i++)
            {
                TradeShip.tmpExtantNames.AddRange(from x in maps[i].passingShipManager.passingShips
                                                  select x.name);
            }
            this.name = NameGenerator.GenerateName(RulePackDefOf.NamerTraderGeneral, TradeShip.tmpExtantNames, false, null);
            this.randomPriceFactorSeed = Rand.RangeInclusive(1, 10000000);
            this.loadID = Find.UniqueIDsManager.GetNextPassingShipID();
        }
Beispiel #14
0
 public Dialog_NamePlayerFactionAndBase(FactionBase factionBase)
 {
     this.factionBase = factionBase;
     if (factionBase.HasMap && factionBase.Map.mapPawns.FreeColonistsSpawnedCount != 0)
     {
         base.suggestingPawn = factionBase.Map.mapPawns.FreeColonistsSpawned.RandomElement();
     }
     base.curName                     = NameGenerator.GenerateName(Faction.OfPlayer.def.factionNameMakerPlayer, (Predicate <string>)null, false, (string)null);
     base.nameMessageKey              = "NamePlayerFactionMessage";
     base.invalidNameMessageKey       = "PlayerFactionNameIsInvalid";
     base.useSecondName               = true;
     base.curSecondName               = NameGenerator.GenerateName(Faction.OfPlayer.def.baseNameMakerPlayer, (Predicate <string>)null, false, (string)null);
     base.secondNameMessageKey        = "NamePlayerFactionBaseMessage_NameFactionContinuation";
     base.invalidSecondNameMessageKey = "PlayerFactionBaseNameIsInvalid";
     base.gainedNameMessageKey        = "PlayerFactionAndBaseGainsName";
 }
Beispiel #15
0
        public static Faction NewGeneratedFaction(FactionDef facDef)
        {
            Faction faction = new Faction();

            faction.def               = facDef;
            faction.loadID            = Find.UniqueIDsManager.GetNextFactionID();
            faction.colorFromSpectrum = NewRandomColorFromSpectrum(faction);
            if (!facDef.isPlayer)
            {
                if (facDef.fixedName != null)
                {
                    faction.Name = facDef.fixedName;
                }
                else
                {
                    string text = "";
                    for (int i = 0; i < 10; i++)
                    {
                        string text2 = NameGenerator.GenerateName(facDef.factionNameMaker, Find.FactionManager.AllFactionsVisible.Select((Faction fac) => fac.Name));
                        if (text2.Length <= 20)
                        {
                            text = text2;
                        }
                    }
                    if (text.NullOrEmpty())
                    {
                        text = NameGenerator.GenerateName(facDef.factionNameMaker, Find.FactionManager.AllFactionsVisible.Select((Faction fac) => fac.Name));
                    }
                    faction.Name = text;
                }
            }
            faction.centralMelanin = Rand.Value;
            foreach (Faction item in Find.FactionManager.AllFactionsListForReading)
            {
                faction.TryMakeInitialRelationsWith(item);
            }
            if (!faction.Hidden && !facDef.isPlayer)
            {
                Settlement settlement = (Settlement)WorldObjectMaker.MakeWorldObject(WorldObjectDefOf.Settlement);
                settlement.SetFaction(faction);
                settlement.Tile = TileFinder.RandomSettlementTileFor(faction);
                settlement.Name = SettlementNameGenerator.GenerateSettlementName(settlement);
                Find.WorldObjects.Add(settlement);
            }
            faction.TryGenerateNewLeader();
            return(faction);
        }
Beispiel #16
0
        protected void AddFeature(List <int> members, List <int> tilesForTextDrawPosCalculation)
        {
            WorldFeature worldFeature = new WorldFeature();

            worldFeature.uniqueID = Find.UniqueIDsManager.GetNextWorldFeatureID();
            worldFeature.def      = this.def;
            worldFeature.name     = NameGenerator.GenerateName(this.def.nameMaker, from x in Find.WorldFeatures.features
                                                               select x.name, false, "r_name");
            WorldGrid worldGrid = Find.WorldGrid;

            for (int i = 0; i < members.Count; i++)
            {
                worldGrid[members[i]].feature = worldFeature;
            }
            this.AssignBestDrawPos(worldFeature, tilesForTextDrawPosCalculation);
            Find.WorldFeatures.features.Add(worldFeature);
        }
Beispiel #17
0
        public TradeShip(TraderKindDef def, Faction faction = null)
            : base(faction)
        {
            this.def = def;
            things   = new ThingOwner <Thing>(this);
            tmpExtantNames.Clear();
            List <Map> maps = Find.Maps;

            for (int i = 0; i < maps.Count; i++)
            {
                tmpExtantNames.AddRange(maps[i].passingShipManager.passingShips.Select((PassingShip x) => x.name));
            }
            name = NameGenerator.GenerateName(RulePackDefOf.NamerTraderGeneral, tmpExtantNames);
            if (faction != null)
            {
                name = string.Format("{0} {1} {2}", name, "OfLower".Translate(), faction.Name);
            }
            randomPriceFactorSeed = Rand.RangeInclusive(1, 10000000);
            loadID = Find.UniqueIDsManager.GetNextPassingShipID();
        }
Beispiel #18
0
        public static Scenario GenerateNewRandomScenario(string seed)
        {
            Rand.PushState();
            Rand.Seed = seed.GetHashCode();
            int @int = Rand.Int;

            int[] array = new int[10];
            for (int i = 0; i < array.Length; i++)
            {
                array[i] = Rand.Int;
            }
            int int2 = Rand.Int;

            ScenarioMaker.scen             = new Scenario();
            ScenarioMaker.scen.Category    = ScenarioCategory.CustomLocal;
            ScenarioMaker.scen.name        = NameGenerator.GenerateName(RulePackDefOf.NamerScenario, null, false, null);
            ScenarioMaker.scen.description = null;
            ScenarioMaker.scen.summary     = null;
            Rand.Seed = @int;
            ScenarioMaker.scen.playerFaction = (ScenPart_PlayerFaction)ScenarioMaker.MakeScenPart(ScenPartDefOf.PlayerFaction);
            ScenarioMaker.scen.parts.Add(ScenarioMaker.MakeScenPart(ScenPartDefOf.ConfigPage_ConfigureStartingPawns));
            ScenarioMaker.scen.parts.Add(ScenarioMaker.MakeScenPart(ScenPartDefOf.PlayerPawnsArriveMethod));
            Rand.Seed = array[0];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.PlayerPawnFilter, Rand.RangeInclusive(-1, 2));
            Rand.Seed = array[1];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.StartingImportant, Rand.RangeInclusive(0, 2));
            Rand.Seed = array[2];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.PlayerPawnModifier, Rand.RangeInclusive(-1, 2));
            Rand.Seed = array[3];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.Rule, Rand.RangeInclusive(-2, 3));
            Rand.Seed = array[4];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.StartingItem, Rand.RangeInclusive(0, 6));
            Rand.Seed = array[5];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.WorldThing, Rand.RangeInclusive(-3, 6));
            Rand.Seed = array[6];
            ScenarioMaker.AddCategoryScenParts(ScenarioMaker.scen, ScenPartCategory.GameCondition, Rand.RangeInclusive(-1, 2));
            Rand.Seed = int2;
            foreach (ScenPart current in ScenarioMaker.scen.AllParts)
            {
                current.Randomize();
            }
            for (int j = 0; j < ScenarioMaker.scen.parts.Count; j++)
            {
                for (int k = 0; k < ScenarioMaker.scen.parts.Count; k++)
                {
                    if (j != k)
                    {
                        if (ScenarioMaker.scen.parts[j].TryMerge(ScenarioMaker.scen.parts[k]))
                        {
                            ScenarioMaker.scen.parts.RemoveAt(k);
                            k--;
                            if (j > k)
                            {
                                j--;
                            }
                        }
                    }
                }
            }
            for (int l = 0; l < ScenarioMaker.scen.parts.Count; l++)
            {
                for (int m = 0; m < ScenarioMaker.scen.parts.Count; m++)
                {
                    if (l != m)
                    {
                        if (!ScenarioMaker.scen.parts[l].CanCoexistWith(ScenarioMaker.scen.parts[m]))
                        {
                            ScenarioMaker.scen.parts.RemoveAt(m);
                            m--;
                            if (l > m)
                            {
                                l--;
                            }
                        }
                    }
                }
            }
            foreach (string current2 in ScenarioMaker.scen.ConfigErrors())
            {
                Log.Error(current2);
            }
            Rand.PopState();
            Scenario result = ScenarioMaker.scen;

            ScenarioMaker.scen = null;
            return(result);
        }
        public static Name GeneratePawnName(Pawn pawn, NameStyle style = NameStyle.Full, string forcedLastName = null)
        {
            switch (style)
            {
            case NameStyle.Full:
            {
                if (pawn.story != null)
                {
                    if (pawn.story.childhood != null && pawn.story.childhood.NameMaker != null)
                    {
                        return(NameResolvedFrom(pawn.story.childhood.NameMaker, forcedLastName));
                    }
                    if (pawn.story.adulthood != null && pawn.story.adulthood.NameMaker != null)
                    {
                        return(NameResolvedFrom(pawn.story.adulthood.NameMaker, forcedLastName));
                    }
                }
                RulePackDef nameGenerator = pawn.RaceProps.GetNameGenerator(pawn.gender);
                if (nameGenerator != null)
                {
                    return(new NameSingle(NameGenerator.GenerateName(nameGenerator, (string x) => !new NameSingle(x).UsedThisGame)));
                }
                if (pawn.Faction != null)
                {
                    RulePackDef nameMaker = pawn.Faction.def.GetNameMaker(pawn.gender);
                    if (nameMaker != null)
                    {
                        return(NameResolvedFrom(nameMaker, forcedLastName));
                    }
                }
                if (pawn.RaceProps.nameCategory != 0)
                {
                    if (Rand.Value < 0.5f)
                    {
                        NameTriple nameTriple = TryGetRandomUnusedSolidName(pawn.gender, forcedLastName);
                        if (nameTriple != null)
                        {
                            return(nameTriple);
                        }
                    }
                    return(GeneratePawnName_Shuffled(pawn, forcedLastName));
                }
                Log.Error("No name making method for " + pawn);
                NameTriple nameTriple2 = NameTriple.FromString(pawn.def.label);
                nameTriple2.ResolveMissingPieces();
                return(nameTriple2);
            }

            case NameStyle.Numeric:
                try
                {
                    foreach (Pawn item in PawnsFinder.AllMapsWorldAndTemporary_AliveOrDead)
                    {
                        NameSingle nameSingle = item.Name as NameSingle;
                        if (nameSingle != null)
                        {
                            usedNamesTmp.Add(nameSingle.Name);
                        }
                    }
                    int    num = 1;
                    string text;
                    while (true)
                    {
                        text = $"{pawn.KindLabel} {num.ToString()}";
                        if (!usedNamesTmp.Contains(text))
                        {
                            break;
                        }
                        num++;
                    }
                    return(new NameSingle(text, numerical: true));
                }
                finally
                {
                    usedNamesTmp.Clear();
                }

            default:
                throw new InvalidOperationException();
            }
        }
 private string <Dialog_NamePlayerSettlement> m__0()
 {
     return(NameGenerator.GenerateName(Faction.OfPlayer.def.settlementNameMaker, new Predicate <string>(this.IsValidName), false, null, null));
 }
Beispiel #21
0
 public static void GenerateBackCompatibilityNameFor(Quest quest)
 {
     quest.name = NameGenerator.GenerateName(RulePackDefOf.NamerQuestDefault, Find.QuestManager.QuestsListForReading.Select((Quest x) => x.name), appendNumberIfNameUsed: false, "defaultQuestName");
 }
Beispiel #22
0
 public static string GenerateName(RulePackDef rootPack, IEnumerable <string> extantNames, bool appendNumberIfNameUsed = false, string rootKeyword = null)
 {
     return(NameGenerator.GenerateName(rootPack, (string x) => !extantNames.Contains(x), appendNumberIfNameUsed, rootKeyword));
 }