private void DoRangedAttack(LocalTargetInfo target) { bool flag = target.Cell != default(IntVec3); if (flag) { SoundInfo info = SoundInfo.InMap(new TargetInfo(this.Pawn.Position, this.Pawn.Map, false), MaintenanceType.None); info.pitchFactor = .7f; info.volumeFactor = 2f; TorannMagicDefOf.TM_AirWoosh.PlayOneShot(info); CellRect cellRect = CellRect.CenteredOn(target.Cell, 4); cellRect.ClipInsideMap(this.Pawn.Map); IntVec3 destination = cellRect.RandomCell; if (destination != null) { Thing launchedThing = new Thing() { def = TorannMagicDefOf.FlyingObject_DeathBolt }; Pawn casterPawn = this.Pawn; //LongEventHandler.QueueLongEvent(delegate //{ FlyingObject_DeathBolt flyingObject = (FlyingObject_DeathBolt)GenSpawn.Spawn(TorannMagicDefOf.FlyingObject_DeathBolt, this.Pawn.Position, this.Pawn.Map); flyingObject.Launch(this.Pawn, destination, launchedThing); //}, "LaunchingFlyer", false, null); } } }
public virtual void Effect() { LocalTargetInfo t = this.TargetsAoE[0]; bool flag = t.Cell != default(IntVec3); if (flag) { Thing launchedThing = new Thing(); launchedThing.def = TorannMagicDefOf.FlyingObject_DeathBolt; Pawn casterPawn = base.CasterPawn; LongEventHandler.QueueLongEvent(delegate { FlyingObject_DeathBolt flyingObject = (FlyingObject_DeathBolt)GenSpawn.Spawn(ThingDef.Named("FlyingObject_DeathBolt"), this.CasterPawn.Position, this.CasterPawn.Map); flyingObject.Launch(this.CasterPawn, t.Cell, launchedThing); }, "LaunchingFlyer", false, null); } }