Exemplo n.º 1
0
        private void UpdateWeaponGrid(WeaponGrid weaponGrid, CharacterSheet.WeaponItem item, int itemIndex)
        {
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return;
            }
            MainPage.SetTapHandler(weaponGrid.container, (s, e) => Weapon_DoubleTap(item), 2);
#if EXPAND_SELECTED
#if EXPAND_CHECKBOX
            if (weaponGrid.selectedHandler != null)
            {
                weaponGrid.selected.CheckedChanged -= weaponGrid.selectedHandler;
            }
            weaponGrid.selectedHandler = (s, e) => Weapon_CheckedChanged(item, e.Value);
            UpdateValue(weaponGrid.selected, item.selected);
            weaponGrid.selected.CheckedChanged += weaponGrid.selectedHandler;
#if EXPAND_WITH_TAP
            MainPage.AddTapHandler(weaponGrid.container, (s, e) => Weapon_Tap(weaponGrid.selected), 1);
#endif
#else
#if EXPAND_WITH_TAP
            MainPage.AddTapHandler(weaponGrid.container, (s, e) => Weapon_Tap(item), 1);
#endif
#endif
#endif
            weaponGrid.name.FontAttributes = item.active ? FontAttributes.Bold : FontAttributes.None;
            UpdateValue(weaponGrid.name, item.AsString(sheet));
        }
Exemplo n.º 2
0
 public void Weapon_Tap(CharacterSheet.WeaponItem weapon)
 {
     if (weapon == null)
     {
         return;
     }
     weapon.selected = !weapon.selected;
     CharacterSheetStorage.Instance.SaveCharacter();
     UpdateView();
 }
Exemplo n.º 3
0
 public void WeaponActive_CheckedChanged(CharacterSheet.WeaponItem item, bool value)
 {
     if (item == null)
     {
         return;
     }
     if (item.active == value)
     {
         return;
     }
     item.active = value;
     CharacterSheetStorage.Instance.SaveCharacter();
     UpdateView();
 }
Exemplo n.º 4
0
 public void Weapon_CheckedChanged(CharacterSheet.WeaponItem weapon, bool value)
 {
     if (weapon == null)
     {
         return;
     }
     if (weapon.selected == value)
     {
         return;
     }
     weapon.selected = value;
     CharacterSheetStorage.Instance.SaveCharacter();
     UpdateView();
 }
Exemplo n.º 5
0
        private void UpdateWeaponGrid(SelectedWeaponGrid weaponGrid, CharacterSheet.WeaponItem item, int itemIndex)
        {
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return;
            }
#if EXPAND_CHECKBOX
            if (weaponGrid.selectedHandler != null)
            {
                weaponGrid.selected.CheckedChanged -= weaponGrid.selectedHandler;
            }
            weaponGrid.selectedHandler = (s, e) => Weapon_CheckedChanged(item, e.Value);
            UpdateValue(weaponGrid.selected, item.selected);
            weaponGrid.selected.IsChecked       = item.selected;
            weaponGrid.selected.CheckedChanged += weaponGrid.selectedHandler;
#endif
            if (weaponGrid.activeHandler != null)
            {
                weaponGrid.active.CheckedChanged -= weaponGrid.activeHandler;
            }
            weaponGrid.activeHandler = (s, e) => WeaponActive_CheckedChanged(item, e.Value);
            UpdateValue(weaponGrid.active, item.active);
            weaponGrid.active.IsChecked       = item.active;
            weaponGrid.active.CheckedChanged += weaponGrid.activeHandler;

            UpdateValue(weaponGrid.name, item.name);
            UpdateValue(weaponGrid.attackBonus, item.AttackBonus(sheet));
            UpdateValue(weaponGrid.critical, item.critical.AsString(sheet));
            UpdateValue(weaponGrid.damage, item.Damage(sheet));
            UpdateValue(weaponGrid.damageBonus, item.DamageBonus(sheet));
            UpdateValue(weaponGrid.type, item.type);
            UpdateValue(weaponGrid.range, item.Range(sheet));
            UpdateValue(weaponGrid.ammunition, item.ammunition.GetTotal(sheet).ToString());
            UpdateValue(weaponGrid.special, item.special);
            UpdateValue(weaponGrid.weight, item.weight.GetTotal(sheet).ToString());
            UpdateValue(weaponGrid.description, item.description);

            MainPage.SetTapHandler(weaponGrid.container, (s, e) => Weapon_DoubleTap(item), 2);
