From 1a1ea58cc2bf25b302664c798b8e66254f753792 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Sat, 2 Aug 2025 00:52:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E4=BB=AA=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/Assemblies/WulaFallenEmpire.dll | Bin 112640 -> 115200 bytes 1.6/Defs/AbilityDefs/WULA_Abilities.xml | 40 ------- .../WULA_FallenEmpire_Rituals.xml | 26 +++- .../PsychicRitualDef_AddHediff.cs | 20 ++++ .../PsychicRitualToil_AddHediff.cs | 55 +++++++++ .../PsychicRitual_TechOffering.cs | 111 +++++++++++------- .../WulaFallenEmpire/WulaFallenEmpire.csproj | 2 + 7 files changed, 168 insertions(+), 86 deletions(-) create mode 100644 Source/WulaFallenEmpire/PsychicRitualDef_AddHediff.cs create mode 100644 Source/WulaFallenEmpire/PsychicRitualToil_AddHediff.cs diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll index 60effdc0318314bf5bdd688a3e94c058e7df88ba..ef4872e6ad0732dc4a54dded27c777d07ed79c22 100644 GIT binary patch delta 33016 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 delta 30945 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 bkBeV5#uNBdGaf;v45+uC5Wk2GDf<5h07?wk diff --git a/1.6/Defs/AbilityDefs/WULA_Abilities.xml b/1.6/Defs/AbilityDefs/WULA_Abilities.xml index e02ce58f..f36405e7 100644 --- a/1.6/Defs/AbilityDefs/WULA_Abilities.xml +++ b/1.6/Defs/AbilityDefs/WULA_Abilities.xml @@ -1,44 +1,4 @@ - - WULA_SelfSkip - - 将施法者传送到附近的目标位置。 - 4 - UI/Abilities/Skip - True - False - Misc9 - false - - 25 - 0.02 - - - 0.25 - 27.9 - - True - True - True - - - -
  • - WulaFallenEmpire.CompAbilityEffect_SelfSkip - Selected - True - 27.9 - Ability - 10 - Ability - 10 - 18~60 - -15 - False -
  • -
    -
    -
    \ No newline at end of file diff --git a/1.6/Defs/PsychicRitualDefs/WULA_FallenEmpire_Rituals.xml b/1.6/Defs/PsychicRitualDefs/WULA_FallenEmpire_Rituals.xml index 563bbd39..0daff52c 100644 --- a/1.6/Defs/PsychicRitualDefs/WULA_FallenEmpire_Rituals.xml +++ b/1.6/Defs/PsychicRitualDefs/WULA_FallenEmpire_Rituals.xml @@ -5,8 +5,8 @@ WULA_Ritual_TechOffering 乌拉帝国用于交换失落技术的灵能仪式。通过献上高价值的科技产品,帝国可以从时空的裂隙中获得罕见的武器或工具。 - 0.5 - 360 + 2 + 10 BasicPsychicRituals UI/PsychicRituals/PsychicRitual_Default @@ -101,4 +101,26 @@ + + WULA_ImbuePsychicShock + + Imbues the target with a psychic shock. + PsychicShock + The target will gain psychic shock. + 2 + DeathRefusalTarget + BasicPsychicRituals + + + +
  • Bioferrite
  • +
    +
    + 10 +
    + 10 + ChanterAdvanced + UI/PsychicRituals/PsychicRitual_ImbueDeathRefusal +
    + \ No newline at end of file diff --git a/Source/WulaFallenEmpire/PsychicRitualDef_AddHediff.cs b/Source/WulaFallenEmpire/PsychicRitualDef_AddHediff.cs new file mode 100644 index 00000000..a0e63cdb --- /dev/null +++ b/Source/WulaFallenEmpire/PsychicRitualDef_AddHediff.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using Verse; +using Verse.AI.Group; +using RimWorld; + +namespace WulaFallenEmpire +{ + public class PsychicRitualDef_AddHediff : PsychicRitualDef_InvocationCircle + { + public HediffDef hediff; + + public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph parent) + { + List list = base.CreateToils(psychicRitual, parent); + list.Add(new PsychicRitualToil_AddHediff(TargetRole, hediff)); + list.Add(new PsychicRitualToil_TargetCleanup(InvokerRole, TargetRole)); + return list; + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/PsychicRitualToil_AddHediff.cs b/Source/WulaFallenEmpire/PsychicRitualToil_AddHediff.cs new file mode 100644 index 00000000..dd70d763 --- /dev/null +++ b/Source/WulaFallenEmpire/PsychicRitualToil_AddHediff.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using RimWorld; +using Verse; +using Verse.AI.Group; + +namespace WulaFallenEmpire +{ + public class PsychicRitualToil_AddHediff : PsychicRitualToil + { + public PsychicRitualRoleDef targetRole; + public HediffDef hediff; + + private static List tmpTargetPawns = new List(4); + + public PsychicRitualToil_AddHediff() + { + } + + public PsychicRitualToil_AddHediff(PsychicRitualRoleDef targetRole, HediffDef hediff) + { + this.targetRole = targetRole; + this.hediff = hediff; + } + + public override void Start(PsychicRitual psychicRitual, PsychicRitualGraph graph) + { + tmpTargetPawns.Clear(); + tmpTargetPawns.AddRange(psychicRitual.assignments.AssignedPawns(targetRole)); + foreach (Pawn tmpTargetPawn in tmpTargetPawns) + { + ApplyOutcome(psychicRitual, tmpTargetPawn); + } + } + + private void ApplyOutcome(PsychicRitual psychicRitual, Pawn pawn) + { + if (hediff != null) + { + pawn.health.AddHediff(hediff); + } + + if (PawnUtility.ShouldSendNotificationAbout(pawn)) + { + Find.LetterStack.ReceiveLetter("PsychicRitualCompleteLabel".Translate(psychicRitual.def.label), ((PsychicRitualDef_AddHediff)psychicRitual.def).outcomeDescription.Formatted(pawn.Named("PAWN")), LetterDefOf.NeutralEvent, pawn); + } + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Defs.Look(ref targetRole, "targetRole"); + Scribe_Defs.Look(ref hediff, "hediff"); + } + } +} \ No newline at end of file diff --git a/Source/WulaFallenEmpire/PsychicRitual_TechOffering.cs b/Source/WulaFallenEmpire/PsychicRitual_TechOffering.cs index 39dfd913..47e2ac8b 100644 --- a/Source/WulaFallenEmpire/PsychicRitual_TechOffering.cs +++ b/Source/WulaFallenEmpire/PsychicRitual_TechOffering.cs @@ -21,9 +21,6 @@ namespace WulaFallenEmpire public class PsychicRitual_TechOffering : PsychicRitualDef_InvocationCircle { - // 仪式持续时间(小时) - public new FloatRange hoursUntilOutcome; - // 从XML加载的额外祭品列表 public List extraOfferings = new List(); @@ -42,48 +39,73 @@ namespace WulaFallenEmpire IntVec3 center = assignments.Target.Cell; Map map = assignments.Target.Map; float offeringRadius = 8f; + var thingsInRadius = GenRadial.RadialDistinctThingsAround(center, map, offeringRadius, useCenter: true).ToList(); - float extraPowerFromOfferings = 0f; - if (!extraOfferings.NullOrEmpty()) + // 创建一个可变的必需品计数器 + var requiredCounts = new Dictionary(); + if (this.requiredOffering != null) { - var offeringThings = new Dictionary(); - foreach(var offering in extraOfferings) + foreach (ThingDef thingDef in this.requiredOffering.filter.AllowedThingDefs) { - offeringThings[offering.thingDef] = offering.power; - } - - foreach (Thing thing in GenRadial.RadialDistinctThingsAround(center, map, offeringRadius, useCenter: true)) - { - if (offeringThings.TryGetValue(thing.def, out float value)) - { - extraPowerFromOfferings += value * thing.stackCount; - } + requiredCounts[thingDef] = (int)this.requiredOffering.GetBaseCount(); } } - if (extraPowerFromOfferings > 0) + float extraPowerFromOfferings = 0f; + int offeringItemsCount = 0; + + if (!extraOfferings.NullOrEmpty()) { + var extraOfferingInfo = extraOfferings.ToDictionary(o => o.thingDef, o => o.power); + + // 遍历仪式范围内的所有物品 + foreach (Thing thing in thingsInRadius) + { + // 检查这个物品是否可以作为额外祭品 + if (extraOfferingInfo.TryGetValue(thing.def, out float powerPerItem)) + { + int countInStack = thing.stackCount; + + // 检查这个物品是否是必需品,并扣除相应数量 + if (requiredCounts.TryGetValue(thing.def, out int requiredCount) && requiredCount > 0) + { + int numToFulfillRequirement = System.Math.Min(countInStack, requiredCount); + requiredCounts[thing.def] -= numToFulfillRequirement; + countInStack -= numToFulfillRequirement; + } + + // 任何剩余的物品都算作额外祭品 + if (countInStack > 0) + { + extraPowerFromOfferings += powerPerItem * countInStack; + offeringItemsCount += countInStack; + } + } + } + + // 添加UI显示元素 powerFactorsOut?.Add(new QualityFactor { label = "WULA_ExtraOfferings".Translate(), - positive = true, + positive = offeringItemsCount > 0, quality = extraPowerFromOfferings, - toolTip = "WULA_ExtraOfferings_Tooltip".Translate() + toolTip = "WULA_ExtraOfferings_Tooltip".Translate(), + count = offeringItemsCount > 0 ? "✓" : "✗" // 使用对勾/叉号来清晰显示状态 }); - power += extraPowerFromOfferings; } - + + power += extraPowerFromOfferings; power = UnityEngine.Mathf.Clamp01(power); } // 重写创建仪式步骤的方法 public override List CreateToils(PsychicRitual psychicRitual, PsychicRitualGraph parent) { - // 获取基类的仪式步骤 + // 获取基类的仪式步骤,这其中已经包含了等待 hoursUntilOutcome 的逻辑 List toils = base.CreateToils(psychicRitual, parent); - // 在最后添加我们自定义的奖励步骤 - toils.Add(new PsychicRitualToil_TechOfferingOutcome(psychicRitual, this)); + // 在所有基类步骤之后,添加我们自定义的奖励步骤 + toils.Add(new PsychicRitualToil_TechOfferingOutcome(this)); return toils; } @@ -92,26 +114,31 @@ namespace WulaFallenEmpire // 自定义的仪式步骤,用于处理奖励 public class PsychicRitualToil_TechOfferingOutcome : PsychicRitualToil { - private PsychicRitual psychicRitual; - private PsychicRitualDef def; + private PsychicRitual_TechOffering ritualDef; - public PsychicRitualToil_TechOfferingOutcome(PsychicRitual psychicRitual, PsychicRitualDef def) + // 需要一个无参构造函数用于序列化 + public PsychicRitualToil_TechOfferingOutcome() { } + + public PsychicRitualToil_TechOfferingOutcome(PsychicRitual_TechOffering def) { - this.psychicRitual = psychicRitual; - this.def = def; + this.ritualDef = def; + } + + public override void ExposeData() + { + base.ExposeData(); + Scribe_Defs.Look(ref ritualDef, "ritualDef"); } - public override bool Tick(PsychicRitual psychicRitual, PsychicRitualGraph parent) + public override void Start(PsychicRitual psychicRitual, PsychicRitualGraph graph) { - float power = psychicRitual.power; + float power = psychicRitual.PowerPercent; // 消耗祭品 IntVec3 center = psychicRitual.assignments.Target.Cell; Map map = psychicRitual.assignments.Target.Map; float offeringRadius = 8f; - PsychicRitual_TechOffering ritualDef = (PsychicRitual_TechOffering)def; - if (!ritualDef.extraOfferings.NullOrEmpty()) { var offeringThings = new Dictionary(); @@ -132,32 +159,31 @@ namespace WulaFallenEmpire // 从奖励池中随机选择一个武器 if (ritualDef.rewardWeaponPool.NullOrEmpty()) { - Log.Error($"[WulaFallenEmpire] Reward weapon pool is empty for {def.defName}"); - return true; + Log.Error($"[WulaFallenEmpire] Reward weapon pool is empty for {ritualDef.defName}"); + return; } ThingDef weaponDef = ritualDef.rewardWeaponPool.RandomElement(); if (weaponDef == null) { - Log.Error($"[WulaFallenEmpire] Could not find weapon Def: {weaponDef.defName}"); - return true; + Log.Error($"[WulaFallenEmpire] Could not find weapon Def in reward pool for {ritualDef.defName}"); + return; } // 根据能量值决定物品品质 QualityCategory quality = QualityCategory.Awful; // 默认最低品质 if (!ritualDef.qualityThresholds.NullOrEmpty()) { - // 对阈值列表按阈值从高到低排序 var sortedThresholds = ritualDef.qualityThresholds.OrderByDescending(t => t.threshold).ToList(); foreach (var threshold in sortedThresholds) { if (power >= threshold.threshold) { quality = threshold.quality; - break; // 找到第一个满足的阈值就跳出 + break; } } } - else // 如果XML中没有定义,则使用硬编码的默认值 + else { if (power >= 1.0f) { quality = QualityCategory.Legendary; } else if (power >= 0.8f) { quality = QualityCategory.Masterwork; } @@ -168,8 +194,7 @@ namespace WulaFallenEmpire // 创建物品并设置品质 Thing reward = ThingMaker.MakeThing(weaponDef); - CompQuality compQuality = reward.TryGetComp(); - if (compQuality != null) + if (reward.TryGetComp() is CompQuality compQuality) { compQuality.SetQuality(quality, ArtGenerationContext.Colony); } @@ -184,8 +209,6 @@ namespace WulaFallenEmpire LetterDefOf.PositiveEvent, new LookTargets(psychicRitual.assignments.Target.Cell, map) ); - - return true; } } } \ No newline at end of file diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index 8dea8b0f..a443348f 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -121,6 +121,8 @@ + +