Example #1
0
        private void CharacterModel_UpdateOverlays(On.RoR2.CharacterModel.orig_UpdateOverlays orig, CharacterModel self)
        {
            orig(self);

            if (self)
            {
                if (self.body && self.body.HasBuff(Modules.Buffs.torporDebuff))
                {
                    var torporController = self.body.GetComponent <Misc.PaladinTorporTracker>();
                    if (!torporController)
                    {
                        torporController = self.body.gameObject.AddComponent <Misc.PaladinTorporTracker>();
                    }
                    else
                    {
                        return;
                    }

                    torporController.Body = self.body;
                    TemporaryOverlay overlay = self.gameObject.AddComponent <RoR2.TemporaryOverlay>();
                    overlay.duration              = float.PositiveInfinity;
                    overlay.alphaCurve            = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f);
                    overlay.animateShaderAlpha    = true;
                    overlay.destroyComponentOnEnd = true;
                    overlay.originalMaterial      = Resources.Load <Material>("Materials/matDoppelganger");
                    overlay.AddToCharacerModel(self);
                    torporController.Overlay = overlay;
                }
            }
        }
Example #2
0
        private static void CharacterModel_UpdateOverlays(On.RoR2.CharacterModel.orig_UpdateOverlays orig, CharacterModel self)
        {
            orig(self);

            if (self)
            {
                if (self.body && self.body.HasBuff(Charm))
                {
                    var isCharmed = self.body.GetComponent <IsCharmed>();
                    if (isCharmed && !isCharmed.Overlay)
                    {
                        TemporaryOverlay overlay = self.gameObject.AddComponent <TemporaryOverlay>();
                        overlay.duration              = float.PositiveInfinity;
                        overlay.alphaCurve            = AnimationCurve.Constant(0f, 0f, 0.54f);
                        overlay.animateShaderAlpha    = true;
                        overlay.destroyComponentOnEnd = true;
                        overlay.originalMaterial      = assetBundle.LoadAsset <Material>("Assets/Textures/Materials/Overlays/Charmed.mat");
                        overlay.AddToCharacerModel(self);
                        isCharmed.Overlay = overlay;
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
Example #3
0
        private void CharacterModel_UpdateOverlays(On.RoR2.CharacterModel.orig_UpdateOverlays orig, CharacterModel self)
        {
            orig(self);

            if (self && self.body)
            {
                var isJammed = self.body.GetComponent <IsJammed>();
                if (isJammed && !isJammed.Overlay)
                {
                    TemporaryOverlay overlay = self.gameObject.AddComponent <TemporaryOverlay>();
                    overlay.duration              = float.PositiveInfinity;
                    overlay.alphaCurve            = AnimationCurve.Constant(0f, 0f, 0.54f);
                    overlay.animateShaderAlpha    = true;
                    overlay.destroyComponentOnEnd = true;
                    overlay.originalMaterial      = Resources.Load <Material>("Materials/matFullCrit");
                    overlay.AddToCharacerModel(self);
                    isJammed.Overlay = overlay;
                }
                return;
            }
        }