private void PlayRuinAnimation(On.EntityStates.GlobalSkills.LunarDetonator.Detonate.orig_OnEnter orig, EntityStates.GlobalSkills.LunarDetonator.Detonate self) { orig(self); if (self.characterBody.baseNameToken == "PALADIN_NAME") { self.PlayAnimation("Gesture, Override", "CastRuin", "Ruin.playbackRate", self.duration * 0.5f); Util.PlaySound("PaladinFingerSnap", self.gameObject); self.StartAimMode(self.duration + 0.5f); EffectManager.SimpleMuzzleFlash(Resources.Load <GameObject>("Prefabs/Effects/MuzzleFlashes/MuzzleflashLunarNeedle"), self.gameObject, "HandL", false); } }
public static void Detonate_OnEnter(On.EntityStates.GlobalSkills.LunarDetonator.Detonate.orig_OnEnter orig, EntityStates.GlobalSkills.LunarDetonator.Detonate self) { //cache PlayAnimParams oldParams = new PlayAnimParams(self.animationLayerName, self.animationStateName, self.playbackRateParam, self.duration); //var oldAnimName = self.animationLayerName; //var oldStateName = self.animationStateName; //var oldPlaybackRate = self.playbackRateParam; //var oldDuration = self.duration; void modify(PlayAnimParams playAnimParams) { self.animationLayerName = playAnimParams.animationLayerName; self.animationStateName = playAnimParams.animationStateName; self.playbackRateParam = playAnimParams.playbackRateParam; self.duration = playAnimParams.duration > 0 ? playAnimParams.duration : oldParams.duration * -playAnimParams.duration; } if (animOverrideParams.TryGetValue(self.characterBody.baseNameToken, out PlayAnimParams value)) { modify(value); } /*void modify(string animationLayerName, string animationStateName, string playbackRateParam, float duration) * { * self.animationLayerName = animationLayerName; * self.animationStateName = animationStateName; * self.playbackRateParam = playbackRateParam; * self.duration = duration; * }*/ orig(self); //restore modify(oldParams); }