All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.com.bselzer.gw2.v2.model.profession.Profession.kt Maven / Gradle / Ivy

The newest version!
package com.bselzer.gw2.v2.model.profession

import com.bselzer.gw2.v2.model.enumeration.wrapper.ProfessionFlag
import com.bselzer.gw2.v2.model.enumeration.wrapper.WeaponType
import com.bselzer.gw2.v2.model.skill.SkillCode
import com.bselzer.gw2.v2.model.skill.SkillId
import com.bselzer.gw2.v2.model.specialization.SpecializationId
import com.bselzer.gw2.v2.model.wrapper.ImageLink
import com.bselzer.ktx.serialization.serializer.MapArraySerializer
import com.bselzer.ktx.value.identifier.Identifiable
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class Profession(
    @SerialName("id")
    override val id: ProfessionId = ProfessionId(),

    @SerialName("name")
    val name: String = "",

    /**
     * The id used in build template chat links.
     * @see the wiki
     */
    @SerialName("code")
    val code: SkillCode = SkillCode(),

    @SerialName("icon")
    val iconLink: ImageLink = ImageLink(),

    @SerialName("icon_big")
    val iconLinkBig: ImageLink = ImageLink(),

    /**
     * The ids of the specializations that can be chosen.
     * @see the wiki
     */
    @SerialName("specializations")
    val specializationIds: List = emptyList(),

    @SerialName("training")
    val trainings: List = emptyList(),

    /**
     * The weapon types mapped to its details.
     */
    @SerialName("weapons")
    val weapons: Map = emptyMap(),

    @SerialName("flags")
    val flags: List = emptyList(),

    @SerialName("skills")
    val skills: List = emptyList(),

    /**
     * A mapping of the skill ids to palette ids used in creating a build template chat link.
     * @see the wiki
     */
    @Serializable(with = MapArraySerializer::class)
    @SerialName("skills_by_palette")
    val skillPaletteIds: Map = emptyMap()
) : Identifiable




© 2015 - 2024 Weber Informatics LLC | Privacy Policy