|
|
|
|
/*
|
|
|
|
|
http://www.cgsoso.com/forum-211-1.html
|
|
|
|
|
|
|
|
|
|
CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!
|
|
|
|
|
|
|
|
|
|
CGSOSO 主打游戏开发,影视设计等CG资源素材。
|
|
|
|
|
|
|
|
|
|
插件如若商用,请务必官网购买!
|
|
|
|
|
|
|
|
|
|
daily assets update for try.
|
|
|
|
|
|
|
|
|
|
U should buy the asset from home store if u use it in your project!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
[CreateAssetMenu(fileName = "LevelGroup", menuName = "PipeOut/Create LevelGroup", order = 1)]
|
|
|
|
|
public class LevelGroup : ScriptableObject
|
|
|
|
|
{
|
|
|
|
|
public string LevelGroupName = "Easy";
|
|
|
|
|
|
|
|
|
|
public int TotalLevel = 50;
|
|
|
|
|
|
|
|
|
|
public string ResourcesFolderPath = "Easy\\";
|
|
|
|
|
|
|
|
|
|
public Color bgColor;
|
|
|
|
|
|
|
|
|
|
public int StarXPReward = 1;
|
|
|
|
|
|
|
|
|
|
public int NoOfHint = 4;
|
|
|
|
|
|
|
|
|
|
public Sprite LevelDetailBG;
|
|
|
|
|
|
|
|
|
|
public Sprite LevelHeaderBG;
|
|
|
|
|
public int CompletedLevel
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return PlayerPrefs.GetInt("Completed_" + LevelGroupName.ToUpper(), 0);
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
PlayerPrefs.SetInt("Completed_" + LevelGroupName.ToUpper(), value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public int CompletedLevel_Timer
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return PlayerPrefs.GetInt("Completed_" + LevelGroupName.ToUpper() + "_Timer", 0);
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
PlayerPrefs.SetInt("Completed_" + LevelGroupName.ToUpper() + "_Timer", value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public float AverageCompletedTime
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return PlayerPrefs.GetFloat("AverageTime_" + LevelGroupName.ToUpper(), 0f);
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
PlayerPrefs.SetFloat("AverageTime_" + LevelGroupName.ToUpper(), value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string AverageCompletedTimeString
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
int num = Mathf.FloorToInt(AverageCompletedTime);
|
|
|
|
|
return (num / 60).ToString("00") + " : " + (num % 60).ToString("00");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetLevelCompleted(int LevelNo, float TimeToComplete)
|
|
|
|
|
{
|
|
|
|
|
if (!GamePlayManager.isTimerLevel)
|
|
|
|
|
{
|
|
|
|
|
if (CompletedLevel <= LevelNo)
|
|
|
|
|
{
|
|
|
|
|
CompletedLevel = LevelNo;
|
|
|
|
|
}
|
|
|
|
|
float averageCompletedTime = AverageCompletedTime;
|
|
|
|
|
averageCompletedTime = Mathf.Abs(averageCompletedTime * (float)(CompletedLevel - 1) + TimeToComplete);
|
|
|
|
|
averageCompletedTime = (AverageCompletedTime = averageCompletedTime / (float)CompletedLevel);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (CompletedLevel_Timer <= LevelNo)
|
|
|
|
|
{
|
|
|
|
|
CompletedLevel_Timer = LevelNo;
|
|
|
|
|
}
|
|
|
|
|
float averageCompletedTime = AverageCompletedTime;
|
|
|
|
|
averageCompletedTime = Mathf.Abs(averageCompletedTime * (float)(CompletedLevel_Timer - 1) + TimeToComplete);
|
|
|
|
|
averageCompletedTime = (AverageCompletedTime = averageCompletedTime / (float)CompletedLevel_Timer);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|