maplestory-openapi
Version:
This JavaScript library enables the use of the MapleStory OpenAPI of Nexon.
2,294 lines (2,292 loc) • 67.1 kB
JavaScript
'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