Skip to content

Commit

Permalink
Merge pull request #165 from SmashPhil/feature/unstable-testing
Browse files Browse the repository at this point in the history
Feature/unstable testing
  • Loading branch information
SmashPhil authored Jun 22, 2024
2 parents 9c36549 + cb0e180 commit fcb627f
Show file tree
Hide file tree
Showing 184 changed files with 4,180 additions and 1,376 deletions.
Binary file modified 1.4/Assemblies/SmashTools.dll
Binary file not shown.
Binary file modified 1.4/Assemblies/UpdateLogTool.dll
Binary file not shown.
Binary file modified 1.4/Assemblies/Vehicles.dll
Binary file not shown.
Binary file modified 1.5/Assemblies/0Harmony.dll
Binary file not shown.
Binary file modified 1.5/Assemblies/SmashTools.dll
Binary file not shown.
Binary file modified 1.5/Assemblies/UpdateLogTool.dll
Binary file not shown.
Binary file modified 1.5/Assemblies/Vehicles.dll
Binary file not shown.
9 changes: 9 additions & 0 deletions 1.5/Defs/VehiclesDefs/Events/VehicleEventDef_Comps.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,13 @@
<Vehicles.VehicleEventDef>
<defName>Refueled</defName>
</Vehicles.VehicleEventDef>

<!-- Turrets -->
<Vehicles.VehicleEventDef>
<defName>Deployed</defName>
</Vehicles.VehicleEventDef>

<Vehicles.VehicleEventDef>
<defName>Undeployed</defName>
</Vehicles.VehicleEventDef>
</Defs>
19 changes: 19 additions & 0 deletions 1.5/Defs/VehiclesDefs/Events/VehicleEventDef_Upgrade.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>

<Defs>
<Vehicles.VehicleEventDef>
<defName>VehicleUpgradeEnqueued</defName>
</Vehicles.VehicleEventDef>

<Vehicles.VehicleEventDef>
<defName>VehicleUpgradeCompleted</defName>
</Vehicles.VehicleEventDef>

<Vehicles.VehicleEventDef>
<defName>VehicleUpgradeRefundEnqueued</defName>
</Vehicles.VehicleEventDef>

<Vehicles.VehicleEventDef>
<defName>VehicleUpgradeRefundCompleted</defName>
</Vehicles.VehicleEventDef>
</Defs>
53 changes: 49 additions & 4 deletions 1.5/Defs/VehiclesDefs/StatDefs/StatUpgradeCategoryDefs.xml
Original file line number Diff line number Diff line change
@@ -1,35 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>

<Defs>

<!-- Fuel -->
<Vehicles.StatUpgradeCategoryDef>
<defName>FuelCapacity</defName>
<label>Fuel Capacity</label>

<toStringStyle>Integer</toStringStyle>
<upgradeEffectType>Positive</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<Vehicles.StatUpgradeCategoryDef>
<defName>FuelEfficiency</defName>
<defName>FuelConsumptionRate</defName>
<label>Fuel Consumption</label>

<toStringStyle>FloatOne</toStringStyle>
<formatString>{0}/day</formatString>
<upgradeEffectType>Negative</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<Vehicles.StatUpgradeCategoryDef>
<defName>FuelConsumptionRate</defName>
<defName>ChargeRate</defName>
<label>Charge Rate</label>

<formatString>{0} /day</formatString>
<upgradeEffectType>Positive</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<Vehicles.StatUpgradeCategoryDef>
<defName>DischargeRate</defName>
<label>Discharge Rate</label>

<formatString>{0} /day</formatString>
<upgradeEffectType>Negative</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<!-- World Map -->
<Vehicles.StatUpgradeCategoryDef>
<defName>WorldSpeedMultiplier</defName>
<label>World Speed</label>

<toStringStyle>PercentZero</toStringStyle>
<upgradeEffectType>Positive</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<Vehicles.StatUpgradeCategoryDef>
<defName>OffRoadEfficiency</defName>
<defName>OffRoadMultiplier</defName>
<label>Off Road Cost</label>

<toStringStyle>PercentZero</toStringStyle>
<upgradeEffectType>Negative</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<Vehicles.StatUpgradeCategoryDef>
<defName>WinterPathCost</defName>
<defName>WinterCostMultiplier</defName>
<label>Winter Cost</label>

