using System;
using System.Collections.Generic;
using Excel2Json;
using Fort23.Core;
using Fort23.UTool;
using GameLogic.Hero;
using Utility;
namespace Fort23.Mono
{
public class RedDotData
{
///
/// 具体Id
///
public int Id;
///
/// 红点组ID
///
public int GroupId;
///
/// 当前红点所属于层级 1级为最上层
///
public int Layer;
///
/// 是否已经激活
///
private bool _isEnable;
public bool isEnable
{
get { return _isEnable; }
set { _isEnable = value; }
}
public int EnableId;
public void Update()
{
switch (GroupId)
{
case 1:
isEnable = false;
switch (EnableId) //具体出现条件
{
case 0: //没有自己的红点逻辑根据下层红点来决定
isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
break;
case 1:
var _skillPowerupConfigs = ConfigComponent.Instance.GetAll();
foreach (var _skillInfo in PlayerManager.Instance.GongFaControl.allSkill)
{
if (RedDotManager.Instance.isSkillUpgrade(_skillInfo))
{
isEnable = true;
return;
}
}
break;
}
break;
case 5: //具体组
isEnable = false;
switch (EnableId) //具体出现条件
{
case 0: //没有自己的红点逻辑根据下层红点来决定
isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
break;
case 1:
int currentMiao =
(int)((TimeHelper.ClientNow() - PlayerManager.Instance.myHero.heroData.upTime) /
1000);
float allexp = currentMiao * PlayerManager.Instance.myHero.powerUpConfig.AutoXiuwei;
if (PlayerManager.Instance.myHero.heroData.exp + allexp <
PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
{
isEnable = false;
return;
}
isEnable = true;
break;
}
break;
case 7: //具体组
isEnable = false;
switch (EnableId) //具体出现条件
{
case 0: //没有自己的红点逻辑根据下层红点来决定
isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
break;
case 1:
AccountFileInfo.SummonData summonData =
PlayerManager.Instance.SummonManager.summonDataMap[1];
OpenBoxConfig openBoxConfig = ConfigComponent.Instance.Get(1);
//有免费次数,并且让到时间了就免费抽
if (summonData.tenFreeCount < openBoxConfig.oneConsumeFreePara_1[1] &&
PlayerManager.Instance.serverTime >= summonData.nextTenFreeTime)
{
isEnable = true;
return;
}
isEnable = false;
break;
}
break;
case 8: //具体组
isEnable = false;
switch (EnableId) //具体出现条件
{
case 0: //没有自己的红点逻辑根据下层红点来决定
isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
break;
case 1:
for (int i = 0; i < 4; i++)
{
FaBaoInfo faBaoInfo = PlayerManager.Instance.FaBaoControl.FightFaBao[i];
if (RedDotManager.Instance.IsFabaoUpgrade1(i, faBaoInfo))
{
isEnable = true;
return;
}
}
break;
}
break;
case 11: //具体组
isEnable = false;
switch (EnableId) //具体出现条件
{
case 0: //没有自己的红点逻辑根据下层红点来决定
isEnable = RedDotManager.Instance.AllRedDotGroupData[GroupId].TargetLayerIsEnable(Layer);
break;
case 1:
if (AccountFileInfo.Instance.playerData.QiankundaiLingQuAwardTime == 0)
{
isEnable = true;
return;
}
int miao = (int)((PlayerManager.Instance.serverTime -
AccountFileInfo.Instance.playerData.QiankundaiLingQuAwardTime) / 1000);
if (miao >= 300)
{
isEnable = true;
}
break;
}
break;
}
}
}
}