This commit is contained in:
Tourswen
2025-10-01 11:37:15 +08:00
parent b1b254ce0e
commit 73d9e0b453
12 changed files with 140 additions and 55 deletions

Binary file not shown.

View File

@@ -100,7 +100,7 @@
<skillGains>
<Shooting>-10</Shooting>
<Melee>-10</Melee>
<Plants>5</Plants>
<Plants>50</Plants>
</skillGains>
<spawnCategories>
@@ -129,7 +129,7 @@
<li>Intellectual</li>
</workDisables>
<skillGains>
<Construction>5</Construction>
<Construction>50</Construction>
</skillGains>
<spawnCategories>
@@ -158,7 +158,7 @@
<li>Intellectual</li>
</workDisables>
<skillGains>
<Crafting>5</Crafting>
<Crafting>50</Crafting>
</skillGains>
<spawnCategories>
@@ -187,8 +187,8 @@
<li>Intellectual</li>
</workDisables>
<skillGains>
<Shooting>5</Shooting>
<Melee>5</Melee>
<Shooting>50</Shooting>
<Melee>50</Melee>
</skillGains>
<spawnCategories>
@@ -217,8 +217,8 @@
<li>Intellectual</li>
</workDisables>
<skillGains>
<Shooting>3</Shooting>
<Melee>3</Melee>
<Shooting>30</Shooting>
<Melee>30</Melee>
</skillGains>
<spawnCategories>
@@ -247,8 +247,8 @@
<li>Intellectual</li>
</workDisables>
<skillGains>
<Shooting>8</Shooting>
<Melee>5</Melee>
<Shooting>80</Shooting>
<Melee>50</Melee>
</skillGains>
<spawnCategories>
@@ -301,7 +301,7 @@
<!-- <li>Artistic</li> -->
</workDisables>
<skillGains>
<Intellectual>10</Intellectual>
<Intellectual>100</Intellectual>
</skillGains>
<spawnCategories>

View File

@@ -31,22 +31,22 @@
<defName>ARA_IncubationCost</defName>
<label>孵化所需营养</label>
<description>孵化该武装器官/织物所需的总营养</description>
<category>ARA_Incubation_StatCategory</category>
<category>Basics</category>
<defaultBaseValue>1</defaultBaseValue>
<minValue>0</minValue>
<toStringStyle>FloatOne</toStringStyle>
<formatString>{0} 份</formatString>
<!-- <minifiedThingInherits>true</minifiedThingInherits> -->
<displayPriorityInCategory>5010</displayPriorityInCategory>
<!-- <showOnUnhaulables>false</showOnUnhaulables>
<showIfUndefined>false</showIfUndefined> -->
<!-- <showOnUnhaulables>false</showOnUnhaulables> -->
<showIfUndefined>false</showIfUndefined>
<cacheable>true</cacheable>
</StatDef>
<StatDef>
<defName>ARA_IncubationTime</defName>
<label>孵化所需时间</label>
<description>孵化该武装器官/织物所需的时间</description>
<category>ARA_Incubation_StatCategory</category>
<category>Basics</category>
<defaultBaseValue>1</defaultBaseValue>
<minValue>0</minValue>
<toStringStyle>FloatOne</toStringStyle>
@@ -54,7 +54,7 @@
<!-- <minifiedThingInherits>true</minifiedThingInherits> -->
<displayPriorityInCategory>5011</displayPriorityInCategory>
<!-- <showOnUnhaulables>false</showOnUnhaulables> -->
<!-- <showIfUndefined>false</showIfUndefined> -->
<showIfUndefined>false</showIfUndefined>
<cacheable>true</cacheable>
</StatDef>
</Defs>

View File

