public void HandleKineticistAcceptBurn(UnitPartKineticist kinetecist, int burn, AbilityData ability) { if (actions != null) { (this.Fact as IFactContextOwner)?.RunActionInContext(this.actions, kinetecist.Owner.Unit); } }
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); }
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); }
private static bool shouldReturnToQueue(UnitPartKineticist kineticist, UnitCommand cmd) { return(kineticist.IsActivatingBladeNow || kineticist.Owner.Unit.CombatState.HasCooldownForCommand(cmd)); }