123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using CommonLang.Property;
- using CommonAI.Zone.ZoneEditor;
- using CommonAI.Zone.Instance;
- using CommonAI.Zone.Attributes;
- using CommonAI.Zone.EventTrigger;
- namespace CommonAI.Zone.ZoneEditor.EventTrigger
- {
- [DescAttribute("Flag开启(包括空气墙)", "Flag")]
- public class FlagOpenedTrigger : AbstractTrigger
- {
- [DescAttribute("Flag")]
- public FlagValue Flag = new FlagValue.NA();
- public override string ToString()
- {
- return string.Format("当({0})开启时", Flag);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- InstanceFlag flag = Flag.GetValue(api, args);
- if (flag != null)
- {
- //flag.OnFlagEnabled += api.onFlagOpened;
- api.listen_FlagOpened(args, flag);
- }
- }
- }
- [DescAttribute("Flag关闭(包括空气墙)", "Flag")]
- public class FlagClosedTrigger : AbstractTrigger
- {
- [DescAttribute("Flag")]
- public FlagValue Flag = new FlagValue.NA();
- public override string ToString()
- {
- return string.Format("当({0})关闭时", Flag);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- InstanceFlag flag = Flag.GetValue(api, args);
- if (flag != null)
- {
- //flag.OnFlagEnabled += api.onFlagClosed;
- api.listen_FlagClosed(args, flag);
- }
- }
- }
- //-------------------------------------------------------------------------------------------
- #region __区域事件__
- [DescAttribute("单位进入区域", "区域")]
- public class UnitEnterRegion : AbstractTrigger
- {
- [DescAttribute("区域")]
- public FlagValue.EditorRegion Region = new FlagValue.EditorRegion();
- public override string ToString()
- {
- return string.Format("当单位进入({0})", Region);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneRegion region = Region.GetValue(api, args) as ZoneRegion;
- if (region != null)
- {
- api.listen_RegionEntered(args, region);
- }
- }
- }
- [DescAttribute("单位离开区域", "区域")]
- public class UnitLeaveRegion : AbstractTrigger
- {
- [DescAttribute("区域")]
- public FlagValue.EditorRegion Region = new FlagValue.EditorRegion();
- public override string ToString()
- {
- return string.Format("当单位离开({0})", Region);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneRegion region = Region.GetValue(api, args) as ZoneRegion;
- if (region != null)
- {
- api.listen_RegionLeft(args, region);
- }
- }
- }
- [DescAttribute("区域刷新单位结束", "区域 - 刷新点")]
- public class SpawnUnitRegionIsDone : AbstractTrigger
- {
- [DescAttribute("区域")]
- public FlagValue.EditorRegion Region = new FlagValue.EditorRegion();
- public override string ToString()
- {
- return string.Format("当({0})单位刷新结束时", Region);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneRegion region = Region.GetValue(api, args) as ZoneRegion;
- if (region != null)
- {
- api.listen_RegionSpawnOver(args, region);
- }
- }
- }
- [DescAttribute("指定单位进入区域一次", "区域")]
- public class UnitEnterRegionOnce : AbstractTrigger
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- [DescAttribute("区域")]
- public FlagValue.EditorRegion Region = new FlagValue.EditorRegion();
-
- public override string ToString()
- {
- return string.Format("({0})进入({1})一次", Unit, Region);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneRegion region = Region.GetValue(api, args) as ZoneRegion;
- InstanceUnit unit = Unit.GetValue(api, args);
- if (region != null && unit != null)
- {
- args = args.Clone();
- region.ListenUnitEnterOnce(unit, (r, u) =>
- {
- args.TriggingFlag = r;
- args.TriggingUnit = u;
- api.TestAndDoAction(args);
- });
- }
- }
- }
- [DescAttribute("指定单位离开区域一次", "区域")]
- public class UnitLeaveRegionOnce : AbstractTrigger
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- [DescAttribute("区域")]
- public FlagValue.EditorRegion Region = new FlagValue.EditorRegion();
- public override string ToString()
- {
- return string.Format("({0})离开({1})一次", Unit, Region);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneRegion region = Region.GetValue(api, args) as ZoneRegion;
- InstanceUnit unit = Unit.GetValue(api, args);
- if (region != null && unit != null)
- {
- args = args.Clone();
- region.ListenUnitLeaveOnce(unit, (r, u) =>
- {
- args.TriggingFlag = r;
- args.TriggingUnit = u;
- api.TestAndDoAction(args);
- });
- }
- }
- }
- #endregion
- //-------------------------------------------------------------------------------------------
- #region __Area事件__
- [DescAttribute("单位进入Area", "Area")]
- public class UnitEnterArea : AbstractTrigger
- {
- [DescAttribute("Area")]
- public FlagValue.EditorArea Area = new FlagValue.EditorArea();
- public override string ToString()
- {
- return string.Format("当单位进入({0})", Area);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneArea region = Area.GetValue(api, args) as ZoneArea;
- if (region != null)
- {
- api.listen_AreaEntered(args, region);
- }
- }
- }
- [DescAttribute("单位离开Area", "Area")]
- public class UnitLeaveArea : AbstractTrigger
- {
- [DescAttribute("Area")]
- public FlagValue.EditorArea Area = new FlagValue.EditorArea();
- public override string ToString()
- {
- return string.Format("当单位离开({0})", Area);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneArea region = Area.GetValue(api, args) as ZoneArea;
- if (region != null)
- {
- api.listen_AreaLeft(args, region);
- }
- }
- }
- [DescAttribute("指定单位进入Area一次", "区域")]
- public class UnitEnterAreaOnce : AbstractTrigger
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- [DescAttribute("Area")]
- public FlagValue.EditorArea Area = new FlagValue.EditorArea();
- public override string ToString()
- {
- return string.Format("({0})进入({1})一次", Unit, Area);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneArea area = Area.GetValue(api, args) as ZoneArea;
- InstanceUnit unit = Unit.GetValue(api, args);
- if (area != null && unit != null)
- {
- args = args.Clone();
- area.ListenUnitEnterOnce(unit, (r, u) =>
- {
- args.TriggingFlag = r;
- args.TriggingUnit = u;
- api.TestAndDoAction(args);
- });
- }
- }
- }
- [DescAttribute("指定单位离开Area一次", "区域")]
- public class UnitLeaveAreaOnce : AbstractTrigger
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- [DescAttribute("Area")]
- public FlagValue.EditorArea Area = new FlagValue.EditorArea();
- public override string ToString()
- {
- return string.Format("({0})离开({1})一次", Unit, Area);
- }
- public override void Listen(EventTriggerAdapter api, EventArguments args)
- {
- ZoneArea area = Area.GetValue(api, args) as ZoneArea;
- InstanceUnit unit = Unit.GetValue(api, args);
- if (area != null && unit != null)
- {
- args = args.Clone();
- area.ListenUnitLeaveOnce(unit, (r, u) =>
- {
- args.TriggingFlag = r;
- args.TriggingUnit = u;
- api.TestAndDoAction(args);
- });
- }
- }
- }
- #endregion
- //-------------------------------------------------------------------------------------------
- }
|