public override bool OnBeforeDeath() { Item item = null; switch (Utility.Random(8)) { case 0: item = new SpecialLeggings(); item.Name = "Azothu's Leggings"; break; // Leggings case 1: item = new SpecialArms(); item.Name = "Azothu's Arms"; break; // arms case 2: item = new SpecialTunic(); item.Name = "Azothu's Tunic"; break; // Chest case 3: item = new SpecialArmor(); item.Name = "Azothu's Armor"; break; // Female Chest case 4: item = new SpecialGorget(); item.Name = "Azothu's Gorget"; break; // gorget case 5: item = new SpecialGloves(); item.Name = "Azothu's Gloves"; break; // gloves case 6: item = new SpecialHelm(); item.Name = "Azothu's Helm"; break; // helm case 7: item = new MetalChest(); item.Name = "Azothu's Locker"; break; // helm } if (item != null) { item.Hue = 0x84A; PackItem(item); } return(base.OnBeforeDeath()); }
private int LastActiveZoneID = 1; //lets be door, actually this doesnt matter public async void ParadoxSecurity() { string ComPort = "/dev/ttyAMA0"; int baudrate = 9600; _serialPort = new SerialPort(ComPort, baudrate); try { _serialPort.Open(); } catch (IOException ex) { Console.WriteLine($"{ex}"); } byte[] DataStream = new byte[4]; byte index = 0; while (true) { await Task.Delay(TimeSpan.FromMilliseconds(1)); //check statuses every millisecond //Spectra message output is always 4 bytes try { if (_serialPort.BytesToRead < 4) { index = 0; while (index < 4) { DataStream[index++] = (byte)_serialPort.ReadByte(); } } } catch (Exception e) { Console.WriteLine($"Timeout {e}"); } int EventId = DataStream[0] >> 2; int CategoryId = ((DataStream[0] & 3) << 4) + (DataStream[1] >> 4); string Event = events.Where(x => x.EventId == EventId).Select(x => x.EventName).DefaultIfEmpty($"Event_{EventId}").First(); int EventCategory = events.Where(x => x.EventId == EventId).Select(x => x.EventCategory).DefaultIfEmpty(EventId).First(); string Message = CategoryId.ToString(); bool isZoneEvent = EventCategory == Category.ZONE; bool isStatus = EventCategory == Category.STATUS; bool isTrouble = EventCategory == Category.TROUBLE; bool isAccessCode = EventCategory == Category.ACCESS_CODE; bool isSpecialAlarm = EventCategory == Category.SPECIAL_ALARM; bool isSpecialArm = EventCategory == Category.SPECIAL_ARM; bool isSpecialDisarm = EventCategory == Category.SPECIAL_DISARM; bool isNonReportEvents = EventCategory == Category.NON_REPORT_EVENTS; bool isSpecialReport = EventCategory == Category.SPECIAL_REPORT; bool isRemoteControl = EventCategory == Category.REMOTE_CONTROL; if (isZoneEvent) { bool IsZoneOpen = false; if (EventId == 1) { IsZoneOpen = true; } //update existing list with the IR statuses and activating/closing time Zones.Where(x => x.ZoneId == CategoryId).Select(x => { x.IsZoneOpen = IsZoneOpen; x.IsHomeSecured = TelemetryDataClass.isHomeSecured; x.ZoneEventTime = METHOD.DateTimeTZ().DateTime; return(x); }).ToList(); LastActiveZoneID = CategoryId; //last active zone ID used to check if anybody is home Message = Zones.Where(x => x.ZoneId == CategoryId).Select(x => $"{x.ZoneName}").DefaultIfEmpty($"Zone_{CategoryId}").First(); } if (isStatus) { Message = PartitionStatuses.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"Status_{CategoryId}").First(); } if (isTrouble) { Message = SystemTroubles.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"Trouble_{CategoryId}").First(); } if (isSpecialAlarm) { Message = SpecialAlarms.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"SpecialAlarm_{CategoryId}").First(); } if (isSpecialArm) { Message = SpecialArms.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"SpecialArm_{CategoryId}").First(); } if (isSpecialDisarm) { Message = SpecialDisarms.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"SpecialDisarm_{CategoryId}").First(); } if (isNonReportEvents) { Message = NonReportableEvents.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"NonReportEvent_{CategoryId}").First(); } if (isSpecialReport) { Message = SpecialReportings.Where(x => x.CategoryId == CategoryId).Select(x => x.Name).DefaultIfEmpty($"SpecialReporting_{CategoryId}").First(); } if (isRemoteControl) { Message = $"Remote_{CategoryId}"; } if (isAccessCode) { Message = GetAccessCode(CategoryId); } if (!(isStatus && (CategoryId == 0 || CategoryId == 1)) && !(EventId == 0 || EventId == 1)) //not show System Ready/Not ready messages and zone open/close messages. { //Console.WriteLine($"{METHOD.DateTimeTZ():HH:mm:ss,ff} {Event}, {Message}"); } } }
public override void GenerateLoot() { if (Core.UOAI || Core.UOAR) { Item item = null; switch (Utility.Random(8)) { case 0: item = new SpecialLeggings(); item.Name = "Azothu's Leggings"; break; // Leggings case 1: item = new SpecialArms(); item.Name = "Azothu's Arms"; break; // arms case 2: item = new SpecialTunic(); item.Name = "Azothu's Tunic"; break; // Chest case 3: item = new SpecialArmor(); item.Name = "Azothu's Armor"; break; // Female Chest case 4: item = new SpecialGorget(); item.Name = "Azothu's Gorget"; break; // gorget case 5: item = new SpecialGloves(); item.Name = "Azothu's Gloves"; break; // gloves case 6: item = new SpecialHelm(); item.Name = "Azothu's Helm"; break; // helm case 7: item = new MetalChest(); item.Name = "Azothu's Locker"; break; // helm } if (item != null) { item.Hue = 0x84A; PackItem(item); } } else { if (Core.UOSP || Core.UOMO) { // ai special if (Spawning) { PackGold(0); } else { } } else { // Standard RunUO // ai special } } }