예제 #1
0
        private void Start()
        {
            KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst));

            MakerAPI.RegisterCustomSubCategories += OnRegisterCustomSubCategories;
            MakerAPI.MakerBaseLoaded             += OnEarlyMakerFinishedLoading;
            MakerAPI.MakerExiting += OnMakerExiting;
        }
예제 #2
0
        private void Start()
        {
            if (!KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst)) || StudioAPI.InsideStudio)
            {
                enabled = false;
                return;
            }

            ForceInsert          = new ConfigWrapper <bool>("ForceInsert", this, true);
            ForceInsertAnger     = new ConfigWrapper <bool>("ForceInsertAnger", this, true);
            DecreaseLewd         = new ConfigWrapper <bool>("DecreaseLewd", this, false);
            DisableTrapVagInsert = new ConfigWrapper <bool>("DisableTrapVagInsert", this, true);

            ResetNoCondom = new ConfigWrapper <bool>("ResetNoCondom", this, true);

            FastTravelTimePenalty    = new ConfigWrapper <int>("FastTravelTimePenalty", this, 50);
            StatDecay                = new ConfigWrapper <bool>("StatDecay", this, true);
            LewdDecay                = new ConfigWrapper <bool>("LewdDecay", this, false);
            AdjustBreastSizeQuestion = new ConfigWrapper <bool>("AdjustBreastSizeQuestion", this, true);

            var i = HarmonyInstance.Create(GUID);

            Utilities.ApplyHooks(i);
            Utilities.HSceneEndClicked += UpdateGirlLewdness;

            // H Scene functions
            ForceInsertHooks.ApplyHooks(i);
            ExitFirstHHooks.ApplyHooks(i);
            if (DisableTrapVagInsert.Value)
            {
                TrapNoVagInsertHooks.ApplyHooks(i);
            }

            // Main game functions
            ClassCharaLimitUnlockHooks.ApplyHooks(i);
            FastTravelCostHooks.ApplyHooks(i);
            if (AdjustBreastSizeQuestion.Value)
            {
                BustSizeQuestionHooks.ApplyHooks(i);
            }

            _gameMgr  = Game.Instance;
            _sceneMgr = Scene.Instance;

            // todo replace with scene load?
            InvokeRepeating(nameof(SlowUpdate), 2f, 0.5f);
        }
        private void Awake()
        {
            ExportDirectory  = new ConfigWrapper <string>(nameof(ExportDirectory), this, _defaultOverlayDirectory);
            CompressTextures = new ConfigWrapper <bool>(nameof(CompressTextures), this, false);

            KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst));

            var ab = AssetBundle.LoadFromMemory(Resources.composite);

            OverlayMat = new Material(ab.LoadAsset <Shader>("assets/composite.shader"));
            DontDestroyOnLoad(OverlayMat);
            ab.Unload(false);

            Hooks.Init();
            CharacterApi.RegisterExtraBehaviour <KoiSkinOverlayController>(GUID);

            Directory.CreateDirectory(OverlayDirectory);
        }
예제 #4
0
        private void Awake()
        {
            _logger = Logger;

            ExportDirectory  = Config.Wrap("", "Overlay export/open folder", "The value needs to be a valid full path to an existing folder. Default folder will be used if the value is invalid. Exported overlays will be saved there, and by default open overlay dialog will show this directory.", _defaultOverlayDirectory);
            CompressTextures = Config.Wrap("", "Compress overlay textures in RAM", "Reduces RAM usage to about 1/4th at the cost of lower quality. Use when loading lots of characters with overlays if you're running out of memory.", false);

            KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst));

            var ab = AssetBundle.LoadFromMemory(Resources.composite);

            OverlayMat = new Material(ab.LoadAsset <Shader>("assets/composite.shader"));
            DontDestroyOnLoad(OverlayMat);
            ab.Unload(false);

            Hooks.Init();
            CharacterApi.RegisterExtraBehaviour <KoiSkinOverlayController>(GUID);

            Directory.CreateDirectory(OverlayDirectory);
        }
예제 #5
0
        private void Awake()
        {
            KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version(KoikatuAPI.VersionConst));

            var ab = AssetBundle.LoadFromMemory(Resources.composite);

            OverlayMat = new Material(ab.LoadAsset <Shader>("assets/composite.shader"));
            DontDestroyOnLoad(OverlayMat);
            ab.Unload(false);

            _rtFace = new RenderTexture(1024, 1024, 8);
            DontDestroyOnLoad(_rtFace);

            _rtBody = new RenderTexture(2048, 2048, 8);
            DontDestroyOnLoad(_rtBody);

            _rtEye = new RenderTexture(512, 512, 8);
            DontDestroyOnLoad(_rtEye);

            Hooks.Init();
            CharacterApi.RegisterExtraBehaviour <KoiSkinOverlayController>(GUID);
        }
예제 #6
0
        private void Start()
        {
            if (!KoikatuAPI.CheckRequiredPlugin(this, KoikatuAPI.GUID, new Version("1.2")) ||
                !KoikatuAPI.CheckRequiredPlugin(this, "com.joan6694.illusionplugins.moreaccessories", new Version("1.0.3")))
            {
                return;
            }

            if (StudioAPI.InsideStudio)
            {
                enabled = false;
                return;
            }

            Show = new ConfigWrapper <bool>("Show", this, false);
            ShowCoordinateButtons = new ConfigWrapper <bool>("ShowCoordinateButtons", this, false);
            Keybind = new SavedKeyboardShortcut("keybind", this, new KeyboardShortcut(KeyCode.Tab, KeyCode.LeftShift));

            KoikatuAPI.CheckIncompatiblePlugin(this, "MoreAccessories_CSM");

            MakerAPI.RegisterCustomSubCategories += MakerAPI_Enter;
            MakerAPI.MakerExiting += MakerAPI_Exit;
        }