This commit is contained in:
Tourswen
2025-11-24 21:33:34 +08:00
parent 43ea152ebc
commit d602474abf
11 changed files with 31 additions and 79 deletions

View File

@@ -47,9 +47,7 @@
</li>
</stages>
<comps>
<li Class="WulaFallenEmpire.HediffCompProperties_MaintenanceDamage">
<damageToMaintenanceFactor>0.0025</damageToMaintenanceFactor> <!-- 1点伤害 = 0.25%维护度减少 -->
</li>
<li Class="WulaFallenEmpire.HediffCompProperties_MaintenanceDamage"/>
</comps>
</HediffDef>
<HediffDef>

View File

@@ -40,9 +40,10 @@
<minorBreakdownThreshold>0.5</minorBreakdownThreshold>
<majorBreakdownThreshold>0.2</majorBreakdownThreshold>
<criticalFailureThreshold>0.05</criticalFailureThreshold>
<severityPerDayBeforeThreshold>0.05</severityPerDayBeforeThreshold> <!-- 严重退化前的速率 -->
<severityPerDayAfterThreshold>0.1</severityPerDayAfterThreshold> <!-- 严重退化前的速率 -->
<thresholdDays>5</thresholdDays> <!-- 严重退化预期天数 -->
<severityPerDayBeforeThreshold>0.01</severityPerDayBeforeThreshold> <!-- 严重退化前的速率 -->
<severityPerDayAfterThreshold>0.05</severityPerDayAfterThreshold> <!-- 严重退化前的速率 -->
<thresholdDays>50</thresholdDays> <!-- 严重退化预期天数 -->
<damageToMaintenanceFactor>0.001</damageToMaintenanceFactor>
<minorBreakdownHediff>WULA_Maintenance_MinorBreakdown</minorBreakdownHediff>
<majorBreakdownHediff>WULA_Maintenance_MajorBreakdown</majorBreakdownHediff>
<criticalFailureHediff>WULA_Maintenance_CriticalFailuren</criticalFailureHediff>

View File

@@ -24,7 +24,7 @@
<graphicData>
<graphicClass>Graphic_Single</graphicClass>
<texPath>Things/Item/Special/TechprintUltratech</texPath>
<texPath>Wula/Item/WULA_Techprint</texPath>
</graphicData>
<useHitPoints>false</useHitPoints>
@@ -86,7 +86,7 @@
<graphicData>
<graphicClass>Graphic_Single</graphicClass>
<texPath>Things/Item/Special/TechprintUltratech</texPath>
<texPath>Wula/Item/WULA_Techprint</texPath>
</graphicData>
<useHitPoints>false</useHitPoints>
@@ -148,7 +148,7 @@
<graphicData>
<graphicClass>Graphic_Single</graphicClass>
<texPath>Things/Item/Special/TechprintUltratech</texPath>
<texPath>Wula/Item/WULA_Techprint</texPath>
</graphicData>
<useHitPoints>false</useHitPoints>

View File

@@ -92,7 +92,7 @@
<label>维护伤害</label>
<description>乌拉帝国合成人因为伤害导致维护度损失的程度。数值越高,受到伤害时损失越多维护度。</description>
<category>WULA_Synth</category>
<defaultBaseValue>0.01</defaultBaseValue>
<defaultBaseValue>0.0025</defaultBaseValue>
<toStringStyle>PercentZero</toStringStyle>
<showOnMechanoids>true</showOnMechanoids>
<showOnDrones>true</showOnDrones>

View File

@@ -829,9 +829,6 @@
<placeWorkers>
<li>PlaceWorker_NotUnderRoof</li>
</placeWorkers>
<researchPrerequisites>
<li>TransportPod</li>
</researchPrerequisites>
<constructionSkillPrerequisite>6</constructionSkillPrerequisite>
<uiIconScale>0.65</uiIconScale>
</ThingDef>

View File

