示例#1
0
    public bool IsAutoAutoLeaveItToYou(
        ChaControl _female,
        HScene.AnimationListInfo _ali,
        bool _isAutoLeaveItToYouButton,
        bool _isInitiative)
    {
        if (Object.op_Equality((Object)_female, (Object)null) || _ali == null)
        {
            return(false);
        }
        AnimatorStateInfo animatorStateInfo = _female.getAnimatorStateInfo(0);

        if (_isInitiative || !_isAutoLeaveItToYouButton || (!((AnimatorStateInfo) ref animatorStateInfo).IsName("Idle") || _ali.nAnimListInfoID == 3) || !this.autoLeave.time.IsTime())
        {
            return(false);
        }
        ShuffleRand shuffleRand = new ShuffleRand(-1);

        shuffleRand.Init(100);
        bool flag = shuffleRand.Get() < this.autoLeave.rate;

        if (!flag)
        {
            this.autoLeave.time.minmax.x = (__Null)(double)Mathf.Max((float)(this.autoLeave.time.minmax.x - 5.0), 0.0f);
            this.autoLeave.time.minmax.y = (__Null)(double)Mathf.Max((float)(this.autoLeave.time.minmax.y - 5.0), 0.0f);
        }
        else
        {
            this.autoLeave.time.minmax = this.autoLeave.baseTime;
        }
        this.autoLeave.time.Reset();
        return(flag);
    }
示例#2
0
 public virtual bool SetStartMotion(
     bool _isIdle,
     int _modeCtrl,
     HScene.AnimationListInfo _infoAnimList)
 {
     return(true);
 }
示例#3
0
        private static void HScene_ChangeAnimation(HScene.AnimationListInfo _info)
        {
            adjustFAnimation = false;

            if (!inHScene)
            {
                return;
            }

            changingAnimations = true;
            if (_info.fileFemale == null || fem_list == null || fem_list[0] == null)
            {
                return;
            }

            for (int i = 0; i < animationAdjustmentList.Length; i++)
            {
                if (animationAdjustmentList[i] == _info.fileFemale)
                {
                    if (kokanBone != null)
                    {
                        adjustFAnimation = true;
                    }

                    return;
                }
            }
        }
示例#4
0
        private static void HScene_ChangeAnimation(HScene __instance, HScene.AnimationListInfo _info)
        {
            if (!inHScene)
            {
                return;
            }

            changingAnimations = true;
        }
        private static void HScene_PreChangeAnimation(HScene.AnimationListInfo _info)
        {
            if (!inHScene || _info == null || _info.fileFemale == null)
            {
                return;
            }

            CoreGame.OnChangeAnimation(_info.fileFemale);
        }
示例#6
0
 public override bool SetStartMotion(
     bool _isIdle,
     int _modeCtrl,
     HScene.AnimationListInfo _infoAnimList)
 {
     this.AtariEffect.Stop();
     this.ctrlFlag.isNotCtrl = false;
     this.oldFrame           = 0.0f;
     return(true);
 }
示例#7
0
 public override bool SetStartMotion(
     bool _isIdle,
     int _modeCtrl,
     HScene.AnimationListInfo _infoAnimList)
 {
     this.AtariEffect.Stop();
     this.TimerReset();
     this.ctrlFlag.speed    = 1f;
     this.ctrlFlag.loopType = -1;
     return(true);
 }
示例#8
0
        internal static void HScene_PreChangeAnimation(HScene.AnimationListInfo _info)
        {
            if (!inHScene || _info == null || _info.fileFemale == null)
            {
                return;
            }

            CoreGame.ClearItemColliders();
            CoreGame.OnChangeAnimation(_info.fileFemale);
            changeAnimation = true;
        }
