private Color OnPlayerHair_GetHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, Celeste.PlayerHair self, int index)
        {
            if (Settings.Enabled && (self.Entity is Celeste.Player))
            {
                Celeste.Player player = self.Entity as Celeste.Player;

                if (player.StateMachine.State != 19 && (player.Sprite.Mode == PlayerSpriteMode.Madeline || player.Sprite.Mode == PlayerSpriteMode.MadelineNoBackpack))
                {
                    int colorIndex = 1;
                    if (player.Inventory.Dashes > 0)
                    {
                        colorIndex = player.Dashes;
                    }
                    switch (colorIndex)
                    {
                    case 0:
                        return(new Color(134, 135, 138));

                    case 1:
                        return(new Color(78, 60, 42));

                    case 2:
                        return(new Color(237, 194, 18));
                    }
                }
            }
            return(orig(self, index));
        }
        public static Color GetHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, PlayerHair self, int index)
        {
            Color colorOrig = orig(self, index);

            if (!(self.Entity is Player) || !Settings.Enabled)
            {
                return(colorOrig);
            }

            Player player = self.Entity as Player;

            if (player.Dashes >= MAX_DASH_COUNT || player.Dashes < 0 || (!Settings.DoFeatherColor && player.StateMachine.State == 19))
            {
                return(colorOrig);
            }

            Color ReturnC = GetCurrentColor(colorOrig, ((Player)self.Entity).Dashes, index, self);

            if (index == 0)
            {
                Instance.UpdateMaddyCrown(self.Entity as Player);
                Instance.lastColor      = ReturnC;
                Instance.lastHairLength = Instance.triggerManager.GetHairLength(((Player)self.Entity).Dashes);
            }

            if (IHairType.IsFlash() && Settings.DoDashFlash)
            {
                return(Player.FlashHairColor);
            }

            return(ReturnC);
        }
Exemple #3
0
        public static Color GetHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, PlayerHair self, int index)
        {
            Color colorOrig = orig(self, index);

            if (!(self.Entity is Player) || self.GetSprite().Mode == PlayerSpriteMode.Badeline)
            {
                return(colorOrig);
            }

            Color color = colorOrig;

            if (Settings.FoxEnabled)
            {
                Color colorFox;
                if (index % 2 == 0)
                {
                    colorFox = Settings.FoxColorLight;
                    color    = new Color(
                        (color.R / 255f) * 0.1f + (colorFox.R / 255f) * 0.9f,
                        (color.G / 255f) * 0.05f + (colorFox.G / 255f) * 0.95f,
                        (color.B / 255f) * 0.2f + (colorFox.B / 255f) * 0.8f,
                        color.A
                        );
                }
                else
                {
                    colorFox = Settings.FoxColorDark;
                    color    = new Color(
                        (color.R / 255f) * 0.1f + (colorFox.R / 255f) * 0.7f,
                        (color.G / 255f) * 0.1f + (colorFox.G / 255f) * 0.7f,
                        (color.B / 255f) * 0.1f + (colorFox.B / 255f) * 0.7f,
                        color.A
                        );
                }
            }

            if (Settings.RainbowEnabled)
            {
                float wave = self.GetWave() * 60f;
                wave *= Settings.RainbowSpeedFactor;
                Color colorRainbow = ColorFromHSV((index / (float)self.GetSprite().HairCount) * 180f + wave, 0.6f, 1.0f);
                color = new Color(
                    (color.R / 255f) * 0.3f + (colorRainbow.R / 255f) * 0.7f,
                    (color.G / 255f) * 0.3f + (colorRainbow.G / 255f) * 0.7f,
                    (color.B / 255f) * 0.3f + (colorRainbow.B / 255f) * 0.7f,
                    color.A
                    );
            }

            color.A = colorOrig.A;
            return(color);
        }
Exemple #4
0
 private static Color hookHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, PlayerHair self, int index)
 {
     if (MaxHelpingHandModule.Instance.Session.MadelineHasPonytail && self.Entity is Player p)
     {
         if (index == 1)
         {
             // "hair tie" near the top of the hair.
             return(hairTieColor * self.Alpha);
         }
         if (index != 5 || p.Dashes == 1)
         {
             // we want the hair, except the tip, to have our custom hair color. We also want to recolor the 1-dash color entirely.
             return(mainHairColor * self.Alpha);
         }
     }
     return(orig(self, index));
 }
Exemple #5
0
        public static Color GetHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, PlayerHair self, int index)
        {
            Color          colorOrig = orig(self, index);
            Ghost          ghost     = self.Entity as Ghost;
            GhostNetClient client    = GhostNetModule.Instance.Client;
            uint           playerID;
            GhostNetFrame  frame;
            ChunkUUpdate   update;

            if (ghost == null ||
                client == null ||
                !client.GhostPlayerIDs.TryGetValue(ghost, out playerID) ||
                !client.UpdateMap.TryGetValue(playerID, out frame) ||
                (update = frame) == null)
            {
                return(colorOrig);
            }

            if (index < 0 || update.HairColors.Length <= index)
            {
                return(Color.Transparent);
            }
            return(update.HairColors[index]);
        }
        public static Color GetHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, PlayerHair self, int index)
        {
            Color colorOrig = orig(self, index);

            if (!(self.Entity is Player) || !Settings.Enabled)
            {
                return(colorOrig);
            }
            Player player = self.Entity as Player;

            if (player.Dashes >= MAX_DASH_COUNT || player.Dashes < 0)
            {
                return(colorOrig);
            }
            Color ReturnC = GetCurrentColor(((Player)self.Entity).Dashes, index, self);

            if (index == 0)
            {
                Instance.UpdateMaddyCrown(self.Entity as Player);
                Instance.LastColor = ReturnC;
                Hyperline.Instance.LastHairLength = Settings.HairLengthList[((Player)self.Entity).Dashes];
            }
            return(ReturnC);
        }