commonMain.com.bselzer.gw2.v2.model.skill.Skill.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of v2-model-jvm Show documentation
Show all versions of v2-model-jvm Show documentation
Guild Wars 2 API models for v2-client.
The newest version!
package com.bselzer.gw2.v2.model.skill
import com.bselzer.gw2.v2.model.enumeration.wrapper.*
import com.bselzer.gw2.v2.model.profession.ProfessionId
import com.bselzer.gw2.v2.model.skill.fact.SkillFact
import com.bselzer.gw2.v2.model.specialization.SpecializationId
import com.bselzer.gw2.v2.model.wrapper.ChatLink
import com.bselzer.gw2.v2.model.wrapper.ImageLink
import com.bselzer.ktx.value.identifier.Identifiable
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Skill(
@SerialName("id")
override val id: SkillId = SkillId(),
@SerialName("name")
val name: String = "",
@SerialName("description")
val description: String = "",
@SerialName("icon")
val iconLink: ImageLink = ImageLink(),
@SerialName("chat_link")
val chatLink: ChatLink = ChatLink(),
@SerialName("type")
val type: SkillType = SkillType(),
/**
* The required weapon type.
*/
@SerialName("weapon_type")
val weaponType: WeaponType = WeaponType(),
/**
* The professions that can use this skill.
*/
@SerialName("professions")
val professions: List = emptyList(),
/**
* The slot and/or slot number this skill belongs to.
*/
@SerialName("slot")
val slot: SkillSlot = SkillSlot(),
/**
* The information about this skill's effects.
*/
@SerialName("facts")
val facts: List = emptyList(),
/**
* The information about this skill's effects dependent on selected traits.
*/
@SerialName("traited_facts")
val traitedFacts: List = emptyList(),
@SerialName("categories")
val categories: List = emptyList(),
/**
* The required attunement. For Elementalists only.
*/
@SerialName("attunement")
val attunement: AttunementName = AttunementName(),
/**
* The required secondary attunement. For Weavers only.
*/
@SerialName("dual_attunement")
val dualAttunement: AttunementName = AttunementName(),
/**
* The energy cost. For Revenants, Warriors, and Druids only.
*/
@SerialName("cost")
val cost: Int = 0,
/**
* The weapon type of the required offhand. For Thieves only.
*/
@SerialName("dual_wield")
val dualWield: WeaponType = WeaponType(),
/**
* The id of the skill that "flips over" when this skill is used. Examples include Engineer toolkits and Herald facets.
* @see the wiki
*/
@SerialName("flip_skill")
val flipId: SkillId = SkillId(),
/**
* The amount of initiative required and used to perform the skill. For Thieves only.
*/
@SerialName("initiative")
val initiativeCost: Int = 0,
/**
* The id of the next skill in a chain of skills.
* @see the wiki
*/
@SerialName("next_chain")
val nextChainId: SkillId = SkillId(),
/**
* The id of the previous skill in a chain of skills.
* @see the wiki
*/
@SerialName("prev_chain")
val previousChainId: SkillId = SkillId(),
/**
* The id of the elite specialization required.
* @see the wiki
*/
@SerialName("specialization")
val specializationId: SpecializationId = SpecializationId(),
/**
* The ids of the transformation skills that replace the skill bar upon use of this skill.
* @see the wiki
*/
@SerialName("transform_skills")
val transformIds: List = emptyList(),
/**
* The ids of the bundle skills that replace the skill bar upon use of this skill.
* @see the wiki
*/
@SerialName("bundle_skills")
val bundleIds: List = emptyList(),
/**
* The id of the associated toolbelt skill id. For Engineers only.
*/
@SerialName("toolbelt_skill")
val toolbeltId: SkillId = SkillId(),
@SerialName("flags")
val flags: List = emptyList()
) : Identifiable