UNPKG

maplestory-openapi

Version:

This JavaScript library enables the use of the MapleStory OpenAPI of Nexon.

2,294 lines (2,292 loc) 67.1 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /** * 연무장 입장 시 캐릭터 능력치 관련 정보 */ class BattlePracticeCharacterInfoDto { /** * 캐릭터 기본 정보 */ basicObject; /** * 캐릭터 스탯 정보 */ statObject; /** * 캐릭터 하이퍼스탯 정보 */ hyperStatObject; /** * 캐릭터 성향 정보 */ propensityObject; /** * 캐릭터 어빌리티 정보 */ abilityObject; /** * 캐릭터 장비 정보 */ itemObject; /** * 캐릭터 캐시 장비 정보 */ cashItemObject; /** * 캐릭터 펫 장비 정보 */ petObject; /** * 캐릭터 스킬 정보 */ skillObject; /** * 캐릭터 링크 스킬 정보 */ linkSkillObject; /** * 캐릭터 V매트릭스 정보 */ vMatrixObject; /** * 캐릭터 HEXA 매트릭스 정보 */ hexaMatrixObject; /** * 캐릭터 예비 특수 반지 장착 정보 */ ringReserveSkillObject; /** * 유니온 공격대 정보 */ unionRaiderObject; /** * 유니온 아티팩트 정보 */ unionArtifactObject; /** * 유니온 챔피언 정보 */ unionChampionObject; /** * 길드 정보 */ guildObject; constructor(obj) { this.basicObject = obj.basic_object ? new BattlePracticeCharacterBasicDto(obj.basic_object) : null; this.statObject = obj.stat_object ? new BattlePracticeCharacterStatDto(obj.stat_object) : null; this.hyperStatObject = obj.hyper_stat_object ? new BattlePracticeCharacterHyperStatObjectDto(obj.hyper_stat_object) : null; this.propensityObject = obj.propensity_object ? new BattlePracticeCharacterPropensityDto(obj.propensity_object) : null; this.abilityObject = obj.ability_object ? new BattlePracticeCharacterAbilityObjectDto(obj.ability_object) : null; this.itemObject = obj.item_object ? new BattlePracticeCharacterItemObjectDto(obj.item_object) : null; this.cashItemObject = obj.cash_item_object ? new BattlePracticeCharacterCashItemObjectDto(obj.cash_item_object) : null; this.petObject = obj.pet_object ? new BattlePracticeCharacterPetObjectDto(obj.pet_object) : null; this.skillObject = obj.skill_object ? new BattlePracticeCharacterSkillObjectDto(obj.skill_object) : null; this.linkSkillObject = obj.link_skill_object ? new BattlePracticeCharacterLinkSkillObjectDto(obj.link_skill_object) : null; this.vMatrixObject = obj.v_matrix_object ? new BattlePracticeCharacterVMatrixObjectDto(obj.v_matrix_object) : null; this.hexaMatrixObject = obj.hexa_matrix_object ? new BattlePracticeCharacterHexaMatrixObjectDto(obj.hexa_matrix_object) : null; this.ringReserveSkillObject = obj.ring_reserve_skill_object ? new BattlePracticeCharacterRingReserveSkillObjectDto(obj.ring_reserve_skill_object) : null; this.unionRaiderObject = obj.union_raider_object ? new BattlePracticeUnionRaiderObjectDto(obj.union_raider_object) : null; this.unionArtifactObject = obj.union_artifact_object ? new BattlePracticeUnionArtifactObjectDto(obj.union_artifact_object) : null; this.unionChampionObject = obj.union_champion_object ? new BattlePracticeUnionChampionObjectDto(obj.union_champion_object) : null; this.guildObject = obj.guild_object ? new BattlePracticeGuildObjectDto(obj.guild_object) : null; } } /** * 연무장 입장 시 캐릭터 기본 정보 */ class BattlePracticeCharacterBasicDto { /** * 캐릭터 명 */ characterName; /** * 캐릭터 레벨 */ characterLevel; /** * 캐릭터 직업 */ characterClass; /** * 캐릭터 전직 차수 */ characterClassLevel; /** * 캐릭터 외형 이미지 */ characterImage; constructor(obj) { this.characterName = obj.character_name; this.characterLevel = obj.character_level; this.characterClass = obj.character_class; this.characterClassLevel = obj.character_class_level; this.characterImage = obj.character_image; } } /** * 연무장 입장 시 캐릭터 스탯 관련 정보 */ class BattlePracticeCharacterStatDto { /** * 스탯 정보 */ basicStatObject; /** * 장착 심볼 정보 */ symbolStatObject; /** * 기타 능력치 영향 요소 */ otherStatObject; constructor(obj) { this.basicStatObject = new BattlePracticeCharacterBasicStatDto(obj.basic_stat_object); this.symbolStatObject = new BattlePracticeCharacterSymbolStatDto(obj.symbol_stat_object); this.otherStatObject = new BattlePracticeCharacterOtherStatDto(obj.other_stat_object); } } /** * 연무장 입장 시 캐릭터 스탯 정보 */ class BattlePracticeCharacterBasicStatDto { /** * 현재 스탯 정보 */ finalStat; constructor(obj) { this.finalStat = obj.final_stat.map((s) => new BattlePracticeCharacterFinalStatDto(s)); } } /** * 연무장 입장 시 캐릭터 현재 스탯 정보 */ class BattlePracticeCharacterFinalStatDto { /** * 스탯 명 */ statName; /** * 스탯 값 */ statValue; constructor(obj) { this.statName = obj.stat_name; this.statValue = obj.stat_value; } } /** * 연무장 입장 시 캐릭터 장착 심볼 스탯 정보 */ class BattlePracticeCharacterSymbolStatDto { /** * 심볼 정보 */ symbol; constructor(obj) { this.symbol = obj.symbol.map((s) => new BattlePracticeCharacterSymbolDto(s)); } } /** * 연무장 입장 시 캐릭터 장착 심볼 정보 */ class BattlePracticeCharacterSymbolDto { /** * 심볼 명 */ symbolName; /** * 심볼 아이콘 */ symbolIcon; /** * 심볼 설명 */ symbolDescription; /** * 심볼 부가 효과 설명 */ symbolOtherEffectDescription; /** * 심볼로 인한 증가 수치 */ symbolForce; /** * 심볼 레벨 */ symbolLevel; /** * 심볼로 증가한 힘 */ symbolStr; /** * 심볼로 증가한 민첩 */ symbolDex; /** * 심볼로 증가한 지력 */ symbolInt; /** * 심볼로 증가한 운 */ symbolLuk; /** * 심볼로 증가한 체력 */ symbolHp; /** * 심볼로 증가한 아이템 드롭률 */ symbolDropRate; /** * 심볼로 증가한 메소 획득량 */ symbolMesoRate; /** * 심볼로 증가한 경험치 획득량 */ symbolExpRate; /** * 현재 보유 성장치 */ symbolGrowthCount; /** * 성장 시 필요한 성장치 */ symbolRequireGrowthCount; constructor(obj) { this.symbolName = obj.symbol_name; this.symbolIcon = obj.symbol_icon; this.symbolDescription = obj.symbol_description; this.symbolOtherEffectDescription = obj.symbol_other_effect_description; this.symbolForce = obj.symbol_force; this.symbolLevel = obj.symbol_level; this.symbolStr = obj.symbol_str; this.symbolDex = obj.symbol_dex; this.symbolInt = obj.symbol_int; this.symbolLuk = obj.symbol_luk; this.symbolHp = obj.symbol_hp; this.symbolDropRate = obj.symbol_drop_rate; this.symbolMesoRate = obj.symbol_meso_rate; this.symbolExpRate = obj.symbol_exp_rate; this.symbolGrowthCount = obj.symbol_growth_count; this.symbolRequireGrowthCount = obj.symbol_require_growth_count; } } /** * 연무장 입장 시 캐릭터 기타 능력치 영향 요소 */ class BattlePracticeCharacterOtherStatDto { /** * 능력치에 영향을 주는 요소 및 스탯 정보 */ otherStat; constructor(obj) { this.otherStat = obj.other_stat.map((s) => new BattlePracticeCharacterOtherStatDetailDto(s)); } } /** * 연무장 입장 시 캐릭터 능력치에 영향을 주는 요소 및 스탯 정보 */ class BattlePracticeCharacterOtherStatDetailDto { /** * 스탯 타입 */ otherStatType; /** * 스탯 정보 */ statInfo; constructor(obj) { this.otherStatType = obj.other_stat_type; this.statInfo = obj.stat_info.map((s) => new BattlePracticeCharacterOtherStatInfoDto(s)); } } /** * 연무장 입장 시 캐릭터 기타 스탯 정보 */ class BattlePracticeCharacterOtherStatInfoDto { /** * 스탯 명 */ statName; /** * 스탯 값 */ statValue; constructor(obj) { this.statName = obj.stat_name; this.statValue = obj.stat_value; } } /** * 연무장 입장 시 캐릭터 하이퍼 스탯 정보 */ class BattlePracticeCharacterHyperStatObjectDto { /** * 하이퍼 스탯 목록 */ hyperStat; constructor(obj) { this.hyperStat = obj.hyper_stat.map((s) => new BattlePracticeCharacterHyperStatDto(s)); } } /** * 연무장 입장 시 캐릭터 하이퍼 스탯 상세 정보 */ class BattlePracticeCharacterHyperStatDto { /** * 스탯 종류 */ statType; /** * 스탯 레벨 */ statLevel; /** * 스탯 상승량 */ statIncrease; constructor(obj) { this.statType = obj.stat_type; this.statLevel = obj.stat_level; this.statIncrease = obj.stat_increase; } } /** * 연무장 입장 시 캐릭터 성향 정보 */ class BattlePracticeCharacterPropensityDto { /** * 카리스마 레벨 */ charismaLevel; /** * 감성 레벨 */ sensibilityLevel; /** * 통찰력 레벨 */ insightLevel; /** * 의지 레벨 */ willingnessLevel; /** * 손재주 레벨 */ handicraftLevel; /** * 매력 레벨 */ charmLevel; constructor(obj) { this.charismaLevel = obj.charisma_level; this.sensibilityLevel = obj.sensibility_level; this.insightLevel = obj.insight_level; this.willingnessLevel = obj.willingness_level; this.handicraftLevel = obj.handicraft_level; this.charmLevel = obj.charm_level; } } /** * 연무장 입장 시 캐릭터 어빌리티 정보 */ class BattlePracticeCharacterAbilityObjectDto { /** * 어빌리티 정보 */ abilityInfo; constructor(obj) { this.abilityInfo = obj.ability_info.map((a) => new BattlePracticeCharacterAbilityInfoDto(a)); } } /** * 연무장 입장 시 캐릭터 어빌리티 상세 정보 */ class BattlePracticeCharacterAbilityInfoDto { /** * 어빌리티 번호 */ abilityNo; /** * 어빌리티 등급 */ abilityGrade; /** * 어빌리티 옵션 및 수치 */ abilityValue; constructor(obj) { this.abilityNo = obj.ability_no; this.abilityGrade = obj.ability_grade; this.abilityValue = obj.ability_value; } } /** * 연무장 입장 시 캐릭터 장비(캐시 장비 제외) 정보 */ class BattlePracticeCharacterItemObjectDto { /** * 장착 장비 정보 */ itemEquipmentObject; /** * 적용 세트 효과 정보 */ setEffectObject; constructor(obj) { this.itemEquipmentObject = new BattlePracticeCharacterItemEquipmentObjectDto(obj.item_equipment_object); this.setEffectObject = new BattlePracticeCharacterSetEffectObjectDto(obj.set_effect_object); } } /** * 연무장 입장 시 캐릭터 장착 장비 정보 */ class BattlePracticeCharacterItemEquipmentObjectDto { /** * 장착 장비 정보 */ itemEquipment; /** * 칭호 정보 */ title; /** * 에반 드래곤 장비 정보 (에반인 경우 응답) */ dragonEquipment; /** * 메카닉 장비 목록 (메카닉인 경우 응답) */ mechanicEquipment; constructor(obj) { this.itemEquipment = obj.item_equipment.map((i) => new BattlePracticeCharacterItemEquipmentDto(i)); this.title = obj.title ? new BattlePracticeCharacterItemTitleDto(obj.title) : null; this.dragonEquipment = obj.dragon_equipment.map((i) => new BattlePracticeCharacterItemDragonEquipmentDto(i)); this.mechanicEquipment = obj.mechanic_equipment.map((i) => new BattlePracticeCharacterItemMechanicEquipmentDto(i)); } } /** * 연무장 입장 시 캐릭터 장착 장비 정보 */ class BattlePracticeCharacterItemEquipmentDto { /** * 장비 부위 명 */ itemEquipmentPart; /** * 장비 슬롯 위치 */ itemEquipmentSlot; /** * 장비 명 */ itemName; /** * 장비 아이콘 */ itemIcon; /** * 장비 설명 */ itemDescription; /** * 장비 외형 */ itemShapeName; /** * 장비 외형 아이콘 */ itemShapeIcon; /** * 전용 성별 */ itemGender; /** * 장비 최종 옵션 정보 */ itemTotalOption; /** * 장비 기본 옵션 정보 */ itemBaseOption; /** * 잠재능력 봉인 여부 (true 봉인, false 봉인 없음) */ potentialOptionFlag; /** * 에디셔널 잠재능력 개방 여부 (true 봉인, false 봉인 없음) */ additionalPotentialOptionFlag; /** * 잠재능력 등급 */ potentialOptionGrade; /** * 에디셔널 잠재능력 등급 */ additionalPotentialOptionGrade; /** * 잠재능력 첫 번째 옵션 */ potentialOption1; /** * 잠재능력 두 번째 옵션 */ potentialOption2; /** * 잠재능력 세 번째 옵션 */ potentialOption3; /** * 에디셔널 잠재능력 첫 번째 옵션 */ additionalPotentialOption1; /** * 에디셔널 잠재능력 두 번째 옵션 */ additionalPotentialOption2; /** * 에디셔널 잠재능력 세 번째 옵션 */ additionalPotentialOption3; /** * 착용 레벨 증가 */ equipmentLevelIncrease; /** * 장비 특별 옵션 정보 */ itemExceptionalOption; /** * 장비 추가 옵션 정보 */ itemAddOption; /** * 성장 경험치 */ growthExp; /** * 성장 레벨 */ growthLevel; /** * 주문서 횟수 */ scrollUpgrade; /** * 가위 사용 가능 횟수 (교환 불가 장비, 가위 횟수가 없는 교환 가능 장비는 255) */ cuttableCount; /** * 황금 망치 재련 적용 (1:적용, 이외 미 적용) */ goldenHammerFlag; /** * 복구 가능 횟수 */ scrollResilienceCount; /** * 주문서 잔여 횟수 */ scrollUpgradeAbleCount; /** * 소울 명 */ soulName; /** * 소울 옵션 */ soulOption; /** * 장비 기타 옵션 정보 */ itemEtcOption; /** * 강화 단계 */ starforce; /** * 놀라운 장비 강화 주문서 사용 여부 (0:미사용, 1:사용) */ starforceScrollFlag; /** * 장비 스타포스 옵션 정보 */ itemStarforceOption; /** * 특수 반지 레벨 */ specialRingLevel; /** * 장비 유효 기간 (KST) */ dateExpire; /** * 프리스타일 쿠폰 적용 여부 (0:미적용, 1:적용) */ freestyleFlag; constructor(obj) { this.itemEquipmentPart = obj.item_equipment_part; this.itemEquipmentSlot = obj.item_equipment_slot; this.itemName = obj.item_name; this.itemIcon = obj.item_icon; this.itemDescription = obj.item_description; this.itemShapeName = obj.item_shape_name; this.itemShapeIcon = obj.item_shape_icon; this.itemGender = obj.item_gender; this.itemTotalOption = new BattlePracticeCharacterItemTotalOptionDto(obj.item_total_option); this.itemBaseOption = new BattlePracticeCharacterItemBaseOptionDto(obj.item_base_option); this.potentialOptionFlag = obj.potential_option_flag; this.additionalPotentialOptionFlag = obj.additional_potential_option_flag; this.potentialOptionGrade = obj.potential_option_grade; this.additionalPotentialOptionGrade = obj.additional_potential_option_grade; this.potentialOption1 = obj.potential_option_1; this.potentialOption2 = obj.potential_option_2; this.potentialOption3 = obj.potential_option_3; this.additionalPotentialOption1 = obj.additional_potential_option_1; this.additionalPotentialOption2 = obj.additional_potential_option_2; this.additionalPotentialOption3 = obj.additional_potential_option_3; this.equipmentLevelIncrease = obj.equipment_level_increase; this.itemExceptionalOption = new BattlePracticeCharacterItemExceptionalOptionDto(obj.item_exceptional_option); this.itemAddOption = new BattlePracticeCharacterItemAddOptionDto(obj.item_add_option); this.growthExp = obj.growth_exp; this.growthLevel = obj.growth_level; this.scrollUpgrade = obj.scroll_upgrade; this.cuttableCount = obj.cuttable_count; this.goldenHammerFlag = obj.golden_hammer_flag; this.scrollResilienceCount = obj.scroll_resilience_count; this.scrollUpgradeAbleCount = obj.scroll_upgrade_able_count; this.soulName = obj.soul_name; this.soulOption = obj.soul_option; this.itemEtcOption = new BattlePracticeCharacterItemEtcOptionDto(obj.item_etc_option); this.starforce = obj.starforce; this.starforceScrollFlag = obj.starforce_scroll_flag; this.itemStarforceOption = new BattlePracticeCharacterItemStarforceOptionDto(obj.item_starforce_option); this.specialRingLevel = obj.special_ring_level; this.dateExpire = obj.date_expire ? new Date(obj.date_expire) : null; this.freestyleFlag = obj.freestyle_flag; } } /** * 연무장 입장 시 캐릭터 에반 드래곤 장비 */ class BattlePracticeCharacterItemDragonEquipmentDto { /** * 장비 부위 명 */ itemEquipmentPart; /** * 장비 슬롯 위치 */ itemEquipmentSlot; /** * 장비 명 */ itemName; /** * 장비 아이콘 */ itemIcon; /** * 장비 설명 */ itemDescription; /** * 장비 외형 */ itemShapeName; /** * 장비 외형 아이콘 */ itemShapeIcon; /** * 전용 성별 */ itemGender; /** * 장비 최종 옵션 정보 */ itemTotalOption; /** * 장비 기본 옵션 정보 */ itemBaseOption; /** * 착용 레벨 증가 */ equipmentLevelIncrease; /** * 장비 특별 옵션 정보 */ itemExceptionalOption; /** * 장비 추가 옵션 정보 */ itemAddOption; /** * 성장 경험치 */ growthExp; /** * 성장 레벨 */ growthLevel; /** * 주문서 횟수 */ scrollUpgrade; /** * 가위 사용 가능 횟수 (교환 불가 장비, 가위 횟수가 없는 교환 가능 장비는 255) */ cuttableCount; /** * 황금 망치 재련 적용 (1:적용, 이외 미 적용) */ goldenHammerFlag; /** * 복구 가능 횟수 */ scrollResilienceCount; /** * 주문서 잔여 횟수 */ scrollUpgradeAbleCount; /** * 소울 명 */ soulName; /** * 소울 옵션 */ soulOption; /** * 장비 기타 옵션 정보 */ itemEtcOption; /** * 강화 단계 */ starforce; /** * 놀라운 장비 강화 주문서 사용 여부 (0:미사용, 1:사용) */ starforceScrollFlag; /** * 장비 스타포스 옵션 정보 */ itemStarforceOption; /** * 특수 반지 레벨 */ specialRingLevel; /** * 장비 유효 기간 (KST) */ dateExpire; /** * 프리스타일 쿠폰 적용 여부 (0:미적용, 1:적용) */ freestyleFlag; constructor(obj) { this.itemEquipmentPart = obj.item_equipment_part; this.itemEquipmentSlot = obj.item_equipment_slot; this.itemName = obj.item_name; this.itemIcon = obj.item_icon; this.itemDescription = obj.item_description; this.itemShapeName = obj.item_shape_name; this.itemShapeIcon = obj.item_shape_icon; this.itemGender = obj.item_gender; this.itemTotalOption = new BattlePracticeCharacterItemTotalOptionDto(obj.item_total_option); this.itemBaseOption = new BattlePracticeCharacterItemBaseOptionDto(obj.item_base_option); this.equipmentLevelIncrease = obj.equipment_level_increase; this.itemExceptionalOption = new BattlePracticeCharacterItemExceptionalOptionDto(obj.item_exceptional_option); this.itemAddOption = new BattlePracticeCharacterItemAddOptionDto(obj.item_add_option); this.growthExp = obj.growth_exp; this.growthLevel = obj.growth_level; this.scrollUpgrade = obj.scroll_upgrade; this.cuttableCount = obj.cuttable_count; this.goldenHammerFlag = obj.golden_hammer_flag; this.scrollResilienceCount = obj.scroll_resilience_count; this.scrollUpgradeAbleCount = obj.scroll_upgrade_able_count; this.soulName = obj.soul_name; this.soulOption = obj.soul_option; this.itemEtcOption = new BattlePracticeCharacterItemEtcOptionDto(obj.item_etc_option); this.starforce = obj.starforce; this.starforceScrollFlag = obj.starforce_scroll_flag; this.itemStarforceOption = new BattlePracticeCharacterItemStarforceOptionDto(obj.item_starforce_option); this.specialRingLevel = obj.special_ring_level; this.dateExpire = obj.date_expire ? new Date(obj.date_expire) : null; this.freestyleFlag = obj.freestyle_flag; } } /** * 연무장 입장 시 캐릭터 메카닉 장비 */ class BattlePracticeCharacterItemMechanicEquipmentDto { /** * 장비 부위 명 */ itemEquipmentPart; /** * 장비 슬롯 위치 */ itemEquipmentSlot; /** * 장비 명 */ itemName; /** * 장비 아이콘 */ itemIcon; /** * 장비 설명 */ itemDescription; /** * 장비 외형 */ itemShapeName; /** * 장비 외형 아이콘 */ itemShapeIcon; /** * 전용 성별 */ itemGender; /** * 장비 최종 옵션 정보 */ itemTotalOption; /** * 장비 기본 옵션 정보 */ itemBaseOption; /** * 착용 레벨 증가 */ equipmentLevelIncrease; /** * 장비 특별 옵션 정보 */ itemExceptionalOption; /** * 장비 추가 옵션 정보 */ itemAddOption; /** * 성장 경험치 */ growthExp; /** * 성장 레벨 */ growthLevel; /** * 주문서 횟수 */ scrollUpgrade; /** * 가위 사용 가능 횟수 (교환 불가 장비, 가위 횟수가 없는 교환 가능 장비는 255) */ cuttableCount; /** * 황금 망치 재련 적용 (1:적용, 이외 미 적용) */ goldenHammerFlag; /** * 복구 가능 횟수 */ scrollResilienceCount; /** * 주문서 잔여 횟수 */ scrollUpgradeAbleCount; /** * 소울 명 */ soulName; /** * 소울 옵션 */ soulOption; /** * 장비 기타 옵션 정보 */ itemEtcOption; /** * 강화 단계 */ starforce; /** * 놀라운 장비 강화 주문서 사용 여부 (0:미사용, 1:사용) */ starforceScrollFlag; /** * 장비 스타포스 옵션 정보 */ itemStarforceOption; /** * 특수 반지 레벨 */ specialRingLevel; /** * 장비 유효 기간 (KST) */ dateExpire; /** * 프리스타일 쿠폰 적용 여부 (0:미적용, 1:적용) */ freestyleFlag; constructor(obj) { this.itemEquipmentPart = obj.item_equipment_part; this.itemEquipmentSlot = obj.item_equipment_slot; this.itemName = obj.item_name; this.itemIcon = obj.item_icon; this.itemDescription = obj.item_description; this.itemShapeName = obj.item_shape_name; this.itemShapeIcon = obj.item_shape_icon; this.itemGender = obj.item_gender; this.itemTotalOption = new BattlePracticeCharacterItemTotalOptionDto(obj.item_total_option); this.itemBaseOption = new BattlePracticeCharacterItemBaseOptionDto(obj.item_base_option); this.equipmentLevelIncrease = obj.equipment_level_increase; this.itemExceptionalOption = new BattlePracticeCharacterItemExceptionalOptionDto(obj.item_exceptional_option); this.itemAddOption = new BattlePracticeCharacterItemAddOptionDto(obj.item_add_option); this.growthExp = obj.growth_exp; this.growthLevel = obj.growth_level; this.scrollUpgrade = obj.scroll_upgrade; this.cuttableCount = obj.cuttable_count; this.goldenHammerFlag = obj.golden_hammer_flag; this.scrollResilienceCount = obj.scroll_resilience_count; this.scrollUpgradeAbleCount = obj.scroll_upgrade_able_count; this.soulName = obj.soul_name; this.soulOption = obj.soul_option; this.itemEtcOption = new BattlePracticeCharacterItemEtcOptionDto(obj.item_etc_option); this.starforce = obj.starforce; this.starforceScrollFlag = obj.starforce_scroll_flag; this.itemStarforceOption = new BattlePracticeCharacterItemStarforceOptionDto(obj.item_starforce_option); this.specialRingLevel = obj.special_ring_level; this.dateExpire = obj.date_expire ? new Date(obj.date_expire) : null; this.freestyleFlag = obj.freestyle_flag; } } /** * 연무장 입장 시 캐릭터 장비 최종 옵션 정보 */ class BattlePracticeCharacterItemTotalOptionDto { /** * STR */ str; /** * DEX */ dex; /** * INT */ int; /** * LUK */ luk; /** * 최대 HP */ maxHp; /** * 최대 MP */ maxMp; /** * 공격력 */ attackPower; /** * 마력 */ magicPower; /** * 방어력 */ armor; /** * 이동속도 */ speed; /** * 점프력 */ jump; /** * 보스 몬스터 데미지 증가 (%) */ bossDamage; /** * 몬스터 방어율 무시 (%) */ ignoreMonsterArmor; /** * 올스탯 (%) */ allStat; /** * 데미지 (%) */ damage; /** * 착용 레벨 감소 */ equipmentLevelDecrease; /** * 최대 HP (%) */ maxHpRate; /** * 최대 MP (%) */ maxMpRate; constructor(obj) { this.str = obj.str; this.dex = obj.dex; this.int = obj.int; this.luk = obj.luk; this.maxHp = obj.max_hp; this.maxMp = obj.max_mp; this.attackPower = obj.attack_power; this.magicPower = obj.magic_power; this.armor = obj.armor; this.speed = obj.speed; this.jump = obj.jump; this.bossDamage = obj.boss_damage; this.ignoreMonsterArmor = obj.ignore_monster_armor; this.allStat = obj.all_stat; this.damage = obj.damage; this.equipmentLevelDecrease = obj.equipment_level_decrease; this.maxHpRate = obj.max_hp_rate; this.maxMpRate = obj.max_mp_rate; } } /** * 연무장 입장 시 캐릭터 장비 기본 옵션 정보 */ class BattlePracticeCharacterItemBaseOptionDto { /** * STR */ str; /** * DEX */ dex; /** * INT */ int; /** * LUK */ luk; /** * 최대 HP */ maxHp; /** * 최대 MP */ maxMp; /** * 공격력 */ attackPower; /** * 마력 */ magicPower; /** * 방어력 */ armor; /** * 이동속도 */ speed; /** * 점프력 */ jump; /** * 보스 몬스터 데미지 증가 (%) */ bossDamage; /** * 몬스터 방어율 무시 (%) */ ignoreMonsterArmor; /** * 올스탯 (%) */ allStat; /** * 최대 HP */ maxHpRate; /** * 최대 MP */ maxMpRate; /** * 기본 착용 레벨 */ baseEquipmentLevel; constructor(obj) { this.str = obj.str; this.dex = obj.dex; this.int = obj.int; this.luk = obj.luk; this.maxHp = obj.max_hp; this.maxMp = obj.max_mp; this.attackPower = obj.attack_power; this.magicPower = obj.magic_power; this.armor = obj.armor; this.speed = obj.speed; this.jump = obj.jump; this.bossDamage = obj.boss_damage; this.ignoreMonsterArmor = obj.ignore_monster_armor; this.allStat = obj.all_stat; this.maxHpRate = obj.max_hp_rate; this.maxMpRate = obj.max_mp_rate; this.baseEquipmentLevel = obj.base_equipment_level; } } /** * 연무장 입장 시 캐릭터 장비 특별 옵션 정보 */ class BattlePracticeCharacterItemExceptionalOptionDto { /** * STR */ str; /** * DEX */ dex; /** * INT */ int; /** * LUK */ luk; /** * 최대 HP */ maxHp; /** * 최대 MP */ maxMp; /** * 공격력 */ attackPower; /** * 마력 */ magicPower; /** * 익셉서녈 강화 적용 횟수 */ exceptionalUpgrade; constructor(obj) { this.str = obj.str; this.dex = obj.dex; this.int = obj.int; this.luk = obj.luk; this.maxHp = obj.max_hp; this.maxMp = obj.max_mp; this.attackPower = obj.attack_power; this.magicPower = obj.magic_power; this.exceptionalUpgrade = obj.exceptional_upgrade; } } /** * 연무장 입장 시 캐릭터 장비 추가 옵션 정보 */ class BattlePracticeCharacterItemAddOptionDto { /** * STR */ str; /** * DEX */ dex; /** * INT */ int; /** * LUK */ luk; /** * 최대 HP */ maxHp; /** * 최대 MP */ maxMp; /** * 공격력 */ attackPower; /** * 마력 */ magicPower; /** * 방어력 */ armor; /** * 이동속도 */ speed; /** * 점프력 */ jump; /** * 보스 몬스터 데미지 증가 (%) */ bossDamage; /** * 데미지 (%) */ damage; /** * 올스탯 (%) */ allStat; /** * 착용 레벨 감소 */ equipmentLevelDecrease; constructor(obj) { this.str = obj.str; this.dex = obj.dex; this.int = obj.int; this.luk = obj.luk; this.maxHp = obj.max_hp; this.maxMp = obj.max_mp; this.attackPower = obj.attack_power; this.magicPower = obj.magic_power; this.armor = obj.armor; this.speed = obj.speed; this.jump = obj.jump; this.bossDamage = obj.boss_damage; this.damage = obj.damage; this.allStat = obj.all_stat; this.equipmentLevelDecrease = obj.equipment_level_decrease; } } /** * 연무장 입장 시 캐릭터 장비 기타 옵션 정보 */ class BattlePracticeCharacterItemEtcOptionDto { /** * STR */ str; /** * DEX */ dex; /** * INT */ int; /** * LUK */ luk; /** * 최대 HP */ maxHp; /** * 최대 MP */ maxMp; /** * 공격력 */ attackPower; /** * 마력 */ magicPower; /** * 방어력 */ armor; /** * 이동속도 */ speed; /** * 점프력 */ jump; constructor(obj) { this.str = obj.str; this.dex = obj.dex; this.int = obj.int; this.luk = obj.luk; this.maxHp = obj.max_hp; this.maxMp = obj.max_mp; this.attackPower = obj.attack_power; this.magicPower = obj.magic_power; this.armor = obj.armor; this.speed = obj.speed; this.jump = obj.jump; } } /** * 연무장 입장 시 캐릭터 장비 스타포스 옵션 정보 */ class BattlePracticeCharacterItemStarforceOptionDto { /** * STR */ str; /** * DEX */ dex; /** * INT */ int; /** * LUK */ luk; /** * 최대 HP */ maxHp; /** * 최대 MP */ maxMp; /** * 공격력 */ attackPower; /** * 마력 */ magicPower; /** * 방어력 */ armor; /** * 이동속도 */ speed; /** * 점프력 */ jump; constructor(obj) { this.str = obj.str; this.dex = obj.dex; this.int = obj.int; this.luk = obj.luk; this.maxHp = obj.max_hp; this.maxMp = obj.max_mp; this.attackPower = obj.attack_power; this.magicPower = obj.magic_power; this.armor = obj.armor; this.speed = obj.speed; this.jump = obj.jump; } } /** * 연무장 입장 시 캐릭터 칭호 정보 */ class BattlePracticeCharacterItemTitleDto { /** * 칭호 장비 명 */ titleName; /** * 칭호 아이콘 */ titleIcon; /** * 칭호 설명 */ titleDescription; /** * 칭호 유효 기간 (KST) */ dateExpire; /** * 칭호 옵션 유효 기간 (expired:만료, null:무제한) (KST) */ dateOptionExpire; /** * 외형 설정에 등록한 칭호 장비 명 */ titleShapeName; /** * 외형 설정에 등록한 칭호 아이콘 */ titleShapeIcon; /** * 외형 설정에 등록한 칭호 설명 */ titleShapeDescription; constructor(obj) { this.titleName = obj.title_name; this.titleIcon = obj.title_icon; this.titleDescription = obj.title_description; this.dateExpire = obj.date_expire ? new Date(obj.date_expire) : null; this.dateOptionExpire = obj.date_option_expire ? new Date(obj.date_option_expire) : null; this.titleShapeName = obj.title_shape_name; this.titleShapeIcon = obj.title_shape_icon; this.titleShapeDescription = obj.title_shape_description; } } /** * 연무장 입장 시 캐릭터 적용 세트 효과 정보 */ class BattlePracticeCharacterSetEffectObjectDto { /** * 세트 효과 정보 */ setEffect; constructor(obj) { this.setEffect = obj.set_effect.map((s) => new BattlePracticeCharacterSetEffectDto(s)); } } /** * 연무장 입장 시 캐릭터 세트 효과 정보 */ class BattlePracticeCharacterSetEffectDto { /** * 세트 효과 명 */ setName; /** * 세트 개수 (럭키 아이템 포함) */ totalSetCount; /** * 적용 중인 세트 효과 정보 */ setEffectInfo; constructor(obj) { this.setName = obj.set_name; this.totalSetCount = obj.total_set_count; this.setEffectInfo = obj.set_effect_info.map((s) => new BattlePracticeCharacterSetEffectInfoDto(s)); } } /** * 연무장 입장 시 캐릭터 적용 중인 세트 효과 정보 */ class BattlePracticeCharacterSetEffectInfoDto { /** * 세트 효과 레벨 (장비 수) */ setCount; /** * 세트 효과 */ setOption; constructor(obj) { this.setCount = obj.set_count; this.setOption = obj.set_option; } } /** * 연무장 입장 시 캐릭터 캐시 장비 정보 */ class BattlePracticeCharacterCashItemObjectDto { /** * 장착 중인 캐시 장비 */ cashItemEquipmentBase; /** * 제로인 경우 베타, 엔젤릭버스터인 경우 드레스 업 모드에서 장착 중인 캐시 장비 */ additionalCashItemEquipmentBase; constructor(obj) { this.cashItemEquipmentBase = obj.cash_item_equipment_base.map((i) => new BattlePracticeCharacterCashItemEquipmentDto(i)); this.additionalCashItemEquipmentBase = obj.additional_cash_item_equipment_base.map((i) => new BattlePracticeCharacterCashItemEquipmentDto(i)); } } /** * 연무장 입장 시 캐릭터 장착 캐시 장비 정보 */ class BattlePracticeCharacterCashItemEquipmentDto { /** * 캐시 장비 부위 명 */ cashItemEquipmentPart; /** * 캐시 장비 슬롯 위치 */ cashItemEquipmentSlot; /** * 캐시 장비 명 */ cashItemName; /** * 캐시 장비 아이콘 */ cashItemIcon; /** * 캐시 장비 설명 */ cashItemDescription; /** * 캐시 장비 옵션 목록 */ cashItemOption; /** * 캐시 장비 유효 기간 (KST) */ dateExpire; /** * 캐시 장비 옵션 유효 기간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ dateOptionExpire; constructor(obj) { this.cashItemEquipmentPart = obj.cash_item_equipment_part; this.cashItemEquipmentSlot = obj.cash_item_equipment_slot; this.cashItemName = obj.cash_item_name; this.cashItemIcon = obj.cash_item_icon; this.cashItemDescription = obj.cash_item_description; this.cashItemOption = obj.cash_item_option.map((o) => new BattlePracticeCharacterCashItemOptionDto(o)); this.dateExpire = obj.date_expire ? new Date(obj.date_expire) : null; this.dateOptionExpire = obj.date_option_expire ? new Date(obj.date_option_expire) : null; } } /** * 연무장 입장 시 캐릭터 캐시 장비 옵션 */ class BattlePracticeCharacterCashItemOptionDto { /** * 옵션 타입 */ optionType; /** * 옵션 값 */ optionValue; constructor(obj) { this.optionType = obj.option_type; this.optionValue = obj.option_value; } } /** * 연무장 입장 시 캐릭터 장착 펫 정보 */ class BattlePracticeCharacterPetObjectDto { /** * 활성화된 펫 유형 (0:캐릭터 펫, 1:월드 공유 펫) */ petActivateFlag; /** * 펫1 명 */ pet1Name; /** * 펫1 닉네임 */ pet1Nickname; /** * 펫1 아이콘 */ pet1Icon; /** * 펫1 설명 */ pet1Description; /** * 펫1 장착 정보 */ pet1Equipment; /** * 펫1 버프 자동스킬 정보 */ pet1AutoSkill; /** * 펫1 원더 펫 종류 */ pet1PetType; /** * 펫1 펫 보유 스킬 */ pet1Skill; /** * 펫1 마법의 시간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ pet1DateExpire; /** * 펫2 명 */ pet2Name; /** * 펫2 닉네임 */ pet2Nickname; /** * 펫2 아이콘 */ pet2Icon; /** * 펫2 설명 */ pet2Description; /** * 펫2 장착 정보 */ pet2Equipment; /** * 펫2 버프 자동스킬 정보 */ pet2AutoSkill; /** * 펫2 원더 펫 종류 */ pet2PetType; /** * 펫2 펫 보유 스킬 */ pet2Skill; /** * 펫2 마법의 시간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ pet2DateExpire; /** * 펫3 명 */ pet3Name; /** * 펫3 닉네임 */ pet3Nickname; /** * 펫3 아이콘 */ pet3Icon; /** * 펫3 설명 */ pet3Description; /** * 펫3 장착 정보 */ pet3Equipment; /** * 펫3 버프 자동스킬 정보 */ pet3AutoSkill; /** * 펫3 원더 펫 종류 */ pet3PetType; /** * 펫3 펫 보유 스킬 */ pet3Skill; /** * 펫3 마법의 시간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ pet3DateExpire; /** * 월드 공유 펫1 명 */ worldSharePet1Name; /** * 월드 공유 펫1 닉네임 */ worldSharePet1Nickname; /** * 월드 공유 펫1 아이콘 */ worldSharePet1Icon; /** * 월드 공유 펫1 설명 */ worldSharePet1Description; /** * 월드 공유 펫1 원더 펫 종류 */ worldSharePet1PetType; /** * 월드 공유 펫1 장착 정보 */ worldSharePet1Equipment; /** * 월드 공유 펫1 버프 자동스킬 정보 */ worldSharePet1AutoSkill; /** * 월드 공유 펫1 펫 보유 스킬 */ worldSharePet1Skill; /** * 월드 공유 펫1 마법의 시간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ worldSharePet1DateExpire; /** * 월드 공유 펫2 명 */ worldSharePet2Name; /** * 월드 공유 펫2 닉네임 */ worldSharePet2Nickname; /** * 월드 공유 펫2 아이콘 */ worldSharePet2Icon; /** * 월드 공유 펫2 설명 */ worldSharePet2Description; /** * 월드 공유 펫2 원더 펫 종류 */ worldSharePet2PetType; /** * 월드 공유 펫2 장착 정보 */ worldSharePet2Equipment; /** * 월드 공유 펫2 버프 자동스킬 정보 */ worldSharePet2AutoSkill; /** * 월드 공유 펫2 펫 보유 스킬 */ worldSharePet2Skill; /** * 월드 공유 펫2 마법의 시간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ worldSharePet2DateExpire; /** * 월드 공유 펫3 명 */ worldSharePet3Name; /** * 월드 공유 펫3 닉네임 */ worldSharePet3Nickname; /** * 월드 공유 펫3 아이콘 */ worldSharePet3Icon; /** * 월드 공유 펫3 설명 */ worldSharePet3Description; /** * 월드 공유 펫3 원더 펫 종류 */ worldSharePet3PetType; /** * 월드 공유 펫3 장착 정보 */ worldSharePet3Equipment; /** * 월드 공유 펫3 버프 자동스킬 정보 */ worldSharePet3AutoSkill; /** * 월드 공유 펫3 펫 보유 스킬 */ worldSharePet3Skill; /** * 월드 공유 펫3 마법의 시간 (KST, 시간 단위 데이터로 분은 일괄 0으로 표기) */ worldSharePet3DateExpire; /** * 루나 쁘띠 펫 스킬 정보 */ petiteLunaPetSkill; constructor(obj) { this.petActivateFlag = obj.pet_activate_flag ?? null; this.pet1Name = obj.pet_1_name; this.pet1Nickname = obj.pet_1_nickname; this.pet1Icon = obj.pet_1_icon; this.pet1Description = obj.pet_1_description; this.pet1Equipment = obj.pet_1_equipment ? new BattlePracticeCharacterPetEquipmentDto(obj.pet_1_equipment) : null; this.pet1AutoSkill = obj.pet_1_auto_skill ? new BattlePracticeCharacterPetAutoSkillDto(obj.pet_1_auto_skill) : null; this.pet1PetType = obj.pet_1_pet_type; this.pet1Skill = obj.pet_1_skill; this.pet1DateExpire = obj.pet_1_date_expire ? new Date(obj.pet_1_date_expire) : null; this.pet2Name = obj.pet_2_name; this.pet2Nickname = obj.pet_2_nickname; this.pet2Icon = obj.pet_2_icon; this.pet2Description = obj.pet_2_description; this.pet2Equipment = obj.pet_2_equipment ? new BattlePracticeCharacterPetEquipmentDto(obj.pet_2_equipment) : null; this.pet2AutoSkill = obj.pet_2_auto_skill ? new BattlePracticeCharacterPetAutoSkillDto(obj.pet_2_auto_skill) : null; this.pet2PetType = obj.pet_2_pet_type; this.pet2Skill = obj.pet_2_skill; this.pet2DateExpire = obj.pet_2_date_expire ? new Date(obj.pet_2_date_expire) : null; this.pet3Name = obj.pet_3_name; this.pet3Nickname = obj.pet_3_nickname; this.pet3Icon = obj.pet_3_icon; this.pet3Description = obj.pet_3_description; this.pet3Equipment = obj.pet_3_equipment ? new BattlePracticeCharacterPetEquipmentDto(obj.pet_3_equipment) : null; this.pet3AutoSkill = obj.pet_3_auto_skill ? new BattlePracticeCharacterPetAutoSkillDto(obj.pet_3_auto_skill) : null; this.pet3PetType = obj.pet_3_pet_type; this.pet3Skill = obj.pet_3_skill; this.pet3DateExpire = obj.pet_3_date_expire ? new Date(obj.pet_3_date_expire) : null; this.worldSharePet1Name = obj.world_share_pet_1_name ?? null; this.worldSharePet1Nickname = obj.world_share_pet_1_nickname ?? null; this.worldSharePet1Icon = obj.world_share_pet_1_icon ?? null; this.worldSharePet1Description = obj.world_share_pet_1_description ?? null; this.worldSharePet1PetType = obj.world_share_pet_1_pet_type ?? null; this.worldSharePet1Equipment = obj.world_share_pet_1_equipment ? new BattlePracticeCharacterPetEquipmentDto(obj.world_share_pet_1_equipment) : null; this.worldSharePet1AutoSkill = obj.world_share_pet_1_auto_skill ? new BattlePracticeCharacterPetAutoSkillDto(obj.world_share_pet_1_auto_skill) : null; this.worldSharePet1Skill = obj.world_share_pet_1_skill ?? []; this.worldSharePet1DateExpire = obj.world_share_pet_1_date_expire ? new Date(obj.world_share_pet_1_date_expire) : null; this.worldSharePet2Name = obj.world_share_pet_2_name ?? null; this.worldSharePet2Nickname = obj.world_share_pet_2_nickname ?? null; this.worldSharePet2Icon = obj.world_share_pet_2_icon ?? null; this.worldSharePet2Description = obj.world_share_pet_2_description ?? null; this.worldSharePet2PetType = obj.world_share_pet_2_pet_type ?? null; this.worldSharePet2Equipment = obj.world_share_pet_2_equipment ? new BattlePracticeCharacterPetEquipmentDto(obj.world_share_pet_2_equipment) : null; this.worldSharePet2AutoSkill = obj.world_share_pet_2_auto_skill ? new BattlePracticeCharacterPetAutoSkillDto(obj.world_share_pet_2_auto_skill) : null; this.worldSharePet2Skill = obj.world_share_pet_2_skill ?? []; this.worldSharePet2DateExpire = obj.world_share_pet_2_date_expire ? new Date(obj.world_share_pet_2_date_expire) : null; this.worldSharePet3Name = obj.world_share_pet_3_name ?? null; this.worldSharePet3Nickname = obj.world_share_pet_3_nickname ?? null; this.worldSharePet3Icon = obj.world_share_pet_3_icon ?? null; this.worldSharePet3Description = obj.world_share_pet_3_description ?? null; this.worldSharePet3PetType = obj.world_share_pet_3_pet_type ?? null; this.worldSharePet3Equipment = obj.world_share_pet_3_equipment ? new BattlePracticeCharacterPetEquipmentDto(obj.world_share_pet_3_equipment) : null; this.worldSharePet3AutoSkill = obj.world_share_pet_3_auto_skill ? new BattlePracticeCharacterPetAutoSkillDto(obj.world_share_pet_3_auto_skill) : null; this.worldSharePet3Skill = obj.world_share_pet_3_skill ?? []; this.worldSharePet3DateExpire = obj.world_share_pet_3_date_expire ? new Date(obj.world_share_pet_3_date_expire) : null; this.petiteLunaPetSkill = (obj.petite_luna_pet_skill ?? []).map((s) => new BattlePracticeCharacterPetiteLunaPetSkillDto(s)); } } /** * 연무장 입장 시 캐릭터 펫 장착 정보 */ class BattlePracticeCharacterPetEquipmentDto { /** * 아이템 명 */ itemName; /** * 아이템 아이콘 */ itemIcon; /** * 아이템 설명 */ itemDescription; /** * 아이템의 표기상 옵션 */ itemOption; /** * 주문서 횟수 */ scrollUpgrade; /** * 주문서 잔여 횟수 */ scrollUpgradable; /** * 아이템 외형 */ itemShape; /** * 아이템 외형 아이콘 */ itemShapeIcon; /** * 아이템 만료 시간 */ itemDateExpire; constructor(obj) { this.itemName = obj.item_name; this.itemIcon = obj.item_icon; this.itemDescription = obj.item_description; this.itemOption = obj.item_option.map((o) => new BattlePracticeCharacterPetEquipmentItemOptionDto(o)); this.scrollUpgrade = obj.scroll_upgrade; this.scrollUpgradable = obj.scroll_upgradable; this.itemShape = obj.item_shape; this.itemShapeIcon = obj.item_shape_icon; this.itemDateExpire = obj.item_date_expire ? new Date(obj.item_date_expire) : null; } } /** * 연무장 입장 시 캐릭터 펫 장비 옵션 */ class BattlePracticeCharacterPetEquipmentItemOptionDto { /** * 옵션 타입 */ optionType; /** * 옵션 값 */ optionValue; constructor(obj) { this.optionType = obj.option_type; this.optionValue = obj.option_value; } } /** * 연무장 입장 시 캐릭터 펫 자동스킬 정보 */ class BattlePracticeCharacterPetAutoSkillDto { /** * 첫 번째 슬롯에 등록된 자동 스킬 명 */ skill1; /** * 첫 번째 슬롯에 등록된 자동 스킬 아이콘 */ skill1Icon; /** * 두 번째 슬롯에 등록된 자동 스킬 명 */ skill2; /** * 두 번째 슬롯에 등록된 자동 스킬 아이콘 */ skill2Icon; constructor(obj) { this.skill1 = obj.skill_1; this.skill1Icon = obj.skill_1_icon; this.skill2 = obj.skill_2; this.skill2Icon = obj.skill_2_icon; } } /** * 연무장 입장 시 루나 쁘띠 펫 스킬 정보 */ class BattlePracticeCharacterPetiteLunaPetSkillDto { /** * 스킬 명 */ skillName; /** * 스킬 설명 */ skillDescription; /** * 스킬 효과 설명 */ skillEffect; /** * 스킬 아이콘 */ skillIcon; constructor(obj) { this.skillName = obj.skill_name; this.skillDescription = obj.skill_description; this.skillEffect = obj.skill_effect; this.skillIcon = obj.skill_icon; } } /** * 연무장 입장 시 캐릭터 캐릭터 스킬 정보 */ class BattlePracticeCharacterSkillObjectDto { /** * 스킬 정보 */ characterSkill; constructor(obj) { this.characterSkill = obj.character_skill.map((s) => new BattlePracticeCharacterSkillInfoDto(s)); } } /** * 연무장 입장 시 캐릭터 스킬 정보 */ class BattlePracticeCharacterSkillInfoDto { /** * 스킬 명 */ skillName; /** * 스킬 설명 */ skillDescription; /** * 스킬 레벨 */ skillLevel; /** * 스킬 효과 */ skillEffect; /** * 스킬 아이콘 */ skillIcon; constructor(obj) { this.skillName = obj.skill_name; this.skillDescription = obj.skill_description; this.skillLevel = obj.skill_level; this.skillEffect = obj.skill_effect; this.skillIcon = obj.skill_icon; } } /** * 연무장 입장 시 캐릭터 링크 스킬 정보 */ class BattlePracticeCharacterLinkSkillObjectDto { /** * 링크 스킬 정보 */ characterLinkSkill; /** * 내 링크 스킬 정보 */ characterOwnedLinkSkill; constructor(obj) { this.characterLinkSkill = obj.character_link_skill.map((s) => new BattlePracticeCharacterSkillInfoDto(s)); this.characterOwnedLinkSkill = obj.character_owned_link_skill ? new BattlePracticeCharacterSkillInfoDto(obj.character_owned_link_skill) : null; } } /** * 연무장 입장 시 캐릭터 V 매트릭스 정보 */ class BattlePracticeCharacterVMatrixObjectDto { /** * V 코어 정보 */ characterVCoreEquipment; constructor(obj) { this.characterVCoreEquipment = obj.character_v_core_equipment.map((v) => new BattlePracticeCharacterVCoreDto(v)); } } /** * 연무장 입장 시 캐릭터 V 코어 정보 */ class BattlePracticeCharacterVCoreDto { /** * 슬롯 인덱스 */ slotId; /** * 슬롯 레벨 */ slotLevel; /** * 코어 명 */ vCoreName; /** * 코어 타입 */ vCoreType; /** * 코어의 레벨 */ vCoreLevel; /** * 코어에 해당하는 스킬 명 */ vCoreSkill1; /** * (강화 코어인 경우) 코어에 해당하는 두 번째 스킬 명 */ vCoreSkill2; /** * (강화 코어인 경우) 코어에 해당하는 세 번째 스킬 명 */ vCoreSkill3; constructor(obj) { this.slotId = obj.slot_id; this.slotLevel = obj.slot_level; this.vCoreName = obj.v_core_name; this.vCoreType = obj.v_core_type; this.vCoreLevel = obj.v_core_level; this.vCoreSkill1 = obj.v_core_skill_1; this.vCoreSkill2 = obj.v_core_skill_2; this.vCoreSkill3 = obj.v_core_skill_3; } } /** * 연무장 입장 시 캐릭터 HEXA 매트릭스 정보 */ class BattlePracticeCharacterHexaMatrixObjectDto { /** * HEXA 코어 정보 */ hexaCoreObject; /** * HEXA 스탯 정보 */ hexaMatrixStatObject; constructor(obj) { this.hexaCoreObject = new BattlePracticeCharacterHexaCoreObjectDto(obj.hexa_core_object); this.hexaMatrixStatObject = new BattlePracticeCharacterHexaMatrixStatObjectDto(obj.hexa_matrix_stat_object); } } /** * 연무장 입장 시 캐릭터 HEXA 매트릭스 정보 */ class BattlePracticeCharacterHexaCoreObjectDto { /** * HEXA 매트릭스 코어 정보 */ characterHexaCoreEquipment; constructor(obj) { this.characterHexaCoreEquipment = obj.character_hexa_core_equipment.map((c) => new BattlePracticeCharacterHexaCoreEquipmentDto(c)); } } /** * 연무장 입장 시 캐릭터 HEXA 매트릭스 코어 정보 */ class BattlePracticeCharacterHexaCoreEquipmentDto { /** * 코어 명 */ hexaCoreName; /** * 코어 레벨 */ hexaCoreLevel; /** * 코어 타입 */ hexaCoreType; /** * 연결된 스킬 */ linkedSkill; constructor(obj) { this.hexaCoreName = obj.hexa_core_name; this.hexaCoreLevel = obj.hexa_core_level; this.hexaCoreType = obj.hexa_core_type; this.linkedSkill = obj.linked_skill.map((s) => new BattlePracticeCharacterHexaLinkedSkillDto(s)); } } /** * 연무장 입장 시 캐릭터 HEXA 매트릭스 코어에 연결된 스킬 */ class BattlePracticeCharacterHexaLinkedSkillDto { /** * HEXA 스킬 명 */ hexaSkillId; constructor(obj) { this.hexaSkillId = obj.hexa_skill_id; } } /** * 연무장 입장 시 캐릭터 HEXA 스탯 정보 */ class BattlePracticeCharacterHexaMatrixStatObjectDto { /** * HEXA