123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using CommonLang.Property;
- using CommonAI.Zone.Attributes;
- using CommonAI.Zone.ZoneEditor;
- using CommonLang.Formula;
- using CommonAI.Zone.Instance;
- using CommonAI.RTS; using CommonLang.Vector;
- using CommonLang;
- using CommonAI.Zone.EventTrigger;
- namespace CommonAI.Zone.ZoneEditor.EventTrigger
- {
- [DescAttribute("字符串")]
- public abstract class StringValue : AbstractValue<string>
- {
- [DescAttribute("空", "值")]
- public class NULL : StringValue
- {
- public NULL() { }
- public override string ToString()
- {
- return "NULL";
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return null;
- }
- }
- [DescAttribute("值", "值")]
- public class VALUE : StringValue
- {
- [LocalizationTextAttribute]
- [DescAttribute("值")]
- public string Value = "";
- public VALUE() { }
- public VALUE(string value) { this.Value = value; }
- public override string ToString()
- {
- return Value + "";
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return Value;
- }
- }
- //---------------------------------------------------------------------------------------------------------------------
- #region __游戏__
- [DescAttribute("场景用户自定义属性", "场景")]
- public class ZoneTextAttribute : StringValue
- {
- [DescAttribute("键值")]
- public string Key;
- public override string ToString()
- {
- return string.Format("场景键值[{0}]", Key);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.GetAttribute(Key) as string;
- }
- }
- [DescAttribute("最后接收到的消息(从服务器)", "场景")]
- public class ZoneLastRecvMessage : StringValue
- {
- public override string ToString()
- {
- return string.Format("最后从服务器接收到的消息");
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- if (api.ZoneAPI.LastRecvMessageR2B != null)
- {
- return api.ZoneAPI.LastRecvMessageR2B.Message;
- }
- return null;
- }
- }
- [DescAttribute("最后发送到的消息(到服务器)", "场景")]
- public class ZoneLastSentMessage : StringValue
- {
- public override string ToString()
- {
- return string.Format("最后发送到服务器的消息");
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- if (api.ZoneAPI.LastSentMessageB2R != null)
- {
- return api.ZoneAPI.LastSentMessageB2R.Message;
- }
- return null;
- }
- }
- [DescAttribute("单位用户自定义属性", "单位")]
- public class UnitTextAttribute : StringValue
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- [DescAttribute("键值")]
- public string Key;
- public override string ToString()
- {
- return string.Format("单位({0})键值[{1}]", Unit, Key);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- InstanceUnit unit = Unit.GetValue(api, args);
- if (unit != null)
- {
- return unit.GetAttribute(Key) as string;
- }
- return null;
- }
- }
- [DescAttribute("单位名字", "单位")]
- public class UnitName : StringValue
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- public override string ToString()
- {
- return string.Format("单位({0})名字", Unit);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- InstanceUnit unit = Unit.GetValue(api, args);
- if (unit != null)
- {
- return unit.Name;
- }
- return null;
- }
- }
- [DescAttribute("物品名字", "物品")]
- public class ItemName : StringValue
- {
- [DescAttribute("物品")]
- public ItemValue Item = new ItemValue.NA();
- public override string ToString()
- {
- return string.Format("物品({0})名字", Item);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- InstanceItem item = Item.GetValue(api, args);
- if (item != null)
- {
- return item.Name;
- }
- return null;
- }
- }
- [DescAttribute("玩家UUID", "单位")]
- public class PlayerUUID : StringValue
- {
- [DescAttribute("玩家单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- public override string ToString()
- {
- return string.Format("玩家单位({0})UUID", Unit);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- var unit = Unit.GetValue(api, args);
- InstancePlayer retUnit = null;
- if (unit is InstancePlayer)
- {
- retUnit = unit as InstancePlayer;
- }
- else if (unit is InstancePet)
- {
- retUnit = (unit as InstancePet).Master as InstancePlayer;
- }
- else if (unit is InstanceSummon)
- {
- retUnit = (unit as InstanceSummon).SummonerUnit as InstancePlayer;
- }
- if (retUnit != null)
- {
- return retUnit.PlayerUUID;
- }
- return null;
- }
- }
- [DescAttribute("单位模板ID", "单位")]
- public class UnitTemplateID : StringValue
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- public override string ToString()
- {
- return string.Format("单位({0})模板ID", Unit);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- InstanceUnit unit = Unit.GetValue(api, args);
- if (unit != null)
- {
- return unit.Info.TemplateID.ToString();
- }
- return null;
- }
- }
- #endregion
- //---------------------------------------------------------------------------------------------------------------------
- #region __转换__
- [DescAttribute("整形转换为字符串", "转换")]
- public class IntegerToString : StringValue
- {
- [DescAttribute("值")]
- public IntegerValue Value = new IntegerValue.VALUE(1);
- public override string ToString()
- {
- return string.Format("({0})转换为字符串", Value);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- int value = Value.GetValue(api, args);
- return value.ToString();
- }
- }
- [DescAttribute("小数转换为字符串", "转换")]
- public class RealToString : StringValue
- {
- [DescAttribute("值")]
- public RealValue Value = new RealValue.VALUE(1);
- public override string ToString()
- {
- return string.Format("({0})转换为字符串", Value);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- float value = Value.GetValue(api, args);
- return value.ToString();
- }
- }
- #endregion
- //---------------------------------------------------------------------------------------------------------------------
- #region __字符串方法__
- [DescAttribute("字符串拼接", "字符串方法")]
- public class StringConcat : StringValue
- {
- [DescAttribute("串0")]
- public StringValue str0 = new StringValue.VALUE();
- [DescAttribute("串1")]
- public StringValue str1 = new StringValue.VALUE();
- [DescAttribute("串2")]
- public StringValue str2 = new StringValue.VALUE();
- [DescAttribute("串3")]
- public StringValue str3 = new StringValue.VALUE();
- public override string ToString()
- {
- return string.Format("{0}{1}{2}{3}", str0, str1, str2, str3);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- string[] array = new string[]
- {
- str0.GetValue(api, args),
- str1.GetValue(api, args),
- str2.GetValue(api, args),
- str3.GetValue(api, args),
- };
- StringBuilder sb = new StringBuilder();
- foreach (string c in array)
- {
- if (c != null)
- sb.Append(c);
- }
- return sb.ToString();
- }
- }
- [DescAttribute("字符串拼接(组)", "字符串方法")]
- public class StringConcatArray : StringValue
- {
- [DescAttribute("串0")]
- [ListAttribute(typeof(StringValue))]
- public List<StringValue> array = new List<StringValue>();
- public override string ToString()
- {
- StringBuilder sb = new StringBuilder();
- foreach (StringValue sv in array)
- {
- sb.Append(sv.ToString());
- }
- return sb.ToString();
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- StringBuilder sb = new StringBuilder();
- foreach (StringValue sv in array)
- {
- string c = sv.GetValue(api, args);
- if (c != null)
- sb.Append(c);
- }
- return sb.ToString();
- }
- }
- [DescAttribute("字符串格式化", "字符串方法")]
- public class StringFormat4 : StringValue
- {
- [DescAttribute("格式化文本(最多4个参数)")]
- [LocalizationTextAttribute]
- public string FormatString = "{0}{1}{2}{3}";
- [DescAttribute("串0")]
- public StringValue str0 = new StringValue.VALUE();
- [DescAttribute("串1")]
- public StringValue str1 = new StringValue.VALUE();
- [DescAttribute("串2")]
- public StringValue str2 = new StringValue.VALUE();
- [DescAttribute("串3")]
- public StringValue str3 = new StringValue.VALUE();
- public override string ToString()
- {
- return string.Format(FormatString, str0, str1, str2, str3);
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return string.Format(FormatString,
- str0.GetValue(api, args),
- str1.GetValue(api, args),
- str2.GetValue(api, args),
- str3.GetValue(api, args));
- }
- }
- [DescAttribute("字符串格式化(组)", "字符串方法")]
- public class StringFormatArray : StringValue
- {
- [DescAttribute("格式化文本")]
- [LocalizationTextAttribute]
- public string FormatString = "{0}";
- [DescAttribute("参数")]
- [ListAttribute(typeof(StringValue))]
- public List<StringValue> array = new List<StringValue>();
- public override string ToString()
- {
- return string.Format(FormatString, array.ToArray());
- }
- public override string GetValue(IEditorValueAdapter api, EventArguments args)
- {
- object[] param = new object[array.Count];
- for (int i = 0; i < param.Length;i++ )
- {
- string c = array[i].GetValue(api, args);
- param[i] = c;
- }
- return string.Format(FormatString, param);
- }
- }
- #endregion
- //---------------------------------------------------------------------------------------------------------------------
- }
- }
|