示例#9
0
 public override bool Proc(int _modeCtrl, HScene.AnimationListInfo _infoAnimList)
 {
     if (Object.op_Equality((Object)this.chaMales[0].objTop, (Object)null) || Object.op_Equality((Object)this.chaFemales[0].objTop, (Object)null))
     {
         return(false);
     }
     this.FemaleAi = this.chaFemales[0].getAnimatorStateInfo(0);
     if (((AnimatorStateInfo) ref this.FemaleAi).IsName("WIdle"))
     {
         this.SpankingProc(0);
         this.voice.HouchiTime += Time.get_unscaledDeltaTime();
     }
        private static void HScene_ChangeAnimation(HScene __instance, HScene.AnimationListInfo _info)
        {
            if (!inHScene)
            {
                return;
            }

            for (int maleNum = 0; maleNum < male_list.Length; maleNum++)
            {
                changingAnimations[maleNum] = true;
            }
        }
示例#11
0
 public override bool Proc(int _modeCtrl, HScene.AnimationListInfo _infoAnimList)
 {
     if (Object.op_Equality((Object)this.chaMales[0].objTop, (Object)null) || Object.op_Equality((Object)this.chaFemales[0].objTop, (Object)null))
     {
         return(false);
     }
     this.FemaleAi = this.chaFemales[0].getAnimatorStateInfo(0);
     if (this.ctrlFlag.initiative == 0)
     {
         this.Manual(this.FemaleAi, _modeCtrl, _infoAnimList);
     }
     else
     {
         this.Auto(this.FemaleAi, _modeCtrl, _infoAnimList);
     }
     if (this.enableMotion)
     {
         this.timeMotion = Mathf.Clamp(this.timeMotion + Time.get_deltaTime(), 0.0f, this.lerpTime);
         float num = this.ctrlFlag.changeMotionCurve.Evaluate(Mathf.Clamp01(this.timeMotion / this.lerpTime));
         this.ctrlFlag.motions[0] = Mathf.Lerp((float)this.lerpMotion.x, (float)this.lerpMotion.y, num);
         if ((double)num >= 1.0)
         {
             this.enableMotion = false;
         }
     }
     this.ctrlMeta.Proc(this.FemaleAi, false);
     if (this.ctrlFlag.click == HSceneFlagCtrl.ClickKind.RecoverFaintness)
     {
         if (((AnimatorStateInfo) ref this.FemaleAi).IsName("D_Idle") || ((AnimatorStateInfo) ref this.FemaleAi).IsName("D_WLoop") || (((AnimatorStateInfo) ref this.FemaleAi).IsName("D_SLoop") || ((AnimatorStateInfo) ref this.FemaleAi).IsName("D_OLoop")) || ((AnimatorStateInfo) ref this.FemaleAi).IsName("D_Orgasm_OUT_A"))
         {
             this.ctrlFlag.selectAnimationListInfo = this.RecoverFaintnessAi();
             if (this.ctrlFlag.nowAnimationInfo == this.ctrlFlag.selectAnimationListInfo)
             {
                 this.setPlay("Orgasm_OUT_A", true);
             }
             this.ctrlFlag.isFaintness = false;
             this.sprite.SetVisibleLeaveItToYou(true, true);
             this.ctrlFlag.numOrgasm = 0;
             this.ctrlMeta.Clear();
             this.sprite.SetAnimationMenu();
             this.ctrlFlag.isGaugeHit   = false;
             this.ctrlFlag.isGaugeHit_M = false;
             this.sprite.SetMotionListDraw(false, -1);
             this.ctrlFlag.nowOrgasm = false;
             this.Hitem.SetUse(6, false);
         }
         else
         {
             this.ctrlFlag.click = HSceneFlagCtrl.ClickKind.None;
             this.Hitem.SetUse(6, false);
         }
     }
示例#12
0
    public override bool Proc(int _modeCtrl, HScene.AnimationListInfo _infoAnimList)
    {
        if (Object.op_Equality((Object)this.chaFemales[0].objTop, (Object)null))
        {
            return(false);
        }
        this.FemaleAi = this.chaFemales[0].getAnimatorStateInfo(0);
        float num = ((AnimatorStateInfo) ref this.FemaleAi).get_normalizedTime() % 1f;

        if (this.ctrlFlag.nowAnimationInfo.id == 10 && !this.sprite.isFade)
        {
            HSceneSprite.FadeKindProc fadeKindProc = this.sprite.GetFadeKindProc();
            if (fadeKindProc != HSceneSprite.FadeKindProc.OutEnd)
            {
                if ((double)num > 0.930000007152557)
                {
                    this.sprite.FadeState(HSceneSprite.FadeKind.Out, 1.5f);
                }
                if ((double)this.oldFrame <= 0.0500000007450581 && 0.0500000007450581 < (double)num)
                {
                    GlobalMethod.SetAllClothState(this.chaFemales[0], false, 2, true);
                }
                else if ((double)this.oldFrame <= 0.209999993443489 && 0.209999993443489 < (double)num)
                {
                    this.particle.Play(2);
                }
                else if ((double)this.oldFrame <= 0.819999992847443 && 0.819999992847443 < (double)num)
                {
                    GlobalMethod.SetAllClothState(this.chaFemales[0], false, 0, true);
                }
            }
            else if (fadeKindProc == HSceneSprite.FadeKindProc.OutEnd)
            {
                GlobalMethod.setCameraMoveFlag(this.ctrlFlag.cameraCtrl, false);
                this.chaFemales[0].animBody.set_speed(0.0f);
                ConfirmScene.Sentence     = string.Empty;
                ConfirmScene.OnClickedYes = (Action)(() => this.ctrlFlag.click = HSceneFlagCtrl.ClickKind.PeepingRestart);
                ConfirmScene.OnClickedNo  = (Action)(() => this.ctrlFlag.click = HSceneFlagCtrl.ClickKind.SceneEnd);
                if (this.ctrlFlag.click == HSceneFlagCtrl.ClickKind.PeepingRestart)
                {
                    this.setRePlay(this.FemaleAi, 0.0f, false);
                    this.sprite.FadeState(HSceneSprite.FadeKind.In, 0.5f);
                    this.chaFemales[0].animBody.set_speed(1f);
                    this.voice.StartCoroutine(this.InitOldMemberCoroutine());
                }
            }
        }
        this.oldFrame = num;
        this.ctrlMeta.Proc(this.FemaleAi, false);
        this.setAnimationParamater();
        return(true);
    }
示例#13
0
        public static bool Prefix_HSceneSprite_CheckMotionLimit(ref bool __result,
                                                                HScene.AnimationListInfo lstAnimInfo)
        {
            if (!AllHPos.Value)
            {
                return(true);
            }

            // Unrestricted selection of all H positions.
            __result = true;

            return(false);
        }
示例#14
0
        public static bool Prefix_HPointCtrl_CheckMotionLimit(ref bool __result,
                                                              int place,
                                                              HScene.AnimationListInfo lstAnimInfo)
        {
            if (!AllHPos.Value)
            {
                return(true);
            }

            // Unrestricted selection of all H points.
            __result = true;

            return(false);
        }
示例#15
0
        public static void OnChangeAnimation(HScene __instance, HScene.AnimationListInfo _info, bool _isForceResetCamera, bool _isForceLoopAction = false, bool _UseFade = true)
        {
            var isGroundAnimation = Constant.StandingAnimations.Contains(_info.id);
            var females           = __instance.GetFemales();

            foreach (var female in females)
            {
                var femaleApiController = GetAPIController(female);
                if (femaleApiController != null)
                {
                    femaleApiController.GroundAnim = isGroundAnimation;
                    femaleApiController?.UpdateHover();
                }
            }
        }
示例#16
0
        public static void ChangeAnimation(HScene __instance, HScene.AnimationListInfo _info, bool _isForceResetCamera, bool _isForceLoopAction = false, bool _UseFade = true)
        {
            ChaControl[] chaFemales = Traverse.Create(__instance).Field("chaFemales").GetValue <ChaControl[]>();
            ChaControl[] chaMales   = Traverse.Create(__instance).Field("chaMales").GetValue <ChaControl[]>();

            ChaControl      mainChar           = chaFemales[0];
            HeelsController mainCharController = GetAPIController(mainChar);

            if (mainCharController?.currentConfig != null)
            {
                isChanging  = true;
                savedOffset = mainCharController.currentConfig.rootMove;

                if (whitelist.ContainsKey(_info.assetpathFemale) && whitelist[_info.assetpathFemale] != null)
                {
                    Dictionary <int, bool> idDict = whitelist[_info.assetpathFemale];
                    if (idDict.ContainsKey(_info.id) && idDict[_info.id])
                    {
                        isElevated = true;
                    }
                    else
                    {
                        isElevated = false;
                    }
                }
                else
                {
                    isElevated = false;
                }

                if (chaFemales[0] != null)
                {
                    savedControls[0] = chaFemales[0];
                }
                if (chaFemales[1] != null)
                {
                    savedControls[1] = chaFemales[1];
                }
                if (chaMales[0] != null)
                {
                    savedControls[2] = chaMales[0];
                }
                if (chaMales[1] != null)
                {
                    savedControls[3] = chaMales[1];
                }
            }
        }
示例#17
0
        public virtual void OnStart()
        {
            AgentActor agent = this.Agent;

            agent.EventKey = EventType.Masturbation;
            ((Task)this).OnStart();
            agent.CurrentPoint = this.Agent.TargetInSightActionPoint;
            agent.SetActiveOnEquipedItem(false);
            agent.ChaControl.setAllLayerWeight(0.0f);
            agent.ElectNextPoint();
            if (Object.op_Equality((Object)agent.CurrentPoint, (Object)null))
            {
                return;
            }
            agent.CurrentPoint.SetActiveMapItemObjs(false);
            ActionPointInfo actionPointInfo1 = agent.TargetInSightActionPoint.GetActionPointInfo(agent);

            agent.Animation.ActionPointInfo = actionPointInfo1;
            ActionPointInfo actionPointInfo2 = actionPointInfo1;
            Transform       t    = ((Component)agent.CurrentPoint).get_transform().FindLoop(actionPointInfo2.baseNullName)?.get_transform() ?? ((Component)agent.CurrentPoint).get_transform();
            GameObject      loop = ((Component)agent.CurrentPoint).get_transform().FindLoop(actionPointInfo2.recoveryNullName);

            agent.Animation.RecoveryPoint = loop?.get_transform();
            int eventId = actionPointInfo2.eventID;

            agent.ActionID = eventId;
            int actionID = eventId;
            int poseId   = actionPointInfo2.poseID;

            agent.PoseID = poseId;
            int       poseID    = poseId;
            PlayState playState = Singleton <Resources> .Instance.Animation.AgentActionAnimTable[actionID][poseID];

            agent.LoadActionFlag(actionID, poseID);
            agent.DeactivateNavMeshAgent();
            agent.Animation.StopAllAnimCoroutine();
            HScene.AnimationListInfo info = Singleton <Resources> .Instance.HSceneTable.lstAnimInfo[3][actionPointInfo2.poseID];
            agent.Animation.BeginIgnoreEvent();
            AssetBundleInfo           assetBundleInfo = playState.MainStateInfo.AssetBundleInfo;
            RuntimeAnimatorController rac             = AssetUtility.LoadAsset <RuntimeAnimatorController>((string)assetBundleInfo.assetbundle, (string)assetBundleInfo.asset, string.Empty);

            agent.Animation.SetAnimatorController(rac);
            agent.StartMasturbationSequence(info);
            agent.CurrentPoint.SetSlot((Actor)agent);
            agent.SetStand(t, false, 0.0f, 0);
            agent.SurprisePoseID   = new PoseKeyPair?(Singleton <Resources> .Instance.AgentProfile.PoseIDTable.SurpriseMasturbationID);
            agent.UpdateMotivation = true;
        }
示例#18
0
        public static bool HSceneSpriteChaChoice_ChangeChaOptions_Patch(HScene.AnimationListInfo info, HSceneSpriteChaChoice __instance, UnityEngine.UI.Dropdown ___dropdown, Manager.HSceneManager ___hSceneManager)
        {
            __instance.FeMaleActive[0] = !info.fileFemale.IsNullOrEmpty();
            __instance.FeMaleActive[1] = !info.fileFemale2.IsNullOrEmpty();
            __instance.MaleActive[0]   = !info.fileMale.IsNullOrEmpty();
            __instance.MaleActive[1]   = !info.fileMale2.IsNullOrEmpty();

            if (___hSceneManager.numFemaleClothCustom == 0 || (___hSceneManager.numFemaleClothCustom < 2) ? __instance.FeMaleActive[___hSceneManager.numFemaleClothCustom] : __instance.MaleActive[___hSceneManager.numFemaleClothCustom - 2])
            {
                return(false);
            }

            ___hSceneManager.numFemaleClothCustom = 0;
            ___dropdown.value = 0;

            return(false);
        }
示例#19
0
 public override bool SetStartMotion(
     bool _isIdle,
     int _modeCtrl,
     HScene.AnimationListInfo _infoAnimList)
 {
     this.AtariEffect.Stop();
     if (_isIdle)
     {
         this.setPlay(!this.ctrlFlag.isFaintness ? "Idle" : "D_Idle", false);
         this.ctrlFlag.loopType = -1;
         this.voice.HouchiTime  = 0.0f;
     }
     else
     {
         if ((double)this.ctrlFlag.feel_m >= 0.699999988079071)
         {
             this.setPlay(!this.ctrlFlag.isFaintness ? "OLoop" : "D_OLoop", false);
             this.ctrlFlag.loopType = -1;
         }
         else
         {
             this.setPlay(!this.ctrlFlag.isFaintness ? "WLoop" : "D_WLoop", false);
             if (this.ctrlFlag.nowAnimationInfo.hasVoiceCategory.Contains(0))
             {
                 this.voice.PlaySoundETC(!this.ctrlFlag.isFaintness ? "WLoop" : "D_WLoop", 1, this.chaFemales[0], 0, false);
             }
             else if (this.ctrlFlag.nowAnimationInfo.hasVoiceCategory.Contains(1))
             {
                 this.voice.PlaySoundETC(!this.ctrlFlag.isFaintness ? "WLoop" : "D_WLoop", 2, this.chaFemales[0], 0, false);
             }
             this.ctrlFlag.loopType = 0;
         }
         this.ctrlFlag.speed = 0.0f;
         if (_infoAnimList.lstSystem.Contains(4))
         {
             this.ctrlFlag.isPainActionParam = true;
         }
         this.ctrlFlag.motions[0]        = 0.0f;
         this.ctrlFlag.nowSpeedStateFast = false;
         this.auto.SetSpeed(0.0f);
     }
     this.ctrlMeta.SetParameterFromState(!this.ctrlFlag.isFaintness ? 0 : 1);
     this.nextPlay = 0;
     this.oldHit   = false;
     return(true);
 }
示例#20
0
    public override bool Proc(int _modeCtrl, HScene.AnimationListInfo _infoAnimList)
    {
        if (Object.op_Equality((Object)this.chaFemales[0].objTop, (Object)null))
        {
            return(false);
        }
        AnimatorStateInfo animatorStateInfo = this.chaFemales[0].getAnimatorStateInfo(0);
        bool animatorParamBool = this.chaFemales[0].getAnimatorParamBool("change");
        bool flag1             = false;

        switch (this.ctrlFlag.nowAnimationInfo.id)
        {
        case 3:
        case 13:
        case 14:
            if ((((AnimatorStateInfo) ref animatorStateInfo).IsName("WLoop") || ((AnimatorStateInfo) ref animatorStateInfo).IsName("MLoop") || ((AnimatorStateInfo) ref animatorStateInfo).IsName("SLoop")) && this.ctrlFlag.click == HSceneFlagCtrl.ClickKind.FinishBefore)
            {
                this.ctrlFlag.speed    = 1f;
                this.ctrlFlag.loopType = -1;
                this.nextAnimation     = "OLoop";
                this.chaFemales[0].setAnimatorParamBool("change", true);
                this.item.setAnimatorParamBool("change", true);
                this.setPlay("OLoop", true);
                this.ctrlFlag.feel_f = 0.75f;
                flag1 = true;
                break;
            }
            break;
        }
        if (!flag1)
        {
            if (((AnimatorStateInfo) ref animatorStateInfo).IsName("Idle"))
            {
                this.StartProc(0);
            }
            else if (((AnimatorStateInfo) ref animatorStateInfo).IsName("WLoop"))
            {
                this.GotoNextLoop(0.25f, animatorParamBool, "MLoop");
                this.ctrlFlag.speed    = 1f;
                this.ctrlFlag.loopType = -1;
            }
示例#21
0
 public override bool SetStartMotion(
     bool _isIdle,
     int _modeCtrl,
     HScene.AnimationListInfo _infoAnimList)
 {
     this.AtariEffect.Stop();
     if (_isIdle)
     {
         this.setPlay(!this.ctrlFlag.isFaintness ? "WIdle" : "D_Orgasm_A", false);
         this.ctrlFlag.speed    = 0.0f;
         this.ctrlFlag.loopType = -1;
         this.voice.HouchiTime  = 0.0f;
     }
     else
     {
         if (this.ctrlFlag.isFaintness)
         {
             this.setPlay("D_Orgasm_A", false);
         }
         else
         {
             this.setPlay((double)this.ctrlFlag.feel_f < 0.5 ? "WIdle" : "SIdle", false);
         }
         this.ctrlFlag.speed      = 0.0f;
         this.ctrlFlag.loopType   = -1;
         this.voice.HouchiTime    = 0.0f;
         this.ctrlFlag.motions[0] = 0.0f;
         this.ctrlFlag.motions[1] = 0.0f;
         if (_infoAnimList.lstSystem.Contains(4))
         {
             this.ctrlFlag.isPainActionParam = true;
         }
     }
     this.isHeight1Parameter = this.chaFemales[0].IsParameterInAnimator("height1");
     return(true);
 }
示例#22
0
 private static void CheckMotionLimitHook(ref HSceneSprite __instance, ref bool __result, HScene.AnimationListInfo lstAnimInfo)
 {
     if (__result == false && unlockAll.Value)
     {
         bool realyFalse = false;
         if (!realyFalse)
         {
             __result = true;
         }
     }
 }
示例#23
0
        private static void CheckMotionLimitHook(ref HSceneSprite __instance, ref bool __result, HScene.AnimationListInfo lstAnimInfo)
        {
            if (__result == false && unlockAll.Value)
            {
                bool realyFalse = false;
                if (__instance.chaFemales.Length > 1 && __instance.chaFemales[1] == null && (lstAnimInfo.ActionCtrl.Item1 == 4 || lstAnimInfo.ActionCtrl.Item1 == 5))
                {
                    realyFalse = true;
                }
                if (__instance.chaMales.Length > 1 && __instance.chaMales[1] == null && lstAnimInfo.ActionCtrl.Item1 == 6)
                {
                    realyFalse = true;
                }
                if (__instance.EventNo == 19)
                {
                    if (lstAnimInfo.ActionCtrl.Item1 == 4 || lstAnimInfo.ActionCtrl.Item1 == 5 || lstAnimInfo.ActionCtrl.Item1 == 6)
                    {
                        realyFalse = true;
                    }
                    if (lstAnimInfo.ActionCtrl.Item1 == 3 && lstAnimInfo.id == 0)
                    {
                        realyFalse = true;
                    }
                }
                if (!__instance.CheckEventLimit(lstAnimInfo.Event))
                {
                    realyFalse = true;
                }

                if (!__instance.CheckPlace(lstAnimInfo))
                {
                    realyFalse = true;
                }
                if (!realyFalse)
                {
                    __result = true;
                }
            }
        }
示例#24
0
        public static void Update()
        {
            if (!HSceneManager.IsInstance())
            {
                return;
            }

            if (!HSceneManager.isHScene)
            {
                if (lstAnimInfo != null)
                {
                    lstAnimInfo = null;
                }

                return;
            }

            int category = -1;

            if (CaressKey.Value.IsDown())
            {
                category = 0;
            }
            else if (ServiceKey.Value.IsDown())
            {
                category = 1;
            }
            else if (IntercourseKey.Value.IsDown())
            {
                category = 2;
            }
            else if (SpecialKey.Value.IsDown())
            {
                category = 3;
            }
            else if (LesbianKey.Value.IsDown())
            {
                category = 4;
            }
            else if (GroupKey.Value.IsDown())
            {
                category = 5;
            }

            if (category != -1)
            {
                if (HSceneFlagCtrl.Instance.selectAnimationListInfo == null)
                {
                    if (lstAnimInfo == null)
                    {
                        GenerateList();
                    }

                    if (lstAnimInfo != null && category < lstAnimInfo.Length)
                    {
                        List <HScene.AnimationListInfo> list = lstAnimInfo[category];

                        if (list != null && list.Count > 0)
                        {
                            HScene.AnimationListInfo next = list[UnityEngine.Random.Range(0, list.Count)];
                            HSceneFlagCtrl.Instance.selectAnimationListInfo = next;

                            MapUIContainer.AddNotify($"Next Animation: {next.nameAnimation}");
                        }
                        else
                        {
                            MapUIContainer.AddNotify("No animations available for this category.");
                        }
                    }
                    else
                    {
                        MapUIContainer.AddNotify("This category is not available during this scene.");
                    }
                }
                else
                {
                    MapUIContainer.AddNotify("Next animation is already being loaded.");
                }
            }
        }
示例#25
0
 public virtual bool Proc(int _modeCtrl, HScene.AnimationListInfo _infoAnimList)
 {
     return(true);
 }
示例#26
0
        public virtual void OnStart()
        {
            ((Task)this).OnStart();
            this._isReleased = true;
            AgentActor agent = this.Agent;

            agent.EventKey     = EventType.Lesbian;
            agent.CurrentPoint = agent.TargetInSightActionPoint;
            agent.SetActiveOnEquipedItem(false);
            agent.ChaControl.setAllLayerWeight(0.0f);
            Actor partner = agent.Partner;

            if (Object.op_Equality((Object)partner, (Object)null))
            {
                return;
            }
            agent.DeactivateNavMeshAgent();
            agent.IsKinematic = true;
            partner.SetActiveOnEquipedItem(false);
            partner.ChaControl.setAllLayerWeight(0.0f);
            partner.DeactivateNavMeshAgent();
            partner.IsKinematic = true;
            DateActionPointInfo dateActionPointInfo1 = agent.TargetInSightActionPoint.GetDateActionPointInfo(agent);

            agent.Animation.DateActionPointInfo = dateActionPointInfo1;
            DateActionPointInfo dateActionPointInfo2 = dateActionPointInfo1;
            Transform           basePointA           = ((Component)agent.CurrentPoint).get_transform().FindLoop(dateActionPointInfo2.baseNullNameA)?.get_transform() ?? ((Component)agent.CurrentPoint).get_transform();
            GameObject          loop1 = ((Component)agent.CurrentPoint).get_transform().FindLoop(dateActionPointInfo2.recoveryNullNameA);

            agent.Animation.RecoveryPoint = loop1?.get_transform() ?? ((Component)agent.CurrentPoint).get_transform();
            Transform  basePointB = ((Component)agent.CurrentPoint).get_transform().FindLoop(dateActionPointInfo2.baseNullNameB)?.get_transform() ?? ((Component)agent.CurrentPoint).get_transform();
            GameObject loop2      = ((Component)agent.CurrentPoint).get_transform().FindLoop(dateActionPointInfo2.recoveryNullNameB);

            partner.Animation.RecoveryPoint = loop2?.get_transform() ?? ((Component)agent.CurrentPoint).get_transform();
            int eventId = dateActionPointInfo2.eventID;

            agent.ActionID = eventId;
            int actionID = eventId;
            int poseIda  = dateActionPointInfo2.poseIDA;

            agent.PoseID = poseIda;
            int poseID1 = poseIda;
            int poseIdb = dateActionPointInfo2.poseIDB;

            partner.PoseID = poseIdb;
            int       poseID2    = poseIdb;
            PlayState playState1 = Singleton <Resources> .Instance.Animation.AgentActionAnimTable[actionID][poseID1];

            agent.LoadActionFlag(actionID, poseID1);
            if (partner is AgentActor)
            {
                (partner as AgentActor).LoadActionFlag(actionID, poseID2);
            }
            PlayState playState2 = Singleton <Resources> .Instance.Animation.AgentActionAnimTable[actionID][poseID2];

            HScene.AnimationListInfo info = Singleton <Resources> .Instance.HSceneTable.lstAnimInfo[4][dateActionPointInfo2.poseIDA];
            agent.Animation.BeginIgnoreEvent();
            partner.Animation.BeginIgnoreEvent();
            AssetBundleInfo           assetBundleInfo1 = playState1.MainStateInfo.AssetBundleInfo;
            RuntimeAnimatorController rac1             = AssetUtility.LoadAsset <RuntimeAnimatorController>((string)assetBundleInfo1.assetbundle, (string)assetBundleInfo1.asset, string.Empty);

            agent.Animation.SetAnimatorController(rac1);
            AssetBundleInfo           assetBundleInfo2 = playState2.MainStateInfo.AssetBundleInfo;
            RuntimeAnimatorController rac2             = AssetUtility.LoadAsset <RuntimeAnimatorController>((string)assetBundleInfo2.assetbundle, (string)assetBundleInfo2.asset, string.Empty);

            partner.Animation.SetAnimatorController(rac2);
            agent.StartLesbianSequence(partner, info);
            agent.CurrentPoint.SetSlot((Actor)agent);
            agent.SetStand(basePointA, false, 0.0f, 0);
            partner.SetStand(basePointB, false, 0.0f, 0);
            ObservableExtensions.Subscribe <long>(Observable.Take <long>(Observable.Skip <long>((IObservable <M0>)Observable.EveryLateUpdate(), 1), 5), (System.Action <M0>)(_ =>
            {
                agent.SetStand(basePointA, false, 0.0f, 0);
                partner.SetStand(basePointB, false, 0.0f, 0);
            }));
            agent.UpdateMotivation = true;
            this._isReleased       = false;
        }
 public void EndProc()
 {
     this.bFutanari               = false;
     this.BeforeHWait             = true;
     this.nowAnimationInfo        = new HScene.AnimationListInfo();
     this.selectAnimationListInfo = (HScene.AnimationListInfo)null;
     this.feel_f             = 0.0f;
     this.feel_m             = 0.0f;
     this.initiative         = 0;
     this.isLeaveItToYou     = false;
     this.isAutoActionChange = false;
     this.isGaugeHit         = false;
     this.isGaugeHit_M       = false;
     this.nowSpeedStateFast  = false;
     this.speed = 0.0f;
     for (int index = 0; index < this.motions.Length; ++index)
     {
         this.motions[index] = 0.0f;
     }
     this.nPlace   = 0;
     this.HPointID = 0;
     if (Object.op_Inequality((Object)this.nowHPoint, (Object)null))
     {
         ChangeHItem componentInChildren = (ChangeHItem)((Component)this.nowHPoint).GetComponentInChildren <ChangeHItem>();
         if (Object.op_Inequality((Object)componentInChildren, (Object)null))
         {
             componentInChildren.ChangeActive(true);
         }
     }
     this.nowHPoint             = (HPoint)null;
     this.stopFeelFemal         = false;
     this.stopFeelMale          = false;
     this.isFaintness           = false;
     this.rateTuya              = 0.0f;
     this.rateNip               = 0.0f;
     this.numOrgasm             = 0;
     this.numOrgasmTotal        = 0;
     this.numOrgasmFemalePlayer = 0;
     this.numSameOrgasm         = 0;
     this.numInside             = 0;
     this.numOutSide            = 0;
     this.numDrink              = 0;
     this.numVomit              = 0;
     this.numAibu               = 0;
     this.numHoushi             = 0;
     this.numSonyu              = 0;
     this.numLes             = 0;
     this.numUrine           = 0;
     this.numFaintness       = 0;
     this.numKokan           = 0;
     this.numAnal            = 0;
     this.numLeadFemale      = 0;
     this.isJudgeSelect      = new List <HSceneFlagCtrl.JudgeSelect>();
     this.isHoushiFinish     = false;
     this.isNotCtrl          = true;
     this.isPainActionParam  = false;
     this.isPainAction       = false;
     this.isConstraintAction = false;
     this.nowOrgasm          = false;
     this.voice.MemberInit();
     this.ChangeParams.Clear();
     this.endAdd[0].Clear();
     this.endAdd[1].Clear();
     this.endAddSkil.Clear();
     for (int index1 = 0; index1 < 2; ++index1)
     {
         for (int index2 = 0; index2 < 2; ++index2)
         {
             if (this.lstSyncAnimLayers[index1, index2] != null)
             {
                 this.lstSyncAnimLayers[index1, index2].Clear();
             }
         }
     }
 }