コード例 #1
0
        public static void SpawnAirStrike(Map map, IntVec3 targetPosition, AirStrikeDef StrikeDef, Thing instigator = null, ThingDef weaponDef = null, bool warnFail = false)
        {
            AirStrikeIncoming flyingSpaceshipAirStrike = ThingMaker.MakeThing(OrdnanceUtility.AirStrike, null) as AirStrikeIncoming;

            GenSpawn.Spawn(flyingSpaceshipAirStrike, targetPosition, map, WipeMode.Vanish);
            flyingSpaceshipAirStrike.InitializeAirStrikeData(targetPosition, StrikeDef);
        }
コード例 #2
0
        public static void StartTargeting(Def def, Map map = null)
        {
            TargetingParameters targetingParameters = new TargetingParameters();

            targetingParameters.canTargetLocations = true;
            targetingParameters.canTargetSelf      = true;
            targetingParameters.canTargetFires     = true;
            targetingParameters.canTargetItems     = true;
            AirStrikeDef       airStrike       = def as AirStrikeDef;
            ArtilleryStrikeDef artilleryStrike = def as ArtilleryStrikeDef;
            OrbitalStrikeDef   orbitalStrike   = def as OrbitalStrikeDef;

            if (airStrike != null)
            {
                Find.Targeter.BeginTargeting(targetingParameters, delegate(LocalTargetInfo x)
                {
                    SpawnAirStrike(map, x.Cell, airStrike);
                }, null, delegate
                {
                    if (map != null && Find.Maps.Contains(map))
                    {
                        Current.Game.CurrentMap = map;
                    }
                }, CompLaunchable.TargeterMouseAttachment);
            }
            else
            if (artilleryStrike != null)
            {
                Find.Targeter.BeginTargeting(targetingParameters, delegate(LocalTargetInfo x)
                {
                    SpawnArtilleryStrike(map, x.Cell, artilleryStrike);
                }, null, delegate
                {
                    if (map != null && Find.Maps.Contains(map))
                    {
                        Current.Game.CurrentMap = map;
                    }
                }, CompLaunchable.TargeterMouseAttachment);
            }
            else
            if (orbitalStrike != null)
            {
                Find.Targeter.BeginTargeting(targetingParameters, delegate(LocalTargetInfo x)
                {
                    SpawnOrbitalStrike(map, x.Cell, orbitalStrike);
                }, null, delegate
                {
                    if (map != null && Find.Maps.Contains(map))
                    {
                        Current.Game.CurrentMap = map;
                    }
                }, CompLaunchable.TargeterMouseAttachment);
            }
        }
コード例 #3
0
        private static void CallAirstrikeOf()
        {
            List <FloatMenuOption> list = new List <FloatMenuOption>();
            IntVec3 cell = UI.MouseCell();

            foreach (AirStrikeDef StrikeDef in DefDatabase <AirStrikeDef> .AllDefs)
            {
                AirStrikeDef localStrike = StrikeDef;
                list.Add(new FloatMenuOption(localStrike.LabelCap + " - ", delegate()
                {
                    OrdnanceUtility.SpawnAirStrike(Find.CurrentMap, cell, localStrike);
                }, MenuOptionPriority.Default, null, null, 0f, null, null));
            }
            Find.WindowStack.Add(new FloatMenu(list));
        }