예제 #1
0
        internal IdAllocationForm()
        {
            InitializeComponent();
            m_IdMan = CadastralMapModel.Current.IdManager;
            m_IsChange = false;

            // This dialog shouldn't have been created if there's no ID manager
            if (m_IdMan == null)
                throw new InvalidOperationException();
        }
예제 #2
0
        private void MoveNextTo([NotNull] DragMovePipeline pipeline)
        {
            Debug.ArgumentNotNull(pipeline, nameof(pipeline));

            int sortOrder;
            int sortOrderDelta;

            ItemTreeViewItem parent;
            ItemTreeViewItem anchor;

            SortOrderHelper.GetSortOrder(pipeline.Target, pipeline.Position, pipeline.Items.Count(), out sortOrder, out sortOrderDelta, out parent, out anchor);
            if (parent == null)
            {
                AppHost.MessageBox(Resources.MoveItems_MoveNextTo_Parent_is_not_an_item, Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);
                pipeline.Abort();
                return;
            }

            pipeline.Owner  = parent;
            pipeline.Anchor = anchor;

            var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Appearance/Appearance/__Sortorder");

            foreach (var item in pipeline.Items)
            {
                if (!Move(item.ItemUri, parent.ItemUri))
                {
                    AppHost.MessageBox(string.Format(Resources.MoveItems_MoveNextTo_Failed_to_move___0_, item.Name), Resources.Error, MessageBoxButton.OK, MessageBoxImage.Error);
                    break;
                }

                ItemModifier.Edit(item.ItemUri, fieldId, sortOrder.ToString());

                var itemTreeViewItem = item as ItemTreeViewItem;
                if (itemTreeViewItem != null)
                {
                    itemTreeViewItem.Item.SortOrder = sortOrder;
                }

                sortOrder += sortOrderDelta;

                pipeline.MovedItems.Add(item);
            }
        }
예제 #3
0
        private void UnEquipItemHandler(List <object> objects)
        {
            var equipmentSlot = (EquipmentSlot)(byte)objects[1];

            InventoryPage targetPage;

            if (!IdManager.TryGet((ushort)objects[2], out targetPage))
            {
                Debug.ThrowException(new ArgumentException("unknown page id"));
            }
            else if (targetPage == Game.Player.Character.Inventory.Equipment)
            {
                Debug.ThrowException(new ArgumentException("cannot unequip to equipment"));
            }
            else if (!(targetPage is Bag))
            {
                Debug.ThrowException(new ArgumentException("can only unequip equipment to a bag"));
            }

            var targetBag = (Bag)targetPage;

            var targetSlot = (byte)objects[3];

            if (targetSlot == 0xFF)
            {
                // first free slot (gets used when item is drawn directly on a bag)

                if (!targetPage.TryGetFreeSlot(out targetSlot))
                {
                    // TODO: add apropriate native handling
                    Console.WriteLine("bag full! cannot put item in there");
                    return;
                }
            }

            Item equippedItem;

            if (!Game.Player.Character.Inventory.Equipment.TryGet(equipmentSlot, out equippedItem))
            {
                Debug.ThrowException(new ArgumentException("no equipped item at equipment slot"));
            }

            Game.Player.Character.Inventory.SetItem(equippedItem, targetBag, targetSlot);
        }
예제 #4
0
        protected override void Process(DefaultActionPipeline pipeline)
        {
            Debug.ArgumentNotNull(pipeline, nameof(pipeline));

            if (pipeline.Handled)
            {
                return;
            }

            var context = pipeline.Context as IItemSelectionContext;

            if (context == null)
            {
                return;
            }

            var items = context.Items.ToList();

            if (items.Count() != 1)
            {
                return;
            }

            var item = items.First() as ITemplatedItem;

            if (item == null)
            {
                return;
            }

            if (!IdManager.IsTemplate(item.TemplateId, "template"))
            {
                return;
            }

            if ((item.ItemUri.Site.DataService.FeatureCapabilities & DataServiceFeatureCapabilities.EditTemplate) != DataServiceFeatureCapabilities.EditTemplate)
            {
                return;
            }

            AppHost.Windows.OpenTemplateDesigner(item.ItemUri);

            pipeline.Handled = true;
        }
        protected override void UpdateFields(NewItemWizardPipeline pipeline, ProjectItem projectItem, ItemUri itemUri)
        {
            Debug.ArgumentNotNull(pipeline, nameof(pipeline));
            Debug.ArgumentNotNull(projectItem, nameof(projectItem));
            Debug.ArgumentNotNull(itemUri, nameof(itemUri));

            var fileName = GetFileName(pipeline, projectItem);

            var pathFieldId = IdManager.GetFieldId("/sitecore/templates/System/Layout/Layout/Data/Path");

            var fieldValues = new List <Tuple <FieldId, string> >
            {
                new Tuple <FieldId, string>(pathFieldId, fileName),
            };

            ItemModifier.Edit(itemUri, fieldValues);

            projectItem.Project.LinkItemAndFile(itemUri, fileName);
        }