<toStringStyle>FloatOne</toStringStyle>
<upgradeEffectType>Negative</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<!-- Combat -->
<Vehicles.StatUpgradeCategoryDef>
<defName>PawnCollisionMultiplier</defName>
<label>Impact Damage</label>

<toStringStyle>PercentZero</toStringStyle>
<upgradeEffectType>Positive</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>

<Vehicles.StatUpgradeCategoryDef>
<defName>PawnCollisionRecoilMultiplier</defName>
<label>Impact Damage Received</label>

<toStringStyle>PercentZero</toStringStyle>
<upgradeEffectType>Negative</upgradeEffectType>
</Vehicles.StatUpgradeCategoryDef>
</Defs>
1 change: 1 addition & 0 deletions 1.5/Defs/VehiclesDefs/StatDefs/VehicleStatDefs_Aerial.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<formatString>{0} t/s</formatString>
<operationType>Average</operationType>
<displayPriorityInCategory>100</displayPriorityInCategory>
<upgradeEffectType>Positive</upgradeEffectType>

<modSettingsInfo>
<settingsType>FloatBox</settingsType>
Expand Down
12 changes: 8 additions & 4 deletions 1.5/Defs/VehiclesDefs/StatDefs/VehicleStatDefs_General.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
<formatString>{0} c/s</formatString>
<operationType>Average</operationType>
<displayPriorityInCategory>100</displayPriorityInCategory>

<upgradeEffectType>Positive</upgradeEffectType>

<modSettingsInfo>
<settingsType>SliderFloat</settingsType>
<roundDecimalPlaces>2</roundDecimalPlaces>
Expand Down Expand Up @@ -50,7 +51,8 @@
<formatString>{0} kg</formatString>
<operationType>Average</operationType>
<displayPriorityInCategory>90</displayPriorityInCategory>

<upgradeEffectType>Positive</upgradeEffectType>

<modSettingsInfo>
<settingsType>IntegerBox</settingsType>
</modSettingsInfo>
Expand All @@ -68,7 +70,8 @@
<formatString>{0} hp/s</formatString>
<operationType>Average</operationType>
<displayPriorityInCategory>80</displayPriorityInCategory>

<upgradeEffectType>Positive</upgradeEffectType>

<modSettingsInfo>
<settingsType>SliderFloat</settingsType>
<roundDecimalPlaces>1</roundDecimalPlaces>
Expand All @@ -88,7 +91,8 @@
<formatString>{0} kg</formatString>
<operationType>None</operationType>
<displayPriorityInCategory>50</displayPriorityInCategory>

<upgradeEffectType>None</upgradeEffectType>

<modSettingsInfo>
<settingsType>IntegerBox</settingsType>
<minValue>0</minValue>
Expand Down
2 changes: 1 addition & 1 deletion About/About.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<name>Vehicle Framework</name>
<author>Smash Phil</author>
<packageId>SmashPhil.VehicleFramework</packageId>
<modVersion>1.5.1586</modVersion>
<modVersion>1.5.1659</modVersion>
<supportedVersions>
<li>1.4</li>
<li>1.5</li>
Expand Down
1 change: 1 addition & 0 deletions BuildDate.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Mon 12/11/2023 03:20:41
10 changes: 8 additions & 2 deletions Languages/English/Keyed/Labels.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@
<VF_DisembarkAllPawns>Unload All Pawns</VF_DisembarkAllPawns>
<VF_DisembarkSinglePawn>Unload {0}</VF_DisembarkSinglePawn>
<VF_DisembarkNoExit>Unable to exit vehicle. No valid cells to exit onto.</VF_DisembarkNoExit>

<VF_DisabledByVehicleUpgrading>{0} is being upgraded.</VF_DisabledByVehicleUpgrading>

<VF_StopVehicle>Stop</VF_StopVehicle>
<VF_UndraftVehicle>Turn Off</VF_UndraftVehicle>
<VF_DraftVehicleDesc>Drafts vehicle allowing it to move. This will consume fuel if applicable even if the vehicle is idle.</VF_DraftVehicleDesc>
<VF_StopVehicleDesc>Stop the vehicle immediately.</VF_StopVehicleDesc>
<VF_UndraftVehicleDesc>Undrafts vehicle, disabling the consumption of fuel and disallowing movement.</VF_UndraftVehicleDesc>
<VF_RefuelFromInventory>Refuel From Inventory</VF_RefuelFromInventory>
<VF_VehicleFuelCost>Fuel: {0}</VF_VehicleFuelCost>

