Beispiel #1
0
        public override void Trigger(Fighter source, MarkTriggerTypeEnum type, object token)
        {
            SpellLevelRecord triggerLevel = TriggerSpell.GetLevel(SpellLevel.Grade);

            this.Fight.RemoveMark(source, this);
            SpellEffectsManager.Instance.HandleEffects(Source, triggerLevel, CenterPoint, false);
        }
Beispiel #2
0
        public override bool Apply(Fighter[] targets)
        {
            MarkTriggerTypeEnum type = GetTriggerType();
            Zone  zone  = new Zone(Effect.ShapeType, Effect.Radius);
            Color color = Color.FromArgb(Effect.Value);
            Glyph glyph = new Glyph(Fight.PopNextMarkId(), Source, SpellLevel, Effect, CastPoint, zone, color, type);

            Fight.AddMark(glyph);
            return(true);
        }
Beispiel #3
0
        public override void Trigger(Fighter source, MarkTriggerTypeEnum type, object token)
        {
            bool seq = Fight.SequencesManager.StartSequence(SequenceTypeEnum.SEQUENCE_SPELL);

            SpellEffectsManager.Instance.HandleEffects(Source, SpellLevel, source.Point, false);

            if (seq)
            {
                Fight.SequencesManager.EndSequence(SequenceTypeEnum.SEQUENCE_SPELL);
            }
        }
 public AuraGlyph(short id,
                  Fighter source,
                  SpellLevelRecord spellLevel,
                  EffectInstance effect,
                  MapPoint centerPoint,
                  Zone zone,
                  Color color,
                  MarkTriggerTypeEnum triggerType)
     : base(id, source, spellLevel, effect, centerPoint, zone, color, triggerType)
 {
     this.Duration = (short)effect.Duration;
 }
Beispiel #5
0
        public override void Trigger(Fighter source, MarkTriggerTypeEnum type, object token)
        {
            bool             seq          = Fight.SequencesManager.StartSequence(SequenceTypeEnum.SEQUENCE_SPELL);
            SpellLevelRecord triggerLevel = TriggerSpell.GetLevel((sbyte)BaseEffect.DiceMax);
            var effects = new List <EffectInstance>(triggerLevel.Effects);

            effects.Reverse();
            SpellEffectsManager.Instance.HandleEffects(Source, effects.ToArray(), triggerLevel, source.Point, TriggerRawZone, false);

            if (seq)
            {
                Fight.SequencesManager.EndSequence(SequenceTypeEnum.SEQUENCE_SPELL);
            }
        }
Beispiel #6
0
 protected Mark(short id, Fighter source, SpellLevelRecord spellLevel, EffectInstance effect, MapPoint centerPoint, Zone zone,
                Color color, MarkTriggerTypeEnum triggerType)
 {
     this.Id           = id;
     this.Source       = source;
     this.SpellLevel   = spellLevel;
     this.BaseEffect   = effect;
     this.CenterPoint  = centerPoint;
     this.Zone         = zone;
     this.Color        = color;
     this.TriggerSpell = SpellRecord.GetSpellRecord(effect.DiceMin);
     this.BuildShapes();
     this.TriggerType = triggerType;
     this.Active      = true;
 }
Beispiel #7
0
        public override void Trigger(Fighter source, MarkTriggerTypeEnum type, object token = null)
        {
            if (Active)
            {
                if (this.Source.Team.GetActivePortalCount() >= 2)
                {
                    Tuple <Portal, Portal> pair = PortalProvider.Instance.GetPortalsTuple(Fight, source.CellId);

                    if (Fight.IsCellFree(pair.Item2.CenterPoint.CellId))
                    {
                        source.Teleport(Source, pair.Item2.CenterPoint);
                    }
                }
            }
        }
Beispiel #8
0
 public override void Trigger(Fighter source, MarkTriggerTypeEnum type, object token)
 {
 }
Beispiel #9
0
 public abstract void Trigger(Fighter source, MarkTriggerTypeEnum type, object token = null);