예제 #6
0
        private void HandleDrop([NotNull] object sender, [NotNull] DragEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            e.Handled = true;

            var items = e.Data.GetData(DragManager.DragIdentifier) as IEnumerable <IItem>;

            if (items == null)
            {
                return;
            }

            if (items.Count() != 1)
            {
                return;
            }

            var item = items.First();

            if (item == null)
            {
                return;
            }

            ItemUri  = item.ItemUri;
            LinkType = @"internal";

            var templatedItem = item as ITemplatedItem;

            if (templatedItem != null)
            {
                if (IdManager.GetTemplateType(templatedItem.TemplateId) == "media")
                {
                    LinkType = @"media";
                }
            }

            UpdateValue();
            RaiseModified();
            Render();
        }
예제 #7
0
        public void RemoveInvite(Party party)
        {
            if (party.ParentZone != ParentZone)
            {
                Debug.ThrowException(new Exception("incompatible parties: not the same parent zone"));
            }

            if (!_invites.Contains(party))
            {
                Debug.ThrowException(new Exception("party not invited to this party"));
            }

            _invites.Remove(party);

            if (Created && ParentZone == Game.Zone && _members.Contains(Game.Player.Character))
            {
                Network.GameServer.Send(GameServerMessage.KickInvitedParty, IdManager.GetId(party));
            }
        }
예제 #8
0
        public void RemoveJoinRequest(Party party)
        {
            if (party.ParentZone != ParentZone)
            {
                Debug.ThrowException(new Exception("incompatible parties: not the same parent zone"));
            }

            if (!_joinRequests.Contains(party))
            {
                Debug.ThrowException(new Exception("party not a join request of this party"));
            }

            _joinRequests.Remove(party);

            if (Created && ParentZone == Game.Zone && _members.Contains(Game.Player.Character))
            {
                Network.GameServer.Send(GameServerMessage.KickPartyJoinRequest, IdManager.GetId(party));
            }
        }
예제 #9
0
        public void AddMember(PlayerCharacter agent)
        {
            if (ParentZone != null && ParentZone.Parties.Any(party => party._members.Contains(agent)))
            {
                Debug.ThrowException(new Exception("agent " + agent.Name + " is already member of a party"));
            }

            _members.Add(agent);

            if (Created && ParentZone == Game.Zone)
            {
                Network.GameServer.Send(GameServerMessage.AddPartyMember, IdManager.GetId(this), (ushort)IdManager.GetId(agent), (byte)1);

                if (agent == Game.Player.Character)
                {
                    ShowParty();
                }
            }
        }
예제 #10
0
        public void AddJoinRequest(Party party)
        {
            if (party.ParentZone != ParentZone)
            {
                Debug.ThrowException(new Exception("incompatible parties: not the same parent zone"));
            }

            if (party == this)
            {
                Debug.ThrowException(new Exception("cannot join request party on itself"));
            }

            _joinRequests.Add(party);

            if (Created && ParentZone == Game.Zone && _members.Contains(Game.Player.Character))
            {
                Network.GameServer.Send(GameServerMessage.AddPartyJoinRequest, IdManager.GetId(party));
            }
        }
예제 #11
0
        private void SetLinkField([NotNull] object sender, [NotNull] RoutedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var menuItem = e.Source as MenuItem;

            if (menuItem == null)
            {
                return;
            }

            var itemHeader = menuItem.Tag as ItemHeader;

            if (itemHeader == null)
            {
                return;
            }

            if (Context == null)
            {
                return;
            }

            var linkField = Context.Field.Control as LinkField;

            if (linkField == null)
            {
                return;
            }

            linkField.ItemUri  = itemHeader.ItemUri;
            linkField.LinkType = "internal";

            if (IdManager.GetTemplateType(itemHeader.TemplateId) == "media")
            {
                linkField.LinkType = "media";
            }

            linkField.UpdateValue();
            linkField.Render();
            linkField.RaiseModified();
        }