@@ -976,7 +976,7 @@
<!-- <RestRateMultiplier>1</RestRateMultiplier> -->
<!-- <HungerRateMultiplier>1</HungerRateMultiplier> -->
<!-- <EatingSpeed>5</EatingSpeed> -->
<MaxNutrition>2.25</MaxNutrition>
<MaxNutrition>3</MaxNutrition>
<CarryingCapacity>100</CarryingCapacity>
<MeatAmount>40</MeatAmount>

View File

@@ -109,7 +109,7 @@
<soundInteract>SpitterSpawn</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_5PAV</researchPrerequisite>
<!-- <researchPrerequisite>ARA_Technology_5PAV</researchPrerequisite> -->
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
@@ -202,7 +202,7 @@
<soundInteract>SpitterSpawn</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_7PAV</researchPrerequisite>
<!-- <researchPrerequisite>ARA_Technology_7PAV</researchPrerequisite> -->
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>

View File

@@ -104,6 +104,8 @@
<statBases>
<WorkToMake>1000</WorkToMake>
<Mass>5</Mass>
<ARA_IncubationCost>120</ARA_IncubationCost>
<ARA_IncubationTime>5</ARA_IncubationTime>
</statBases>
<tools Inherit="False">
<li>
@@ -132,6 +134,11 @@
<thingSetMakerTags>
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_1Stage</cocoonDef>
</li>
</comps>
</ThingDef>
<ToolCapacityDef>
<defName>ARA_Whip</defName>
@@ -180,6 +187,8 @@
<statBases>
<WorkToMake>1000</WorkToMake>
<Mass>5</Mass>
<ARA_IncubationCost>350</ARA_IncubationCost>
<ARA_IncubationTime>12</ARA_IncubationTime>
</statBases>
<tools Inherit="False">
<li>
@@ -201,6 +210,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_2Stage</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_Cleave">
<cleaveAngle>90</cleaveAngle>
<cleaveRange>2.5</cleaveRange>
@@ -386,6 +398,8 @@
<AccuracyMedium>0.35</AccuracyMedium>
<AccuracyLong>0.3</AccuracyLong>
<RangedWeapon_Cooldown>2.5</RangedWeapon_Cooldown>
<ARA_IncubationCost>150</ARA_IncubationCost>
<ARA_IncubationTime>6</ARA_IncubationTime>
</statBases>
<verbs>
<li>
@@ -415,6 +429,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_1Stage</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>ARA_Weapon_Damage_Toxid</li>
@@ -444,7 +461,7 @@
<soundInteract>SpitterSpawn</soundInteract>
<recipeMaker>
<recipeUsers Inherit="False" />
<researchPrerequisite>ARA_Technology_6PAV</researchPrerequisite>
<!-- <researchPrerequisite>ARA_Technology_6PAV</researchPrerequisite> -->
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<statBases>
@@ -526,6 +543,8 @@
<AccuracyMedium>0.65</AccuracyMedium>
<AccuracyLong>0.55</AccuracyLong>
<RangedWeapon_Cooldown>2.2</RangedWeapon_Cooldown>
<ARA_IncubationCost>450</ARA_IncubationCost>
<ARA_IncubationTime>15</ARA_IncubationTime>
</statBases>
<verbs>
<li>
@@ -553,6 +572,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_2Stage</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_GiveHediffOnShot">
<hediffDef>ARA_ChainReload</hediffDef>
<severityToAdd>1</severityToAdd>
@@ -617,6 +639,8 @@
<AccuracyMedium>0.45</AccuracyMedium>
<AccuracyLong>0.3</AccuracyLong>
<RangedWeapon_Cooldown>2.5</RangedWeapon_Cooldown>
<ARA_IncubationCost>30</ARA_IncubationCost>
<ARA_IncubationTime>3.5</ARA_IncubationTime>
</statBases>
<verbs>
<li Class="ArachnaeSwarm.VerbProperties_ShootSprayMulti">
@@ -649,6 +673,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>ARA_Weapon_Damage_Acid</li>
@@ -719,6 +746,8 @@
<AccuracyMedium>0.45</AccuracyMedium>
<AccuracyLong>0.3</AccuracyLong>
<RangedWeapon_Cooldown>2.5</RangedWeapon_Cooldown>
<ARA_IncubationCost>200</ARA_IncubationCost>
<ARA_IncubationTime>8</ARA_IncubationTime>
</statBases>
<verbs>
<li Class="ArachnaeSwarm.VerbProperties_ShootSprayMulti">
@@ -752,6 +781,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_1Stage</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon"
MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
@@ -795,6 +827,8 @@
<AccuracyMedium>0.25</AccuracyMedium>
<AccuracyLong>0.1</AccuracyLong>
<RangedWeapon_Cooldown>3.5</RangedWeapon_Cooldown>
<ARA_IncubationCost>450</ARA_IncubationCost>
<ARA_IncubationTime>15</ARA_IncubationTime>
</statBases>
<verbs>
<li>
@@ -827,6 +861,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_2Stage</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>ARA_Huge_Weapon</li>
@@ -908,6 +945,8 @@
<AccuracyMedium>0.45</AccuracyMedium>
<AccuracyLong>0.3</AccuracyLong>
<RangedWeapon_Cooldown>2.5</RangedWeapon_Cooldown>
<ARA_IncubationCost>160</ARA_IncubationCost>
<ARA_IncubationTime>7</ARA_IncubationTime>
</statBases>
<verbs>
<li>
@@ -939,6 +978,9 @@
<li>RewardStandardQualitySuper</li>
</thingSetMakerTags>
<comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDef>ARA_Cocoon_Weapon_1Stage</cocoonDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_CustomUniqueWeapon" MayRequire="Ludeon.RimWorld.Odyssey">
<forcedTraits>
<li>ARA_Weapon_Damage_Spawn</li>

