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
}
///
/// How a happiness relates to camera hold.
/// Hold = onset claim (require live status); Offset = end-ping FixedDwell when status is gone.
///
public enum HappinessStatusOverlapKind
{
None,
Hold,
Offset
}
public enum HappinessRelationRole
{
None,
DeceasedChild,
DeceasedLover,
DeceasedBestFriend,
DeceasedFamily,
Newborn,
Lover,
BestFriend,
GiftPartner,
ConversationPartner,
Robber,
Victim
}
public enum HappinessSourceHook
{
ChangeHappiness,
DeathEvent,
BirthEvent,
Harness,
AggregateSummary
}
/// Authored catalog row for one happiness effect id.
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 float EventStrength = 40f;
public string CanonicalMilestoneKey = "";
public string StatusOverlapId = "";
public HappinessStatusOverlapKind StatusOverlapKind = HappinessStatusOverlapKind.None;
public string[] VariantsWithRelated = Array.Empty();
public string[] VariantsWithoutRelated = Array.Empty();
public bool IsFallback;
}
/// Normalized happiness/emotion occurrence for Activity, Life, and future spectator interest.
public sealed class HappinessOccurrence
{
/// Monotonic id for .
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 HappinessStatusOverlapKind StatusOverlapKind = HappinessStatusOverlapKind.None;
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;
}