예제 #12
0
        public void AddInvite(Party party)
        {
            if (party.ParentZone != ParentZone)
            {
                Debug.ThrowException(new Exception("incompatible parties: not the same parent zone"));
            }

            if (party == this)
            {
                Debug.ThrowException(new Exception("cannot invite party to itself"));
            }

            _invites.Add(party);

            if (Created && ParentZone == Game.Zone && _members.Contains(Game.Player.Character))
            {
                Network.GameServer.Send(GameServerMessage.InviteParty, IdManager.GetId(party));
            }
        }
예제 #13
0
        public override void Execute(object parameter)
        {
            var context = parameter as ContentTreeContext;

            if (context == null)
            {
                return;
            }

            var itemTreeViewItem = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem;

            if (itemTreeViewItem == null)
            {
                return;
            }

            var fieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Template/Data/__Base template");

            GetValueCompleted <Item> completed = delegate(Item item)
            {
                var field         = item.Fields.FirstOrDefault(f => f.Name == "__Base template");
                var selectedItems = field != null?field.Value.Split('|').Where(v => !string.IsNullOrWhiteSpace(v)).Select(id => new ItemId(new Guid(id))) : Enumerable.Empty <ItemId>();

                var d = new SelectTemplatesDialog
                {
                    HelpText = "Each data template inherits from zero or more base data templates, which in turn specify base templates.",
                    Label    = "Select the Base Templates:"
                };

                d.Initialize(Resources.SetBaseTemplates_Execute_Base_Templates, item.ItemUri.DatabaseUri, selectedItems);

                if (AppHost.Shell.ShowDialog(d) != true)
                {
                    return;
                }

                var baseTemplates = string.Join("|", d.SelectedTemplates.Select(i => i.ToString()));

                ItemModifier.Edit(item.ItemUri, fieldId, baseTemplates);
            };

            itemTreeViewItem.ItemUri.Site.DataService.GetItemFieldsAsync(new ItemVersionUri(itemTreeViewItem.ItemUri, Language.Current, Data.Version.Latest), completed);
        }
예제 #14
0
        public override bool CanExecute(object parameter)
        {
            var context = parameter as ContentTreeContext;

            if (context == null)
            {
                return(false);
            }

            if (context.SelectedItems.Count() != 1)
            {
                return(false);
            }

            var item = context.SelectedItems.FirstOrDefault() as ItemTreeViewItem;

            if (item == null)
            {
                return(false);
            }

            if (IdManager.GetTemplateType(item.Item.TemplateId) != "folder")
            {
                return(false);
            }

            if (item.Item.TemplateId != IdManager.GetItemId("/sitecore/templates/System/Templates/Template Folder"))
            {
                var path = item.GetPath();
                if (!path.Contains(@"/sitecore/templates/"))
                {
                    return(false);
                }
            }

            if ((item.Site.DataService.FeatureCapabilities & DataServiceFeatureCapabilities.EditTemplate) != DataServiceFeatureCapabilities.EditTemplate)
            {
                return(false);
            }

            return(true);
        }
예제 #15
0
        /// <summary>
        /// Creates the requested role
        /// </summary>
        public async Task <TaskResult> CreateRole([FromBody] ServerPlanetRole role, string token)
        {
            AuthToken authToken = await Context.AuthTokens.FindAsync(token);

            if (authToken == null)
            {
                return(new TaskResult(false, "Failed to authorize user."));
            }

            if (!Permission.HasPermission(authToken.Scope, UserPermissions.PlanetManagement))
            {
                return(new TaskResult(false, "You don't have planet management scope."));
            }

            ServerPlanetMember member = await Context.PlanetMembers.Include(x => x.User)
                                        .FirstOrDefaultAsync(x => x.User_Id == authToken.User_Id &&
                                                             x.Planet_Id == role.Planet_Id);

            if (member == null)
            {
                return(new TaskResult(false, "You're not in the planet!"));
            }

            if (!(await member.HasPermissionAsync(PlanetPermissions.ManageRoles)))
            {
                return(new TaskResult(false, "You don't have role management permissions!"));
            }

            // Set role id
            role.Id = IdManager.Generate();

            // Set to next open position
            role.Position = (uint)await Context.PlanetRoles.Where(x => x.Planet_Id == role.Planet_Id).CountAsync();

            await Context.PlanetRoles.AddAsync(role);

            await Context.SaveChangesAsync();

            await PlanetHub.NotifyRoleChange(role);

            return(new TaskResult(true, $"Role {role.Id} successfully added to position {role.Position}."));
        }
예제 #16
0
        private void TextChanged([NotNull] object sender, [NotNull] TextChangedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            ReloadImage();

            var iconFieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Appearance/Appearance/__Icon");

            if (sourceField.FieldUris.First().FieldId == iconFieldId)
            {
                UpdatedContentEditorIcon();
            }

            var valueModified = ValueModified;

            if (valueModified != null)
            {
                valueModified();
            }
        }
        private void HandleItemsDrop([NotNull] object sender, [NotNull] DragEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            if (!e.Data.GetDataPresent(DragManager.DragIdentifier))
            {
                return;
            }

            e.Handled = true;

            var items = e.Data.GetData(DragManager.DragIdentifier) as IEnumerable <IItem>;

            if (items == null)
            {
                return;
            }

            var item = items.First() as ITemplatedItem;

            if (item == null)
            {
                return;
            }

            var templateSectionId = IdManager.GetItemId("/sitecore/templates/System/Templates/Template section");

            if (item.TemplateId == templateSectionId)
            {
                TemplateUri.Site.DataService.ExecuteAsync("Templates.GetSectionXml", DropTemplateSection, item.ItemUri.DatabaseName.Name, item.ItemUri.ItemId.ToString(), false);
            }

            var templateFieldId = IdManager.GetItemId("/sitecore/templates/System/Templates/Template field");

            if (item.TemplateId == templateFieldId)
            {
                TemplateUri.Site.DataService.ExecuteAsync("Templates.GetFieldXml", DropTemplateField, item.ItemUri.DatabaseName.Name, item.ItemUri.ItemId.ToString(), false);
            }
        }
예제 #18
0
    private void getEmptyGrid()
    {
        DataTable dt = new DataTable();

        dt.Columns.Add("pay_id", typeof(string));
        dt.Columns.Add("pay_head_id", typeof(string));
        dt.Columns.Add("pay_Name_Id", typeof(string));
        dt.Columns.Add("pay_type", typeof(string));
        dt.Columns.Add("pay_class", typeof(string));
        dt.Columns.Add("class", typeof(string));
        dt.Columns.Add("pay_class_id", typeof(string));
        dt.Columns.Add("version", typeof(string));
        dt.Columns.Add("version_name", typeof(string));
        dt.Columns.Add("GroupID", typeof(string));
        dt.Columns.Add("GroupName", typeof(string));
        dt.Columns.Add("for_all_std", typeof(string));
        dt.Columns.Add("pay_amt", typeof(string));
        dt.Columns.Add("discount", typeof(string));
        DataRow dr = dt.NewRow();

        dt.Rows.Add(dr);
        dgPay.DataSource = dt;
        dgPay.DataBind();
        dgPay.ShowFooter        = true;
        dgPay.FooterRow.Visible = true;
        ((TextBox)dgPay.FooterRow.FindControl("txtPayId")).Text = IdManager.GetNextID("payment_info", "pay_id").ToString();

        string queryDist = "select '' class_id, 'Select Class' class_name  union select class_id,class_name from class_info order by 1";

        util.PopulationDropDownList(((DropDownList)dgPay.FooterRow.FindControl("ddlPayClass")), "Class", queryDist, "class_name", "class_id");
        ((DropDownList)dgPay.FooterRow.FindControl("ddlVersion")).Items.Clear();

        //string queryVersion = "select '' id, 'Select Version' version_name  union select id,version_name from version_info order by 1";
        //util.PopulationDropDownList(((DropDownList)dgPay.FooterRow.FindControl("ddlVersion")), "Verson", queryVersion, "version_name", "id");

        string queryHead = "select '' id, 'Select Head' Head_Name  union select id,Head_Name from payment_head order by 1";

        util.PopulationDropDownList(((DropDownList)dgPay.FooterRow.FindControl("ddlPayHead")), "PayHead", queryHead, "Head_Name", "id");
    }
