forked from Shardstone/trail-into-darkness
added encounter system
This commit is contained in:
56
Packages/com.jovian.encounter-system/Runtime/IEncounter.cs
Normal file
56
Packages/com.jovian.encounter-system/Runtime/IEncounter.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Jovian.EncounterSystem {
|
||||
public interface IEncounter {
|
||||
EncounterDefinition EncounterDefinition { get; set; }
|
||||
EncounterProperties EncounterProperties { get; set; }
|
||||
EncounterVisuals EncounterVisuals { get; set; }
|
||||
EncounterDialogOptionSet EncounterDialogOptionSet { get; set; }
|
||||
IEncounterKind Kind { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>Default concrete encounter. Extend via a new <see cref="IEncounterKind"/>, not by subclassing.</summary>
|
||||
[Serializable]
|
||||
public class Encounter : IEncounter {
|
||||
[field: SerializeField] public EncounterDefinition EncounterDefinition { get; set; }
|
||||
[field: SerializeField] public EncounterProperties EncounterProperties { get; set; }
|
||||
[field: SerializeField] public EncounterVisuals EncounterVisuals { get; set; }
|
||||
[field: SerializeField] public EncounterDialogOptionSet EncounterDialogOptionSet { get; set; }
|
||||
|
||||
[field: SerializeReference, SubclassSelector]
|
||||
public IEncounterKind Kind { get; set; }
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class EncounterDefinition {
|
||||
/// <summary>Stable GUID assigned at creation. Never edit manually.</summary>
|
||||
[HideInInspector]
|
||||
public string internalId = Guid.NewGuid().ToString();
|
||||
|
||||
public string id;
|
||||
public string name;
|
||||
public string description;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class EncounterDialogOption {
|
||||
public DialogLineRef text;
|
||||
|
||||
[SerializeReference, SubclassSelector]
|
||||
public List<IEncounterEvent> events;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class EncounterVisuals {
|
||||
public Sprite icon;
|
||||
public Color encounterColor;
|
||||
public Sprite encounterArt;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class EncounterProperties {
|
||||
public int difficulty;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user