Merge branch 'main' of https://git.ra3battle.cn/Kalospacer/WulaFallenEmpireRW
This commit is contained in:
@@ -1,5 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_AreaTeleportBeacon</defName>
|
||||
<label>乌拉区域传送信标</label>
|
||||
<description>负责协调殖民地与轨道上的乌拉帝国舰队进行材料输送的信标,空投建筑会优先从信标覆盖区域吸纳资源完成空投。</description>
|
||||
<thingClass>Building</thingClass>
|
||||
<thingCategories Inherit="False">
|
||||
<li>BuildingsMisc</li>
|
||||
</thingCategories>
|
||||
<graphicData>
|
||||
<texPath>Wula/Building/WULA_OrbitalTradeBeacon</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<shadowData>
|
||||
<volume>(0.3, 0.2, 0.3)</volume>
|
||||
<offset>(0,0,-0.1)</offset>
|
||||
</shadowData>
|
||||
</graphicData>
|
||||
<altitudeLayer>Building</altitudeLayer>
|
||||
<minifiedDef>MinifiedThing</minifiedDef>
|
||||
<statBases>
|
||||
<MaxHitPoints>75</MaxHitPoints>
|
||||
<WorkToBuild>800</WorkToBuild>
|
||||
<Flammability>0.5</Flammability>
|
||||
<Mass>5</Mass>
|
||||
</statBases>
|
||||
<drawerType>MapMeshAndRealTime</drawerType>
|
||||
<drawPlaceWorkersWhileSelected>true</drawPlaceWorkersWhileSelected>
|
||||
<fillPercent>0.15</fillPercent>
|
||||
<costList>
|
||||
<Steel>40</Steel>
|
||||
<ComponentIndustrial>1</ComponentIndustrial>
|
||||
</costList>
|
||||
<tickerType>Normal</tickerType>
|
||||
<building>
|
||||
<destroySound>BuildingDestroyed_Metal_Small</destroySound>
|
||||
</building>
|
||||
<comps>
|
||||
<li Class="WulaFallenEmpire.CompProperties_MapTeleporter">
|
||||
<areaSize>(13, 13)</areaSize>
|
||||
<warmupTicks>120</warmupTicks>
|
||||
<requiredResearch>WULA_Colony_License_LV1_Technology</requiredResearch>
|
||||
</li>
|
||||
</comps>
|
||||
<leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
|
||||
<pathCost>14</pathCost>
|
||||
<designationCategory>WULA_Buildings</designationCategory>
|
||||
<uiOrder>2100</uiOrder>
|
||||
<rotatable>false</rotatable>
|
||||
<placeWorkers>
|
||||
<li>PlaceWorker_ShowTradeBeaconRadius</li>
|
||||
</placeWorkers>
|
||||
<designationHotKey>Misc2</designationHotKey>
|
||||
<researchPrerequisites>
|
||||
<li>WULA_Colony_License_LV1_Technology</li>
|
||||
</researchPrerequisites>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_OrbitalTradeBeacon</defName>
|
||||
<label>乌拉轨道输送信标</label>
|
||||
@@ -973,4 +1030,6 @@
|
||||
</li>
|
||||
</comps>
|
||||
</ThingDef>
|
||||
|
||||
|
||||
</Defs>
|
||||
@@ -1,5 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
|
||||
<ThingDef ParentName="EtherealThingBase">
|
||||
<defName>WULA_TeleportLandingMarker</defName>
|
||||
<label>传送降落标记</label>
|
||||
<description>用于标记传送降落位置。</description>
|
||||
<thingClass>WulaFallenEmpire.WULA_TeleportLandingMarker</thingClass>
|
||||
<graphicData>
|
||||
<texPath>Wula/Building/WULA_Dropping_Building_Cleanzone_Plus</texPath>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<drawSize>(13,13)</drawSize>
|
||||
<damageData>
|
||||
<enabled>false</enabled>
|
||||
</damageData>
|
||||
</graphicData>
|
||||
<altitudeLayer>Building</altitudeLayer>
|
||||
<rotatable>false</rotatable>
|
||||
<selectable>true</selectable>
|
||||
<hasCustomRectForSelector>true</hasCustomRectForSelector>
|
||||
<drawerType>RealtimeOnly</drawerType>
|
||||
<drawOffscreen>true</drawOffscreen>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_Prefab_Cleanzone_NewColonyBase_Beacon</defName>
|
||||
<label>乌拉预制件空投信标-小型前哨站</label>
|
||||
|
||||
@@ -113,5 +113,33 @@
|
||||
<WULA_SelectCategoryFirst>请先选择一个分类</WULA_SelectCategoryFirst>
|
||||
<WULA_GatheringMaterials>正在收集材料</WULA_GatheringMaterials>
|
||||
<WULA_Paused>已暂停</WULA_Paused>
|
||||
<!-- Area Teleporter -->
|
||||
<WULA_CancelTeleport>取消传送</WULA_CancelTeleport>
|
||||
<WULA_CancelTeleportDesc>取消当前的传送预热。</WULA_CancelTeleportDesc>
|
||||
<WULA_InitiateTeleport>启动传送</WULA_InitiateTeleport>
|
||||
<WULA_InitiateTeleportDesc>启动区域传送程序,将信标周围的物体传送到指定位置。</WULA_InitiateTeleportDesc>
|
||||
<WULA_RequiresResearch>需要研究:{0}</WULA_RequiresResearch>
|
||||
<WULA_MissingResearch>缺少必要的研究:{0}</WULA_MissingResearch>
|
||||
<WULA_TeleportFailed_MapGeneration>无法生成目标地图。</WULA_TeleportFailed_MapGeneration>
|
||||
<WULA_TeleportWarmupStarted>传送预热已开始。</WULA_TeleportWarmupStarted>
|
||||
<WULA_TeleportCancelled>传送已取消。</WULA_TeleportCancelled>
|
||||
<WULA_TeleportFailed_InvalidTarget>无效的目标位置。</WULA_TeleportFailed_InvalidTarget>
|
||||
<WULA_TeleportFailed_NoMap>无法获取目标地图。</WULA_TeleportFailed_NoMap>
|
||||
<WULA_TeleportSuccessful>传送成功。</WULA_TeleportSuccessful>
|
||||
<WULA_SelectArrivalPoint>选择降落点</WULA_SelectArrivalPoint>
|
||||
<WULA_SelectArrivalPointDesc>选择传送到达的具体位置。</WULA_SelectArrivalPointDesc>
|
||||
<WULA_OutOfBounds>超出地图边界。</WULA_OutOfBounds>
|
||||
<WULA_InNoBuildArea>位于不可建造区域。</WULA_InNoBuildArea>
|
||||
<WULA_BlockedByFog>目标位置被迷雾覆盖。</WULA_BlockedByFog>
|
||||
<WULA_BlockedByIndestructible>被不可破坏的物体阻挡:{0}</WULA_BlockedByIndestructible>
|
||||
<WULA_TerrainImpassable>目标地形不可通过。</WULA_TerrainImpassable>
|
||||
<WULA_BlockedByThickRoof>被厚岩顶阻挡。</WULA_BlockedByThickRoof>
|
||||
<WULA_MustSelectLandingSpot>必须选择一个降落点。</WULA_MustSelectLandingSpot>
|
||||
<WULA_ConfirmTeleport>确认传送</WULA_ConfirmTeleport>
|
||||
<WULA_ConfirmTeleportDesc>确认当前位置并开始传送。</WULA_ConfirmTeleportDesc>
|
||||
<WULA_MoveMarker>移动标记</WULA_MoveMarker>
|
||||
<WULA_MoveMarkerDesc>重新选择降落位置。</WULA_MoveMarkerDesc>
|
||||
<WULA_GeneratedMapCleanedUp>由于传送取消,生成的临时地图已被清理。</WULA_GeneratedMapCleanedUp>
|
||||
<WULA_InsufficientFuel>燃料不足。</WULA_InsufficientFuel>
|
||||
|
||||
</LanguageData>
|
||||
@@ -13,6 +13,7 @@
|
||||
"path": "../../../../Data"
|
||||
},
|
||||
{
|
||||
"name": "dll1.6",
|
||||
"path": "../../../../dll1.6"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,363 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RimWorld;
|
||||
using RimWorld.Planet;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
using Verse.AI;
|
||||
using Verse.Sound;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class CompMapTeleporter : ThingComp
|
||||
{
|
||||
public CompProperties_MapTeleporter Props => (CompProperties_MapTeleporter)props;
|
||||
|
||||
private bool isWarmingUp = false;
|
||||
private int warmupTicksLeft = 0;
|
||||
private GlobalTargetInfo target;
|
||||
private WULA_TeleportLandingMarker activeMarker;
|
||||
|
||||
public override void PostExposeData()
|
||||
{
|
||||
base.PostExposeData();
|
||||
Scribe_Values.Look(ref isWarmingUp, "isWarmingUp", false);
|
||||
Scribe_Values.Look(ref warmupTicksLeft, "warmupTicksLeft", 0);
|
||||
Scribe_TargetInfo.Look(ref target, "target");
|
||||
Scribe_References.Look(ref activeMarker, "activeMarker");
|
||||
}
|
||||
|
||||
public override void PostDrawExtraSelectionOverlays()
|
||||
{
|
||||
base.PostDrawExtraSelectionOverlays();
|
||||
GenDraw.DrawFieldEdges(CellRect.CenteredOn(parent.Position, Props.areaSize.x, Props.areaSize.z).Cells.ToList());
|
||||
}
|
||||
|
||||
public override void CompTick()
|
||||
{
|
||||
base.CompTick();
|
||||
if (isWarmingUp)
|
||||
{
|
||||
warmupTicksLeft--;
|
||||
if (warmupTicksLeft % 60 == 0)
|
||||
{
|
||||
Log.Message($"[WULA] Teleport warmup: {warmupTicksLeft} ticks left.");
|
||||
Props.warmupEffecter?.Spawn(parent, parent.Map).Cleanup();
|
||||
}
|
||||
|
||||
if (warmupTicksLeft <= 0)
|
||||
{
|
||||
Log.Message("[WULA] Warmup finished. Attempting teleport...");
|
||||
TryTeleport();
|
||||
isWarmingUp = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override IEnumerable<Gizmo> CompGetGizmosExtra()
|
||||
{
|
||||
foreach (var gizmo in base.CompGetGizmosExtra())
|
||||
{
|
||||
yield return gizmo;
|
||||
}
|
||||
|
||||
if (parent.Faction != Faction.OfPlayer)
|
||||
yield break;
|
||||
|
||||
if (isWarmingUp)
|
||||
{
|
||||
yield return new Command_Action
|
||||
{
|
||||
defaultLabel = "WULA_CancelTeleport".Translate(),
|
||||
defaultDesc = "WULA_CancelTeleportDesc".Translate(),
|
||||
icon = ContentFinder<Texture2D>.Get("UI/Designators/Cancel"),
|
||||
action = CancelTeleport
|
||||
};
|
||||
}
|
||||
else if (activeMarker != null && !activeMarker.Destroyed)
|
||||
{
|
||||
yield return new Command_Action
|
||||
{
|
||||
defaultLabel = "WULA_CancelTeleport".Translate(),
|
||||
defaultDesc = "WULA_CancelTeleportDesc".Translate(),
|
||||
icon = ContentFinder<Texture2D>.Get("UI/Designators/Cancel"),
|
||||
action = CancelTeleport
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
string reason = GetDisabledReason();
|
||||
Command_Action teleportCmd = new Command_Action
|
||||
{
|
||||
defaultLabel = "WULA_InitiateTeleport".Translate(),
|
||||
defaultDesc = GetDescription(),
|
||||
icon = ContentFinder<Texture2D>.Get("UI/Commands/LaunchShip"),
|
||||
action = StartTargeting,
|
||||
disabledReason = reason
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(reason))
|
||||
{
|
||||
teleportCmd.Disable(reason);
|
||||
}
|
||||
|
||||
yield return teleportCmd;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetDisabledReason()
|
||||
{
|
||||
if (Props.requiredResearch != null && !Props.requiredResearch.IsFinished)
|
||||
{
|
||||
return "WULA_MissingResearch".Translate(Props.requiredResearch.label);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private string GetDescription()
|
||||
{
|
||||
System.Text.StringBuilder sb = new System.Text.StringBuilder();
|
||||
sb.Append("WULA_InitiateTeleportDesc".Translate());
|
||||
|
||||
if (Props.requiredResearch != null)
|
||||
{
|
||||
sb.AppendLine().Append("WULA_RequiresResearch".Translate(Props.requiredResearch.label));
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
private void StartTargeting()
|
||||
{
|
||||
CameraJumper.TryJump(CameraJumper.GetWorldTarget(parent));
|
||||
Find.WorldSelector.ClearSelection();
|
||||
Find.WorldTargeter.BeginTargeting(ChoseWorldTarget, true, null, true, null, null);
|
||||
}
|
||||
|
||||
private bool ChoseWorldTarget(GlobalTargetInfo targetInfo)
|
||||
{
|
||||
if (!targetInfo.IsValid) return false;
|
||||
|
||||
this.target = targetInfo;
|
||||
|
||||
MapParent mapParent = Find.WorldObjects.MapParentAt(targetInfo.Tile);
|
||||
|
||||
if (mapParent == null)
|
||||
{
|
||||
SettleUtility.AddNewHome(targetInfo.Tile, Faction.OfPlayer);
|
||||
mapParent = Find.WorldObjects.MapParentAt(targetInfo.Tile);
|
||||
}
|
||||
|
||||
if (mapParent != null)
|
||||
{
|
||||
if (!mapParent.HasMap)
|
||||
{
|
||||
IntVec3 mapSize = Find.World.info.initialMapSize;
|
||||
GetOrGenerateMapUtility.GetOrGenerateMap(targetInfo.Tile, mapSize, null);
|
||||
}
|
||||
|
||||
if (mapParent.HasMap)
|
||||
{
|
||||
CameraJumper.TryJump(mapParent.Map.Center, mapParent.Map);
|
||||
|
||||
if (activeMarker != null && !activeMarker.Destroyed)
|
||||
{
|
||||
activeMarker.Destroy();
|
||||
}
|
||||
|
||||
activeMarker = (WULA_TeleportLandingMarker)ThingMaker.MakeThing(DefDatabase<ThingDef>.GetNamed("WULA_TeleportLandingMarker"));
|
||||
activeMarker.sourceThing = parent;
|
||||
GenSpawn.Spawn(activeMarker, mapParent.Map.Center, mapParent.Map);
|
||||
|
||||
Find.Selector.ClearSelection();
|
||||
Find.Selector.Select(activeMarker);
|
||||
Find.DesignatorManager.Select(new Designator_TeleportArrival(this, mapParent.Map, activeMarker));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Messages.Message("WULA_TeleportFailed_MapGeneration".Translate(), MessageTypeDefOf.RejectInput);
|
||||
return false;
|
||||
}
|
||||
|
||||
public void ConfirmArrival(IntVec3 cell, Map map)
|
||||
{
|
||||
this.target = new GlobalTargetInfo(cell, map);
|
||||
StartWarmup();
|
||||
}
|
||||
|
||||
private void StartWarmup()
|
||||
{
|
||||
isWarmingUp = true;
|
||||
warmupTicksLeft = Props.warmupTicks;
|
||||
Props.warmupSound?.PlayOneShot(parent);
|
||||
Messages.Message("WULA_TeleportWarmupStarted".Translate(), parent, MessageTypeDefOf.NeutralEvent);
|
||||
}
|
||||
|
||||
private void CancelTeleport()
|
||||
{
|
||||
isWarmingUp = false;
|
||||
warmupTicksLeft = 0;
|
||||
|
||||
if (activeMarker != null && !activeMarker.Destroyed)
|
||||
{
|
||||
activeMarker.Destroy();
|
||||
activeMarker = null;
|
||||
}
|
||||
|
||||
Messages.Message("WULA_TeleportCancelled".Translate(), parent, MessageTypeDefOf.NeutralEvent);
|
||||
}
|
||||
|
||||
private void TryTeleport()
|
||||
{
|
||||
Log.Message($"[WULA] TryTeleport called. Target valid: {target.IsValid}, Tile: {target.Tile}, Cell: {target.Cell}");
|
||||
|
||||
if (!target.IsValid)
|
||||
{
|
||||
Messages.Message("WULA_TeleportFailed_InvalidTarget".Translate(), parent, MessageTypeDefOf.RejectInput);
|
||||
CancelTeleport();
|
||||
return;
|
||||
}
|
||||
|
||||
Map targetMap = target.Map;
|
||||
IntVec3 targetCell = target.Cell;
|
||||
|
||||
if (targetMap == null)
|
||||
{
|
||||
Log.Message($"[WULA] Target map is null. Generating map for tile {target.Tile}...");
|
||||
targetMap = GetOrGenerateTargetMap(target.Tile);
|
||||
if (targetMap == null)
|
||||
{
|
||||
Messages.Message("WULA_TeleportFailed_NoMap".Translate(), parent, MessageTypeDefOf.RejectInput);
|
||||
CancelTeleport();
|
||||
return;
|
||||
}
|
||||
targetCell = targetMap.Center;
|
||||
}
|
||||
|
||||
Log.Message($"[WULA] Teleporting to map {targetMap.Index}, cell {targetCell}");
|
||||
TeleportContents(targetMap, targetCell);
|
||||
}
|
||||
|
||||
private Map GetOrGenerateTargetMap(int tile)
|
||||
{
|
||||
MapParent mapParent = Find.WorldObjects.MapParentAt(tile);
|
||||
|
||||
if (mapParent == null)
|
||||
{
|
||||
SettleUtility.AddNewHome(tile, Faction.OfPlayer);
|
||||
mapParent = Find.WorldObjects.MapParentAt(tile);
|
||||
}
|
||||
|
||||
if (mapParent != null)
|
||||
{
|
||||
if (!mapParent.HasMap)
|
||||
{
|
||||
IntVec3 mapSize = Find.World.info.initialMapSize;
|
||||
return GetOrGenerateMapUtility.GetOrGenerateMap(tile, mapSize, null);
|
||||
}
|
||||
return mapParent.Map;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private struct ThingToTeleport
|
||||
{
|
||||
public Thing thing;
|
||||
public IntVec3 relativePos;
|
||||
}
|
||||
|
||||
private void TeleportContents(Map targetMap, IntVec3 targetCenter)
|
||||
{
|
||||
Map sourceMap = parent.Map;
|
||||
CellRect rect = CellRect.CenteredOn(parent.Position, Props.areaSize.x, Props.areaSize.z);
|
||||
IntVec3 center = parent.Position;
|
||||
|
||||
List<ThingToTeleport> thingsToTeleport = new List<ThingToTeleport>();
|
||||
List<Pair<IntVec3, TerrainDef>> terrainToTeleport = new List<Pair<IntVec3, TerrainDef>>();
|
||||
|
||||
Log.Message($"[WULA] Collecting data from {rect.Area} cells around {center} with size {Props.areaSize}");
|
||||
|
||||
// 1. 收集数据
|
||||
HashSet<Thing> collectedThings = new HashSet<Thing>();
|
||||
foreach (IntVec3 cell in rect)
|
||||
{
|
||||
if (!cell.InBounds(sourceMap)) continue;
|
||||
|
||||
terrainToTeleport.Add(new Pair<IntVec3, TerrainDef>(cell - center, cell.GetTerrain(sourceMap)));
|
||||
|
||||
List<Thing> thingList = sourceMap.thingGrid.ThingsListAt(cell);
|
||||
for (int i = thingList.Count - 1; i >= 0; i--)
|
||||
{
|
||||
Thing t = thingList[i];
|
||||
if (t != parent && !collectedThings.Contains(t) &&
|
||||
(t.def.category == ThingCategory.Item ||
|
||||
t.def.category == ThingCategory.Pawn ||
|
||||
t.def.category == ThingCategory.Building))
|
||||
{
|
||||
if (!t.def.destroyable) continue;
|
||||
|
||||
collectedThings.Add(t);
|
||||
thingsToTeleport.Add(new ThingToTeleport { thing = t, relativePos = t.Position - center });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 2. 准备传送 (PreSwapMap)
|
||||
foreach (var data in thingsToTeleport) data.thing.PreSwapMap();
|
||||
parent.PreSwapMap();
|
||||
|
||||
// 3. 从源地图移除 (DeSpawn)
|
||||
foreach (var data in thingsToTeleport)
|
||||
{
|
||||
if (data.thing.Spawned) data.thing.DeSpawn(DestroyMode.WillReplace);
|
||||
}
|
||||
if (parent.Spawned) parent.DeSpawn(DestroyMode.WillReplace);
|
||||
|
||||
// 4. 修改地形
|
||||
foreach (var pair in terrainToTeleport)
|
||||
{
|
||||
IntVec3 newPos = targetCenter + pair.First;
|
||||
newPos = newPos.ClampInsideMap(targetMap);
|
||||
|
||||
List<Thing> targetThings = targetMap.thingGrid.ThingsListAt(newPos);
|
||||
for (int i = targetThings.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (targetThings[i].def.destroyable) targetThings[i].Destroy();
|
||||
}
|
||||
|
||||
if (pair.Second != null)
|
||||
{
|
||||
targetMap.terrainGrid.SetTerrain(newPos, pair.Second);
|
||||
sourceMap.terrainGrid.SetTerrain(center + pair.First, TerrainDefOf.Soil);
|
||||
}
|
||||
}
|
||||
|
||||
// 5. 放置到新地图 (Spawn)
|
||||
foreach (var data in thingsToTeleport)
|
||||
{
|
||||
if (data.thing.Destroyed) continue;
|
||||
IntVec3 newPos = targetCenter + data.relativePos;
|
||||
newPos = newPos.ClampInsideMap(targetMap);
|
||||
GenSpawn.Spawn(data.thing, newPos, targetMap, data.thing.Rotation);
|
||||
}
|
||||
GenSpawn.Spawn(parent, targetCenter, targetMap, parent.Rotation);
|
||||
|
||||
// 6. 传送后处理 (PostSwapMap)
|
||||
foreach (var data in thingsToTeleport)
|
||||
{
|
||||
if (!data.thing.Destroyed) data.thing.PostSwapMap();
|
||||
}
|
||||
parent.PostSwapMap();
|
||||
|
||||
// 7. 完成
|
||||
CameraJumper.TryJump(targetCenter, targetMap);
|
||||
Props.teleportSound?.PlayOneShot(new TargetInfo(targetCenter, targetMap, false));
|
||||
Messages.Message("WULA_TeleportSuccessful".Translate(), new TargetInfo(targetCenter, targetMap, false), MessageTypeDefOf.PositiveEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class CompProperties_MapTeleporter : CompProperties
|
||||
{
|
||||
public IntVec2 areaSize = new IntVec2(13, 13);
|
||||
public int warmupTicks = 120;
|
||||
public EffecterDef warmupEffecter;
|
||||
public SoundDef warmupSound;
|
||||
public SoundDef teleportSound;
|
||||
|
||||
public ResearchProjectDef requiredResearch;
|
||||
|
||||
public CompProperties_MapTeleporter()
|
||||
{
|
||||
compClass = typeof(CompMapTeleporter);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RimWorld;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class WULA_TeleportLandingMarker : Thing
|
||||
{
|
||||
public Thing sourceThing;
|
||||
|
||||
public CompMapTeleporter SourceTeleporter => sourceThing?.TryGetComp<CompMapTeleporter>();
|
||||
|
||||
public override CellRect? CustomRectForSelector
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SourceTeleporter != null)
|
||||
{
|
||||
return CellRect.CenteredOn(Position, SourceTeleporter.Props.areaSize.x, SourceTeleporter.Props.areaSize.z);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public override void ExposeData()
|
||||
{
|
||||
base.ExposeData();
|
||||
Scribe_References.Look(ref sourceThing, "sourceThing");
|
||||
}
|
||||
|
||||
public override IEnumerable<Gizmo> GetGizmos()
|
||||
{
|
||||
foreach (var gizmo in base.GetGizmos())
|
||||
{
|
||||
yield return gizmo;
|
||||
}
|
||||
|
||||
yield return new Command_Action
|
||||
{
|
||||
defaultLabel = "WULA_ConfirmTeleport".Translate(),
|
||||
defaultDesc = "WULA_ConfirmTeleportDesc".Translate(),
|
||||
icon = ContentFinder<Texture2D>.Get("UI/Commands/LaunchShip"),
|
||||
action = Confirm
|
||||
};
|
||||
|
||||
yield return new Command_Action
|
||||
{
|
||||
defaultLabel = "WULA_MoveMarker".Translate(),
|
||||
defaultDesc = "WULA_MoveMarkerDesc".Translate(),
|
||||
icon = ContentFinder<Texture2D>.Get("UI/Commands/Install"),
|
||||
action = StartMove
|
||||
};
|
||||
}
|
||||
|
||||
private void StartMove()
|
||||
{
|
||||
if (SourceTeleporter != null)
|
||||
{
|
||||
Find.DesignatorManager.Select(new Designator_TeleportArrival(SourceTeleporter, Map, this));
|
||||
}
|
||||
}
|
||||
|
||||
private void Confirm()
|
||||
{
|
||||
if (SourceTeleporter != null)
|
||||
{
|
||||
SourceTeleporter.ConfirmArrival(Position, Map);
|
||||
}
|
||||
Destroy();
|
||||
}
|
||||
|
||||
protected override void DrawAt(Vector3 drawLoc, bool flip = false)
|
||||
{
|
||||
base.DrawAt(drawLoc, flip);
|
||||
if (SourceTeleporter != null)
|
||||
{
|
||||
GenDraw.DrawFieldEdges(CellRect.CenteredOn(Position, SourceTeleporter.Props.areaSize.x, SourceTeleporter.Props.areaSize.z).Cells.ToList());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
<!-- 1. 基本额外伤害配置 -->
|
||||
<DamageDef>
|
||||
<defName>Damage_WithExtraEffects</defName>
|
||||
<label>带电击伤害</label>
|
||||
<workerClass>WulaFallenEmpire.DamageWorker_ExtraDamage</workerClass>
|
||||
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.DamageDef_ExtraDamageExtension">
|
||||
<extraLabel>电击效果</extraLabel>
|
||||
<showExtraLog>true</showExtraLog>
|
||||
|
||||
<extraDamages>
|
||||
<li>
|
||||
<damageDef>EMP</damageDef>
|
||||
<amount>15</amount>
|
||||
<isPercentage>false</isPercentage>
|
||||
<armorPenetration>25</armorPenetration>
|
||||
<soundDef>EMP_Small</soundDef>
|
||||
<fleckDef>ElectricArc</fleckDef>
|
||||
<minTriggerDamage>5</minTriggerDamage>
|
||||
|
||||
<conditions>
|
||||
<li>
|
||||
<targetType>Mechanoid</targetType>
|
||||
<healthPercentRange>0,1</healthPercentRange>
|
||||
</li>
|
||||
</conditions>
|
||||
</li>
|
||||
</extraDamages>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</DamageDef>
|
||||
|
||||
<!-- 2. 百分比额外伤害 -->
|
||||
<DamageDef>
|
||||
<defName>Damage_WithBurn</defName>
|
||||
<label>带燃烧伤害</label>
|
||||
<workerClass>WulaFallenEmpire.DamageWorker_ExtraDamage</workerClass>
|
||||
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.DamageDef_ExtraDamageExtension">
|
||||
<extraLabel>燃烧效果</extraLabel>
|
||||
|
||||
<extraDamages>
|
||||
<li>
|
||||
<damageDef>Burn</damageDef>
|
||||
<isPercentage>true</isPercentage>
|
||||
<percentageMultiplier>0.3</percentageMultiplier>
|
||||
<effecterDef>SparkHit</effecterDef>
|
||||
<minTriggerDamage>10</minTriggerDamage>
|
||||
|
||||
<conditions>
|
||||
<li>
|
||||
<targetType>Pawn</targetType>
|
||||
<healthPercentRange>0.3,1</healthPercentRange>
|
||||
<requiredTags>
|
||||
<li>Flammable</li>
|
||||
</requiredTags>
|
||||
</li>
|
||||
</conditions>
|
||||
</li>
|
||||
</extraDamages>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</DamageDef>
|
||||
|
||||
<!-- 3. 多种额外伤害 -->
|
||||
<DamageDef>
|
||||
<defName>Damage_MultiEffect</defName>
|
||||
<label>多重效果伤害</label>
|
||||
<workerClass>WulaFallenEmpire.DamageWorker_ExtraDamage</workerClass>
|
||||
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.DamageDef_ExtraDamageExtension">
|
||||
<extraLabel>组合效果</extraLabel>
|
||||
|
||||
<extraDamages>
|
||||
<!-- 对生物造成流血 -->
|
||||
<li>
|
||||
<damageDef>Cut</damageDef>
|
||||
<amount>5</amount>
|
||||
<isPercentage>false</isPercentage>
|
||||
<targetBodyPart>Torso</targetBodyPart>
|
||||
|
||||
<conditions>
|
||||
<li>
|
||||
<targetType>Animal</targetType>
|
||||
</li>
|
||||
<li>
|
||||
<targetType>Humanlike</targetType>
|
||||
</li>
|
||||
</conditions>
|
||||
</li>
|
||||
|
||||
<!-- 对机械造成EMP -->
|
||||
<li>
|
||||
<damageDef>EMP</damageDef>
|
||||
<isPercentage>true</isPercentage>
|
||||
<percentageMultiplier>0.5</percentageMultiplier>
|
||||
<canBeBlockedByArmor>false</canBeBlockedByArmor>
|
||||
|
||||
<conditions>
|
||||
<li>
|
||||
<targetType>Mechanoid</targetType>
|
||||
</li>
|
||||
</conditions>
|
||||
</li>
|
||||
|
||||
<!-- 对建筑造成额外伤害 -->
|
||||
<li>
|
||||
<damageDef>Blunt</damageDef>
|
||||
<amount>20</amount>
|
||||
<isPercentage>false</isPercentage>
|
||||
|
||||
<conditions>
|
||||
<li>
|
||||
<targetType>Building</targetType>
|
||||
</li>
|
||||
</conditions>
|
||||
</li>
|
||||
</extraDamages>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</DamageDef>
|
||||
|
||||
<!-- 4. 武器使用这个伤害类型 -->
|
||||
<ThingDef>
|
||||
<defName>Gun_AdvancedRifle</defName>
|
||||
<label>先进步枪</label>
|
||||
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>Verb_Shoot</verbClass>
|
||||
<defaultProjectile>Bullet_Advanced</defaultProjectile>
|
||||
</li>
|
||||
</verbs>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 5. 抛射体定义 -->
|
||||
<ThingDef>
|
||||
<defName>Bullet_Advanced</defName>
|
||||
<label>先进子弹</label>
|
||||
<projectile>
|
||||
<damageDef>Damage_MultiEffect</damageDef>
|
||||
<damageAmountBase>25</damageAmountBase>
|
||||
</projectile>
|
||||
</ThingDef>
|
||||
167
Source/WulaFallenEmpire/Designator/Designator_TeleportArrival.cs
Normal file
167
Source/WulaFallenEmpire/Designator/Designator_TeleportArrival.cs
Normal file
@@ -0,0 +1,167 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RimWorld;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class Designator_TeleportArrival : Designator
|
||||
{
|
||||
private CompMapTeleporter teleporter;
|
||||
private Map targetMap;
|
||||
private WULA_TeleportLandingMarker marker;
|
||||
private List<Thing> thingsToTeleport = new List<Thing>();
|
||||
private IntVec3 sourceCenter;
|
||||
|
||||
public override string Label => "WULA_SelectArrivalPoint".Translate();
|
||||
public override string Desc => "WULA_SelectArrivalPointDesc".Translate();
|
||||
|
||||
public Designator_TeleportArrival(CompMapTeleporter teleporter, Map targetMap, WULA_TeleportLandingMarker marker = null)
|
||||
{
|
||||
this.teleporter = teleporter;
|
||||
this.targetMap = targetMap;
|
||||
this.marker = marker;
|
||||
this.useMouseIcon = true;
|
||||
this.soundDragSustain = SoundDefOf.Designate_DragStandard;
|
||||
this.soundDragChanged = SoundDefOf.Designate_DragStandard_Changed;
|
||||
this.soundSucceeded = SoundDefOf.Designate_PlaceBuilding;
|
||||
}
|
||||
|
||||
public override AcceptanceReport CanDesignateCell(IntVec3 loc)
|
||||
{
|
||||
if (!loc.InBounds(targetMap)) return false;
|
||||
|
||||
// 检查区域是否有效
|
||||
CellRect rect = CellRect.CenteredOn(loc, teleporter.Props.areaSize.x, teleporter.Props.areaSize.z);
|
||||
foreach (IntVec3 cell in rect)
|
||||
{
|
||||
if (!cell.InBounds(targetMap)) return "WULA_OutOfBounds".Translate();
|
||||
|
||||
// 检查地图边缘
|
||||
if (cell.InNoBuildEdgeArea(targetMap))
|
||||
{
|
||||
return "WULA_InNoBuildArea".Translate();
|
||||
}
|
||||
|
||||
// 检查迷雾
|
||||
if (cell.Fogged(targetMap))
|
||||
{
|
||||
return "WULA_BlockedByFog".Translate();
|
||||
}
|
||||
|
||||
// 检查是否有不可覆盖的建筑
|
||||
List<Thing> things = targetMap.thingGrid.ThingsListAt(cell);
|
||||
foreach (Thing t in things)
|
||||
{
|
||||
if (t.def.category == ThingCategory.Building)
|
||||
{
|
||||
if (!t.def.destroyable)
|
||||
{
|
||||
return "WULA_BlockedByIndestructible".Translate(t.Label);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 检查地形是否支持建造
|
||||
TerrainDef terrain = cell.GetTerrain(targetMap);
|
||||
if (terrain.passability == Traversability.Impassable && !terrain.IsWater)
|
||||
{
|
||||
return "WULA_TerrainImpassable".Translate();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void DesignateSingleCell(IntVec3 c)
|
||||
{
|
||||
if (marker != null)
|
||||
{
|
||||
marker.Position = c;
|
||||
Find.DesignatorManager.Deselect();
|
||||
Find.Selector.ClearSelection();
|
||||
Find.Selector.Select(marker);
|
||||
}
|
||||
else
|
||||
{
|
||||
teleporter.ConfirmArrival(c, targetMap);
|
||||
Find.DesignatorManager.Deselect();
|
||||
}
|
||||
}
|
||||
|
||||
public override void Selected()
|
||||
{
|
||||
CacheThings();
|
||||
DrawRect();
|
||||
}
|
||||
|
||||
public override void SelectedUpdate()
|
||||
{
|
||||
DrawRect();
|
||||
DrawGhosts();
|
||||
}
|
||||
|
||||
public override void DrawMouseAttachments()
|
||||
{
|
||||
base.DrawMouseAttachments();
|
||||
DrawRect();
|
||||
}
|
||||
|
||||
private void DrawRect()
|
||||
{
|
||||
GenDraw.DrawFieldEdges(CellRect.CenteredOn(UI.MouseCell(), teleporter.Props.areaSize.x, teleporter.Props.areaSize.z).Cells.ToList());
|
||||
}
|
||||
|
||||
private void CacheThings()
|
||||
{
|
||||
thingsToTeleport.Clear();
|
||||
if (teleporter.parent == null || teleporter.parent.Map == null) return;
|
||||
|
||||
sourceCenter = teleporter.parent.Position;
|
||||
Map sourceMap = teleporter.parent.Map;
|
||||
CellRect rect = CellRect.CenteredOn(sourceCenter, teleporter.Props.areaSize.x, teleporter.Props.areaSize.z);
|
||||
|
||||
foreach (IntVec3 cell in rect)
|
||||
{
|
||||
if (!cell.InBounds(sourceMap)) continue;
|
||||
foreach (Thing t in sourceMap.thingGrid.ThingsListAt(cell))
|
||||
{
|
||||
if (t.def.category == ThingCategory.Building || t.def.category == ThingCategory.Item || t.def.category == ThingCategory.Pawn)
|
||||
{
|
||||
if (t != teleporter.parent) thingsToTeleport.Add(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 添加自身
|
||||
thingsToTeleport.Add(teleporter.parent);
|
||||
}
|
||||
|
||||
private void DrawGhosts()
|
||||
{
|
||||
IntVec3 mouseCell = UI.MouseCell();
|
||||
if (!mouseCell.InBounds(targetMap)) return;
|
||||
|
||||
foreach (Thing t in thingsToTeleport)
|
||||
{
|
||||
if (t == null || t.Destroyed) continue;
|
||||
if (t.Graphic == null) continue;
|
||||
|
||||
IntVec3 relativePos = t.Position - sourceCenter;
|
||||
IntVec3 drawPos = mouseCell + relativePos;
|
||||
|
||||
if (drawPos.InBounds(targetMap))
|
||||
{
|
||||
try
|
||||
{
|
||||
GhostUtility.GhostGraphicFor(t.Graphic, t.def, Color.white).DrawFromDef(drawPos.ToVector3ShiftedWithAltitude(AltitudeLayer.Blueprint), t.Rotation, t.def);
|
||||
}
|
||||
catch
|
||||
{
|
||||
// 忽略绘制错误,防止UI崩溃
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
using RimWorld;
|
||||
using RimWorld.QuestGen;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Verse;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class Letter_EventChoice : ChoiceLetter
|
||||
{
|
||||
// These fields are now inherited from the base Letter class
|
||||
// public string letterLabel;
|
||||
// public string letterTitle;
|
||||
// public string letterText;
|
||||
public List<QuestNode_Root_EventLetter.Option> options;
|
||||
public new Quest quest;
|
||||
|
||||
public override IEnumerable<DiaOption> Choices
|
||||
{
|
||||
get
|
||||
{
|
||||
if (options.NullOrEmpty())
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
|
||||
foreach (var optionDef in options)
|
||||
{
|
||||
var currentOption = optionDef;
|
||||
Action choiceAction = delegate
|
||||
{
|
||||
if (!currentOption.optionEffects.NullOrEmpty())
|
||||
{
|
||||
foreach (var conditionalEffect in currentOption.optionEffects)
|
||||
{
|
||||
string reason;
|
||||
if (AreConditionsMet(conditionalEffect.conditions, out reason))
|
||||
{
|
||||
conditionalEffect.Execute(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (quest != null && !quest.hidden && !quest.Historical)
|
||||
{
|
||||
quest.End(QuestEndOutcome.Success);
|
||||
}
|
||||
Find.LetterStack.RemoveLetter(this);
|
||||
};
|
||||
|
||||
var diaOption = new DiaOption(currentOption.label.Translate())
|
||||
{
|
||||
action = choiceAction,
|
||||
resolveTree = true
|
||||
};
|
||||
yield return diaOption;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override bool CanDismissWithRightClick => false;
|
||||
|
||||
private bool AreConditionsMet(List<Condition> conditions, out string reason)
|
||||
{
|
||||
reason = "";
|
||||
if (conditions.NullOrEmpty())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
foreach (var condition in conditions)
|
||||
{
|
||||
if (!condition.IsMet(out string singleReason))
|
||||
{
|
||||
reason = singleReason;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void ExposeData()
|
||||
{
|
||||
base.ExposeData();
|
||||
// Scribe_Values.Look(ref letterLabel, "letterLabel"); // Now uses base.label
|
||||
// Scribe_Values.Look(ref letterTitle, "letterTitle"); // Now uses base.title
|
||||
// Scribe_Values.Look(ref letterText, "letterText"); // Now uses base.text
|
||||
Scribe_Collections.Look(ref options, "options", LookMode.Deep);
|
||||
if (Scribe.mode != LoadSaveMode.Saving || quest != null)
|
||||
{
|
||||
Scribe_References.Look(ref quest, "quest");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
using RimWorld;
|
||||
using RimWorld.QuestGen;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Verse;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class QuestNode_Root_EventLetter : QuestNode
|
||||
{
|
||||
// Fields to be set from the QuestScriptDef XML
|
||||
public SlateRef<string> letterLabel;
|
||||
public SlateRef<string> letterTitle;
|
||||
public SlateRef<string> letterText;
|
||||
public List<Option> options = new List<Option>();
|
||||
|
||||
// This is a root node, so it doesn't have a parent signal.
|
||||
// It runs immediately when the quest starts.
|
||||
protected override void RunInt()
|
||||
{
|
||||
// Get the current slate
|
||||
Slate slate = QuestGen.slate;
|
||||
|
||||
var letter = (Letter_EventChoice)LetterMaker.MakeLetter(DefDatabase<LetterDef>.GetNamed("Wula_EventChoiceLetter"));
|
||||
letter.Label = letterLabel.GetValue(slate);
|
||||
letter.title = letterTitle.GetValue(slate);
|
||||
letter.Text = letterText.GetValue(slate);
|
||||
letter.options = options;
|
||||
letter.quest = QuestGen.quest;
|
||||
letter.lookTargets = slate.Get<LookTargets>("lookTargets");
|
||||
|
||||
Find.LetterStack.ReceiveLetter(letter);
|
||||
}
|
||||
|
||||
protected override bool TestRunInt(Slate slate)
|
||||
{
|
||||
// This node can always run as long as the slate refs are valid.
|
||||
// We can add more complex checks here if needed.
|
||||
return true;
|
||||
}
|
||||
|
||||
// Inner class to hold option data from XML
|
||||
public class Option
|
||||
{
|
||||
public string label;
|
||||
public List<ConditionalEffects> optionEffects;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,328 +70,7 @@
|
||||
<HintPath>..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Ability\CompAbilityEffect_LaunchMultiProjectile.cs" />
|
||||
<Compile Include="Ability\CompAbilityEffect_ResearchPrereq.cs" />
|
||||
<Compile Include="Ability\CompAbilityEffect_RequiresNonHostility.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityAreaDestruction\CompAbilityEffect_AreaDestruction.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityAreaDestruction\CompProperties_AbilityAreaDestruction.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityBombardment\CompAbilityEffect_Bombardment.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityBombardment\CompProperties_AbilityBombardment.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCircularBombardment\CompAbilityEffect_CircularBombardment.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCircularBombardment\CompProperties_AbilityCircularBombardment.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityDeleteTarget\CompAbilityEffect_DeleteTarget.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityDeleteTarget\CompProperties_AbilityDeleteTarget.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityEnergyLance\AbilityWeaponDefExtension.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityEnergyLance\CompAbilityEffect_EnergyLance.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityEnergyLance\CompProperties_AbilityEnergyLance.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityEnergyLance\EnergyLance.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityEnergyLance\EnergyLanceExtension.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCallSkyfaller\CompAbilityEffect_CallSkyfaller.cs" />
|
||||
<Compile Include="Ability\WULA_AbilitySpawnAligned\CompAbilityEffect_SpawnAligned.cs" />
|
||||
<Compile Include="Ability\WULA_AbilitySpawnAligned\CompProperties_AbilitySpawnAligned.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityTeleportSelf\CompAbilityEffect_TeleportSelf.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityTeleportSelf\CompProperties_AbilityTeleportSelf.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityStunKnockback\CompAbilityEffect_StunKnockback.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityStunKnockback\CompProperties_StunKnockback.cs" />
|
||||
<Compile Include="Ability\WULA_EquippableAbilities\CompEquippableAbilities.cs" />
|
||||
<Compile Include="Ability\WULA_EquippableAbilities\CompProperties_EquippableAbilities.cs" />
|
||||
<Compile Include="Ability\WULA_PullTarget\CompAbilityEffect_PullTarget.cs" />
|
||||
<Compile Include="Ability\WULA_PullTarget\CompProperties_AbilityPullTarget.cs" />
|
||||
<Compile Include="BuildingComp\Building_ExtraGraphics.cs" />
|
||||
<Compile Include="BuildingComp\Building_MapObserver.cs" />
|
||||
<Compile Include="BuildingComp\CompPathCostUpdater.cs" />
|
||||
<Compile Include="BuildingComp\WULA_BuildingBombardment\CompBuildingBombardment.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCallSkyfaller\CompProperties_AbilityCallSkyfaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_BuildingBombardment\CompProperties_BuildingBombardment.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCallSkyfaller\MapComponent_SkyfallerDelayed.cs" />
|
||||
<Compile Include="BuildingComp\Building_TurretGunHasSpeed.cs" />
|
||||
<Compile Include="BuildingComp\WULA_BuildingSpawner\CompBuildingSpawner.cs" />
|
||||
<Compile Include="BuildingComp\WULA_BuildingSpawner\CompProperties_BuildingSpawner.cs" />
|
||||
<Compile Include="BuildingComp\WULA_EnergyLanceTurret\CompEnergyLanceTurret.cs" />
|
||||
<Compile Include="BuildingComp\WULA_EnergyLanceTurret\CompProperties_EnergyLanceTurret.cs" />
|
||||
<Compile Include="BuildingComp\WULA_InitialFaction\CompProperties_InitialFaction.cs" />
|
||||
<Compile Include="BuildingComp\WULA_MechanoidRecycler\Building_MechanoidRecycler.cs" />
|
||||
<Compile Include="BuildingComp\WULA_MechanoidRecycler\CompProperties_MechanoidRecycler.cs" />
|
||||
<Compile Include="BuildingComp\WULA_MechanoidRecycler\JobDriver_RecycleMechanoid.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\ArmedShuttleIncoming.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\Building_ArmedShuttle.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\Building_ArmedShuttleWithPocket.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\Building_PocketMapExit.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\Dialog_ArmedShuttleTransfer.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\GenStep_WulaPocketSpaceSmall.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Shuttle\PocketSpaceThingHolder.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompProperties_SkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompSkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompPrefabSkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompProperties_PrefabSkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\DebugActions_PrefabSkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\Skyfaller_PrefabSpawner.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\WulaSkyfallerWorldComponent.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\WULA_SkyfallerFactioncs\CompProperties_SkyfallerFaction.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\WULA_SkyfallerFactioncs\CompSkyfallerFaction.cs" />
|
||||
<Compile Include="BuildingComp\WULA_StorageTurret\CompProperties_StorageTurret.cs" />
|
||||
<Compile Include="BuildingComp\WULA_StorageTurret\CompStorageTurret.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TransformAtFullCapacity\CompProperties_TransformAtFullCapacity.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TransformAtFullCapacity\CompProperties_TransformIntoBuilding.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TransformAtFullCapacity\CompTransformAtFullCapacity.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TransformAtFullCapacity\CompTransformIntoBuilding.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TransformAtFullCapacity\TransformValidationUtility.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TrapLauncher\CompProperties_TrapLauncher.cs" />
|
||||
<Compile Include="BuildingComp\WULA_TrapLauncher\CompTrapLauncher.cs" />
|
||||
<Compile Include="Damage\DamageDef_ExtraDamageExtension.cs" />
|
||||
<Compile Include="Damage\DamageWorker_ExtraDamage.cs" />
|
||||
<Compile Include="EventSystem\CompOpenCustomUI.cs" />
|
||||
<Compile Include="EventSystem\Condition\ConditionBase.cs" />
|
||||
<Compile Include="EventSystem\Condition\Condition_FlagExists.cs" />
|
||||
<Compile Include="EventSystem\DebugActions.cs" />
|
||||
<Compile Include="EventSystem\DelayedActionManager.cs" />
|
||||
<Compile Include="EventSystem\Dialog_CustomDisplay.cs" />
|
||||
<Compile Include="EventSystem\Dialog_ManageEventVariables.cs" />
|
||||
<Compile Include="EventSystem\Effect\EffectBase.cs" />
|
||||
<Compile Include="EventSystem\Effect\Effect_CallSkyfaller.cs" />
|
||||
<Compile Include="EventSystem\Effect\Effect_SetTimedFlag.cs" />
|
||||
<Compile Include="EventSystem\EventDef.cs" />
|
||||
<Compile Include="EventSystem\EventUIButtonConfigDef.cs" />
|
||||
<Compile Include="EventSystem\EventUIConfigDef.cs" />
|
||||
<Compile Include="EventSystem\EventVariableManager.cs" />
|
||||
<Compile Include="EventSystem\QuestNode\QuestNode_EventLetter.cs" />
|
||||
<Compile Include="EventSystem\QuestNode\QuestNode_Root_EventLetter.cs" />
|
||||
<Compile Include="Flyover\ThingclassFlyOver.cs" />
|
||||
<Compile Include="Flyover\WULA_AircraftHangar\CompAbilityEffect_AircraftStrike.cs" />
|
||||
<Compile Include="Flyover\WULA_AircraftHangar\CompAircraftHangar.cs" />
|
||||
<Compile Include="Flyover\WULA_AircraftHangar\WorldComponent_AircraftManager.cs" />
|
||||
<Compile Include="Flyover\WULA_BlockedByFlyOverFacility\CompAbilityEffect_BlockedByFlyOverFacility.cs" />
|
||||
<Compile Include="Flyover\WULA_DestroyFlyOverByFacilities\CompProperties_DestroyFlyOverByFacilities.cs" />
|
||||
<Compile Include="Flyover\WULA_FlyOverDropPod\CompProperties_FlyOverDropPod.cs" />
|
||||
<Compile Include="Flyover\WULA_FlyOverEscort\CompFlyOverEscort.cs" />
|
||||
<Compile Include="Flyover\WULA_FlyOverEscort\CompProperties_FlyOverEscort.cs" />
|
||||
<Compile Include="Flyover\WULA_FlyOverFacilities\CompAbilityEffect_RequireFlyOverFacility.cs" />
|
||||
<Compile Include="Flyover\WULA_FlyOverFacilities\CompFlyOverFacilities.cs" />
|
||||
<Compile Include="Flyover\WULA_GlobalFlyOverCooldown\CompAbilityEffect_GlobalFlyOverCooldown.cs" />
|
||||
<Compile Include="Flyover\WULA_GlobalFlyOverCooldown\CompFlyOverCooldown.cs" />
|
||||
<Compile Include="Flyover\WULA_GroundStrafing\CompGroundStrafing.cs" />
|
||||
<Compile Include="Flyover\WULA_SectorSurveillance\CompSectorSurveillance.cs" />
|
||||
<Compile Include="Flyover\WULA_SendLetterAfterTicks\CompProperties_SendLetterAfterTicks.cs" />
|
||||
<Compile Include="Flyover\WULA_SendLetterAfterTicks\CompSendLetterAfterTicks.cs" />
|
||||
<Compile Include="Flyover\WULA_ShipArtillery\CompProperties_ShipArtillery.cs" />
|
||||
<Compile Include="Flyover\WULA_ShipArtillery\CompShipArtillery.cs" />
|
||||
<Compile Include="Flyover\WULA_SpawnFlyOver\CompAbilityEffect_SpawnFlyOver.cs" />
|
||||
<Compile Include="Flyover\WULA_SpawnFlyOver\CompProperties_AbilitySpawnFlyOver.cs" />
|
||||
<Compile Include="GlobalWorkTable\Building_GlobalWorkTable.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_Launchable_ToGlobalStorage\CompProperties_GarbageShield.cs" />
|
||||
<Compile Include="GlobalWorkTable\CompProperties_ProductionCategory.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_ValueConverter\CompProperties_ValueConverter.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_ValueConverter\CompValueConverter.cs" />
|
||||
<Compile Include="GlobalWorkTable\GlobalProductionOrder.cs" />
|
||||
<Compile Include="GlobalWorkTable\GlobalProductionOrderStack.cs" />
|
||||
<Compile Include="GlobalWorkTable\GlobalStorageWorldComponent.cs" />
|
||||
<Compile Include="GlobalWorkTable\GlobalWorkTableAirdropExtension.cs" />
|
||||
<Compile Include="GlobalWorkTable\ITab_GlobalBills.cs" />
|
||||
<Compile Include="GlobalWorkTable\WorkGiver_GlobalWorkTable.cs" />
|
||||
<Compile Include="GlobalWorkTable\JobDriver_GlobalWorkTable.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_Launchable_ToGlobalStorage\CompLaunchable_ToGlobalStorage.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_Launchable_ToGlobalStorage\CompProperties_Launchable_ToGlobalStorage.cs" />
|
||||
<Compile Include="HarmonyPatches\Faction_ShouldHaveLeader_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\Hediff_Mechlink_PostAdd_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_ThingDefGenerator_Techprints_ImpliedTechprintDefs.cs" />
|
||||
<Compile Include="HarmonyPatches\ScenPart_PlayerPawnsArriveMethod_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\WulaSpeciesCorpsePatch.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_FloatMenuOptionProvider_SelectedPawnValid.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_IsColonyMechPlayerControlled.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_MechanitorUtility_CanDraftMech.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_CaravanUIUtility_AddPawnsSections_Postfix.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_CaravanFormingUtility_AllSendablePawns.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_Pawn_ThreatDisabled.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_UncontrolledMechDrawPulse.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_Alert_MechLacksOverseer.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_DisappearWithEffect.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_NanoRepair.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_SwitchableHediff.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffDamgeShield\DRMDamageShield.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffDamgeShield\Hediff_DamageShield.cs" />
|
||||
<Compile Include="Job\JobDriver_InspectBuilding.cs" />
|
||||
<Compile Include="Job\JobGiver_InspectBuilding.cs" />
|
||||
<Compile Include="Pawn\Comp_MultiTurretGun.cs" />
|
||||
<Compile Include="Pawn\Comp_PawnRenderExtra.cs" />
|
||||
<Compile Include="Pawn\WULA_AutoMechCarrier\CompAutoMechCarrier.cs" />
|
||||
<Compile Include="Pawn\WULA_AutoMechCarrier\CompProperties_AutoMechCarrier.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_MainTabWindow_Mechs_Pawns.cs" />
|
||||
<Compile Include="Pawn\WULA_AutoMechCarrier\PawnProductionEntry.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\DroneWorkModeDef.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\DroneGizmo.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\PawnColumnWorker_DroneWorkMode.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\PawnColumnWorker_DroneEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\JobDriver_DroneSelfShutdown.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\JobGiver_DroneSelfShutdown.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalWorkMode_Drone.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalLowEnergy_Drone.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_MechanitorUtility_EverControllable.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\CompAutonomousMech.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalAutonomousWorkMode.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalNeedRecharge.cs" />
|
||||
<Compile Include="Pawn\WULA_BrokenPersonality\MentalBreakWorker_BrokenPersonality.cs" />
|
||||
<Compile Include="Pawn\WULA_BrokenPersonality\MentalStateDefExtension_BrokenPersonality.cs" />
|
||||
<Compile Include="Pawn\WULA_BrokenPersonality\MentalState_BrokenPersonality.cs" />
|
||||
<Compile Include="Pawn\WULA_CompHediffGiver\CompHediffGiver.cs" />
|
||||
<Compile Include="Pawn\WULA_CompHediffGiver\CompProperties_HediffGiver.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\CompChargingBed.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\HediffComp_WulaCharging.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\JobDriver_FeedWulaPatient.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\JobDriver_IngestWulaEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\JobGiverDefExtension_WulaPackEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\JobGiver_WulaGetEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\JobGiver_WulaPackEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\NeedDefExtension_Energy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\Need_WulaEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\ThingDefExtension_EnergySource.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\WorkGiverDefExtension_FeedWula.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\WorkGiver_FeedWulaPatient.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\WorkGiver_Warden_DeliverEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\WorkGiver_Warden_FeedWula.cs" />
|
||||
<Compile Include="Pawn\WULA_Energy\WulaCaravanEnergyDef.cs" />
|
||||
<Compile Include="Pawn\WULA_Flight\CompPawnFlight.cs" />
|
||||
<Compile Include="Pawn\WULA_Flight\CompProperties_PawnFlight.cs" />
|
||||
<Compile Include="Pawn\WULA_Flight\PawnRenderNodeWorker_AttachmentBody_NoFlight.cs" />
|
||||
<Compile Include="Pawn\WULA_Flight\Pawn_FlightTrackerPatches.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\Building_MaintenancePod.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\CompMaintenancePod.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\HediffCompProperties_MaintenanceDamage.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\JobDriver_EnterMaintenancePod.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\JobDriver_HaulToMaintenancePod.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\MaintenanceNeedExtension.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\Need_Maintenance.cs" />
|
||||
<Compile Include="Pawn\WULA_Maintenance\WorkGiver_DoMaintenance.cs" />
|
||||
<Compile Include="Placeworker\CompProperties_CustomRadius.cs" />
|
||||
<Compile Include="QuestNodes\QuestNode_AddInspectionJob.cs" />
|
||||
<Compile Include="QuestNodes\QuestNode_CheckGlobalResource.cs" />
|
||||
<Compile Include="QuestNodes\QuestNode_GeneratePawnWithCustomization.cs" />
|
||||
<Compile Include="QuestNodes\QuestNode_Hyperlinks.cs" />
|
||||
<Compile Include="QuestNodes\QuestNode_SpawnPrefabSkyfallerCaller.cs" />
|
||||
<Compile Include="QuestNodes\QuestPart_GlobalResourceCheck.cs" />
|
||||
<Compile Include="SectionLayer_WulaHull.cs" />
|
||||
<Compile Include="Stat\StatWorker_Energy.cs" />
|
||||
<Compile Include="Stat\StatWorker_Maintenance.cs" />
|
||||
<Compile Include="Stat\StatWorker_NanoRepair.cs" />
|
||||
<Compile Include="Storyteller\WULA_ImportantQuestWithFactionFilter\StorytellerCompProperties_ImportantQuestWithFactionFilter.cs" />
|
||||
<Compile Include="Storyteller\WULA_ImportantQuestWithFactionFilter\StorytellerComp_ImportantQuestWithFactionFilter.cs" />
|
||||
<Compile Include="Storyteller\WULA_SimpleTechnologyTrigger\StorytellerCompProperties_SimpleTechnologyTrigger.cs" />
|
||||
<Compile Include="Storyteller\WULA_SimpleTechnologyTrigger\StorytellerComp_SimpleTechnologyTrigger.cs" />
|
||||
<Compile Include="ThingComp\CompAndPatch_GiveHediffOnShot.cs" />
|
||||
<Compile Include="ThingComp\CompApparelInterceptor.cs" />
|
||||
<Compile Include="ThingComp\CompProperties_DelayedDamageIfNotPlayer.cs" />
|
||||
<Compile Include="ThingComp\CompPsychicScaling.cs" />
|
||||
<Compile Include="ThingComp\CompUseEffect_AddDamageShieldCharges.cs" />
|
||||
<Compile Include="ThingComp\CompUseEffect_OpenCustomUI.cs" />
|
||||
<Compile Include="ThingComp\CompUseEffect_PassionTrainer.cs" />
|
||||
<Compile Include="ThingComp\CompUseEffect_WulaSkillTrainer.cs" />
|
||||
<Compile Include="ThingComp\Comp_WeaponRenderDynamic.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaDamage\CompAreaDamage.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaDamage\CompProperties_AreaDamage.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaShield\AreaShieldManager.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaShield\CompProperties_AreaShield.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaShield\Gizmo_AreaShieldStatus.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaShield\Harmony_AreaShieldInterceptor.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaShield\ThingComp_AreaShield.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaTeleporter\CompProperties_AreaTeleporter.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_Pawn_JobTracker_StartJob.cs" />
|
||||
<Compile Include="ThingComp\WULA_AreaTeleporter\ThingComp_AreaTeleporter.cs" />
|
||||
<Compile Include="ThingComp\WULA_CustomUniqueWeapon\CompCustomUniqueWeapon.cs" />
|
||||
<Compile Include="ThingComp\WULA_CustomUniqueWeapon\CompProperties_CustomUniqueWeapon.cs" />
|
||||
<Compile Include="ThingComp\WULA_DamageTransaction\CompDamageInterceptor.cs" />
|
||||
<Compile Include="ThingComp\WULA_DamageTransaction\CompDamageRelay.cs" />
|
||||
<Compile Include="ThingComp\WULA_DamageTransaction\CompProperties_DamageInterceptor.cs" />
|
||||
<Compile Include="ThingComp\WULA_DamageTransaction\CompProperties_DamageRelay.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_Pawn_PreApplyDamage.cs" />
|
||||
<Compile Include="ThingComp\WULA_GiveHediffsInRange\CompGiveHediffsInRange.cs" />
|
||||
<Compile Include="ThingComp\WULA_GiveHediffsInRange\CompProperties_GiveHediffsInRange.cs" />
|
||||
<Compile Include="ThingComp\WULA_MechRepairKit\CompUseEffect_FixAllHealthConditions.cs" />
|
||||
<Compile Include="ThingComp\WULA_MechRepairKit\Recipe_AdministerWulaMechRepairKit.cs" />
|
||||
<Compile Include="ThingComp\WULA_PeriodicGameCondition\CompPeriodicGameCondition.cs" />
|
||||
<Compile Include="ThingComp\WULA_PeriodicGameCondition\CompProperties_PeriodicGameCondition.cs" />
|
||||
<Compile Include="ThingComp\WULA_PersonaCore\CompExperienceCore.cs" />
|
||||
<Compile Include="ThingComp\WULA_PersonaCore\CompExperienceDataPack.cs" />
|
||||
<Compile Include="ThingComp\WULA_PersonaCore\CompProperties_ExperienceCore.cs" />
|
||||
<Compile Include="ThingComp\WULA_PlaySoundOnSpawn\CompPlaySoundOnSpawn.cs" />
|
||||
<Compile Include="ThingComp\WULA_PlaySoundOnSpawn\CompProperties_PlaySoundOnSpawn.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\CompWulaRitualSpot.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\PsychicRitualDef_AddHediff.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\PsychicRitualDef_Wula.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\PsychicRitualDef_WulaBase.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\PsychicRitualToil_AddHediff.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\PsychicRitualToil_GatherForInvocation_Wula.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\PsychicRitual_TechOffering.cs" />
|
||||
<Compile Include="ThingComp\WULA_PsychicRitual\RitualTagExtension.cs" />
|
||||
<Compile Include="ThingComp\WULA_SkyfallerPawnSpawner\CompProperties_SkyfallerPawnSpawner.cs" />
|
||||
<Compile Include="ThingComp\WULA_SkyfallerPawnSpawner\Skyfaller_PawnSpawner.cs" />
|
||||
<Compile Include="Utils\BezierUtil.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_Cleave\CompCleave.cs" />
|
||||
<Compile Include="HarmonyPatches\Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\DamageInfo_Constructor_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\FloatMenuOptionProvider_Ingest_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\MechanitorUtility_InMechanitorCommandRange_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\Projectile_Launch_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_JobGiver_GatherOfferingsForPsychicRitual.cs" />
|
||||
<Compile Include="HarmonyPatches\NoBloodForWulaPatch.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_CaravanInventoryUtility_FindShuttle.cs" />
|
||||
<Compile Include="HarmonyPatches\MapParent_ShouldRemoveMapNow_Patch.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_RegenerateBackstory.cs" />
|
||||
<Compile Include="HarmonyPatches\IngestPatch.cs" />
|
||||
<Compile Include="Ability\LightningBombardment.cs" />
|
||||
<Compile Include="HarmonyPatches\MechanitorPatch.cs" />
|
||||
<Compile Include="Projectiles\Projectile_WulaPenetratingBullet.cs" />
|
||||
<Compile Include="Projectiles\Projectile_WulaPenetratingBeam.cs" />
|
||||
<Compile Include="Projectiles\Projectile_TrackingBullet.cs" />
|
||||
<Compile Include="Projectiles\TrackingBulletDef.cs" />
|
||||
<Compile Include="Projectiles\ExplosiveTrackingBulletDef.cs" />
|
||||
<Compile Include="Projectiles\Projectile_ExplosiveTrackingBullet.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffSpawner\HediffCompProperties_Spawner.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffSpawner\HediffComp_Spawner.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffSpawner\Tools.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_TimedExplosion.cs" />
|
||||
<Compile Include="Projectiles\Projectile_ConfigurableHellsphereCannon.cs" />
|
||||
<Compile Include="Verb\Verb_ShootBeamSplitAndChain.cs" />
|
||||
<Compile Include="Verb\Verb_ShootShotgun.cs" />
|
||||
<Compile Include="Projectiles\Projectile_CruiseMissile.cs" />
|
||||
<Compile Include="Verb\Verb_ShootBeamExplosive\Verb_ShootBeamExplosive.cs" />
|
||||
<Compile Include="Verb\Verb_ShootBeamExplosive\VerbPropertiesExplosiveBeam.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_Cleave\Verb_MeleeAttack_Cleave.cs" />
|
||||
<Compile Include="Verb\Verb_ShootShotgunWithOffset.cs" />
|
||||
<Compile Include="Verb\Verb_ShootWithOffset.cs" />
|
||||
<Compile Include="WorkGiver\WorkGiver_DeepDrill_WulaConstructor.cs" />
|
||||
<Compile Include="WulaFallenEmpireMod.cs" />
|
||||
<Compile Include="WulaDefOf.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_DamageResponse.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_MultiStrike\CompMultiStrike.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_MultiStrike\Verb_MeleeAttack_MultiStrike.cs" />
|
||||
<Compile Include="Projectiles\Projectile_ExplosiveWithTrail.cs" />
|
||||
<Compile Include="Projectiles\BulletWithTrail.cs" />
|
||||
<Compile Include="Projectiles\Projectile_NorthArcTrail.cs" />
|
||||
<Compile Include="Projectiles\NorthArcModExtension.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_DropCellFinder_SkyfallerCanLandAt.cs" />
|
||||
<Compile Include="HarmonyPatches\MechWeapon\FloatMenuProvider_Mech.cs" />
|
||||
<Compile Include="HarmonyPatches\MechWeapon\Patch_MissingWeapon.cs" />
|
||||
<Compile Include="HarmonyPatches\MechWeapon\Patch_WeaponDrop.cs" />
|
||||
<Compile Include="HarmonyPatches\MechWeapon\CompMechWeapon.cs" />
|
||||
<Compile Include="Verb\Verb_ShootWeaponStealBeam\VerbProperties_WeaponStealBeam.cs" />
|
||||
<Compile Include="Verb\Verb_ShootWeaponStealBeam\Verb_ShootWeaponStealBeam.cs" />
|
||||
<Compile Include="Verb\Verb_ShootMeltBeam.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_GiveHediffsInRangeToRace.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_GiveHediffsInRangeToRace.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_TurretForceTargetable\CompForceTargetable.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_TurretForceTargetable\Patch_ForceTargetable.cs" />
|
||||
<Compile Include="Verb\Verb_Excalibur\VerbProperties_Excalibur.cs" />
|
||||
<Compile Include="Verb\Verb_Excalibur\Verb_Excalibur.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffComp_TopTurret\HediffComp_TopTurret.cs" />
|
||||
<Compile Include="ThingComp\WULA_WeaponSwitch\CompAbilityEffect_GiveSwitchHediff.cs" />
|
||||
<Compile Include="ThingComp\WULA_WeaponSwitch\CompAbilityEffect_RemoveSwitchHediff.cs" />
|
||||
<Compile Include="ThingComp\WULA_WeaponSwitch\WeaponSwitch.cs" />
|
||||
<Compile Include="Designator\Designator_CallSkyfallerInArea.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Verb\Verb_Excalibur\Thing_ExcaliburBeam.cs" />
|
||||
<Compile Include="**\*.cs" Exclude="bin\**;obj\**" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Damage\202512031732.xml" />
|
||||
|
||||
Reference in New Issue
Block a user