Exemple #1
0
        private void trainPawnDone(String def)
        {
            PawnGenerationRequest request = new PawnGenerationRequest(DefDatabase <PawnKindDef> .GetNamed(def, true), Faction.OfPlayer, PawnGenerationContext.NonPlayer, -1, false, false, false, false, true, true, 1f, false, true, true, false, false, false, false, null, null, null, null, null, null, null);
            Pawn item            = PawnGenerator.GeneratePawn(request);
            Pawn_StoryTracker ps = item.story;

            ps.childhood        = null;
            ps.adulthood        = null;
            ps.traits.allTraits = new List <Trait>();
            ps.traits.GainTrait(new Trait(DefDatabase <TraitDef> .GetNamed("ra2_MakeSoldier", true)));
            ps.traits.GainTrait(new Trait(TraitDefOf.Psychopath));


            Pawn_WorkSettings pws = item.workSettings;

            pws.DisableAll();
            Pawn_PlayerSettings pps = item.playerSettings;

            pps.hostilityResponse = HostilityResponseMode.Attack;

            NameTriple triple = NameTriple.FromString(item.kindDef.label.Replace(" ", ""));

            item.Name = triple;
            item.inventory.DestroyAll();


            YuriSoldierMakeUp.tryMakeUp(item);



            SoundStarter.PlayOneShotOnCamera(DefDatabase <SoundDef> .GetNamed(this.parent.def.defName + "_UnitReady", true));


            IntVec3 loc = CellFinder.RandomClosewalkCellNear(this.parent.Position, this.parent.Map, 3, null);

            Pawn pp;

            if (this.trainPawns[0] != "ra2_AlliedTanya")
            {
                pp = (Pawn)(GenSpawn.Spawn(item, loc, this.parent.Map, WipeMode.Vanish));
            }
            else
            {
                // bool flag = true;
                if (getAllTanya().Count > 0)
                {
                    foreach (Pawn tanya in getAllTanya())
                    {
                        tanya.Destroy(DestroyMode.Vanish);
                    }
                }
                pp = (Pawn)(GenSpawn.Spawn(getTanya(), loc, this.parent.Map, WipeMode.Vanish));
            }


            this.trainPawns.Remove(this.trainPawns[0]);
            this.ticks = 0;
        }
Exemple #2
0
        private Pawn getTanya()
        {
            PawnGenerationRequest request = new PawnGenerationRequest(DefDatabase <PawnKindDef> .GetNamed("ra2_AlliedTanya", true), Faction.OfPlayer, PawnGenerationContext.NonPlayer, -1, false, false, false, false, true, true, 1f, false, true, true, false, false, false, false, null, null, null, null, null, Gender.Female, null, null);
            Pawn item = PawnGenerator.GeneratePawn(request);

            Pawn_StoryTracker ps   = item.story;
            HairDef           hair = DefDatabase <HairDef> .GetNamed("Curly");

            ps.childhood        = null;
            ps.adulthood        = null;
            ps.traits.allTraits = new List <Trait>();
            ps.traits.GainTrait(new Trait(DefDatabase <TraitDef> .GetNamed("ra2_MakeSoldier", true)));
            ps.traits.GainTrait(new Trait(TraitDefOf.Psychopath));
            Pawn_WorkSettings pws = item.workSettings;

            pws.DisableAll();

            NameTriple triple = NameTriple.FromString(item.kindDef.label);

            triple.ResolveMissingPieces("Adams".Translate());
            item.Name = triple;

            Pawn_SkillTracker skt = item.skills;

            foreach (SkillRecord sr in skt.skills)
            {
                sr.Level = 20;
            }

            item.inventory.DestroyAll();
            ps.bodyType  = BodyTypeDefOf.Female;
            ps.hairDef   = hair;
            ps.hairColor = new UnityEngine.Color(1, 0.8f, 0);

            //st.SkinColor = new UnityEngine.Color(0.98f,0.76f,0.71f);
            ps.melanin = 0f;


            Pawn_EquipmentTracker pe = item.equipment;

            pe.Remove(pe.Primary);
            pe.AddEquipment((ThingWithComps)ThingMaker.MakeThing(DefDatabase <ThingDef> .GetNamed("ra2_Gun_Tanya", true)));


            //item.story = st;
            return(item);
        }
        private void InitWork()
        {
            // Caching stuff
            if (Obedience == null)
            {
                Obedience = DefDatabase <TrainableDef> .GetNamed("Obedience");
            }
            if (Release == null)
            {
                Release = DefDatabase <TrainableDef> .GetNamed("Release");
            }
            if (Haul == null)
            {
                Haul = DefDatabase <TrainableDef> .GetNamed("Haul");
            }

            if (BasicWorker == null)
            {
                BasicWorker = DefDatabase <WorkTypeDef> .GetNamed("BasicWorker");
            }
            if (Cleaning == null)
            {
                Cleaning = DefDatabase <WorkTypeDef> .GetNamed("Cleaning");
            }
            if (Hauling == null)
            {
                Hauling = DefDatabase <WorkTypeDef> .GetNamed("Hauling");
            }

            if (IsFormerHuman())
            {
                return;
            }

            if (skills == null)
            {
                skills = new Pawn_SkillTracker(this);
                foreach (SkillRecord skill in skills.skills) // to make skills neutral for price factor
                {
                    skill.Level = 6;
                }
            }

            if (story == null)
            {
                story = new Pawn_StoryTracker(this) // necessary for job giver to work properly, but adds a bunch of problems since only humanlikes are supposed to have it
                {
                    bodyType  = BodyTypeDefOf.Thin,
                    crownType = CrownType.Average,
                    //childhood = xxx,
                    //adulthood = xxx
                };
            }

            if (workSettings == null)
            {
                workSettings = new Pawn_WorkSettings(this);
                workSettings.EnableAndInitialize();
                workSettings.DisableAll();
            }
        }