123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using CommonLang.Property;
- using CommonAI.Zone.ZoneEditor.EventTrigger;
- using CommonAI.Zone.Instance;
- using CommonAI.Zone.ZoneEditor;
- using CommonAI.Zone.Attributes;
- using CommonAI.Zone.EventTrigger;
- namespace CommonAI.Zone.ZoneEditor.EventTrigger
- {
- [DescAttribute("单位 - 某个单位")]
- public abstract class UnitValue : AbstractValue<InstanceUnit>
- {
- [DescAttribute("值 - 没有单位", "值")]
- public class NA : UnitValue
- {
- public override string ToString()
- {
- return "没有单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return null;
- }
- }
- [DescAttribute("(废弃)遍历迭代中的 - 单位", "(废弃)")]
- public class PickedUnit : UnitValue
- {
- public override string ToString()
- {
- return "遍历迭代中的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.IteratingUnit;
- }
- }
- [DescAttribute("遍历迭代中的 - 单位", "循环迭代")]
- public class PickingIteratingUnit : UnitValue
- {
- public override string ToString()
- {
- return "遍历迭代中的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.IteratingUnit;
- }
- }
- [DescAttribute("编辑器 - 单位", "编辑器")]
- public class Editor : UnitValue
- {
- [DescAttribute("场景中的名字")]
- [SceneObjectIDAttribute(typeof(UnitData))]
- public string EditorName;
- public override string ToString()
- {
- return "单位:" + EditorName;
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.get_edit_unit(EditorName) as InstanceUnit;
- }
- }
- [DescAttribute("功能 - 触发的单位", "功能")]
- public class Trigging : UnitValue
- {
- public override string ToString()
- {
- return "触发的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.TriggingUnit;
- }
- }
- [DescAttribute("功能 - 最后添加的单位", "功能")]
- public class LastAdded : UnitValue
- {
- public override string ToString()
- {
- return "最后添加的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastAddedUnit;
- }
- }
- [DescAttribute("功能 - 最后激活的单位", "功能")]
- public class LastActivated : UnitValue
- {
- public override string ToString()
- {
- return "最后激活的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastActivatedUnit;
- }
- }
- [DescAttribute("功能 - 最后复活的单位", "功能")]
- public class LastRebirth : UnitValue
- {
- public override string ToString()
- {
- return "最后复活的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastRebirthUnit;
- }
- }
- [DescAttribute("功能 - 最后发动攻击的单位", "功能")]
- public class LastAttack : UnitValue
- {
- public override string ToString()
- {
- return "最后发动攻击的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastAttackUnit;
- }
- }
- [DescAttribute("功能 - 发动攻击的单位", "功能")]
- public class AttackUnit : UnitValue
- {
- public override string ToString()
- {
- return "发动攻击的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.AttackUnit;
- }
- }
- [DescAttribute("功能 - 最后被打的单位", "功能")]
- public class LastHitted : UnitValue
- {
- public override string ToString()
- {
- return "最后被打的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastHittedUnit;
- }
- }
- [DescAttribute("功能 - 最后被杀死的单位", "功能")]
- public class LastKilled : UnitValue
- {
- public override string ToString()
- {
- return "最后被杀死的单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastKilledUnit;
- }
- }
- [DescAttribute("场景 - 随机单位", "场景")]
- public class RandomUnit : UnitValue
- {
- public override string ToString()
- {
- return "随机单位";
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.selectRandomUnit<InstanceUnit>((InstanceUnit unit) =>
- {
- return true;
- });
- }
- }
- [DescAttribute("场景 - 随机阵营单位", "场景")]
- public class RandomForceUnit : UnitValue
- {
- [DescAttribute("阵营")]
- public IntegerValue Force = new IntegerValue.VALUE(0);
- public override string ToString()
- {
- return string.Format("阵营{0}随机单位", Force);
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- int force = Force.GetValue(api, args);
- return api.ZoneAPI.selectRandomUnit<InstanceUnit>((InstanceUnit unit) =>
- {
- return unit.Force == force;
- });
- }
- }
- [DescAttribute("检取物品中的单位", "功能")]
- public class LastPickingItemUnit : UnitValue
- {
- public override string ToString()
- {
- return string.Format("检取物品中的单位");
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastPickingItemUnit;
- }
- }
- [DescAttribute("最后被点选的单位", "功能")]
- public class LastPickableUnit : UnitValue
- {
- public override string ToString()
- {
- return string.Format("最后被点选的单位");
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastPickableUnit;
- }
- }
- [DescAttribute("最后释放的技能的单位", "功能")]
- public class LastLaunchSkillUnit : UnitValue
- {
- public override string ToString()
- {
- return string.Format("最后释放的技能的单位");
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.LastLaunchSkillUnit;
- }
- }
- [DescAttribute("指定名字的单位", "功能")]
- public class NamedUnit : UnitValue
- {
- [DescAttribute("名字")]
- public StringValue Name = new StringValue.VALUE();
- public override string ToString()
- {
- return string.Format("名字为\"{0}\"的单位", Name);
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.getUnitByName(Name.GetValue(api, args));
- }
- }
- [DescAttribute("指定ID的单位", "功能")]
- public class PointTemplateIDUnit : UnitValue
- {
- [DescAttribute("模板ID")]
- public int templateIOd = 0;
- public override string ToString()
- {
- return string.Format("ID为\"{0}\"的单位", templateIOd);
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.getUnitByTemplateID(templateIOd);
- }
- }
- [DescAttribute("绑定的单位", "单位触发器")]
- public class UnitAPI : UnitValue
- {
- public override string ToString()
- {
- return string.Format("单位触发器绑定的单位");
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.UnitAPI;
- }
- }
- [DescAttribute("指定阵营里最重的单位", "功能")]
- public class BossUnit : UnitValue
- {
- [DescAttribute("阵营force")]
- public int force = 0;
- public override string ToString()
- {
- return string.Format("阵营{0}里最重的单位", force);
- }
- public override InstanceUnit GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.getTheWeightOneAtForce(force);
- }
- }
- }
- }
|