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:
foreach (var _skillInfo in PlayerManager.Instance.GongFaControl.allUseSkill)
{
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;
}
int redDotID = 5;
AccountFileInfo.RedDot redDot = RedDotManager.Instance.GetRedDot(redDotID);
HeroInfo heroInfo = PlayerManager.Instance.myHero.CopyHero();
heroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId,
PlayerManager.Instance.myHero.heroData.heroPowerId + 1);
if (PlayerManager.Instance.myHero.powerUpConfig.jingjie1 == heroInfo.powerUpConfig.jingjie1)
{
//小突破
if (PlayerManager.Instance.myHero.powerUpConfig.jingjie2 ==
heroInfo.powerUpConfig.jingjie2)
{
isEnable = true;
return;
}
//大突破
else
{
for (var i = 0;
i < PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs.Length;
i++)
{
if (!PlayerManager.Instance.BagController.IsEnough(
PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs[i], 1))
{
isEnable = false;
return;
}
}
//当前升级已经查看了也不显示红点
if (redDot != null &&
redDot.Params.Contains(
PlayerManager.Instance.myHero.powerUpConfig.ID.ToString()))
{
isEnable = false;
return;
}
}
}
//渡劫
else
{
for (var i = 0;
i < PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs.Length;
i++)
{
if (!PlayerManager.Instance.BagController.IsEnough(
PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs[i], 1))
{
isEnable = false;
return;
}
}
//当前升级已经查看了也不显示红点
if (redDot != null &&
redDot.Params.Contains(PlayerManager.Instance.myHero.powerUpConfig.ID.ToString()))
{
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: //挂机奖励大于300分钟
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;
}
}
}
}