예제 #1
0
        public override bool Apply(Fighter[] targets)
        {
            Zone  zone  = new Zone(Effect.ShapeType, Effect.Radius);
            Color color = Color.FromArgb(Effect.Value);
            Trap  trap  = new Trap(Fight.PopNextMarkId(), Source, SpellLevel, Effect, CastPoint, zone, color);

            Fight.AddMark(trap);
            return(true);
        }
예제 #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);
        }
예제 #3
0
        public override bool Apply(Fighter[] targets)
        {
            if (Fight.GetMarks <Rune>(x => x.CenterPoint.CellId == CastPoint.CellId).Count() > 0)
            {
                return(false);
            }

            Zone  zone  = new Zone(Effect.ShapeType, Effect.Radius);
            Color color = Color.FromArgb(Effect.Value);
            Rune  rune  = new Rune(Fight.PopNextMarkId(), Source, SpellLevel, Effect, CastPoint, zone, color);

            Fight.AddMark(rune);
            return(true);
        }
예제 #4
0
        public override bool Apply(Fighter[] targets)
        {
            if (!Source.Team.CanSpawnPortal())
            {
                Source.Team.RemoveFirstPortal(Source);
            }
            Zone   zone   = new Zone(Effect.ShapeType, Effect.Radius);
            Color  color  = GetColorByTeam(Source.Team);
            Portal portal = new Portal(Fight.PopNextMarkId(), Source, SpellLevel, Effect, CastPoint, zone, color);

            Fight.AddMark(portal);

            //if (Source.Team.GetAllPortals().Length <= 2)
            //{
            //    ContextHandler.SendGameActionFightActivateGlyphTrapMessage(Fight.Clients, 1, 1181, Caster, Caster.Fight.GetAllPortalsByTeam(Caster.Team).Count > 1);
            //}
            return(true);
        }