UNPKG

@ruvice/my-maple-models

Version:

Shared models and utils for MapleStory Nexon Open API

395 lines (394 loc) 16.1 kB
import { ItemEquipmentSlot } from "../maple/Equipment/equipmentTypes"; import { Potential, CharacterClass, StatName, MapleServer } from "../maple/Generic/enums"; export const ItemEquipmentSlotMappingSEA = { "Ring1": ItemEquipmentSlot.Ring1, "Ring2": ItemEquipmentSlot.Ring2, "Ring3": ItemEquipmentSlot.Ring3, "Ring4": ItemEquipmentSlot.Ring4, "Pendant": ItemEquipmentSlot.Pendant, "Pendant 2": ItemEquipmentSlot.Pendant2, "Weapon": ItemEquipmentSlot.Weapon, "Belt": ItemEquipmentSlot.Belt, "Hat": ItemEquipmentSlot.Hat, "Face Acc.": ItemEquipmentSlot.FaceAccessory, "Eye Acc.": ItemEquipmentSlot.EyeAccessory, "Top": ItemEquipmentSlot.Top, "Bottom": ItemEquipmentSlot.Bottom, "Shoes": ItemEquipmentSlot.Shoes, "Earring": ItemEquipmentSlot.Earring, "Shoulder": ItemEquipmentSlot.ShoulderDecoration, "Glove": ItemEquipmentSlot.Glove, "Emblem": ItemEquipmentSlot.Emblem, "Badge": ItemEquipmentSlot.Badge, "Medal": ItemEquipmentSlot.Medal, "Secondary Weapons": ItemEquipmentSlot.SecondaryWeapons, "Cape": ItemEquipmentSlot.Cape, "M. Heart": ItemEquipmentSlot.MechanicalHeart, "Pocket Item": ItemEquipmentSlot.PocketItem }; export const ItemEquipmentSlotMappingKMS = { "모자": ItemEquipmentSlot.Hat, "상의": ItemEquipmentSlot.Top, "하의": ItemEquipmentSlot.Bottom, "신발": ItemEquipmentSlot.Shoes, "장갑": ItemEquipmentSlot.Glove, "망토": ItemEquipmentSlot.Cape, "무기": ItemEquipmentSlot.Weapon, "보조무기": ItemEquipmentSlot.SecondaryWeapons, "엠블렘": ItemEquipmentSlot.Emblem, "귀고리": ItemEquipmentSlot.Earring, "벨트": ItemEquipmentSlot.Belt, "펜던트": ItemEquipmentSlot.Pendant, "펜던트2": ItemEquipmentSlot.Pendant2, "반지1": ItemEquipmentSlot.Ring1, "반지2": ItemEquipmentSlot.Ring2, "반지3": ItemEquipmentSlot.Ring3, "반지4": ItemEquipmentSlot.Ring4, "어깨장식": ItemEquipmentSlot.ShoulderDecoration, "훈장": ItemEquipmentSlot.Medal, "뱃지": ItemEquipmentSlot.Badge, "포켓 아이템": ItemEquipmentSlot.PocketItem, "기계 심장": ItemEquipmentSlot.MechanicalHeart, "얼굴장식": ItemEquipmentSlot.FaceAccessory, "눈장식": ItemEquipmentSlot.EyeAccessory }; export const ItemEquipmentSlotMappingTMS = { // Standard equips "帽子": ItemEquipmentSlot.Hat, "上衣": ItemEquipmentSlot.Top, "褲/裙": ItemEquipmentSlot.Bottom, "鞋子": ItemEquipmentSlot.Shoes, "手套": ItemEquipmentSlot.Glove, "披風": ItemEquipmentSlot.Cape, "耳環": ItemEquipmentSlot.Earring, "腰帶": ItemEquipmentSlot.Belt, "墜飾": ItemEquipmentSlot.Pendant, "墜飾2": ItemEquipmentSlot.Pendant2, "肩膀裝飾": ItemEquipmentSlot.ShoulderDecoration, "臉飾": ItemEquipmentSlot.FaceAccessory, "眼飾": ItemEquipmentSlot.EyeAccessory, "武器": ItemEquipmentSlot.Weapon, "輔助武器": ItemEquipmentSlot.SecondaryWeapons, // Emblem vs Badge (TMS commonly uses these two distinct labels) "徽章": ItemEquipmentSlot.Emblem, "胸章": ItemEquipmentSlot.Badge, "勳章": ItemEquipmentSlot.Medal, "口袋道具": ItemEquipmentSlot.PocketItem, "機器心臟": ItemEquipmentSlot.MechanicalHeart, // Rings "戒指1": ItemEquipmentSlot.Ring1, "戒指2": ItemEquipmentSlot.Ring2, "戒指3": ItemEquipmentSlot.Ring3, "戒指4": ItemEquipmentSlot.Ring4, }; export const PotentialMappingSEA = { "Rare": Potential.Rare, "Epic": Potential.Epic, "Unique": Potential.Unique, "Legendary": Potential.Legendary }; export const PotentialMappingKMS = { "레어": Potential.Rare, "에픽": Potential.Epic, "유니크": Potential.Unique, "레전드리": Potential.Legendary }; export const PotentialMappingTMS = { // MapleStoryTW commonly: 特殊 -> 稀有 -> 罕見 -> 傳說 "特殊": Potential.Rare, "稀有": Potential.Epic, "罕見": Potential.Unique, "傳說": Potential.Legendary, }; export const CharacterClassMappingSEA = { "Hero": CharacterClass.Hero, "Paladin": CharacterClass.Paladin, "Dark Knight": CharacterClass.DarkKnight, "Soul Master": CharacterClass.SoulMaster, "Mihile": CharacterClass.Mihile, "Blaster": CharacterClass.Blaster, "Demon Slayer": CharacterClass.DemonSlayer, "Demon Avenger": CharacterClass.DemonAvenger, "Aran": CharacterClass.Aran, "Kaiser": CharacterClass.Kaiser, "Adele": CharacterClass.Adele, "Zero": CharacterClass.Zero, "ArchMage F/P": CharacterClass.ArchMageFP, "ArchMage I/L": CharacterClass.ArchMageIL, "Bishop": CharacterClass.Bishop, "Flame Wizard": CharacterClass.FlameWizard, "Battle Mage": CharacterClass.BattleMage, "Evan": CharacterClass.Evan, "Luminous": CharacterClass.Luminous, "Illium": CharacterClass.Illium, "Lara": CharacterClass.Lara, "Kinesis": CharacterClass.Kinesis, "Bowmaster": CharacterClass.Bowmaster, "Crossbow Master": CharacterClass.CrossbowMaster, "Pathfinder": CharacterClass.Pathfinder, "Wind Breaker": CharacterClass.WindBreaker, "Wild Hunter": CharacterClass.WildHunter, "Mercedes": CharacterClass.Mercedes, "Kaine": CharacterClass.Kaine, "Night Lord": CharacterClass.NightLord, "Shadower": CharacterClass.Shadower, "Blade Master": CharacterClass.BladeMaster, "Night Walker": CharacterClass.NightWalker, "Xenon": CharacterClass.Xenon, "Phantom": CharacterClass.Phantom, "Cadena": CharacterClass.Cadena, "Khali": CharacterClass.Khali, "HoYoung": CharacterClass.HoYoung, "Viper": CharacterClass.Viper, "Captain": CharacterClass.Captain, "Cannon Master": CharacterClass.CannonMaster, "Striker": CharacterClass.Striker, "Mechanic": CharacterClass.Mechanic, "Eunwol": CharacterClass.Eunwol, "Angelic Buster": CharacterClass.AngelicBuster, "Ark": CharacterClass.Ark, "Hayato": CharacterClass.Hayato, "Kanna": CharacterClass.Kanna, "Len": CharacterClass.Len, "Mo Xuan": CharacterClass.MoXuan, "Lynn": CharacterClass.Lynn }; export const CharacterClassMappingKMS = { "히어로": CharacterClass.Hero, "다크나이트": CharacterClass.DarkKnight, "팔라딘": CharacterClass.Paladin, "비숍": CharacterClass.Bishop, "불독": CharacterClass.ArchMageFP, "썬콜": CharacterClass.ArchMageIL, "섀도어": CharacterClass.Shadower, "나이트로드": CharacterClass.NightLord, "듀얼블레이드": CharacterClass.BladeMaster, "보우마스터": CharacterClass.Bowmaster, "패스파인더": CharacterClass.Pathfinder, "소울마스터": CharacterClass.SoulMaster, "플레임위자드": CharacterClass.FlameWizard, "나이트워커": CharacterClass.NightWalker, "윈드브레이커": CharacterClass.WindBreaker, "스트라이커": CharacterClass.Striker, "미하일": CharacterClass.Mihile, "아란": CharacterClass.Aran, "에반": CharacterClass.Evan, "메르세데스": CharacterClass.Mercedes, "루미너스": CharacterClass.Luminous, "팬텀": CharacterClass.Phantom, "은월": CharacterClass.Eunwol, "엔젤릭버스터": CharacterClass.AngelicBuster, "카이저": CharacterClass.Kaiser, "카데나": CharacterClass.Cadena, "카인": CharacterClass.Kaine, "제논": CharacterClass.Xenon, "메카닉": CharacterClass.Mechanic, "배틀메이지": CharacterClass.BattleMage, "와일드헌터": CharacterClass.WildHunter, "블래스터": CharacterClass.Blaster, "데몬 어벤저": CharacterClass.DemonAvenger, "데몬 슬레이어": CharacterClass.DemonSlayer, "아델": CharacterClass.Adele, "아크": CharacterClass.Ark, "일리움": CharacterClass.Illium, "칼리": CharacterClass.Khali, "호영": CharacterClass.HoYoung, "라라": CharacterClass.Lara, "키네시스": CharacterClass.Kinesis, "제로": CharacterClass.Zero, "신궁": CharacterClass.CrossbowMaster, "바이퍼": CharacterClass.Viper, "캡틴": CharacterClass.Captain, "캐논슈터": CharacterClass.CannonMaster, "렌": CharacterClass.Len, "묵현": CharacterClass.MoXuan, "린": CharacterClass.Lynn, "칸나": CharacterClass.Kanna, "하야토": CharacterClass.Hayato }; export const CharacterClassMappingTMS = { "主教": CharacterClass.Bishop, "亞克": CharacterClass.Ark, "伊利恩": CharacterClass.Illium, "傑諾": CharacterClass.Xenon, "凱內西斯": CharacterClass.Kinesis, "凱撒": CharacterClass.Kaiser, "凱殷": CharacterClass.Kaine, "劍豪": CharacterClass.Hayato, "卡莉": CharacterClass.Khali, "卡蒂娜": CharacterClass.Cadena, "夜使者": CharacterClass.NightLord, "夜光": CharacterClass.Luminous, "大魔導士(冰、雷)": CharacterClass.ArchMageIL, "大魔導士(火、毒)": CharacterClass.ArchMageFP, "天使破壞者": CharacterClass.AngelicBuster, "影武者": CharacterClass.BladeMaster, "惡魔復仇者": CharacterClass.DemonAvenger, "惡魔殺手": CharacterClass.DemonSlayer, "烈焰巫師": CharacterClass.FlameWizard, "狂狼勇士": CharacterClass.Aran, "爆破者": CharacterClass.Blaster, "班雷昂": CharacterClass.BattleMage, "盜俠": CharacterClass.Shadower, "神射手": CharacterClass.CrossbowMaster, "精靈遊俠": CharacterClass.Mercedes, "聖騎士": CharacterClass.Paladin, "開拓者": CharacterClass.Pathfinder, "陰陽師": CharacterClass.Kanna, "英雄": CharacterClass.Hero, "虎影": CharacterClass.HoYoung, "墨玄": CharacterClass.MoXuan, // TODO: add CharacterClass.Mokhyeon (묵현) to enum, then map here "槍神": CharacterClass.Captain, "機甲戰神": CharacterClass.Mechanic, "米哈逸": CharacterClass.Mihile, "菈菈": CharacterClass.Lara, "蓮": CharacterClass.Len, "覺醒者": CharacterClass.Adele, "追風者": CharacterClass.WindBreaker, "暗夜行者": CharacterClass.NightWalker, "狂豹獵人": CharacterClass.WildHunter, "閃雷悍將": CharacterClass.Striker, "幻影俠盜": CharacterClass.Phantom, "黑騎士": CharacterClass.DarkKnight, "劍士": CharacterClass.Viper, "箭神": CharacterClass.Bowmaster, "琳恩": CharacterClass.Lynn, // TODO: add CharacterClass.Lynn (린) to enum, then map here "隱月": CharacterClass.Eunwol, "神之子": CharacterClass.Zero, "龍魔導士": CharacterClass.Evan, "聖魂劍士": CharacterClass.SoulMaster, "重砲指揮官": CharacterClass.CannonMaster, }; export const StatMappingSEA = { "Minimum ATT Stat": StatName.MinimumAttStat, "Maximum ATT Stat": StatName.MaximumAttStat, "Damage": StatName.Damage, "Boss Monster Damage": StatName.BossMonsterDamage, "Final Damage": StatName.FinalDamage, "Ignore DEF": StatName.IgnoreDef, "Critical Rate": StatName.CriticalRate, "Critical Damage": StatName.CriticalDamage, "Status Resistance": StatName.StatusResistance, "Stance": StatName.Stance, "DEF": StatName.Def, "Speed": StatName.Speed, "Jump": StatName.Jump, "Star Force": StatName.Starforce, "Arcane Force": StatName.ArcaneForce, "Authentic Force": StatName.AuthenticForce, "STR": StatName.Str, "DEX": StatName.Dex, "INT": StatName.Int, "LUK": StatName.Luk, "HP": StatName.Hp, "MP": StatName.Mp, "Item Drop Rate": StatName.ItemDropRate, "Meso Obtained": StatName.MesoObtained, "Buff Duration": StatName.BuffDuration, "Attack Speed": StatName.AttackSpeed, "Normal monster damage": StatName.NormalMonsterDamage, "Cooldown reduction (sec)": StatName.CooldownReductionSec, "Cooldown reduction (%)": StatName.CooldownReductionPercent, "Unaffected by Cooldown": StatName.UnaffectedByCooldown, "Ignore Elemental Resistance": StatName.IgnoreElementalResistance, "Abnormal Status Additional Damage": StatName.AbnormalStatusAdditionalDamage, "Additonal EXP Obtained": StatName.AdditionalExpObtained, "ATT": StatName.Att, "MATT": StatName.MAtt, "Combat Power": StatName.CombatPower, "Summon Duration Increase": StatName.SummonDurationIncrease }; export const StatMappingKMS = { "최소 스탯공격력": StatName.MinimumAttStat, "최대 스탯공격력": StatName.MaximumAttStat, "데미지": StatName.Damage, "보스 몬스터 데미지": StatName.BossMonsterDamage, "최종 데미지": StatName.FinalDamage, "방어율 무시": StatName.IgnoreDef, "크리티컬 확률": StatName.CriticalRate, "크리티컬 데미지": StatName.CriticalDamage, "상태이상 내성": StatName.StatusResistance, "스탠스": StatName.Stance, "방어력": StatName.Def, "이동속도": StatName.Speed, "점프력": StatName.Jump, "스타포스": StatName.Starforce, "아케인포스": StatName.ArcaneForce, "어센틱포스": StatName.AuthenticForce, "STR": StatName.Str, "DEX": StatName.Dex, "INT": StatName.Int, "LUK": StatName.Luk, "HP": StatName.Hp, "MP": StatName.Mp, "아이템 드롭률": StatName.ItemDropRate, "메소 획득량": StatName.MesoObtained, "버프 지속시간": StatName.BuffDuration, "공격 속도": StatName.AttackSpeed, "일반 몬스터 데미지": StatName.NormalMonsterDamage, "재사용 대기시간 감소 (초)": StatName.CooldownReductionSec, "재사용 대기시간 감소 (%)": StatName.CooldownReductionPercent, "재사용 대기시간 미적용": StatName.UnaffectedByCooldown, "속성 내성 무시": StatName.IgnoreElementalResistance, "상태이상 추가 데미지": StatName.AbnormalStatusAdditionalDamage, "추가 경험치 획득": StatName.AdditionalExpObtained, "공격력": StatName.Att, "마력": StatName.MAtt, "전투력": StatName.CombatPower, "소환수 지속시간 증가": StatName.SummonDurationIncrease }; export const StatMappingTMS = { // Attack range / “stat attack” "最低屬性攻擊力": StatName.MinimumAttStat, "最高屬性攻擊力": StatName.MaximumAttStat, // Damage "傷害": StatName.Damage, "BOSS怪物傷害": StatName.BossMonsterDamage, "最終傷害": StatName.FinalDamage, // Ignore / crit "無視防禦率": StatName.IgnoreDef, "爆擊機率": StatName.CriticalRate, "爆擊傷害": StatName.CriticalDamage, // Defensive / misc "狀態異常耐性": StatName.StatusResistance, "格擋": StatName.Stance, // TW label corresponds to “stance” "防禦力": StatName.Def, "移動速度": StatName.Speed, "跳躍力": StatName.Jump, // Forces "星力": StatName.Starforce, "神秘力量": StatName.ArcaneForce, "真實之力": StatName.AuthenticForce, // Primary stats "STR": StatName.Str, "DEX": StatName.Dex, "INT": StatName.Int, "LUK": StatName.Luk, "HP": StatName.Hp, "MP": StatName.Mp, // Drop / meso / buffs "道具掉落率": StatName.ItemDropRate, "楓幣獲得量": StatName.MesoObtained, "Buff持續時間": StatName.BuffDuration, // Speed / cooldown / special "攻擊速度": StatName.AttackSpeed, "一般怪物傷害": StatName.NormalMonsterDamage, "冷卻時間減少(秒)": StatName.CooldownReductionSec, "冷卻時間減少(%)": StatName.CooldownReductionPercent, "未套用冷卻時間": StatName.UnaffectedByCooldown, "無視屬性耐性": StatName.IgnoreElementalResistance, "狀態異常追加傷害": StatName.AbnormalStatusAdditionalDamage, // EXP "獲得額外經驗值": StatName.AdditionalExpObtained, // Attack / power "攻擊力": StatName.Att, "魔法攻擊力": StatName.MAtt, "戰鬥力": StatName.CombatPower, // Summons "召喚獸持續時間增加": StatName.SummonDurationIncrease, }; export function toMapleServer(input) { return Object.values(MapleServer).includes(input) ? input : undefined; }