Exemple #1
0
        public Person(Society soc, House assignedHouse = null)
        {
            this.society = soc;
            index        = World.staticMap.personIndexCount;
            World.staticMap.personIndexCount += 1;
            World.staticMap.persons.Add(this);//I can't believe this awful structure is required, but it is, for serializing. Not allowed references to others
            firstName = TextStore.getName(isMale);
            madness   = new Insanity_Sane();

            maxSanity = Eleven.random.Next(map.param.insanity_maxSanity);
            sanity    = maxSanity;

            if (World.logging)
            {
                log = new LogBox(this);
            }

            //politics_militarism = Math.Pow(Eleven.random.NextDouble(), 2);//Bias towards 0
            ////Chance of pacifism
            //if (Eleven.random.NextDouble() < 0.33) {
            //    politics_militarism *= -1;
            //}


            if (assignedHouse == null)
            {
                assignedHouse = society.houses[Eleven.random.Next(society.houses.Count)];
            }
            house = assignedHouse;
            if (house != null)
            {
                culture = house.culture;
            }

            if (culture == null)
            {
                culture = map.sampleCulture(soc);
            }

            //Add permanent threats
            threat_agents      = new ThreatItem(map, this);
            threat_agents.form = ThreatItem.formTypes.AGENTS;
            threatEvaluations.Add(threat_agents);

            threat_enshadowedNobles      = new ThreatItem(map, this);
            threat_enshadowedNobles.form = ThreatItem.formTypes.ENSHADOWED_NOBLES;
            threatEvaluations.Add(threat_enshadowedNobles);

            threat_plague      = new ThreatItem(map, this);
            threat_plague.form = ThreatItem.formTypes.PLAGUE;
            threatEvaluations.Add(threat_plague);

            if (!map.simplified)
            {
                traits.Add(map.globalist.getTrait_Political(this));

                for (int i = 0; i < 2; i++)
                {
                    Trait add = map.globalist.getTrait(this);
                    if (add == null)
                    {
                        break;
                    }
                    traits.Add(add);

                    if (Eleven.random.Next(2) == 0)
                    {
                        break;
                    }                                         //50% chance to add another trait
                }
            }

            if (World.advancedEdition && culture != null)
            {
                assignCulture();
            }
        }