@@ -110,7 +110,7 @@
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
</graphicData>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Melee_Weapon_T1</li>
</weaponTags>
<equippedAngleOffset>-65</equippedAngleOffset>
@@ -254,7 +254,7 @@
<displayPriority>450</displayPriority>
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
</recipeMaker>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Melee_Weapon_T2</li>
</weaponTags>
<comps>
@@ -297,7 +297,7 @@
<drawSize>1.5</drawSize>
</graphicData>
<equippedAngleOffset>-65</equippedAngleOffset>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Melee_Weapon_T3</li>
</weaponTags>
<uiIconScale>0.8</uiIconScale>
@@ -422,7 +422,7 @@
<recipeMaker>
<recipeUsers Inherit="False" />
</recipeMaker>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Constructor_Cat_Weapon</li>
</weaponTags>
</ThingDef>
@@ -511,7 +511,7 @@
<WULA_Alloy>40</WULA_Alloy>
<ComponentIndustrial>2</ComponentIndustrial>
</costList>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T1</li>
<li>Wula_Assault_Cat_Weapon</li>
</weaponTags>
@@ -595,7 +595,7 @@
<label>DCs-7"黑曜石"</label>
<description>乌拉帝国配发的近距离霰弹枪,以威力巨大的梭镖破甲弹为核心,专注于在短距离上的快速反应战斗和持续性压制能力</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<!-- <techLevel>Spacer</techLevel> -->
@@ -720,7 +720,7 @@
<muzzleFlashScale>9</muzzleFlashScale>
</li>
</verbs>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<comps>
@@ -762,7 +762,7 @@
<label>FLm-78"萤石"</label>
<description>一般由乌拉帝国跳帮组或骑士军团携带的自动炮在拥有长射程的同时火力也非常凶猛会造成区域性的爆炸效果以控制集群敌军。它同时下挂了一具长射程的EMP榴弹发射器可以用于控制机械族的集群冲击。</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T3</li>
</weaponTags>
<!-- <techLevel>Spacer</techLevel> -->
@@ -964,7 +964,7 @@
<WULA_Charge_Cube>6</WULA_Charge_Cube>
<ComponentIndustrial>2</ComponentIndustrial>
</costList>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T1</li>
</weaponTags>
<modExtensions>
@@ -1056,7 +1056,7 @@
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
</li>
</verbs>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<comps>
@@ -1149,7 +1149,7 @@
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
</li>
</verbs>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Weapon_Init</li>
</weaponTags>
<comps>
@@ -1238,7 +1238,7 @@
<label>FLm-43"榍石"</label>
<description>乌拉帝国的通用机枪,负责在班组中提供如暴雨倾泻的高速连射光束流,产生的高温熔烧穿透效果极好,可以贯穿融化一条线上所有敌人。由于其光束武器的性质,在开始连射前有一段很长时间的预热,非常需要保护。</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T3</li>
</weaponTags>
<!-- <techLevel>Spacer</techLevel> -->
@@ -1342,7 +1342,7 @@
<label>KRc-7"熔岩"</label>
<description>由乌拉帝国跳帮组或骑士军团携带的手持光束炮,需要很长的时间进行瞄准,但是可以射出在远距离上击穿单体强大光束流。</description>
<techLevel>Ultra</techLevel>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_Wall_Destoryer</li>
</weaponTags>
<graphicData>
@@ -1598,7 +1598,7 @@
<defName>WULA_MW_Lance</defName>
<label>CMl-28"铳枪"</label>
<description>乌拉帝国骑士所喜爱的远近合一的重型近战武器,采用高强度纳米碳纤维复合材料内芯,外层覆盖着带有散热格栅和能量导流槽的记忆合金装甲板,既可以在近战中刺穿对手,也可以从远距离上发射光束融化敌军装甲。</description>
<weaponTags>
<weaponTags Inherit="False">
<!-- <li>Spear</li> -->
</weaponTags>
<equippedAngleOffset>50</equippedAngleOffset>
@@ -1898,7 +1898,7 @@
<WULA_Alloy>150</WULA_Alloy>
<ComponentIndustrial>8</ComponentIndustrial>
</costList>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T2</li>
</weaponTags>
<comps>
@@ -2014,7 +2014,7 @@
<graphicClass>Graphic_Single</graphicClass>
<drawSize>1.45</drawSize>
</graphicData>
<weaponTags>
<weaponTags Inherit="False">
<li>Wula_Ranged_Weapon_T3</li>
</weaponTags>
<uiIconScale>0.8</uiIconScale>

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -38,7 +38,7 @@ namespace WulaFallenEmpire
public bool requirePowerForAutonomy = true;
public bool suppressUncontrolledWarning = true;
// 新增:能量管理设置
// 保留能量管理设置供 ThinkNode 使用
public float lowEnergyThreshold = 0.3f; // 低能量阈值
public float criticalEnergyThreshold = 0.1f; // 临界能量阈值
public float rechargeCompleteThreshold = 0.9f; // 充电完成阈值
@@ -58,7 +58,6 @@ namespace WulaFallenEmpire
public Pawn MechPawn => parent as Pawn;
private DroneWorkModeDef currentWorkMode;
private bool wasLowEnergy = false; // 记录上次是否处于低能量状态
public bool CanBeAutonomous
{
@@ -104,6 +103,7 @@ namespace WulaFallenEmpire
return CanBeAutonomous;
}
}
public bool IsInCombatMode
{
get
@@ -190,56 +190,12 @@ namespace WulaFallenEmpire
// 每60 tick检查一次能量状态
if (MechPawn != null && MechPawn.IsColonyMech && Find.TickManager.TicksGame % 60 == 0)
{
CheckEnergyStatus();
// 删除了自动切换模式的 CheckEnergyStatus 调用
EnsureWorkSettings();
}
}
// 新增:能量状态检查
private void CheckEnergyStatus()
{
if (!CanWorkAutonomously)
return;
bool isLowEnergyNow = IsLowEnergy;
// 如果能量状态发生变化
if (isLowEnergyNow != wasLowEnergy)
{
if (isLowEnergyNow)
{
// 进入低能量状态
if (currentWorkMode == WulaDefOf.Work)
{
// 自动切换到充电模式
SetWorkMode(WulaDefOf.Recharge);
Messages.Message("WULA_LowEnergySwitchToRecharge".Translate(MechPawn.LabelCap),
MechPawn, MessageTypeDefOf.CautionInput);
}
}
else
{
// 恢复能量状态
if (currentWorkMode == WulaDefOf.Recharge && IsFullyCharged)
{
// 充满电后自动切换回工作模式
SetWorkMode(WulaDefOf.Work);
Messages.Message("WULA_FullyChargedSwitchToWork".Translate(MechPawn.LabelCap),
MechPawn, MessageTypeDefOf.PositiveEvent);
}
}
wasLowEnergy = isLowEnergyNow;
}
// 临界能量警告
if (IsCriticalEnergy && currentWorkMode != WulaDefOf.Recharge && currentWorkMode != WulaDefOf.Shutdown)
{
Messages.Message("WULA_CriticalEnergyLevels".Translate(MechPawn.LabelCap),
MechPawn, MessageTypeDefOf.ThreatBig);
// 强制切换到充电模式
SetWorkMode(WulaDefOf.Recharge);
}
}
// 删除了整个 CheckEnergyStatus 方法,因为充电逻辑在 ThinkNode 中处理
public override IEnumerable<Gizmo> CompGetGizmosExtra()
{
@@ -292,7 +248,7 @@ namespace WulaFallenEmpire
{
base.PostExposeData();
Scribe_Defs.Look(ref currentWorkMode, "currentWorkMode");
Scribe_Values.Look(ref wasLowEnergy, "wasLowEnergy", false);
// 删除了 wasLowEnergy 的序列化
}
}
}
}

Binary file not shown.