예제 #19
0
        protected override void Received(byte[] data)
        {
            switch (BitConverter.ToUInt16(data, 0))
            {
            case 1280:
                return;

            case 16896:
                Network.GameServer.Send(5633, new byte[20]);

                if (Game.State != GameState.CharacterCreation)
                {
                    Network.GameServer.Send(GameServerMessage.InstanceLoadHead,
                                            (byte)0x3F,
                                            (byte)0x3F,
                                            (byte)0,
                                            (byte)0);

                    Network.GameServer.Send(GameServerMessage.InstanceLoadDistrictInfo,
                                            IdManager.GetId(Game.Player.Character),
                                            (ushort)Game.Zone.Map,
                                            (byte)(Game.Zone.IsExplorable ? 1 : 0),
                                            (ushort)1,
                                            (ushort)0,
                                            (byte)0,
                                            (byte)0);
                }
                else
                {
                    Network.GameServer.Send(GameServerMessage.BeginCharacterCreation);
                }

                return;

            default:
                base.Received(data);
                break;
            }
        }
예제 #20
0
        public Id(idTypes idType)
        {
            switch (idType)
            {
            case idTypes.User:
                _prefix = "Us_";
                break;

            case idTypes.Manager:
                _prefix = "Man_";
                break;

            case idTypes.SomeShit:
                _prefix = "Shit_";
                break;

            default:
                _prefix = "WTF_";
                break;
            }
            id = IdManager.AddId();
        }
예제 #21
0
        ///
        ///
        ///     Will add a kanbanModel to a specified column within the current working board
        ///
        ///
        public void AddCard(string _nameCard, string _descriptionCard, string _parentDeck)
        {
            kanbanModels.Add(new KanbanModel()
            {
                // Generating Unique Ids
                ID          = IdManager.GenerateId(),
                Title       = _nameCard,
                Description = _descriptionCard,
                // Category Determines which deck this will be put in
                Category = _parentDeck,
                ColorKey = UNFINISHED_CARD_COLOR

                           /*
                            *
                            *  TODO: MAKE THIS PATH TO A IMAGE WORK
                            *
                            */

                           // ImageURL = something...
            });
            thisKanban.ItemsSource = kanbanModels.Where(kanbanModel => (string)kanbanModel.ColorKey == UNFINISHED_CARD_COLOR).ToList();
        }
예제 #22
0
        private void Opened([NotNull] object sender, [NotNull] RoutedEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            var menuItem = e.Source as MenuItem;

            if (menuItem == null)
            {
                return;
            }

            if (menuItem.Items.Count != 1)
            {
                return;
            }

            var m = menuItem.Items[0] as MenuItem;

            if (m == null || m.Tag as string != @"loading")
            {
                return;
            }

            if (Context == null)
            {
                return;
            }

            var to       = DateTime.Now.AddDays(1).ToString(@"yyyyMMdd");
            var from     = DateTime.Now.AddDays(-7).ToString(@"yyyyMMdd");
            var query    = string.Format(@"[{0} TO {1}]", from, to);
            var fieldUri = Context.Field.FieldUris.First();
            var root     = new ItemUri(fieldUri.ItemVersionUri.DatabaseUri, IdManager.GetItemId("/sitecore/media library"));

            GetItemsCompleted <ItemHeader> callback = items => LoadRecentMedia(menuItem, items);

            fieldUri.Site.DataService.SearchMedia(query, fieldUri.ItemVersionUri.DatabaseUri, "__updated", string.Empty, root, 0, callback);
        }
예제 #23
0
        private void AttackHandler(List <object> objects)
        {
            Creature target;

            if (!IdManager.TryGet((uint)objects[1], out target))
            {
                return;
            }

            Chat.ShowMessage(string.Format("attacking {0}!", target));

            Network.GameServer.Send((GameServerMessage)42, IdManager.GetId(Game.Player.Character), 1.75F, 0xF);

            /*Network.GameServer.Send(GameServerMessage.Projectile,
             *      IdManager.GetId(Game.Player.Character),
             *      target.Transformation.ExplicitPosition[0],
             *      target.Transformation.ExplicitPosition[1],
             *      (ushort)0,
             *      (float)1,
             *      1,
             *      1,
             *      (byte)0);*/

            /*Game.Player.Character.PerformAnimation(CreatureAnimation.None);
             * for (var i = 0; i < 10000; i++)
             * {
             *      for (var j = 1; j < 5; j++)
             *              Network.GameServer.Send(GameServerMessage.Projectile,
             *                                      IdManager.GetId(Game.Player.Character),
             *                                      target.Transformation.ExplicitPosition[0],
             *                                      target.Transformation.ExplicitPosition[1],
             *                                      (ushort)0,
             *                                      (float)j / 5F,
             *                                      0x8F,
             *                                      1,
             *                                      (byte)0);
             *      Thread.Sleep(1);
             * }*/
        }
