예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }