Exemple #1
0
//        private static void CamoIntensController() {
//            if (Input.GetKeyDown((KeyCode)117))
//                _camoIntens += 0.1f;
//            if (Input.GetKeyDown((KeyCode)105))
//                _camoIntens -= 0.1f;
//        }
//
//        private static void CamoPercentBalance() {
//            if (Input.GetKeyDown((KeyCode)104))
//                _camoPercentBalance += 0.1f;
//            if (Input.GetKeyDown((KeyCode)106))
//                _camoPercentBalance -= 0.1f;
//        }

        #endregion

        #region Hooks

        public static void Player_Update_Pre(Player __instance)
        {
            PlayerGraphics   g = (PlayerGraphics)__instance.graphicsModule;
            SlugcatCamoState s = GetOrCreateCamoState(g);

            s.Player = __instance;
        }
Exemple #2
0
        public static void PlayerGraphics_DrawSprites_Post(PlayerGraphics __instance,
                                                           RoomCamera.SpriteLeaser sLeaser, RoomCamera rCam, float timeStacker, Vector2 camPos)
        {
            SlugcatCamoState s = GetOrCreateCamoState(__instance);

            s.SpriteLeaser = sLeaser;
            s.RoomCamera   = rCam;
        }
Exemple #3
0
        public static void PlayerGraphics_Update_Pre(PlayerGraphics __instance)
        {
            SlugcatCamoState s = GetOrCreateCamoState(__instance);

            ChangeColor(s);
            CalculateColorDeltaSum(s);
            CalculateCamoPercent(s);
            CalculateVisibilityBonus(s);
        }
Exemple #4
0
 private static void CalculateColorDeltaSum(SlugcatCamoState s)
 {
     for (int i = 0; i < s.SpriteLeaser.sprites.Length; i++)
     {
         s.CurrentPlayerColor += s.SpriteLeaser.sprites[i].color;
     }
     s.CurrentPlayerColor /= s.SpriteLeaser.sprites.Length;
     s.ColorDeltaSum       =
         Mathf.Abs(s.CurrentPlayerColor.r - s.BackGroundColor.r) +
         Mathf.Abs(s.CurrentPlayerColor.g - s.BackGroundColor.g) +
         Mathf.Abs(s.CurrentPlayerColor.b - s.BackGroundColor.b);
 }
Exemple #5
0
 private static Color CalculateBodyColor(SlugcatCamoState s)
 {
     s.BodyColors.Clear();
     for (int i = 0; i < (int)s.Player.bodyChunks.Length; i++)
     {
         s.BodyColors.Add(s.RoomCamera.PixelColorAtCoordinate(s.Player.bodyChunks[i].pos));
     }
     for (int j = 0; j < s.BodyColors.Count; j++)
     {
         s.MainColor += s.BodyColors[j];
     }
     s.MainColor = s.MainColor / (s.BodyColors.Count * s.CamoIntens);
     return(s.MainColor);
 }
Exemple #6
0
 private static void ChangeColor(SlugcatCamoState state)
 {
     for (int i = 0; i < state.SpriteLeaser.sprites.Length; i++)
     {
         if (i != 9)
         {
             state.BackGroundColor = CalculateBodyColor(state);
             state.SpriteLeaser.sprites[i].color = new Color(
                 Mathf.Lerp(state.SpriteLeaser.sprites[i].color.r, state.BackGroundColor.r, 0.03f),
                 Mathf.Lerp(state.SpriteLeaser.sprites[i].color.g, state.BackGroundColor.g, 0.03f),
                 Mathf.Lerp(state.SpriteLeaser.sprites[i].color.b, state.BackGroundColor.b, 0.03f));
         }
     }
 }
Exemple #7
0
 private static void CalculateCamoPercent(SlugcatCamoState s)
 {
     s.CamoPercent = 100f - s.ColorDeltaSum * 100f / 3f;
 }
Exemple #8
0
 private static void CalculateVisibilityBonus(SlugcatCamoState s)
 {
     s.Player.slugcatStats.generalVisibilityBonus = 0f - s.CamoPercent * 10f / 100f + s.CamoPercentBalance;
 }