static void PrefixHpChangeEventTrigger(Pathea.SkillNs.Caster caster, float hpChangeOrigin, float hpChanged, bool critical, Pathea.ActorNs.Actor __instance) { if (!Main.enabled) { return; } // if player did it. if (System.Object.ReferenceEquals(caster.Castable, Player.Self.actor)) { Player.Self.ChangeHp(Main.modSettings.HealthLeech); Player.Self.ChangeStamina(Main.modSettings.StaminaLeech); } }
static void PrefixRunSkill(ref Pathea.SkillNs.SkillRunner __instance, ref Pathea.SkillNs.Skill skill, ref Pathea.SkillNs.Caster caster, ref Pathea.SkillNs.Target receiver) { if (!System.Object.ReferenceEquals(caster.Castable, Pathea.Player.Self.actor)) { return; } float animSpeed = -1.0F; string detectedAnimation = ""; skill.ForEachCmd(delegate(Pathea.SkillNs.Cmd cmd) { if (animSpeed > 0.0F) { return; } if (cmd is Pathea.SkillNs.AnimationCmd) { // stop at first animation cmd. detectedAnimation = (string)Traverse.Create(cmd).Field("mAnimation").GetValue(); animSpeed = AnimHelper.GetSpeedForAnimName(detectedAnimation); } }); // Main.dump(detectedAnimation); // Main.dump(animSpeed); if (animSpeed < 0.0F) { animSpeed = Main.modSettings.GlobalPlayerAnimSpeed; } // Main.dump(detectedAnimation); // Main.dump(animSpeed); Traverse.Create(skill).Field("totaltime").SetValue(skill.TotalTime / animSpeed); Traverse.Create(skill).Field("nextSkillTime").SetValue(skill.NextSkillTime / animSpeed); Traverse.Create(skill).Field("cdTime").SetValue(skill.CdTime / animSpeed); }