Beispiel #1
0
        public async Task <bool> SetWearLocation(WearLocation Location)
        {
            Byte[] buffer = new Byte[] { MiBand.CP_SET_WEAR_LOCATION, (byte)Location };
            bool   ret    = await writeToCharacteristic(MiBand.UUID_CHAR_CONTROL_POINT, buffer.AsBuffer());

            if (ret)
            {
                SettingSet("WearLocation", (int)Location);
            }
            return(ret);
        }
Beispiel #2
0
 public MiBand3()
 {
     Identity      = new Identity();
     Battery       = new Battery();
     Device        = new Device();
     Display       = new Display();
     Activity      = new Activity();
     HeartRate     = new HeartRate();
     WearLocation  = new WearLocation();
     Notifications = new Notification();
 }
Beispiel #3
0
        public async Task SetWearLocationAsync(WearLocation location)
        {
            CheckBandConnection();

            byte[] data = { MiBandCommand.SetWearLocation[0], (byte)location };

            var mainService = await device.GetServiceAsync(MiBandService.MainService);

            var controlChar = await mainService.GetCharacteristicAsync(MiBandCharacteristic.ControlPoint);

            await controlChar.WriteAsync(data);
        }
Beispiel #4
0
        private async void setLocation_Click(object sender, RoutedEventArgs e)
        {
            if (MiBand.Ready)
            {
                object       tag      = ((MenuFlyoutItem)sender).Tag;
                WearLocation location = (WearLocation)Int32.Parse((string)tag);
                bool         ret      = await band.SetWearLocation(location);

                if (ret)
                {
                    properties.WearLocation = location;
                }
                else
                {
                    var           loader = new Windows.ApplicationModel.Resources.ResourceLoader();
                    MessageDialog dialog = new MessageDialog(loader.GetString("SetWearLocationError"), loader.GetString("ErrorTitle"));
                    await dialog.ShowAsync();
                }
            }
        }
Beispiel #5
0
 public virtual Item Get(WearLocation location)
 {
     return(Stuff.ContainsKey(location) ? Stuff[location] : null);
 }
Beispiel #6
0
 public virtual bool Have(WearLocation location)
 {
     return(Stuff.ContainsKey(location));
 }
Beispiel #7
0
        /// <summary>
        /// Looks at a given object
        /// </summary>
        /// <param name="oUser"></param>
        /// <param name="location"></param>
        /// <param name="obj"></param>
        private void LookObject(Character oUser, Entity location, string obj)
        {
            if (!oUser.canSee(null))
            {
                CommandManager.instance.report(MessageScope.CHAR, "#look_dark#", oUser);
                return;
            }

            // Find the target somewhere
            int validLocs =
                (int)EntityLocationType.LOC_ROOM |
                (int)EntityLocationType.LOC_INVENTORY |
                (int)EntityLocationType.LOC_EQUIPMENT |
                (int)EntityLocationType.LOC_CONTAINER |
                (int)EntityLocationType.LOC_SHOP |
                (int)EntityLocationType.LOC_NPC_INVENTORY |
                (int)EntityLocationType.LOC_NPC_EQUIPMENT |
                (int)EntityLocationType.LOC_RECIPES;
            TargetResult result = TargetLocation.findTargetEntity(oUser, obj, validLocs);

            if (null == result._foundEntity)
            {
                CommandManager.instance.report(MessageScope.CHAR, "#nothing_here#", oUser);
                return;
            }
            Entity entity = result._foundEntity;

            if (entity == oUser)
            {
                CommandManager.instance.report(MessageScope.CHAR, "#cant_do_that#", oUser);
                return;
            }

            #region Looking at a Player/Mob
            if (entity.Is(EntityType.BIOTA))
            {
                if (entity.Is(EntityType.PLAYER))
                {
                    CommandManager.instance.report(MessageScope.CHAR, "#looks_at_you#", oUser, entity);
                }

                Biota         biote = null;
                StringBuilder sb    = new StringBuilder();
                if (entity.Is(EntityType.PLAYER))
                {
                    Character user = entity as Character;
                    sb.Append("#you_look_at#");
                    sb.Append(Environment.NewLine);
                    sb.Append(user.description);
                    sb.Append(Environment.NewLine);
                    biote = user;
                }
                else
                {
                    MobInstance mob = entity as MobInstance;
                    sb.Append("#you_look_at#");
                    sb.Append(Environment.NewLine);
                    sb.Append(mob.description);
                    sb.Append(Environment.NewLine);
                    biote = (MobInstance)entity;
                }

                if (biote.isNaked)
                {
                    sb.Append(Environment.NewLine);
                    sb.Append(" #nothing#");
                    CommandManager.instance.report(MessageScope.CHAR, sb.ToString(), oUser, biote);
                }
                else
                {
                    IEnumerable equipment = biote.getEquipment();
                    foreach (DictionaryEntry entry in equipment)
                    {
                        ItemInstance instance = (ItemInstance)entry.Value;
                        WearLocation loc      = instance.getWearLocation(1);

                        sb.Append(Environment.NewLine);
                        sb.AppendFormat(" {0}", loc.longName.PadRight(30, '.'));

                        if (oUser.HasFlag("Admin") || oUser.HasFlag("Builder") || oUser.HasFlag("Wizard"))
                        {
                            sb.Append(Server.Client.MXP_TAG("Item"));
                            sb.Append(instance.Name);
                            sb.Append(Server.Client.MXP_TAG("/Item"));
                            sb.Append(Server.Client.MXP_TAG("Id"));
                            sb.Append(" (#");
                            sb.Append(Server.Client.MXP_TAG("WizItem '" + instance.ID + "'"));
                            sb.Append(instance.ID);
                            sb.Append(instance.GetFlags());
                            sb.Append(Server.Client.MXP_TAG("/WizItem"));
                            sb.Append(")");
                            sb.Append(Server.Client.MXP_TAG("/Id"));
                        }
                        else
                        {
                            sb.Append(Server.Client.MXP_TAG("Item"));
                            sb.Append(instance.Name);
                            sb.Append(Server.Client.MXP_TAG("/Item"));
                        }
                    }

                    CommandManager.instance.report(MessageScope.CHAR, sb.ToString(), oUser, biote);
                }
            }
            #endregion

            #region Looking at an Item
            else if (entity.Is(EntityType.ITEM))
            {
                StringBuilder sb = new StringBuilder();
                if (result._foundEntityLocationType == EntityLocationType.LOC_NPC_INVENTORY ||
                    result._foundEntityLocationType == EntityLocationType.LOC_NPC_EQUIPMENT)
                {
                    // Item is on a NPC's Inventory/Equipment
                    ItemInstance instance = entity as ItemInstance;
                    MobInstance  mob      = result._foundEntityLocation as MobInstance;

                    sb.Append("#look_npc_item_self#");
                    sb.Append(Environment.NewLine);
                    sb.Append(this.LookItem(oUser, instance));
                    sb.Append(Environment.NewLine);

                    CommandManager.instance.report(MessageScope.CHAR, sb.ToString(), oUser, mob, instance);
                    CommandManager.instance.report(MessageScope.ROOM_LIMITED, "#look_npc_item_other#", oUser, mob, instance);
                }
                else if (result._foundEntityLocationType == EntityLocationType.LOC_SHOP)
                {
                    // Item is in a Shop
                    ShopkeeperMobInstance mob = result._foundEntityLocation as ShopkeeperMobInstance;

                    sb.Append("#look_item_shop#");
                    sb.Append(Environment.NewLine);
                    // @TODO: Finish looking at items in shops
                }

                else if (result._foundEntityLocationType == EntityLocationType.LOC_RECIPES)
                {
                    // Item is memorized as a recipe
                    FormulaItemTemplate formula = result._foundEntity as FormulaItemTemplate;

                    string msg = "#look_item_formula#";

                    ItemTemplate product = EntityManager.instance.getTemplateByID(formula.product) as ItemTemplate;
                    msg += Environment.NewLine + "  Product: " + product.Name;
                    if (oUser.HasFlag("Admin") || oUser.HasFlag("Builder") || oUser.HasFlag("Wizard"))
                    {
                        msg += Server.Client.MXP_TAG("Id") + " (#" + Server.Client.MXP_TAG("WizItem '" + product.ID + "'");
                        msg += product.ID + product.GetFlags() + Server.Client.MXP_TAG("/WizItem") + ")" + Server.Client.MXP_TAG("/Id");
                    }

                    msg += Environment.NewLine + "  Skill: " + formula.skill.Name + " (" + formula.skillValue + ")";
                    if (oUser.HasFlag("Admin") || oUser.HasFlag("Builder") || oUser.HasFlag("Wizard"))
                    {
                        msg += Server.Client.MXP_TAG("Id") + " (#" + formula.skill.ID + ")" + Server.Client.MXP_TAG("/Id");
                    }

                    ItemTemplate machine = EntityManager.instance.getTemplateByID(formula.machine) as ItemTemplate;
                    msg += Environment.NewLine + "  Machine: " + EntityManager.instance.getTemplateByID(formula.machine).Name;
                    if (oUser.HasFlag("Admin") || oUser.HasFlag("Builder") || oUser.HasFlag("Wizard"))
                    {
                        msg += Server.Client.MXP_TAG("Id") + " (#" + Server.Client.MXP_TAG("WizItem '" + machine.ID + "'");
                        msg += machine.ID + machine.GetFlags() + Server.Client.MXP_TAG("/WizItem") + ")" + Server.Client.MXP_TAG("/Id");
                    }

                    ItemTemplate tool = EntityManager.instance.getTemplateByID(formula.tool) as ItemTemplate;
                    msg += Environment.NewLine + "  Tool: " + EntityManager.instance.getTemplateByID(formula.tool).Name;
                    if (oUser.HasFlag("Admin") || oUser.HasFlag("Builder") || oUser.HasFlag("Wizard"))
                    {
                        msg += Server.Client.MXP_TAG("Id") + " (#" + Server.Client.MXP_TAG("WizItem '" + tool.ID + "'");
                        msg += tool.ID + tool.GetFlags() + Server.Client.MXP_TAG("/WizItem") + ")" + Server.Client.MXP_TAG("/Id");
                    }

                    msg += Environment.NewLine + "  Resources:";
                    foreach (int resourceId in formula.resourceKeys)
                    {
                        ResourceItemTemplate resource = EntityManager.instance.getTemplateByID(resourceId) as ResourceItemTemplate;
                        msg += Environment.NewLine + "   " + resource.Name + " (x" + formula.getResource(resourceId) + ")";
                        if (oUser.HasFlag("Admin") || oUser.HasFlag("Builder") || oUser.HasFlag("Wizard"))
                        {
                            msg += Server.Client.MXP_TAG("Id") + " (#" + Server.Client.MXP_TAG("WizItem '" + resource.ID + "'");
                            msg += resource.ID + resource.GetFlags() + Server.Client.MXP_TAG("/WizItem") + ")" + Server.Client.MXP_TAG("/Id");
                        }
                    }

                    CommandManager.instance.report(MessageScope.CHAR, msg, oUser, null, formula);
                }

                else
                {
                    ItemInstance instance = entity as ItemInstance;
                    sb.Append("#look_item_self#");
                    sb.Append(Environment.NewLine);
                    sb.Append(this.LookItem(oUser, instance));
                    sb.Append(Environment.NewLine);

                    CommandManager.instance.report(MessageScope.CHAR, sb.ToString(), oUser, null, instance);
                    CommandManager.instance.report(MessageScope.ROOM_LIMITED, "#look_item_other#", oUser, null, instance);
                }
            }
            #endregion

            else
            {
                this.LogError("LookObject", "User[" + oUser.ID + "], Object[" + entity.ID + "] had no known type.");
            }
        }
Beispiel #8
0
 public static string Format(WearLocation location)
 {
     return(string.Format("<{0} {1}>", Strings[location].Prefix, Strings[location].Name));
 }