#if EXPAND_WITH_TAP
#if EXPAND_CHECKBOX
            MainPage.AddTapHandler(weaponGrid.container, (s, e) => Weapon_Tap(weaponGrid.selected), 1);
#else
            MainPage.AddTapHandler(weaponGrid.container, (s, e) => Weapon_Tap(item), 1);
#endif
#endif
        }
Exemplo n.º 6
0
        public void Weapon_DoubleTap(CharacterSheet.WeaponItem item = null)
        {
            if (pushedPage != null)
            {
                return;
            }
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return;
            }
            var ew = new EditWeapon();

            ew.InitEditor(item);
            pushedPage = ew;
            Navigation.PushAsync(pushedPage);
        }
Exemplo n.º 7
0
 public void InitEditor(ItemType item = null)
 {
     source = item;
     if (item == null)
     {
         this.item = new ItemType();
     }
     else
     {
         this.item = item.Clone as ItemType;
     }
     ArmorActive.IsChecked = this.item.active;
     WeaponName.Text       = this.item.name;
     WeaponType.Text       = this.item.type;
     Special.Text          = this.item.special;
     Description.Text      = this.item.description;
     Delete.IsEnabled      = source != null;
     UpdateView();
 }
Exemplo n.º 8
0
        private void CreateWeaponGrid(CharacterSheet.WeaponItem item, int itemIndex)
        {
            if (item == null)
            {
                return;
            }
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return;
            }
            if (weaponGridsPool.Count > 0)
            {
                var weaponGrid = weaponGridsPool[0];
                weaponGridsPool.RemoveAt(0);
                UpdateWeaponGrid(weaponGrid, item, itemIndex);
                var pos =
#if EXPAND_SELECTED
                    selectedWeaponGrids.Count +
#endif
                    weaponGrids.Count;
                weaponGrids.Add(weaponGrid);
                Weapon.Children.Insert(pos, weaponGrid.container);
                return;
            }
#if USE_GRID
            var container = new Grid()
            {
                ColumnSpacing   = 5,
                RowSpacing      = 5,
                BackgroundColor = Color.LightGray,
            };
            container.ColumnDefinitions = new ColumnDefinitionCollection()
            {
                new ColumnDefinition()
                {
                    Width = GridLength.Auto
                },
                new ColumnDefinition()
                {
                    Width = GridLength.Star
                },
            };
            container.RowDefinitions = new RowDefinitionCollection()
            {
                new RowDefinition()
                {
                    Height = GridLength.Auto
                },
            };
#else
            var container = new StackLayout()
            {
                Orientation     = StackOrientation.Horizontal,
                BackgroundColor = Color.LightGray,
            };
#endif
            var weaponNameFrame = CreateFrame(item.AsString(sheet));
            weaponNameFrame.HorizontalOptions = LayoutOptions.FillAndExpand;
            var weaponName = weaponNameFrame.Content as Label;
            weaponName.FontAttributes = item.active ? FontAttributes.Bold : FontAttributes.None;
            MainPage.AddTapHandler(container, (s, e) => Weapon_DoubleTap(item), 2);
#if EXPAND_SELECTED
#if EXPAND_CHECKBOX
            var selectedcb = new CheckBox()
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                IsChecked         = item.selected,
            };
            EventHandler <CheckedChangedEventArgs> handler = (s, e) => Weapon_CheckedChanged(item, e.Value);
            selectedcb.CheckedChanged += handler;
#if EXPAND_WITH_TAP
            MainPage.AddTapHandler(container, (s, e) => Weapon_Tap(selectedcb), 1);
#endif
#if USE_GRID
            container.Children.Add(selectedcb, 0, 0);
#else
            container.Children.Add(selectedcb);
