127 lines
3.7 KiB
C#
127 lines
3.7 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
|
|
}
|
|
|
|
/// <summary>
|
|
/// How a happiness <see cref="HappinessCatalogEntry.StatusOverlapId"/> relates to camera hold.
|
|
/// Hold = onset claim (require live status); Offset = end-ping FixedDwell when status is gone.
|
|
/// </summary>
|
|
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
|
|
}
|
|
|
|
/// <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 float EventStrength = 40f;
|
|
public string CanonicalMilestoneKey = "";
|
|
public string StatusOverlapId = "";
|
|
public HappinessStatusOverlapKind StatusOverlapKind = HappinessStatusOverlapKind.None;
|
|
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 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;
|
|
}
|