Example #1
0
 private void CreatePlayer()
 {
     _step             = Stage.PickingGear;
     Items             = LootHelper.GetDefaultItems();
     _pickingGearStage = PickingGearStage.Boots;
     _selectedItem     = Items.First(i => i.Type == ItemTypes.Boots);
 }
Example #2
0
 private void SelectPlayer()
 {
     if (Name == "Create New")
     {
         _step           = Stage.CreatingPlayer;
         _creatingPlayer = true;
     }
     else
     {
         _creatingPlayer = false;
         _setup._quadrants.Where(q => q != this && q.Name == Name).ToList().ForEach(q => { q.Name = _setup.PlayerNames.First(n => n != Name); });
         _setup.PlayerNames.Remove(Name);
         _step             = Stage.PickingGear;
         Items             = XmlStorage.GetPlayerInventory(Name);
         _pickingGearStage = PickingGearStage.Boots;
         _selectedItem     = Items.First(i => i.Type == ItemTypes.Boots);
     }
 }
Example #3
0
            public void Update()
            {
                var buttonsPressed = InputService.InputDevices[_playerIndex].ButtonsPressed;

                if (buttonsPressed.Contains(Buttons.A))
                {
                    switch (_step)
                    {
                    case Stage.NotJoined:
                        _step = Stage.SelectingPlayer;
                        return;

                    case Stage.SelectingPlayer:
                        SelectPlayer();
                        return;

                    case Stage.CreatingPlayer:
                        if (_nameSelectorIndex < 2)
                        {
                            _nameSelectorIndex++;
                        }
                        else
                        {
                            Name = _setup.FirstNames[_firstNameIndex] + _setup.MiddleNames[_middleNameIndex] + _setup.LastNames[_lastNameIndex];
                            if (_setup.PlayerNames.All(n => n != Name))
                            {
                                CreatePlayer();
                            }
                            else
                            {
                                Name = "Create New";
                            }
                        }
                        break;

                    case Stage.PickingGear:
                        Gear.Add(_selectedItem);
                        switch (_pickingGearStage)
                        {
                        case PickingGearStage.Boots:
                            _pickingGearStage = PickingGearStage.Robe;
                            break;

                        case PickingGearStage.Robe:
                            _pickingGearStage = PickingGearStage.Helm;
                            break;

                        case PickingGearStage.Helm:
                            _pickingGearStage = PickingGearStage.Glove;
                            break;

                        case PickingGearStage.Glove:
                            _pickingGearStage = PickingGearStage.Wand;
                            break;

                        case PickingGearStage.Wand:
                            _step = Stage.Waiting;
                            return;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                        _selectedItem = Items.First(i => i.Type == CurrentGearType());
                        break;

                    case Stage.Waiting:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                if (buttonsPressed.Contains(Buttons.B))
                {
                    switch (_step)
                    {
                    case Stage.NotJoined:
                        break;

                    case Stage.SelectingPlayer:
                        _step = Stage.NotJoined;
                        return;

                    case Stage.CreatingPlayer:
                        if (_nameSelectorIndex > 0)
                        {
                            _nameSelectorIndex--;
                        }
                        else
                        {
                            _step = Stage.SelectingPlayer;
                            Name  = _setup.PlayerNames.First();
                        }
                        return;

                    case Stage.PickingGear:
                        _step = Stage.SelectingPlayer;
                        Gear  = new List <Item>();
                        if (!_creatingPlayer)
                        {
                            _setup.PlayerNames.Insert(0, Name);
                        }
                        Name = _setup.PlayerNames.First();
                        break;

                    case Stage.Waiting:
                        _step             = Stage.PickingGear;
                        _pickingGearStage = PickingGearStage.Boots;
                        _selectedItem     = Items.First(i => i.Type == ItemTypes.Boots);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                if (buttonsPressed.Contains(Buttons.LeftThumbstickUp))
                {
                    switch (_step)
                    {
                    case Stage.CreatingPlayer:
                        if (_nameSelectorIndex == 0 && _firstNameIndex > 0)
                        {
                            _firstNameIndex--;
                        }
                        if (_nameSelectorIndex == 1 && _middleNameIndex > 0)
                        {
                            _middleNameIndex--;
                        }
                        if (_nameSelectorIndex == 2 && _lastNameIndex > 0)
                        {
                            _lastNameIndex--;
                        }
                        break;

                    case Stage.PickingGear:
                        _selectedItem = ItemBefore ?? _selectedItem;
                        break;

                    case Stage.NotJoined:
                    case Stage.SelectingPlayer:
                    case Stage.Waiting:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                if (buttonsPressed.Contains(Buttons.LeftThumbstickDown))
                {
                    switch (_step)
                    {
                    case Stage.CreatingPlayer:
                        if (_nameSelectorIndex == 0 && _firstNameIndex < _setup.FirstNames.Count - 1)
                        {
                            _firstNameIndex++;
                        }
                        if (_nameSelectorIndex == 1 && _middleNameIndex < _setup.MiddleNames.Count - 1)
                        {
                            _middleNameIndex++;
                        }
                        if (_nameSelectorIndex == 2 && _lastNameIndex < _setup.LastNames.Count - 1)
                        {
                            _lastNameIndex++;
                        }
                        break;

                    case Stage.PickingGear:
                        _selectedItem = ItemAfter ?? _selectedItem;
                        break;

                    case Stage.NotJoined:
                    case Stage.SelectingPlayer:
                    case Stage.Waiting:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                if (buttonsPressed.Contains(Buttons.LeftThumbstickLeft))
                {
                    switch (_step)
                    {
                    case Stage.SelectingPlayer:
                        var index = _setup.PlayerNames.IndexOf(Name);
                        if (index > 0)
                        {
                            Name = _setup.PlayerNames[index - 1];
                        }
                        break;

                    case Stage.PickingGear:
                    case Stage.CreatingPlayer:
                    case Stage.NotJoined:
                    case Stage.Waiting:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }
                if (buttonsPressed.Contains(Buttons.LeftThumbstickRight))
                {
                    switch (_step)
                    {
                    case Stage.SelectingPlayer:
                        var index = _setup.PlayerNames.IndexOf(Name);
                        if (index < _setup.PlayerNames.Count - 1)
                        {
                            Name = _setup.PlayerNames[index + 1];
                        }
                        break;

                    case Stage.PickingGear:
                    case Stage.CreatingPlayer:
                    case Stage.NotJoined:
                    case Stage.Waiting:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }

                if (buttonsPressed.Contains(Buttons.Start))
                {
                    _setup.StartGame();
                }
            }