コード例 #1
0
    public static Task HandleTaskError(BaseAspect aspect, AspectMethodInfo methodInfo, Task task)
    {
        task.ContinueWith((t, state) =>
        {
            HandleTaskError(methodInfo, t, state);
        }, new Tuple <BaseAspect, AspectMethodInfo>(aspect, methodInfo), TaskContinuationOptions.OnlyOnFaulted);

        return(task);
    }
コード例 #2
0
    public static Task HandleTaskExit(BaseAspect aspect, AspectMethodInfo methodInfo, Task task)
    {
        task.ContinueWith((t, state) =>
        {
            var tuple      = state as Tuple <BaseAspect, AspectMethodInfo>;
            var aspectInfo = tuple.Item1;
            var info       = tuple.Item2;
            info.Returns   = t;
            aspectInfo.OnExit(info);
        }, new Tuple <BaseAspect, AspectMethodInfo>(aspect, methodInfo), TaskContinuationOptions.None);

        return(task);
    }
コード例 #3
0
		protected override void OnInvoke(BaseAspect aspect)
		{
			BaseExplodeEffect fx = CreateEffect(aspect);

			if (fx == null)
			{
				return;
			}

			fx.EffectHandler = e =>
			{
				if (e.ProcessIndex != 0)
				{
					return;
				}

				foreach (var t in AcquireTargets<Mobile>(aspect, e.Source.Location, 0))
				{
					OnTargeted(aspect, t);
				}
			};

			fx.Send();
		}
コード例 #4
0
ファイル: TimeWarp.cs プロジェクト: greeduomacro/UO-Forever
		protected override void OnDamage(BaseAspect aspect, Mobile target, ref int damage)
		{
			base.OnDamage(aspect, target, ref damage);

			Effects.SendBoltEffect(target, true, aspect.Hue);
		}
コード例 #5
0
ファイル: TimeWarp.cs プロジェクト: greeduomacro/UO-Forever
		protected override void OnUnlocked(BaseAspect aspect)
		{
			base.OnUnlocked(aspect);

			aspect.Yell("I SEE THE FUTURE. THERE IS NO FUTURE!");
		}
コード例 #6
0
ファイル: TimeWarp.cs プロジェクト: greeduomacro/UO-Forever
		protected override void OnLocked(BaseAspect aspect)
		{
			base.OnLocked(aspect);

			aspect.Yell("TIME... IS RELATIVE!");
		}
コード例 #7
0
ファイル: TimeWarp.cs プロジェクト: greeduomacro/UO-Forever
		protected override BaseExplodeEffect CreateEffect(BaseAspect aspect)
		{
			return new EnergyExplodeEffect(aspect.Location, aspect.Map, Math.Max(5, aspect.RangePerception / 2));
		}
コード例 #8
0
		protected abstract BaseExplodeEffect CreateEffect(BaseAspect aspect);
コード例 #9
0
		protected virtual void OnTargeted(BaseAspect aspect, Mobile target)
		{
			Damage(aspect, target);
		}
コード例 #10
0
		protected abstract BaseWaveEffect CreateEffect(BaseAspect aspect);