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; }