Anda di halaman 1dari 9

KELOMPOK STUDI MAHASISWA ANDROID

UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN JAKARTA

TUGAS 2
Laporan Progress Final Project

Disusun Oleh:
Farhan Abu Bakar - 2210512165

Mentor:
1. Rama D.
2. Gracia

PEMINATAN KOTLIN BASIC


GANJIL
2023
LAPORAN PROGRESS FINAL PROJECT

Judul Deskripsi Project Pencapaian Kendala

Program Guide dengan tujuan menuntun


pengguna baru agar bisa mengetahui lebih
1. Menu utama
dalam gamenya, didalam programnya ada
2. Class Character, LightCone,
sistem info character dan skillsetnya secara
dam MekanikBattle Bingung menentukan package
singkat, best light cone nya, best
3. Enum Class element dan
Honkai: Star Rail Guide relic/planarnya, dan best teamcomp. Ini juga Pada menu Battle mechanic outputnya
MechanicGuide tidak sesuai
berlaku pada menu Light Cone yang
4. Interface Guide
menunjukkan Light Cone itu cocok pada Enum class yang tidak terpakai

character siapa saja. Pada menu Game


mekanik, pengguna bisa mengetahui mekanik
game lebih lanjut juga.
Bukti Pencapaian

import honkaiStarRail.Element

open class Character(


val name: String,
val element: Element,
val description: String
) {
open fun basicAttack() {
// Implementation of basic attack
}

open fun useSkill(skillPoints: Int) {


// Implementation of using skill
}

open fun useUltimate() {


// Implementation of ultimate ability
}
}

class DanHengIL : Character(


"Dan Heng IL",
Element.IMAGINARY,
"[character] adalah character dengan path destruction elemen imaginary yang memiliki dmg yang kuat dalam
penyerangan single atau 3 enemy sekaligus memakai 3 sp basic attacknya"
) {
override fun basicAttack() {
// Implementation of Dan Heng IL's basic attack
}

override fun useSkill(skillPoints: Int) {


// Implementation of Dan Heng IL's skill usage
}

override fun useUltimate() {


// Implementation of Dan Heng IL's ultimate ability
}
}
Class Character

package honkaiStarRail

enum class Element {


IMAGINARY, PHYSICAL, QUANTUM
}
Enum class element
interface Guide {
fun showGuide(): String
}
Interface Guide

class LightCone(val name: String, val description: String) {


fun detailsForCharacter(vararg characters: Character): String {
val suitableFor = characters.joinToString { it.name }
return "Light Cone ini cocok untuk: $suitableFor"
}
}
Classs Light Cone

fun main() {
val danHengIL = DanHengIL()
val lightConeA = LightCone("A", "[String Light Cone] melakukan ........")

println("Selamat datang di guide honkai star rail")


var choice = 0

while (choice != 4) {
println("\nSilahkan pilih guide\n" +
"1. Characters\n" +
"2. Light Cone\n" +
"3. Mekanik Battle\n" +
"4. Keluar")
print("Pilih : ")
choice = readlnOrNull()?.toIntOrNull() ?: 0
when (choice) {
1 -> {
var characterChoice = 0
while (characterChoice != 3) {
println("\nCharacters\n" +
"1. Dan Heng IL\n" +
"2. Jing Liu\n" +
"3. Kembali")
print("Pilih : ")
characterChoice = readlnOrNull()?.toIntOrNull() ?: 0

when (characterChoice) {
1 -> {
val danHengILDescription = danHengIL.description.replace("[character]", danHengIL.name)
println(danHengILDescription)
danHengIL.basicAttack()
danHengIL.useSkill(5)
danHengIL.useUltimate()
val suitableLightCone = lightConeA.detailsForCharacter(danHengIL)
println("Light Cone yang cocok untuk Dan Heng IL adalah $suitableLightCone")

val questionChoice = 0
MekanikBattle.showGuideFor(questionChoice)
}
2 -> {
// Handle Jing Liu details
// Similar to Dan Heng IL
}
}
}
}
2 -> {
var lightConeChoice = 0
while (lightConeChoice != 3) {
println("\nLight Cone\n" +
"1. A\n" +
"2. B\n" +
"3. Kembali")
print("Pilih : ")
lightConeChoice = readLine()?.toIntOrNull() ?: 0

when (lightConeChoice) {
1 -> {
val suitableForDanHengIL = lightConeA.detailsForCharacter(danHengIL)
val description = lightConeA.description.replace("[String Light Cone]", lightConeA.name)
println("$description melakukan ........ untuk $suitableForDanHengIL")
}
2 -> {
// Handle Light Cone B details
// Similar to Light Cone A
}
}
}
}

3 -> {
var questionChoice = 0
while (questionChoice != 4) {
println("\nMekanik Battle\n" +
"1. Apa itu skill poin?\n" +
"2. Apa itu elemen?\n" +
"3. Jenis Enemy apa saja?\n" +
"4. Tidak (langsung kembali ke menu utama)")
print("Pilih : ")
questionChoice = readLine()?.toIntOrNull() ?: 0

MekanikBattle.showGuideFor(questionChoice)
}
}
}
}
println("Terima kasih telah menggunakan guide honkai star rail!")
}
Menu Utama
enum class MechanicGuide(val guide: String) {
SKILL_POINT("Skill point adalah ..........."),
ELEMENT("Elemen adalah ..........."),
PATH("Path adalah ...........")
}
Enum class mechanicguide

class MekanikBattle {
fun showGuideFor(questionChoice: Int) {
when (questionChoice) {
1 -> println(MechanicGuide.SKILL_POINT.guide)
2 -> println(MechanicGuide.ELEMENT.guide)
3 -> println(MechanicGuide.PATH.guide)
}
}

companion object {
fun showGuideFor(questionChoice: Int) {

}
}
}
Class mekanik battle

Anda mungkin juga menyukai