private void SortItemUpButton_Click(object sender, RoutedEventArgs e) { if (!(ItemsDisplay.SelectedIndex <= 0)) { int selectedIndex = ItemsDisplay.SelectedIndex; List <AnyNoun> list = new List <AnyNoun>(); foreach (AnyNoun item in ItemsDisplay.ItemsSource) { list.Add(item); } var view = CollectionViewSource.GetDefaultView(ItemsDisplay.ItemsSource); view?.SortDescriptions.Clear(); foreach (var column in ItemsDisplay.Columns) { column.SortDirection = null; } view = list as System.ComponentModel.ICollectionView; ItemsDisplay.SelectedIndex = selectedIndex; AnyNoun itemToMoveUp = list[selectedIndex]; AnyNoun itemToMoveDown = list[selectedIndex - 1]; list[selectedIndex] = itemToMoveDown; list[selectedIndex - 1] = itemToMoveUp; _gameMainViewModel.PlayerOne.ItemInventory.Clear(); foreach (AnyNoun item in list) { _gameMainViewModel.PlayerOne.ItemInventory.Add(item); } view = list as System.ComponentModel.ICollectionView; ItemsDisplay.SelectedIndex = selectedIndex - 1; } }
public void DropItemFromInventory(AnyNoun item, Player player) { if (!(item == null)) { PlayerArea(player).Nouns.Add(item); player.ItemInventory.Remove(item); OnPropertyChanged(nameof(AreaItems)); OnPropertyChanged(nameof(InventoryDisplay)); } }
public string PerformItemActions(AnyNoun item, Player player, List <AnyNoun.ActionType> actions, List <string> actionsMessages) { string messageText = ""; if (!(actions == null)) { foreach (AnyNoun.ActionType action in actions) { if (!(actionsMessages == null || actionsMessages[actions.IndexOf(action)] == null || actionsMessages[actions.IndexOf(action)] == "")) { messageText = (messageText + actionsMessages[actions.IndexOf(action)]); } switch (action) { case AnyNoun.ActionType.ItemGet: foreach (AnyNoun itemToGive in item.ItemsToGive) { player.ItemInventory.Add(itemToGive); messageText = (messageText + $"\nYou got a {itemToGive.Name}!"); } break; case AnyNoun.ActionType.Battle: item.Battle(player); break; case AnyNoun.ActionType.BattleNewEnemies: break; case AnyNoun.ActionType.KillPlayer: player.Die(); break; case AnyNoun.ActionType.HPUp: player.HealthPoints += item.HPUpLevel; messageText = (messageText + $"\nYou recieved {item.HPUpLevel} Health Points!"); OnPropertyChanged(nameof(PlayerInfoDisplay)); break; case AnyNoun.ActionType.MaxHPUp: player.MaxHP += item.MaxHPUpLevel; messageText = (messageText + $"\nYour max Health Points were increased by {item.MaxHPUpLevel}!"); OnPropertyChanged(nameof(PlayerInfoDisplay)); break; case AnyNoun.ActionType.NoAction: break; default: break; } } } return(messageText); }
private void SortItemDownButton_Click(object sender, RoutedEventArgs e) { if (!(ItemsDisplay.SelectedIndex >= ItemsDisplay.Items.Count - 1)) { int selectedIndex = ItemsDisplay.SelectedIndex; AnyNoun itemToMoveDown = ItemsDisplay.SelectedItem as AnyNoun; AnyNoun itemToMoveUp = ItemsDisplay.Items[selectedIndex + 1] as AnyNoun; _gameMainViewModel.PlayerOne.ItemInventory[selectedIndex] = itemToMoveUp; _gameMainViewModel.PlayerOne.ItemInventory[selectedIndex + 1] = itemToMoveDown; ItemsDisplay.SelectedIndex = selectedIndex + 1; } }
public void InvestigateItem(AnyNoun item, Player player) { string messageText = item.Description + PerformItemActions(item, player, item.ActionsOnInteract, item.InteractActionsMessages); item.ActionsOnInteract = new List <AnyNoun.ActionType> { AnyNoun.ActionType.NoAction }; item.InteractActionsMessages = null; if (messageText == "") { messageText = ("No problem here."); } MessageBox.Show(messageText); }
public void UseItem(AnyNoun item, Player player) { if (!(item == null)) { string messageText = item.UseMessage + PerformItemActions(item, player, item.ActionsOnUse, item.UseActionsMessages); item.ActionsOnUse = new List <AnyNoun.ActionType> { AnyNoun.ActionType.NoAction }; item.UseActionsMessages = null; if (messageText == "") { messageText = ("Nothing happens!"); } MessageBox.Show(messageText); } }
public void MoveItemToInventory(AnyNoun item, Player player) { if (!(item == null) && PlayerArea(player).Nouns.Contains(item) && (item.CanPickUp == true)) { player.ItemInventory.Add(item); PlayerArea(player).Nouns.Remove(item); OnPropertyChanged(nameof(InventoryDisplay)); OnPropertyChanged(nameof(AreaItems)); string messageText = PerformItemActions(item, player, item.ActionsOnInteract, item.InteractActionsMessages); item.ActionsOnInteract = new List <AnyNoun.ActionType> { AnyNoun.ActionType.NoAction }; item.InteractActionsMessages = null; if (messageText != "") { MessageBox.Show(messageText); } } else if (!item.CanPickUp == true) { MessageBox.Show("You cannot pick up this item."); } }
/// <summary> /// Searches an Area object for a Noun, and returns its position. /// </summary> private int FindNounPos(AnyNoun nounToFind, Area areaToSearch) { return(areaToSearch.Nouns.IndexOf(nounToFind)); }
/// <summary> /// Moves a Noun object from one Area to another. /// </summary> /// <param name="nounPos">The position of our target item in the Nouns list of movingFrom.</param> public void MoveNoun(int nounPos, ref Area movingFrom, ref Area movingTo) { AnyNoun nounToMove = movingTo.Nouns[nounPos]; }