예제 #24
0
        protected virtual string GetValue([NotNull] ContentModel contentModel)
        {
            Debug.ArgumentNotNull(contentModel, nameof(contentModel));

            var fieldId = IdManager.GetFieldId(FieldPath);

            foreach (var field in contentModel.Fields)
            {
                var fieldControl = field.Control;
                if (fieldControl == null)
                {
                    continue;
                }

                if (field.FieldUris.First().FieldId == fieldId)
                {
                    return(fieldControl.GetValue());
                }
            }

            return(null);
        }
예제 #25
0
        internal void SendPreActiveInformation()
        {
            foreach (PlayerCharacter member in _members)
            {
                if (Game.Zone.Parties.Any(party => party != this && party.Members.Contains(member)))
                {
                    Debug.ThrowException(new Exception("member " + member + " already part of another party"));
                }

                if (member == Leader)
                {
                    continue;
                }

                Network.GameServer.Send(GameServerMessage.AddPartyMember, IdManager.GetId(this), (ushort)IdManager.GetId(member), (byte)1);
            }

            if (_members.Contains(Game.Player.Character))
            {
                ShowParty();
            }
        }
예제 #26
0
        public override void Execute(object parameter)
        {
            var context = parameter as IItemSelectionContext;

            if (context == null)
            {
                return;
            }

            if (AppHost.MessageBox("Are you sure you want to reset the layout to the standard value?", "Confirmation", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK)
            {
                return;
            }

            var databaseUri   = DatabaseUri.Empty;
            var fields        = new List <Field>();
            var layoutFieldId = IdManager.GetFieldId("/sitecore/templates/System/Templates/Sections/Layout/Layout/__Renderings");

            foreach (var item in context.Items)
            {
                var field = new Field
                {
                    ResetOnSave = true,
                    HasValue    = true,
                    Value       = string.Empty
                };

                field.FieldUris.Add(new FieldUri(new ItemVersionUri(item.ItemUri, Language.Current, Version.Latest), layoutFieldId));

                fields.Add(field);

                if (databaseUri == DatabaseUri.Empty)
                {
                    databaseUri = item.ItemUri.DatabaseUri;
                }
            }

            ItemModifier.Edit(databaseUri, fields, false);
        }
예제 #27
0
        public void SetWeaponsetMainhandItem(Item weapon, byte weaponset)
        {
            Debug.Requires(weaponset <= 3);

            if (weaponset == _currentWeaponset)
            {
                Game.Player.Character.Inventory.SetItem(weapon, this, EquipmentSlot.Mainhand);
            }
            else
            {
                _weaponsets[weaponset].Mainhand = weapon;

                if (Game.State == GameState.Playing)
                {
                    Network.GameServer.Send(GameServerMessage.UpdateWeaponsetWeapons,
                                            (ushort)1,
                                            weaponset,
                                            _weaponsets[weaponset].Mainhand != null ? IdManager.GetId(_weaponsets[weaponset].Mainhand) : 0,
                                            _weaponsets[weaponset].Offhand != null ? IdManager.GetId(_weaponsets[weaponset].Offhand) : 0);
                }
            }
        }
예제 #28
0
        public void SetBag(Item bag, byte bagSlot)
        {
            Debug.Requires(bag != null);
            Debug.Requires(bagSlot <= 4);

            Bag equippedBag = _bags.FirstOrDefault(entry => entry != null && entry.Bag == bag);

            if (equippedBag == null)
            {
                if (_bags[bagSlot] != null)
                {
                    Debug.ThrowException(new Exception("bagslot already occupied"));
                }

                _bags[bagSlot] = new Bag((StorageType)bagSlot, bag, 20);

                if (Game.State == GameState.Playing)
                {
                    _bags[bagSlot].Create();

                    if (InventoryPage.Items.ContainsKey(bag))
                    {
                        InventoryPage.Items.Remove(bag);

                        Network.GameServer.Send(GameServerMessage.EquipBag, bagSlot, IdManager.GetId(bag));
                    }
                }
            }
            else
            {
                var currentBagSlot = (byte)Array.IndexOf(_bags, equippedBag);

                if (currentBagSlot != bagSlot)
                {
                    MoveBag(currentBagSlot, bagSlot);
                }
            }
        }
예제 #29
0
        private void KickJoinRequestHandler(List <object> objects)
        {
            Party controlledCharacterParty = Game.Zone.Parties.FirstOrDefault(party => party.Members.Contains(Game.Player.Character));

            if (controlledCharacterParty == null)
            {
                Debug.ThrowException(new Exception("cannot kick join request without party"));
            }

            if (controlledCharacterParty.Leader != Game.Player.Character)
            {
                Debug.ThrowException(new Exception("can only kick join request if leader"));
            }

            Party joinRequestPartyToKick = Game.Zone.Parties.FirstOrDefault(party => IdManager.GetId(party) == (ushort)objects[1]);

            if (joinRequestPartyToKick == null)
            {
                Debug.ThrowException(new Exception("party to kick does not exist"));
            }

            GameLogic.PartyKickJoinRequest(joinRequestPartyToKick);
        }
예제 #30
0
        public IEnumerable <IGenerationInstruction> Generate(IList <Id <Player> > playerIds)
        {
            var idMan = new IdManager();

            var sun = idMan.GetNext <IBody>();

            yield return(new NewFixedBodyInstruction(sun, new Position2(), Radius.FromValue(1), 1));

            var orbitRadius = 7.U();
            var orbitStep   = 4.U();

            foreach (var pId in playerIds)
            {
                var planet = idMan.GetNext <IBody>();

                yield return(new NewOrbitingBodyInstruction(planet, sun,
                                                            Radius.FromValue(orbitRadius), Direction2.Zero, Radius.FromValue(0.5f), 0.25f, 100));

                yield return(new AssignPlayerToBodyInstruction(pId, planet));

                orbitRadius += orbitStep;
            }
        }
        public IEnumerable<IGenerationInstruction> Generate(IList<Id<Player>> playerIds)
        {
            var idMan = new IdManager();

            var sun = idMan.GetNext<IBody>();

            yield return new NewFixedBodyInstruction(sun, new Position2(), Radius.FromValue(1), 1);

            var orbitRadius = 7.U();
            var orbitStep = 4.U();

            foreach (var pId in playerIds)
            {
                var planet = idMan.GetNext<IBody>();

                yield return new NewOrbitingBodyInstruction(planet, sun,
                    Radius.FromValue(orbitRadius), Direction2.Zero, Radius.FromValue(0.5f), 0.25f, 100);

                yield return new AssignPlayerToBodyInstruction(pId, planet);

                orbitRadius += orbitStep;
            }
        }
예제 #32
0
    protected void BtnSave_Click(object sender, EventArgs e)
    {
        clsDesig des = clsDesigManager.getDesig(txtDesigCode.Text);

        if (des != null)
        {
            des.DesigName    = txtDesigName.Text;
            des.DesigAbb     = txtDesigAbb.Text;
            des.Class        = ddlClass.SelectedValue;
            des.GradeCode    = ddlGradeCode.SelectedValue;
            des.MgrCode      = ddlMgrCode.SelectedValue;
            des.OfficerStaff = ddlOfficerOrStaff.SelectedValue;
            des.TechNtech    = ddlTectNtech.SelectedValue;
            clsDesigManager.UpdateDesig(des);
            DataTable dt = clsDesigManager.getDesigDetails("");
            dgDesig.DataSource = dt;
            dgDesig.DataBind();
            ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Record updated successfully!!');", true);
        }
        else
        {
            des              = new clsDesig();
            des.DesigName    = txtDesigName.Text;
            des.DesigAbb     = txtDesigAbb.Text;
            des.Class        = ddlClass.SelectedValue;
            des.GradeCode    = ddlGradeCode.SelectedValue;
            des.MgrCode      = ddlMgrCode.SelectedValue;
            des.OfficerStaff = ddlOfficerOrStaff.SelectedValue;
            des.TechNtech    = ddlTectNtech.SelectedValue;
            des.DesigCode    = IdManager.GetNextID("pmis_desig_code", "desig_code").ToString();
            clsDesigManager.CreateDesig(des);
            DataTable dt = clsDesigManager.getDesigDetails("");
            dgDesig.DataSource = dt;
            dgDesig.DataBind();
            ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('Record inserted successfully!!');", true);
        }
    }
예제 #33
0
 void OnEnable()
 {
     if (instance != null)
         Debug.LogError("Multiple IdManager instances");
     instance = this;
 }