引擎部分修改

This commit is contained in:
2024-11-24 17:20:30 +08:00
parent 55ceaf239e
commit 9543d707f7
18 changed files with 531 additions and 523 deletions
+16 -32
View File
@@ -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)