public override void Arrived(int tile)
 {
     LongEventHandler.QueueLongEvent(delegate()
     {
         Map map            = GetOrGenerateMapUtility.GetOrGenerateMap(tile, null);      //MAP INDEX BUG
         TaggedString label = "LetterLabelCaravanEnteredEnemyBase".Translate();
         TaggedString text  = "LetterTransportPodsLandedInEnemyBase".Translate(parent.Label).CapitalizeFirst();
         if (parent is Settlement settlement)
         {
             SettlementUtility.AffectRelationsOnAttacked(settlement, ref text);
         }
         if (!parent.HasMap)
         {
             Find.TickManager.Notify_GeneratedPotentiallyHostileMap();
             PawnRelationUtility.Notify_PawnsSeenByPlayer_Letter(map.mapPawns.AllPawns, ref label, ref text, "LetterRelatedPawnsInMapWherePlayerLanded".Translate(Faction.OfPlayer.def.pawnsPlural), true, true);
         }
         AerialVehicleInFlight aerialVehicle = vehicle.GetAerialVehicle();
         CameraJumper.TryJump(map.Center, map);
         StrafeTargeter.Instance.BeginTargeting(vehicle, vehicle.CompVehicleLauncher.launchProtocol, delegate(IntVec3 start, IntVec3 end)
         {
             VehicleSkyfaller_FlyOver skyfaller = VehicleSkyfallerMaker.MakeSkyfallerFlyOver(vehicle.CompVehicleLauncher.Props.skyfallerStrafing, vehicle, start, end);
             skyfaller.aerialVehicle            = aerialVehicle;
             Thing thing = GenSpawn.Spawn(skyfaller, start, parent.Map, Rot8.North);                     //REDO - Other rotations?
         }, null, null, null, true);
         aerialVehicle.Destroy();
     }, "GeneratingMap", false, null, true);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Generate VehicleSkyfaller_FlyOver with preassigned <paramref name="vehicle"/> from <paramref name="start"/> to <paramref name="end"/>
 /// </summary>
 /// <param name="def"></param>
 /// <param name="vehicle"></param>
 /// <param name="start"></param>
 /// <param name="end"></param>
 /// <returns></returns>
 public static VehicleSkyfaller_FlyOver MakeSkyfallerFlyOver(ThingDef def, VehiclePawn vehicle, IntVec3 start, IntVec3 end)
 {
     try
     {
         VehicleSkyfaller_FlyOver skyfaller = (VehicleSkyfaller_FlyOver)MakeSkyfaller(def, vehicle);
         skyfaller.start = start;
         skyfaller.end   = end;
         skyfaller.angle = start.AngleToPoint(end);
         return(skyfaller);
     }
     catch (Exception ex)
     {
         Log.Error($"Unable to generate VehicleSkyfaller of type <type>{def.thingClass}</type>. Exception=\"{ex.Message}\"");
     }
     return(null);
 }