<!-- UI / Buttons -->
<VF_ShowAllItemsOnMap>Show All Items On Map</VF_ShowAllItemsOnMap>
Expand Down Expand Up @@ -99,7 +101,11 @@
<VF_ComponentHealth>Health</VF_ComponentHealth>
<VF_ComponentEfficiency>Efficiency</VF_ComponentEfficiency>
<VF_ComponentArmor>Armor</VF_ComponentArmor>

<VF_Depth>Depth</VF_Depth>
<VF_Depth_Internal>Internal</VF_Depth_Internal>
<VF_Depth_External>External</VF_Depth_External>
<VF_Depth_Undefined>Undefined</VF_Depth_Undefined>

<VF_NoFuelReturnTrip>No Return Trip</VF_NoFuelReturnTrip>
<VF_NotEnoughFuel>Out Of Range</VF_NotEnoughFuel>
<VF_ConfirmationCancelLanding>Cancel landing in this map? Aerial vehicle will be kicked out to the world map.</VF_ConfirmationCancelLanding>
Expand Down
2 changes: 1 addition & 1 deletion Languages/English/Keyed/Settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ Determines whether Vehicles should use values from the mod settings or Defs</VF_
<VF_VehicleStats>Stats</VF_VehicleStats>

<!-- Upgrade Menu Settings -->
<VF_Upgrades>Upgrades (Disabled)</VF_Upgrades>
<VF_Upgrades>Upgrades</VF_Upgrades>
<VF_DrawUpgradeInformationScreen>Draw Upgrade Menu Info Screen</VF_DrawUpgradeInformationScreen>
<VF_DrawUpgradeInformationScreenTooltip>Draw additional menu on the upgrade menu to display ship stats and ship icon.</VF_DrawUpgradeInformationScreenTooltip>
<VF_OverrideDrawColor>Override Draw Color</VF_OverrideDrawColor>
Expand Down
4 changes: 3 additions & 1 deletion Languages/English/Keyed/Settings_Debug.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@
<VF_DevMode_DebugLoggingTooltip>Enable message logging to output specific values and pieces of information useful for debugging Vehicles. Use only if you're making a Vehicle add-on.</VF_DevMode_DebugLoggingTooltip>
<VF_DevMode_DebugPathCostRecalculationLogging>Debug PathCost Recalculation Logging</VF_DevMode_DebugPathCostRecalculationLogging>
<VF_DevMode_DebugPathCostRecalculationLoggingTooltip>Log summary of path cost change for all vehicles affected by region dirtying.</VF_DevMode_DebugPathCostRecalculationLoggingTooltip>

<VF_DevMode_LogThreadActivity>Log Thread Activity</VF_DevMode_LogThreadActivity>
<VF_DevMode_LogThreadActivityTooltip>Log ongoing async actions on the dedicated thread of the current map in view.</VF_DevMode_LogThreadActivityTooltip>

<!-- Bypass Mechanics -->
<VF_DevMode_DebugDraftAnyVehicle>Draft Any Vehicle</VF_DevMode_DebugDraftAnyVehicle>
<VF_DevMode_DebugDraftAnyVehicleTooltip>Be able to draft and move any vehicle regardless of passengers. Useful for empty boats in deep water or if you want to expedite testing.</VF_DevMode_DebugDraftAnyVehicleTooltip>
Expand Down
4 changes: 3 additions & 1 deletion Languages/English/Keyed/Settings_Fields.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,10 @@
<VF_JobLimitations>Vehicle Jobs</VF_JobLimitations>
<VF_MaxWorkers>Max Workers</VF_MaxWorkers>

