EnergyEfficiencyManagement/Assets/Zion/Scripts/Manager/ScoreBase.cs

89 lines
2.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Newtonsoft.Json;
using SK.Framework;
public abstract class ScoreBase : MonoBehaviour
{
/// <summary>
/// 系统id
/// </summary>
public int systemId;
/// <summary>
/// 科目id
/// </summary>
public int schemeId;
/// <summary>
/// 科目满分
/// </summary>
protected float maxScore = 100;
/// <summary>
/// 科目得分s
/// </summary>
protected float currentScore;
/// <summary>
/// 此科目步骤
/// </summary>
public Dictionary<int, ScoreSubjectStep> steps;
public virtual void Init()
{
systemId = 10001;
schemeId = 10001;
}
/// <summary>
/// 判分
/// </summary>
public virtual void CheckScore(string triggerName,object para)
{
}
public virtual void SetScore(List<float> scores)
{
for (int i = 0; i < scores.Count; i++)
{
steps[i+1].maxScore= scores[i];
}
}
/// <summary>
/// 获取总分
/// </summary>
public float GetTotalScore()
{
float all = 0;
foreach (var item in steps)
{
all+=item.Value.currentScore;
if(item.Value.isOneVoteVeto && item.Value.currentScore==0)
{
all = 0;
break;
}
}
Debug.LogError("总分为:" + all);
return all;
}
/// <summary>
/// 返回成绩详情
/// </summary>
/// <returns></returns>
public Dictionary<int, ScoreSubjectStep> GetStepScore()
{
//Debug.LogError(JsonConvert.SerializeObject(steps));
return steps;
}
/// <summary>
/// 记录现场环境中scoreBase的各项List缓存
/// </summary>
public abstract string SaveSceneBufferList();
/// <summary>
/// 还原现场环境中scoreBase的各项List缓存
/// </summary>
public abstract void LoadSceneBufferList(string sceneInfo);
}