#endif
#else
#if EXPAND_WITH_TAP
            MainPage.AddTapHandler(container, (s, e) => Weapon_Tap(item), 1);
#endif
#endif
#endif
#if USE_GRID
            container.Children.Add(weaponNameFrame, 1, 0);
#else
            container.Children.Add(weaponNameFrame);
#endif

            var newWeaponGrid = new WeaponGrid()
            {
                container = container,
#if EXPAND_SELECTED && EXPAND_CHECKBOX
                selectedHandler = handler,
                selected        = selectedcb,
#endif
                name      = weaponName,
                nameFrame = weaponNameFrame,
            };

            var newpos =
#if EXPAND_SELECTED
                selectedWeaponGrids.Count +
#endif
                weaponGrids.Count;
            weaponGrids.Add(newWeaponGrid);
            Weapon.Children.Insert(newpos, newWeaponGrid.container);
        }
Exemplo n.º 9
0
        private void CreateSelectedWeaponGrid(CharacterSheet.WeaponItem item, int itemIndex)
        {
            if (item == null)
            {
                return;
            }
            var sheet = CharacterSheetStorage.Instance.selectedCharacter;

            if (sheet == null)
            {
                return;
            }
            if (selectedWeaponGridsPool.Count > 0)
            {
                var weaponGrid = selectedWeaponGridsPool[0];
                selectedWeaponGridsPool.RemoveAt(0);
                UpdateWeaponGrid(weaponGrid, item, itemIndex);
                var pos = selectedWeaponGrids.Count;
                selectedWeaponGrids.Add(weaponGrid);
                Weapon.Children.Insert(pos, weaponGrid.container);
                return;
            }
            var grid = new Grid()
            {
                ColumnSpacing   = 5,
                RowSpacing      = 5,
                BackgroundColor = Color.LightGray,
            };

            grid.ColumnDefinitions = new ColumnDefinitionCollection()
            {
                new ColumnDefinition()
                {
                    Width = GridLength.Auto
                },
                new ColumnDefinition()
                {
                    Width = GridLength.Star
                },
            };
            const int count          = 14;
            var       rowDefinitions = new RowDefinitionCollection();

            for (var i = 0; i < count; i++)
            {
                rowDefinitions.Add(new RowDefinition()
                {
                    Height = GridLength.Auto
                });
            }
            grid.RowDefinitions = rowDefinitions;
#if EXPAND_CHECKBOX
            var selectedcb = new CheckBox()
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                IsChecked         = item.selected,
            };
            EventHandler <CheckedChangedEventArgs> handler = (s, e) => Weapon_CheckedChanged(item, e.Value);
            selectedcb.CheckedChanged += handler;
#endif
            var nameTitle = CreateLabel("Name:");
            var nameStack = new StackLayout()
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.Start,
                VerticalOptions   = LayoutOptions.Center,
            };
#if EXPAND_CHECKBOX
            nameStack.Children.Add(selectedcb);
