using System.Collections.Generic;
namespace GFGGame
{
public struct FieldInfos
{
///
/// 当前主题 由ConstItemAttributeType定义
///
public int theme;
///
/// 最高关卡记录列表,由简单到难
///
public Dictionary highestLvls;
///
/// 每周已领奖励
///
public int bonusWeekly;
///
/// 奖励上限
///
public int bonusMaxLimit;
///
/// 任务奖励状态 由ConstBonusStatus定义
///
public Dictionary taskDic;
///
/// 仅在上线时判断是否有奖励未结算
///
public bool hasBonus;
};
public struct FieldResult
{
///
/// 完成关数
///
public int passLvl;
///
/// 奖励列表
///
public List bonusList;
///
/// 体力消耗
///
public int costNum;
///
/// 章节id
///
public int chapterId;
}
public class FieldDataManager : SingletonBase
{
public FieldInfos fieldInfos = new FieldInfos();
public FieldResult fieldResult = new FieldResult();
///
///当前难度的副本Id
///
public int chapterId;
///
/// 当前关卡挑战进度,起始为1
///
public int currFightLv = 1;
///
/// 当前难度
///
public int difficulty = 0;
///
/// 根据副本Id获取最高记录
///
///
///
public int GetHighestLvByChapterId(int chapterId)
{
if (!fieldInfos.highestLvls.ContainsKey(chapterId))
{
return 0;
}
else
{
return fieldInfos.highestLvls[chapterId];
}
}
///
/// 获取任务列表
///
///
public List GetTaskCfgs()
{
List cfgs = new List(FieldTaskCfgArray.Instance.dataArray);
cfgs.Sort((FieldTaskCfg a, FieldTaskCfg b) =>
{
int stateA = GetTaskState(a.id) == 1 ? 1 : -1;
int stateB = GetTaskState(b.id) == 1 ? 1 : -1;
if (stateA > stateB) return -1;
if (stateB > stateA) return 1;
return GetTaskState(a.id).CompareTo(GetTaskState(b.id));
});
return cfgs;
}
///
/// 根据任务ID获取任务状态0未完成1可领取2已领取
///
///
///
public int GetTaskState(int taskId)
{
if (fieldInfos.taskDic == null) return 0;
return fieldInfos.taskDic.ContainsKey(taskId) ? fieldInfos.taskDic[taskId] : 0;
}
}
}