public AerialVehicleArrivalAction_LandSpecificCell(VehiclePawn vehicle, MapParent mapParent, int tile, LaunchProtocol launchProtocol, IntVec3 landingCell, Rot4 landingRot) : base(vehicle, mapParent, tile, launchProtocol) { this.tile = tile; this.mapParent = mapParent; this.launchProtocol = launchProtocol; this.landingCell = landingCell; this.landingRot = landingRot; }
public override FloatMenuAcceptanceReport CanVisit(Caravan caravan, MapParent mapParent) { if (mapParent == null || !mapParent.Spawned) { return(false); } return(true); }
public static void Postfix(MapParent __instance, ref MapGeneratorDef __result) { if (Find.World.worldObjects.AllWorldObjects.Find(o => o.Tile == __instance.Tile && o.def.HasModExtension <CustomGenOption>()) is WorldObject worldObject) { KLog.Message($"Generating worldObject {worldObject.LabelCap}"); __result = DefDatabase <MapGeneratorDef> .GetNamed("KCSG_WorldObject_Gen"); } }
public bool ChoseWorldTarget(GlobalTargetInfo target) { if (!target.IsValid) { Messages.Message("SWeaponTargetInvalid".Translate(), MessageTypeDefOf.RejectInput, true); return(false); } /* * int num = Find.WorldGrid.TraversalDistanceBetween(base.Map.Tile, target.Tile, true, int.MaxValue); * if (this.MaxLaunchDistance < 200 && num > this.MaxLaunchDistance) * { * Messages.Message("MissileRangeBad".Translate(), MessageTypeDefOf.RejectInput, true); * return false; * } */ MapParent mapParent = target.WorldObject as MapParent; if (mapParent != null && mapParent.HasMap) { Map map = mapParent.Map; Current.Game.CurrentMap = map; Targeter targeter = Find.Targeter; Action actionWhenFinished = delegate { if (Find.Maps.Contains(base.Map)) { Current.Game.CurrentMap = base.Map; } }; /* * int range = 0; * switch (getType()) { * case SuperWeaponType.Soviet:range = 56;break; * case SuperWeaponType.Allied: range = 30; break; * default:range=10;break; * } */ Texture2D ic = ContentFinder <Texture2D> .Get("ra2/World/ra2_SuperWeaponIcon_" + getType()); TargetingParameters tg = new TargetingParameters(); tg.canTargetLocations = true; tg.canTargetItems = true; tg.canTargetBuildings = true; tg.canTargetPawns = true; tg.canTargetFires = true; targeter.BeginTargeting(tg, delegate(LocalTargetInfo x) { //GenDraw.DrawRadiusRing(UI.MouseCell(), range); this.TryLaunch(x.ToGlobalTargetInfo(map)); }, null, actionWhenFinished, ic); return(true); } this.TryLaunch(target); return(true); }
public override FloatMenuAcceptanceReport CanVisit(Caravan caravan, MapParent mapParent) { if (Quest.AttackFail) { return(FloatMenuAcceptanceReport.WithFailReason("CaravanArrivalAction_EnterToRebelMap_AlreadyStart".Translate())); } return(base.CanVisit(caravan, mapParent)); }
public override void AssignDebugData() { base.AssignDebugData(); inSignal = "DebugSignal" + Rand.Int; if (Find.AnyPlayerHomeMap != null) { mapParent = Find.RandomPlayerHomeMap.Parent; } }
private void StartChoosingDestination() { CameraJumper.TryJump(CameraJumper.GetWorldTarget(this.parent)); Find.WorldSelector.ClearSelection(); int tile = this.parent.Map.Tile; this.carr = null; Find.WorldTargeter.BeginTargeting(new Func <GlobalTargetInfo, bool>(this.ChoseWorldTarget), true, CompLaunchableHelicopter.TargeterMouseAttachment, true, delegate { GenDraw.DrawWorldRadiusRing(tile, this.MaxLaunchDistance); }, delegate(GlobalTargetInfo target) { if (!target.IsValid) { return(null); } int num = Find.WorldGrid.TraversalDistanceBetween(tile, target.Tile, true, int.MaxValue); if (num > this.MaxLaunchDistance) { GUI.color = Color.red; if (num > this.MaxLaunchDistanceEverPossible) { return("TransportPodDestinationBeyondMaximumRange".Translate()); } return("TransportPodNotEnoughFuel".Translate()); } else { IEnumerable <FloatMenuOption> transportPodsFloatMenuOptionsAt = this.GetTransportPodsFloatMenuOptionsAt(target.Tile); if (!transportPodsFloatMenuOptionsAt.Any <FloatMenuOption>()) { if (Find.WorldGrid[target.Tile].biome.impassable || Find.World.Impassable(target.Tile)) { return("MessageTransportPodsDestinationIsInvalid".Translate()); } return(string.Empty); } if (transportPodsFloatMenuOptionsAt.Count <FloatMenuOption>() == 1) { if (transportPodsFloatMenuOptionsAt.First <FloatMenuOption>().Disabled) { GUI.color = Color.red; } return(transportPodsFloatMenuOptionsAt.First <FloatMenuOption>().Label); } MapParent mapParent = target.WorldObject as MapParent; if (mapParent != null) { return("ClickToSeeAvailableOrders_WorldObject".Translate(new object[] { mapParent.LabelCap })); } return("ClickToSeeAvailableOrders_Empty".Translate()); } }); }
static bool GizmoReformCaravan(MapParent ___mapParent) { if (Multiplayer.Client == null) { return(true); } GizmoFormCaravan(___mapParent.Map, true); return(false); }
public void ResolveZeroLevel() { if (zeroLevelMap != null && zeroLevel == null) { zeroLevel = zeroLevelMap.Parent; layersState.Add(0, zeroLevel as MapParent_ZLevel); layersState[0].SetZ(0); } }
private static void GenerateMap() { MapParent mapParent = (MapParent)WorldObjectMaker.MakeWorldObject(WorldObjectDefOf.Settlement); mapParent.Tile = TileFinder.RandomStartingTile(); mapParent.SetFaction(Faction.OfPlayer); Find.WorldObjects.Add(mapParent); GetOrGenerateMapUtility.GetOrGenerateMap(mapParent.Tile, new IntVec3(50, 1, 50), null); }
public bool HasZLevelsBelow(int tile, MapParent mapParent) { if (mapIDs.ContainsKey(mapParent.Map)) { var series = mapIDs[mapParent.Map]; return(tilesWithZLevels[series].HasZLevelBelow(mapParent)); } return(false); }
public SRTSArrivalActionBombRun(MapParent mapParent, Pair <IntVec3, IntVec3> targetCells, IEnumerable <IntVec3> bombCells, BombingType bombType, Map originalMap, IntVec3 originalLandingSpot) { this.mapParent = mapParent; this.targetCellA = targetCells.First; this.targetCellB = targetCells.Second; this.bombCells = bombCells.ToList(); this.originalMap = originalMap; this.originalLandingSpot = originalLandingSpot; this.bombType = bombType; }
public override void AssignDebugData() { base.AssignDebugData(); inSignal = "DebugSignal" + Rand.Int; if (Find.AnyPlayerHomeMap != null) { gameCondition = GameConditionMaker.MakeCondition(GameConditionDefOf.ColdSnap, Rand.RangeInclusive(2500, 7500)); mapParent = Find.RandomPlayerHomeMap.Parent; } }
public virtual FloatMenuAcceptanceReport CanVisit(Caravan caravan, MapParent mapParent) { if (mapParent == null || !mapParent.Spawned) { GoBackToHome(caravan); return(false); } return(true); }
public override void AssignDebugData() { base.AssignDebugData(); inSignal = "DebugSignal" + Rand.Int; if (Find.AnyPlayerHomeMap != null) { mapParent = Find.RandomPlayerHomeMap.Parent; pointsRange = new FloatRange(500f, 1500f); } }
public override bool CanApplyOn(GlobalTargetInfo target) { MapParent mapParent = target.WorldObject as MapParent; if (mapParent != null && mapParent.Map != null && AlliedPawnOnMap(mapParent.Map) == null) { return(false); } return(base.CanApplyOn(target)); }
public Map GetBelowMap(MapParent mapParent) { if (mapIDs.ContainsKey(mapParent.Map)) { var series = mapIDs[mapParent.Map]; return(tilesWithZLevels[series].NextMapDown(mapParent)); } Log.Message("No below map found"); return(null); }
public override void AssignDebugData() { base.AssignDebugData(); inSignal = "DebugSignal" + Rand.Int; if (Find.AnyPlayerHomeMap != null) { mapParent = Find.RandomPlayerHomeMap.Parent; thing = ThingMaker.MakeThing(ThingDefOf.Silver); } }
private static Map GenerateNewMapWithSeed(MapParent mapParent, IntVec3 size, string seed) { var prevSeed = Find.World.info.seedString; Find.World.info.seedString = seed; var newMap = GetOrGenerateMapUtility.GetOrGenerateMap(mapParent.Tile, size, null); Find.World.info.seedString = prevSeed; return(newMap); }
private bool ChoseWorldTarget(GlobalTargetInfo target) { bool result; if (!this.ReadyToTransport) { result = true; } else if (!target.IsValid) { Messages.Message("MessageTransportPodsDestinationIsInvalid".Translate(), MessageTypeDefOf.RejectInput); result = false; } else { MapParent mapParent = target.WorldObject as MapParent; if (mapParent != null && mapParent.HasMap) { Map myMap = this.parent.Map; Map map = mapParent.Map; Current.Game.CurrentMap = map; Targeter targeter = Find.Targeter; Action actionWhenFinished = delegate() { if (Find.Maps.Contains(myMap)) { Current.Game.CurrentMap = myMap; } }; TargetingParameters targetParams = new TargetingParameters { canTargetPawns = true, canTargetItems = false, canTargetSelf = false, canTargetLocations = false, canTargetBuildings = false, canTargetFires = false }; targeter.BeginTargeting(targetParams, delegate(LocalTargetInfo x) { if (this.ReadyToTransport) { this.TryTransport(x.ToGlobalTargetInfo(map)); } }, null, actionWhenFinished, CompTeleporter.TargeterMouseAttachment); result = true; } else { Messages.Message("RD_YouCannotLock".Translate(), MessageTypeDefOf.RejectInput); //"You cannot lock onto anything there." result = false; } } return(result); }
public static void Prefix(int tile, ref IntVec3 size, WorldObjectDef suggestedMapParentDef) { Map map = Current.Game.FindMap(tile); Faction faction = null; if (map != null) { if (map.ParentFaction != null) { faction = map.ParentFaction; } } else { MapParent mapParent = Find.WorldObjects.MapParentAt(tile); if (mapParent?.Faction != null) { faction = mapParent.Faction; } } if (faction == null) { return; } HiveFactionEvolutionTracker evolutionTracker = Find.World.GetComponent <HiveFactionEvolutionTracker>(); HiveFactionExtension hive = faction.def.GetModExtension <HiveFactionExtension>(); if (evolutionTracker != null && hive != null) { int sizemod = 0; // Log.Message("GetOrGenerateMap for " + faction + " Default: " + size.x + " Max Hive size: " + hive.CurStage.sizeRange.max); for (int i = 0; i < 10; i++) { if (hive.CurStage.sizeRange.max >= ((size.x + sizemod) / 2) * 0.75f) { sizemod = (int)(size.x * 0.25f); } else { break; } } if (sizemod > 0) { size.x += sizemod; size.z += sizemod; // Log.Message("GetOrGenerateMap for " + faction +" applied sizemod: "+ sizemod +" resulting: "+ size); } } else { // Log.Message("GetOrGenerateMap evolutionTracker: "+ (evolutionTracker != null) + " hiveext: " + (hive != null)); } }
//Generates a map with a defined seed private static Map GenerateNewMapWithSeed(int tile, IntVec3 size, string seed) { string cachedSeedString = Find.World.info.seedString; Find.World.info.seedString = seed; MapParent mapParent = Find.WorldObjects.MapParentAt(tile); Map generatedMap = MapGenerator.GenerateMap(size, mapParent, mapParent.MapGeneratorDef, mapParent.ExtraGenStepDefs, null); Find.World.info.seedString = cachedSeedString; return(generatedMap); }
public static void Prefix(ref IntVec3 mapSize, MapParent parent, MapGeneratorDef mapGenerator, IEnumerable <GenStepWithParams> extraGenStepDefs = null, Action <Map> extraInitBeforeContentGen = null) { var worldComp = Find.World.GetComponent <WorldComponentGeneration>(); if (worldComp.tileSizes.ContainsKey(parent.Tile)) { mapSize = worldComp.tileSizes[parent.Tile]; worldComp.tileSizes.Remove(parent.Tile); Log.Message("Changing map size to " + mapSize); } }
public Map FindMap(MapParent mapParent) { for (int i = 0; i < this.maps.Count; i++) { if (this.maps[i].info.parent == mapParent) { return(this.maps[i]); } } return(null); }
public ZLevelTracker(Map newZeroLevlMap, MapParent newZeroLevel, MapParent_ZLevel mp, bool downwards) { layersState.Add(0, newZeroLevel as MapParent_ZLevel); zeroLevelMap = newZeroLevlMap; zeroLevel = newZeroLevel; //Refog zero layer Traverse.Create(newZeroLevlMap.fogGrid).Method("SetAllFogged", new object[] { }).GetValue(); AddLayer(mp, downwards); }
public static void Postfix(IntVec3 mapSize, MapParent parent, MapGeneratorDef mapGenerator, IEnumerable <GenStepWithParams> extraGenStepDefs = null, Action <Map> extraInitBeforeContentGen = null) { Log.Message("GetOrGenerateMapPatch.caravanArrival: " + GetOrGenerateMapPatch.caravanArrival); if (!caravanArrival) { var preset = SettlementGeneration.GetPresetFor(parent, out LocationDef locationDef); if (preset != null && locationDef != null) { SettlementGeneration.DoSettlementGeneration(parent.Map, preset.FullName, locationDef, parent.Faction, false); } } }
public override void CompTick() { base.CompTick(); if (this.active) { MapParent mapParent = this.parent as MapParent; if (mapParent != null) { this.CheckAllEnemiesDefeated(mapParent); } } }
protected override IParent CreateParent(int numberOfChildren) { var parent = new MapParent(); for (var i = 0; i < numberOfChildren; i++) { parent.Children.Add(i, new Child { Name = "child" + i }); } return(parent); }
public override void PreForceReform(MapParent mapParent) { comp.Start(); victory = true; RemoveAfterLeave = true; QuestsManager.Communications.RemoveCommunication(Dialog); base.PreForceReform(mapParent); }
private bool OnChoseWorldTarget(GlobalTargetInfo target) { // Invalid target. if (!target.IsValid) { Messages.Message("AA.MegInvalidWorldTarget".Translate(), MessageTypeDefOf.RejectInput); return(false); } // Out of range. if (Find.WorldGrid.TraversalDistanceBetween(base.Map.Tile, target.Tile) > WORLD_MAP_RANGE) { Messages.Message("AA.MegOutOfRange".Translate(), this, MessageTypeDefOf.RejectInput); return(false); } // Make sure that the map is generated. Cannot fire into a null map. MapParent mapParent = target.WorldObject as MapParent; if (mapParent == null || !mapParent.HasMap) { Messages.Message("AA.MegNeedsMap".Translate(), MessageTypeDefOf.RejectInput); return(false); } // Can't attack own map. var targetMap = mapParent.Map; if (targetMap == this.Map) { Messages.Message("AA.MegCantTargetSelf".Translate(), MessageTypeDefOf.RejectInput); return(false); } // Allow targeting everything. var targParams = new TargetingParameters { canTargetPawns = true, canTargetBuildings = true, canTargetLocations = true, canTargetAnimals = true }; Current.Game.CurrentMap = targetMap; Find.Targeter.BeginTargeting(targParams, (localTarg) => { GlobalTargetInfo globalTargetInfo = localTarg.ToGlobalTargetInfo(targetMap); StartAttackSequence(globalTargetInfo, LocalTargetInfo.Invalid); }); //Messages.Message("Not working yet.", MessageTypeDefOf.RejectInput, true); return(true); }