Exemple #1
0
        public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
        {
            base.Apply(target, dest);
            Pawn caster = parent.pawn;
            Map  map    = caster.Map;

            IntVec3 loc = getPushDestination(caster.TrueCenter(), target.Pawn.TrueCenter(), caster.Map);

            ThingMover mover = ThingMover.MakeMover(CultsDefOf.Cults_BlastThing, target.Pawn, loc);

            if (mover != null)
            {
                GenSpawn.Spawn(mover, loc, map);
            }
        }
        public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
        {
            base.Apply(target, dest);
            Pawn    caster = parent.pawn;
            IntVec3 cell   = target.Cell;
            Map     map    = caster.Map;
            // PawnFlyer pawnFlyer = PawnFlyer.MakeFlyer(CultsDefOf.Cults_AbnormalShift, caster, cell);
            // if (pawnFlyer != null)
            // {
            //  GenSpawn.Spawn(pawnFlyer, cell, map);
            // }
            ThingMover pawnFlyer = ThingMover.MakeMover(CultsDefOf.Cults_AbnormalShift, caster, cell);

            if (pawnFlyer != null)
            {
                GenSpawn.Spawn(pawnFlyer, cell, map);
            }
        }
Exemple #3
0
        public static ThingMover MakeMover(ThingDef def, Thing thing, IntVec3 destCell)
        {
            ThingMover thingMover = (ThingMover)ThingMaker.MakeThing(def);

            thingMover.startVec    = thing.TrueCenter();
            thingMover.distance    = thing.Position.DistanceTo(destCell);
            thingMover.wasSelected = Find.Selector.IsSelected(thing);
            thingMover.wasDrafted  = thing is Pawn ? ((Pawn)thing).Drafted : false;

            Find.Selector.ShelveSelected(thing);
            thing.DeSpawn();
            if (!thingMover.innerContainer.TryAdd(thing))
            {
                Log.Error("Thing add error: " + thing.Label);
                thing.Destroy();
            }

            return(thingMover);
        }