引擎部分修改
This commit is contained in:
@@ -15,13 +15,15 @@ namespace AibisDream
|
||||
[SerializeField] private float baseAirMax;
|
||||
[SerializeField] public int maxLevel;
|
||||
|
||||
private EngineData _engineData;
|
||||
[Header("系统数据")]
|
||||
[SerializeField]
|
||||
private EngineData engineData;
|
||||
|
||||
public event Action<EngineData> UpdateDashboard;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
_engineData = new EngineData();
|
||||
engineData = new EngineData();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -29,16 +31,16 @@ namespace AibisDream
|
||||
// 更新部分按时间自然计算的指标
|
||||
DataAutoChange();
|
||||
// 更新看板
|
||||
UpdateDashboard?.Invoke(_engineData);
|
||||
UpdateDashboard?.Invoke(engineData);
|
||||
}
|
||||
|
||||
private void DataAutoChange()
|
||||
{
|
||||
// 自然减速
|
||||
_engineData.OilChange(-oilDownRatio);
|
||||
_engineData.CalcAir(airMaxRatio, airMinRatio, baseAirMax);
|
||||
engineData.OilChange(-oilDownRatio);
|
||||
engineData.CalcAir(airMaxRatio, airMinRatio, baseAirMax);
|
||||
// 推算速度
|
||||
_engineData.CalcSpeed(acceleratedSpeed, resistance);
|
||||
engineData.CalcSpeed(acceleratedSpeed, resistance);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -46,20 +48,16 @@ namespace AibisDream
|
||||
/// </summary>
|
||||
public void AddOil()
|
||||
{
|
||||
_engineData.OilChange(oilUpRatio);
|
||||
engineData.OilChange(oilUpRatio);
|
||||
}
|
||||
|
||||
public void SubtractAirLevel()
|
||||
public void UpdateAirLevel(int curLevel)
|
||||
{
|
||||
_engineData.SubtractAirLevel();
|
||||
}
|
||||
|
||||
public void AddAirLevel()
|
||||
{
|
||||
_engineData.AddAirLevel();
|
||||
engineData.UpdateAirLevel(curLevel, maxLevel);
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct EngineData
|
||||
{
|
||||
public float curSpeed;
|
||||
@@ -92,26 +90,12 @@ namespace AibisDream
|
||||
curAirMin = curSpeed * (curAirLevel + 1) * airMinRatio;
|
||||
}
|
||||
|
||||
public void AddAirLevel()
|
||||
public void UpdateAirLevel(int level, int maxLevel)
|
||||
{
|
||||
curAirLevel += 1;
|
||||
if (curAirLevel > 5)
|
||||
curAirLevel = level;
|
||||
if (curAirLevel > maxLevel)
|
||||
{
|
||||
curAirLevel = 4;
|
||||
}
|
||||
|
||||
if (curAirLevel < 0)
|
||||
{
|
||||
curAirLevel = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void SubtractAirLevel()
|
||||
{
|
||||
curAirLevel -= 1;
|
||||
if (curAirLevel > 5)
|
||||
{
|
||||
curAirLevel = 4;
|
||||
curAirLevel = maxLevel - 1;
|
||||
}
|
||||
|
||||
if (curAirLevel < 0)
|
||||
|
||||
Reference in New Issue
Block a user