aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Mundus/Service/Crafting/CraftingController.cs18
-rw-r--r--Mundus/Service/Mobs/MobTerraforming.cs2
-rw-r--r--Mundus/Views/Windows/CraftingWindow.cs3
-rw-r--r--Mundus/Views/Windows/IGameWindow.cs1
-rw-r--r--Mundus/Views/Windows/LargeGameWindow.cs4
-rw-r--r--Mundus/Views/Windows/MediumGameWindow.cs4
6 files changed, 27 insertions, 5 deletions
diff --git a/Mundus/Service/Crafting/CraftingController.cs b/Mundus/Service/Crafting/CraftingController.cs
index 74172bd..b1ca35c 100644
--- a/Mundus/Service/Crafting/CraftingController.cs
+++ b/Mundus/Service/Crafting/CraftingController.cs
@@ -9,8 +9,10 @@ namespace Mundus.Service.Crafting {
public static class CraftingController {
private static Dictionary<ItemTile, int> avalableItems;
+ /// <summary>
+ /// Gets all different items and their quantaties in the inventory. Stores that in memory.
+ /// </summary>
public static void FindAvalableItems() {
- var tmp = LMI.Player.Inventory.Items.Where(x => x != null);
avalableItems = LMI.Player.Inventory.Items.Where(x => x != null)
//Can't use distinct on non primative types, beause they also hold their memory location info.
//This is my way of getting only the "unique" item tiles.
@@ -32,12 +34,18 @@ namespace Mundus.Service.Crafting {
return recipes.ToArray();
}
+ /// <summary>
+ /// Removes items, used for crafting and adds the result item to the inventory
+ /// </summary>
+ /// <param name="itemRecipe">CraftingRecipie of the item that will be crafted</param>
public static void CraftItem(CraftingRecipe itemRecipe) {
foreach (var itemAndCount in itemRecipe.GetRequiredItemsAndCounts()) {
for(int i = 0, removedItems = 0; i < LMI.Player.Inventory.Items.Length && removedItems < itemAndCount.Value; i++) {
- if (LMI.Player.Inventory.Items[i].stock_id == itemAndCount.Key.stock_id) {
- LMI.Player.Inventory.Items[i] = null;
- removedItems++;
+ if (LMI.Player.Inventory.Items[i] != null) {
+ if (LMI.Player.Inventory.Items[i].stock_id == itemAndCount.Key.stock_id) {
+ LMI.Player.Inventory.Items[i] = null;
+ removedItems++;
+ }
}
}
}
@@ -56,6 +64,8 @@ namespace Mundus.Service.Crafting {
tmp = new Structure((Structure)itemRecipe.ResultItem);
}
LMI.Player.Inventory.AppendToItems(tmp);
+
+ Data.Windows.WI.SelWin.PrintInventory();
}
}
} \ No newline at end of file
diff --git a/Mundus/Service/Mobs/MobTerraforming.cs b/Mundus/Service/Mobs/MobTerraforming.cs
index 93854de..c05e645 100644
--- a/Mundus/Service/Mobs/MobTerraforming.cs
+++ b/Mundus/Service/Mobs/MobTerraforming.cs
@@ -11,7 +11,7 @@ namespace Mundus.Service.Mobs {
var selTool = (Tool)LMI.Player.Inventory.GetTile(place, index);
var selStructure = LMI.Player.CurrSuperLayer.GetStructureLayerTile(mapYPos, mapXPos);
- if (selStructure.ReqToolType == selTool.Type && selStructure.ReqToolClass == selTool.Class) {
+ if (selStructure.ReqToolType == selTool.Type && selStructure.ReqToolClass <= selTool.Class) {
if (LMI.Player.Inventory.Items.Any(x => x == null)) {
LMI.Player.Inventory.AppendToItems(new Material(selStructure.DroppedMaterial.stock_id));
diff --git a/Mundus/Views/Windows/CraftingWindow.cs b/Mundus/Views/Windows/CraftingWindow.cs
index 1e1b47c..5037226 100644
--- a/Mundus/Views/Windows/CraftingWindow.cs
+++ b/Mundus/Views/Windows/CraftingWindow.cs
@@ -17,6 +17,9 @@ namespace Mundus.Views.Windows {
this.Hide();
}
+ /// <summary>
+ /// Resets visuals and prepares avalable recipes for current items in inventory
+ /// </summary>
public void Initialize() {
Reset();
CraftingController.FindAvalableItems();
diff --git a/Mundus/Views/Windows/IGameWindow.cs b/Mundus/Views/Windows/IGameWindow.cs
index aefdfc7..95f8636 100644
--- a/Mundus/Views/Windows/IGameWindow.cs
+++ b/Mundus/Views/Windows/IGameWindow.cs
@@ -10,6 +10,7 @@ namespace Mundus.Views.Windows {
void PrintScreen();
void PrintMap();
void PrintMainMenu();
+ void PrintInventory();
void PrintSelectedItemInfo(ItemTile itemTile);
//Stuff that are in Gtk.Window class
diff --git a/Mundus/Views/Windows/LargeGameWindow.cs b/Mundus/Views/Windows/LargeGameWindow.cs
index 5d20421..5d10c73 100644
--- a/Mundus/Views/Windows/LargeGameWindow.cs
+++ b/Mundus/Views/Windows/LargeGameWindow.cs
@@ -37,5 +37,9 @@ namespace Mundus.Views.Windows {
public void PrintSelectedItemInfo(ItemTile itemTile) {
throw new NotImplementedException();
}
+
+ public void PrintInventory() {
+ throw new NotImplementedException();
+ }
}
}
diff --git a/Mundus/Views/Windows/MediumGameWindow.cs b/Mundus/Views/Windows/MediumGameWindow.cs
index 29f75a6..a0d49f3 100644
--- a/Mundus/Views/Windows/MediumGameWindow.cs
+++ b/Mundus/Views/Windows/MediumGameWindow.cs
@@ -37,5 +37,9 @@ namespace Mundus.Views.Windows {
public void PrintSelectedItemInfo(ItemTile itemTile) {
throw new NotImplementedException();
}
+
+ public void PrintInventory() {
+ throw new NotImplementedException();
+ }
}
}