public void HandleKineticistAcceptBurn(UnitPartKineticist kinetecist, int burn, AbilityData ability)
 {
     if (actions != null)
     {
         (this.Fact as IFactContextOwner)?.RunActionInContext(this.actions, kinetecist.Owner.Unit);
     }
 }
Пример #2
0
        static bool Prefix(UnitPartKineticist __instance, ref AddKineticistPart ___m_Settings)
        {
            if (__instance.Owner.Buffs.HasFact(KineticistFix.kinetic_whip_buff))
            {
                return(false);
            }

            /*var blade_enabled_buff = __instance.Owner.Buffs.GetBuff(___m_Settings.BladeActivatedBuff);
             *
             * if (Main.settings.kinetic_blade_refresh_for_tb && __instance.Owner.Unit.IsInCombat && blade_enabled_buff != null)
             * {//remove after 5 seconds to avoid paying cost for next round in the previous one, will not properly work in rt
             *  blade_enabled_buff.RemoveAfterDelay(new TimeSpan(0, 0, 5));
             * }
             * else
             * {
             *  __instance.Owner.Buffs.RemoveFact(___m_Settings.BladeActivatedBuff);
             * }*/

            __instance.Owner.Buffs.RemoveFact(___m_Settings.BladeActivatedBuff);
            return(false);
        }
Пример #3
0
        static bool getResult(RestrictionCanGatherPower __instance)
        {
            UnitPartKineticist unitPartKineticist = __instance.Owner.Get <UnitPartKineticist>();

            if (unitPartKineticist == null)
            {
                return(false);
            }
            UnitBody body = __instance.Owner.Body;

            if (body.IsPolymorphed)
            {
                return(false);
            }
            ItemEntity     maybeItem1 = body.PrimaryHand.MaybeItem;
            WeaponCategory?category   = (maybeItem1 as ItemEntityWeapon)?.Blueprint.Category;
            bool           flag       = category.GetValueOrDefault() == WeaponCategory.KineticBlast && category.HasValue;

            if (maybeItem1 != null && !flag)
            {
                return(false);
            }

            ItemEntity maybeItem2 = body.SecondaryHand.MaybeItem;

            if (maybeItem2 == null)
            {
                return(true);
            }
            ArmorProficiencyGroup?proficiencyGroup = body.SecondaryHand.MaybeShield?.Blueprint.Type.ProficiencyGroup;

            if (proficiencyGroup.HasValue && (proficiencyGroup.GetValueOrDefault() != ArmorProficiencyGroup.TowerShield))
            {
                return(unitPartKineticist.CanGatherPowerWithShield || Helpers.hasFreeHand(body.SecondaryHand));
            }
            return(false);
        }
Пример #4
0
 private static bool shouldReturnToQueue(UnitPartKineticist kineticist, UnitCommand cmd)
 {
     return(kineticist.IsActivatingBladeNow || kineticist.Owner.Unit.CombatState.HasCooldownForCommand(cmd));
 }