From 114f329337a8fe66a2ca4abb8901115126175885 Mon Sep 17 00:00:00 2001 From: Lucas Delanier Date: Mon, 13 Mar 2023 22:15:44 +0100 Subject: [PATCH] Add player image on home screen and color to indicate not enough resource to craft :movie_camera: --- .../com/example/shakecraft/CraftFragment.kt | 4 +- .../com/example/shakecraft/HomeFragment.kt | 4 ++ .../java/com/example/shakecraft/data/Stub.kt | 1 + .../com/example/shakecraft/model/Player.kt | 47 ++++++------------ .../view/adapter/AdapterMaterials.kt | 9 +++- .../src/main/res/drawable/player_image.png | Bin 0 -> 4669 bytes .../app/src/main/res/layout/fragment_home.xml | 23 +++++++-- 7 files changed, 46 insertions(+), 42 deletions(-) create mode 100644 ShakeAndCraft/app/src/main/res/drawable/player_image.png 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 7d92d27..ad53829 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/CraftFragment.kt @@ -56,8 +56,8 @@ class CraftFragment : Fragment() { recyclerViewMaterials = view.findViewById(R.id.RecyclerviewMaterials) with(recyclerViewMaterials) { layoutManager = LinearLayoutManager(view.context) - if(recipe.type == "Objects") - adapter = AdapterMaterials(recipe.ingredients, currentPlayer) + adapter = AdapterMaterials(recipe.ingredients, currentPlayer) + } } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/HomeFragment.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/HomeFragment.kt index 0f19267..4a37742 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/HomeFragment.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/HomeFragment.kt @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout @@ -23,6 +24,7 @@ class HomeFragment : Fragment() { private lateinit var buttonCollect : ConstraintLayout private lateinit var buttonBoss : ConstraintLayout private lateinit var buttonForge : ConstraintLayout + private lateinit var playermage : ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -47,6 +49,7 @@ class HomeFragment : Fragment() { rank = view.findViewById(R.id.rankTextView) maxXp = view.findViewById(R.id.maxXpTextView) xp = view.findViewById(R.id.xpTextView) + playermage = view.findViewById(R.id.playerImage) buttonCollect = view.findViewById(R.id.buttonCollect) buttonCollect.setOnClickListener{ findNavController().navigate(R.id.action_homeFragment_to_collectFragment, null, NavOptions.Builder().setPopUpTo(R.id.homeFragment, false).build()) @@ -66,6 +69,7 @@ class HomeFragment : Fragment() { maxXp.text = (currentPlayer.level*100).toString() progressbar.progress = currentPlayer.xp progressbar.max = currentPlayer.level*100 + playermage.setImageResource(currentPlayer.image) } diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt index 2c1b20d..7265d3d 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt @@ -11,6 +11,7 @@ class Stub { val currentPlayer = Player("Winker",0) val items : MutableList = mutableListOf() items.add(Item(type = ITEMS.BEECH_LOG.itemtype, stack = 30)) + items.add(Item(type = ITEMS.BRONZE_INGOT.itemtype, stack = 30)) currentPlayer.items = items return 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 8a136c8..2949d97 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 @@ -1,45 +1,26 @@ package com.example.shakecraft.model +import com.example.shakecraft.R + class Player(val pseudo: String, var xp: Int = 0) { var level: Int = 1 - + val image: Int = R.drawable.player_image var items: MutableList = mutableListOf() var rank: String = "Beginner" fun changeRank(){ - if(this.level<=2){ - this.rank = "Beginner" - } - else if(this.level<=5){ - this.rank = "Intermediate" - } - else if(this.level<=8){ - this.rank = "Proficient" - } - else if(this.level<=11){ - this.rank = "Expert" - } - else if(this.level<=14){ - this.rank = "Master" - } - else if(this.level<=17){ - this.rank = "Professional" - } - else if(this.level<=20){ - this.rank = "Champion" - } - else if(this.level<=23){ - this.rank = "Beginner" - } - else if(this.level<=26){ - this.rank = "Legend" - } - else if(this.level<=29){ - this.rank = "Invincible" - } - else if(this.level<=32){ - this.rank = "Divine" + this.rank = when(level){ + in 1..2 -> "Beginner" + in 3..5 -> "Intermediate" + in 6..8 -> "Proficient" + in 9..11 -> "Expert" + in 12..14 -> "Master" + in 15..17 -> "Professional" + in 18..19 -> "Champion" + in 20..22 -> "Legend" + in 23..25 -> "Invincible" + else -> {"Divine"} } } fun addItem(item: Item) { diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt index b2a9a81..ab28f20 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/view/adapter/AdapterMaterials.kt @@ -1,5 +1,6 @@ package com.example.shakecraft.view.adapter +import android.graphics.Color import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -34,9 +35,13 @@ class AdapterMaterials(private val materials: List, val currentplayer: Pla textView.text = item.type.name val itemSearch = currentplayer.items.find { it.type.name == item.type.name } textViewNumberNeeded.text = item.stack.toString() - textViewNumberPlayer.text = if (itemSearch != null) itemSearch.stack.toString() else "0" - + textViewNumberPlayer.text = itemSearch?.stack?.toString() ?: "0" imageView.setImageResource(item.type.image) + if (itemSearch != null) { + if(item.stack > itemSearch.stack) textViewNumberPlayer.setTextColor(Color.RED) else textViewNumberPlayer.setTextColor(Color.WHITE) + + } + else textViewNumberPlayer.setTextColor(Color.RED) } } diff --git a/ShakeAndCraft/app/src/main/res/drawable/player_image.png b/ShakeAndCraft/app/src/main/res/drawable/player_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c1fbfd4a4521420a77037fbb2be37690e8ede645 GIT binary patch literal 4669 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 Rgugui9Zdrbgqls%e*n6#+B*OM literal 0 HcmV?d00001 diff --git a/ShakeAndCraft/app/src/main/res/layout/fragment_home.xml b/ShakeAndCraft/app/src/main/res/layout/fragment_home.xml index 2a87f89..da2ef7d 100644 --- a/ShakeAndCraft/app/src/main/res/layout/fragment_home.xml +++ b/ShakeAndCraft/app/src/main/res/layout/fragment_home.xml @@ -43,12 +43,25 @@ android:orientation="horizontal" app:layout_constraintStart_toStartOf="parent"> - + android:layout_marginVertical="10dp"> + + + +