diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt index 602686b..54e27ef 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt @@ -26,6 +26,7 @@ class CraftFragment : Fragment() { private lateinit var image: ImageView private lateinit var name: TextView private lateinit var buttonForge: Button + private lateinit var buttonForgeMax: Button private lateinit var numberCraftable: TextView val viewModel : MainViewModel by activityViewModels() @@ -66,6 +67,7 @@ class CraftFragment : Fragment() { private fun initializeViews(view: View, currentPlayer: Player) { buttonBack = view.findViewById(R.id.backbutton) buttonForge = view.findViewById(R.id.buttonForge) + buttonForgeMax = view.findViewById(R.id.buttonForgeMax) numberCraftable = view.findViewById(R.id.craftableNumber) buttonBack.setOnClickListener{ @@ -76,6 +78,8 @@ class CraftFragment : Fragment() { image.setImageResource(recipe.item.type.image) name.text = recipe.item.type.name buttonForge.isEnabled = RecipeManager.isCraftable(recipe,currentPlayer) + buttonForgeMax.isEnabled = RecipeManager.isCraftable(recipe,currentPlayer) + buttonForgeMax.text = "CRAFT MAX (${RecipeManager.HowManyCraftable(recipe, currentPlayer)})" numberCraftable.text = RecipeManager.HowManyCraftable(recipe,currentPlayer).toString() buttonForge.setOnClickListener{ @@ -83,6 +87,11 @@ class CraftFragment : Fragment() { initializeViews(view, currentPlayer) setUpRecyclerView(view, currentPlayer) } + buttonForgeMax.setOnClickListener{ + currentPlayer.craft(recipe, RecipeManager.HowManyCraftable(recipe, currentPlayer)) + initializeViews(view, currentPlayer) + setUpRecyclerView(view, currentPlayer) + } } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt index 2babcdf..65ecaaf 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt @@ -66,19 +66,21 @@ class Player(var pseudo: String, var xp: Int = 0) { return false } - fun craft(recipe: Recipe) : Boolean{ + fun craft(recipe: Recipe, count: Int = 1) : Boolean{ println("test") - for (ingredient in recipe.ingredients) { - val searchedItem = items.find { it.type.name == ingredient.type.name } - if(searchedItem != null) { - searchedItem.stack -= ingredient.stack - if (searchedItem.stack == 0){ - items.remove(searchedItem) + for (i in 1..count) { + for (ingredient in recipe.ingredients) { + val searchedItem = items.find { it.type.name == ingredient.type.name } + if (searchedItem != null) { + searchedItem.stack -= ingredient.stack + if (searchedItem.stack == 0) { + items.remove(searchedItem) + } } } + println("item:" + recipe.item.stack) + addItem(recipe.item) } - println("item:"+recipe.item.stack) - addItem(recipe.item) return true } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt index a806d17..d53406e 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/RecipeManager.kt @@ -79,7 +79,6 @@ class RecipeManager { return 0 else{ for(element in recipe.ingredients){ - println("cc") val itemSearch = player.items.find { it.type.name == element.type.name } if(itemSearch!= null) divisedList.add(itemSearch.stack / element.stack) diff --git a/ShakeAndCraft/app/src/main/res/layout/fragment_craft.xml b/ShakeAndCraft/app/src/main/res/layout/fragment_craft.xml index 7de810d..136c2ab 100644 --- a/ShakeAndCraft/app/src/main/res/layout/fragment_craft.xml +++ b/ShakeAndCraft/app/src/main/res/layout/fragment_craft.xml @@ -24,7 +24,7 @@ android:id="@+id/backbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="left|center_vertical" + android:layout_gravity="start|center_vertical" android:focusable="true" android:drawableStart="@drawable/back" android:drawableTint="@color/blue" @@ -130,19 +130,34 @@ +