暂存feat(maintenance): 实现维护舱功能及可配置性
This commit is contained in:
Binary file not shown.
@@ -28,6 +28,7 @@
|
|||||||
<requiredWorkTags>None</requiredWorkTags>
|
<requiredWorkTags>None</requiredWorkTags>
|
||||||
<forcedHediffs>
|
<forcedHediffs>
|
||||||
<li>Wula_Synth</li>
|
<li>Wula_Synth</li>
|
||||||
|
<li>WULA_Maintenance_Neglect</li>
|
||||||
<li>WULA_Addons_Antenna_Hediff_Base</li>
|
<li>WULA_Addons_Antenna_Hediff_Base</li>
|
||||||
<!--<li>MechlinkImplant</li>-->
|
<!--<li>MechlinkImplant</li>-->
|
||||||
</forcedHediffs>
|
</forcedHediffs>
|
||||||
|
|||||||
18
1.6/Defs/JobDefs/WULA_JobDefs.xml
Normal file
18
1.6/Defs/JobDefs/WULA_JobDefs.xml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
|
||||||
|
<JobDef>
|
||||||
|
<defName>WULA_HaulToMaintenancePod</defName>
|
||||||
|
<driverClass>WulaFallenEmpire.JobDriver_HaulToMaintenancePod</driverClass>
|
||||||
|
<reportString>正在为维护舱补充修复组件。</reportString>
|
||||||
|
<allowOpportunisticPrefix>true</allowOpportunisticPrefix>
|
||||||
|
</JobDef>
|
||||||
|
|
||||||
|
<JobDef>
|
||||||
|
<defName>WULA_EnterMaintenancePod</defName>
|
||||||
|
<driverClass>WulaFallenEmpire.JobDriver_EnterMaintenancePod</driverClass>
|
||||||
|
<reportString>正在进入维护舱。</reportString>
|
||||||
|
<allowOpportunisticPrefix>true</allowOpportunisticPrefix>
|
||||||
|
</JobDef>
|
||||||
|
|
||||||
|
</Defs>
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Defs>
|
|
||||||
|
|
||||||
<JobDef>
|
|
||||||
<defName>WULA_HaulToMaintenancePod</defName>
|
|
||||||
<driverClass>WulaFallenEmpire.JobDriver_HaulToMaintenancePod</driverClass>
|
|
||||||
<reportString>hauling TargetA to TargetB.</reportString>
|
|
||||||
<allowOpportunisticPrefix>true</allowOpportunisticPrefix>
|
|
||||||
</JobDef>
|
|
||||||
|
|
||||||
</Defs>
|
|
||||||
@@ -59,12 +59,14 @@
|
|||||||
<li Class="WulaFallenEmpire.CompProperties_MaintenancePod">
|
<li Class="WulaFallenEmpire.CompProperties_MaintenancePod">
|
||||||
<durationTicks>60000</durationTicks> <!-- 1 day -->
|
<durationTicks>60000</durationTicks> <!-- 1 day -->
|
||||||
<powerConsumptionRunning>250</powerConsumptionRunning>
|
<powerConsumptionRunning>250</powerConsumptionRunning>
|
||||||
<powerConsumptionIdle>50</powerConsumptionIdle>
|
<powerConsumptionIdle>5</powerConsumptionIdle>
|
||||||
<hediffToRemove>WULA_Maintenance_Neglect</hediffToRemove>
|
<hediffToRemove>WULA_Maintenance_Neglect</hediffToRemove>
|
||||||
<componentDef>ComponentIndustrial</componentDef>
|
<componentDef>ComponentIndustrial</componentDef>
|
||||||
<componentCostPerSeverity>5</componentCostPerSeverity> <!-- 5 components per 100% severity -->
|
<componentCostPerSeverity>5</componentCostPerSeverity> <!-- 5 components per 100% severity -->
|
||||||
<baseComponentCost>0</baseComponentCost>
|
<baseComponentCost>0</baseComponentCost>
|
||||||
<minSeverityToMaintain>0.75</minSeverityToMaintain>
|
<minSeverityToMaintain>0.75</minSeverityToMaintain>
|
||||||
|
<capacity>5</capacity>
|
||||||
|
<hediffSeverityAfterCycle>0.01</hediffSeverityAfterCycle>
|
||||||
<enterSound>BiosculpterPod_Enter</enterSound>
|
<enterSound>BiosculpterPod_Enter</enterSound>
|
||||||
<exitSound>BiosculpterPod_Exit</exitSound>
|
<exitSound>BiosculpterPod_Exit</exitSound>
|
||||||
<operatingEffecter>BiosculpterPod_Operating</operatingEffecter>
|
<operatingEffecter>BiosculpterPod_Operating</operatingEffecter>
|
||||||
@@ -75,4 +77,4 @@
|
|||||||
</placeWorkers>
|
</placeWorkers>
|
||||||
</ThingDef>
|
</ThingDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Defs>
|
|
||||||
|
|
||||||
<JobDef>
|
|
||||||
<defName>WULA_HaulToMaintenancePod</defName>
|
|
||||||
<driverClass>WulaFallenEmpire.JobDriver_HaulToMaintenancePod</driverClass>
|
|
||||||
<reportString>hauling TargetA to TargetB.</reportString>
|
|
||||||
<allowOpportunisticPrefix>true</allowOpportunisticPrefix>
|
|
||||||
</JobDef>
|
|
||||||
|
|
||||||
</Defs>
|
|
||||||
18
Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml
Normal file
18
Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<LanguageData>
|
||||||
|
|
||||||
|
<!-- Maintenance Pod -->
|
||||||
|
<WULA_MaintenancePod_Status>状态</WULA_MaintenancePod_Status>
|
||||||
|
<WULA_MaintenancePod_State_Idle>空闲</WULA_MaintenancePod_State_Idle>
|
||||||
|
<WULA_MaintenancePod_State_Running>运行中</WULA_MaintenancePod_State_Running>
|
||||||
|
<WULA_MaintenancePod_StoredComponents>储存的零部件</WULA_MaintenancePod_StoredComponents>
|
||||||
|
<WULA_MaintenancePod_Enter>进入维护</WULA_MaintenancePod_Enter>
|
||||||
|
<WULA_MaintenancePod_EnterDesc>命令一个需要维护的殖民者进入维护舱。</WULA_MaintenancePod_EnterDesc>
|
||||||
|
<WULA_MaintenancePod_NotEnoughComponents>需要 {0} 零部件</WULA_MaintenancePod_NotEnoughComponents>
|
||||||
|
<WULA_MaintenancePod_NoOneNeeds>没有殖民者需要维护。</WULA_MaintenancePod_NoOneNeeds>
|
||||||
|
<WULA_MaintenancePod_CancelDesc>中止维护并弹出殖民者。</WULA_MaintenancePod_CancelDesc>
|
||||||
|
<WULA_MaintenanceComplete>{PAWN_nameDef} 的维护已完成。</WULA_MaintenanceComplete>
|
||||||
|
<WULA_MaintenanceCanceled>维护已取消。</WULA_MaintenanceCanceled>
|
||||||
|
<WULA_NoComponentsToHaul>没有可用的零部件来搬运。</WULA_NoComponentsToHaul>
|
||||||
|
|
||||||
|
</LanguageData>
|
||||||
@@ -24,6 +24,8 @@ namespace WulaFallenEmpire
|
|||||||
public float componentCostPerSeverity = 1f; // How many components per 1.0 severity
|
public float componentCostPerSeverity = 1f; // How many components per 1.0 severity
|
||||||
public int baseComponentCost = 0; // A flat cost in addition to severity cost
|
public int baseComponentCost = 0; // A flat cost in addition to severity cost
|
||||||
public float minSeverityToMaintain = 0.75f; // The hediff severity required to trigger maintenance
|
public float minSeverityToMaintain = 0.75f; // The hediff severity required to trigger maintenance
|
||||||
|
public int capacity = 50;
|
||||||
|
public float hediffSeverityAfterCycle = 0.01f;
|
||||||
|
|
||||||
public CompProperties_MaintenancePod()
|
public CompProperties_MaintenancePod()
|
||||||
{
|
{
|
||||||
@@ -39,7 +41,6 @@ namespace WulaFallenEmpire
|
|||||||
private CompPowerTrader powerComp;
|
private CompPowerTrader powerComp;
|
||||||
private StorageSettings allowedComponentSettings;
|
private StorageSettings allowedComponentSettings;
|
||||||
public float storedComponents = 0f;
|
public float storedComponents = 0f;
|
||||||
public int capacity = 50; // Let's define a capacity
|
|
||||||
private int ticksRemaining;
|
private int ticksRemaining;
|
||||||
private MaintenancePodState state = MaintenancePodState.Idle;
|
private MaintenancePodState state = MaintenancePodState.Idle;
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ namespace WulaFallenEmpire
|
|||||||
return Props.baseComponentCost + (int)(hediff.Severity * Props.componentCostPerSeverity);
|
return Props.baseComponentCost + (int)(hediff.Severity * Props.componentCostPerSeverity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CanAcceptComponents(int count) => storedComponents + count <= capacity;
|
public bool CanAcceptComponents(int count) => storedComponents + count <= Props.capacity;
|
||||||
|
|
||||||
// ===================== Setup =====================
|
// ===================== Setup =====================
|
||||||
public CompMaintenancePod()
|
public CompMaintenancePod()
|
||||||
@@ -172,7 +173,7 @@ namespace WulaFallenEmpire
|
|||||||
Hediff hediff = occupant.health.hediffSet.GetFirstHediffOfDef(Props.hediffToRemove);
|
Hediff hediff = occupant.health.hediffSet.GetFirstHediffOfDef(Props.hediffToRemove);
|
||||||
if (hediff != null)
|
if (hediff != null)
|
||||||
{
|
{
|
||||||
hediff.Severity = 0.01f;
|
hediff.Severity = Props.hediffSeverityAfterCycle;
|
||||||
Messages.Message("WULA_MaintenanceComplete".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.PositiveEvent);
|
Messages.Message("WULA_MaintenanceComplete".Translate(occupant.Named("PAWN")), occupant, MessageTypeDefOf.PositiveEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -215,7 +216,7 @@ namespace WulaFallenEmpire
|
|||||||
sb.AppendLine("TimeLeft".Translate() + ": " + ticksRemaining.ToStringTicksToPeriod());
|
sb.AppendLine("TimeLeft".Translate() + ": " + ticksRemaining.ToStringTicksToPeriod());
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.AppendLine("WULA_MaintenancePod_StoredComponents".Translate() + ": " + storedComponents.ToString("F0") + " / " + capacity.ToString("F0"));
|
sb.AppendLine("WULA_MaintenancePod_StoredComponents".Translate() + ": " + storedComponents.ToString("F0") + " / " + Props.capacity.ToString("F0"));
|
||||||
|
|
||||||
if (!PowerOn)
|
if (!PowerOn)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ namespace WulaFallenEmpire
|
|||||||
private const TargetIndex PodInd = TargetIndex.B;
|
private const TargetIndex PodInd = TargetIndex.B;
|
||||||
|
|
||||||
protected Thing Component => job.GetTarget(ComponentInd).Thing;
|
protected Thing Component => job.GetTarget(ComponentInd).Thing;
|
||||||
protected Building_Storage Pod => (Building_Storage)job.GetTarget(PodInd).Thing;
|
protected Building Pod => (Building)job.GetTarget(PodInd).Thing;
|
||||||
|
|
||||||
public override bool TryMakePreToilReservations(bool errorOnFailed)
|
public override bool TryMakePreToilReservations(bool errorOnFailed)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace WulaFallenEmpire
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if it needs more components
|
// Check if it needs more components
|
||||||
if (comp.storedComponents >= comp.capacity)
|
if (comp.storedComponents >= comp.Props.capacity)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -55,7 +55,7 @@ namespace WulaFallenEmpire
|
|||||||
}
|
}
|
||||||
|
|
||||||
Job job = JobMaker.MakeJob(JobDefOf_WULA.WULA_HaulToMaintenancePod, component, t);
|
Job job = JobMaker.MakeJob(JobDefOf_WULA.WULA_HaulToMaintenancePod, component, t);
|
||||||
job.count = Math.Min(component.stackCount, (int)(comp.capacity - comp.storedComponents));
|
job.count = Math.Min(component.stackCount, (int)(comp.Props.capacity - comp.storedComponents));
|
||||||
return job;
|
return job;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user