Example #1
0
        private void MakeMergedPawn([NotNull] SapienceTracker sTracker)
        {
            if (sTracker.CurrentState != null)
            {
                return;
            }

            (Pawn p1, Pawn p2) = FormerHumanUtilities.GenerateRandomUnmergedHuman(sTracker.Pawn);

            CleanupPawn(p1);
            CleanupPawn(p2);
            Pawn[] tmpArr = { p1, p2 };
            MergedPawnUtilities.TransferToMergedPawn(tmpArr, sTracker.Pawn);

            var tfPawn = new MergedPawns()
            {
                meld      = sTracker.Pawn,
                originals = new List <Pawn> {
                    p1, p2
                }
            };

            var gComp = Find.World.GetComponent <PawnmorphGameComp>();

            gComp.AddTransformedPawn(tfPawn);

            //TODO figure out how relationships work for merged pawns

            sTracker.EnterState(SapienceStateDefOf.MergedPawn, Rand.Range(0.2f, 1));
        }