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; }
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(); } }