private void CreatePlayer() { _step = Stage.PickingGear; Items = LootHelper.GetDefaultItems(); _pickingGearStage = PickingGearStage.Boots; _selectedItem = Items.First(i => i.Type == ItemTypes.Boots); }
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); } }
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(); } }