using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Logging;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using Nessie.ATLYSS.EasySettings;
using Nessie.ATLYSS.EasySettings.UIElements;
using UnityEngine;
using UnityEngine.Events;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: AssemblyCompany("angelaboobs")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+f7eedfcffe875e5868049395b47ba5cd87e5346f")]
[assembly: AssemblyProduct("angelaboobs")]
[assembly: AssemblyTitle("angelaboobs")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
internal sealed class RefSafetyRulesAttribute : Attribute
{
public readonly int Version;
public RefSafetyRulesAttribute(int P_0)
{
Version = P_0;
}
}
}
internal static class LCMPluginInfo
{
public const string PLUGIN_GUID = "angelaboobs";
public const string PLUGIN_NAME = "angelaboobs";
public const string PLUGIN_VERSION = "1.0.0";
}
namespace angelaboobs
{
[BepInPlugin("angelaboobs", "angelaboobs", "1.0.0")]
public class AngelaBoobsBase : BaseUnityPlugin
{
public enum TexturesEnum
{
Bell,
Eye,
Eye2,
Eye3,
Eye4,
Eye5,
EyeDown,
EyeLeft,
EyeRight,
EyePissed,
Face,
FaceOpenMouth,
Red,
Skirt,
Base,
Bottomless,
Nude,
Topless,
Tail,
Blu,
Blue3,
Blui2,
BookSpine,
BookCover,
Glyph,
Shadow,
FacePic1,
FacePic2,
FacePic3
}
[HarmonyPatch(typeof(NetNPC), "Start")]
public static class AddNetNPCPatch
{
[HarmonyPostfix]
public static void NetNPCAwakePatch(NetNPC __instance)
{
//IL_00d0: Unknown result type (might be due to invalid IL or missing references)
//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
//IL_0130: Unknown result type (might be due to invalid IL or missing references)
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
//IL_018d: Unknown result type (might be due to invalid IL or missing references)
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
try
{
if (!((object)__instance).ToString().Contains("_npc_Angela"))
{
return;
}
Log.LogInfo((object)"Angela located");
AngelaSliderController = ((Component)__instance).gameObject.AddComponent<AngelaSliderController>();
eyeController = ((Component)((Component)__instance).transform.Find("_visual")).GetComponent<TextureChangeAnimEvent>();
ApplyEyeTexturesToEyeController();
DialogTrigger component = ((Component)((Component)__instance).transform.Find("_dialogTrigger")).GetComponent<DialogTrigger>();
DialogBranch[] dialogBranches = component._scriptDialogData._dialogBranches;
foreach (DialogBranch val in dialogBranches)
{
Dialog[] dialogs = val.dialogs;
foreach (Dialog val2 in dialogs)
{
DialogList.Add(val2);
if (((Object)val2.facepic).name == "facepic_angela01")
{
facepic1Sprite = Sprite.Create(Textures[26], val2.facepic.rect, val2.facepic.pivot, val2.facepic.pixelsPerUnit, 0u);
val2.facepic = facepic1Sprite;
}
else if (((Object)val2.facepic).name == "facepic_angela02")
{
facepic2Sprite = Sprite.Create(Textures[27], val2.facepic.rect, val2.facepic.pivot, val2.facepic.pixelsPerUnit, 0u);
val2.facepic = facepic2Sprite;
}
else if (((Object)val2.facepic).name == "facepic_angela03")
{
facepic3Sprite = Sprite.Create(Textures[28], val2.facepic.rect, val2.facepic.pivot, val2.facepic.pixelsPerUnit, 0u);
val2.facepic = facepic3Sprite;
}
}
}
Transform val3 = ((Component)__instance).transform.Find("_visual").Find("angela_mesh");
SkinnedMeshRenderer component2 = ((Component)val3.Find("angela_boobs")).GetComponent<SkinnedMeshRenderer>();
component2.sharedMesh = _newBoobs;
SkinnedMeshRenderer component3 = ((Component)val3.Find("angela_base")).GetComponent<SkinnedMeshRenderer>();
component3.sharedMesh = _newBody;
SkinnedMeshRenderer component4 = ((Component)val3.Find("angela_robeSkirt")).GetComponent<SkinnedMeshRenderer>();
component4.sharedMesh = _newSkirt;
SkinnedMeshRenderer component5 = ((Component)val3.Find("angela_arms")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component6 = ((Component)val3.Find("angela_ears")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component7 = ((Component)val3.Find("angela_eyes")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component8 = ((Component)val3.Find("angela_feet")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component9 = ((Component)val3.Find("angela_hairTuft")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component10 = ((Component)val3.Find("angela_horns")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component11 = ((Component)val3.Find("angela_necklace")).GetComponent<SkinnedMeshRenderer>();
SkinnedMeshRenderer component12 = ((Component)val3.Find("angela_tail")).GetComponent<SkinnedMeshRenderer>();
MeshRenderer component13 = ((Component)val3.Find("Armature_character").Find("masterBone").Find("Quad")
.Find("Quad_01")).GetComponent<MeshRenderer>();
Transform val4 = val3.Find("Armature_character").Find("masterBone").Find("hipCtrl")
.Find("hip")
.Find("lowBody")
.Find("midBody")
.Find("torso")
.Find("shoulder.l")
.GetChild(0)
.GetChild(0)
.GetChild(0)
.GetChild(0)
.Find("bookProp_01");
MeshRenderer component14 = ((Component)val4.Find("prop_book_L")).GetComponent<MeshRenderer>();
MeshRenderer component15 = ((Component)val4.Find("prop_book_R")).GetComponent<MeshRenderer>();
MeshRenderer component16 = ((Component)((Component)__instance).transform.Find("_visual").Find("_shadowProjection").GetChild(0)).GetComponent<MeshRenderer>();
DynamicBone boobBoneL = __instance._jiggleBones[2];
DynamicBone boobBoneR = __instance._jiggleBones[3];
AngelaSliderController.boobs = component2;
AngelaSliderController.torso = component3;
AngelaSliderController.skirt = component4;
AngelaSliderController.arms = component5;
AngelaSliderController.ears = component6;
AngelaSliderController.eyes = component7;
AngelaSliderController.feet = component8;
AngelaSliderController.hairTuft = component9;
AngelaSliderController.horns = component10;
AngelaSliderController.necklace = component11;
AngelaSliderController.tail = component12;
AngelaSliderController.glyph = component13;
AngelaSliderController.bookL = component14;
AngelaSliderController.bookR = component15;
AngelaSliderController.shadow = component16;
AngelaSliderController.boobBoneL = boobBoneL;
AngelaSliderController.boobBoneR = boobBoneR;
AngelaSliderController.ApplySettings();
Log.LogInfo((object)"Angela body patched!");
}
catch (Exception ex)
{
Log.LogError((object)ex);
}
}
}
[HarmonyPatch(typeof(VisualManager), "Apply_FilteringMode")]
public static class ChangeFilteringModePatch
{
[HarmonyPostfix]
public static void FilteringModePatch(FilterMode _filterMode)
{
//IL_000f: Unknown result type (might be due to invalid IL or missing references)
Texture2D[] textures = Textures;
foreach (Texture2D val in textures)
{
((Texture)val).filterMode = _filterMode;
((Texture)val).anisoLevel = 16;
}
}
}
internal static ManualLogSource Log = null;
private static Mesh _newBoobs;
private static Mesh _newBody;
private static Mesh _newSkirt;
public static Sprite facepic1Sprite;
public static Sprite facepic2Sprite;
public static Sprite facepic3Sprite;
private string texturePath;
public static Dictionary<string, string> textureDictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
{
{ "bell", "angelaBellTex.png" },
{ "eye", "angelaEyeTex.png" },
{ "eye2", "angelaEyeTex2.png" },
{ "eye3", "angelaEyeTex3.png" },
{ "eye4", "angelaEyeTex4.png" },
{ "eye5", "angelaEyeTex_5.png" },
{ "eyedown", "angelaEyeTex_down.png" },
{ "eyeleft", "angelaEyeTex_L.png" },
{ "eyeright", "angelaEyeTex_R.png" },
{ "eyepissed", "angelaEyeTex_pissed.png" },
{ "face", "angelaFaceTex.png" },
{ "faceopenmouth", "angelaFaceTex_openMouth.png" },
{ "red", "angelaRed.png" },
{ "skirt", "angelaTex03.png" },
{ "base", "angelaTex_01_base.png" },
{ "bottomless", "angelaTex_01_bottomless.png" },
{ "nude", "angelaTex_01_nude.png" },
{ "topless", "angelaTex_01_topless.png" },
{ "tail", "angelaTex_02.png" },
{ "blu", "angelaTex_blu.png" },
{ "blue3", "blue3.png" },
{ "blui2", "blui2.png" },
{ "bookspine", "book_spineTex.png" },
{ "bookcover", "bookCoverTex1.png" },
{ "glyph", "tomeGlyph.png" },
{ "shadow", "shadow.png" },
{ "facepic1", "facepic_angela01.png" },
{ "facepic2", "facepic_angela02.png" },
{ "facepic3", "facepic_angela03.png" }
};
public static readonly Texture2D[] Textures = (Texture2D[])(object)new Texture2D[textureDictionary.Count];
public List<string> textureFolderNames = new List<string>();
public int selectedTexture;
internal static ConfigEntry<int> textureSelector;
internal static ConfigEntry<float> nippleInnie;
internal static ConfigEntry<float> nippleSize;
internal static ConfigEntry<float> boobSmall;
internal static ConfigEntry<float> boobLarge;
internal static ConfigEntry<float> nippleGone;
internal static ConfigEntry<bool> topless;
internal static ConfigEntry<bool> bottomless;
internal static ConfigEntry<bool> nippleInnieWhenClothed;
internal static ConfigEntry<bool> nippleGoneWhenClothed;
internal static ConfigEntry<float> assLarge;
internal static ConfigEntry<float> thighsThick;
private static AtlyssDropdown textureDropdown;
public static AngelaSliderController AngelaSliderController;
public static TextureChangeAnimEvent eyeController;
internal static List<Dialog> DialogList = new List<Dialog>();
private void Awake()
{
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
//IL_0078: Unknown result type (might be due to invalid IL or missing references)
//IL_0082: Expected O, but got Unknown
//IL_008e: Unknown result type (might be due to invalid IL or missing references)
//IL_0098: Expected O, but got Unknown
new Harmony("ry.angelaboobs").PatchAll();
Log = ((BaseUnityPlugin)this).Logger;
texturePath = Path.Combine(Paths.ConfigPath, "NPCNSFWModFiles", "Angela");
if (Utility.IsNullOrWhiteSpace(texturePath))
{
texturePath = Path.Combine(((BaseUnityPlugin)this).Info.Location, "config", "NPCNSFWModFiles", "Angela");
}
InitConfig();
Settings.OnInitialized.AddListener(new UnityAction(AddSettings));
Settings.OnApplySettings.AddListener((UnityAction)delegate
{
textureSelector.Value = selectedTexture;
((BaseUnityPlugin)this).Config.Save();
LoadTexturesIntoVariables();
if ((Object)(object)AngelaSliderController != (Object)null)
{
AngelaSliderController.ApplySettings();
}
if ((Object)(object)eyeController != (Object)null)
{
ApplyEyeTexturesToEyeController();
}
});
try
{
DirectoryInfo[] directories = new DirectoryInfo(texturePath).GetDirectories();
for (int i = 0; i < directories.Length; i++)
{
Log.LogInfo((object)("Loaded " + directories[i].Name + " texture group"));
textureFolderNames.Add(directories[i].Name);
}
if (selectedTexture > directories.Length - 1)
{
selectedTexture = directories.Length - 1;
}
LoadTexturesIntoVariables();
}
catch (Exception ex)
{
Log.LogError((object)("Unable to find textures in path " + texturePath + ". Continuing."));
Log.LogError((object)ex.ToString());
}
try
{
AssetBundle val = AssetBundle.LoadFromFile(((BaseUnityPlugin)this).Info.Location.Replace("angelaboobs.dll", "angelaboobs.unity3d"));
_newBoobs = val.LoadAsset<Mesh>("angela_boobs");
_newBody = val.LoadAsset<Mesh>("angela_base");
_newSkirt = val.LoadAsset<Mesh>("angela_robeSkirt");
}
catch (Exception ex2)
{
Log.LogError((object)("Unable to find angelaboobs.unity3d in " + ((BaseUnityPlugin)this).Info.Location + ". Patcher will not run correctly."));
Log.LogError((object)ex2.ToString());
}
Log.LogInfo((object)"Plugin angelaboobs version 1.0.0 is loaded!");
}
private Texture2D LoadTexture(string fullPath, string objname)
{
//IL_0013: Unknown result type (might be due to invalid IL or missing references)
//IL_0018: Unknown result type (might be due to invalid IL or missing references)
//IL_001f: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Unknown result type (might be due to invalid IL or missing references)
//IL_002e: Unknown result type (might be due to invalid IL or missing references)
//IL_003a: Expected O, but got Unknown
byte[] array = File.ReadAllBytes(fullPath);
Texture2D val = new Texture2D(128, 128, (TextureFormat)5, false)
{
name = objname,
anisoLevel = 16,
filterMode = (FilterMode)0,
mipMapBias = 0f
};
ImageConversion.LoadImage(val, array, false);
return val;
}
private static void ApplyEyeTexturesToEyeController()
{
eyeController._textureStructs[0]._texture = (Texture)(object)Textures[1];
eyeController._textureStructs[1]._texture = (Texture)(object)Textures[7];
eyeController._textureStructs[2]._texture = (Texture)(object)Textures[8];
eyeController._textureStructs[3]._texture = (Texture)(object)Textures[6];
eyeController._textureStructs[4]._texture = (Texture)(object)Textures[3];
eyeController._textureStructs[5]._texture = (Texture)(object)Textures[2];
eyeController._textureStructs[6]._texture = (Texture)(object)Textures[9];
eyeController._textureStructs[7]._texture = (Texture)(object)Textures[4];
eyeController._textureStructs[8]._texture = (Texture)(object)Textures[5];
}
private void LoadTexturesIntoVariables()
{
Log.LogInfo((object)"Loading textures...");
for (int i = 0; i < Textures.Length; i++)
{
TexturesEnum texturesEnum = (TexturesEnum)i;
Textures[i] = LoadTextureOrDefault(texturesEnum.ToString());
}
Log.LogInfo((object)"Loaded textures");
}
private Texture2D LoadTextureOrDefault(string textureType)
{
Log.LogInfo((object)("Loading texture " + textureDictionary[textureType]));
string text = Path.Combine(texturePath, textureFolderNames[selectedTexture], textureDictionary[textureType]);
FileInfo fileInfo = new FileInfo(text);
return fileInfo.Exists ? LoadTexture(text, textureDictionary[textureType]) : LoadTexture(Path.Combine(texturePath, "Default", textureDictionary[textureType]), textureDictionary[textureType]);
}
private void InitConfig()
{
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0010: Expected O, but got Unknown
//IL_001b: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Expected O, but got Unknown
//IL_004e: Unknown result type (might be due to invalid IL or missing references)
//IL_0054: Expected O, but got Unknown
//IL_005f: Unknown result type (might be due to invalid IL or missing references)
//IL_0065: Expected O, but got Unknown
//IL_0082: Unknown result type (might be due to invalid IL or missing references)
//IL_0089: Expected O, but got Unknown
//IL_0094: Unknown result type (might be due to invalid IL or missing references)
//IL_009b: Expected O, but got Unknown
//IL_00ba: Unknown result type (might be due to invalid IL or missing references)
//IL_00c1: Expected O, but got Unknown
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
//IL_00d3: Expected O, but got Unknown
//IL_00f2: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: Expected O, but got Unknown
//IL_0104: Unknown result type (might be due to invalid IL or missing references)
//IL_010b: Expected O, but got Unknown
//IL_012a: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Expected O, but got Unknown
//IL_013c: Unknown result type (might be due to invalid IL or missing references)
//IL_0143: Expected O, but got Unknown
//IL_0166: Unknown result type (might be due to invalid IL or missing references)
//IL_016d: Expected O, but got Unknown
//IL_0178: Unknown result type (might be due to invalid IL or missing references)
//IL_017f: Expected O, but got Unknown
//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
//IL_01a9: Expected O, but got Unknown
//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
//IL_01bb: Expected O, but got Unknown
//IL_01de: Unknown result type (might be due to invalid IL or missing references)
//IL_01e5: Expected O, but got Unknown
//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
//IL_01f7: Expected O, but got Unknown
//IL_021a: Unknown result type (might be due to invalid IL or missing references)
//IL_0221: Expected O, but got Unknown
//IL_022c: Unknown result type (might be due to invalid IL or missing references)
//IL_0233: Expected O, but got Unknown
//IL_0256: Unknown result type (might be due to invalid IL or missing references)
//IL_025d: Expected O, but got Unknown
//IL_0268: Unknown result type (might be due to invalid IL or missing references)
//IL_026f: Expected O, but got Unknown
//IL_0292: Unknown result type (might be due to invalid IL or missing references)
//IL_0299: Expected O, but got Unknown
//IL_02a4: Unknown result type (might be due to invalid IL or missing references)
//IL_02ab: Expected O, but got Unknown
ConfigDefinition val = new ConfigDefinition("AngelaBoobs", "TextureSelection");
ConfigDescription val2 = new ConfigDescription("TextureSelection", (AcceptableValueBase)null, Array.Empty<object>());
textureSelector = ((BaseUnityPlugin)this).Config.Bind<int>(val, 0, val2);
selectedTexture = textureSelector.Value;
ConfigDefinition val3 = new ConfigDefinition("AngelaBoobs", "Topless");
ConfigDescription val4 = new ConfigDescription("Topless", (AcceptableValueBase)null, Array.Empty<object>());
topless = ((BaseUnityPlugin)this).Config.Bind<bool>(val3, false, val4);
ConfigDefinition val5 = new ConfigDefinition("AngelaBoobs", "Bottomless");
ConfigDescription val6 = new ConfigDescription("Bottomless", (AcceptableValueBase)null, Array.Empty<object>());
bottomless = ((BaseUnityPlugin)this).Config.Bind<bool>(val5, false, val6);
ConfigDefinition val7 = new ConfigDefinition("AngelaBoobs", "NippleInnieWhenClothed");
ConfigDescription val8 = new ConfigDescription("Nipples flat when clothed", (AcceptableValueBase)null, Array.Empty<object>());
nippleInnieWhenClothed = ((BaseUnityPlugin)this).Config.Bind<bool>(val7, true, val8);
ConfigDefinition val9 = new ConfigDefinition("AngelaBoobs", "NippleGoneWhenClothed");
ConfigDescription val10 = new ConfigDescription("Nipples gone when clothed", (AcceptableValueBase)null, Array.Empty<object>());
nippleGoneWhenClothed = ((BaseUnityPlugin)this).Config.Bind<bool>(val9, false, val10);
ConfigDefinition val11 = new ConfigDefinition("AngelaBoobs", "NippleInnie");
ConfigDescription val12 = new ConfigDescription("Flat nipple tips", (AcceptableValueBase)null, Array.Empty<object>());
nippleInnie = ((BaseUnityPlugin)this).Config.Bind<float>(val11, 0f, val12);
ConfigDefinition val13 = new ConfigDefinition("AngelaBoobs", "NippleSize");
ConfigDescription val14 = new ConfigDescription("Nipple size", (AcceptableValueBase)null, Array.Empty<object>());
nippleSize = ((BaseUnityPlugin)this).Config.Bind<float>(val13, 0f, val14);
ConfigDefinition val15 = new ConfigDefinition("AngelaBoobs", "BreastSmall");
ConfigDescription val16 = new ConfigDescription("Smaller breasts", (AcceptableValueBase)null, Array.Empty<object>());
boobSmall = ((BaseUnityPlugin)this).Config.Bind<float>(val15, 0f, val16);
ConfigDefinition val17 = new ConfigDefinition("AngelaBoobs", "BreastLarge");
ConfigDescription val18 = new ConfigDescription("Larger breasts", (AcceptableValueBase)null, Array.Empty<object>());
boobLarge = ((BaseUnityPlugin)this).Config.Bind<float>(val17, 0f, val18);
ConfigDefinition val19 = new ConfigDefinition("AngelaBoobs", "NippleGone");
ConfigDescription val20 = new ConfigDescription("Make nipples go away", (AcceptableValueBase)null, Array.Empty<object>());
nippleGone = ((BaseUnityPlugin)this).Config.Bind<float>(val19, 0f, val20);
ConfigDefinition val21 = new ConfigDefinition("AngelaBoobs", "AssLarge");
ConfigDescription val22 = new ConfigDescription("Make ass bigger", (AcceptableValueBase)null, Array.Empty<object>());
assLarge = ((BaseUnityPlugin)this).Config.Bind<float>(val21, 0f, val22);
ConfigDefinition val23 = new ConfigDefinition("AngelaBoobs", "ThighsThick");
ConfigDescription val24 = new ConfigDescription("Make thighs thicker", (AcceptableValueBase)null, Array.Empty<object>());
thighsThick = ((BaseUnityPlugin)this).Config.Bind<float>(val23, 0f, val24);
}
private void AddSettings()
{
SettingsTab modTab = Settings.ModTab;
modTab.AddHeader("Angela Appearance Mod");
textureDropdown = modTab.AddDropdown("Texture", textureFolderNames, selectedTexture);
textureDropdown.OnValueChanged.AddListener((UnityAction<int>)delegate(int x)
{
selectedTexture = x;
});
modTab.AddToggle("Topless", topless);
modTab.AddToggle("Bottomless", bottomless);
modTab.AddSlider("Larger Breasts", boobLarge, false);
modTab.AddSlider("Smaller Breasts", boobSmall, false);
modTab.AddSlider("Nipple Size", nippleSize, false);
modTab.AddSlider("Nipple Innie", nippleInnie, false);
modTab.AddSlider("Larger Ass", assLarge, false);
modTab.AddSlider("Thicker Thighs", thighsThick, false);
modTab.AddToggle("Nipples flat when clothed", nippleInnieWhenClothed);
modTab.AddToggle("Nipples gone when clothed", nippleGoneWhenClothed);
}
}
public class AngelaSliderController : MonoBehaviour
{
public float nippleInnie;
public float nippleSize;
public float boobSmall;
public float boobLarge;
public float nippleGone;
public float boobSag;
public float assSize;
public float thighsThick;
public SkinnedMeshRenderer boobs;
public SkinnedMeshRenderer torso;
public SkinnedMeshRenderer skirt;
public SkinnedMeshRenderer eyes;
public SkinnedMeshRenderer feet;
public SkinnedMeshRenderer hairTuft;
public SkinnedMeshRenderer horns;
public SkinnedMeshRenderer necklace;
public SkinnedMeshRenderer arms;
public SkinnedMeshRenderer ears;
public SkinnedMeshRenderer tail;
public MeshRenderer glyph;
public MeshRenderer bookL;
public MeshRenderer bookR;
public MeshRenderer shadow;
public DynamicBone boobBoneL;
public DynamicBone boobBoneR;
public void ApplySettings()
{
//IL_0861: Unknown result type (might be due to invalid IL or missing references)
//IL_086b: Unknown result type (might be due to invalid IL or missing references)
//IL_0892: Unknown result type (might be due to invalid IL or missing references)
//IL_089c: Unknown result type (might be due to invalid IL or missing references)
//IL_08c3: Unknown result type (might be due to invalid IL or missing references)
//IL_08cd: Unknown result type (might be due to invalid IL or missing references)
nippleGone = ((AngelaBoobsBase.nippleGoneWhenClothed.Value && !AngelaBoobsBase.topless.Value) ? 100f : (AngelaBoobsBase.nippleGone.Value * 100f));
nippleInnie = ((AngelaBoobsBase.nippleInnieWhenClothed.Value && !AngelaBoobsBase.topless.Value) ? 100f : (AngelaBoobsBase.nippleInnie.Value * 100f));
boobSmall = AngelaBoobsBase.boobSmall.Value * 100f;
boobLarge = AngelaBoobsBase.boobLarge.Value * 100f;
nippleSize = AngelaBoobsBase.nippleSize.Value * 100f;
boobSag = (AngelaBoobsBase.topless.Value ? (100f - boobSmall + boobLarge / 2f) : 0f);
assSize = AngelaBoobsBase.assLarge.Value * 100f;
thighsThick = AngelaBoobsBase.thighsThick.Value * 100f;
boobs.SetBlendShapeWeight(boobs.sharedMesh.GetBlendShapeIndex("key_nippleInnie"), nippleInnie);
boobs.SetBlendShapeWeight(boobs.sharedMesh.GetBlendShapeIndex("key_boobSmall"), boobSmall);
boobs.SetBlendShapeWeight(boobs.sharedMesh.GetBlendShapeIndex("key_boobSize"), boobLarge);
boobs.SetBlendShapeWeight(boobs.sharedMesh.GetBlendShapeIndex("key_nippleSize"), nippleSize);
boobs.SetBlendShapeWeight(boobs.sharedMesh.GetBlendShapeIndex("key_nippleGone"), nippleGone);
boobs.SetBlendShapeWeight(boobs.sharedMesh.GetBlendShapeIndex("key_boobSag"), boobSag);
torso.SetBlendShapeWeight(torso.sharedMesh.GetBlendShapeIndex("key_assSize"), assSize);
torso.SetBlendShapeWeight(torso.sharedMesh.GetBlendShapeIndex("key_thighSize"), thighsThick);
skirt.SetBlendShapeWeight(skirt.sharedMesh.GetBlendShapeIndex("key_thighSize"), thighsThick);
if (AngelaBoobsBase.topless.Value)
{
if (AngelaBoobsBase.bottomless.Value)
{
((Renderer)boobs).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[16];
((Renderer)torso).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[16];
((Renderer)arms).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[16];
((Renderer)hairTuft).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[16];
}
else
{
((Renderer)boobs).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[17];
((Renderer)torso).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[17];
((Renderer)arms).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[17];
((Renderer)hairTuft).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[17];
}
}
else if (AngelaBoobsBase.bottomless.Value)
{
((Renderer)boobs).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[15];
((Renderer)torso).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[15];
((Renderer)arms).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[15];
((Renderer)hairTuft).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[15];
}
else
{
((Renderer)boobs).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[14];
((Renderer)torso).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[14];
((Renderer)arms).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[14];
((Renderer)hairTuft).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[14];
}
((Renderer)torso).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[10];
((Renderer)skirt).material.mainTexture = (Texture)(AngelaBoobsBase.bottomless.Value ? ((object)Texture2D.blackTexture) : ((object)AngelaBoobsBase.Textures[13]));
((Renderer)arms).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[20];
((Renderer)ears).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[18];
((Renderer)ears).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[0];
switch (((Object)((Renderer)eyes).material.mainTexture).name)
{
case "angelaEyeTex.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[1];
break;
case "angelaEyeTex2.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[2];
break;
case "angelaEyeTex3.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[3];
break;
case "angelaEyeTex4.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[4];
break;
case "angelaEyeTex_5.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[5];
break;
case "angelaEyeTex_down.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[6];
break;
case "angelaEyeTex_L.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[7];
break;
case "angelaEyeTex_R.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[8];
break;
case "angelaEyeTex_pissed.png":
((Renderer)eyes).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[9];
break;
}
((Renderer)eyes).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[12];
((Renderer)feet).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[21];
((Renderer)feet).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[21];
((Renderer)horns).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[20];
((Renderer)necklace).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[19];
((Renderer)necklace).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[0];
((Renderer)tail).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[18];
((Renderer)tail).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[20];
((Renderer)glyph).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[24];
((Renderer)bookL).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[22];
((Renderer)bookL).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[23];
((Renderer)bookR).materials[0].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[22];
((Renderer)bookR).materials[1].mainTexture = (Texture)(object)AngelaBoobsBase.Textures[23];
((Renderer)shadow).material.mainTexture = (Texture)(object)AngelaBoobsBase.Textures[25];
AngelaBoobsBase.facepic1Sprite = Sprite.Create(AngelaBoobsBase.Textures[26], AngelaBoobsBase.facepic1Sprite.rect, AngelaBoobsBase.facepic1Sprite.pivot, AngelaBoobsBase.facepic1Sprite.pixelsPerUnit, 0u);
AngelaBoobsBase.facepic2Sprite = Sprite.Create(AngelaBoobsBase.Textures[27], AngelaBoobsBase.facepic2Sprite.rect, AngelaBoobsBase.facepic2Sprite.pivot, AngelaBoobsBase.facepic2Sprite.pixelsPerUnit, 0u);
AngelaBoobsBase.facepic3Sprite = Sprite.Create(AngelaBoobsBase.Textures[28], AngelaBoobsBase.facepic3Sprite.rect, AngelaBoobsBase.facepic3Sprite.pivot, AngelaBoobsBase.facepic3Sprite.pixelsPerUnit, 0u);
for (int i = 0; i < AngelaBoobsBase.DialogList.Count; i++)
{
if (((Object)AngelaBoobsBase.DialogList[i].facepic.texture).name == "facepic_angela01")
{
AngelaBoobsBase.DialogList[i].facepic = AngelaBoobsBase.facepic1Sprite;
}
else if (((Object)AngelaBoobsBase.DialogList[i].facepic.texture).name == "facepic_angela02")
{
AngelaBoobsBase.DialogList[i].facepic = AngelaBoobsBase.facepic2Sprite;
}
else if (((Object)AngelaBoobsBase.DialogList[i].facepic.texture).name == "facepic_angela03")
{
AngelaBoobsBase.DialogList[i].facepic = AngelaBoobsBase.facepic3Sprite;
}
}
if (boobSmall > 0f && boobSmall > 50f)
{
_ = boobSmall;
_ = 80f;
}
}
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
public IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
}