public EventEngine(IReader reader, IWriter writer, IEventHolder eventHolder, IEventLogger eventLogger) { this.reader = reader; this.writer = writer; this.eventHolder = eventHolder; this.eventLogger = eventLogger; }
public MessageComposer(IContainer container) { serializer = container.Resolve <ISerializer>(); compression = container.Resolve <ICompression>(); encryption = container.Resolve <IEncryption>(); eventHolder = container.Resolve <IEventHolder>(); }
protected virtual void InitializeEventHolder() { if (m_EventHolder != null) { return; } m_EventHolder = EventHolder.Instance; }
public Notifyer() { m_view = View.Instance; m_eventHolder = EventHolder.Instance; }
/// <summary> /// </summary> /// <param name="message"> /// </param> /// <param name="client"> /// </param> /// <exception cref="NullReferenceException"> /// </exception> protected override void Read(GenericCmdMessage message, IZoneClient client) { switch (message.Action) { case GenericCmdAction.Get: break; case GenericCmdAction.Drop: break; case GenericCmdAction.Use: if (message.Target[0].Type == IdentityType.Inventory) { client.Controller.UseItem(message.Target[0]); // Acknowledge action this.Acknowledge(client.Controller.Character, message); } else { if (Pool.Instance.Contains(message.Target[0])) { // TODO: Call OnUse of the targets controller // Static dynels first IEventHolder temp = null; try { temp = Pool.Instance.GetObject <IEventHolder>( client.Controller.Character.Playfield.Identity, message.Target[0]); } catch (Exception) { } if (temp != null) { var entity = temp as IEntity; if (entity != null) { Event ev = temp.Events.FirstOrDefault(x => x.EventType == EventType.OnUse); if (ev != null) { ev.Perform(client.Controller.Character, entity); this.Acknowledge(client.Controller.Character, message); } else { ev = temp.Events.FirstOrDefault(x => x.EventType == EventType.OnTrade); if (ev != null) { ev.Perform(client.Controller.Character, entity); TemporaryBag tempBag = new TemporaryBag( client.Controller.Character.Identity, new Identity() { Type = IdentityType.TempBag, Instance = Pool.Instance.GetFreeInstance <TemporaryBag>( 0, IdentityType.TempBag) }, client.Controller.Character.Identity, message.Target[0]); client.Controller.Character.ShoppingBag = tempBag; TradeMessageHandler.Default.Send(client.Controller.Character, tempBag); this.Acknowledge(client.Controller.Character, message); } } } } } else { // Use statel (doors, grid terminals etc) #if DEBUG string s = string.Format( "Generic Command received:\r\nAction: {0} ({1}){2}Target: {3} {4}", message.Action, (int)message.Action, Environment.NewLine, message.Target[0].Type, message.Target[0].ToString(true)); ChatTextMessageHandler.Default.Send(client.Controller.Character, s); #endif client.Controller.UseStatel(message.Target[0]); } } break; case GenericCmdAction.UseItemOnItem: IItem item = Pool.Instance.GetObject <IInventoryPage>( new Identity() { Type = (IdentityType)client.Controller.Character.Identity.Instance, Instance = (int)message.Target[0].Type })[message.Target[0].Instance]; client.Controller.Character.Stats[StatIds.secondaryitemtemplate].Value = item.LowID; //client.Controller.Character.Stats[StatIds.secondaryitemtype] if (Pool.Instance.Contains(message.Target[1])) { StaticDynel temp = Pool.Instance.GetObject <StaticDynel>( client.Controller.Character.Playfield.Identity, message.Target[1]); if (temp != null) { Event ev = temp.Events.FirstOrDefault(x => x.EventType == EventType.OnUseItemOn); if (ev != null) { ev.Perform(client.Controller.Character, temp); } } } else { client.Controller.UseStatel(message.Target[1], EventType.OnUseItemOn); } break; } }
public Event1Subscriber(IEventHolder eventHolder) { _EventHolder = eventHolder; }