예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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);
            }
        }