Browse Source

Fuel Consumption on Flank Move

master
laurids 2 years ago
parent
commit
8ba181b3fd
3 changed files with 38 additions and 0 deletions
  1. +19
    -0
      Assets/GWConquest/Scenes/GalaxyMap.unity
  2. +2
    -0
      Assets/GWConquest/Scripts/GameManager.cs
  3. +17
    -0
      Assets/GWConquest/Scripts/Unit.cs

+ 19
- 0
Assets/GWConquest/Scenes/GalaxyMap.unity View File

@ -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


+ 2
- 0
Assets/GWConquest/Scripts/GameManager.cs View File

@ -81,6 +81,8 @@ namespace GWConquest
public float DefaultFuelJumpLength;
public float FlankFuelConsumptionFactor;
public bool SpawnAIPlayer;
public bool IsLoaded { get; private set; } = false;


+ 17
- 0
Assets/GWConquest/Scripts/Unit.cs View File

@ -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");
}


Loading…
Cancel
Save