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(); }
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); }
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); }