<VF_OffRoadMultiplier>Off Road Multiplier</VF_OffRoadMultiplier>
<VF_OffRoadMultiplierTooltip>PathCost multiplier for traveling on roads.</VF_OffRoadMultiplierTooltip>
<VF_WinterSpeedMultiplier>Winter Speed Multiplier</VF_WinterSpeedMultiplier>
<VF_WinterSpeedMultiplierTooltip>Additional cost for traveling during winter.</VF_WinterSpeedMultiplierTooltip>
<VF_WinterSpeedMultiplierTooltip>PathCost multiplier for traveling during winter.</VF_WinterSpeedMultiplierTooltip>
<VF_WorldSpeedMultiplier>World Speed Multiplier</VF_WorldSpeedMultiplier>
<VF_WorldSpeedMultiplierTooltip>Multiplier to MoveSpeed when on the world map in a caravan.</VF_WorldSpeedMultiplierTooltip>

Expand Down
22 changes: 22 additions & 0 deletions Languages/English/Keyed/SmashTools.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" ?>

<LanguageData>
<ST_AnimationWindow>Animation</ST_AnimationWindow>
<ST_CreateNewClip>Create New Clip...</ST_CreateNewClip>

<ST_PreviewAnimation>Preview</ST_PreviewAnimation>
<ST_PreviewAnimationTooltip>Enable/disable preview mode of entity's animation in-game</ST_PreviewAnimationTooltip>
<ST_PlayAnimationTooltip>Play the animation</ST_PlayAnimationTooltip>
<ST_PauseAnimationTooltip>Pause the animation</ST_PauseAnimationTooltip>
<ST_SkipFrameBeginningTooltip>Go to the beginning of the animation</ST_SkipFrameBeginningTooltip>
<ST_SkipFramePreviousTooltip>Go to previous keyframe</ST_SkipFramePreviousTooltip>
<ST_SkipFrameNextTooltip>Go to next keyframe</ST_SkipFrameNextTooltip>
<ST_SkipFrameEndTooltip>Go to the end of the animation</ST_SkipFrameEndTooltip>

<ST_AddKeyFrame>Add keyframe</ST_AddKeyFrame>
<ST_AddAnimationEvent>Add event</ST_AddAnimationEvent>
<ST_AddProperty>Add Property</ST_AddProperty>

<ST_DopesheetTab>Dopesheet</ST_DopesheetTab>
<ST_CurvesTab>Curves</ST_CurvesTab>
</LanguageData>
4 changes: 4 additions & 0 deletions Languages/English/Keyed/Status.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@
<VF_healthLabel_Immobile>Inoperable</VF_healthLabel_Immobile>
<VF_healthLabel_Dead>Ruined</VF_healthLabel_Dead>
<VF_healthLabel_Beached>Beached</VF_healthLabel_Beached>

<VF_GeneratingPathData>Generating Vehicle PathData</VF_GeneratingPathData>
<VF_GeneratingPathGrids>Generating PathGrids</VF_GeneratingPathGrids>
<VF_GeneratingRegions>Generating Vehicle Regions</VF_GeneratingRegions>
</LanguageData>
2 changes: 2 additions & 0 deletions Source/Vehicles/AI/Incidents/IncidentWorker_ShuttleDowned.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using RimWorld;
using RimWorld.Planet;
using SmashTools;
using Verse.Noise;

namespace Vehicles
{
Expand Down Expand Up @@ -95,6 +96,7 @@ protected virtual int GenerateMapAndReinforcements(AerialVehicleInFlight aerialV
{
ticksTillArrival = (crashSite.Parent as CrashSite).InitiateReinforcementsRequest(settlement);
}
GetOrGenerateMapUtility.UnfogMapFromEdge(crashSite);
}
return ticksTillArrival;
}
Expand Down
3 changes: 1 addition & 2 deletions Source/Vehicles/AI/JobDrivers/JobDriver_LoadVehicle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ public virtual VehiclePawn Vehicle

public virtual bool FailJob()
{
bool listed = !Map.GetCachedMapComponent<VehicleReservationManager>().VehicleListed(Vehicle, ListerTag);
return listed;
return !MapComponentCache<VehicleReservationManager>.GetComponent(Map).VehicleListed(Vehicle, ListerTag);
}

