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); }
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); }
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; }
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); } }
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; }
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); } } } }
public override void Trigger(Fighter source, MarkTriggerTypeEnum type, object token) { }
public abstract void Trigger(Fighter source, MarkTriggerTypeEnum type, object token = null);