示例#1
0
 public static List <AwakeInfo> NextAwakeInfo(AwakeInfo info)
 {
     if (!info)
     {
         return(new List <AwakeInfo>(0));
     }
     return(info.nextInfoList);
 }
示例#2
0
 public static AwakeInfo PrevAwakeInfo(AwakeInfo info)
 {
     if (info != null && info.dependId != 0)
     {
         return(ConfigManager.Get <AwakeInfo>(info.dependId));
     }
     return(null);
 }
示例#3
0
    public void RequestAwakeSkill(AwakeInfo rInfo)
    {
        if (!rInfo)
        {
            return;
        }
        RequestAwakeSkill(rInfo.ID);

        moduleGlobal.LockUI();
    }
示例#4
0
 public bool CheckPrev(AwakeInfo info)
 {
     if (info == null)
     {
         return(false);
     }
     //没有前置关卡就可以直接点亮
     if (info.dependId == 0)
     {
         return(true);
     }
     return(Check(info.dependId));
 }
示例#5
0
 /// <summary>
 /// 检测激活状态 -1 已经激活 0 可以激活 1 不能激活 2等级不足不能激活
 /// </summary>
 /// <param name="info"></param>
 /// <returns>-1 已经激活 0 可以激活 1 不能激活 2等级不足不能激活</returns>
 public int CheckAwakeState(AwakeInfo info)
 {
     if (CheckPrev(info))
     {
         if (Check(info))
         {
             return(-1);
         }
         if (modulePlayer.level >= info.dependlv)
         {
             return(0);
         }
         return(2);
     }
     return(1);
 }
示例#6
0
    public bool Check(AwakeInfo info)
    {
        if (info == null)
        {
            return(false);
        }
        var data = currentAwake[(int)info.type];

        if (data == null || info.layer >= data.Length)
        {
            return(false);
        }

        int mark = data[info.layer];

        return(mark.BitMask(info.index));
    }
示例#7
0
    public override bool Initialize(params object[] p)
    {
        if (!base.Initialize(p))
        {
            return(false);
        }

        info  =  p[0] as AwakeInfo;
        state = (int)p[1];

        awakeButton?.onClick.AddListener(OnAwakeClick);
        cancelButton?.onClick.AddListener(OnCancelClick);
        closeButton?.onClick.AddListener(() => UnInitialize());
        bgButton?.onClick.AddListener(() => UnInitialize());

        RefreshInfo();
        return(true);
    }
示例#8
0
 public void Init(AwakeInfo rInfo)
 {
     info = rInfo;
 }
示例#9
0
    private bool CreateState(StateMachineInfo.StateDetail s, StateMachineInfo parent)
    {
        if (!s.valid)
        {
            return(false);
        }

        StateMachineState state = null;

        var skillID = SkillToStateInfo.GetSkillID(creature.weaponID, s.ID);

        if (skillID < 0)
        {
            var list = AwakeInfo.GetSkillIDList(s.hash);
            if (list != null && list.Count > 0)
            {
                var ss = new List <StateMachineInfo.StateDetail>();
                foreach (var id in list)
                {
                    var lv = creature.GetSkillLevel(id);
                    if (lv > 0)
                    {
                        var ainfo      = ConfigManager.Get <AwakeInfo>(id);
                        var stateLevel = ainfo?.states.Find(Item => Item.state == s.state);
                        if (stateLevel != null)
                        {
                            lv = stateLevel.level;
                        }
                    }

                    if (lv >= 0)
                    {
                        var os = StateOverrideInfo.GetOriginOverrideState(info, s, lv);
                        if (os != null)
                        {
                            ss.Add(os);
                        }
                    }
                }
                s = StateOverrideInfo.StateOverride.Combin(s, ss);
            }

            if (!s.valid)
            {
                return(false);
            }

            state = StateMachineState.Create(this, parent, s, SkilLEntry.empty);
        }
        else
        {
            var skill = creature.GetSkillEntry(skillID);
            var level = skill.valid ? skill.level : 0;
            var ls    = level <= 0 ? s : StateOverrideInfo.GetOverrideState(info, s, level);

            if (!ls.valid)
            {
                return(false);
            }

            state = StateMachineState.Create(this, parent, ls, skill);
        }

        states.Add(state);

        if (state.passive)
        {
            m_passiveHash.Set(s.ID, states.Count - 1);
        }
        if (s.coolGroup != 0)
        {
            m_coolGroups.GetDefault(s.coolGroup).Add(state);
        }

        return(true);
    }