Пример #1
0
        public void SetAbilities(AbilityData[] abilities, Unit unit)
        {
            for (int index = 0; index < this.mAbilityButtons.Count; ++index)
            {
                UnityEngine.Object.Destroy((UnityEngine.Object) this.mAbilityButtons[index]);
            }
            this.mAbilityButtons.Clear();
            Transform parent = this.AbilityButton.get_transform().get_parent();

            for (int index1 = 0; index1 < abilities.Length; ++index1)
            {
                if (abilities[index1].AbilityType != EAbilityType.Passive)
                {
                    bool             flag1   = false;
                    int              mp      = (int)unit.CurrentStatus.param.mp;
                    AbilityData      ability = abilities[index1];
                    List <SkillData> skills  = ability.Skills;
                    GameObject       go      = (GameObject)UnityEngine.Object.Instantiate <GameObject>((M0)this.AbilityButton);
                    go.get_transform().SetParent(parent, false);
                    DataSource.Bind <AbilityData>(go, ability);
                    go.SetActive(true);
                    for (int index2 = 0; index2 < skills.Count; ++index2)
                    {
                        SkillData skill         = skills[index2];
                        int       skillUseCount = (int)unit.GetSkillUseCount(skill);
                        int       skillUsedCost = unit.GetSkillUsedCost(skill);
                        if (!skill.IsPassiveSkill())
                        {
                            bool flag2 = skillUseCount > 0 || skill.IsSkillCountNoLimit;
                            if (skillUsedCost <= mp && flag2)
                            {
                                flag1 = true;
                                break;
                            }
                        }
                    }
                    if (!flag1 && !string.IsNullOrEmpty(this.AbilityImageBG))
                    {
                        Transform childRecursively = GameUtility.findChildRecursively(go.get_transform(), this.AbilityImageBG);
                        if (UnityEngine.Object.op_Inequality((UnityEngine.Object)childRecursively, (UnityEngine.Object)null))
                        {
                            ((Graphic)((Component)childRecursively).GetComponent <Image>()).set_color(this.AbilityDisableColor);
                        }
                    }
                    if (!flag1 && !string.IsNullOrEmpty(this.AbilityImageIcon))
                    {
                        Transform childRecursively = GameUtility.findChildRecursively(go.get_transform(), this.AbilityImageIcon);
                        if (UnityEngine.Object.op_Inequality((UnityEngine.Object)childRecursively, (UnityEngine.Object)null))
                        {
                            ((Graphic)((Component)childRecursively).GetComponent <RawImage_Transparent>()).set_color(this.AbilityDisableColor);
                        }
                    }
                    this.SetButtonEvent(go, (UnitCommands.ClickEvent)(() => this.OnSelectAbility(ability)));
                    this.mAbilityButtons.Add(go);
                }
            }
            this.SortButtons();
        }
Пример #2
0
        public static void GetPassiveBuffStatus(SkillData skill, BuffEffect[] add_buff_effects, EElement element, ref BaseStatus status, ref BaseStatus negative_status, ref BaseStatus debuff_status, ref BaseStatus negative_debuff_status, ref BaseStatus scale_status)
        {
            if (skill == null || !skill.IsPassiveSkill())
            {
                return;
            }
            BuffEffect buffEffect1 = skill.GetBuffEffect(SkillEffectTargets.Target);

            if (buffEffect1 != null && buffEffect1.param != null && (buffEffect1.param.mAppType == EAppType.Standard && buffEffect1.param.mEffRange == EEffRange.Self) && !(bool)buffEffect1.param.mIsUpBuff)
            {
                skill.BuffSkill(ESkillTiming.Passive, element, status, negative_status, scale_status, debuff_status, negative_debuff_status, scale_status, (RandXorshift)null, SkillEffectTargets.Target, false, (List <BuffEffect.BuffValues>)null);
            }
            BuffEffect buffEffect2 = skill.GetBuffEffect(SkillEffectTargets.Self);

            if (buffEffect2 == null || buffEffect2.param == null || (buffEffect2.param.mAppType != EAppType.Standard || buffEffect2.param.mEffRange != EEffRange.Self) || (bool)buffEffect2.param.mIsUpBuff)
            {
                return;
            }
            skill.BuffSkill(ESkillTiming.Passive, element, status, negative_status, scale_status, debuff_status, negative_debuff_status, scale_status, (RandXorshift)null, SkillEffectTargets.Self, false, (List <BuffEffect.BuffValues>)null);
        }
Пример #3
0
        public static void GetHomePassiveBuffStatus(SkillData skill, EElement element, ref BaseStatus status, ref BaseStatus negative_status, ref BaseStatus debuff_status, ref BaseStatus negative_debuff_status, ref BaseStatus scale_status)
        {
            if (skill == null || !skill.IsPassiveSkill() || (skill.Target != ESkillTarget.Self || skill.Condition != ESkillCondition.None) || !string.IsNullOrEmpty(skill.SkillParam.tokkou))
            {
                return;
            }
            BuffEffect buffEffect1 = skill.GetBuffEffect(SkillEffectTargets.Target);

            if (buffEffect1 != null && buffEffect1.param != null && (buffEffect1.param.cond == ESkillCondition.None && buffEffect1.param.mAppType == EAppType.Standard) && (buffEffect1.param.mEffRange == EEffRange.Self && !(bool)buffEffect1.param.mIsUpBuff))
            {
                skill.BuffSkill(ESkillTiming.Passive, element, status, negative_status, scale_status, debuff_status, negative_debuff_status, scale_status, (RandXorshift)null, SkillEffectTargets.Target, false, (List <BuffEffect.BuffValues>)null);
            }
            BuffEffect buffEffect2 = skill.GetBuffEffect(SkillEffectTargets.Self);

            if (buffEffect2 == null || buffEffect2.param == null || (buffEffect2.param.cond != ESkillCondition.None || buffEffect2.param.mAppType != EAppType.Standard) || (buffEffect2.param.mEffRange != EEffRange.Self || (bool)buffEffect2.param.mIsUpBuff))
            {
                return;
            }
            skill.BuffSkill(ESkillTiming.Passive, element, status, negative_status, scale_status, debuff_status, negative_debuff_status, scale_status, (RandXorshift)null, SkillEffectTargets.Self, false, (List <BuffEffect.BuffValues>)null);
        }