added logic to layout

This commit is contained in:
Wyatt J. Miller 2020-09-24 22:46:42 -04:00
parent 3634ac9da4
commit 0c16d2798b
2 changed files with 122 additions and 1 deletions

View File

@ -6,10 +6,13 @@ import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.TextView
import kotlin.random.Random
import kotlin.random.nextInt
class DiceActivity : AppCompatActivity() {
// Private member variables per the layout
private lateinit var mMetaStatusTextView: TextView
private lateinit var mDiceTextView: TextView
private lateinit var mRollButton: Button
@ -21,10 +24,11 @@ class DiceActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_dice)
mMetaStatusTextView = findViewById(R.id.metaStatusTextView)
mDiceTextView = findViewById(R.id.diceTextView)
mRollButton = findViewById(R.id.rollButton)
// I realize that you toggle visability in xml
// I realize that you toggle visibility in xml
mDiceTextView.visibility = View.INVISIBLE
}
@ -53,6 +57,25 @@ class DiceActivity : AppCompatActivity() {
super.onDestroy()
}
// code behind for the 'roll d4' button
fun onClickDieFourRoll(view: View?) {
val item: Array<FourDie> = FourDie.values()
when (Randomizer().randomDieRoll(item)) {
0 -> mDieStatus = FourDie.One
1 -> mDieStatus = FourDie.Two
2 -> mDieStatus = FourDie.Three
3 -> mDieStatus = FourDie.Four
}
mMetaStatusTextView.text = "You have rolled a D4!"
mDiceTextView.text = mDieStatus.toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
mDiceTextView.visibility = View.VISIBLE
}
}
// code behind for the 'roll' button
fun onClickDieRoll(view: View?) {
val item: Array<SixDie> = SixDie.values()
@ -65,6 +88,7 @@ class DiceActivity : AppCompatActivity() {
5 -> mDieStatus = SixDie.Six
}
mMetaStatusTextView.text = "You have rolled a D6!"
mDiceTextView.text = mDieStatus.toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
@ -72,6 +96,29 @@ class DiceActivity : AppCompatActivity() {
}
}
// code behind for the 'roll d8' button
fun onClickDieEightRoll(view: View?) {
val item: Array<EightDie> = EightDie.values()
when (Randomizer().randomDieRoll(item)) {
0 -> mDieStatus = EightDie.One
1 -> mDieStatus = EightDie.Two
2 -> mDieStatus = EightDie.Three
3 -> mDieStatus = EightDie.Four
4 -> mDieStatus = EightDie.Five
5 -> mDieStatus = EightDie.Six
6 -> mDieStatus = EightDie.Seven
7 -> mDieStatus = EightDie.Eight
}
mMetaStatusTextView.text = "You have rolled a D8!"
mDiceTextView.text = mDieStatus.toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
mDiceTextView.visibility = View.VISIBLE
}
}
// code behind for the 'roll d10' button
fun onClickDieTenRoll(view: View?) {
val item: Array<TenDie> = TenDie.values()
when (Randomizer().randomDieRoll(item)) {
@ -87,6 +134,7 @@ class DiceActivity : AppCompatActivity() {
9 -> mDieStatus = TenDie.Ten
}
mMetaStatusTextView.text = "You have rolled a D10!"
mDiceTextView.text = mDieStatus.toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
@ -94,6 +142,34 @@ class DiceActivity : AppCompatActivity() {
}
}
// code behind the 'roll d12' button
fun onClickDieTwelveRoll(view: View?) {
val item: Array<TwelveDie> = TwelveDie.values()
when (Randomizer().randomDieRoll(item)) {
0 -> mDieStatus = TwelveDie.One
1 -> mDieStatus = TwelveDie.Two
2 -> mDieStatus = TwelveDie.Three
3 -> mDieStatus = TwelveDie.Four
4 -> mDieStatus = TwelveDie.Five
5 -> mDieStatus = TwelveDie.Six
6 -> mDieStatus = TwelveDie.Seven
7 -> mDieStatus = TwelveDie.Eight
8 -> mDieStatus = TwelveDie.Nine
9 -> mDieStatus = TwelveDie.Ten
10 -> mDieStatus = TwelveDie.Eleven
11 -> mDieStatus = TwelveDie.Twelve
}
mMetaStatusTextView.text = "You have rolled a D12!"
mDiceTextView.text = mDieStatus.toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
mDiceTextView.visibility = View.VISIBLE
}
}
// code behind the 'roll d20' button
fun onClickDieTwentyRoll(view: View?) {
val item: Array<TwentyDie> = TwentyDie.values()
when (Randomizer().randomDieRoll(item)) {
@ -119,10 +195,22 @@ class DiceActivity : AppCompatActivity() {
19 -> mDieStatus = TwentyDie.Twenty
}
mMetaStatusTextView.text = "You have rolled a D20!"
mDiceTextView.text = mDieStatus.toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
mDiceTextView.visibility = View.VISIBLE
}
}
// code behind the 'roll d100' button
// I'm not going to make an enum that's a hundred lines long lol
fun onClickDie100Roll(view: View?) {
mMetaStatusTextView.text = "You have rolled a D100!"
mDiceTextView.text = Random.nextInt(0..100).toString()
if (mDiceTextView.visibility == View.INVISIBLE) {
mDiceTextView.visibility = View.VISIBLE
}
}
}

View File

@ -1,5 +1,12 @@
package com.wyattjmiller.dicerollerapp
enum class FourDie : Die {
One,
Two,
Three,
Four
}
enum class SixDie : Die {
One,
Two,
@ -9,6 +16,17 @@ enum class SixDie : Die {
Six
}
enum class EightDie : Die {
One,
Two,
Three,
Four,
Five,
Six,
Seven,
Eight
}
enum class TenDie : Die {
One,
Two,
@ -22,6 +40,21 @@ enum class TenDie : Die {
Ten
}
enum class TwelveDie : Die {
One,
Two,
Three,
Four,
Five,
Six,
Seven,
Eight,
Nine,
Ten,
Eleven,
Twelve,
}
enum class TwentyDie : Die {
One,
Two,