ripple-tool / Ripple-Data / Base / Actors / Topic.cs
Topic.cs
Raw
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);
        }
    }
}