private static void GetAddRate(ref float __result, int key, AgentActor __instance) { if (key == Desire.GetDesireKey(Desire.Type.Game) && InteractionRate.Value != 0) { __result = InteractionRate.Value; } }
private void Complete() { AgentActor agent = this.Agent; agent.Animation.CrossFadeScreen(-1f); agent.SetStand(agent.Animation.RecoveryPoint, false, 0.0f, 0); agent.Animation.RecoveryPoint = (Transform)null; agent.ResetActionFlag(); if (Object.op_Inequality((Object)agent.CurrentPoint, (Object)null)) { agent.CurrentPoint.SetActiveMapItemObjs(true); agent.CurrentPoint.ReleaseSlot((Actor)agent); agent.CurrentPoint = (ActionPoint)null; agent.PrevActionPoint = agent.TargetInSightActionPoint; } agent.TargetInSightActionPoint = (ActionPoint)null; agent.SurprisePoseID = new PoseKeyPair?(); Desire.Type key; if (Desire.ModeTable.TryGetValue(agent.PrevMode, out key)) { int desireKey = Desire.GetDesireKey(key); agent.SetDesire(desireKey, 0.0f); } agent.Animation.ResetDefaultAnimatorController(); agent.ChaControl.SetClothesStateAll((byte)0); agent.ActivateNavMeshAgent(); }
private void Complete() { AgentActor agent = this.Agent; agent.UpdateStatus(agent.ActionID, agent.PoseID); int desireKey = Desire.GetDesireKey(Desire.Type.Sleep); agent.SetDesire(desireKey, 0.0f); agent.SetStatus(0, 50f); agent.HealSickBySleep(); this.Agent.ActivateNavMeshAgent(); this.Agent.SetActiveOnEquipedItem(true); agent.Animation.EndStates(); agent.ClearItems(); agent.ClearParticles(); if (Object.op_Inequality((Object)agent.CurrentPoint, (Object)null)) { agent.CurrentPoint.SetActiveMapItemObjs(true); agent.CurrentPoint.ReleaseSlot((Actor)agent); agent.CurrentPoint = (ActionPoint)null; } agent.EventKey = (EventType)0; agent.PrevActionPoint = agent.TargetInSightActionPoint; agent.TargetInSightActionPoint = (ActionPoint)null; }
public virtual TaskStatus OnUpdate() { AgentActor agent = this.Agent; if (Object.op_Inequality((Object)agent.TargetInSightActionPoint, (Object)null)) { if (this._checkFollowType) { if (agent.TargetInSightActionPoint.AgentDateEventType.Contains(this._eventType)) { return((TaskStatus)2); } } else if (agent.TargetInSightActionPoint.AgentEventType.Contains(this._eventType)) { return((TaskStatus)2); } } if (Object.op_Equality((Object)this._destination, (Object)null)) { if (this._desireIfNotFound != Desire.Type.None) { int desireKey = Desire.GetDesireKey(this._desireIfNotFound); agent.SetDesire(desireKey, 0.0f); agent.ChangeBehavior((Desire.ActionType) this._modeIDIfNotFound); } return((TaskStatus)1); } agent.TargetInSightActionPoint = this._destination; agent.EventKey = this._eventType; this._destination.Reserver = (Actor)agent; return((TaskStatus)2); }
private void Complete() { AgentActor agent = this.Agent; agent.UpdateStatus(agent.ActionID, agent.PoseID); int desireKey = Desire.GetDesireKey(Desire.Type.Sleep); agent.SetDesire(desireKey, 0.0f); this.OnCompletedStateTask(); if (Random.Range(0, 100) < 50) { agent.ChangeBehavior(Desire.ActionType.EndTaskSecondSleep); } else { agent.ActivateNavMeshAgent(); agent.SetActiveOnEquipedItem(true); agent.ClearItems(); agent.ClearParticles(); agent.Animation.EndStates(); agent.ResetActionFlag(); agent.SetDefaultStateHousingItem(); if (Object.op_Inequality((Object)agent.CurrentPoint, (Object)null)) { agent.CurrentPoint.SetActiveMapItemObjs(true); agent.CurrentPoint.ReleaseSlot((Actor)agent); agent.CurrentPoint = (ActionPoint)null; } agent.EventKey = (EventType)0; agent.PrevActionPoint = agent.TargetInSightActionPoint; agent.TargetInSightActionPoint = (ActionPoint)null; agent.AgentData.YobaiTrigger = false; } }
public virtual TaskStatus OnUpdate() { float num1 = 0.0f; Desire.Type type = Desire.WithPlayerDesireTable[0]; if (this._withPlayer) { foreach (Desire.Type key in Desire.WithPlayerDesireTable) { float num2; if (this.Agent.AgentData.DesireTable.TryGetValue(Desire.GetDesireKey(key), out num2) && (double)num1 < (double)num2) { num1 = num2; type = key; } } } else { foreach (KeyValuePair <int, float> keyValuePair in this.Agent.AgentData.DesireTable) { if ((double)num1 < (double)keyValuePair.Value) { num1 = keyValuePair.Value; type = (Desire.Type)keyValuePair.Key; } } } if (type == Desire.Type.None) { return((TaskStatus)1); } return(type == this._desire ? (TaskStatus)2 : (TaskStatus)1); }
public virtual TaskStatus OnUpdate() { AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(this._key); float? desire = agent.GetDesire(desireKey); if (!desire.HasValue) { return((TaskStatus)1); } if ((double)desire.Value >= (double)this._migrationBorder) { float?motivation = agent.GetMotivation(desireKey); if (motivation.HasValue) { if ((double)motivation.Value >= (double)Singleton <Resources> .Instance.AgentProfile.ActiveMotivationBorder) { return((TaskStatus)2); } agent.SetDesire(desireKey, 0.0f); return((TaskStatus)1); } } return((TaskStatus)1); }
public virtual TaskStatus OnUpdate() { int desireKey = Desire.GetDesireKey(this._key); float num1 = (float)Singleton <Resources> .Instance.GetDesireBorder(desireKey).Item2; float?desire = this.Agent.GetDesire(desireKey); if (!desire.HasValue) { return((TaskStatus)1); } float num2 = Random.Range(0.0f, num1); if (!this._compareDowner) { if (Mathf.Approximately(desire.Value, 0.0f)) { return((TaskStatus)1); } return((double)num2 <= (double)desire.Value ? (TaskStatus)2 : (TaskStatus)1); } if (Mathf.Approximately(desire.Value, num1)) { return((TaskStatus)1); } return((double)desire.Value <= (double)num2 ? (TaskStatus)2 : (TaskStatus)1); }
private void Complete() { AgentActor agent = this.Agent; agent.UpdateStatus(agent.ActionID, agent.PoseID); agent.CauseSick(); int desireKey = Desire.GetDesireKey(Desire.Type.Eat); agent.SetDesire(desireKey, 0.0f); agent.ApplyFoodParameter(agent.AgentData.CarryingItem); agent.AgentData.CarryingItem = (StuffItem)null; agent.ActivateNavMeshAgent(); agent.SetActiveOnEquipedItem(true); agent.Animation.EndStates(); agent.ClearItems(); agent.ClearParticles(); agent.ResetActionFlag(); agent.SetDefaultStateHousingItem(); if (Object.op_Inequality((Object)agent.CurrentPoint, (Object)null)) { agent.CurrentPoint.SetActiveMapItemObjs(true); agent.CurrentPoint.ReleaseSlot((Actor)agent); agent.CurrentPoint = (ActionPoint)null; } agent.EventKey = (EventType)0; agent.PrevActionPoint = agent.TargetInSightActionPoint; agent.TargetInSightActionPoint = (ActionPoint)null; }
private void Complete() { AgentActor agent = this.Agent; agent.Animation.CrossFadeScreen(-1f); agent.ActivateNavMeshAgent(); agent.SetActiveOnEquipedItem(true); agent.SetStand(agent.Animation.RecoveryPoint, false, 0.0f, 0); agent.Animation.RecoveryPoint = (Transform)null; int desireKey = Desire.GetDesireKey(Desire.Type.H); agent.SetDesire(desireKey, 0.0f); agent.UpdateStatus(agent.ActionID, agent.PoseID); agent.ApplySituationResultParameter(31); agent.ClearItems(); agent.ClearParticles(); agent.ResetActionFlag(); if (Object.op_Inequality((Object)agent.CurrentPoint, (Object)null)) { agent.CurrentPoint.SetActiveMapItemObjs(true); agent.CurrentPoint.ReleaseSlot((Actor)agent); agent.CurrentPoint = (ActionPoint)null; agent.PrevActionPoint = agent.TargetInSightActionPoint; } agent.TargetInSightActionPoint = (ActionPoint)null; agent.SurprisePoseID = new PoseKeyPair?(); agent.Animation.EndIgnoreEvent(); agent.Animation.ResetDefaultAnimatorController(); }
protected override void OnCompletedStateTask() { AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(Desire.Type.Toilet); agent.SetDesire(desireKey, 0.0f); agent.SurprisePoseID = new PoseKeyPair?(); }
public virtual TaskStatus OnUpdate() { AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(agent.RequestedDesire); float? motivation = agent.GetMotivation(desireKey); return(motivation.HasValue && (double)motivation.Value <= 0.0 ? (TaskStatus)2 : (TaskStatus)1); }
public override TaskStatus OnUpdate() { if (this._continueCookSeq) { return(base.OnUpdate()); } this.Agent.SetDesire(Desire.GetDesireKey(Desire.Type.Cook), 0.0f); return((TaskStatus)2); }
public virtual TaskStatus OnUpdate() { float?motivation = this.Agent.GetMotivation(Desire.GetDesireKey(this._key)); if (!motivation.HasValue) { return((TaskStatus)1); } return((double)motivation.Value >= (double)Singleton <Resources> .Instance.AgentProfile.ActiveMotivationBorder ? (TaskStatus)2 : (TaskStatus)1); }
public virtual TaskStatus OnUpdate() { int desireKey = Desire.GetDesireKey(this.Agent.RuntimeDesire); if (desireKey != -1) { this.Agent.SetDesire(desireKey, 0.0f); } return((TaskStatus)2); }
private void End() { int desireKey = Desire.GetDesireKey(this.Agent.RuntimeDesire); if (desireKey != -1) { this.Agent.SetDesire(desireKey, 0.0f); } this.Agent.RuntimeDesire = Desire.Type.None; this.ReleaseAnimal(); }
public virtual TaskStatus OnUpdate() { int desireKey = Desire.GetDesireKey(this._desireType); if (desireKey == -1) { return((TaskStatus)1); } float?desire = this.Agent.GetDesire(desireKey); return((!desire.HasValue ? 0 : ((double)desire.GetValueOrDefault() < (double)this._boundingValue.get_Value() ? 1 : 0)) != 0 ? (TaskStatus)1 : (TaskStatus)2); }
public virtual TaskStatus OnUpdate() { AgentActor agent = this.Agent; if (Object.op_Inequality((Object)agent.TargetInSightActionPoint, (Object)null)) { if (this._checkFollowType) { if (agent.TargetInSightActionPoint.AgentDateEventType.Contains(this._eventType)) { return((TaskStatus)2); } } else if (agent.TargetInSightActionPoint.AgentEventType.Contains(this._eventType)) { return((TaskStatus)2); } } if (Object.op_Equality((Object)this._destination, (Object)null)) { if (this._changeWarp) { agent.ChangeBehavior(Desire.ActionType.SearchWarpPoint); return((TaskStatus)2); } Actor partner = agent.Partner; if (Object.op_Inequality((Object)partner, (Object)null)) { agent.Partner = (Actor)null; partner.Partner = (Actor)null; if (partner is AgentActor) { (partner as AgentActor).BehaviorResources.ChangeMode(Desire.ActionType.Normal); } else if (partner is MerchantActor) { MerchantActor merchantActor = partner as MerchantActor; merchantActor.ChangeBehavior(merchantActor.LastNormalMode); } } if (this._desireIfNotFound != Desire.Type.None) { int desireKey = Desire.GetDesireKey(this._desireIfNotFound); agent.SetDesire(desireKey, 0.0f); agent.ChangeBehavior(Desire.ActionType.Normal); } return((TaskStatus)1); } agent.TargetInSightActionPoint = this._destination; agent.EventKey = this._eventType; this._destination.Reserver = (Actor)agent; return((TaskStatus)2); }
private void OnComplete2() { AgentActor agent = this.Agent; Actor partner = agent.Partner; int desireKey = Desire.GetDesireKey(Desire.Type.H); agent.SetDesire(desireKey, 0.0f); if (partner is AgentActor) { (partner as AgentActor).SetDesire(desireKey, 0.0f); } agent.UpdateStatus(agent.ActionID, agent.PoseID); if (partner is AgentActor) { (partner as AgentActor).UpdateStatus(partner.ActionID, partner.PoseID); } if (partner is AgentActor) { Dictionary <int, int> relationShipTable = this.Agent.AgentData.FriendlyRelationShipTable; int num; if (!relationShipTable.TryGetValue(partner.ID, out num)) { num = 50; } relationShipTable[partner.ID] = Mathf.Clamp(num + 2, 0, 100); agent.ApplySituationResultParameter(24); (partner as AgentActor).ChangeBehavior(Desire.ActionType.Normal); } else if (partner is MerchantActor) { int num1; if (!this.Agent.AgentData.FriendlyRelationShipTable.TryGetValue(partner.ID, out num1)) { num1 = 50; } int num2; if (!Singleton <Resources> .Instance.MerchantProfile.ResultAddFriendlyRelationShipTable.TryGetValue(Merchant.ActionType.HWithAgent, out num2)) { num2 = 0; } this.Agent.AgentData.FriendlyRelationShipTable[partner.ID] = Mathf.Clamp(num1 + num2, 0, 100); this.Agent.ApplySituationResultParameter(26); MerchantActor merchantActor = partner as MerchantActor; merchantActor.ChangeBehavior(merchantActor.LastNormalMode); if (Object.op_Equality((Object)agent, (Object)merchantActor.CommandPartner)) { merchantActor.CommandPartner = (Actor)null; } } this.OnReleaseProcessing(); }
protected override void OnCompletedStateTask() { this.Agent.SetDesire(Desire.GetDesireKey(Desire.Type.Drink), 0.0f); AgentActor agent = this.Agent; agent.ApplyDrinkParameter(this._targetItem); ItemIDKeyPair coconutDrinkId = Singleton <Resources> .Instance.AgentProfile.CoconutDrinkID; if (this._targetItem.CategoryID == coconutDrinkId.categoryID && this._targetItem.ID == coconutDrinkId.itemID) { agent.SetStatus(0, 50f); } this._targetItem = (StuffItem)null; }
protected override void OnCompletedStateTask() { AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(Desire.Type.Bath); agent.SetDesire(desireKey, 0.0f); agent.SurprisePoseID = new PoseKeyPair?(); if (agent.AgentData.PlayedDressIn) { return; } agent.NextPoint = (ActionPoint)null; agent.AgentData.Wetness = 100f; }
public static void HScene_EndProc_Patch() { inHScene = false; if (map != null && mapShouldEnable) { map.SetActive(true); mapShouldEnable = false; } if (mapSimulation != null && mapSimulationShouldEnable) { mapSimulation.SetActive(true); mapSimulationShouldEnable = false; } activeUI = false; if (!increaseBathDesire.Value || manager != null && manager.bMerchant) { return; } var females = hScene.GetFemales(); var agentTable = Singleton <Map> .Instance.AgentTable; if (females == null || agentTable == null) { return; } foreach (var female in females.Where(female => female != null)) { var agent = agentTable.FirstOrDefault(pair => pair.Value != null && pair.Value.ChaControl == female).Value; if (agent == null) { continue; } int bathDesireType = Desire.GetDesireKey(Desire.Type.Bath); int lewdDesireType = Desire.GetDesireKey(Desire.Type.H); float clampedReason = Tools.Remap(agent.GetFlavorSkill(FlavorSkill.Type.Reason), 0, 99999f, 0, 100f); float clampedDirty = Tools.Remap(agent.GetFlavorSkill(FlavorSkill.Type.Dirty), 0, 99999f, 0, 100f); float clampedLewd = agent.GetDesire(lewdDesireType) ?? 0; float newBathDesire = 100f + (clampedReason * 1.25f) - clampedDirty - clampedLewd * 1.5f; agent.SetDesire(bathDesireType, Mathf.Clamp(newBathDesire, 0f, 100f)); } }
private void Complete() { AgentActor agent = this.Agent; agent.UpdateStatus(agent.ActionID, agent.PoseID); int desireKey = Desire.GetDesireKey(Desire.Type.Toilet); agent.SetDesire(desireKey, 0.0f); agent.ApplySituationResultParameter(29); agent.ClearItems(); agent.ClearParticles(); agent.ResetActionFlag(); agent.EventKey = (EventType)0; }
protected override void OnCompletedStateTask() { AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(Desire.Type.Cook); agent.SetDesire(desireKey, 0.0f); if (this._createItem == null) { return; } StuffItemInfo info = Singleton <Resources> .Instance.GameInfo.GetItem(this._createItem.item.CategoryID, this._createItem.item.ID); MapUIContainer.AddItemLog((Actor)agent, info, this._createItem.info.CreateSum, false); this._createItem = (CraftUI.CreateItem)null; }
public virtual TaskStatus OnUpdate() { if (this.Agent.LivesTalkSequence) { return((TaskStatus)3); } int desireKey = Desire.GetDesireKey(this.Agent.RuntimeDesire); if (desireKey != -1) { this.Agent.SetDesire(desireKey, 0.0f); } this.Agent.RuntimeDesire = Desire.Type.None; return((TaskStatus)2); }
public virtual TaskStatus OnUpdate() { AgentActor agent = this.Agent; bool flag1 = agent.ChaControl.fileGameInfo.normalSkill.ContainsValue(28); bool flag2 = (double)agent.AgentData.StatsTable[3] < (double)Singleton <Resources> .Instance.StatusProfile.HealthyPhysicalBorder; if (!flag1 || !flag2) { return((TaskStatus)1); } int desireKey = Desire.GetDesireKey(Desire.Type.Break); agent.SetMotivation(desireKey, agent.AgentData.StatsTable[5]); return((TaskStatus)2); }
private void Complete() { AgentActor agent = this.Agent; AgentActor partner = agent.Partner as AgentActor; ActorAnimInfo animInfo1 = agent.Animation.AnimInfo; if (!animInfo1.outEnableBlend) { agent.Animation.CrossFadeScreen(-1f); } agent.SetStand(agent.Animation.RecoveryPoint, animInfo1.endEnableBlend, animInfo1.endBlendSec, animInfo1.directionType); agent.Animation.RefsActAnimInfo = true; partner.SetStand(partner.Animation.RecoveryPoint, animInfo1.endEnableBlend, animInfo1.endBlendSec, animInfo1.directionType); partner.Animation.RefsActAnimInfo = true; agent.UpdateStatus(agent.ActionID, agent.PoseID); partner.UpdateStatus(partner.ActionID, partner.PoseID); agent.CauseSick(); agent.ApplySituationResultParameter(28); partner.ApplySituationResultParameter(28); int desireKey1 = Desire.GetDesireKey(Desire.Type.Game); agent.SetDesire(desireKey1, 0.0f); partner.SetDesire(desireKey1, 0.0f); int desireKey2 = Desire.GetDesireKey(Desire.Type.Lonely); agent.SetDesire(desireKey2, 0.0f); partner.SetDesire(desireKey2, 0.0f); agent.ClearItems(); agent.ClearParticles(); agent.ResetActionFlag(); partner.ResetActionFlag(); agent.SetDefaultStateHousingItem(); agent.CurrentPoint.SetActiveMapItemObjs(true); agent.Partner = (Actor)null; partner.Partner = (Actor)null; partner.ActivateNavMeshAgent(); partner.SetActiveOnEquipedItem(true); ActorAnimInfo animInfo2 = partner.Animation.AnimInfo; partner.BehaviorResources.ChangeMode(Desire.ActionType.Normal); partner.Mode = Desire.ActionType.Normal; agent.TargetInSightActor = (Actor)null; agent.CurrentPoint.ReleaseSlot((Actor)this.Agent); agent.CurrentPoint = (ActionPoint)null; agent.EventKey = (EventType)0; agent.PrevActionPoint = this.Agent.TargetInSightActionPoint; agent.TargetInSightActionPoint = (ActionPoint)null; }
protected override void OnCompletedStateTask() { if (this._unchangeParamState) { return; } AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(Desire.Type.Break); agent.SetDesire(desireKey, 0.0f); if (Random.Range(0, 20) >= 1) { return; } agent.AgentData.SickState.ID = -1; }
private void Complete() { AgentActor agent = this.Agent; int desireKey = Desire.GetDesireKey(Desire.Type.Drink); agent.SetDesire(desireKey, 0.0f); agent.Animation.EndStates(); agent.UpdateStatus(agent.ActionID, agent.PoseID); agent.CauseSick(); agent.ClearItems(); agent.ClearParticles(); agent.ResetActionFlag(); agent.EventKey = (EventType)0; agent.ApplyDrinkParameter(this._targetItem); this._targetItem = (StuffItem)null; }
private void End() { int desireKey = Desire.GetDesireKey(this.Agent.RuntimeDesire); if (desireKey != -1) { this.Agent.SetDesire(desireKey, 0.0f); } this.Agent.RuntimeDesire = Desire.Type.None; if (this.animal is IPetAnimal animal) { AIProject.SaveData.AnimalData animalData = animal.AnimalData; if (animalData != null) { double num = (double)animalData.AddFavorability(this.Agent.ID, 1f); } } this.ReleaseAnimal(); }