#endif
            nameStack.Children.Add(nameTitle);

            var row       = 0;
            var nameValue = CreateFrame(item.name);
            grid.Children.Add(nameStack, 0, row);
            grid.Children.Add(nameValue, 1, row);
            row += 1;

            var activeTitle = CreateLabel("Active:");
            var activecb    = new CheckBox()
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center,
                IsChecked         = item.active,
                IsEnabled         = false,
            };
            EventHandler <CheckedChangedEventArgs> activeHandler = (s, e) => WeaponActive_CheckedChanged(item, e.Value);
            activecb.CheckedChanged += activeHandler;
            grid.Children.Add(activeTitle, 0, row);
            grid.Children.Add(activecb, 1, row);
            row += 1;

            var attackBonusTitle = CreateLabel("Attack Bonus:");
            var attackBonusValue = CreateFrame(item.AttackBonus(sheet));
            grid.Children.Add(attackBonusTitle, 0, row);
            grid.Children.Add(attackBonusValue, 1, row);
            row += 1;

            var criticalTitle = CreateLabel("Critical:");
            var criticalValue = CreateFrame(item.critical.AsString(sheet));
            grid.Children.Add(criticalTitle, 0, row);
            grid.Children.Add(criticalValue, 1, row);
            row += 1;

            var damageTitle = CreateLabel("Damage:");
            var damageValue = CreateFrame(item.Damage(sheet));
            grid.Children.Add(damageTitle, 0, row);
            grid.Children.Add(damageValue, 1, row);
            row += 1;

            var damageBonusTitle = CreateLabel("Damage Bonus:");
            var damageBonusValue = CreateFrame(item.DamageBonus(sheet));
            grid.Children.Add(damageBonusTitle, 0, row);
            grid.Children.Add(damageBonusValue, 1, row);
            row += 1;

            var typeTitle = CreateLabel("Type:");
            var typeValue = CreateFrame(item.type);
            grid.Children.Add(typeTitle, 0, row);
            grid.Children.Add(typeValue, 1, row);
            row += 1;

            var rangeTitle = CreateLabel("Range:");
            var rangeValue = CreateFrame(item.Range(sheet));
            grid.Children.Add(rangeTitle, 0, row);
            grid.Children.Add(rangeValue, 1, row);
            row += 1;

            var ammunitionTitle = CreateLabel("Ammunition:");
            var ammunitionValue = CreateFrame(item.ammunition.GetTotal(sheet).ToString());
            grid.Children.Add(ammunitionTitle, 0, row);
            grid.Children.Add(ammunitionValue, 1, row);
            row += 1;

            var specialTitle = CreateLabel("Special:");
            var specialValue = CreateFrame(item.special);
            grid.Children.Add(specialTitle, 0, row);
            grid.Children.Add(specialValue, 1, row);
            row += 1;

            var weightTitle = CreateLabel("Weight:");
            var weightValue = CreateFrame(item.weight.GetTotal(sheet).ToString());
            grid.Children.Add(weightTitle, 0, row);
            grid.Children.Add(weightValue, 1, row);
            row += 1;

            var descriptionTitle = CreateLabel("Description:");
            grid.Children.Add(descriptionTitle, 0, 2, row, row + 1);
            row += 1;

            var descriptionValue = CreateFrame(item.description);
            grid.Children.Add(descriptionValue, 0, 2, row, row + 1);
            row += 1;

            MainPage.AddTapHandler(grid, (s, e) => Weapon_DoubleTap(item), 2);
#if EXPAND_CHECKBOX
            MainPage.AddTapHandler(grid, (s, e) => Weapon_Tap(selectedcb), 1);
#else
            MainPage.AddTapHandler(grid, (s, e) => Weapon_Tap(item), 1);
#endif

            var newWeaponGrid = new SelectedWeaponGrid()
            {
                container = grid,
#if EXPAND_CHECKBOX
                selectedHandler = handler,
                selected        = selectedcb,
#endif
                activeHandler    = activeHandler,
                active           = activecb,
                nameTitle        = nameTitle,
                nameFrame        = nameValue,
                name             = nameValue.Content as Label,
                attackBonusTitle = attackBonusTitle,
                attackBonus      = attackBonusValue.Content as Label,
                criticalTitle    = criticalTitle,
                critical         = criticalValue.Content as Label,
                damageTitle      = damageTitle,
                damage           = damageValue.Content as Label,
                damageBonusTitle = damageBonusTitle,
                damageBonus      = damageBonusValue.Content as Label,
                typeTitle        = typeTitle,
                type             = typeValue.Content as Label,
                rangeTitle       = rangeTitle,
                range            = rangeValue.Content as Label,
                ammunitionTitle  = ammunitionTitle,
                ammunition       = ammunitionValue.Content as Label,
                specialTitle     = specialTitle,
                special          = specialValue.Content as Label,
                weightTitle      = weightTitle,
                weight           = weightValue.Content as Label,
                descriptionTitle = descriptionTitle,
                description      = descriptionValue.Content as Label,
            };

            var newpos = selectedWeaponGrids.Count;
            selectedWeaponGrids.Add(newWeaponGrid);
            Weapon.Children.Insert(newpos, newWeaponGrid.container);
        }