using CommonAI.RTS; using CommonLang.Vector;
using CommonAI.Zone.EventTrigger;
using CommonAI.Zone.Instance;
using CommonLang.Property;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CommonAI.Zone.ZoneEditor.EventTrigger
{

    [DescAttribute("设置字符串型", "临时变量")]
    public class LocalVarString : LocalVar
    {
        [DescAttribute("变量值")]
        public StringValue Value = new StringValue.VALUE("text");
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 字符串型 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }

    [DescAttribute("设置整数型", "临时变量")]
    public class LocalVarInteger : LocalVar
    {
        [DescAttribute("变量值")]
        public IntegerValue Value = new IntegerValue.VALUE();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 整数型 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


    [DescAttribute("设置小数型", "临时变量")]
    public class LocalVarReal : LocalVar
    {
        [DescAttribute("变量值")]
        public RealValue Value = new RealValue.VALUE();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 小数型 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


    [DescAttribute("设置布尔型", "临时变量")]
    public class LocalVarBool : LocalVar
    {
        [DescAttribute("变量值")]
        public BooleanValue Value = new BooleanValue.VALUE();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 布尔型 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


    [DescAttribute("设置单位", "临时变量")]
    public class LocalVarUnit : LocalVar
    {
        [DescAttribute("变量值")]
        public UnitValue Value = new UnitValue.NA();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 单位 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


    [DescAttribute("设置Flag", "临时变量")]
    public class LocalVarFlag : LocalVar
    {
        [DescAttribute("变量值")]
        public FlagValue Value = new FlagValue.NA();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as Flag = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


    [DescAttribute("设置物品", "临时变量")]
    public class LocalVarItem : LocalVar
    {
        [DescAttribute("变量值")]
        public ItemValue Value = new ItemValue.NA();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 物品 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


    [DescAttribute("设置位置坐标", "临时变量")]
    public class LocalVarPosition : LocalVar
    {
        [DescAttribute("变量值")]
        public PositionValue Value = new PositionValue.VALUE();
        public override string ToString()
        {
            return string.Format("临时变量:[{0}] as 坐标 = {1}", Key, Value);
        }
        public override object GetValue(IEditorValueAdapter api, EventArguments args)
        {
            return Value.GetValue(api, args);
        }
        public override object GetAbstractValue()
        {
            return Value;
        }
    }


}