diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index ef9b4c3..b0e6a42 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -27368,6 +27368,7 @@ MonoBehaviour: shieldsCooldown: 10 districtCaptureCooldown: 30 DefaultFuelJumpLength: 1200 + FlankFuelConsumptionFactor: 0.3 SpawnAIPlayer: 1 TimeScale: 1 --- !u!4 &426309784 @@ -111490,6 +111491,7 @@ GameObject: m_Component: - component: {fileID: 1830077744} - component: {fileID: 1830077743} + - component: {fileID: 1830077745} m_Layer: 0 m_Name: PlayerShips m_TagString: Untagged @@ -111529,6 +111531,23 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 17 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1830077745 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1830077742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e3fbe30dead34c49a8585bf21ae46af, type: 3} + m_Name: + m_EditorClassIdentifier: + unitName: Wyt_Frigate + unitCount: 6 + playerId: 5 + zone: {fileID: 766573529} + assignAsLeader: 0 --- !u!1001 &1834518974 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/GWConquest/Scripts/GameManager.cs b/Assets/GWConquest/Scripts/GameManager.cs index 13a2130..666c339 100644 --- a/Assets/GWConquest/Scripts/GameManager.cs +++ b/Assets/GWConquest/Scripts/GameManager.cs @@ -81,6 +81,8 @@ namespace GWConquest public float DefaultFuelJumpLength; + public float FlankFuelConsumptionFactor; + public bool SpawnAIPlayer; public bool IsLoaded { get; private set; } = false; diff --git a/Assets/GWConquest/Scripts/Unit.cs b/Assets/GWConquest/Scripts/Unit.cs index 7ad23eb..86363d4 100644 --- a/Assets/GWConquest/Scripts/Unit.cs +++ b/Assets/GWConquest/Scripts/Unit.cs @@ -436,12 +436,24 @@ namespace GWConquest if (BattleState == BattleUnitState.MovingToFlank) { BattleState = BattleUnitState.OnFlank; + + int requiredFuel = GetFuelCostForFlank(); + if(requiredFuel <= TotalFuel) + { + ConsumeTotalFuel(requiredFuel); + } } else if (BattleState == BattleUnitState.MovingToReserve) { BattleState = BattleUnitState.InReserve; CurrentFlank.RemoveUnit(this); CurrentFlank = null; + + int requiredFuel = GetFuelCostForFlank(); + if(requiredFuel <= TotalFuel) + { + ConsumeTotalFuel(requiredFuel); + } } else if(BattleState == BattleUnitState.StartingShelling) { @@ -559,6 +571,11 @@ namespace GWConquest return Mathf.RoundToInt(length / GameManager.Instance.DefaultFuelJumpLength * Class.FuelConsumption); } + public int GetFuelCostForFlank() + { + return Mathf.RoundToInt(GameManager.Instance.FlankFuelConsumptionFactor * Class.FuelConsumption); + } + public int TotalFuel { get => Fuel + Inventory.GetItemAmount("Fuel"); }