public static ContextActionCombatManeuverCTT CreateFrom(ContextActionCombatManeuver original, bool doNotProvokeAoO = false) { var instance = Library.Create <ContextActionCombatManeuverCTT>(); instance.Type = original.Type; instance.OnSuccess = original.OnSuccess; instance.ReplaceStat = original.ReplaceStat; instance.NewStat = original.NewStat; instance.UseKineticistMainStat = original.UseKineticistMainStat; instance.UseCastingStat = original.UseCastingStat; instance.UseCasterLevelAsBaseAttack = original.UseCasterLevelAsBaseAttack; instance.UseBestMentalStat = original.UseBestMentalStat; instance.BatteringBlast = original.BatteringBlast; instance.DoNotProvokeAoO = doNotProvokeAoO; return(instance); }
static bool Prefix(ContextActionCombatManeuver __instance) { var tr = Harmony12.Traverse.Create(__instance); var target = tr.Property("Target").GetValue <TargetWrapper>(); var unit = target?.Unit; if (unit == null) { return(true); } if (__instance.Type == CombatManeuverTypeExtender.AwesomeBlow.ToCombatManeuverType() && (unit.Descriptor.State.Prone.Active || unit.View.IsGetUp)) { return(false); } return(true); }