worldbox-observer-mod/IdleSpectator/HappinessModels.cs

113 lines
3.2 KiB
C#

using System;
using UnityEngine;
namespace IdleSpectator;
public enum HappinessPresentationTier
{
Signal,
Ambient,
Aggregate
}
public enum HappinessContextRequirement
{
None,
RequiresRelatedActor,
RelatedOptional
}
public enum HappinessLifePolicy
{
ActivityOnly,
ProjectToLife
}
public enum HappinessOverlapPolicy
{
Independent,
CanonicalMilestone,
MergeSameOccurrence,
Continuation
}
public enum HappinessRelationRole
{
None,
DeceasedChild,
DeceasedLover,
DeceasedBestFriend,
DeceasedFamily,
Newborn,
Lover,
BestFriend,
GiftPartner,
ConversationPartner,
Robber,
Victim
}
public enum HappinessSourceHook
{
ChangeHappiness,
DeathEvent,
BirthEvent,
Harness,
AggregateSummary
}
/// <summary>Authored catalog row for one happiness effect id.</summary>
public sealed class HappinessCatalogEntry
{
public string Id = "";
public HappinessPresentationTier Presentation = HappinessPresentationTier.Signal;
public HappinessContextRequirement Context = HappinessContextRequirement.None;
public HappinessLifePolicy Life = HappinessLifePolicy.ActivityOnly;
public HappinessOverlapPolicy Overlap = HappinessOverlapPolicy.Independent;
public HappinessRelationRole RelationRole = HappinessRelationRole.None;
public string InterestCategory = "";
public string CanonicalMilestoneKey = "";
public string StatusOverlapId = "";
public string[] VariantsWithRelated = Array.Empty<string>();
public string[] VariantsWithoutRelated = Array.Empty<string>();
public bool IsFallback;
}
/// <summary>Normalized happiness/emotion occurrence for Activity, Life, and future spectator interest.</summary>
public sealed class HappinessOccurrence
{
/// <summary>Monotonic id for <see cref="HappinessEventRouter.DrainSince"/>.</summary>
public ulong Sequence;
public string EffectId = "";
public int Amount;
public long SubjectId;
public string SubjectName = "";
public string SubjectSpecies = "";
public long RelatedId;
public string RelatedName = "";
public string RelatedSpecies = "";
public HappinessRelationRole RelationRole = HappinessRelationRole.None;
public Vector3 Position;
public double WorldTime;
public string DateLabel = "";
public HappinessSourceHook SourceHook = HappinessSourceHook.ChangeHappiness;
public string CorrelationKey = "";
public bool SuppressedByPsychopath;
public bool Applied;
public HappinessPresentationTier Presentation = HappinessPresentationTier.Signal;
public HappinessLifePolicy Life = HappinessLifePolicy.ActivityOnly;
public HappinessOverlapPolicy Overlap = HappinessOverlapPolicy.Independent;
public HappinessContextRequirement Context = HappinessContextRequirement.None;
public string InterestCategory = "";
public string CanonicalMilestoneKey = "";
public string StatusOverlapId = "";
public int SampledCount = 1;
public int TotalAffectedCount = 1;
public string CivEventKey = "";
public string PlainClause = "";
public string RichClause = "";
public string FactLine = "";
public bool WroteActivityRing;
public bool WroteLife;
public bool Merged;
}