Merge branch 'main' of https://git.ra3battle.cn/Kalospacer/WulaFallenEmpireRW
This commit is contained in:
Binary file not shown.
@@ -112,6 +112,14 @@
|
||||
<value2>1</value2>
|
||||
<storeAs>taxAmount</storeAs>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.QuestNode_WriteToEventVariablesWithAdd">
|
||||
<targetVariableName>WULA_Total_Tax_Amount</targetVariableName>
|
||||
<sourceVariableName>taxAmount</sourceVariableName>
|
||||
<value>0</value>
|
||||
<writeMode>Set</writeMode>
|
||||
<overwrite>true</overwrite>
|
||||
</li>
|
||||
|
||||
<li Class="WulaFallenEmpire.QuestNode_CheckGlobalResource">
|
||||
<resourceDef>Silver</resourceDef>
|
||||
<requiredCount>$taxAmount</requiredCount>
|
||||
|
||||
@@ -244,6 +244,18 @@
|
||||
<count>1</count>
|
||||
</li>
|
||||
|
||||
<!-- 附近的物品 -->
|
||||
<li Class="ScenPart_ScatterThingsNearPlayerStart">
|
||||
<def>ScatterThingsNearPlayerStart</def>
|
||||
<thingDef>Steel</thingDef>
|
||||
<count>500</count>
|
||||
</li>
|
||||
<li Class="ScenPart_ScatterThingsNearPlayerStart">
|
||||
<def>ScatterThingsNearPlayerStart</def>
|
||||
<thingDef>ComponentIndustrial</thingDef>
|
||||
<count>30</count>
|
||||
</li>
|
||||
|
||||
<!-- 初始科技 -->
|
||||
<li Class="ScenPart_StartingResearch">
|
||||
<def>StartingResearch</def>
|
||||
|
||||
@@ -1882,7 +1882,6 @@
|
||||
<tradeability>None</tradeability>
|
||||
<highlightColor>(0.56, 0.62, 0.9)</highlightColor>
|
||||
<uiIconPath>Wula/Building/WULA_Combat_Excavator_Icon</uiIconPath>
|
||||
<designationCategory>WULA_Buildings</designationCategory>
|
||||
<rotatable>false</rotatable>
|
||||
<graphicData>
|
||||
<texPath>Wula/Building/WULA_Combat_Excavator</texPath>
|
||||
@@ -2332,7 +2331,6 @@
|
||||
<tradeability>None</tradeability>
|
||||
<highlightColor>(0.56, 0.62, 0.9)</highlightColor>
|
||||
<uiIconPath>Wula/Building/WULA_Combat_Excavator_Icon</uiIconPath>
|
||||
<designationCategory>WULA_Buildings</designationCategory>
|
||||
<rotatable>false</rotatable>
|
||||
<graphicData>
|
||||
<texPath>Wula/Building/WULA_Combat_Excavator</texPath>
|
||||
@@ -2432,23 +2430,23 @@
|
||||
|
||||
<explosions>
|
||||
<li>
|
||||
<damageDef>WULA_Combat_Excavator_Shoke_S_Damage</damageDef>
|
||||
<radius>5</radius>
|
||||
<damageDef>WULA_Sow_Excavator_Shoke_Damage</damageDef>
|
||||
<radius>4</radius>
|
||||
<armorPenetration>2</armorPenetration>
|
||||
<damageAmount>10</damageAmount>
|
||||
<explosionSound>Wula_Disturber_Turret_Weapon_Explosive</explosionSound>
|
||||
</li>
|
||||
<li>
|
||||
<damageDef>WULA_Combat_Excavator_Shoke_S_Damage</damageDef>
|
||||
<radius>7</radius>
|
||||
<damageDef>WULA_Sow_Excavator_Shoke_Damage</damageDef>
|
||||
<radius>6</radius>
|
||||
<armorPenetration>2</armorPenetration>
|
||||
<damageAmount>10</damageAmount>
|
||||
<excludeRadius>0.9</excludeRadius>
|
||||
<explosionSound>Wula_Disturber_Turret_Weapon_Explosive</explosionSound>
|
||||
</li>
|
||||
<li>
|
||||
<damageDef>WULA_Combat_Excavator_Shoke_Damage</damageDef>
|
||||
<radius>7</radius>
|
||||
<damageDef>WULA_Sow_Excavator_Shoke_Damage</damageDef>
|
||||
<radius>8</radius>
|
||||
<armorPenetration>2</armorPenetration>
|
||||
<damageAmount>20</damageAmount>
|
||||
<excludeRadius>0.9</excludeRadius>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
<li>questName->什一税税收</li>
|
||||
</WULA_Base_Tex_Quest.questNameRules.rulesStrings>
|
||||
<WULA_Base_Tex_Quest.questDescriptionRules.rulesStrings>
|
||||
<li>questDescription->唯死亡和税收不可避免——按时上交什一税是乌拉帝国殖民地的光荣义务。\n\n乌拉帝国每隔一个季度(15天)收一次什一税,什一税会从殖民地储存在舰队中的资产里面扣除,你可以建造<color=#6BB7B7><i>乌拉帝国物资输送舱</i></color>来将物资输送到位于轨道上的舰队。\n\n乌拉帝国对积极纳税的殖民地会给予更多关照——但是如果拖延,则每延期一天都会惹其不快,最后甚至有可能被定性为叛国!</li>
|
||||
<li>questDescription->唯死亡和税收不可避免——按时上交什一税是乌拉帝国殖民地的光荣义务。\n\n乌拉帝国每隔10天收一次什一税,什一税会从殖民地储存在舰队中的资产里面扣除,你可以建造<color=#6BB7B7><i>乌拉帝国物资输送舱</i></color>来将物资输送到位于轨道上的舰队。\n\n乌拉帝国对积极纳税的殖民地会给予更多关照——但是如果拖延,则每延期一天都会惹其不快,最后甚至有可能被定性为叛国!</li>
|
||||
</WULA_Base_Tex_Quest.questDescriptionRules.rulesStrings>
|
||||
</LanguageData>
|
||||
@@ -0,0 +1,536 @@
|
||||
using System;
|
||||
using RimWorld.QuestGen;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
{
|
||||
public class QuestNode_WriteToEventVariablesWithAdd : QuestNode
|
||||
{
|
||||
// 要写入的变量名(在EventVariableManager中的名字)
|
||||
[NoTranslate]
|
||||
public SlateRef<string> targetVariableName;
|
||||
|
||||
// 要从Quest中读取的变量名(Slate中的变量)
|
||||
[NoTranslate]
|
||||
public SlateRef<string> sourceVariableName;
|
||||
|
||||
// 如果sourceVariableName为空,使用这个值
|
||||
public SlateRef<object> value;
|
||||
|
||||
// 写入模式
|
||||
public WriteMode writeMode = WriteMode.Set;
|
||||
|
||||
// 是否检查变量已存在
|
||||
public SlateRef<bool> checkExisting = true;
|
||||
|
||||
// 如果变量已存在,是否覆盖(仅用于Set模式)
|
||||
public SlateRef<bool> overwrite = false;
|
||||
|
||||
// 操作符(用于Add和Multiply模式)
|
||||
public MathOperator mathOperator = MathOperator.Add;
|
||||
|
||||
// 是否强制转换类型(当类型不匹配时)
|
||||
public SlateRef<bool> forceTypeConversion = false;
|
||||
|
||||
// 当类型不匹配且无法转换时的行为
|
||||
public TypeMismatchBehavior onTypeMismatch = TypeMismatchBehavior.ConvertToString;
|
||||
|
||||
// 写入后是否从Slate中删除源变量
|
||||
public SlateRef<bool> removeFromSlate = false;
|
||||
|
||||
// 是否记录调试信息
|
||||
public SlateRef<bool> logDebug = false;
|
||||
|
||||
// 允许操作的数值类型
|
||||
public List<Type> allowedNumericTypes = new List<Type>
|
||||
{
|
||||
typeof(int),
|
||||
typeof(float),
|
||||
typeof(double),
|
||||
typeof(long),
|
||||
typeof(short),
|
||||
typeof(decimal)
|
||||
};
|
||||
|
||||
public enum WriteMode
|
||||
{
|
||||
Set, // 直接设置值(覆盖)
|
||||
Add, // 相加(仅对数值类型)
|
||||
Multiply, // 相乘(仅对数值类型)
|
||||
Append, // 追加(字符串、列表等)
|
||||
Min, // 取最小值(仅对数值类型)
|
||||
Max, // 取最大值(仅对数值类型)
|
||||
Increment // 自增1(仅对数值类型,忽略源值)
|
||||
}
|
||||
|
||||
public enum MathOperator
|
||||
{
|
||||
Add, // 加法
|
||||
Subtract, // 减法
|
||||
Multiply, // 乘法
|
||||
Divide // 除法
|
||||
}
|
||||
|
||||
public enum TypeMismatchBehavior
|
||||
{
|
||||
ThrowError, // 抛出错误
|
||||
Skip, // 跳过操作
|
||||
ConvertToString,// 转换为字符串
|
||||
UseDefault // 使用默认值
|
||||
}
|
||||
|
||||
protected override bool TestRunInt(Slate slate)
|
||||
{
|
||||
return RunInternal(slate, isTestRun: true);
|
||||
}
|
||||
|
||||
protected override void RunInt()
|
||||
{
|
||||
RunInternal(QuestGen.slate, isTestRun: false);
|
||||
}
|
||||
|
||||
private bool RunInternal(Slate slate, bool isTestRun)
|
||||
{
|
||||
// 获取目标变量名
|
||||
string targetName = targetVariableName.GetValue(slate);
|
||||
if (string.IsNullOrEmpty(targetName))
|
||||
{
|
||||
Log.Error("[QuestNode_WriteToEventVariablesWithAdd] targetVariableName is null or empty!");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 获取要操作的值
|
||||
object sourceValue = GetSourceValue(slate);
|
||||
if (sourceValue == null && writeMode != WriteMode.Increment)
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Warning($"[QuestNode_WriteToEventVariablesWithAdd] No value to operate for variable '{targetName}'.");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 在测试运行时不需要实际写入
|
||||
if (isTestRun)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// 获取EventVariableManager
|
||||
var eventVarManager = Find.World.GetComponent<EventVariableManager>();
|
||||
if (eventVarManager == null)
|
||||
{
|
||||
Log.Error("[QuestNode_WriteToEventVariablesWithAdd] EventVariableManager not found!");
|
||||
return false;
|
||||
}
|
||||
|
||||
bool variableExists = eventVarManager.HasVariable(targetName);
|
||||
object currentValue = variableExists ? eventVarManager.GetVariable<object>(targetName) : null;
|
||||
|
||||
// 记录操作前的状态
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Message($"[QuestNode_WriteToEventVariablesWithAdd] Operation for variable '{targetName}':");
|
||||
Log.Message($" - Mode: {writeMode}");
|
||||
Log.Message($" - Current value: {currentValue ?? "[null]"} (Type: {currentValue?.GetType().Name ?? "null"})");
|
||||
Log.Message($" - Source value: {sourceValue ?? "[null]"} (Type: {sourceValue?.GetType().Name ?? "null"})");
|
||||
}
|
||||
|
||||
// 根据写入模式计算新值
|
||||
object newValue = CalculateNewValue(currentValue, sourceValue, slate);
|
||||
|
||||
// 如果新值为null(可能是由于类型不匹配被跳过了)
|
||||
if (newValue == null)
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Message($" - Operation skipped (new value is null)");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 写入变量
|
||||
eventVarManager.SetVariable(targetName, newValue);
|
||||
|
||||
// 写入后从Slate中删除源变量
|
||||
if (removeFromSlate.GetValue(slate) && !string.IsNullOrEmpty(sourceVariableName.GetValue(slate)))
|
||||
{
|
||||
slate.Remove(sourceVariableName.GetValue(slate));
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Message($" - Removed source variable '{sourceVariableName.GetValue(slate)}' from Slate");
|
||||
}
|
||||
}
|
||||
|
||||
// 验证写入
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
object readBackValue = eventVarManager.GetVariable<object>(targetName);
|
||||
bool writeVerified = (readBackValue == null && newValue == null) ||
|
||||
(readBackValue != null && readBackValue.Equals(newValue));
|
||||
|
||||
Log.Message($" - New value written: {newValue} (Type: {newValue.GetType().Name})");
|
||||
Log.Message($" - Write verified: {writeVerified}");
|
||||
if (!writeVerified)
|
||||
{
|
||||
Log.Warning($" - Verification failed! Expected: {newValue}, Got: {readBackValue}");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private object GetSourceValue(Slate slate)
|
||||
{
|
||||
string sourceName = sourceVariableName.GetValue(slate);
|
||||
|
||||
if (!string.IsNullOrEmpty(sourceName))
|
||||
{
|
||||
if (slate.TryGet<object>(sourceName, out var slateValue))
|
||||
{
|
||||
return slateValue;
|
||||
}
|
||||
}
|
||||
|
||||
return value.GetValue(slate);
|
||||
}
|
||||
|
||||
private object CalculateNewValue(object currentValue, object sourceValue, Slate slate)
|
||||
{
|
||||
switch (writeMode)
|
||||
{
|
||||
case WriteMode.Set:
|
||||
return HandleSetMode(currentValue, sourceValue, slate);
|
||||
|
||||
case WriteMode.Add:
|
||||
case WriteMode.Multiply:
|
||||
return HandleMathOperation(currentValue, sourceValue, writeMode == WriteMode.Add, slate);
|
||||
|
||||
case WriteMode.Append:
|
||||
return HandleAppendMode(currentValue, sourceValue, slate);
|
||||
|
||||
case WriteMode.Min:
|
||||
return HandleMinMaxMode(currentValue, sourceValue, isMin: true, slate);
|
||||
|
||||
case WriteMode.Max:
|
||||
return HandleMinMaxMode(currentValue, sourceValue, isMin: false, slate);
|
||||
|
||||
case WriteMode.Increment:
|
||||
return HandleIncrementMode(currentValue, slate);
|
||||
|
||||
default:
|
||||
return sourceValue;
|
||||
}
|
||||
}
|
||||
|
||||
private object HandleSetMode(object currentValue, object sourceValue, Slate slate)
|
||||
{
|
||||
bool variableExists = currentValue != null;
|
||||
|
||||
if (checkExisting.GetValue(slate) && variableExists)
|
||||
{
|
||||
if (!overwrite.GetValue(slate))
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Message($" - Variable exists and overwrite is false, keeping current value");
|
||||
}
|
||||
return currentValue; // 不覆盖,返回原值
|
||||
}
|
||||
}
|
||||
|
||||
return sourceValue;
|
||||
}
|
||||
|
||||
private object HandleMathOperation(object currentValue, object sourceValue, bool isAddition, Slate slate)
|
||||
{
|
||||
// 如果当前值不存在,直接使用源值
|
||||
if (currentValue == null)
|
||||
{
|
||||
return sourceValue;
|
||||
}
|
||||
|
||||
// 尝试进行数学运算
|
||||
try
|
||||
{
|
||||
// 检查类型是否支持数学运算
|
||||
if (!IsNumericType(currentValue.GetType()) || !IsNumericType(sourceValue.GetType()))
|
||||
{
|
||||
return HandleTypeMismatch(currentValue, sourceValue, "non-numeric", slate);
|
||||
}
|
||||
|
||||
// 转换为动态类型以进行数学运算
|
||||
dynamic current = ConvertToBestNumericType(currentValue);
|
||||
dynamic source = ConvertToBestNumericType(sourceValue);
|
||||
|
||||
dynamic result;
|
||||
|
||||
switch (mathOperator)
|
||||
{
|
||||
case MathOperator.Add:
|
||||
result = current + source;
|
||||
break;
|
||||
case MathOperator.Subtract:
|
||||
result = current - source;
|
||||
break;
|
||||
case MathOperator.Multiply:
|
||||
result = current * source;
|
||||
break;
|
||||
case MathOperator.Divide:
|
||||
if (source == 0)
|
||||
{
|
||||
Log.Error($"[QuestNode_WriteToEventVariablesWithAdd] Division by zero for variable operation");
|
||||
return currentValue;
|
||||
}
|
||||
result = current / source;
|
||||
break;
|
||||
default:
|
||||
result = current + source;
|
||||
break;
|
||||
}
|
||||
|
||||
// 根据配置决定返回类型
|
||||
if (forceTypeConversion.GetValue(slate))
|
||||
{
|
||||
// 转换为与当前值相同的类型
|
||||
return Convert.ChangeType(result, currentValue.GetType());
|
||||
}
|
||||
else
|
||||
{
|
||||
// 返回最佳类型(通常是double或decimal)
|
||||
return result;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Error($"[QuestNode_WriteToEventVariablesWithAdd] Math operation failed: {ex.Message}");
|
||||
}
|
||||
return currentValue;
|
||||
}
|
||||
}
|
||||
|
||||
private object HandleAppendMode(object currentValue, object sourceValue, Slate slate)
|
||||
{
|
||||
// 如果当前值不存在,直接使用源值
|
||||
if (currentValue == null)
|
||||
{
|
||||
return sourceValue;
|
||||
}
|
||||
|
||||
// 处理字符串追加
|
||||
if (currentValue is string currentStr && sourceValue is string sourceStr)
|
||||
{
|
||||
return currentStr + sourceStr;
|
||||
}
|
||||
|
||||
// 处理列表追加
|
||||
if (currentValue is System.Collections.IEnumerable currentEnumerable &&
|
||||
sourceValue is System.Collections.IEnumerable sourceEnumerable)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 尝试创建新列表并添加所有元素
|
||||
var resultList = new List<object>();
|
||||
|
||||
foreach (var item in currentEnumerable)
|
||||
resultList.Add(item);
|
||||
|
||||
foreach (var item in sourceEnumerable)
|
||||
resultList.Add(item);
|
||||
|
||||
return resultList;
|
||||
}
|
||||
catch
|
||||
{
|
||||
// 如果列表操作失败,回退到字符串追加
|
||||
return currentValue.ToString() + sourceValue.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
// 其他类型:转换为字符串并追加
|
||||
return currentValue.ToString() + sourceValue.ToString();
|
||||
}
|
||||
|
||||
private object HandleMinMaxMode(object currentValue, object sourceValue, bool isMin, Slate slate)
|
||||
{
|
||||
// 如果当前值不存在,直接使用源值
|
||||
if (currentValue == null)
|
||||
{
|
||||
return sourceValue;
|
||||
}
|
||||
|
||||
// 检查类型是否支持比较
|
||||
if (!(currentValue is IComparable currentComparable) || !(sourceValue is IComparable sourceComparable))
|
||||
{
|
||||
return HandleTypeMismatch(currentValue, sourceValue, "non-comparable", slate);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
int comparison = currentComparable.CompareTo(sourceComparable);
|
||||
|
||||
if (isMin)
|
||||
{
|
||||
// 取最小值
|
||||
return comparison <= 0 ? currentValue : sourceValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 取最大值
|
||||
return comparison >= 0 ? currentValue : sourceValue;
|
||||
}
|
||||
}
|
||||
catch (ArgumentException)
|
||||
{
|
||||
// 类型不匹配,无法比较
|
||||
return HandleTypeMismatch(currentValue, sourceValue, "type mismatch for comparison", slate);
|
||||
}
|
||||
}
|
||||
|
||||
private object HandleIncrementMode(object currentValue, Slate slate)
|
||||
{
|
||||
// 如果当前值不存在,从1开始
|
||||
if (currentValue == null)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
// 检查是否是数值类型
|
||||
if (!IsNumericType(currentValue.GetType()))
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Warning($"[QuestNode_WriteToEventVariablesWithAdd] Cannot increment non-numeric type: {currentValue.GetType().Name}");
|
||||
}
|
||||
return currentValue;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
dynamic current = ConvertToBestNumericType(currentValue);
|
||||
dynamic result = current + 1;
|
||||
|
||||
if (forceTypeConversion.GetValue(slate))
|
||||
{
|
||||
return Convert.ChangeType(result, currentValue.GetType());
|
||||
}
|
||||
else
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Error($"[QuestNode_WriteToEventVariablesWithAdd] Increment operation failed: {ex.Message}");
|
||||
}
|
||||
return currentValue;
|
||||
}
|
||||
}
|
||||
|
||||
private object HandleTypeMismatch(object currentValue, object sourceValue, string mismatchReason, Slate slate)
|
||||
{
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Warning($"[QuestNode_WriteToEventVariablesWithAdd] Type mismatch for operation: {mismatchReason}");
|
||||
}
|
||||
|
||||
switch (onTypeMismatch)
|
||||
{
|
||||
case TypeMismatchBehavior.ThrowError:
|
||||
throw new InvalidOperationException($"Type mismatch for operation: {mismatchReason}");
|
||||
|
||||
case TypeMismatchBehavior.Skip:
|
||||
if (logDebug.GetValue(slate))
|
||||
{
|
||||
Log.Message($" - Skipping operation due to type mismatch");
|
||||
}
|
||||
return currentValue; // 保持原值
|
||||
|
||||
case TypeMismatchBehavior.ConvertToString:
|
||||
// 都转换为字符串
|
||||
return currentValue.ToString() + " | " + sourceValue.ToString();
|
||||
|
||||
case TypeMismatchBehavior.UseDefault:
|
||||
// 使用源值作为默认
|
||||
return sourceValue;
|
||||
|
||||
default:
|
||||
return currentValue;
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsNumericType(Type type)
|
||||
{
|
||||
if (type == null) return false;
|
||||
|
||||
TypeCode typeCode = Type.GetTypeCode(type);
|
||||
switch (typeCode)
|
||||
{
|
||||
case TypeCode.Byte:
|
||||
case TypeCode.SByte:
|
||||
case TypeCode.UInt16:
|
||||
case TypeCode.UInt32:
|
||||
case TypeCode.UInt64:
|
||||
case TypeCode.Int16:
|
||||
case TypeCode.Int32:
|
||||
case TypeCode.Int64:
|
||||
case TypeCode.Decimal:
|
||||
case TypeCode.Double:
|
||||
case TypeCode.Single:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private dynamic ConvertToBestNumericType(object value)
|
||||
{
|
||||
if (value == null) return 0;
|
||||
|
||||
Type type = value.GetType();
|
||||
TypeCode typeCode = Type.GetTypeCode(type);
|
||||
|
||||
switch (typeCode)
|
||||
{
|
||||
case TypeCode.Decimal:
|
||||
return (decimal)value;
|
||||
case TypeCode.Double:
|
||||
return (double)value;
|
||||
case TypeCode.Single:
|
||||
return (float)value;
|
||||
case TypeCode.Int64:
|
||||
return (long)value;
|
||||
case TypeCode.Int32:
|
||||
return (int)value;
|
||||
case TypeCode.Int16:
|
||||
return (short)value;
|
||||
case TypeCode.UInt64:
|
||||
return (ulong)value;
|
||||
case TypeCode.UInt32:
|
||||
return (uint)value;
|
||||
case TypeCode.UInt16:
|
||||
return (ushort)value;
|
||||
case TypeCode.Byte:
|
||||
return (byte)value;
|
||||
case TypeCode.SByte:
|
||||
return (sbyte)value;
|
||||
default:
|
||||
// 尝试转换
|
||||
try
|
||||
{
|
||||
return Convert.ToDouble(value);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -74,7 +74,335 @@
|
||||
<HintPath>..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Compile Include="**\*.cs" Exclude="bin\**;obj\**" />
|
||||
<Compile Include="Ability\CompAbilityEffect_LaunchMultiProjectile.cs" />
|
||||
<Compile Include="Ability\CompAbilityEffect_RequiresNonHostility.cs" />
|
||||
<Compile Include="Ability\CompAbilityEffect_ResearchPrereq.cs" />
|
||||
<Compile Include="Ability\LightningBombardment.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_AbilityCallSkyfaller\CompAbilityEffect_CallSkyfaller.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCallSkyfaller\CompProperties_AbilityCallSkyfaller.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityCallSkyfaller\MapComponent_SkyfallerDelayed.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_AbilitySpawnAligned\CompAbilityEffect_SpawnAligned.cs" />
|
||||
<Compile Include="Ability\WULA_AbilitySpawnAligned\CompProperties_AbilitySpawnAligned.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityStunKnockback\CompAbilityEffect_StunKnockback.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityStunKnockback\CompProperties_StunKnockback.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityTeleportSelf\CompAbilityEffect_TeleportSelf.cs" />
|
||||
<Compile Include="Ability\WULA_AbilityTeleportSelf\CompProperties_AbilityTeleportSelf.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\Building_TurretGunHasSpeed.cs" />
|
||||
<Compile Include="BuildingComp\CompPathCostUpdater.cs" />
|
||||
<Compile Include="BuildingComp\WULA_BuildingBombardment\CompBuildingBombardment.cs" />
|
||||
<Compile Include="BuildingComp\WULA_BuildingBombardment\CompProperties_BuildingBombardment.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_PhaseCombatTower\CompPhaseCombatTower.cs" />
|
||||
<Compile Include="BuildingComp\WULA_PhaseCombatTower\CompProperties_PhaseCombatTower.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\CompPrefabSkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompProperties_PrefabSkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompProperties_SkyfallerCaller.cs" />
|
||||
<Compile Include="BuildingComp\WULA_SkyfallerCaller\CompSkyfallerCaller.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_Teleporter\CompMapTeleporter.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Teleporter\CompProperties_MapTeleporter.cs" />
|
||||
<Compile Include="BuildingComp\WULA_Teleporter\WULA_TeleportLandingMarker.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\DamageDefExtension_TerrainCover.cs" />
|
||||
<Compile Include="Damage\DamageDef_ExtraDamageExtension.cs" />
|
||||
<Compile Include="Damage\DamageWorker_ExplosionWithTerrain.cs" />
|
||||
<Compile Include="Damage\DamageWorker_ExtraDamage.cs" />
|
||||
<Compile Include="Designator\Designator_CallSkyfallerInArea.cs" />
|
||||
<Compile Include="Designator\Designator_TeleportArrival.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="EventSystem\QuestNode\QuestNode_WriteToEventVariablesWithAdd.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\CompProperties_ProductionCategory.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\JobDriver_GlobalWorkTable.cs" />
|
||||
<Compile Include="GlobalWorkTable\WorkGiver_GlobalWorkTable.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_Launchable_ToGlobalStorage\CompLaunchable_ToGlobalStorage.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_Launchable_ToGlobalStorage\CompProperties_GarbageShield.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_Launchable_ToGlobalStorage\CompProperties_Launchable_ToGlobalStorage.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_ValueConverter\CompProperties_ValueConverter.cs" />
|
||||
<Compile Include="GlobalWorkTable\WULA_ValueConverter\CompValueConverter.cs" />
|
||||
<Compile Include="HarmonyPatches\Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\DamageInfo_Constructor_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\Faction_ShouldHaveLeader_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\FloatMenuOptionProvider_Ingest_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\Hediff_Mechlink_PostAdd_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\IngestPatch.cs" />
|
||||
<Compile Include="HarmonyPatches\MapParent_ShouldRemoveMapNow_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\MechanitorPatch.cs" />
|
||||
<Compile Include="HarmonyPatches\MechanitorUtility_InMechanitorCommandRange_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\MechWeapon\CompMechWeapon.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\NoBloodForWulaPatch.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_CaravanInventoryUtility_FindShuttle.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_CaravanUIUtility_AddPawnsSections_Postfix.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_DropCellFinder_SkyfallerCanLandAt.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_JobGiver_GatherOfferingsForPsychicRitual.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_Pawn_JobTracker_StartJob.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_Pawn_PreApplyDamage.cs" />
|
||||
<Compile Include="HarmonyPatches\Patch_ThingDefGenerator_Techprints_ImpliedTechprintDefs.cs" />
|
||||
<Compile Include="HarmonyPatches\Projectile_Launch_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\ScenPart_PlayerPawnsArriveMethod_Patch.cs" />
|
||||
<Compile Include="HarmonyPatches\WulaSpeciesCorpsePatch.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_Alert_MechLacksOverseer.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_CaravanFormingUtility_AllSendablePawns.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_FloatMenuOptionProvider_SelectedPawnValid.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_IsColonyMechPlayerControlled.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_MainTabWindow_Mechs_Pawns.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_MechanitorUtility_CanDraftMech.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_MechanitorUtility_EverControllable.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_Pawn_ThreatDisabled.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_AutonomousMech\Patch_UncontrolledMechDrawPulse.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_TurretForceTargetable\CompForceTargetable.cs" />
|
||||
<Compile Include="HarmonyPatches\WULA_TurretForceTargetable\Patch_ForceTargetable.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_DisappearWithEffect.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_GiveHediffsInRangeToRace.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_NanoRepair.cs" />
|
||||
<Compile Include="HediffComp\HediffCompProperties_SwitchableHediff.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_DamageResponse.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_GiveHediffsInRangeToRace.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_RegenerateBackstory.cs" />
|
||||
<Compile Include="HediffComp\HediffComp_TimedExplosion.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffComp_TopTurret\HediffComp_TopTurret.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffDamgeShield\DRMDamageShield.cs" />
|
||||
<Compile Include="HediffComp\WULA_HediffDamgeShield\Hediff_DamageShield.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="Job\JobDriver_InspectBuilding.cs" />
|
||||
<Compile Include="Job\JobGiver_InspectBuilding.cs" />
|
||||
<Compile Include="PawnsArrivalMode\PawnsArrivalModeWorker_EdgeTeleport.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="Pawn\WULA_AutoMechCarrier\PawnProductionEntry.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\CompAutonomousMech.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\DroneGizmo.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\JobGiver_DroneSelfShutdown.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\PawnColumnWorker_DroneEnergy.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\PawnColumnWorker_DroneWorkMode.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalAutonomousWorkMode.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalLowEnergy_Drone.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalNeedRecharge.cs" />
|
||||
<Compile Include="Pawn\WULA_AutonomousMech\ThinkNode_ConditionalWorkMode_Drone.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_Cat_Invisible\CompFighterInvisible.cs" />
|
||||
<Compile Include="Pawn\WULA_Cat_Invisible\CompProperties_FighterInvisible.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="Projectiles\BulletWithTrail.cs" />
|
||||
<Compile Include="Projectiles\ExplosiveTrackingBulletDef.cs" />
|
||||
<Compile Include="Projectiles\NorthArcModExtension.cs" />
|
||||
<Compile Include="Projectiles\Projectile_ConfigurableHellsphereCannon.cs" />
|
||||
<Compile Include="Projectiles\Projectile_CruiseMissile.cs" />
|
||||
<Compile Include="Projectiles\Projectile_ExplosiveTrackingBullet.cs" />
|
||||
<Compile Include="Projectiles\Projectile_ExplosiveWithTrail.cs" />
|
||||
<Compile Include="Projectiles\Projectile_NorthArcTrail.cs" />
|
||||
<Compile Include="Projectiles\Projectile_TrackingBullet.cs" />
|
||||
<Compile Include="Projectiles\Projectile_WulaPenetratingBeam.cs" />
|
||||
<Compile Include="Projectiles\Projectile_WulaPenetratingBullet.cs" />
|
||||
<Compile Include="Projectiles\TrackingBulletDef.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.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="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="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="ThingComp\WULA_WeaponSwitch\CompAbilityEffect_GiveSwitchHediff.cs" />
|
||||
<Compile Include="ThingComp\WULA_WeaponSwitch\CompAbilityEffect_RemoveSwitchHediff.cs" />
|
||||
<Compile Include="ThingComp\WULA_WeaponSwitch\WeaponSwitch.cs" />
|
||||
<Compile Include="Utils\BezierUtil.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_Cleave\CompCleave.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_Cleave\Verb_MeleeAttack_Cleave.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_MultiStrike\CompMultiStrike.cs" />
|
||||
<Compile Include="Verb\MeleeAttack_MultiStrike\Verb_MeleeAttack_MultiStrike.cs" />
|
||||
<Compile Include="Verb\Verb_Excalibur\Thing_ExcaliburBeam.cs" />
|
||||
<Compile Include="Verb\Verb_Excalibur\VerbProperties_Excalibur.cs" />
|
||||
<Compile Include="Verb\Verb_Excalibur\Verb_Excalibur.cs" />
|
||||
<Compile Include="Verb\Verb_ShootArc.cs" />
|
||||
<Compile Include="Verb\Verb_ShootBeamExplosive\VerbPropertiesExplosiveBeam.cs" />
|
||||
<Compile Include="Verb\Verb_ShootBeamExplosive\Verb_ShootBeamExplosive.cs" />
|
||||
<Compile Include="Verb\Verb_ShootBeamSplitAndChain.cs" />
|
||||
<Compile Include="Verb\Verb_ShootMeltBeam.cs" />
|
||||
<Compile Include="Verb\Verb_ShootShotgun.cs" />
|
||||
<Compile Include="Verb\Verb_ShootShotgunWithOffset.cs" />
|
||||
<Compile Include="Verb\Verb_ShootWeaponStealBeam\VerbProperties_WeaponStealBeam.cs" />
|
||||
<Compile Include="Verb\Verb_ShootWeaponStealBeam\Verb_ShootWeaponStealBeam.cs" />
|
||||
<Compile Include="Verb\Verb_ShootWithOffset.cs" />
|
||||
<Compile Include="WorkGiver\WorkGiver_DeepDrill_WulaConstructor.cs" />
|
||||
<Compile Include="WulaDefOf.cs" />
|
||||
<Compile Include="WulaFallenEmpireMod.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- 自定义清理任务,删除obj文件夹中的临时文件 -->
|
||||
|
||||
11
mod.vdf
Normal file
11
mod.vdf
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
"workshopitem"
|
||||
{
|
||||
"appid" "294100"
|
||||
"contentfolder" "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\WulaFallenEmpireV2"
|
||||
"previewfile" "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\WulaFallenEmpireV2\\About\\Preview.png"
|
||||
"visibility" "0"
|
||||
"title" "Wula Fallen Empire V2"
|
||||
"changenote" "1.6"
|
||||
"publishedfileid" "3622186519"
|
||||
}
|
||||
Reference in New Issue
Block a user