View File

@@ -546,12 +546,6 @@
<!-- 操作按钮的自定义描述 -->
<gizmoDesc>使织域种离开织座。</gizmoDesc>
<!--
操作按钮的自定义图标路径。
路径相对于"Textures"文件夹。
例如,如果你的图标在 "YourMod/Textures/UI/Icons/Revert.png",路径就是 "UI/Icons/Revert"。
游戏会自动处理.png扩展名。
-->
<gizmoIconPath>UI/Commands/EggSpew</gizmoIconPath>
</li>
<li Class="ArachnaeSwarm.CompProperties_RefuelableNutrition">
@@ -632,7 +626,7 @@
<!-- 提供温度控制UI和逻辑 -->
<li Class="ArachnaeSwarm.CompProperties_TempControl_Fixed">
<!-- 这是设备的热交换功率。数值越大,制冷/制热速度越快。-->
<energyPerSecond>5</energyPerSecond>
<energyPerSecond>25</energyPerSecond>
</li>
<li Class="CompProperties_Breakdownable"/>
<li Class="ArachnaeSwarm.CompProperties_DelayedTerrainSpawn">

View File

@@ -675,6 +675,14 @@
<defName>ARA_Cocoon_Cloth_1Stage</defName>
<label>阿拉克涅孵化茧 织物 等级1</label>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅工艺种所诞之卵,内含孵化一套基础织物装备的营养物质,可以通过阿拉克涅工艺种的交互完成激活进程——参阅茧的超链接,了解其能生产的所有装备的特点。\n\n孵化茧对温度极度敏感该类型的茧适温为-30~55°C需要小心保护</description>
<descriptionHyperlinks>
<ThingDef>ARA_Bodystocking_White</ThingDef>
<ThingDef>ARA_Bodystocking_Black</ThingDef>
<ThingDef>ARA_Latex_Catsuit</ThingDef>
<ThingDef>ARA_Pantyhose_Black</ThingDef>
<ThingDef>ARA_Pantyhose_White</ThingDef>
<ThingDef>ARA_Maid_Uniform</ThingDef>
</descriptionHyperlinks>
<comps>
<!-- The new, GrowthVat-style fuel component -->

