using CommonAI.RTS; using CommonLang.Vector; using CommonAI.Zone.Attributes; using CommonAI.Zone.Instance; using CommonLang.Property; using System; using System.Collections.Generic; using System.Linq; using System.Text; using CommonAI.Zone.EventTrigger; namespace CommonAI.Zone.ZoneEditor.EventTrigger { [DescAttribute("", "设置 - 临时变量")] public abstract class SetLocalVar : AbstractAction { abstract public AbstractValue TValue { get; } abstract public string TKey { get; } public override string ToString() { return string.Format("设置临时变量\"{0}\"={1}", TKey, TValue); } override public void DoAction(EventTriggerAdapter api, EventArguments args) { T value = TValue.GetValue(api, args); api.SetLocalVar(TKey, value); } } [DescAttribute("设置字符串型", "设置 - 临时变量")] public class SetLocalString : SetLocalVar { [LocalVarIDAttribute(typeof(StringValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public StringValue Value = new StringValue.VALUE("text"); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置整数型", "设置 - 临时变量")] public class SetLocalInteger : SetLocalVar { [LocalVarIDAttribute(typeof(IntegerValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public IntegerValue Value = new IntegerValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置小数型", "设置 - 临时变量")] public class SetLocalReal : SetLocalVar { [LocalVarIDAttribute(typeof(RealValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public RealValue Value = new RealValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置布尔型", "设置 - 临时变量")] public class SetLocalBool : SetLocalVar { [LocalVarIDAttribute(typeof(BooleanValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public BooleanValue Value = new BooleanValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置单位", "设置 - 临时变量")] public class SetLocalUnit : SetLocalVar { [LocalVarIDAttribute(typeof(UnitValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public UnitValue Value = new UnitValue.NA(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置Flag", "设置 - 临时变量")] public class SetLocalFlag : SetLocalVar { [LocalVarIDAttribute(typeof(FlagValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public FlagValue Value = new FlagValue.NA(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置物品", "设置 - 临时变量")] public class SetLocalItem : SetLocalVar { [LocalVarIDAttribute(typeof(ItemValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public ItemValue Value = new ItemValue.NA(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } [DescAttribute("设置位置坐标", "设置 - 临时变量")] public class SetLocalPosition : SetLocalVar { [LocalVarIDAttribute(typeof(PositionValue))] [DescAttribute("变量名")] public string Key = "VarName"; [DescAttribute("变量值")] public PositionValue Value = new PositionValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public string TKey { get { return Key; } } } //--------------------------------------------------------------------------------------------------- [DescAttribute("", "设置 - 临时变量(变量)")] public abstract class SetLocalVarSV : AbstractAction { abstract public AbstractValue TValue { get; } abstract public StringValue TKey { get; } public override string ToString() { return string.Format("设置临时变量\"{0}\"={1}", TKey, TValue); } override public void DoAction(EventTriggerAdapter api, EventArguments args) { T value = TValue.GetValue(api, args); string key = TKey.GetValue(api, args); api.SetLocalVar(key, value); } } [DescAttribute("设置字符串型(变量)", "设置 - 临时变量")] public class SetLocalStringSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public StringValue Value = new StringValue.VALUE("text"); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置整数型(变量)", "设置 - 临时变量")] public class SetLocalIntegerSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public IntegerValue Value = new IntegerValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置小数型(变量)", "设置 - 临时变量")] public class SetLocalRealSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public RealValue Value = new RealValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置布尔型(变量)", "设置 - 临时变量")] public class SetLocalBoolSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public BooleanValue Value = new BooleanValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置单位(变量)", "设置 - 临时变量")] public class SetLocalUnitSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public UnitValue Value = new UnitValue.NA(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置Flag(变量)", "设置 - 临时变量")] public class SetLocalFlagSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public FlagValue Value = new FlagValue.NA(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置物品(变量)", "设置 - 临时变量")] public class SetLocalItemSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public ItemValue Value = new ItemValue.NA(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } [DescAttribute("设置位置坐标(变量)", "设置 - 临时变量")] public class SetLocalPositionSV : SetLocalVarSV { [DescAttribute("变量名")] public StringValue Key = new StringValue.VALUE("VarName"); [DescAttribute("变量值")] public PositionValue Value = new PositionValue.VALUE(); override public AbstractValue TValue { get { return Value; } } override public StringValue TKey { get { return Key; } } } }