using MoonSharp.Interpreter; using Ripple_Data.Base.Actions.Base; using Ripple_Data.Control; using Ripple_Data.Control.Commands; using Ripple_Data.Quests; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Ripple_Data.Base.Actors { [Serializable] [MoonSharpUserData] public class Topic : Ripple, ISocial, IIdentifyable { public new int ID { get; private set; } public new IIdentifyable Self { get; private set; } public new List<GameRule> Rules { get; private set; } public new List<Condition> Conditions { get; private set; } public Topic() { Self = this; this.ID = 0; Rules = new List<GameRule>(); Conditions = new List<Condition>(); } public Topic(string Name, int ID, List<Condition> conditions, List<GameRule> rules, string? Description = null) : base(Name, Description) { Self = this; this.ID = ID; Rules = rules; Conditions = conditions; GetInstance(this).Objects.Add(this); } public new void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("Name", Name); info.AddValue("Description", Description); info.AddValue("ID", ID); info.AddValue("Rules", Rules); info.AddValue("Conditions", Conditions); } } }