Guest User

GloryCharms.cs

a guest
Jul 28th, 2021
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.30 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using Modding;
  4. using UnityEngine;
  5. using SFCore;
  6. using SFCore.Generics;
  7.  
  8. namespace GloryCharms
  9. {
  10.     public class GlorySaveSettings : ModSettings
  11.     {
  12.         public List<bool> gotCharms = new List<bool>() { true };
  13.         public List<bool> newCharms = new List<bool>() { false };
  14.         public List<bool> equippedCharms = new List<bool>() { false };
  15.         public List<int> charmCosts = new List<int>() { 1 };
  16.     }
  17.  
  18.     public class GloryGlobalSettings : ModSettings
  19.     {
  20.  
  21.     }
  22.  
  23.     public class GloryCharms : FullSettingsMod<GlorySaveSettings, GloryGlobalSettings>, ITogglableMod
  24.     {
  25.         #region Boring Stuff
  26.         public CharmHelper ch { get; private set; }
  27.  
  28.         // Renaming mod name
  29.         public GloryCharms() : base("Glorified Charms") {
  30.         }
  31.  
  32.         // Setting mod version
  33.         public override string GetVersion() => "1.0.0";
  34.  
  35.         // Adding CharmHelper
  36.         public CharmHelper charmHelper { get; private set; }
  37.  
  38.         // Initialization
  39.         public override void Initialize()
  40.         {
  41.             Log("Initializing Glorified Charms...");
  42.  
  43.             //loadResources();
  44.             charmHelper = new CharmHelper();
  45.             charmHelper.customCharms = 1;
  46.             charmHelper.customSprites = new Sprite[] { new Sprite() };
  47.             //charmHelper.customSprites = new Sprite[] { testSprite, testSprite, testSprite, testSprite };
  48.  
  49.             initCallbacks();
  50.  
  51.             Log("Initialized!");
  52.         }
  53.  
  54.         // Initializing callbacks
  55.         private void initCallbacks()
  56.         {
  57.             ModHooks.Instance.LanguageGetHook += OnLanguageGetHook;
  58.             ModHooks.Instance.GetPlayerBoolHook += OnGetPlayerBoolHook;
  59.             ModHooks.Instance.SetPlayerBoolHook += OnSetPlayerBoolHook;
  60.             ModHooks.Instance.GetPlayerIntHook += OnGetPlayerIntHook;
  61.             ModHooks.Instance.SetPlayerIntHook += OnSetPlayerIntHook;
  62.         }
  63.         #endregion
  64.  
  65.         #region Charm Info
  66.         private string[] charmNames =
  67.         {
  68.             "Glorified Strength"
  69.         };
  70.  
  71.         private string[] charmDescriptions =
  72.         {
  73.             "Strengthens the bearer, increasing the damage they deal to enemies with their nail by 75%.<br><br>This charm is Glorified."
  74.         };
  75.         #endregion
  76.  
  77.         #region Callback Methods
  78.         private string OnLanguageGetHook(string key, string sheet)
  79.         {
  80.             if (key.StartsWith("CHARM_NAME_"))
  81.             {
  82.                 int charmNum = int.Parse(key.Split('_')[2]);
  83.                 if (ch.charmIDs.Contains(charmNum))
  84.                 {
  85.                     return charmNames[ch.charmIDs.IndexOf(charmNum)];
  86.                 }
  87.             }
  88.             else if (key.StartsWith("CHARM_DESC_"))
  89.             {
  90.                 int charmNum = int.Parse(key.Split('_')[2]);
  91.                 if (ch.charmIDs.Contains(charmNum))
  92.                 {
  93.                     return charmDescriptions[ch.charmIDs.IndexOf(charmNum)];
  94.                 }
  95.             }
  96.             return Language.Language.GetInternal(key, sheet);
  97.         }
  98.  
  99.         private bool OnGetPlayerBoolHook(string target)
  100.         {
  101.             if (target.StartsWith("gotCharm_"))
  102.             {
  103.                 int charmNum = int.Parse(target.Split('_')[1]);
  104.                 if (charmHelper.charmIDs.Contains(charmNum))
  105.                 {
  106.                     return Settings.gotCharms[charmHelper.charmIDs.IndexOf(charmNum)];
  107.                 }
  108.             }
  109.             if (target.StartsWith("newCharm_"))
  110.             {
  111.                 int charmNum = int.Parse(target.Split('_')[1]);
  112.                 if (charmHelper.charmIDs.Contains(charmNum))
  113.                 {
  114.                     return Settings.newCharms[charmHelper.charmIDs.IndexOf(charmNum)];
  115.                 }
  116.             }
  117.             if (target.StartsWith("equippedCharm_"))
  118.             {
  119.                 int charmNum = int.Parse(target.Split('_')[1]);
  120.                 if (charmHelper.charmIDs.Contains(charmNum))
  121.                 {
  122.                     return Settings.equippedCharms[charmHelper.charmIDs.IndexOf(charmNum)];
  123.                 }
  124.             }
  125.             return PlayerData.instance.GetBoolInternal(target);
  126.         }
  127.  
  128.         private void OnSetPlayerBoolHook(string target, bool val)
  129.         {
  130.             if (target.StartsWith("gotCharm_"))
  131.             {
  132.                 int charmNum = int.Parse(target.Split('_')[1]);
  133.                 if (charmHelper.charmIDs.Contains(charmNum))
  134.                 {
  135.                     Settings.gotCharms[charmHelper.charmIDs.IndexOf(charmNum)] = val;
  136.                     return;
  137.                 }
  138.             }
  139.             if (target.StartsWith("newCharm_"))
  140.             {
  141.                 int charmNum = int.Parse(target.Split('_')[1]);
  142.                 if (charmHelper.charmIDs.Contains(charmNum))
  143.                 {
  144.                     Settings.newCharms[charmHelper.charmIDs.IndexOf(charmNum)] = val;
  145.                     return;
  146.                 }
  147.             }
  148.             if (target.StartsWith("equippedCharm_"))
  149.             {
  150.                 int charmNum = int.Parse(target.Split('_')[1]);
  151.                 if (charmHelper.charmIDs.Contains(charmNum))
  152.                 {
  153.                     Settings.equippedCharms[charmHelper.charmIDs.IndexOf(charmNum)] = val;
  154.                     return;
  155.                 }
  156.             }
  157.             PlayerData.instance.SetBoolInternal(target, val);
  158.         }
  159.  
  160.         private int OnGetPlayerIntHook(string target)
  161.         {
  162.             if (target.StartsWith("charmCost_"))
  163.             {
  164.                 int charmNum = int.Parse(target.Split('_')[1]);
  165.                 if (charmHelper.charmIDs.Contains(charmNum))
  166.                 {
  167.                     return Settings.charmCosts[charmHelper.charmIDs.IndexOf(charmNum)];
  168.                 }
  169.             }
  170.             return PlayerData.instance.GetIntInternal(target);
  171.         }
  172.         private void OnSetPlayerIntHook(string target, int val)
  173.         {
  174.             // We don't need other mods to adjust the cost of our charms, but it could be added if wanted
  175.             PlayerData.instance.SetIntInternal(target, val);
  176.         }
  177.         #endregion
  178.  
  179.         public void Unload()
  180.         {
  181.             throw new NotImplementedException();
  182.         }
  183.     }
  184. }
  185.  
Advertisement
Add Comment
Please, Sign In to add comment