Exemplo n.º 1
0
        protected static void StatusEffects_ReleasedSpecialAbility(StatusEffects __instance)
        {
            if (__instance.agent.ghost || __instance.agent.teleporting)
            {
                return;
            }

            CustomAbility ability = RogueLibs.GetAbility(__instance.agent.specialAbility);

            ability?.OnReleased?.Invoke(__instance.agent?.inventory?.equippedSpecialAbility, __instance.agent);
        }
Exemplo n.º 2
0
        protected static IEnumerator StatusEffects_RechargeSpecialAbility2(IEnumerator iEnumerator, StatusEffects __instance)
        {
            while (iEnumerator.MoveNext())
            {
                CustomAbility ability = RogueLibs.GetAbility(__instance.agent?.specialAbility);
                if (ability == null)
                {
                    yield return(iEnumerator.Current);
                }
                else
                {
                    yield return(ability.RechargeInterval?.Invoke(__instance.agent?.inventory?.equippedSpecialAbility, __instance.agent));

                    ability.Recharge?.Invoke(__instance.agent?.inventory?.equippedSpecialAbility, __instance.agent);
                }
            }
        }
Exemplo n.º 3
0
 protected static IEnumerator StatusEffects_SpecialAbilityInterfaceCheck2(IEnumerator iEnumerator, StatusEffects __instance)
 {
     while (iEnumerator.MoveNext())
     {
         CustomAbility ability = RogueLibs.GetAbility(__instance.agent?.specialAbility);
         if (ability?.IndicatorCheck != null)
         {
             PlayfieldObject res = ability.IndicatorCheck.Invoke(__instance.agent?.inventory?.equippedSpecialAbility, __instance.agent);
             if (res == null)
             {
                 __instance.agent.specialAbilityIndicator.Revert();
             }
             else
             {
                 __instance.agent.specialAbilityIndicator.ShowIndicator(res, __instance.agent?.specialAbility);
             }
         }
         yield return(iEnumerator.Current);
     }
 }
Exemplo n.º 4
0
        protected static void StatusEffects_GiveSpecialAbility(StatusEffects __instance, string abilityName)
        {
            if (GameController.gameController.levelType == "HomeBase" && !__instance.agent.isDummy)
            {
                return;
            }
            if (__instance.agent.name == "DummyAgent" || __instance.agent.name.Contains("BackupAgent"))
            {
                return;
            }

            CustomAbility ability = RogueLibs.GetAbility(__instance.agent.inventory.equippedSpecialAbility.invItemName);

            if (ability?.IndicatorCheck != null)
            {
                __instance.SpecialAbilityInterfaceCheck();
            }
            if (ability?.Recharge != null)
            {
                __instance.RechargeSpecialAbility(abilityName);
            }
        }
Exemplo n.º 5
0
        protected static void SpecialAbilityIndicator_ShowIndicator(SpecialAbilityIndicator __instance, string specialAbilityType)
        {
            CustomAbility ability = RogueLibs.GetAbility(specialAbilityType);

            __instance.image.sprite = ability.Sprite;
        }