public static void OnEffectEvent(shared.EffectEventType eEventType, EffectCover cEffectCover) { Logger cLogger = new Logger(); cLogger.WriteDebug3("in [" + eEventType.ToString() + "]"); try { if (null != cEffectCover) { shared.Effect cEffectShared = null; cLogger.WriteDebug4("effect:event:" + eEventType.ToString() + ":lock:before [ec hc:" + cEffectCover.GetHashCode() + " info: " + cEffectCover.sInfo + "]"); lock (_ahEffects) cEffectShared = _ahEffects.FirstOrDefault(row => row.Value == cEffectCover).Key; cLogger.WriteDebug4("effect:event:" + eEventType.ToString() + ":lock:after [ec hc:" + cEffectCover.GetHashCode() + "]"); if (null != cEffectShared) { cLogger.WriteDebug4("effect:event:" + eEventType.ToString() + ":raise:before [ec hc:" + cEffectCover.GetHashCode() + "][shared hc:" + cEffectShared.GetHashCode() + "]"); cEffectShared.OnEffectEventRaised(eEventType); cLogger.WriteDebug4("effect:event:" + eEventType.ToString() + ":raise:after [ec hc:" + cEffectCover.GetHashCode() + "][shared hc:" + cEffectShared.GetHashCode() + "]"); } else throw new Exception("effect:event:" + eEventType.ToString() + ": указанный экземпляр эффекта не зарегистрирован на сервере [ec hc:" + cEffectCover.GetHashCode() + "]"); } else throw new Exception("effect:event:" + eEventType.ToString() + ": экземпляр эффекта не может быть null"); } catch (Exception ex) { cLogger.WriteError(ex); } cLogger.WriteDebug4("return [" + eEventType.ToString() + "]"); }