public bool ApplyFighterEvent(FighterEventType eventtype, object arg1, object arg2 = null, object arg3 = null)
        {
            if (eventtype == FighterEventType.BEFORE_MOVE)
            {
                BeforeMove(arg2 as List <short>);
            }
            if (eventtype == FighterEventType.AFTER_MOVE)
            {
                OnMoved(arg2 as List <short>);
            }
            bool result = false;
            var  buffs  = Buffs.FindAll(x => x.EventType == eventtype && x.Delay == 0);

            foreach (var buff in buffs)
            {
                if (buff.OnEventCalled(arg1, arg2, arg3))
                {
                    result = true;
                }
            }
            var   interactions  = Fight.MarkInteractions.FindAll(x => x.EventType == eventtype);
            short fighterCellid = this.CellId; // a remplacer par simplement FighterCellId si problemes Réseaux

            foreach (var interaction in interactions)
            {
                if (interaction.Mark.Cells.Contains(fighterCellid))
                {
                    interaction.Method.Invoke(interaction.Mark, new object[] { this, arg1, arg2, arg3 });
                }
            }
            return(result);
        }
 public InteractionAttribute(FighterEventType type)
 {
     this.EventType = type;
 }
 public MarkInteraction(MarkTrigger mark, FighterEventType eventtype, MethodInfo method)
 {
     this.Mark      = mark;
     this.EventType = eventtype;
     this.Method    = method;
 }