暂存坏的
This commit is contained in:
Binary file not shown.
@@ -115,6 +115,7 @@
|
|||||||
<externalViolence>true</externalViolence>
|
<externalViolence>true</externalViolence>
|
||||||
<deathMessage>{0} 被奶死了。</deathMessage>
|
<deathMessage>{0} 被奶死了。</deathMessage>
|
||||||
<harmsHealth>true</harmsHealth>
|
<harmsHealth>true</harmsHealth>
|
||||||
|
<hediff>Burn</hediff>
|
||||||
<makesBlood>false</makesBlood>
|
<makesBlood>false</makesBlood>
|
||||||
<consideredHelpful>true</consideredHelpful>
|
<consideredHelpful>true</consideredHelpful>
|
||||||
<defaultDamage>1</defaultDamage>
|
<defaultDamage>1</defaultDamage>
|
||||||
|
|||||||
@@ -122,42 +122,44 @@
|
|||||||
<isBad>false</isBad>
|
<isBad>false</isBad>
|
||||||
<initialSeverity>1</initialSeverity>
|
<initialSeverity>1</initialSeverity>
|
||||||
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
|
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
|
||||||
|
<minSeverity>0</minSeverity>
|
||||||
|
<maxSeverity>5</maxSeverity>
|
||||||
<hediffClass>HediffWithComps</hediffClass>
|
<hediffClass>HediffWithComps</hediffClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>0</minSeverity>
|
<minSeverity>0</minSeverity>
|
||||||
<label>术式强度:极弱</label>
|
<label>术式强度:极弱</label>
|
||||||
<regeneration>100</regeneration>
|
<regeneration>200</regeneration>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>0.5</minSeverity>
|
<minSeverity>0.5</minSeverity>
|
||||||
<label>术式强度:弱</label>
|
<label>术式强度:弱</label>
|
||||||
<regeneration>200</regeneration>
|
<regeneration>400</regeneration>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>1.0</minSeverity>
|
<minSeverity>1.0</minSeverity>
|
||||||
<label>术式强度:较弱</label>
|
<label>术式强度:较弱</label>
|
||||||
<regeneration>300</regeneration>
|
<regeneration>600</regeneration>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>1.5</minSeverity>
|
<minSeverity>1.5</minSeverity>
|
||||||
<label>术式强度:较强</label>
|
<label>术式强度:较强</label>
|
||||||
<regeneration>400</regeneration>
|
<regeneration>800</regeneration>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>2.0</minSeverity>
|
<minSeverity>2.0</minSeverity>
|
||||||
<label>术式强度:强</label>
|
<label>术式强度:强</label>
|
||||||
<regeneration>500</regeneration>
|
<regeneration>1000</regeneration>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<minSeverity>2.5</minSeverity>
|
<minSeverity>3.0</minSeverity>
|
||||||
<label>术式强度:极强</label>
|
<label>术式强度:极强</label>
|
||||||
<regeneration>600</regeneration>
|
<regeneration>1500</regeneration>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
<comps>
|
<comps>
|
||||||
<li Class="HediffCompProperties_SeverityPerDay">
|
<li Class="HediffCompProperties_SeverityPerDay">
|
||||||
<severityPerDay>-5</severityPerDay>
|
<severityPerDay>-10</severityPerDay>
|
||||||
</li>
|
</li>
|
||||||
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||||
</comps>
|
</comps>
|
||||||
|
|||||||
@@ -2,6 +2,11 @@
|
|||||||
<Defs>
|
<Defs>
|
||||||
<WulaFallenEmpire.PsychicRitual_TechOffering>
|
<WulaFallenEmpire.PsychicRitual_TechOffering>
|
||||||
<defName>WULA_FE_Rituals_Create_Spear_Impale</defName>
|
<defName>WULA_FE_Rituals_Create_Spear_Impale</defName>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="WulaFallenEmpire.RitualTagExtension">
|
||||||
|
<ritualTag>WulaRitual</ritualTag>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
<label>镌刻:圣枪穿刺术式</label>
|
<label>镌刻:圣枪穿刺术式</label>
|
||||||
<description>使用镌刻法术创造一把携带了圣枪穿刺术式的法杖,需求魂楔作为额外祭品以提升仪式质量,仪式的质量将影响镌刻完成时法杖的质量。</description>
|
<description>使用镌刻法术创造一把携带了圣枪穿刺术式的法杖,需求魂楔作为额外祭品以提升仪式质量,仪式的质量将影响镌刻完成时法杖的质量。</description>
|
||||||
<hoursUntilOutcome>2</hoursUntilOutcome>
|
<hoursUntilOutcome>2</hoursUntilOutcome>
|
||||||
@@ -13,6 +18,9 @@
|
|||||||
<ThingDef>WULA_Soul_Wedge</ThingDef>
|
<ThingDef>WULA_Soul_Wedge</ThingDef>
|
||||||
</descriptionHyperlinks>
|
</descriptionHyperlinks>
|
||||||
|
|
||||||
|
<invokerRole>Invoker</invokerRole>
|
||||||
|
<chanterRole>Chanter</chanterRole>
|
||||||
|
|
||||||
<!-- ==================== 核心祭品定义 ==================== -->
|
<!-- ==================== 核心祭品定义 ==================== -->
|
||||||
<!-- requiredOffering: 定义了启动仪式所必须的基础祭品。 -->
|
<!-- requiredOffering: 定义了启动仪式所必须的基础祭品。 -->
|
||||||
<!-- 如果没有这个祭品,仪式本身无法开始。 -->
|
<!-- 如果没有这个祭品,仪式本身无法开始。 -->
|
||||||
@@ -76,6 +84,11 @@
|
|||||||
</WulaFallenEmpire.PsychicRitual_TechOffering>
|
</WulaFallenEmpire.PsychicRitual_TechOffering>
|
||||||
<WulaFallenEmpire.PsychicRitual_TechOffering>
|
<WulaFallenEmpire.PsychicRitual_TechOffering>
|
||||||
<defName>WULA_FE_Rituals_Create_Cotton_Counter</defName>
|
<defName>WULA_FE_Rituals_Create_Cotton_Counter</defName>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="WulaFallenEmpire.RitualTagExtension">
|
||||||
|
<ritualTag>WulaRitual</ritualTag>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
<label>镌刻:飘絮反制术式</label>
|
<label>镌刻:飘絮反制术式</label>
|
||||||
<description>使用镌刻法术创造一把携带了飘絮反制术式的法杖,需求魂楔作为额外祭品以提升仪式质量,仪式的质量将影响镌刻完成时法杖的质量。</description>
|
<description>使用镌刻法术创造一把携带了飘絮反制术式的法杖,需求魂楔作为额外祭品以提升仪式质量,仪式的质量将影响镌刻完成时法杖的质量。</description>
|
||||||
<hoursUntilOutcome>2</hoursUntilOutcome>
|
<hoursUntilOutcome>2</hoursUntilOutcome>
|
||||||
@@ -87,6 +100,9 @@
|
|||||||
<ThingDef>WULA_Soul_Wedge</ThingDef>
|
<ThingDef>WULA_Soul_Wedge</ThingDef>
|
||||||
</descriptionHyperlinks>
|
</descriptionHyperlinks>
|
||||||
|
|
||||||
|
<invokerRole>Invoker</invokerRole>
|
||||||
|
<chanterRole>Chanter</chanterRole>
|
||||||
|
|
||||||
<!-- ==================== 核心祭品定义 ==================== -->
|
<!-- ==================== 核心祭品定义 ==================== -->
|
||||||
<!-- requiredOffering: 定义了启动仪式所必须的基础祭品。 -->
|
<!-- requiredOffering: 定义了启动仪式所必须的基础祭品。 -->
|
||||||
<!-- 如果没有这个祭品,仪式本身无法开始。 -->
|
<!-- 如果没有这个祭品,仪式本身无法开始。 -->
|
||||||
@@ -151,11 +167,17 @@
|
|||||||
|
|
||||||
<WulaFallenEmpire.PsychicRitualDef_AddHediff>
|
<WulaFallenEmpire.PsychicRitualDef_AddHediff>
|
||||||
<defName>WULA_ImbuePsychicShock</defName>
|
<defName>WULA_ImbuePsychicShock</defName>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="WulaFallenEmpire.RitualTagExtension">
|
||||||
|
<ritualTag>WulaRitual</ritualTag>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
<label>imbue psychic shock</label>
|
<label>imbue psychic shock</label>
|
||||||
<description>Imbues the target with a psychic shock.</description>
|
<description>Imbues the target with a psychic shock.</description>
|
||||||
<hediff>PsychicShock</hediff>
|
<hediff>PsychicShock</hediff>
|
||||||
<outcomeDescription>The target will gain psychic shock.</outcomeDescription>
|
<outcomeDescription>The target will gain psychic shock.</outcomeDescription>
|
||||||
<hoursUntilOutcome>2</hoursUntilOutcome>
|
<hoursUntilOutcome>2</hoursUntilOutcome>
|
||||||
|
<invokerRole>Invoker</invokerRole>
|
||||||
<targetRole>DeathRefusalTarget</targetRole> <!-- We can reuse this role -->
|
<targetRole>DeathRefusalTarget</targetRole> <!-- We can reuse this role -->
|
||||||
<researchPrerequisite>BasicPsychicRituals</researchPrerequisite>
|
<researchPrerequisite>BasicPsychicRituals</researchPrerequisite>
|
||||||
<requiredOffering>
|
<requiredOffering>
|
||||||
|
|||||||
@@ -45,7 +45,8 @@
|
|||||||
</placeWorkers>
|
</placeWorkers>
|
||||||
<drawPlaceWorkersWhileSelected>True</drawPlaceWorkersWhileSelected>
|
<drawPlaceWorkersWhileSelected>True</drawPlaceWorkersWhileSelected>
|
||||||
<comps>
|
<comps>
|
||||||
<li Class="CompProperties_PsychicRitualSpot">
|
<li Class="WulaFallenEmpire.CompProperties_WulaRitualSpot">
|
||||||
|
<ritualTag>WulaRitual</ritualTag>
|
||||||
</li>
|
</li>
|
||||||
<li Class="CompProperties_AffectedByFacilities">
|
<li Class="CompProperties_AffectedByFacilities">
|
||||||
<linkableFacilities>
|
<linkableFacilities>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
<damageAmount>30</damageAmount>
|
<damageAmount>30</damageAmount>
|
||||||
<EMPDamageAmount>0</EMPDamageAmount>
|
<EMPDamageAmount>0</EMPDamageAmount>
|
||||||
<warmupTime>4</warmupTime>
|
<warmupTime>4</warmupTime>
|
||||||
<range>65</range>
|
<range>56</range>
|
||||||
<affectedAngle>25</affectedAngle>
|
<affectedAngle>25</affectedAngle>
|
||||||
<armorPenetration>1000</armorPenetration>
|
<armorPenetration>1000</armorPenetration>
|
||||||
<soundCast>AgonyPulse_Cast</soundCast>
|
<soundCast>AgonyPulse_Cast</soundCast>
|
||||||
|
|||||||
72
Source/WulaFallenEmpire/CompWulaRitualSpot.cs
Normal file
72
Source/WulaFallenEmpire/CompWulaRitualSpot.cs
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using RimWorld;
|
||||||
|
using Verse;
|
||||||
|
using Verse.AI.Group;
|
||||||
|
|
||||||
|
namespace WulaFallenEmpire
|
||||||
|
{
|
||||||
|
// NOTE: The PsychicRitualDef_Wula class has been removed as it's no longer needed.
|
||||||
|
// We are now using a DefModExtension for filtering, which is a much cleaner approach.
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Custom CompProperties for our ritual spot, with a tag.
|
||||||
|
/// </summary>
|
||||||
|
public class CompProperties_WulaRitualSpot : CompProperties
|
||||||
|
{
|
||||||
|
public string ritualTag;
|
||||||
|
|
||||||
|
public CompProperties_WulaRitualSpot()
|
||||||
|
{
|
||||||
|
this.compClass = typeof(CompWulaRitualSpot);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The core component for the custom ritual spot. Generates its own gizmos
|
||||||
|
/// by filtering for rituals with a matching tag via a DefModExtension.
|
||||||
|
/// </summary>
|
||||||
|
public class CompWulaRitualSpot : ThingComp
|
||||||
|
{
|
||||||
|
public CompProperties_WulaRitualSpot Props => (CompProperties_WulaRitualSpot)this.props;
|
||||||
|
|
||||||
|
public override IEnumerable<Gizmo> CompGetGizmosExtra()
|
||||||
|
{
|
||||||
|
foreach (Gizmo gizmo in base.CompGetGizmosExtra())
|
||||||
|
{
|
||||||
|
yield return gizmo;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find all rituals that have our custom mod extension and a matching tag
|
||||||
|
foreach (PsychicRitualDef ritualDef in DefDatabase<PsychicRitualDef>.AllDefsListForReading)
|
||||||
|
{
|
||||||
|
var extension = ritualDef.GetModExtension<RitualTagExtension>();
|
||||||
|
if (extension != null && extension.ritualTag == this.Props.ritualTag)
|
||||||
|
{
|
||||||
|
Command_Action command_Action = new Command_Action();
|
||||||
|
command_Action.defaultLabel = ritualDef.LabelCap;
|
||||||
|
command_Action.defaultDesc = ritualDef.description;
|
||||||
|
command_Action.icon = ritualDef.uiIcon;
|
||||||
|
command_Action.action = delegate
|
||||||
|
{
|
||||||
|
// Mimic vanilla initialization
|
||||||
|
TargetInfo target = new TargetInfo(this.parent);
|
||||||
|
PsychicRitualRoleAssignments assignments = ritualDef.BuildRoleAssignments(target);
|
||||||
|
PsychicRitualCandidatePool candidatePool = ritualDef.FindCandidatePool();
|
||||||
|
ritualDef.InitializeCast(this.parent.Map);
|
||||||
|
Find.WindowStack.Add(new Dialog_BeginPsychicRitual(ritualDef, candidatePool, assignments, this.parent.Map));
|
||||||
|
};
|
||||||
|
|
||||||
|
// Corrected check for cooldown and other requirements
|
||||||
|
AcceptanceReport acceptanceReport = Find.PsychicRitualManager.CanInvoke(ritualDef, this.parent.Map);
|
||||||
|
if (!acceptanceReport.Accepted)
|
||||||
|
{
|
||||||
|
command_Action.Disable(acceptanceReport.Reason.CapitalizeFirst());
|
||||||
|
}
|
||||||
|
|
||||||
|
yield return command_Action;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using HarmonyLib;
|
||||||
|
using Verse;
|
||||||
|
using RimWorld;
|
||||||
|
|
||||||
|
namespace WulaFallenEmpire.HarmonyPatches
|
||||||
|
{
|
||||||
|
[HarmonyPatch(typeof(PsychicRitualGizmo), "VisibleRituals")]
|
||||||
|
public static class Patch_PsychicRitualGizmo_VisibleRituals
|
||||||
|
{
|
||||||
|
[HarmonyPostfix]
|
||||||
|
public static List<PsychicRitualDef_InvocationCircle> Postfix(List<PsychicRitualDef_InvocationCircle> __result)
|
||||||
|
{
|
||||||
|
if (__result == null || __result.Count == 0)
|
||||||
|
{
|
||||||
|
return __result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new list containing only the rituals that DO NOT have our custom tag.
|
||||||
|
// This is a more robust way to ensure our custom rituals are filtered out.
|
||||||
|
return __result.Where(ritualDef =>
|
||||||
|
{
|
||||||
|
var extension = ritualDef.GetModExtension<RitualTagExtension>();
|
||||||
|
// Keep the ritual if it has no extension, or if the extension tag is null/empty.
|
||||||
|
return extension == null || string.IsNullOrEmpty(extension.ritualTag);
|
||||||
|
}).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
Source/WulaFallenEmpire/RitualTagExtension.cs
Normal file
9
Source/WulaFallenEmpire/RitualTagExtension.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace WulaFallenEmpire
|
||||||
|
{
|
||||||
|
public class RitualTagExtension : DefModExtension
|
||||||
|
{
|
||||||
|
public string ritualTag;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -71,6 +71,7 @@
|
|||||||
<Compile Include="CompApparelInterceptor.cs" />
|
<Compile Include="CompApparelInterceptor.cs" />
|
||||||
<Compile Include="CompCustomUniqueWeapon.cs" />
|
<Compile Include="CompCustomUniqueWeapon.cs" />
|
||||||
<Compile Include="CompProperties_CustomUniqueWeapon.cs" />
|
<Compile Include="CompProperties_CustomUniqueWeapon.cs" />
|
||||||
|
<Compile Include="CompWulaRitualSpot.cs" />
|
||||||
<Compile Include="CompPsychicScaling.cs" />
|
<Compile Include="CompPsychicScaling.cs" />
|
||||||
<Compile Include="CompUseEffect_FixAllHealthConditions.cs" />
|
<Compile Include="CompUseEffect_FixAllHealthConditions.cs" />
|
||||||
<Compile Include="CompUseEffect_PassionTrainer.cs" />
|
<Compile Include="CompUseEffect_PassionTrainer.cs" />
|
||||||
@@ -108,6 +109,7 @@
|
|||||||
<Compile Include="PsychicRitual_TechOffering.cs" />
|
<Compile Include="PsychicRitual_TechOffering.cs" />
|
||||||
<Compile Include="PsychicRitualDef_AddHediff.cs" />
|
<Compile Include="PsychicRitualDef_AddHediff.cs" />
|
||||||
<Compile Include="PsychicRitualToil_AddHediff.cs" />
|
<Compile Include="PsychicRitualToil_AddHediff.cs" />
|
||||||
|
<Compile Include="RitualTagExtension.cs" />
|
||||||
<Compile Include="Recipe_AdministerWulaMechRepairKit.cs" />
|
<Compile Include="Recipe_AdministerWulaMechRepairKit.cs" />
|
||||||
<Compile Include="SectionLayer_WulaHull.cs" />
|
<Compile Include="SectionLayer_WulaHull.cs" />
|
||||||
<Compile Include="ThingDefExtension_EnergySource.cs" />
|
<Compile Include="ThingDefExtension_EnergySource.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user