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