public override bool TryMakePreToilReservations(bool errorOnFailed)
Expand Down
2 changes: 1 addition & 1 deletion Source/Vehicles/AI/JobDrivers/JobDriver_RepairVehicle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected override void WorkComplete(Pawn actor)
{
if (!Vehicle.statHandler.ComponentsPrioritized.Any(c => c.HealthPercent < 1))
{
Vehicle.Map.GetCachedMapComponent<ListerVehiclesRepairable>().Notify_VehicleRepaired(Vehicle);
MapComponentCache<ListerVehiclesRepairable>.GetComponent(Vehicle.Map).Notify_VehicleRepaired(Vehicle);
actor.records.Increment(RecordDefOf.ThingsRepaired);
actor.jobs.EndCurrentJob(JobCondition.Succeeded);
return;
Expand Down
12 changes: 11 additions & 1 deletion Source/Vehicles/AI/JobDrivers/JobDriver_UpgradeVehicle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,17 @@ public class JobDriver_UpgradeVehicle : JobDriver_WorkVehicle

protected override StatDef Stat => StatDefOf.ConstructionSpeed;

protected override float TotalWork => Vehicle.CompUpgradeTree.NodeUnlocking.work;
protected override float TotalWork
{
get
{
if (Vehicle.CompUpgradeTree.upgrade.Removal)
{
return Vehicle.CompUpgradeTree.NodeUnlocking.work * 0.3f; //30% work cost for removing upgrades
}
return Vehicle.CompUpgradeTree.NodeUnlocking.work;
}
}

protected override float Work
{
Expand Down
2 changes: 1 addition & 1 deletion Source/Vehicles/AI/JobDrivers/Toils/Toils_Board.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static Toil BoardVehicle(Pawn pawnBoarding)
VehicleHandler handler = vehicle.bills.FirstOrDefault(b => b.pawnToBoard == pawnBoarding)?.handler;
if (handler is null)
{
handler = vehicle.Map.GetCachedMapComponent<VehicleReservationManager>().GetReservation<VehicleHandlerReservation>(vehicle)?.ReservedHandler(pawnBoarding);
handler = MapComponentCache<VehicleReservationManager>.GetComponent(vehicle.Map).GetReservation<VehicleHandlerReservation>(vehicle)?.ReservedHandler(pawnBoarding);
if (handler is null)
{
Log.Error("Could not find assigned spot for " + pawnBoarding.LabelShort + " to board.");
Expand Down
2 changes: 1 addition & 1 deletion Source/Vehicles/AI/JobDrivers/VehicleJobDriver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public override bool TryMakePreToilReservations(bool errorOnFailed)
{
return false;
}
VehicleReservationManager reservationManager = pawn.Map.GetCachedMapComponent<VehicleReservationManager>();
VehicleReservationManager reservationManager = MapComponentCache<VehicleReservationManager>.GetComponent(Vehicle.Map);
bool reserved = reservationManager.Reserve<LocalTargetInfo, VehicleTargetReservation>(Vehicle, pawn, job, JobCell);
return reserved;
}
Expand Down
4 changes: 2 additions & 2 deletions Source/Vehicles/AI/JobGivers/JobGiver_SendSlavesToVehicle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ protected override Job TryGiveJob(Pawn pawn)
if (pawn2 is null)
return null;
VehiclePawn vehicle = FindShipToDeposit(pawn, pawn2);
VehicleHandler handler = vehicle.handlers.Find(x => x.role.handlingTypes == HandlingTypeFlags.None);
VehicleHandler handler = vehicle.handlers.Find(x => x.role.HandlingTypes == HandlingTypeFlags.None);
return new Job(JobDefOf.PrepareCaravan_GatherDownedPawns, pawn2)
{
count = 1
Expand All @@ -44,7 +44,7 @@ private Pawn FindPrisoner(Pawn pawn)
private VehiclePawn FindShipToDeposit(Pawn pawn, Pawn downedPawn)
{
List<VehiclePawn> vehicles = pawn.GetLord().ownedPawns.Where(x => x is VehiclePawn).Cast<VehiclePawn>().ToList();
return vehicles.MaxBy(x => x.VehicleDef.properties.roles.Find(y => y.handlingTypes == HandlingTypeFlags.None).slots);
return vehicles.MaxBy(x => x.VehicleDef.properties.roles.Find(y => y.HandlingTypes == HandlingTypeFlags.None).Slots);
}
}
}
Loading

0 comments on commit fcb627f

Please sign in to comment.