diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 00ad5f9..0a13835 100644 Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml index f376070..ca908ee 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml @@ -868,10 +868,10 @@
  • - ARA_Heal_By_Nurse_Hediff - 30 - Medicine - 5 + ARA_Heal_By_Nurse_Hediff + 30 + Medicine + 5
  • diff --git a/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml b/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml index 2eb0c5e..95f4cbc 100644 --- a/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml +++ b/1.6/1.6/Defs/AbilityDefs/Abilities_EggSpew.xml @@ -94,6 +94,16 @@
  • ARA_Proj_EggSac
  • +
  • + ARA_InteractiveEggSac + 0级阿拉克涅卵 可孵化的单位 + true +
  • +
  • + ARA_InteractiveEggSac + 温度要求 + true +
  • @@ -105,6 +115,16 @@
  • ARA_Proj_EggSac_Huge
  • +
  • + ARA_InteractiveEggSac_Huge + 0级大型阿拉克涅卵 可孵化的单位 + true +
  • +
  • + ARA_InteractiveEggSac_Huge + 温度要求 + true +
  • @@ -117,6 +137,16 @@
  • ARA_Proj_EggSac_1Stage
  • +
  • + ARA_InteractiveEggSac_1Stage + 1级阿拉克涅卵 可孵化的单位 + true +
  • +
  • + ARA_InteractiveEggSac_1Stage + 温度要求 + true +
  • @@ -128,6 +158,16 @@
  • ARA_Proj_EggSac_Huge_1Stage
  • +
  • + ARA_InteractiveEggSac_Huge_1Stage + 1级大型阿拉克涅卵 可孵化的单位 + true +
  • +
  • + ARA_InteractiveEggSac_Huge_1Stage + 温度要求 + true +
  • @@ -140,6 +180,16 @@
  • ARA_Proj_EggSac_2Stage
  • +
  • + ARA_InteractiveEggSac_2Stage + 2级阿拉克涅卵 可孵化的单位 + true +
  • +
  • + ARA_InteractiveEggSac_2Stage + 温度要求 + true +
  • @@ -151,6 +201,16 @@
  • ARA_Proj_EggSac_Huge_2Stage
  • +
  • + ARA_InteractiveEggSac_Huge_2Stage + 2级大型阿拉克涅卵 可孵化的单位 + true +
  • +
  • + ARA_InteractiveEggSac_Huge_2Stage + 温度要求 + true +
  • @@ -164,6 +224,11 @@
  • ARA_Cocoon_Proj_Cloth
  • +
  • + ARA_Cocoon_Cloth + 温度要求 + true +
  • @@ -175,6 +240,11 @@
  • ARA_Cocoon_Proj_Weapon
  • +
  • + ARA_Cocoon_Weapon + 温度要求 + true +
  • @@ -187,6 +257,11 @@
  • ARA_Cocoon_Proj_Cloth_1Stage
  • +
  • + ARA_Cocoon_Cloth_1Stage + 温度要求 + true +
  • @@ -198,6 +273,11 @@
  • ARA_Cocoon_Proj_Weapon_1Stage
  • +
  • + ARA_Cocoon_Weapon_1Stage + 温度要求 + true +
  • @@ -210,6 +290,11 @@
  • ARA_Cocoon_Proj_Cloth_2Stage
  • +
  • + ARA_Cocoon_Cloth_2Stage + 温度要求 + true +
  • @@ -221,6 +306,11 @@
  • ARA_Cocoon_Proj_Weapon_2Stage
  • +
  • + ARA_Cocoon_Weapon_2Stage + 温度要求 + true +
  • diff --git a/1.6/1.6/Defs/HediffDefs/ARA_HediffDef_Terrain.xml b/1.6/1.6/Defs/HediffDefs/ARA_HediffDef_Terrain.xml index bab3244..3dba3bf 100644 --- a/1.6/1.6/Defs/HediffDefs/ARA_HediffDef_Terrain.xml +++ b/1.6/1.6/Defs/HediffDefs/ARA_HediffDef_Terrain.xml @@ -54,6 +54,7 @@ + ARA_TerrainHealHediff @@ -100,4 +101,62 @@ + + + ARA_TerrainCooldownHediff + + 这只阿拉克捏督虫所着织物使其可以在菌毯上获得更短的近战冷却和远程冷却时间。在菌毯上呆的越久,效果越强,离开菌毯后效果将逐渐衰减。 + HediffWithComps + 1.0 + 0.01 + false + +
  • + 180 + + + + + +
  • ARA_InsectCreep
  • +
  • ARA_InsectCreepFloor
  • + + + + 0.05 + + + -0.0249 + +
  • + + +
  • + false + 0 + +
  • +
  • + 0.1 + + 0.95 + 0.95 + +
  • +
  • + 0.5 + + 0.9 + 0.9 + +
  • +
  • + 0.8 + + 0.85 + 0.85 + +
  • + +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_Apparel.xml b/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_Apparel.xml index 9cf3679..7fca25f 100644 --- a/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_Apparel.xml +++ b/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_Apparel.xml @@ -376,8 +376,8 @@ ARA_Dragoon_Uniform - - 烧虫 + + 阿拉克涅虫群中的高阶战士所着织物,似乎拥有增强战斗能力的效果,并且给人一种意外的庄严感——只不过她们挥着咔咔作响的鳌钳将你的同伴撕裂时,所有美好的幻想都会成为泡影。 ARA_Cocoon_Cloth_1Stage @@ -408,7 +408,7 @@ 0
  • - ARA_TerrainMoveSpeedHediff + ARA_TerrainCooldownHediff
  • diff --git a/1.6/1.6/Defs/Thing_Plant/ARA_Plant.xml b/1.6/1.6/Defs/Thing_Plant/ARA_Plant.xml index 7c1bff7..9f90285 100644 --- a/1.6/1.6/Defs/Thing_Plant/ARA_Plant.xml +++ b/1.6/1.6/Defs/Thing_Plant/ARA_Plant.xml @@ -33,12 +33,32 @@ + + ARA_CreepFungus + + 从菌毯奇花上收获的真菌。可以直接生吃,但烹饪后味道更佳。 + + Things/Item/Resource/PlantFoodRaw/RawFungus + + + 1.1 + + + Fungus + + +
  • + 30 + true +
  • +
    +
    ARA_AcidlingTrapPlant ArachnaeSwarm.Plant_Transforming - 一种只能在阿拉克涅菌毯上生长的奇特植物,几乎不消耗肥力即可通过菌毯的营养管道茁壮生长,并转换成阿拉克涅酸爆茧。 + 一种由阿拉克涅虫群培育的真菌混合体,它会汲取菌毯的营养,在生长到一定阶段后进行变态发育,最终转换成一枚阿拉克涅酸爆茧——一种会对附近的敌军释放自杀性辅虫的特殊陷阱。 85 4 @@ -74,12 +94,11 @@ - ARA_BeeSpikePlant ArachnaeSwarm.Plant_Transforming - 一种只能在阿拉克涅菌毯上生长的奇特植物,几乎不消耗肥力即可通过菌毯的营养管道茁壮生长,并转换成蜂刺射手。 + 一种由阿拉克涅虫群培育的真菌混合体,它会汲取菌毯的营养,在生长到一定阶段后进行变态发育,最终转换成一具蜂刺射手——一种会使用毒针射击来犯敌军的知觉真菌。 85 4 @@ -115,25 +134,4 @@ - - - ARA_CreepFungus - - 从菌毯奇花上收获的真菌。可以直接生吃,但烹饪后味道更佳。 - - Things/Item/Resource/PlantFoodRaw/RawFungus - - - 1.1 - - - Fungus - - -
  • - 30 - true -
  • -
    -
    \ No newline at end of file diff --git a/1.6/1.6/Defs/Thing_building/ARA_AcidlingTrap.xml b/1.6/1.6/Defs/Thing_building/ARA_AcidlingTrap.xml index 02f0aca..a080655 100644 --- a/1.6/1.6/Defs/Thing_building/ARA_AcidlingTrap.xml +++ b/1.6/1.6/Defs/Thing_building/ARA_AcidlingTrap.xml @@ -61,4 +61,4 @@ - + \ No newline at end of file diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml index 5c3e30b..aa80e8e 100644 --- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml @@ -35,4 +35,12 @@ 只能在以下地形使用:{0} 基于{0}技能(等级{1})延长{2}秒,总持续时间:{3}秒 + + + 安全温度范围 + {0}°C - {1}°C + 当前温度: {0}°C ({1}) + 过低 + 过高 + 安全 \ No newline at end of file diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo index 179655f..470bd16 100644 Binary files a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo and b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo differ diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json index 2a698d4..c882f47 100644 --- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json +++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json @@ -3,16 +3,28 @@ "WorkspaceRootPath": "D:\\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\\abilities\\ara_givehediffwithskillduration\\compabilityeffect_givehediffwithskillduration.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_givehediffwithskillduration\\compabilityeffect_givehediffwithskillduration.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_givehediffwithskillduration\\compproperties_givehediffwithskillduration.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_givehediffwithskillduration\\compproperties_givehediffwithskillduration.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, { - "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_terrainrestriction\\compabilityeffect_terrainrestriction .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_terrainrestriction\\compabilityeffect_terrainrestriction .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\mainharmony.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:mainharmony.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\supercarryextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:supercarryextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\floatmenuoptionprovider_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:floatmenuoptionprovider_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" } ], "DocumentGroupContainers": [ @@ -22,7 +34,7 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 2, + "SelectedChildIndex": 1, "Children": [ { "$type": "Bookmark", @@ -30,42 +42,76 @@ }, { "$type": "Document", - "DocumentIndex": 1, - "Title": "CompProperties_GiveHediffWithSkillDuration.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompProperties_GiveHediffWithSkillDuration.cs", - "RelativeDocumentMoniker": "Abilities\\ARA_GiveHediffWithSkillDuration\\CompProperties_GiveHediffWithSkillDuration.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompProperties_GiveHediffWithSkillDuration.cs*", - "RelativeToolTip": "Abilities\\ARA_GiveHediffWithSkillDuration\\CompProperties_GiveHediffWithSkillDuration.cs*", - "ViewState": "AgIAAAEAAAAAAAAAAAAiwC4AAAAFAAAAAAAAAA==", + "DocumentIndex": 0, + "Title": "CompAbilityEffect_AbilityShowTemperatureRange.cs", + "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs", + "RelativeDocumentMoniker": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs", + "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs", + "RelativeToolTip": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAA9AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-09-26T06:01:20.721Z", + "WhenOpened": "2025-09-27T08:23:51.83Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 0, - "Title": "CompAbilityEffect_GiveHediffWithSkillDuration.cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs", - "RelativeDocumentMoniker": "Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs*", - "RelativeToolTip": "Abilities\\ARA_GiveHediffWithSkillDuration\\CompAbilityEffect_GiveHediffWithSkillDuration.cs*", - "ViewState": "AgIAACYAAAAAAAAAAAAqwEgAAAAnAAAAAAAAAA==", + "DocumentIndex": 1, + "Title": "ARA_HediffDefOf.cs", + "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs", + "RelativeDocumentMoniker": "ARA_HediffDefOf.cs", + "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs", + "RelativeToolTip": "ARA_HediffDefOf.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAJAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-09-26T06:00:59.354Z", - "EditorCaption": "" + "WhenOpened": "2025-09-27T03:14:05.334Z" }, { "$type": "Document", "DocumentIndex": 2, - "Title": "CompAbilityEffect_TerrainRestriction .cs", - "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_TerrainRestriction\\CompAbilityEffect_TerrainRestriction .cs", - "RelativeDocumentMoniker": "Abilities\\ARA_TerrainRestriction\\CompAbilityEffect_TerrainRestriction .cs", - "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_TerrainRestriction\\CompAbilityEffect_TerrainRestriction .cs", - "RelativeToolTip": "Abilities\\ARA_TerrainRestriction\\CompAbilityEffect_TerrainRestriction .cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAEsAAAAAAAAAAAAAAA==", + "Title": "MainHarmony.cs", + "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MainHarmony.cs", + "RelativeDocumentMoniker": "MainHarmony.cs", + "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MainHarmony.cs", + "RelativeToolTip": "MainHarmony.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2025-09-26T03:32:39.017Z", - "EditorCaption": "" + "WhenOpened": "2025-09-27T03:13:34.632Z" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "SuperCarryExtension.cs", + "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\SuperCarryExtension.cs", + "RelativeDocumentMoniker": "SuperCarryExtension.cs", + "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\SuperCarryExtension.cs", + "RelativeToolTip": "SuperCarryExtension.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-09-27T03:13:32.751Z" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "FloatMenuOptionProvider_SuperCarry.cs", + "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\FloatMenuOptionProvider_SuperCarry.cs", + "RelativeDocumentMoniker": "FloatMenuOptionProvider_SuperCarry.cs", + "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\FloatMenuOptionProvider_SuperCarry.cs", + "RelativeToolTip": "FloatMenuOptionProvider_SuperCarry.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-09-27T03:13:31.262Z" + }, + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "JobDriver_SuperCarry.cs", + "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\JobDriver_SuperCarry.cs", + "RelativeDocumentMoniker": "JobDriver_SuperCarry.cs", + "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\JobDriver_SuperCarry.cs", + "RelativeToolTip": "JobDriver_SuperCarry.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-09-27T03:13:30.358Z" } ] } diff --git a/Source/ArachnaeSwarm/Hediffs/ARA_HediffDefOf.cs b/Source/ArachnaeSwarm/ARA_HediffDefOf.cs similarity index 100% rename from Source/ArachnaeSwarm/Hediffs/ARA_HediffDefOf.cs rename to Source/ArachnaeSwarm/ARA_HediffDefOf.cs diff --git a/Source/ArachnaeSwarm/Abilities/ARA_ShowSpawnablePawnsList/CompAbilityEffect_AbilityShowSpawnablePawns.cs b/Source/ArachnaeSwarm/Abilities/ARA_ShowSpawnablePawnsList/CompAbilityEffect_AbilityShowSpawnablePawns.cs new file mode 100644 index 0000000..7faa535 --- /dev/null +++ b/Source/ArachnaeSwarm/Abilities/ARA_ShowSpawnablePawnsList/CompAbilityEffect_AbilityShowSpawnablePawns.cs @@ -0,0 +1,125 @@ +using RimWorld; +using Verse; +using System.Text; +using System.Collections.Generic; + +namespace ArachnaeSwarm +{ + public class CompAbilityEffect_ShowSpawnablePawns : CompAbilityEffect + { + public new CompProperties_AbilityShowSpawnablePawns Props => (CompProperties_AbilityShowSpawnablePawns)props; + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + // 这个组件只用于显示信息,不执行实际效果 + } + + public override bool Valid(LocalTargetInfo target, bool throwMessages = false) + { + return true; + } + + // 重写工具提示方法,显示可生成的pawn列表 + public override string ExtraTooltipPart() + { + StringBuilder stringBuilder = new StringBuilder(); + + // 获取建筑定义的spawn comp + var spawnComp = GetSpawnCompFromBuilding(); + if (spawnComp == null || spawnComp.spawnablePawns == null || spawnComp.spawnablePawns.Count == 0) + { + return null; // 没有可显示的内容 + } + + stringBuilder.AppendLine(Props.customLabel + ":"); + stringBuilder.AppendLine(); + + // 显示每个可生成的pawn + foreach (var spawnEntry in spawnComp.spawnablePawns) + { + if (spawnEntry.pawnKind != null) + { + string entryText = $" • {spawnEntry.pawnKind.LabelCap}"; + + // 如果有延迟,显示延迟信息 + if (spawnEntry.delayTicks > 0) + { + entryText += $" ({spawnEntry.delayTicks.ToStringTicksToPeriod()})"; + } + + // 如果有科技需求,显示科技信息 + if (Props.showResearchRequirements && spawnEntry.requiredResearch != null) + { + bool researched = spawnEntry.requiredResearch.IsFinished; + string researchStatus = researched ? "✓" : "✗"; + entryText += $" [{researchStatus}{spawnEntry.requiredResearch.LabelCap}]"; + } + + stringBuilder.AppendLine(entryText); + } + } + + return stringBuilder.ToString().TrimEndNewlines(); + } + + // 从建筑定义获取spawn comp + private CompProperties_SpawnPawnFromList GetSpawnCompFromBuilding() + { + if (Props.spawnBuildingDef == null) + { + Log.Error("CompProperties_AbilityShowSpawnablePawns: spawnBuildingDef is null"); + return null; + } + + // 查找建筑的spawn comp + foreach (var comp in Props.spawnBuildingDef.comps) + { + if (comp is CompProperties_SpawnPawnFromList spawnComp) + { + return spawnComp; + } + } + + Log.Warning($"CompProperties_AbilityShowSpawnablePawns: No spawn comp found on building {Props.spawnBuildingDef.defName}"); + return null; + } + + // 获取所有可生成的pawn种类(用于其他用途) + public List GetSpawnablePawnKinds() + { + var spawnComp = GetSpawnCompFromBuilding(); + var result = new List(); + + if (spawnComp?.spawnablePawns != null) + { + foreach (var entry in spawnComp.spawnablePawns) + { + if (entry.pawnKind != null && (entry.requiredResearch == null || entry.requiredResearch.IsFinished)) + { + result.Add(entry.pawnKind); + } + } + } + + return result; + } + + // 检查特定pawn种类是否可生成 + public bool CanSpawnPawnKind(PawnKindDef pawnKind) + { + var spawnComp = GetSpawnCompFromBuilding(); + if (spawnComp?.spawnablePawns != null) + { + foreach (var entry in spawnComp.spawnablePawns) + { + if (entry.pawnKind == pawnKind && + (entry.requiredResearch == null || entry.requiredResearch.IsFinished)) + { + return true; + } + } + } + return false; + } + } +} diff --git a/Source/ArachnaeSwarm/Abilities/ARA_ShowSpawnablePawnsList/CompProperties_AbilityShowSpawnablePawns.cs b/Source/ArachnaeSwarm/Abilities/ARA_ShowSpawnablePawnsList/CompProperties_AbilityShowSpawnablePawns.cs new file mode 100644 index 0000000..ae43ffe --- /dev/null +++ b/Source/ArachnaeSwarm/Abilities/ARA_ShowSpawnablePawnsList/CompProperties_AbilityShowSpawnablePawns.cs @@ -0,0 +1,17 @@ +using RimWorld; +using Verse; + +namespace ArachnaeSwarm +{ + public class CompProperties_AbilityShowSpawnablePawns : CompProperties_AbilityEffect + { + public ThingDef spawnBuildingDef; // 指向的建筑定义 + public string customLabel = "可生成单位"; // 自定义标签 + public bool showResearchRequirements = true; // 是否显示科技需求 + + public CompProperties_AbilityShowSpawnablePawns() + { + this.compClass = typeof(CompAbilityEffect_ShowSpawnablePawns); + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/Abilities/ARA_ShowTemperatureRange/CompAbilityEffect_AbilityShowTemperatureRange.cs b/Source/ArachnaeSwarm/Abilities/ARA_ShowTemperatureRange/CompAbilityEffect_AbilityShowTemperatureRange.cs new file mode 100644 index 0000000..7854896 --- /dev/null +++ b/Source/ArachnaeSwarm/Abilities/ARA_ShowTemperatureRange/CompAbilityEffect_AbilityShowTemperatureRange.cs @@ -0,0 +1,109 @@ +using RimWorld; +using Verse; +using System.Text; +using System.Collections.Generic; + +namespace ArachnaeSwarm +{ + public class CompAbilityEffect_ShowTemperatureRange : CompAbilityEffect + { + public new CompProperties_AbilityShowTemperatureRange Props => (CompProperties_AbilityShowTemperatureRange)props; + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + // This component is only for displaying information, no actual effect + } + + public override bool Valid(LocalTargetInfo target, bool throwMessages = false) + { + return true; + } + + // Override tooltip method to display temperature range information + public override string ExtraTooltipPart() + { + StringBuilder stringBuilder = new StringBuilder(); + + // Get the temperature control component from the building + var tempCompProps = GetTemperatureCompFromBuilding(); + if (tempCompProps == null) + { + return null; // No content to display + } + + stringBuilder.AppendLine(Props.customLabel.Translate() + ":"); + stringBuilder.AppendLine(); + + // Display temperature range + stringBuilder.AppendLine(" " + "AbilityCheckSafeTemperatureRange".Translate(tempCompProps.minSafeTemperature, tempCompProps.maxSafeTemperature)); + + // Display current temperature (if enabled) + if (Props.showCurrentTemperature && parent.pawn != null && parent.pawn.Map != null) + { + float currentTemp = GenTemperature.GetTemperatureForCell(parent.pawn.Position, parent.pawn.Map); + string tempStatus = GetTemperatureStatus(currentTemp, tempCompProps.minSafeTemperature, tempCompProps.maxSafeTemperature); + stringBuilder.AppendLine(); + stringBuilder.AppendLine("AbilityCheckCurrentTemperature".Translate(currentTemp.ToString("F1"), tempStatus)); + } + return stringBuilder.ToString().TrimEndNewlines(); + } + + // Get temperature status description + private string GetTemperatureStatus(float currentTemp, float minSafe, float maxSafe) + { + if (currentTemp < minSafe) + return "AbilityCheckTemperatureTooLow".Translate(); + else if (currentTemp > maxSafe) + return "AbilityCheckTemperatureTooHigh".Translate(); + else + return "AbilityCheckTemperatureSafe".Translate(); + } + + // Get temperature control component from building definition + private CompProperties_TemperatureRuinableDamage GetTemperatureCompFromBuilding() + { + if (Props.temperatureCheckBuilding == null) + { + Log.Error("CompProperties_AbilityShowTemperatureRange: temperatureCheckBuilding is null"); + return null; + } + + // Find the temperature control component of the building + foreach (var comp in Props.temperatureCheckBuilding.comps) + { + if (comp is CompProperties_TemperatureRuinableDamage tempComp) + { + return tempComp; + } + } + + Log.Warning($"CompProperties_AbilityShowTemperatureRange: No temperature comp found on building {Props.temperatureCheckBuilding.defName}"); + return null; + } + + // Get temperature range (for other uses) + public (float min, float max) GetTemperatureRange() + { + var tempComp = GetTemperatureCompFromBuilding(); + if (tempComp != null) + { + return (tempComp.minSafeTemperature, tempComp.maxSafeTemperature); + } + return (0f, 100f); // Default value + } + + // Check if current temperature is within safe range + public bool IsTemperatureSafe() + { + if (parent.pawn == null || parent.pawn.Map == null) + return true; + + var tempComp = GetTemperatureCompFromBuilding(); + if (tempComp == null) + return true; + + float currentTemp = GenTemperature.GetTemperatureForCell(parent.pawn.Position, parent.pawn.Map); + return currentTemp >= tempComp.minSafeTemperature && currentTemp <= tempComp.maxSafeTemperature; + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/Abilities/ARA_ShowTemperatureRange/CompProperties_AbilityShowTemperatureRange.cs b/Source/ArachnaeSwarm/Abilities/ARA_ShowTemperatureRange/CompProperties_AbilityShowTemperatureRange.cs new file mode 100644 index 0000000..0bd42f4 --- /dev/null +++ b/Source/ArachnaeSwarm/Abilities/ARA_ShowTemperatureRange/CompProperties_AbilityShowTemperatureRange.cs @@ -0,0 +1,16 @@ +using RimWorld; +using Verse; +namespace ArachnaeSwarm +{ + public class CompProperties_AbilityShowTemperatureRange : CompProperties_AbilityEffect + { + public ThingDef temperatureCheckBuilding; // 要检查的建筑定义 + public string customLabel = "AbilityCheckSafeTemperatureRangeLabel"; // 自定义标签 + public bool showCurrentTemperature = true; // 是否显示当前温度 + + public CompProperties_AbilityShowTemperatureRange() + { + this.compClass = typeof(CompAbilityEffect_ShowTemperatureRange); + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index 3815be1..b6fb090 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -91,6 +91,10 @@ + + + + @@ -101,7 +105,7 @@ - + diff --git a/非公开资源/Content/1.png b/非公开资源/Content/1.png deleted file mode 100644 index 14069cc..0000000 Binary files a/非公开资源/Content/1.png and /dev/null differ diff --git a/非公开资源/Content/脑虫.png b/非公开资源/Content/脑虫.png deleted file mode 100644 index 61ee3bb..0000000 Binary files a/非公开资源/Content/脑虫.png and /dev/null differ