View File

@@ -325,6 +325,8 @@
<autoRefuelPercent>1</autoRefuelPercent>
<showFuelGizmo>true</showFuelGizmo>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<li Class="ArachnaeSwarm.CompProperties_NutritionToFuelConverter">
<checkInterval>300</checkInterval>
@@ -460,6 +462,8 @@
<autoRefuelPercent>1</autoRefuelPercent>
<showFuelGizmo>true</showFuelGizmo>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<li Class="ArachnaeSwarm.CompProperties_NutritionToFuelConverter">
<checkInterval>300</checkInterval>
@@ -615,6 +619,8 @@
<autoRefuelPercent>1</autoRefuelPercent>
<showFuelGizmo>true</showFuelGizmo>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
</li>
<li Class="ArachnaeSwarm.CompProperties_NutritionToFuelConverter">
<checkInterval>300</checkInterval>

View File

@@ -1,9 +1,13 @@
{
"Version": 1,
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\stat\\statworker_incubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\moharhediffs\\hediffcomp_spawner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\moharhediffs\\hediffcomp_spawner.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\stat\\statworker_incubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:stat\\statworker_incubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@@ -23,10 +27,23 @@
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "HediffComp_Spawner.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\MoharHediffs\\HediffComp_Spawner.cs",
"RelativeDocumentMoniker": "Hediffs\\MoharHediffs\\HediffComp_Spawner.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\MoharHediffs\\HediffComp_Spawner.cs*",
"RelativeToolTip": "Hediffs\\MoharHediffs\\HediffComp_Spawner.cs*",
"ViewState": "AgIAAKABAAAAAAAAAAAUwLoBAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-09-30T23:28:37.585Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "StatWorker_IncubationInfo.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Stat\\StatWorker_IncubationInfo.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Stat\\StatWorker_IncubationInfo.cs",
"RelativeDocumentMoniker": "Stat\\StatWorker_IncubationInfo.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Stat\\StatWorker_IncubationInfo.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Stat\\StatWorker_IncubationInfo.cs",
"RelativeToolTip": "Stat\\StatWorker_IncubationInfo.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",

View File

@@ -425,31 +425,49 @@ namespace ArachnaeSwarm.MoharHediffs
}
}
private bool TryFindSpawnCell(out IntVec3 result)
{
result = IntVec3.Invalid;
bool result2;
if (this.pawn == null)
{
result2 = false;
}
else
{
Map map = this.pawn.Map;
if (map == null)
{
result2 = false;
}
else
{
result = CellFinder.RandomClosewalkCellNear(this.pawn.Position, map, 5, null);
result2 = true;
}
}
return result2;
}
private bool TryFindSpawnCell(out IntVec3 result)
{
result = IntVec3.Invalid;
bool result2;
if (this.pawn == null)
{
result2 = false;
}
else
{
Map map = this.pawn.Map;
if (map == null)
{
result2 = false;
}
else
{
// 修改这里将半径从5减少到2让生成位置更靠近pawn
int searchRadius = 2;
private void ResetCountdown()
// 首先尝试在pawn的相邻单元格生成半径为1
result = CellFinder.RandomClosewalkCellNear(this.pawn.Position, map, 1, null);
// 如果相邻单元格找不到合适位置再尝试稍远一点半径为2
if (!result.IsValid)
{
result = CellFinder.RandomClosewalkCellNear(this.pawn.Position, map, searchRadius, null);
}
// 如果还是找不到尝试pawn当前位置作为最后手段
if (!result.IsValid && this.pawn.Position.IsValid && this.pawn.Position.Walkable(map))
{
result = this.pawn.Position;
}
result2 = result.IsValid;
}
}
return result2;
}
private void ResetCountdown()
{
this.ticksUntilSpawn = (int)(this.RandomDays2wait() * 60000f);
this.initialTicksUntilSpawn = this.ticksUntilSpawn;