EF2 Changelog

Builds / 1.14.67

Update 1.14.67

Compared with 1.14.45 · published Tue, 22 Sep 2026 00:00:35 GMT · live channel

No summary yet.

Text changes 89

KeyText
UNIT_NAME_105 + Flame Spirit
UNIT_NAME_106 + Hippogriff
UNIT_NAME_107 + Crow Knight
UNIT_NAME_108 + Naga
UNIT_NAME_109 + Flame Spirit Ⅱ
UNIT_NAME_110 + Hippogriff Ⅱ
UNIT_NAME_111 + Crow Knight Ⅱ
UNIT_NAME_112 + Naga Ⅱ
HERO_UNIQUE_SKILL_DESC_96 + The activation chance of Elf Secret Art increases by 2%. (Stacks, and the increase from Hippogriff cannot exceed 30%.)
HERO_UNIQUE_SKILL_DESC_97 + The activation chance of Elf Secret Art increases by 5%. (Stacks, and the increase from Hippogriff cannot exceed 30%.)
HERO_UNIQUE_SKILL_DESC_98 + When Elf Secret Art activates, there is a 1% chance to skip 2 waves. (Cannot exceed 30%.)
HERO_UNIQUE_SKILL_DESC_99 + When Elf Secret Art activates, there is a 3% chance to skip 2 waves. (Cannot exceed 30%.)
HERO_UNIQUE_SKILL_DESC_100 + When using Call of Twilight, there is a 1% chance not to consume a charge. (Cannot exceed 30%.)
HERO_UNIQUE_SKILL_DESC_101 + When using Call of Twilight, there is a 3% chance not to consume a charge. (Cannot exceed 30%.)
HERO_UNIQUE_SKILL_DESC_102 + The level of all Heroes increases by 5. (Stacks.)
HERO_UNIQUE_SKILL_DESC_103 + The level of all Heroes increases by 15. (Stacks.)
HERO_UNIQUE_SKILL_DESC_104 + Enemy spawn time decreases by 1%. (Stacks, up to a maximum of 15%.)
HERO_UNIQUE_SKILL_DESC_105 + Enemy spawn time decreases by 2%. (Stacks, up to a maximum of 15%.)
PET_NAME_31 + Rena
PET_NAME_32 + Hippong
PET_NAME_33 + Raven
PET_NAME_34 + Seahorse
PET_NAME_1012 + Brie
PET_NAME_1013 + Digger
PET_10027 + • Human Secret Art randomly selects and activates one of up to 5 most recently unlocked quests.\n• When placed in the Vault, Vault Points increase further. (5★ +8, 6★ +16, Transcendence 1 +24, Transcendence 2 +32, Transcendence 3 +40)
PET_10028 + • Even if Druid is in the Barracks, the level of Human and Elf Heroes increases. (5★ +5, 6★ +15)\n• The level increase of Human and Elf Heroes from Druid in the Barracks cannot exceed 300.
PET_10029 + • Even if Succubus is in the Barracks, the charge speed of Call of Twilight increases. (5★ 1%, 6★ 2.5%)\n• The increase in Call of Twilight charge speed from Succubus in the Barracks cannot exceed 50%.
PET_10030 +
COMMON_573 + Tap empty space to close.
PRODUCT_NAME_264 + Hammer Package (Daily)
PRODUCT_NAME_265 + Hammer Package 1 (Weekly)
PRODUCT_NAME_266 + Hammer Package 2 (Weekly)
PRODUCT_NAME_267 + Hammer Package 1 (Monthly)
PRODUCT_NAME_268 + Hammer Package 2 (Monthly)
PRODUCT_NAME_269 + Hammer Package 3 (Monthly)
PRODUCT_NAME_270 + Rena Package 1 (One-time only)
PRODUCT_NAME_271 + Rena Package 2 (One-time only)
PRODUCT_NAME_272 + Rena Package 3 (One-time only)
PRODUCT_NAME_273 + Rena Package 4 (One-time only)
PRODUCT_NAME_274 + Rena Package 5 (One-time only)
PRODUCT_NAME_275 + Rena Package 6 (One-time only)
PRODUCT_NAME_276 + Hippong Package 1 (One-time only)
PRODUCT_NAME_277 + Hippong Package 2 (One-time only)
PRODUCT_NAME_278 + Hippong Package 3 (One-time only)
PRODUCT_NAME_279 + Hippong Package 4 (One-time only)
PRODUCT_NAME_280 + Hippong Package 5 (One-time only)
PRODUCT_NAME_281 + Hippong Package 6 (One-time only)
PRODUCT_NAME_282 + Raven Package 1 (One-time only)
PRODUCT_NAME_283 + Raven Package 2 (One-time only)
PRODUCT_NAME_284 + Raven Package 3 (One-time only)
PRODUCT_NAME_285 + Raven Package 4 (One-time only)
PRODUCT_NAME_286 + Raven Package 5 (One-time only)
PRODUCT_NAME_287 + Raven Package 6 (One-time only)
PRODUCT_NAME_288 + Seahorse Package 1 (One-time only)
PRODUCT_NAME_289 + Seahorse Package 2 (One-time only)
PRODUCT_NAME_290 + Seahorse Package 3 (One-time only)
PRODUCT_NAME_291 + Seahorse Package 4 (One-time only)
PRODUCT_NAME_292 + Seahorse Package 5 (One-time only)
PRODUCT_NAME_293 + Seahorse Package 6 (One-time only)
PRODUCT_NAME_294 + Flame Spirit Package (One-time only)
PRODUCT_NAME_295 + Hippogriff Package (One-time only)
PRODUCT_NAME_296 + Crow Knight Package (One-time only)
PRODUCT_NAME_297 + Naga Package (One-time only)
PRODUCT_DESC_64 + You can obtain Pet Fragments (Rena).
PRODUCT_DESC_65 + You can obtain Pet Fragments (Hippong).
PRODUCT_DESC_66 + You can obtain Pet Fragments (Raven).
PRODUCT_DESC_67 + You can obtain Pet Fragments (Seahorse).
PRODUCT_DESC_68 + A special Shop item that lets you Recruit the Flame Spirit. (One-time only)
PRODUCT_DESC_69 + A special Shop item that lets you Recruit the Hippogriff. (One-time only)
PRODUCT_DESC_70 + A special Shop item that lets you Recruit the Crow Knight. (One-time only)
PRODUCT_DESC_71 + A special Shop item that lets you Recruit the Naga. (One-time only)
GAME_1662 + Check in every day and claim your gift!
GAME_1663 + Hammer Usage
GAME_1664 + Basic
GAME_1665 + 4x
GAME_1666 + Hit 5 Tiles
GAME_1667 + Hit 9 Tiles
GAME_1668 + Numbers indicate damage dealt to tiles.
GAME_1669 + No Preset selected.
GAME_1700 + Spirit Sanctuary
GAME_1701 + Increases the chance to obtain additional Pet Fragments in the Spirit Highlands.
GAME_1702 + Fire Spirits in Communion
GAME_1703 + Additional Acquisition Chance
GAME_1704 + Pet Fragment on Activation
GAME_1705 + The 5 Fire Spirits with the highest effects among those you own are automatically assigned.
GAME_1706 + 5★ +0.5%, 6★ +1%, Transcendence 1 +1.5%, Transcendence 2 +2%, Transcendence 3 +3%. Combined maximum: 15%.
GAME_1707 + When clearing the Spirit Highlands, you have a chance to obtain 1 additional Pet Fragment from that stage. Applies only to Pet Fragment rewards.
GAME_1708 + Also applies to Instant Completion. When completing multiple runs, each run is calculated independently.
GAME_1709 + Spirit Affinity: Pet Fragment +##

Translations touched: de (89), es (89), fr (89), id (89), it (89), ja (89), ko (89), pl (4255), pt (89), ru (89), th (89), tr (89), vi (89), zh-CN (89), zh-TW (89)

Assets 14

FileChangeSizePreview
assets/ekkorr/UI_Ekkorr.json changed 193.6 KB → 189.6 KB

New sprites: AllPreset, Citadel5, Hero105, Hero106, Hero107, Hero108

Removed sprites: Icon_All, Icon_Melee, Icon_Range, Icon_Skill_ARU, Icon_Skill_ASU, Icon_Skill_AU, Icon_Skill_BGGU, Icon_Skill_CDU, Icon_Skill_CPU, Icon_Skill_DU, Icon_Skill_ECU, Icon_Skill_GCU, Icon_Skill_HU, Icon_Skill_MSU, Icon_Skill_QCTD, Icon_Skill_QGGU, Icon_Skill_QUCD, Icon_Skill_RTD, Icon_Skill_SUCD, Icon_Skill_TAU, Icon_Tribe1, Icon_Tribe2, Icon_Tribe3, Icon_Tribe4

assets/ekkorr/UI_Ekkorr.ktx2 changed 2,092.9 KB → 2,088.1 KB
assets/ekkorr/UI_Ekkorr.png added 5,106.4 KB after
assets/ekkorr/UI_Ekkorr2.json added 4.9 KB

New sprites: Icon_All, Icon_Melee, Icon_Range, Icon_Skill_ARU, Icon_Skill_ASU, Icon_Skill_AU, Icon_Skill_BGGU, Icon_Skill_CDU, Icon_Skill_CPU, Icon_Skill_DU, Icon_Skill_ECU, Icon_Skill_GCU, Icon_Skill_HU, Icon_Skill_MSU, Icon_Skill_QCTD, Icon_Skill_QGGU, Icon_Skill_QUCD, Icon_Skill_RTD, Icon_Skill_SUCD, Icon_Skill_TAU, Icon_Tribe1, Icon_Tribe2, Icon_Tribe3, Icon_Tribe4

assets/ekkorr/UI_Ekkorr2.ktx2 added 76.3 KB
assets/ekkorr/UI_Ekkorr_unpacked_rgb_ETC1_RGB_face_0_layer_0000.png added 3,062.2 KB after
assets/images/Game.json changed 1,913.3 KB → 1,803.6 KB

New sprites: BurnEffect10001, BurnEffect10002, BurnEffect10003, BurnEffect10004, BurnEffect10005, BurnEffect10006, BurnEffect10007, BurnEffect10008

assets/images/Game.ktx2 changed 2,051.6 KB → 2,051.9 KB
assets/images/Game2.json added 271.4 KB

New sprites: BurntEffect10001.png, BurntEffect10002.png, BurntEffect10003.png, BurntEffect10004.png, BurntEffect10005.png, BurntEffect10006.png, BurntEffect10007.png, BurntEffect10008.png, BurntEffect10009.png, BurntEffect10010.png, BurntEffect10011.png, BurntEffect10012.png, BurntEffect10013.png, BurntEffect10014.png, BurntEffect10015.png, BurntEffect10016.png, BurntEffect10017.png, BurntEffect10018.png, FireAttack10001.png, FireAttack10002.png, FireAttack10003.png, FireAttack10004.png, FireAttack10005.png, FireAttack10006.png, FireAttack10007.png, FireAttack10008.png, FireAttack10009.png, FireAttack10010.png, FireAttack10011.png, FireAttack10012.png, FireAttack10013.png, FireAttack10014.png, FireBall10001.png, FireBall10002.png, FireBall10003.png, FireBall10004.png, FireBall10005.png, FireBall10006.png, FireBall10007.png, FireBall10008.png, FireExplosion10001.png, FireExplosion10002.png, FireExplosion10003.png, FireExplosion10004.png, FireExplosion10005.png, FireExplosion10006.png, FireExplosion10007.png, FireExplosion10008.png, FireExplosion10009.png, FireSpirit10001.png, FireSpirit10002.png, FireSpirit10003.png, FireSpirit10004.png, FireSpirit10005.png, FireSpirit10006.png, FireSpirit10007.png, FireSpirit10008.png, FireSpirit10009.png, FireSpirit10010.png, FireSpirit10011.png, FireSpirit10012.png, FireSpirit10013.png, FireSpirit10014.png, FireSpirit10015.png, FireSpirit10016.png, FireSpirit10017.png, FireSpirit10018.png, FireSpirit10019.png, FireSpirit10020.png, FireSpirit10021.png, FireSpirit10022.png, FireSpirit10023.png, FireSpirit10024.png, FireSpirit10025.png, FireSpirit10026.png, FireSpirit10027.png, FireSpirit10028.png, FireSpirit10029.png, FireSpirit10030.png, FireSpirit10031.png, FireSpirit10032.png, FireSpirit10033.png, FireSpirit10034.png, FireSpirit10035.png, FireSpirit10036.png, FireSpirit10037.png, FireSpirit10038.png, FireSpirit10039.png, FireSpirit10040.png, FireSpirit10041.png, FireSpirit10042.png, FireSpirit10043.png, FireSpirit10044.png, FireSpirit10045.png, FireSpirit10046.png, FireSpirit10047.png, FireSpirit10048.png, FireSpirit10049.png, FireSpirit10050.png, FireSpirit10051.png, FireSpirit10052.png, FireSpirit10053.png, FireSpirit10054.png, FireSpirit10055.png, FireSpirit10056.png, FireSpirit10057.png, FireSpirit10058.png, FireSpirit10059.png, FireSpirit10060.png, FireSpirit10061.png, FireSpirit10062.png, FireSpirit10063.png, FireSpirit10064.png, FireSpirit10065.png, FireSpirit10066.png, FireSpirit10067.png, FireSpirit10068.png, FireSpirit10069.png, FireSpirit10070.png, FireSpirit10071.png, FireSpirit10072.png, FireSpirit10073.png, FireSpirit10074.png, FireSpirit10075.png, FireSpirit10076.png, FireSpirit10077.png, FireSpirit10078.png, FireSpirit10079.png, FireSpirit10080.png, FireSpirit10081.png, FireSpirit10082.png, FireSpirit10083.png, FireSpirit10084.png, FireSpirit10085.png, FireSpirit10086.png, FireSpirit10087.png, FireSpirit10088.png, FireSpirit10089.png, FireSpirit10090.png, FireSpirit10091.png, FireSpirit10092.png, FireSpirit10093.png, FireSpirit10094.png, FireSpirit10095.png, FireSpirit10096.png, FireSpirit10097.png, FireSpirit10098.png, FireSpirit10099.png, FireSpirit10100.png, FireSpirit10101.png, FireSpirit10102.png, FireSpirit10103.png, FireSpirit10104.png, FireSpirit10105.png, FireSpirit10106.png, FireSpirit10107.png, FireSpirit10108.png, FireSpirit10109.png, FireSpirit10110.png, FireSpirit10111.png, FireSpirit10112.png, FireSpirit10113.png, FireSpirit10114.png, FireSpirit10115.png, FireSpirit10116.png, FireSpirit10117.png, FireSpirit10118.png, FireSpirit10119.png, FireSpirit10120.png, FireSpirit10121.png, FireSpirit10122.png, FireSpirit10123.png, FireSpirit10124.png, FireSpirit10125.png, FireSpirit10126.png, FireSpirit10127.png, FireSpirit10128.png, FireSpirit10129.png, FireSpirit10130.png, FireSpirit10131.png, FireSpirit10132.png, FireSpirit10133.png, FireSpirit10134.png, FireSpirit10135.png, FireSpirit10136.png, FireSpirit10137.png, FireSpirit10138.png, FireSpirit10139.png, FireSpirit10140.png, FireSpirit10141.png, FireSpirit10142.png, FireSpirit10143.png, FireSpirit10144.png, FireSpirit10145.png, FireSpirit10146.png, FireSpirit10147.png, FireSpirit10148.png, FireSpirit10149.png, FireSpirit10150.png, FireSpirit10151.png, FireSpirit10152.png, FireSpirit10153.png, FireSpirit10154.png, FireSpirit10155.png, FireSpirit10156.png, FireSpirit10157.png, FireSpirit10158.png, FireSpirit10159.png, FireSpirit10160.png, FireSpirit10161.png, FireSpirit10162.png, FireSpirit10163.png, FireSpirit10164.png, FireSpirit10165.png, FireSpirit10166.png, FireSpirit10167.png, FireSpirit10168.png, FireSpirit10169.png, FireSpirit10170.png, FireSpirit10171.png, FireSpirit10172.png, FireSpirit10173.png, FireSpirit10174.png, FireSpirit10175.png, FireSpirit10176.png, FireSpirit10177.png, FireSpirit10178.png, FireSpirit10179.png, FireSpirit10180.png, FireSpirit10181.png, FireSpirit10182.png, FireSpirit10183.png, FireSpirit10184.png, FireSpirit10185.png, FireSpirit10186.png, FireSpirit10187.png, FireSpirit10188.png, FireSpirit10189.png, FireSpirit10190.png, FireSpirit10191.png, FireSpirit10192.png, FireSpirit10193.png, FireSpirit10194.png, FireSpirit10195.png, FireTornado10001.png, FireTornado10002.png, FireTornado10003.png, FireTornado10004.png, FireTornado10005.png, FireTornado10006.png, FireTornado10007.png, FireTornado10008.png, FireTornado10009.png, FireTornado10010.png, FireTornado10011.png, FireTornado10012.png, GriffinRider10001.png, GriffinRider10002.png, GriffinRider10003.png, GriffinRider10004.png, GriffinRider10005.png, GriffinRider10006.png, GriffinRider10007.png, GriffinRider10008.png, GriffinRider10009.png, GriffinRider10010.png, GriffinRider10011.png, GriffinRider10012.png, GriffinRider10013.png, GriffinRider10014.png, GriffinRider10015.png, GriffinRider10016.png, GriffinRider10017.png, GriffinRider10018.png, GriffinRider10019.png, GriffinRider10020.png, GriffinRider10021.png, GriffinRider10022.png, GriffinRider10023.png, GriffinRider10024.png, GriffinRider10025.png, GriffinRider10026.png, GriffinRider10027.png, GriffinRider10028.png, GriffinRider10029.png, GriffinRider10030.png, GriffinRider10031.png, GriffinRider10032.png, GriffinRider10033.png, GriffinRider10034.png, GriffinRider10035.png, GriffinRider10036.png, GriffinRider10037.png, GriffinRider10038.png, GriffinRider10039.png, GriffinRider10040.png, GriffinRider10041.png, GriffinRider10042.png, GriffinRider10043.png, GriffinRider10044.png, GriffinRider10045.png, GriffinRider10046.png, GriffinRider10047.png, GriffinRider10048.png, GriffinRider10049.png, GriffinRider10050.png, GriffinRider10051.png, GriffinRider10052.png, GriffinRider10053.png, GriffinRider10054.png, GriffinRider10055.png, GriffinRider10056.png, GriffinRider10057.png, GriffinRider10058.png, GriffinRider10059.png, GriffinRider10060.png, GriffinRider10061.png, GriffinRider10062.png, GriffinRider10063.png, GriffinRider10064.png, GriffinRider10065.png, GriffinRider10066.png, GriffinRider10067.png, GriffinRider10068.png, GriffinRider10069.png, GriffinRider10070.png, GriffinRider10071.png, GriffinRider10072.png, GriffinRider10073.png, GriffinRider10074.png, GriffinRider10075.png, GriffinRider10076.png, GriffinRider10077.png, GriffinRider10078.png, GriffinRider10079.png, GriffinRider10080.png, GriffinRider10081.png, GriffinRider10082.png, GriffinRider10083.png, GriffinRider10084.png, GriffinRider10085.png, GriffinRider10086.png, GriffinRider10087.png, GriffinRider10088.png, GriffinRider10089.png, GriffinRider10090.png, GriffinRider10091.png, GriffinRider10092.png, GriffinRider10093.png, GriffinRider10094.png, GriffinRider10095.png, GriffinRider10096.png, GriffinRider10097.png, GriffinRider10098.png, GriffinRider10099.png, GriffinRider10100.png, GriffinRider10101.png, GriffinRider10102.png, GriffinRider10103.png, GriffinRider10104.png, GriffinRider10105.png, GriffinRider10106.png, GriffinRider10107.png, GriffinRider10108.png, GriffinRider10109.png, GriffinRider10110.png, GriffinRider10111.png, GriffinRider10112.png, GriffinRider10113.png, GriffinRider10114.png, GriffinRider10115.png, GriffinRider10116.png, GriffinRider10117.png, GriffinRider10118.png, GriffinRider10119.png, GriffinRider10120.png, GriffinRider10121.png, GriffinRider10122.png, GriffinRider10123.png, GriffinRider10124.png, GriffinRider10125.png, GriffinRider10126.png, GriffinRider10127.png, GriffinRider10128.png, GriffinRider10129.png, GriffinRider10130.png, GriffinRider10131.png, GriffinRider10132.png, GriffinRider10133.png, GriffinRider10134.png, GriffinRider10135.png, GriffinRider10136.png, GriffinRider10137.png, GriffinRider10138.png, GriffinRider10139.png, GriffinRider10140.png, GriffinRider10141.png, GriffinRider10142.png, GriffinRider10143.png, GriffinRider10144.png, GriffinRider10145.png, GriffinRider10146.png, GriffinRider10147.png, GriffinRider10148.png, GriffinRider10149.png, GriffinRider10150.png, GriffinRider10151.png, GriffinRider10152.png, GriffinRider10153.png, GriffinRider10154.png, GriffinRider10155.png, GriffinRider10156.png, GriffinRider10157.png, GriffinRider10158.png, GriffinRider10159.png, GriffinRider10160.png, GriffinRider10161.png, GriffinRider10162.png, GriffinRider10163.png, GriffinRider10164.png, GriffinRider10165.png, GriffinRider10166.png, GriffinRider10167.png, GriffinRider10168.png, GriffinRider10169.png, GriffinRider10170.png, GriffinRider10171.png, GriffinRider10172.png, GriffinRider10173.png, GriffinRider10174.png, GriffinRider10175.png, GriffinRider10176.png, GriffinRider10177.png, GriffinRider10178.png, GriffinRider10179.png, GriffinRider10180.png, GriffinRider10181.png, GriffinRider10182.png, GriffinRider10183.png, GriffinRider10184.png, GriffinRider10185.png, GriffinRider10186.png, GriffinRider10187.png, GriffinRider10188.png, GriffinRider10189.png, GriffinRider10190.png, GriffinRider10191.png, GriffinRider10192.png, GriffinRider10193.png, GriffinRider10194.png, GriffinRider10195.png, GriffinRider10196.png, GriffinRider10197.png, GriffinRider10198.png, GriffinRider10199.png, GriffinRider10200.png, GriffinRider10201.png, GriffinRider10202.png, GriffinRider10203.png, GriffinRider10204.png, GriffinRider10205.png, GriffinRider10206.png, GriffinRider10207.png, GriffinRider10208.png, GriffinRider10209.png, GriffinRider10210.png, GriffinRider10211.png, GriffinRider10212.png, GriffinRider10213.png, GriffinRider10214.png, GriffinRider10215.png, GriffinRider10216.png, GriffinRider10217.png, GriffinRider10218.png, GriffinRider10219.png, GriffinRider10220.png, GriffinRider10221.png, GriffinRider10222.png, GriffinRider10223.png, GriffinRider10224.png, GriffinRider10225.png, GriffinRider10226.png, GriffinRider10227.png, GriffinRiderSpear.png, Hippogriff10001.png, Hippogriff10002.png, Hippogriff10003.png, Hippogriff10004.png, Hippogriff10005.png, Hippogriff10006.png, Hippogriff10007.png, Hippogriff10008.png, Hippogriff10009.png, Hippogriff10010.png, Hippogriff10011.png, Hippogriff10012.png, Hippogriff10013.png, Hippogriff10014.png, Hippogriff10015.png, Hippogriff10016.png, Hippogriff10017.png, Hippogriff10018.png, Hippogriff10019.png, Hippogriff10020.png, Hippogriff10021.png, Hippogriff10022.png, Hippogriff10023.png, Hippogriff10024.png, Hippogriff10025.png, Hippogriff10026.png, Hippogriff10027.png, Hippogriff10028.png, Hippogriff10029.png, Hippogriff10030.png, Hippogriff10031.png, Hippogriff10032.png, Hippogriff10033.png, Hippogriff10034.png, Hippogriff10035.png, Hippogriff10036.png, Hippogriff10037.png, Hippogriff10038.png, Hippogriff10039.png, Hippogriff10040.png, Hippogriff10041.png, Hippogriff10042.png, Hippogriff10043.png, Hippogriff10044.png, Hippogriff10045.png, Hippogriff10046.png, Hippogriff10047.png, Hippogriff10048.png, Hippogriff10049.png, Hippogriff10050.png, Hippogriff10051.png, Hippogriff10052.png, Hippogriff10053.png, Hippogriff10054.png, Hippogriff10055.png, Hippogriff10056.png, Hippogriff10057.png, Hippogriff10058.png, Hippogriff10059.png, Hippogriff10060.png, Hippogriff10061.png, Hippogriff10062.png, Hippogriff10063.png, Hippogriff10064.png, Hippogriff10065.png, Hippogriff10066.png, Hippogriff10067.png, Hippogriff10068.png, Hippogriff10069.png, Hippogriff10070.png, Hippogriff10071.png, Hippogriff10072.png, Hippogriff10073.png, Hippogriff10074.png, Hippogriff10075.png, Hippogriff10076.png, Hippogriff10077.png, Hippogriff10078.png, Hippogriff10079.png, Hippogriff10080.png, Hippogriff10081.png, Hippogriff10082.png, Hippogriff10083.png, Hippogriff10084.png, Hippogriff10085.png, Hippogriff10086.png, Hippogriff10087.png, Hippogriff10088.png, Hippogriff10089.png, Hippogriff10090.png, Hippogriff10091.png, Hippogriff10092.png, Hippogriff10093.png, Hippogriff10094.png, Hippogriff10095.png, Hippogriff10096.png, Hippogriff10097.png, Hippogriff10098.png, Hippogriff10099.png, Hippogriff10100.png, Hippogriff10101.png, Hippogriff10102.png, Hippogriff10103.png, Hippogriff10104.png, Hippogriff10105.png, Hippogriff10106.png, Hippogriff10107.png, Hippogriff10108.png, Hippogriff10109.png, Hippogriff10110.png, Hippogriff10111.png, Hippogriff10112.png, Hippogriff10113.png, Hippogriff10114.png, Hippogriff10115.png, Hippogriff10116.png, Hippogriff10117.png, Hippogriff10118.png, Hippogriff10119.png, Hippogriff10120.png, Hippogriff10121.png, Hippogriff10122.png, Hippogriff10123.png, Hippogriff10124.png, Hippogriff10125.png, Hippogriff10126.png, Hippogriff10127.png, Hippogriff10128.png, Hippogriff10129.png, Hippogriff10130.png, Hippogriff10131.png, Hippogriff10132.png, Hippogriff10133.png, Hippogriff10134.png, Hippogriff10135.png, Hippogriff10136.png, Hippogriff10137.png, Hippogriff10138.png, Hippogriff10139.png, Hippogriff10140.png, Hippogriff10141.png, Hippogriff10142.png, Hippogriff10143.png, Hippogriff10144.png, Hippogriff10145.png, Hippogriff10146.png, Hippogriff10147.png, Hippogriff10148.png, Hippogriff10149.png, Hippogriff10150.png, Hippogriff10151.png, Hippogriff10152.png, Hippogriff10153.png, Hippogriff10154.png, Hippogriff10155.png, Hippogriff10156.png, Hippogriff10157.png, Hippogriff10158.png, Hippogriff10159.png, Hippogriff10160.png, Hippogriff10161.png, Hippogriff10162.png, Hippogriff10163.png, Hippogriff10164.png, Hippogriff10165.png, Hippogriff10166.png, Hippogriff10167.png, Hippogriff10168.png, Hippogriff10169.png, Hippogriff10170.png, Hippogriff10171.png, Hippogriff10172.png, Hippogriff10173.png, Hippogriff10174.png, Hippogriff10175.png, Hippogriff10176.png, Hippogriff10177.png, Hippogriff10178.png, Hippogriff10179.png, Hippogriff10180.png, Hippogriff10181.png, Hippogriff10182.png, Hippogriff10183.png, Hippogriff10184.png, Hippogriff10185.png, Hippogriff10186.png, Hippogriff10187.png, Hippogriff10188.png, Hippogriff10189.png, Hippogriff10190.png, Hippogriff10191.png, Hippogriff10192.png, Hippogriff10193.png, Hippogriff10194.png, Hippogriff10195.png, Hippogriff10196.png, Hippogriff10197.png, Hippogriff10198.png, Hippogriff10199.png, Hippogriff10200.png, HippogriffMissile.png, HippogriffSpear.png, Medusa10001.png, Medusa10002.png, Medusa10003.png, Medusa10004.png, Medusa10005.png, Medusa10006.png, Medusa10007.png, Medusa10008.png, Medusa10009.png, Medusa10010.png, Medusa10011.png, Medusa10012.png, Medusa10013.png, Medusa10014.png, Medusa10015.png, Medusa10016.png, Medusa10017.png, Medusa10018.png, Medusa10019.png, Medusa10020.png, Medusa10021.png, Medusa10022.png, Medusa10023.png, Medusa10024.png, Medusa10025.png, Medusa10026.png, Medusa10027.png, Medusa10028.png, Medusa10029.png, Medusa10030.png, Medusa10031.png, Medusa10032.png, Medusa10033.png, Medusa10034.png, Medusa10035.png, Medusa10036.png, Medusa10037.png, Medusa10038.png, Medusa10039.png, Medusa10040.png, Medusa10041.png, Medusa10042.png, Medusa10043.png, Medusa10044.png, Medusa10045.png, Medusa10046.png, Medusa10047.png, Medusa10048.png, Medusa10049.png, Medusa10050.png, Medusa10051.png, Medusa10052.png, Medusa10053.png, Medusa10054.png, Medusa10055.png, Medusa10056.png, Medusa10057.png, Medusa10058.png, Medusa10059.png, Medusa10060.png, Medusa10061.png, Medusa10062.png, Medusa10063.png, Medusa10064.png, Medusa10065.png, Medusa10066.png, Medusa10067.png, Medusa10068.png, Medusa10069.png, Medusa10070.png, Medusa10071.png, Medusa10072.png, Medusa10073.png, Medusa10074.png, Medusa10075.png, Medusa10076.png, Medusa10077.png, Medusa10078.png, Medusa10079.png, Medusa10080.png, Medusa10081.png, Medusa10082.png, Medusa10083.png, Medusa10084.png, Medusa10085.png, Medusa10086.png, Medusa10087.png, Medusa10088.png, Medusa10089.png, Medusa10090.png, Medusa10091.png, Medusa10092.png, Medusa10093.png, Medusa10094.png, Medusa10095.png, Medusa10096.png, Medusa10097.png, Medusa10098.png, Medusa10099.png, Medusa10100.png, Medusa10101.png, Medusa10102.png, Medusa10103.png, Medusa10104.png, Medusa10105.png, Medusa10106.png, Medusa10107.png, Medusa10108.png, Medusa10109.png, Medusa10110.png, Medusa10111.png, Medusa10112.png, Medusa10113.png, Medusa10114.png, Medusa10115.png, Medusa10116.png, Medusa10117.png, Medusa10118.png, Medusa10119.png, Medusa10120.png, Medusa10121.png, Medusa10122.png, Medusa10123.png, Medusa10124.png, Medusa10125.png, Medusa10126.png, Medusa10127.png, Medusa10128.png, Medusa10129.png, Medusa10130.png, Medusa10131.png, Medusa10132.png, Medusa10133.png, Medusa10134.png, Medusa10135.png, Medusa10136.png, Medusa10137.png, Medusa10138.png, Medusa10139.png, Medusa10140.png, Medusa10141.png, Medusa10142.png, Medusa10143.png, Medusa10144.png, Medusa10145.png, Medusa10146.png, Medusa10147.png, Medusa10148.png, Medusa10149.png, Medusa10150.png, Medusa10151.png, Medusa10152.png, Medusa10153.png, Medusa10154.png, Medusa10155.png, Medusa10156.png, Medusa10157.png, Medusa10158.png, Medusa10159.png, Medusa10160.png, Medusa10161.png, Medusa10162.png, Medusa10163.png, Medusa10164.png, Medusa10165.png, Medusa10166.png, Medusa10167.png, Medusa10168.png, Medusa10169.png, Medusa10170.png, Medusa10171.png, Medusa10172.png, Medusa10173.png, Medusa10174.png, Medusa10175.png, Medusa10176.png, Medusa10177.png, Medusa10178.png, Medusa10179.png, Medusa10180.png, MedusaArrow10001.png, MedusaArrow10002.png, MedusaArrow10003.png, MedusaArrow10004.png, MedusaArrow10005.png, MedusaArrow10006.png, MedusaArrow10007.png, MedusaArrow10008.png, MedusaArrow10009.png, MedusaArrow10010.png, MedusaArrow10011.png, MedusaArrow10012.png, MedusaArrow10013.png, MedusaArrow10014.png, MedusaArrow10015.png, MedusaArrow10016.png, MedusaArrow10017.png, MedusaArrow10018.png, MedusaArrow10019.png, MedusaArrow10020.png, MedusaArrow10021.png, MedusaArrow10022.png, MedusaArrow10023.png, MedusaArrow10024.png, Naga10001.png, Naga10002.png, Naga10003.png, Naga10004.png, Naga10005.png, Naga10006.png, Naga10007.png, Naga10008.png, Naga10009.png, Naga10010.png, Naga10011.png, Naga10012.png, Naga10013.png, Naga10014.png, Naga10015.png, Naga10016.png, Naga10017.png, Naga10018.png, Naga10019.png, Naga10020.png, Naga10021.png, Naga10022.png, Naga10023.png, Naga10024.png, Naga10025.png, Naga10026.png, Naga10027.png, Naga10028.png, Naga10029.png, Naga10030.png, Naga10031.png, Naga10032.png, Naga10033.png, Naga10034.png, Naga10035.png, Naga10036.png, Naga10037.png, Naga10038.png, Naga10039.png, Naga10040.png, Naga10041.png, Naga10042.png, Naga10043.png, Naga10044.png, Naga10045.png, Naga10046.png, Naga10047.png, Naga10048.png, Naga10049.png, Naga10050.png, Naga10051.png, Naga10052.png, Naga10053.png, Naga10054.png, Naga10055.png, Naga10056.png, Naga10057.png, Naga10058.png, Naga10059.png, Naga10060.png, Naga10061.png, Naga10062.png, Naga10063.png, Naga10064.png, Naga10065.png, Naga10066.png, Naga10067.png, Naga10068.png, Naga10069.png, Naga10070.png, Naga10071.png, Naga10072.png, Naga10073.png, Naga10074.png, Naga10075.png, Naga10076.png, Naga10077.png, Naga10078.png, Naga10079.png, Naga10080.png, Naga10081.png, Naga10082.png, Naga10083.png, Naga10084.png, Naga10085.png, Naga10086.png, Naga10087.png, Naga10088.png, Naga10089.png, Naga10090.png, Naga10091.png, Naga10092.png, Naga10093.png, Naga10094.png, Naga10095.png, Naga10096.png, Naga10097.png, Naga10098.png, Naga10099.png, Naga10100.png, Naga10101.png, Naga10102.png, Naga10103.png, Naga10104.png, Naga10105.png, Naga10106.png, Naga10107.png, Naga10108.png, Naga10109.png, Naga10110.png, Naga10111.png, Naga10112.png, Naga10113.png, Naga10114.png, Naga10115.png, Naga10116.png, Naga10117.png, Naga10118.png, Naga10119.png, Naga10120.png, Naga10121.png, Naga10122.png, Naga10123.png, Naga10124.png, Naga10125.png, Naga10126.png, Naga10127.png, Naga10128.png, Naga10129.png, Naga10130.png, Naga10131.png, Naga10132.png, Naga10133.png, Naga10134.png, Naga10135.png, Naga10136.png, Naga10137.png, Naga10138.png, Naga10139.png, Naga10140.png, Naga10141.png, Naga10142.png, Naga10143.png, Naga10144.png, Naga10145.png, Naga10146.png, Naga10147.png, Naga10148.png, Naga10149.png, Naga10150.png, Naga10151.png, Naga10152.png, Naga10153.png, Naga10154.png, Naga10155.png, Naga10156.png, Naga10157.png, Naga10158.png, Naga10159.png, Naga10160.png, Naga10161.png, Naga10162.png, Naga10163.png, Naga10164.png, Naga10165.png, Naga10166.png, Naga10167.png, Naga10168.png, Naga10169.png, Naga10170.png, Naga10171.png, Naga10172.png, Naga10173.png, Naga10174.png, Naga10175.png, Naga10176.png, Naga10177.png, Naga10178.png, Naga10179.png, Naga10180.png, Naga10181.png, Naga10182.png, Naga10183.png, Naga10184.png, Naga10185.png, Naga10186.png, Naga10187.png, Naga10188.png, Naga10189.png, Naga10190.png, NagaIce10001.png, NagaIce10002.png, NagaIce10003.png, NagaIce10004.png, NagaIce10005.png, NagaIce10006.png, NagaIce10007.png, NagaIce10008.png, NagaIce10009.png, NagaIce10010.png, NagaIce10011.png, NagaIce10012.png, NagaIce10013.png, NagaIce10014.png, NagaIce10015.png, NagaIce10016.png, NagaIce10017.png, NagaIce10018.png, NagaIce10019.png, NagaIce10020.png, NagaIce10021.png, NagaIce10022.png, NagaIce10023.png, NagaIce10024.png, NagaIce10025.png, NagaIce10026.png, NagaIce10027.png, NagaIce10028.png, NagaIce10029.png, NagaIce10030.png, NagaIce10031.png, NagaIce10032.png, NagaIce10033.png, NagaIce10034.png, NagaIce10035.png, NagaIce10036.png, NagaIce10037.png, NagaIce10038.png, NagaIce10039.png, NagaIce10040.png, NagaIce10041.png, NagaIce10042.png, NagaIce10043.png, NagaIce10044.png, NagaIce10045.png, NagaIce10046.png, NagaIce10047.png, NagaIce10048.png, NagaIce10049.png, NagaIce20001.png, NagaIce20002.png, NagaIce20003.png, NagaIce20004.png, NagaIce20005.png, NagaIce20006.png, NagaIce20007.png, NagaIce20008.png, NagaIce20009.png, NagaIce20010.png, NagaIce20011.png, NagaIce20012.png, NagaIce20013.png, NagaIce20014.png, NagaIce20015.png, NagaIce20016.png, NagaIce20017.png, NagaIce20018.png, NagaIce20019.png, NagaIce20020.png, NagaIce20021.png, NagaIce20022.png, NagaIce20023.png, NagaIce20024.png, NagaIce20025.png, NagaIce20026.png, NagaIce20027.png, NagaIce20028.png, NagaIce20029.png, NagaIce20030.png, NagaIce20031.png, NagaIce20032.png, NagaIce20033.png, NagaIce20034.png, NagaIce20035.png, NagaIce20036.png, NagaIce20037.png, NagaIce20038.png, NagaIce20039.png, NagaIce20040.png, NagaIce20041.png, NagaIce20042.png, NagaIce20043.png, NagaIce20044.png, NagaIce20045.png, NagaIce20046.png, NagaIce20047.png, NagaIce20048.png, SpearEffect.png

assets/images/Game2.ktx2 added 401.9 KB
assets/images/UI_MINE.json changed 55.6 KB → 58.2 KB

New sprites: 4x_info_bg.png, 4x_info_divider_horizontal.png, 4x_info_divider_vertical.png, 4x_info_highlighted.png, 4x_info_off.png, 4x_info_on.png, 4x_off_example.png, 4x_on_example.png, 4x_toggle_bg.png, 4x_toggle_off.png, 4x_toggle_on.png, 4x_toggle_text.png

assets/images/UI_MINE.ktx2 changed 906.2 KB → 1,095.6 KB
assets/images/UI_PET.json changed 39.1 KB → 39.5 KB

New sprites: UI_PET1012, UI_PET1013, UI_PET31, UI_PET32, UI_PET33, UI_PET34

Removed sprites: UI_PET51, UI_PET93, UI_PET94, UI_PET96

assets/images/UI_PET.ktx2 changed 618.8 KB → 633.2 KB

Code 286 changes in 128 classes

Minified client code with short names blanked for diffing. Class names are real.

FireTornado1 1 hunks, 960 statements
+ super(...arguments),Yt(this,"centerX",0),Yt(this,"centerY",0),Yt(this,"startAngle",0),Yt(this,"angularSpeed",.16),Yt(this,"startRadius",10),Yt(this,"endRadius",140),Yt(this,"radiusArrive",t.RADIUS_ARRIVE),Yt(this,"life",t.DEFAULT_LIFE),Yt(this,"exploded",!1),Yt(this,"burnPoint",new _i(0,0)),Yt(this,"thrown",!1),Yt(this,"throwVX",0),Yt(this,"throwVY",0),Yt(this,"throwExplode",!0),Yt(this,"visualScaleMult",1),Yt(this,"visualScaleY",1),Yt(this,"trailStep",0),Yt(this,"trailAccum",0),Yt(this,"lastTrailX",0),Yt(this,"lastTrailY",0),Yt(this,"boomerang",!1),Yt(this,"boomTarget",null),Yt(this,"boomSpeed",5),Yt(this,"boomCurve",.85),Yt(this,"boomSign",1),Yt(this,"boomTurn",0),Yt(this,"boomTurnLimit",.09),Yt(this,"boomTurnAccel",.008),Yt(this,"boomMinFrames",0),Yt(this,"boomMaxTargets",0),Yt(this,"boomHitSet",new Set),Yt(this,"boomExplodeEnd",!1),Yt(this,"boomArmFrames",0),Yt(this,"boomMaxTravel",0),Yt(this,"boomTravel",0),Yt(this,"boomConsumed",!1),Yt(this,"boomHomeSlot",-1),Yt(this,"boomGoalDist",0),Yt(this,"boomNearT",0),Yt(this,"expRadius",t.EXPLOSION_RADIUS),Yt(this,"expDamage",t.EXPLOSION_DMG),Yt(this,"expBurnTick",t.BURN_TICK),Yt(this,"expScale",1),Yt(this,"boomHops",0),Yt(this,"boomHeading",0),Yt(this,"boomGoalX",0),Yt(this,"boomGoalY",0),Yt(this,"boomGoalUnit",null),Yt(this,"boomToOwner",!1),Yt(this,"boomArcT",0),Yt(this,"boomArcLen",60),Yt(this,"boomOvershoot",60),Yt(this,"boomMinTravel",140),Yt(this,"boomGrow",18),Yt(this,"boomOrbitMult",t.BOOM_ORBIT_DEFAULT/t.VISUAL_SCALE),Yt(this,"boomSector",0),Yt(this,"boomSectorHalf",0)}
+ initializeTextureName(){
+ this.className=MV.FireTornado1}
+ initializeData(){
+ this.radius=t.HIT_RADIUS,this.radiusX=this.radius,this.radiusY=this.radius,this.durationFrames=t.DEFAULT_LIFE,this.fadeInFrames=0,this.fadeOutFrames=0,this.damagePercent=1,this.visualConfig={
+ type:"sheet",sheetName:"Game2",textureName:"FireTornado",layer:"unit",scale:t.VISUAL_SCALE,incFrame:.6,loop:!0,anchorX:.5,anchorY:.9,offsetY:0}
+ }
+ initSpiral(i,s,e,n,h,r,o,a=t.RADIUS_ARRIVE){
+ this.centerX=i,this.centerY=s,this.startAngle=e,this.angularSpeed=n,this.startRadius=h,this.endRadius=r,this.life=Math.max(1,o),this.radiusArrive=Math.min(1,Math.max(.05,a)),this.thrown=!1,this.boomerang=!1,this.visualScaleMult=1,this.visualScaleY=1,this.trailStep=0,this.radius=t.HIT_RADIUS,this.radiusX=this.radius,this.radiusY=this.radius,this.durationFrames=this.life,this.exploded=!1,this.sp&&(this.sp.visible=!0),this.x=i+Math.cos(e)*h,this.y=s+Math.sin(e)*h}
+ initThrow(i,s,e,n,h,r,o=!1,a=1,c=t.HIT_RADIUS,l=0,u=1){
+ const d=Math.sqrt(e*e+n*n)||1;
+ this.thrown=!0,this.boomerang=!1,this.visualScaleMult=a,this.visualScaleY=u,this.trailStep=l,this.trailAccum=0,this.lastTrailX=i,this.lastTrailY=s,this.radius=c,this.radiusX=c,this.radiusY=c,this.throwVX=e/d*h,this.throwVY=n/d*h,this.throwExplode=o,this.life=Math.max(1,r),this.durationFrames=this.life,this.exploded=!1,this.sp&&(this.sp.visible=!0),this.x=i,this.y=s}
+ initBoomerang(i,s,e,n,h,r,o=1,a=t.HIT_RADIUS,c=1,l=0,u=60,d=140,f=18,p=0,g=0,m=t.BOOM_ORBIT_DEFAULT,w=0,v=!1,_=0,b=0){
+ this.thrown=!1,this.trailStep=0,this.boomerang=!0,this.boomToOwner=!1,this.boomTarget=e,this.boomSpeed=n,this.boomCurve=h,this.boomSign=r>=0?1:-1,this.boomHops=Math.max(0,l),this.boomOvershoot=u,this.boomMinTravel=d,this.boomGrow=Math.max(1,f),this.boomSector=p,this.boomSectorHalf=g,this.boomOrbitMult=m/t.VISUAL_SCALE,this.boomTurn=0,this.boomTurnLimit=this.boomSpeed/t.BOOM_MIN_RADIUS,this.boomTurnAccel=this.boomTurnLimit*t.BOOM_ACCEL_RATIO,this.boomMinFrames=Math.round(this.boomMinTravel/this.boomSpeed),this.boomMaxTargets=Math.max(0,w),this.boomHitSet.clear(),this.boomExplodeEnd=v,this.boomConsumed=!1,this.boomArmFrames=_,this.boomHomeSlot=-1,this.boomGoalDist=0,this.boomNearT=0,this.boomMaxTravel=b,this.boomTravel=0,this.expRadius=t.EXPLOSION_RADIUS,this.expDamage=t.EXPLOSION_DMG,this.expBurnTick=t.BURN_TICK,this.expScale=1,this.visualScaleMult=o,this.visualScaleY=c,this.radius=a,this.radiusX=a,this.radiusY=a,this.exploded=!v,this.sp&&(this.sp.visible=!0),this.x=i,this.y=s;
+ let M=1,y=0;
+ e?(M=e.x-i,y=e.y-s):g>0?(M=Math.cos(p),y=Math.sin(p)):this.owner&&(M=this.owner.direction>=0?1:-1,y=0),this.boomHeading=Math.atan2(y,M),this.beginArc(e?e.x:i+M*this.boomMinTravel,e?e.y:s+y*this.boomMinTravel,!1,e),this.life=(this.boomHops+2)*t.BOOM_ARC_MAX+t.BOOM_ARC_MAX,this.durationFrames=this.life}
+ beginArc(i,s,e,n=null){
+ this.boomToOwner=e,this.boomGoalUnit=n;
+ let h=i-this.x,r=s-this.y,o=Math.sqrt(h*h+r*r);
+ if(!e&&!n){
+ o<1&&(h=Math.cos(this.boomHeading),r=Math.sin(this.boomHeading),o=1);
+ const e=Math.max(this.boomMinTravel,o+this.boomOvershoot);
+ i=this.x+h/o*e,s=this.y+r/o*e,i=Math.min(t.FIELD_MAX,Math.max(t.FIELD_MIN,i)),s=Math.min(t.FIELD_MAX,Math.max(t.FIELD_MIN,s)),o=Math.max(1,Math.sqrt((i-this.x)**2+(s-this.y)**2))}
+ this.boomGoalX=i,this.boomGoalY=s,this.boomArcT=0;
+ const a=n?Math.max(o,this.boomMinTravel):o;
+ this.boomArcLen=Math.min(t.BOOM_ARC_MAX,Math.max(t.BOOM_ARC_MIN,Math.round(a/this.boomSpeed*t.BOOM_ARC_SLACK)))}
+ setExplodePower(t,i,s,e=1){
+ this.expDamage=t,this.expRadius=i,this.expBurnTick=s,this.expScale=e}
+ detonate(){
+ this.exploded||(this.boomConsumed=!0,this.explode(),this.remove())}
+ askNextTarget(){
+ var t,i;
+ return(null==(i=null==(t=this.owner)?void 0:t.pickBoomerangTarget)?void 0:i.call(t,this.x,this.y,this.boomTarget,this.boomSector,this.boomSectorHalf))??null}
+ boundarySteer(){
+ const i=t.FIELD_MIN,s=t.FIELD_MAX,e=t.BOUND_MARGIN;
+ let n=0,h=0;
+ if(this.x<i+e?n=(i+e-this.x)/e:this.x>s-e&&(n=-(this.x-(s-e))/e),this.y<i+e?h=(i+e-this.y)/e:this.y>s-e&&(h=-(this.y-(s-e))/e),0===n&&0===h)return 0;
+ const r=Math.min(1,Math.sqrt(n*n+h*h)),o=Math.atan2(h,n);
+ let a=Math.atan2(Math.sin(o-this.boomHeading),Math.cos(o-this.boomHeading))*r*t.BOUND_GAIN;
+ const c=this.boomTurnLimit*t.BOUND_TURN_RATIO;
+ return a>c?a=c:a<-c&&(a=-c),a}
+ stepBoomerang(){
+ var i,s;
+ if(this.boomToOwner&&this.owner){
+ const t=null==(s=null==(i=this.owner)?void 0:i.getOrbitHome)?void 0:s.call(i,this.boomHomeSlot);
+ this.boomGoalX=t?t.x:this.owner.x,this.boomGoalY=t?t.y:this.owner.y}
+ else if(this.boomGoalUnit){
+ const t=this.boomGoalUnit;
+ t.isAlive&&!t.removed?(this.boomGoalX=t.x,this.boomGoalY=t.y):this.boomGoalUnit=null}
+ const e=this.boomGoalX-this.x,n=this.boomGoalY-this.y,h=Math.sqrt(e*e+n*n)||1;
+ this.boomGoalDist=h;
+ const r=Math.min(1,this.boomArcT/this.boomArcLen),o=Math.min(1,h/t.BOOM_BOW_FADE),a=Math.atan2(n,e)+this.boomSign*this.boomCurve*o*(1-.4*r);
+ let c=Math.atan2(Math.sin(a-this.boomHeading),Math.cos(a-this.boomHeading))*t.BOOM_SLEW+this.boundarySteer();
+ const l=this.boomTurnLimit;
+ c>l?c=l:c<-l&&(c=-l);
+ const u=this.boomTurnAccel;
+ let d=c-this.boomTurn;
+ d>u?d=u:d<-u&&(d=-u),this.boomTurn+=d,this.boomHeading+=this.boomTurn;
+ let f=this.boomSpeed;
+ if(this.boomToOwner&&h<t.BOOM_SLOW_DIST){
+ const i=t.BOOM_SLOW_DIST-t.BOOM_CATCH_DIST,s=Math.max(0,Math.min(1,(h-t.BOOM_CATCH_DIST)/i)),e=s*s*(3-2*s);
+ f*=t.BOOM_SLOW_MIN+(1-t.BOOM_SLOW_MIN)*e}
+ this.x+=Math.cos(this.boomHeading)*f,this.y+=Math.sin(this.boomHeading)*f;
+ const p=t.FIELD_MIN,g=t.FIELD_MAX;
+ if(this.x<p?this.x=p:this.x>g&&(this.x=g),this.y<p?this.y=p:this.y>g&&(this.y=g),this.boomArcT++,this.boomExplodeEnd&&(this.boomTravel+=f,this.boomArcT>=this.boomArmFrames&&this.boomMaxTravel>0&&this.boomTravel>=this.boomMaxTravel))this.detonate();
+ else{
+ if(this.boomToOwner)return h<=t.BOOM_NEAR_DIST?this.boomNearT++:this.boomNearT=0,void((h<=t.BOOM_CATCH_DIST||this.boomNearT>=t.BOOM_NEAR_HOLD)&&this.remove());
+ if(h<=this.radius&&this.boomArcT>=this.boomMinFrames||this.boomArcT>=this.boomArcLen){
+ const t=this.boomHops>0?this.askNextTarget():null;
+ t?(this.boomHops--,this.boomTarget=t,this.beginArc(t.x,t.y,!1,t)):this.boomExplodeEnd?this.detonate():(this.boomTarget=null,this.beginArc(this.owner?this.owner.x:this.x,this.owner?this.owner.y:this.y,!0))}
+ }
+ }
+ applyBoomVisual(i){
+ if(!this.sp)return;
+ const s=t.THROW_FADE_IN,e=i<s?i/s:1;
+ this.sp.alpha=e*e*(3-2*e);
+ const n=Math.min(1,i/this.boomGrow);
+ let h=n*n*(3-2*n);
+ if(this.boomToOwner&&this.owner){
+ const i=this.boomGoalDist;
+ if(i<t.BOOM_SHRINK_DIST){
+ const s=t.BOOM_SHRINK_DIST-t.BOOM_NEAR_DIST,e=Math.max(0,(i-t.BOOM_NEAR_DIST)/s);
+ h=Math.min(h,e*e*(3-2*e))}
+ }
+ const r=this.boomOrbitMult+(this.visualScaleMult-this.boomOrbitMult)*h,o=t.VISUAL_SCALE*r;
+ this.sp.scale.set(o,o*this.visualScaleY)}
+ getEffectIntervalFrames(){
+ if(!this.boomerang&&!this.thrown)return t.TICK_INTERVAL;
+ const i=this.boomerang?this.boomSpeed:Math.sqrt(this.throwVX*this.throwVX+this.throwVY*this.throwVY);
+ if(i<=.1)return t.TICK_INTERVAL;
+ const s=Math.max(1,.6*this.radius);
+ return Math.max(2,Math.min(t.TICK_INTERVAL,Math.floor(s/i)))}
+ onAreaTick(i){
+ if(this.boomerang){
+ if(this.stepBoomerang(),this.removed)return;
+ return void this.applyBoomVisual(i)}
+ if(this.thrown)return this.x+=this.throwVX,this.y+=this.throwVY,this.emitTrail(),this.applyMaterialize(i),void(i>=this.durationFrames&&!this.exploded&&(this.throwExplode?this.explode():this.exploded=!0));
+ const s=t.FADE_IN,e=Math.max(0,i-s),n=Math.max(1,this.life-s),h=Math.min(1,e/(n*this.radiusArrive)),r=h*h*(3-2*h),o=this.startRadius+(this.endRadius-this.startRadius)*r,a=t.SPIN_RAMP_MIN,c=i<=s?a*i+(1-a)*i*i/(2*s):s*(1+a)/2+(i-s),l=this.startAngle+this.angularSpeed*c;
+ this.x=this.centerX+Math.cos(l)*o,this.y=this.centerY+Math.sin(l)*o,this.applyMaterialize(i),i>=this.durationFrames&&!this.exploded&&this.explode()}
+ explode(){
+ this.exploded=!0;
+ const i=bV.getEffect(SH.FireSpiritExplosion1);
+ if(i.x=this.x,i.y=this.y,kB.getInstance().addChild(i),i.start(t.EXPLOSION_LIFE),i.scale.set(i.orgScale*this.expScale),this.sp&&(this.sp.visible=!1),!this.owner||!this.owner.isAlive)return;
+ const s=this.expRadius*this.expRadius,e=this.owner.atkDmg*this.expBurnTick;
+ for(const n of this.owner.enemyList){
+ if(!n||!n.isAlive||n.isUntagetable)continue;
+ const i=n.x-this.x,h=n.y-this.y;
+ i*i+h*h>s||(this.owner.doDamage(n,this.expDamage,!0),n.burn(t.BURN_SLOW_FRAMES,this.owner),n.addDotDamage(e,t.BURN_DURATION,t.BURN_INTERVAL,this.owner,t.BURN_DOT_ID))}
+ }
+ applyMaterialize(i){
+ if(!this.sp)return;
+ const s=this.thrown?t.THROW_FADE_IN:t.FADE_IN;
+ let e=1;
+ i<s&&(e=i/s);
+ const n=e*e*(3-2*e);
+ this.sp.alpha=n;
+ const h=t.VISUAL_SCALE*this.visualScaleMult*(t.MIN_SCALE+(1-t.MIN_SCALE)*n);
+ this.sp.scale.set(h,h*this.visualScaleY)}
+ emitTrail(){
+ var t,i;
+ if(this.trailStep<=0||!this.owner)return;
+ const s=this.x-this.lastTrailX,e=this.y-this.lastTrailY;
+ this.trailAccum+=Math.sqrt(s*s+e*e),this.lastTrailX=this.x,this.lastTrailY=this.y,this.trailAccum<this.trailStep||(this.trailAccum=0,null==(i=null==(t=this.owner)?void 0:t.onFireTrail)||i.call(t,this.x,this.y))}
+ affectEnemy(i){
+ if(!this.owner||!this.owner.isAlive)return;
+ if(!i.isAlive)return;
+ if(this.boomMaxTargets>0&&!this.boomHitSet.has(i)){
+ if(this.boomHitSet.size>=this.boomMaxTargets)return;
+ this.boomHitSet.add(i)}
+ const s=Math.max(1,Math.floor(this.getEffectIntervalFrames())),e=this.damagePercent*s/t.DAMAGE_FPS;
+ e>0&&this.owner.doDamage(i,e,!0);
+ const n=i.x-this.x,h=i.y-this.y,r=Math.sqrt(n*n+h*h)||1,o=t.KNOCK*s/t.TICK_INTERVAL;
+ i.knockBack(n/r*o,h/r*o,2)}
+ }
+ ;
+ Xt(jQ,"FireTornado1"),Yt(jQ,"HIT_RADIUS",55),Yt(jQ,"DEFAULT_LIFE",42),Yt(jQ,"TICK_INTERVAL",10),Yt(jQ,"DAMAGE_FPS",60),Yt(jQ,"KNOCK",5),Yt(jQ,"VISUAL_SCALE",1.6),Yt(jQ,"FADE_IN",30),Yt(jQ,"SPIN_RAMP_MIN",.3),Yt(jQ,"RADIUS_ARRIVE",.65),Yt(jQ,"MIN_SCALE",.1),Yt(jQ,"EXPLOSION_RADIUS",70),Yt(jQ,"EXPLOSION_DMG",.4),Yt(jQ,"EXPLOSION_LIFE",30),Yt(jQ,"BURN_TICK",.12),Yt(jQ,"BURN_DURATION",180),Yt(jQ,"BURN_INTERVAL",30),Yt(jQ,"BURN_DOT_ID",71),Yt(jQ,"BURN_SLOW_FRAMES",jQ.BURN_DURATION/2),Yt(jQ,"THROW_FADE_IN",6),Yt(jQ,"THROW_SPIN_UP",.85),Yt(jQ,"BOOM_ARC_MIN",26),Yt(jQ,"BOOM_ARC_MAX",150),Yt(jQ,"BOOM_ARC_SLACK",1.3),Yt(jQ,"BOOM_BOW_FADE",115),Yt(jQ,"BOOM_SLEW",.1),Yt(jQ,"BOOM_MIN_RADIUS",62),Yt(jQ,"BOOM_ACCEL_RATIO",.09),Yt(jQ,"BOOM_CATCH_DIST",26),Yt(jQ,"BOOM_NEAR_DIST",80),Yt(jQ,"BOOM_NEAR_HOLD",22),Yt(jQ,"BOOM_SLOW_DIST",330),Yt(jQ,"BOOM_SLOW_MIN",.42),Yt(jQ,"BOOM_SHRINK_DIST",240),Yt(jQ,"BOOM_ORBIT_DEFAULT",.42),Yt(jQ,"FIELD_MIN",24),Yt(jQ,"FIELD_MAX",616),Yt(jQ,"BOUND_MARGIN",110),Yt(jQ,"BOUND_GAIN",.5),Yt(jQ,"BOUND_TURN_RATIO",1.8);
+ let VQ=jQ;
+ const KQ=class t extends WQ{
+ constructor(){
+ super(...arguments),Yt(this,"mode",0),Yt(this,"orbTarget",null),Yt(this,"orbSpeed",8),Yt(this,"orbDamage",1),Yt(this,"canSplit",!1),Yt(this,"heading",0),Yt(this,"arcSign",1),Yt(this,"arcT",0),Yt(this,"arcAmount",t.ARC),Yt(this,"isChild",!1),Yt(this,"homeDist",t.CATCH_DIST),Yt(this,"spreadT",0),Yt(this,"spreadAngle",0),Yt(this,"fuse",0),Yt(this,"blastRadius",0),Yt(this,"blastDamage",0),Yt(this,"burnTick",0),Yt(this,"burnDur",0),Yt(this,"burnInterval",0),Yt(this,"burnId",0),Yt(this,"burnPoint",new _i(0,0)),Yt(this,"pathDamage",0),Yt(this,"scArm",0),Yt(this,"turnRadius",t.R_TURN_PARENT),Yt(this,"hitDist",t.HIT_DIST),Yt(this,"prevDist",1/0),Yt(this,"noHitT",0),Yt(this,"wanderT",0),Yt(this,"wanderSign",1),Yt(this,"pathHitSet",new Set)}
+ initializeTextureName(){
+ this.sheetName="Game2",this.className=MV.FireOrb1,this.textureName="FireBall",this.visualConfig={
+ type:"sheet",sheetName:"Game2",textureName:"FireBall",layer:"weapon",scale:.62,incFrame:.25,anchorX:.5,anchorY:.5,loop:!0}
+ }
+ initializeData(){
+ this.setArea(0,t.LIFE)}
+ initOrb(i,s,e,n,h,r,o,a,c=.62,l=0,u=t.CATCH_DIST,d=0,f=!1){
+ const p=a?t.PATH_R_CHILD:t.PATH_R_MAIN;
+ if(this.setArea(d>0?p:0,t.LIFE),this.pathDamage=d,this.pathHitSet.clear(),this.x=i,this.y=s,this.mode=e?0:1,this.orbTarget=e,this.orbSpeed=n,this.orbDamage=h,this.canSplit=r,this.isChild=a,this.arcSign=o>=0?1:-1,this.arcAmount=f?t.ARC_WIDE:t.ARC,this.arcT=0,this.fuse=0,a){
+ let n=t.SPREAD_FRAMES;
+ if(e){
+ const h=Math.sqrt((e.x-i)**2+(e.y-s)**2);
+ n=Math.min(n,Math.floor(h*t.SPREAD_DIST_RATIO/t.SPREAD_SPEED))}
+ this.spreadT=Math.max(t.SPREAD_MIN,n),this.noHitT=this.spreadT+t.CHILD_ARM}
+ else this.spreadT=0,this.noHitT=0;
+ this.spreadAngle=l,this.homeDist=Math.max(t.CATCH_DIST,u),this.turnRadius=a?t.R_TURN_CHILD:t.R_TURN_PARENT,this.hitDist=a?t.HIT_DIST_CHILD:t.HIT_DIST,this.prevDist=1/0,this.wanderT=e?0:t.WANDER_NO_TARGET,this.wanderSign=o>=0?1:-1,this.applyScale(c);
+ const g=e?e.x:this.owner?this.owner.x:i+1,m=e?e.y:this.owner?this.owner.y:s;
+ this.heading=a?l:Math.atan2(m-s,g-i),this.sp&&(this.sp.visible=!0,this.sp.alpha=1),this.faceHeading()}
+ initScatter(i,s,e,n,h,r,o,a,c,l,u,d,f=0){
+ this.setArea(0,t.LIFE),this.x=i,this.y=s,this.mode=2,this.pathDamage=0,this.pathHitSet.clear(),this.orbTarget=null,this.orbSpeed=n,this.orbDamage=r,this.canSplit=!1,this.isChild=!1,this.spreadT=0,this.arcT=t.ARC_FADE,this.heading=e,this.fuse=h,this.scArm=f,this.blastRadius=o,this.blastDamage=r,this.burnTick=a,this.burnDur=c,this.burnInterval=l,this.burnId=u,this.applyScale(d),this.sp&&(this.sp.visible=!0,this.sp.alpha=1),this.faceHeading()}
+ applyScale(t){
+ this.sp&&this.sp.scale.set(t)}
+ faceHeading(){
+ Math.cos(this.heading)<0?(this.rotation=this.heading+Math.PI,this.scale.x=-Math.abs(this.scale.x)):(this.rotation=this.heading,this.scale.x=Math.abs(this.scale.x))}
+ getEffectIntervalFrames(){
+ if(this.pathDamage<=0||this.orbSpeed<=.1)return t.PATH_TICK_MAX;
+ const i=Math.max(1,this.radius*t.PATH_STEP_RATIO);
+ return Math.max(2,Math.min(t.PATH_TICK_MAX,Math.floor(i/this.orbSpeed)))}
+ onAreaTick(i){
+ var s,e,n,h;
+ if(2===this.mode)return this.x+=Math.cos(this.heading)*this.orbSpeed,this.y+=Math.sin(this.heading)*this.orbSpeed,this.faceHeading(),this.scArm>0&&this.scArm--,this.scArm<=0&&this.hasEnemyNear(t.SC_HIT_R)?void this.detonate():void(--this.fuse<=0&&this.detonate());
+ if(this.spreadT>0)return this.spreadT--,this.noHitT>0&&this.noHitT--,this.x+=Math.cos(this.spreadAngle)*t.SPREAD_SPEED,this.y+=Math.sin(this.spreadAngle)*t.SPREAD_SPEED,this.heading=this.spreadAngle,void this.faceHeading();
+ if(1===this.mode&&this.wanderT>0){
+ this.wanderT--,this.heading+=this.wanderSign*t.WANDER_CURL;
+ const i=this.orbSpeed*t.BACK_SPEED_MULT;
+ return this.x+=Math.cos(this.heading)*i,this.y+=Math.sin(this.heading)*i,void this.faceHeading()}
+ let r,o;
+ if(0===this.mode){
+ let t=this.orbTarget;
+ if(!t||!t.isAlive||t.removed){
+ const i=null==(e=null==(s=this.owner)?void 0:s.pickOrbNextTarget)?void 0:e.call(s,this.x,this.y,t);
+ if(!i)return void this.toBack();
+ t=i,this.orbTarget=i,this.prevDist=1/0}
+ r=t.x,o=t.y}
+ else{
+ if(!this.owner)return void this.remove();
+ r=this.owner.x,o=this.owner.y}
+ const a=r-this.x,c=o-this.y,l=Math.sqrt(a*a+c*c)||1;
+ let u=Math.atan2(c,a);
+ if(this.arcT<t.ARC_FADE){
+ const i=1-this.arcT/t.ARC_FADE;
+ u+=this.arcSign*this.arcAmount*i*i,this.arcT++}
+ let d=Math.atan2(Math.sin(u-this.heading),Math.cos(u-this.heading)),f=this.turnRadius,p=this.orbSpeed;
+ 1===this.mode&&(p*=t.BACK_SPEED_MULT,f=Math.max(t.R_BACK_NEAR,Math.min(t.R_BACK_FAR,l*t.R_BACK_RATIO)));
+ const g=p/Math.max(1,f);
+ d>g?d=g:d<-g&&(d=-g),this.heading+=d;
+ let m=this.orbSpeed;
+ if(this.isChild&&this.arcT<t.ACCEL_FRAMES){
+ const i=this.arcT/t.ACCEL_FRAMES;
+ m=t.SPREAD_SPEED+(m-t.SPREAD_SPEED)*i,this.arcT++}
+ if(1===this.mode&&(m*=t.BACK_SPEED_MULT),this.x+=Math.cos(this.heading)*m,this.y+=Math.sin(this.heading)*m,this.faceHeading(),0===this.mode){
+ if(this.noHitT>0)return this.noHitT--,void(this.prevDist=l);
+ const i=l>this.prevDist&&l<this.hitDist*t.HIT_PASS_RATIO;
+ this.prevDist=l,(l<=this.hitDist||i)&&this.hit()}
+ else l<=this.homeDist&&(null==(h=null==(n=this.owner)?void 0:n.onOrbReturned)||h.call(n,this.x,this.y),this.remove())}
+ hit(){
+ var t,i;
+ const s=this.orbTarget;
+ this.owner&&this.owner.isAlive&&s&&s.isAlive&&this.owner.doDamage(s,this.orbDamage,!0);
+ const e=bV.getEffect(SH.FireSpiritExplosion1);
+ e.x=this.x,e.y=this.y,kB.getInstance().addChild(e),e.start(30),e.scale.set(e.orgScale*(this.isChild?.3:.42)),this.canSplit&&(null==(i=null==(t=this.owner)?void 0:t.spawnOrbSplit)?void 0:i.call(t,this.x,this.y,s,this.heading))?this.remove():this.toBack()}
+ hasEnemyNear(t){
+ if(!this.owner)return!1;
+ const i=t*t;
+ for(const s of this.owner.enemyList){
+ if(!s||!s.isAlive||s.isUntagetable)continue;
+ const t=s.x-this.x,e=s.y-this.y;
+ if(t*t+e*e<=i)return!0}
+ return!1}
+ detonate(){
+ const i=bV.getEffect(SH.FireSpiritExplosion1);
+ if(i.x=this.x,i.y=this.y,kB.getInstance().addChild(i),i.start(40),i.scale.set(i.orgScale*t.BLAST_FX_SCALE),this.owner&&this.owner.isAlive){
+ const i=this.blastRadius*this.blastRadius,s=this.owner.atkDmg*this.burnTick,e=[];
+ for(const t of this.owner.enemyList){
+ if(!t||!t.isAlive||t.isUntagetable)continue;
+ const s=t.x-this.x,n=t.y-this.y,h=s*s+n*n;
+ h>i||e.push({
+ e:t,d:h}
+ )}
+ e.sort((t,i)=>t.d-i.d),e.length>t.BLAST_MAX_TARGETS&&(e.length=t.BLAST_MAX_TARGETS);
+ for(const{
+ e:t}
+ of e)this.owner.doDamage(t,this.blastDamage,!0),t.addDotDamage(s,this.burnDur,this.burnInterval,this.owner,this.burnId),t.burn(Math.floor(this.burnDur/2),this.owner)}
+ this.remove()}
+ toBack(){
+ 1!==this.mode&&(this.mode=1,this.orbTarget=null,this.arcT=t.ARC_FADE,this.wanderT=t.WANDER_AFTER_HIT)}
+ affectEnemy(i){
+ this.pathDamage<=0||this.owner&&this.owner.isAlive&&i.isAlive&&i!==this.orbTarget&&(this.pathHitSet.has(i)||this.pathHitSet.size>=t.PATH_MAX||(this.pathHitSet.add(i),this.owner.doDamage(i,this.pathDamage,!0)))}
+ }
+ ;
+ Xt(KQ,"FireOrb1"),Yt(KQ,"HIT_DIST",22),Yt(KQ,"CATCH_DIST",26),Yt(KQ,"R_TURN_PARENT",73),Yt(KQ,"R_TURN_CHILD",37),Yt(KQ,"HIT_DIST_CHILD",40),Yt(KQ,"CHILD_ARM",5),Yt(KQ,"R_BACK_FAR",95),Yt(KQ,"R_BACK_NEAR",26),Yt(KQ,"R_BACK_RATIO",.55),Yt(KQ,"BACK_SPEED_MULT",.72),Yt(KQ,"WANDER_AFTER_HIT",16),Yt(KQ,"WANDER_NO_TARGET",30),Yt(KQ,"WANDER_CURL",.042),Yt(KQ,"HIT_PASS_RATIO",2.2),Yt(KQ,"ARC",.17),Yt(KQ,"ARC_WIDE",.65),Yt(KQ,"ARC_FADE",11),Yt(KQ,"LIFE",300),Yt(KQ,"PATH_R_MAIN",26),Yt(KQ,"PATH_R_CHILD",20),Yt(KQ,"PATH_MAX",4),Yt(KQ,"PATH_STEP_RATIO",.6),Yt(KQ,"PATH_TICK_MAX",10),Yt(KQ,"SC_HIT_R",30),Yt(KQ,"BLAST_MAX_TARGETS",3),Yt(KQ,"BLAST_FX_SCALE",.62),Yt(KQ,"SPREAD_FRAMES",7),Yt(KQ,"SPREAD_SPEED",19),Yt(KQ,"SPREAD_DIST_RATIO",.4),Yt(KQ,"SPREAD_MIN",2),Yt(KQ,"ACCEL_FRAMES",8);
+ let zQ=KQ;
+ const qQ=class extends EV{
+ initializeTextureName(){
+ this.sheetName="Game2",this.className=MV.MedusaArrow1,this.textureName="MedusaArrow"}
+ initializeData(){
+ this.hitClassName="MagicalHitEffect",this.g=0,this.speed=7,this.flyEnd=24,this.incFrame=1}
+ generateSprite(){
+ super.generateSprite(),this.sp&&(this.sp.anchor.set(.5,.5),this.sp.scale.x=-Math.abs(this.sp.scale.x))}
+ onHitMain(){
+ var t,i;
+ null!=this.target&&(null==(i=null==(t=this.owner)?void 0:t.onSnakeStick)||i.call(t,this.target))}
+ }
+ ;
+ Xt(qQ,"MedusaArrow1");
+ let XQ=qQ;
+ const YQ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"groundTargetX",null),Yt(this,"groundTargetY",null),Yt(this,"groundLife",0),Yt(this,"makesPillar",!0)}
+ initializeTextureName(){
+ this.sheetName="Game",this.className=MV.NagaIceArrow1,this.textureName="NormalArrow"}
+ initializeData(){
+ this.hitClassName="",this.g=0,this.speed=10,this.flyEnd=2,this.incFrame=1}
+ setData(t=1){
+ super.setData(t),this.groundTargetX=null,this.groundTargetY=null,this.groundLife=0,this.makesPillar=!0}
+ setupGroundShot(t,i,s){
+ this.groundTargetX=t,this.groundTargetY=i,this.groundLife=0,this.delay=s,this.removed=!1,this.visible=!0}
+ execute(){
+ null==this.groundTargetX||null==this.groundTargetY?super.execute():this.executeGroundShot(this.groundTargetX,this.groundTargetY)}
+ executeGroundShot(i,s){
+ var e,n;
+ if(this.removed)return;
+ if(--this.delay>0)return void(this.visible=!1);
+ this.visible=!0,this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&this.textures&&this.textures.length>0&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]);
+ const h=i-this.x,r=s-this.y;
+ if(h*h+r*r<=this.vx*this.vx+this.vy*this.vy)return this.x=i,this.y=s,null==(n=null==(e=this.owner)?void 0:e.onGroundStrike)||n.call(e,i,s),void this.remove();
+ (this.isOutOfField(100)||++this.groundLife>t.GROUND_MAX_LIFE)&&this.remove()}
+ onHitMain(){
+ var t,i;
+ null!=this.target&&(null==(i=null==(t=this.owner)?void 0:t.onIceHit)||i.call(t,this.target,this.makesPillar))}
+ onHit(){
+ var t,i;
+ null==this.target||this.target.isAlive||null==(i=null==(t=this.owner)?void 0:t.onIceHit)||i.call(t,this.target),super.onHit()}
+ remove(){
+ this.groundTargetX=null,this.groundTargetY=null,this.groundLife=0,super.remove()}
+ }
+ ;
+ Xt(YQ,"NagaIceArrow1"),Yt(YQ,"GROUND_MAX_LIFE",120);
+ let JQ=YQ;
+ const QQ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"healPercent",0),Yt(this,"lifeT",0),Yt(this,"launchT",0),Yt(this,"startDelay",0),Yt(this,"curSpeed",0),Yt(this,"aimTarget",null)}
+ initializeTextureName(){
+ this.sheetName="Game2",this.className=MV.HippogriffMissile1,this.textureName="HippogriffMissile"}
+ initializeData(){
+ this.hitClassName="",this.g=0,this.speed=t.MAX_SPEED,this.flyEnd=1,this.incFrame=0}
+ generateSprite(){
+ super.generateSprite(),this.sp&&(this.sp.anchor.set(.5,.5),this.sp.scale.x=-Math.abs(this.sp.scale.x))}
+ setHeal(i){
+ this.healPercent=i,this.sp&&(this.sp.tint=i>0?t.HEAL_TINT:16777215)}
+ launchHoming(i,s,e=0){
+ this.lifeT=0,this.launchT=0,this.startDelay=e,this.curSpeed=t.LAUNCH_SPEED,this.aimTarget=s,this.rotation=i,this.vx=Math.cos(i)*this.curSpeed,this.vy=Math.sin(i)*this.curSpeed,this.resolvedHitClassName=this.hitClassName||this.getDefaultHitEffect(),this.removed=!1,this.visible=e<=0,this.alpha=1}
+ execute(){
+ if(this.removed)return;
+ if(this.startDelay>0)return this.startDelay--,void(this.visible=this.startDelay<=0);
+ if(++this.lifeT>t.LIFETIME_MAX)return void this.remove();
+ if(!this.aimTarget||this.aimTarget.isAlive&&!this.aimTarget.removed||(this.aimTarget=null),this.aimTarget){
+ const i=this.aimTarget.getHitCenter(),s=i.x-this.x,e=i.y-this.y,n=Math.atan2(e,s);
+ let h;
+ if(this.launchT<t.LAUNCH_FRAMES)h=t.LAUNCH_TURN;
+ else{
+ const i=Math.max(t.TURN_MIN_DIST,Math.hypot(s,e)),n=this.curSpeed/i*t.TURN_GAIN;
+ h=Math.min(t.MAX_TURN,Math.max(t.HOMING_TURN,n))}
+ this.rotation=t.turnToward(this.rotation,n,h)}
+ this.launchT++,this.curSpeed=Math.min(t.MAX_SPEED,this.curSpeed+t.ACCEL);
+ const i=this.x,s=this.y;
+ if(this.x+=Math.cos(this.rotation)*this.curSpeed,this.y+=Math.sin(this.rotation)*this.curSpeed,this.aimTarget&&this.owner){
+ const e=this.aimTarget.getHitCenter(),n=t.HIT_RADIUS;
+ if(t.segDistSq(i,s,this.x,this.y,e.x,e.y)<=n*n)return this.healPercent>0?this.aimTarget.heal(this.healPercent,this.owner,!0):(this.owner.doDamage(this.aimTarget,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName)),void this.remove()}
+ this.isOutOfField(50)&&this.remove()}
+ static segDistSq(t,i,s,e,n,h){
+ const r=s-t,o=e-i,a=r*r+o*o;
+ let c=a>0?((n-t)*r+(h-i)*o)/a:0;
+ c<0?c=0:c>1&&(c=1);
+ const l=t+r*c-n,u=i+o*c-h;
+ return l*l+u*u}
+ static turnToward(t,i,s){
+ let e=i-t;
+ for(;
+ e>Math.PI;
+ )e-=2*Math.PI;
+ for(;
+ e<-Math.PI;
+ )e+=2*Math.PI;
+ return e>s?e=s:e<-s&&(e=-s),t+e}
+ }
+ ;
+ Xt(QQ,"HippogriffMissile1"),Yt(QQ,"LAUNCH_SPEED",5),Yt(QQ,"LAUNCH_FRAMES",5),Yt(QQ,"LAUNCH_TURN",.08),Yt(QQ,"HOMING_TURN",.24),Yt(QQ,"TURN_GAIN",1.8),Yt(QQ,"MAX_TURN",.75),Yt(QQ,"TURN_MIN_DIST",24),Yt(QQ,"ACCEL",.9),Yt(QQ,"MAX_SPEED",15),Yt(QQ,"HIT_RADIUS",24),Yt(QQ,"LIFETIME_MAX",200),Yt(QQ,"HEAL_TINT",13631456);
+ let ZQ=QQ;
+ const tZ=class extends EV{
+ initializeTextureName(){
+ this.sheetName="Game2",this.className=MV.HippogriffSpear1,this.textureName="HippogriffSpear"}
+ initializeData(){
+ this.hitClassName="",this.g=0,this.speed=12,this.flyEnd=1,this.incFrame=0,this.orientToPath=!0}
+ generateSprite(){
+ super.generateSprite(),this.sp&&(this.sp.anchor.set(.5,.5),this.sp.scale.x=-Math.abs(this.sp.scale.x))}
+ }
+ ;
+ Xt(tZ,"HippogriffSpear1");
+ let iZ=tZ;
+ const sZ=class extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"missileSpeed",10),Yt(this,"turnRate",.18),Yt(this,"maxAngleY",.54),Yt(this,"maxLifeTime",90),Yt(this,"heading",0)}
+ initializeTextureName(){
+ this.className=MV.SteamFire1,this.textureName=MV.PilotMissile1,this.scale.set(.8)}
+ initializeData(){
+ this.hitClassName="FireExplode",this.g=0,this.speed=this.missileSpeed,this.flyEnd=0,this.incFrame=1,this.orientToPath=!1}
+ calculateTrajectory(){
+ if(!this.target)return;
+ const t=this.target.getHitCenter().x-this.x;
+ this.heading=t>=0?0:Math.PI,this.vx=Math.cos(this.heading)*this.missileSpeed,this.vy=0,this.rotation=this.heading,this.t=0,this.T=this.maxLifeTime}
+ execute(){
+ if(--this.delay>0)this.rotation=0;
+ else{
+ if(this.t++,this.t%2==0&&this.showSmoke(),this.target&&!this.target.removed&&this.target.isAlive||this.retarget(80),this.t<=3);
+ else if(this.target&&!this.target.removed){
+ const t=this.target.getHitCenter(),i=t.x-this.x,s=t.y-this.y;
+ let e=Math.atan2(s,i)-this.heading;
+ for(;
+ e>Math.PI;
+ )e-=2*Math.PI;
+ for(;
+ e<-Math.PI;
+ )e+=2*Math.PI;
+ const n=this.t>.6*this.T?3*this.turnRate:this.turnRate;
+ e>n&&(e=n),e<-n&&(e=-n),this.heading+=e}
+ if(this.vx=Math.cos(this.heading)*this.missileSpeed,this.vy=Math.sin(this.heading)*this.missileSpeed,this.x+=this.vx,this.y+=this.vy,this.rotation=this.heading,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&this.textures.length>0&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.checkEarlyCollision())this.onHit();
+ else if(this.t>=this.T){
+ if(this.target&&!this.target.removed){
+ const t=this.target.getHitCenter();
+ this.x=t.x,this.y=t.y}
+ this.onHit()}
+ }
+ }
+ retarget(t){
+ if(!this.owner||!this.owner.enemyList)return;
+ let i=null,s=t*t;
+ for(const e of this.owner.enemyList){
+ if(!e.isAlive||e.isUntagetable)continue;
+ const t=e.x-this.x,n=e.y-this.y,h=t*t+n*n;
+ h<s&&(i=e,s=h)}
+ i&&(this.target=i)}
+ onHitMain(){
+ if(this.target&&this.target.isAlive){
+ const t=this.owner&&this.owner.evolStage>=1,i=t?.4:.3,s=t?50:40;
+ this.random.chance(i)&&this.target.stun(s,this.owner??void 0)}
+ if(!this.owner||!this.owner.enemyList)return;
+ let t=0;
+ for(const i of this.owner.enemyList){
+ if(!i.isAlive||i===this.target||i.isUntagetable)continue;
+ const s=this.x-i.x;
+ if(Math.abs(s)>35)continue;
+ const e=this.y-i.y;
+ if(!(Math.abs(e)>35)&&s*s+e*e<625&&(this.owner.doDamage(i,.4,!0),++t>=3))break}
+ this.showSmoke()}
+ showSmoke(){
+ const t=bV.getEffect(SH.PilotMissileSmoke1);
+ t.x=this.x,t.y=this.y,t.setBattleController(this.battleController||hli.getInstance()),t.start(25),kB.getInstance().addChild(t)}
+ }
+ ;
+ Xt(sZ,"SteamFire1");
+ let eZ=sZ;
+ const nZ=class extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"hitSet",new Set)}
+ initializeTextureName(){
+ this.sheetName="Game1",this.className=MV.SteamMissile1,this.textureName=MV.SteamMissile1,this.scale.x=.5,this.scale.y=.2}
+ initializeData(){
+ this.hitClassName="PhysicalHitEffect",this.g=0,this.speed=11,this.flyEnd=2,this.incFrame=1}
+ play(){
+ this.hitSet.clear(),super.play()}
+ onHit(){
+ this.owner&&this.target?(this.target.isAlive&&!this.hitSet.has(this.target)&&(this.hitSet.add(this.target),this.owner.doDamage(this.target,this.damagePercent,!0)&&(this.onHitMain(),this.showHitEffect(this.resolvedHitClassName))),this.target=null):this.remove()}
+ checkEarlyCollision(){
+ if(this.target&&!this.target.removed)return super.checkEarlyCollision();
+ if(!this.owner)return!1;
+ for(const t of this.owner.enemyList){
+ if(!t||!t.isAlive||this.hitSet.has(t))continue;
+ const i=t.getHitCenter(),s=Math.abs(i.x-this.x),e=Math.abs(i.y-this.y),n=.3*t.hitWidth,h=.3*t.hitHeight;
+ if(s<n&&e<h)return this.target=t,!0}
+ return!1}
+ remove(){
+ this.hitSet.clear(),super.remove()}
+ }
+ ;
+ Xt(nZ,"SteamMissile1");
+ let hZ=nZ;
+ const rZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"dirX",1),Yt(this,"dirY",0)}
+ initializeTextureName(){
+ this.className=MV.SylphidShuriken1,this.textureName="SylphidShuriken1"}
+ initializeData(){
+ this.sheetName="Game1",this.g=0,this.speed=t.FIXED_SPEED,this.minT=12,this.maxT=90,this.flyEnd=1,this.incFrame=1,this.weaponScale=1.4,this.orientToPath=!1,this.vr=.45,this.bounceRange=220}
+ calculateTrajectory(){
+ if(!this.target)return;
+ const i=this.target.getHitCenter();
+ this.offsetX=0,this.offsetY=.3*-this.target.hitHeight;
+ const s=i.x+this.offsetX-this.x,e=i.y+this.offsetY-this.y,n=Math.sqrt(s*s+e*e)||1;
+ this.dirX=s/n,this.dirY=e/n,this.T=Math.max(this.minT,Math.min(this.maxT,n/t.FIXED_SPEED)),this.vx=this.dirX*t.FIXED_SPEED,this.vy=this.dirY*t.FIXED_SPEED,this.t=0}
+ execute(){
+ if(!this.removed)if(this.t++,this.x+=this.dirX*t.FIXED_SPEED,this.y+=this.dirY*t.FIXED_SPEED,this.rotation+=this.vr,this.sp&&this.textures.length>0&&(this.sp.texture=this.textures[0]),this.checkEarlyCollision())this.onHit();
+ else if(this.t>=this.T){
+ if(this.target&&!this.target.removed&&this.target.isAlive)return void this.onHit();
+ this.t>=this.T+30&&this.remove()}
+ }
+ onHitMain(){
+ if(!this.target)return;
+ const t=bV.getEffect(SH.ElfGlowing1);
+ t.x=this.target.x,t.y=this.target.y-.5*this.target.hitHeight,t.start(30),kB.getInstance().addChild(t);
+ const i=this.owner;
+ i&&i.isAlive&&"function"==typeof i.onShurikenHit&&i.onShurikenHit()}
+ }
+ ;
+ Xt(rZ,"SylphidShuriken1"),Yt(rZ,"FIXED_SPEED",8);
+ let oZ=rZ;
+ const aZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"lifeTimer",0),Yt(this,"hitTimer",0),Yt(this,"dirAngle",0),Yt(this,"launched",!1),Yt(this,"circleEffect",null)}
+ initializeTextureName(){
+ this.className=MV.SylphidTornado1,this.textureName="ElfTornado1"}
+ initializeData(){
+ this.sheetName="Game1",this.g=0,this.speed=t.SPEED,this.incFrame=.4,this.weaponScale=1.6,this.orientToPath=!1,this.vr=0}
+ generateSprite(){
+ super.generateSprite(),this.flyEnd=Math.max(1,this.textures.length)}
+ play(){
+ this.lifeTimer=0,this.hitTimer=0,this.launched=!1,this.rotation=0,this.visible=!0,this.removed=!1,this.parent&&this.parent.removeChild(this),IB.getInstance().addChild(this),this.circleEffect=bV.getEffect(SH.ElfMagicCircle1),this.circleEffect.x=this.x,this.circleEffect.y=this.y+10,this.circleEffect.scale.set(1.2),this.circleEffect.start(t.LIFETIME+10),IB.getInstance().addChild(this.circleEffect),(this.battleController||hli.getInstance()).addWeapon(this)}
+ execute(){
+ if(!this.removed)if(this.lifeTimer++,this.hitTimer++,this.lifeTimer>=t.LIFETIME)this.explodeAndRemove();
+ else{
+ if(this.launched)this.dirAngle+=2*(Math.random()-.5)*t.TURN_RATE;
+ else if(this.launched=!0,this.target&&this.target.isAlive){
+ const t=this.target.x-this.x,i=this.target.y-this.y;
+ this.dirAngle=Math.atan2(i,t)}
+ else this.dirAngle=Math.random()*Math.PI*2;
+ this.x+=Math.cos(this.dirAngle)*t.SPEED,this.y+=Math.sin(this.dirAngle)*t.SPEED,this.circleEffect&&!this.circleEffect.removed&&(this.circleEffect.x=this.x,this.circleEffect.y=this.y+10),this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.suckNearby(),this.hitTimer>=t.HIT_INTERVAL&&(this.hitTimer=0,this.damageAndBindNearby())}
+ }
+ suckNearby(){
+ if(!this.owner)return;
+ const i=t.SUCK_RADIUS*t.SUCK_RADIUS;
+ for(const s of this.owner.enemyList){
+ if(s.removed||!s.isAlive||s.isUntagetable||s.isImmovable||s.knockImmune)continue;
+ const e=s.x-this.x,n=s.y-this.y,h=e*e+n*n;
+ if(h>i||h<1)continue;
+ const r=Math.sqrt(h),o=t.SUCK_SPEED*(1-r/t.SUCK_RADIUS);
+ s.x-=e/r*o,s.y-=n/r*o,s.tx=s.x,s.ty=s.y}
+ }
+ damageAndBindNearby(){
+ if(!this.owner||!this.owner.isAlive)return;
+ const i=t.HIT_RADIUS*t.HIT_RADIUS;
+ for(const s of this.owner.enemyList){
+ if(!s.isAlive||s.isUntagetable)continue;
+ const e=s.x-this.x,n=s.y-this.y;
+ e*e+n*n<=i&&(this.owner.doDamage(s,t.DMG_PER_TICK,!0),this.bindEnemy(s))}
+ }
+ bindEnemy(i){
+ i.binding(t.BIND_DURATION,!1,this.owner??void 0);
+ const s=i.effectList;
+ for(let n=0;
+ n<s.length;
+ n++)if(s[n].className===SH.ElfBindEffect1)return void s[n].setDuration(t.BIND_DURATION);
+ const e=bV.getEffect(SH.ElfBindEffect1);
+ e.x=0,e.y=-2,e.start(t.BIND_DURATION),e.owner=i,i.addChild(e),i.effectList.push(e)}
+ blowNearby(){
+ if(!this.owner)return;
+ const i=t.BLOW_RADIUS*t.BLOW_RADIUS;
+ for(const s of this.owner.enemyList){
+ if(!s.isAlive||s.isUntagetable)continue;
+ const e=s.x-this.x,n=s.y-this.y,h=e*e+n*n;
+ if(h>i||h<1)continue;
+ const r=Math.sqrt(h),o=e/r*t.BLOW_SPEED,a=n/r*t.BLOW_SPEED;
+ s.knockBack(o,a,t.BLOW_DURATION)}
+ }
+ explodeAndRemove(){
+ if(this.removed)return;
+ this.blowNearby();
+ const t=bV.getEffect(SH.ElfExplodeEffect1);
+ t.x=this.x,t.y=this.y,t.scale.set(2),t.start(60),kB.getInstance().addChild(t),this.circleEffect&&!this.circleEffect.removed&&this.circleEffect.remove(),this.circleEffect=null,super.remove()}
+ remove(){
+ this.explodeAndRemove()}
+ }
+ ;
+ Xt(aZ,"SylphidTornado1"),Yt(aZ,"SPEED",1.2),Yt(aZ,"LIFETIME",300),Yt(aZ,"HIT_RADIUS",50),Yt(aZ,"HIT_INTERVAL",30),Yt(aZ,"DMG_PER_TICK",.6),Yt(aZ,"BIND_DURATION",30),Yt(aZ,"TURN_RATE",.08),Yt(aZ,"SUCK_RADIUS",70),Yt(aZ,"SUCK_SPEED",1.8),Yt(aZ,"BLOW_RADIUS",90),Yt(aZ,"BLOW_SPEED",12),Yt(aZ,"BLOW_DURATION",10);
+ let cZ=aZ;
+ const lZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"orbitCenterX",0),Yt(this,"orbitCenterY",0),Yt(this,"orbitAngle",0),Yt(this,"orbitRadius",0),Yt(this,"orbitSpeed",.12),Yt(this,"orbitOwner",null),Yt(this,"orbitPhase",0),Yt(this,"orbitTimer",0),Yt(this,"orbitDir",1),Yt(this,"inStorm",!1),Yt(this,"oneShot",!1),Yt(this,"goblinTarget",null),Yt(this,"straight",!1),Yt(this,"tgtX",0),Yt(this,"tgtY",0),Yt(this,"launchDelay",0),Yt(this,"hitCooldowns",new Map),Yt(this,"flyStartX",0),Yt(this,"flyStartY",0),Yt(this,"flyTargetX",0),Yt(this,"flyTargetY",0),Yt(this,"burstVx",0),Yt(this,"burstVy",0),Yt(this,"burstTimer",0),Yt(this,"lifeTimer",0),Yt(this,"lifeDuration",1200),Yt(this,"flying",!1),Yt(this,"coinGravity",.18),Yt(this,"landY",0)}
+ initializeTextureName(){
+ this.sheetName="Game1",this.className=MV.AladinCoin1,this.textureName=MV.AladinCoin1,this.scale.set(.8)}
+ initializeData(){
+ this.g=0,this.speed=0,this.flyEnd=1,this.incFrame=0,this.vx=0,this.vy=0,this.flying=!1,this.orbitRadius=0,this.orbitPhase=0,this.orbitTimer=0,this.hitCooldowns?this.hitCooldowns.clear():this.hitCooldowns=new Map,this.orbitOwner=null,this.burstTimer=0,this.lifeTimer=0,this.inStorm=!1,this.oneShot=!1,this.goblinTarget=null,this.straight=!1,this.tgtX=0,this.tgtY=0,this.rotation=0,this.launchDelay=0}
+ play(){
+ this.visible=!0,this.removed=!1,this.resolvedHitClassName=this.hitClassName||"PhysicalHitEffect",(this.battleController||hli.getInstance()).addWeapon(this)}
+ launch(i,s,e=!1){
+ const n=i-this.x,h=s-this.y;
+ if(e){
+ this.straight=!0,this.tgtX=i,this.tgtY=s;
+ const e=Math.sqrt(n*n+h*h)||1;
+ return this.vx=n/e*t.STRAIGHT_SPEED,this.vy=h/e*t.STRAIGHT_SPEED,void(this.flying=!0)}
+ this.landY=s;
+ const r=Math.max(12,Math.floor(Math.abs(n)/4+Math.abs(h)/10));
+ this.vx=n/r,this.vy=h/r-this.coinGravity*(r-1)*.6,this.flying=!0}
+ get isOrbiting(){
+ return 0!==this.orbitPhase}
+ get isStormOrbiting(){
+ return 4===this.orbitPhase}
+ absorbIntoStorm(t,i,s,e,n){
+ if(0!==this.orbitPhase)return!1;
+ if(this.removed)return!1;
+ this.inStorm=!0,this.flying=!1,this.vx=0,this.vy=0,this.orbitCenterX=t,this.orbitCenterY=i;
+ const h=this.x-t,r=(this.y-i)/.6;
+ return this.orbitAngle=h*h+r*r>1?Math.atan2(r,h):0,this.orbitRadius=s,this.orbitSpeed=e,this.orbitDir=n,this.orbitPhase=4,this.orbitTimer=0,this.lifeTimer=0,!0}
+ releaseFromStorm(){
+ if(4!==this.orbitPhase)return;
+ const t=16+6*this.random.next();
+ this.burstVx=Math.cos(this.orbitAngle)*t,this.burstVy=Math.sin(this.orbitAngle)*t*.9;
+ const i=Math.sin(this.orbitAngle);
+ this.landY=this.orbitCenterY+115+110*Math.max(0,i),this.orbitPhase=3,this.burstTimer=0,this.inStorm=!1}
+ lift(){
+ 0===this.orbitPhase&&(this.y-=4+4*Math.random())}
+ joinPath(t,i,s,e,n){
+ this.flying=!1,this.vx=0,this.vy=0,this.orbitCenterX=t,this.orbitCenterY=i,this.orbitSpeed=e,this.orbitDir=n,this.orbitRadius=s,this.orbitOwner=null,this.orbitTimer=0,this.lifeTimer=0;
+ const h=this.x-t,r=this.y-i;
+ this.orbitAngle=Math.atan2(r/.6,h),this.flyStartX=this.x,this.flyStartY=this.y,this.flyTargetX=t+Math.cos(this.orbitAngle)*s,this.flyTargetY=i+Math.sin(this.orbitAngle)*s*.6,this.orbitPhase=1}
+ startLane(t,i,s,e,n){
+ this.joinPath(t,i,s,e,n)}
+ startOrbit(t,i,s,e,n=null){
+ this.joinPath(t,i,120,e,this.random.next()<.6?1:-1),this.orbitOwner=n}
+ startCapture(t,i,s,e,n,h,r=null){
+ this.joinPath(t,i,120,h,n),this.orbitOwner=r}
+ execute(){
+ if(!this.removed)if(this.launchDelay>0)this.launchDelay--;
+ else{
+ if(1===this.orbitPhase){
+ const i=this.orbitTimer/t.FLY_FRAMES,s=1-(1-i)*(1-i);
+ return this.x=this.flyStartX+(this.flyTargetX-this.flyStartX)*s,this.y=this.flyStartY+(this.flyTargetY-this.flyStartY)*s,void(++this.orbitTimer>=t.FLY_FRAMES&&(this.x=this.flyTargetX,this.y=this.flyTargetY,this.orbitTimer=0,this.orbitPhase=2))}
+ if(2!==this.orbitPhase){
+ if(4===this.orbitPhase)return this.orbitAngle+=this.orbitSpeed*this.orbitDir,this.x=this.orbitCenterX+Math.cos(this.orbitAngle)*this.orbitRadius,void(this.y=this.orbitCenterY+Math.sin(this.orbitAngle)*this.orbitRadius*.6);
+ if(3===this.orbitPhase)return this.x+=this.burstVx,this.y+=this.burstVy,this.burstVx*=.95,this.burstVy=.95*this.burstVy+.8,this.checkOrbitHit(),this.burstVy>0&&this.y>=this.landY?(this.y=this.landY,this.orbitPhase=0,this.lifeTimer=0,void(this.flying=!1)):void(++this.burstTimer>=t.BURST_FRAMES&&(this.orbitPhase=0,this.lifeTimer=0,this.landY=this.y,this.flying=!1));
+ if(this.flying&&this.straight){
+ this.x+=this.vx,this.y+=this.vy,this.rotation+=.4;
+ const t=this.tgtX-this.x,i=this.tgtY-this.y;
+ if(t*this.vx+i*this.vy<=0||t*t+i*i<100){
+ if(this.oneShot)return this.oneShotHit(),void this.remove();
+ this.flying=!1}
+ return}
+ if(this.flying)return this.x+=this.vx,this.y+=this.vy,this.vy+=this.coinGravity,this.vy>0&&this.y>=this.landY&&(this.y=this.landY,this.vx=0,this.vy=0,this.flying=!1,this.oneShot)?(this.oneShotHit(),void this.remove()):void 0;
+ ++this.lifeTimer>=this.lifeDuration&&(this.owner&&"function"==typeof this.owner.onCoinExpired&&this.owner.onCoinExpired(),this.remove())}
+ else if(this.orbitAngle+=this.orbitSpeed*this.orbitDir,this.x=this.orbitCenterX+Math.cos(this.orbitAngle)*this.orbitRadius,this.y=this.orbitCenterY+Math.sin(this.orbitAngle)*this.orbitRadius*.6,this.checkOrbitHit(),++this.orbitTimer>=t.ORBIT_FRAMES)if(this.inStorm)this.orbitPhase=4,this.orbitTimer=0;
+ else{
+ const t=12+6*this.random.next(),i=-Math.sin(this.orbitAngle)*this.orbitDir,s=Math.cos(this.orbitAngle)*this.orbitDir*.6,e=Math.sqrt(i*i+s*s);
+ this.burstVx=i/e*t,this.burstVy=s/e*t,this.landY=this.orbitCenterY+115,this.orbitPhase=3,this.burstTimer=0}
+ }
+ }
+ oneShotHit(){
+ if(this.goblinTarget)return this.goblinTarget.hitByHero(),void(this.goblinTarget=null);
+ if(!this.owner)return;
+ const i=this.owner,s=this.damagePercent>0?this.damagePercent:.6,e=this.target;
+ if(e&&e.isAlive&&!e.isUntagetable)return void i.doDamage(e,s,!0);
+ const n=t.ONESHOT_RADIUS*t.ONESHOT_RADIUS;
+ for(const t of i.enemyList){
+ if(!t.isAlive||t.isUntagetable)continue;
+ const e=t.x-this.x,h=t.y-this.y;
+ if(e*e+h*h<=n)return void i.doDamage(t,s,!0)}
+ }
+ checkOrbitHit(){
+ if(!this.owner)return;
+ const i=this.owner,s=4===this.orbitPhase||3===this.orbitPhase,e=s?22:20,n=s?250:20,h=e*e,r=n*n,o="number"==typeof i.goldDmgMultiplier?i.goldDmgMultiplier:1,a=(this.damagePercent>0?this.damagePercent:.6)*o;
+ for(const[t,c]of this.hitCooldowns)c<=1?this.hitCooldowns.delete(t):this.hitCooldowns.set(t,c-1);
+ for(const c of i.enemyList){
+ if(s&&t.burstHitCount>=t.BURST_TOTAL_HIT_CAP)break;
+ if(!c.isAlive||c.isUntagetable)continue;
+ if(this.hitCooldowns.has(c))continue;
+ const e=c.x-this.x,n=c.y-this.y;
+ e*e/h+n*n/r<=1&&(i.doDamage(c,a,!0),this.hitCooldowns.set(c,t.HIT_COOLDOWN),s&&t.burstHitCount++)}
+ }
+ }
+ ;
+ Xt(lZ,"AladinCoin1"),Yt(lZ,"ONESHOT_RADIUS",34),Yt(lZ,"STRAIGHT_SPEED",12),Yt(lZ,"HIT_COOLDOWN",30),Yt(lZ,"BURST_TOTAL_HIT_CAP",10),Yt(lZ,"burstHitCount",0),Yt(lZ,"FLY_FRAMES",40),Yt(lZ,"ORBIT_FRAMES",140),Yt(lZ,"BURST_FRAMES",60),Yt(lZ,"MAP_MIN_X",60),Yt(lZ,"MAP_MAX_X",580),Yt(lZ,"MAP_MIN_Y",60),Yt(lZ,"MAP_MAX_Y",580);
+ let uZ=lZ;
+ const dZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"pierceTimer",0),Yt(this,"hitCooldowns",new Map)}
+ initializeTextureName(){
+ this.className=MV.BladeWave1,this.textureName="BladeWave10",this.sheetName="Game1"}
+ initializeData(){
+ this.hitClassName="PhysicalHitEffect",this.g=0,this.speed=9,this.flyEnd=8,this.incFrame=1}
+ setData(i=1){
+ super.setData(i),this.pierceTimer=0,this.hitCooldowns.clear(),this.sp&&this.sp.scale.set(t.SCALE)}
+ play(){
+ this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"PhysicalHitEffect",this.battleController&&this.battleController.addWeapon(this)}
+ calculateTrajectory(){
+ }
+ execute(){
+ if(this.removed)return;
+ if(this.pierceTimer++,this.pierceTimer>=t.LIFETIME)return void super.remove();
+ this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0);
+ const i=Math.floor(this.currentFrame);
+ this.sp&&i<this.textures.length&&(this.sp.texture=this.textures[i]),this.isOutOfField(260)?super.remove():this.checkPierceHit()}
+ checkPierceHit(){
+ if(!this.owner)return;
+ const i=t.HIT_RADIUS*t.HIT_RADIUS;
+ for(const[t,s]of this.hitCooldowns)s<=1?this.hitCooldowns.delete(t):this.hitCooldowns.set(t,s-1);
+ for(const t of this.owner.enemyList){
+ if(!t.isAlive||t.isUntagetable)continue;
+ if(this.hitCooldowns.has(t))continue;
+ const s=t.x-this.x,e=t.y-this.y;
+ if(s*s+e*e<=i){
+ const i=this.owner.evolStage>=1;
+ this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),i&&t.knockBack(this.vx>0?2:-2,-1,20),this.hitCooldowns.set(t,20)}
+ }
+ }
+ }
+ ;
+ Xt(dZ,"BladeWave1"),Yt(dZ,"SCALE",3),Yt(dZ,"HIT_RADIUS",35),Yt(dZ,"LIFETIME",100);
+ let fZ=dZ;
+ const pZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"pierceTimer",0),Yt(this,"hitCooldowns",new Map),Yt(this,"uniqueTargets",new Set)}
+ initializeTextureName(){
+ this.className=MV.SpinBlade,this.textureName=MV.SpinBlade,this.sheetName="Game1"}
+ initializeData(){
+ this.hitClassName="PhysicalHitEffect",this.g=0,this.speed=9,this.flyEnd=6,this.incFrame=1}
+ setData(i=1){
+ super.setData(i),this.pierceTimer=0,this.hitCooldowns?this.hitCooldowns.clear():this.hitCooldowns=new Map,this.uniqueTargets?this.uniqueTargets.clear():this.uniqueTargets=new Set,this.sp&&this.sp.scale.set(t.SCALE)}
+ play(){
+ this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"PhysicalHitEffect",this.battleController&&this.battleController.addWeapon(this)}
+ calculateTrajectory(){
+ }
+ execute(){
+ if(this.removed)return;
+ if(this.pierceTimer++,this.pierceTimer>=t.LIFETIME)return void super.remove();
+ this.x+=this.vx,this.y+=this.vy,this.rotation+=.3,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0);
+ const i=Math.floor(this.currentFrame);
+ this.sp&&i<this.textures.length&&(this.sp.texture=this.textures[i]),this.isOutOfField(260)?super.remove():this.checkPierceHit()}
+ checkPierceHit(){
+ if(!this.owner)return;
+ const i=t.HIT_RADIUS*t.HIT_RADIUS;
+ for(const[t,s]of this.hitCooldowns)s<=1?this.hitCooldowns.delete(t):this.hitCooldowns.set(t,s-1);
+ for(const s of this.owner.enemyList){
+ if(!s.isAlive||s.isUntagetable)continue;
+ if(this.hitCooldowns.has(s))continue;
+ const e=s.x-this.x,n=s.y-this.y;
+ if(e*e+n*n<=i){
+ if(!this.uniqueTargets.has(s)){
+ if(this.uniqueTargets.size>=t.MAX_TARGETS)continue;
+ this.uniqueTargets.add(s)}
+ this.owner.doDamage(s,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),s.knockBack(this.vx>0?3:-3,-2,25),this.hitCooldowns.set(s,20)}
+ }
+ }
+ }
+ ;
+ Xt(pZ,"SpinBlade"),Yt(pZ,"SCALE",2),Yt(pZ,"HIT_RADIUS",22),Yt(pZ,"LIFETIME",100),Yt(pZ,"MAX_TARGETS",8);
+ let gZ=pZ;
+ const mZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"flightTimer",0),Yt(this,"hasHit",!1),Yt(this,"acquired",!1),Yt(this,"hitTarget",null),Yt(this,"hitFrame",0)}
+ initializeTextureName(){
+ this.className=MV.CrowKnightBullet1,this.textureName=MV.CrowKnightBullet1,this.sheetName="Game1",this.scale.set(.8)}
+ initializeData(){
+ this.hitClassName="MagicalHitEffect",this.g=0,this.speed=16,this.flyEnd=1,this.incFrame=0,this.flightTimer=0}
+ setData(t=1){
+ super.setData(t),this.flightTimer=0,this.hasHit=!1,this.visible=!0,this.removed=!1,this.scale.set(.8),this.acquired=!1,this.hitTarget=null,this.hitFrame=0}
+ play(){
+ this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"MagicalHitEffect",(this.battleController||hli.getInstance()).addWeapon(this)}
+ calculateTrajectory(){
+ }
+ acquireTarget(){
+ this.acquired=!0,this.hitTarget=null,this.hitFrame=0;
+ const i=this.owner;
+ if(!i)return;
+ const s=Math.sqrt(this.vx*this.vx+this.vy*this.vy);
+ if(s<.001)return;
+ const e=this.vx/s,n=this.vy/s,h=t.HIT_RADIUS,r=h*h,o=s*t.LIFETIME,a=this.x,c=this.y;
+ let l=1/0,u=null;
+ const d=i.enemyList;
+ for(let t=0;
+ t<d.length;
+ t++){
+ const i=d[t];
+ if(!i.isAlive||i.isUntagetable)continue;
+ const s=i.x-a,h=i.y-i.hitHeight/2-i.airHeight-c,f=s*e+h*n;
+ if(f<0||f>o)continue;
+ const p=s*s+h*h-f*f;
+ if(p>r)continue;
+ const g=f-Math.sqrt(r-p);
+ g<l&&(l=g,u=i)}
+ u&&(this.hitTarget=u,this.hitFrame=Math.max(1,Math.round(Math.max(0,l)/s)))}
+ execute(){
+ if(this.removed||this.hasHit)return;
+ if(this.flightTimer++,this.flightTimer>=t.LIFETIME)return void super.remove();
+ if(this.x+=this.vx,this.y+=this.vy,this.isOutOfField(260))return void super.remove();
+ if(!this.owner)return;
+ this.acquired||this.acquireTarget();
+ const i=this.hitTarget;
+ if(i&&!(this.flightTimer<this.hitFrame)){
+ if(i.isAlive&&!i.isUntagetable){
+ const s=t.IMPACT_R,e=i.x-this.x,n=i.y-i.hitHeight/2-i.airHeight-this.y;
+ if(e*e+n*n<=s*s)return this.hasHit=!0,this.vx=0,this.vy=0,this.visible=!1,this.owner.doDamage(i,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),this.owner.evolStage>=1&&i.stun(30),void this.remove()}
+ this.flightTimer>this.hitFrame+t.GRACE&&(this.hitTarget=null)}
+ }
+ }
+ ;
+ Xt(mZ,"CrowKnightBullet1"),Yt(mZ,"LIFETIME",60),Yt(mZ,"HIT_RADIUS",40),Yt(mZ,"IMPACT_R",56),Yt(mZ,"GRACE",3);
+ let wZ=mZ;
+ const vZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"explodeDmgBonus",0),Yt(this,"explodeRangeBonus",0),Yt(this,"isLordCrow",!1),Yt(this,"flightTimer",0),Yt(this,"hoverUntil",0),Yt(this,"isDiving",!1),Yt(this,"riseVx",0),Yt(this,"riseVy",0)}
+ initializeTextureName(){
+ this.className=MV.CrowCompanion1,this.textureName=MV.CrowCompanion1,this.sheetName="Game1"}
+ initializeData(){
+ this.hitClassName="MagicalHitEffect",this.g=0,this.speed=t.DIVE_SPEED,this.flyEnd=8,this.incFrame=1,this.weaponScale=1.3}
+ setData(i=1){
+ super.setData(i),this.flightTimer=0,this.isDiving=!1,this.explodeDmgBonus=0,this.explodeRangeBonus=0,this.isLordCrow=!1;
+ const s=t.HOVER_FRAMES_MIN+Math.floor(Math.random()*(t.HOVER_FRAMES_MAX-t.HOVER_FRAMES_MIN+1));
+ this.hoverUntil=t.RISE_FRAMES+s;
+ const e=-Math.PI/2+(Math.random()-.5)*(2*Math.PI/3);
+ this.riseVx=Math.cos(e)*t.RISE_SPEED,this.riseVy=Math.sin(e)*t.RISE_SPEED}
+ calculateTrajectory(){
+ }
+ execute(){
+ if(!this.removed)if(this.flightTimer++,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.flightTimer>=t.MAX_FLIGHT)this.explode();
+ else{
+ if(this.flightTimer<=t.RISE_FRAMES?(this.vx=this.riseVx,this.vy=this.riseVy):this.flightTimer<=this.hoverUntil?(this.vx=0,this.vy=0):this.isDiving=!0,this.isDiving&&this.target&&!this.target.removed){
+ const i=this.target.x-this.x,s=this.target.y-this.y,e=Math.sqrt(i*i+s*s);
+ if(e<t.DIVE_SPEED+2)return void this.explode();
+ this.vx=i/e*t.DIVE_SPEED,this.vy=s/e*t.DIVE_SPEED}
+ this.x+=this.vx,this.y+=this.vy,0===this.vx&&0===this.vy||(this.rotation=Math.atan2(this.vy,this.vx))}
+ }
+ explode(){
+ var i;
+ const s=this.owner,e=bV.getEffect(SH.CrowExplosion1);
+ if(e.scale.set(2.5),e.x=this.x,e.y=this.y,e.start(30),kB.getInstance().addChild(e),s){
+ const e=t.EXPLODE_RANGE+this.explodeRangeBonus,n=e*e,h=t.EXPLODE_DMG+this.explodeDmgBonus;
+ let r=0;
+ for(const o of s.enemyList){
+ if(r>=t.EXPLODE_MAX_TARGETS)break;
+ if(!o.isAlive||o.isUntagetable)continue;
+ const e=o.x-this.x,a=o.y-this.y;
+ if(e*e+a*a<=n){
+ const t=o.isAlive;
+ s.doDamage(o,this.damagePercent*h,!0),r++,!t||o.isAlive||this.isLordCrow||null==(i=s.onCrowKill)||i.call(s)}
+ }
+ }
+ super.remove()}
+ remove(){
+ this.explode()}
+ }
+ ;
+ Xt(vZ,"CrowCompanion1"),Yt(vZ,"EXPLODE_DMG",.5),Yt(vZ,"EXPLODE_RANGE",75),Yt(vZ,"EXPLODE_MAX_TARGETS",2),Yt(vZ,"RISE_SPEED",9),Yt(vZ,"RISE_FRAMES",14),Yt(vZ,"HOVER_FRAMES_MIN",24),Yt(vZ,"HOVER_FRAMES_MAX",36),Yt(vZ,"DIVE_SPEED",13),Yt(vZ,"MAX_FLIGHT",130);
+ let _Z=vZ;
+ const bZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"flightTimer",0),Yt(this,"currentAngle",0),Yt(this,"targetX",0),Yt(this,"targetY",0)}
+ initializeTextureName(){
+ this.className=MV.CrowGuidedBall1,this.textureName=MV.DarkMageBall1}
+ initializeData(){
+ this.hitClassName="MagicalHitEffect",this.g=0,this.speed=10,this.flyEnd=4,this.incFrame=1,this.weaponScale=1.6}
+ setData(t=1){
+ super.setData(t),this.flightTimer=0,this.currentAngle=Math.atan2(this.vy,this.vx),this.visible=!0,this.removed=!1,this.sp&&this.sp.scale.set(1.6)}
+ calculateTrajectory(){
+ }
+ execute(){
+ if(this.removed)return;
+ if(this.flightTimer++,this.flightTimer>=t.LIFETIME)return void this.explode();
+ if(this.flightTimer>t.DRIFT_FRAMES){
+ let i=Math.atan2(this.targetY-this.y,this.targetX-this.x)-this.currentAngle;
+ for(;
+ i>Math.PI;
+ )i-=2*Math.PI;
+ for(;
+ i<-Math.PI;
+ )i+=2*Math.PI;
+ const s=Math.min(1,(this.flightTimer-t.DRIFT_FRAMES)/t.TURN_ACCEL_F),e=t.TURN_RATE_BASE+(t.TURN_RATE_MAX-t.TURN_RATE_BASE)*s,n=Math.max(-e,Math.min(e,i));
+ this.currentAngle+=n}
+ this.vx=Math.cos(this.currentAngle)*this.speed,this.vy=Math.sin(this.currentAngle)*this.speed,this.rotation=this.currentAngle,this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0);
+ const i=Math.floor(this.currentFrame);
+ if(this.sp&&i<this.textures.length&&(this.sp.texture=this.textures[i]),this.isOutOfField(260))return void this.explode();
+ const s=this.targetX-this.x,e=this.targetY-this.y;
+ s*s+e*e<=t.ARRIVE_DIST*t.ARRIVE_DIST&&this.explode()}
+ explode(){
+ const i=bV.getEffect(SH.AbyssSkillExplosion1);
+ if(i.scale.set(1.7),i.x=this.x,i.y=this.y,i.start(20),kB.getInstance().addChild(i),this.owner){
+ const i=t.EXPLODE_RANGE*t.EXPLODE_RANGE,s=[];
+ for(const t of this.owner.enemyList){
+ if(!t.isAlive||t.isUntagetable)continue;
+ const e=t.x-this.x,n=t.y-this.y;
+ e*e+n*n<=i&&s.push(t)}
+ s.sort((t,i)=>(t.x-this.x)**2+(t.y-this.y)**2-((i.x-this.x)**2+(i.y-this.y)**2));
+ const e=Math.min(t.EXPLODE_MAX,s.length);
+ for(let t=0;
+ t<e;
+ t++)this.owner.doDamage(s[t],this.damagePercent,!0)}
+ super.remove()}
+ remove(){
+ this.explode()}
+ }
+ ;
+ Xt(bZ,"CrowGuidedBall1"),Yt(bZ,"LIFETIME",120),Yt(bZ,"EXPLODE_RANGE",95),Yt(bZ,"EXPLODE_MAX",3),Yt(bZ,"ARRIVE_DIST",12),Yt(bZ,"DRIFT_FRAMES",6),Yt(bZ,"TURN_RATE_BASE",.05),Yt(bZ,"TURN_RATE_MAX",.11),Yt(bZ,"TURN_ACCEL_F",30);
+ let MZ=bZ;
+ const yZ=class t extends EV{
+ constructor(){
+ super(...arguments),Yt(this,"flightTimer",0)}
+ initializeTextureName(){
+ this.className=MV.CrowFeatherShot1,this.textureName=MV.CrowKnightBullet1,this.sheetName="Game1",this.scale.set(t.SCALE)}
+ initializeData(){
+ this.hitClassName="MagicalHitEffect",this.g=0,this.speed=14,this.flyEnd=1,this.incFrame=0,this.flightTimer=0}
+ setData(i=1){
+ super.setData(i),this.flightTimer=0,this.visible=!0,this.removed=!1,this.scale.set(t.SCALE)}
+ play(){
+ this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"MagicalHitEffect",(this.battleController||hli.getInstance()).addWeapon(this)}
+ calculateTrajectory(){
+ }
+ execute(){
+ if(this.removed)return;
+ if(this.flightTimer++,this.flightTimer>=t.LIFETIME)return void super.remove();
+ if(this.x+=this.vx,this.y+=this.vy,this.isOutOfField(260))return void super.remove();
+ if(!this.owner)return;
+ const i=t.HIT_RADIUS*t.HIT_RADIUS;
+ for(const t of this.owner.enemyList){
+ if(!t.isAlive||t.isUntagetable)continue;
+ const s=t.x-this.x,e=t.y-this.y;
+ if(s*s+e*e<=i)return this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),void super.remove()}
+ }
+ }
+ ;
+ Xt(yZ,"CrowFeatherShot1"),Yt(yZ,"LIFETIME",60),Yt(yZ,"HIT_RADIUS",14),Yt(yZ,"SCALE",.55);
+ let EZ=yZ;
+ var AZ=(t=>(t[t.NONE=0]="NONE",t[t.OrcHunter1_RANGEEVADE_BUFF=1]="OrcHunter1_RANGEEVADE_BUFF",t[t.OrcRapterRider1_MOVESPEED_DEBUFF=2]="OrcRapterRider1_MOVESPEED_DEBUFF",t[t.Succubus1_MOVESPEED_BUFF=3]="Succubus1_MOVESPEED_BUFF",t[t.Succubus1_ATTACKSPEED_BUFF=4]="Succubus1_ATTACKSPEED_BUFF",t[t.ScorpionPoisonBullet_MOVESPEED_DEBUFF=5]="ScorpionPoisonBullet_MOVESPEED_DEBUFF",t[t.ScorpionPoisonBullet_ATTACKSPEED_DEBUFF=6]="ScorpionPoisonBullet_ATTACKSPEED_DEBUFF",t[t.DrillSl1_PENETRATE_BUFF=11]="DrillSl1_PENETRATE_BUFF",t[t.DrillSl1_SKILL2_BUFF=12]="DrillSl1_SKILL2_BUFF",t[t.DrillSl1_SKILL3_BUFF=13]="DrillSl1_SKILL3_BUFF",t[t.DrillSl1_SKILL4_BUFF=14]="DrillSl1_SKILL4_BUFF",t[t.DrillSl1_ROSTER_BUFF=15]="DrillSl1_ROSTER_BUFF",t[t.BombSl1_SKILL2_BUFF=21]="BombSl1_SKILL2_BUFF",t[t.BombSl1_SKILL3_BUFF=22]="BombSl1_SKILL3_BUFF",t[t.BombSl1_SKILL4_BUFF=23]="BombSl1_SKILL4_BUFF",t[t.BombSl1_ROSTER_BUFF=24]="BombSl1_ROSTER_BUFF",t[t.NurSl1_SKILL2_BUFF=31]="NurSl1_SKILL2_BUFF",t[t.NurSl1_ROSTER_BUFF=32]="NurSl1_ROSTER_BUFF",t[t.MagmaSl1_SKILL2_BUFF=41]="MagmaSl1_SKILL2_BUFF",t[t.MagmaSl1_SKILL3_BUFF=42]="MagmaSl1_SKILL3_BUFF",t[t.MagmaSl1_ROSTER_BUFF=43]="MagmaSl1_ROSTER_BUFF",t[t.TreebarkSl1_SKILL2_BUFF=51]="TreebarkSl1_SKILL2_BUFF",t[t.TreebarkSl1_SKILL3_BUFF=52]="TreebarkSl1_SKILL3_BUFF",t[t.TreebarkSl1_ROSTER_BUFF=53]="TreebarkSl1_ROSTER_BUFF",t[t.IcespearSl1_SKILL2_BUFF=61]="IcespearSl1_SKILL2_BUFF",t[t.IcespearSl1_SKILL3_BUFF=62]="IcespearSl1_SKILL3_BUFF",t[t.IcespearSl1_SKILL4_BUFF=63]="IcespearSl1_SKILL4_BUFF",t[t.IcespearSl1_ROSTER_BUFF=64]="IcespearSl1_ROSTER_BUFF",t[t.VinewhipSl1_SKILL2_BUFF=71]="VinewhipSl1_SKILL2_BUFF",t[t.VinewhipSl1_SKILL3_BUFF=72]="VinewhipSl1_SKILL3_BUFF",t[t.VinewhipSl1_SKILL4_BUFF=73]="VinewhipSl1_SKILL4_BUFF",t[t.VinewhipSl1_ROSTER_BUFF=74]="VinewhipSl1_ROSTER_BUFF",t[t.FlamecannonSl1_SKILL2_BUFF=81]="FlamecannonSl1_SKILL2_BUFF",t[t.FlamecannonSl1_SKILL3_BUFF=82]="FlamecannonSl1_SKILL3_BUFF",t[t.FlamecannonSl1_SKILL4_BUFF=83]="FlamecannonSl1_SKILL4_BUFF",t[t.FlamecannonSl1_ROSTER_BUFF=84]="FlamecannonSl1_ROSTER_BUFF",t[t.IcebowSl1_SKILL2_BUFF=91]="IcebowSl1_SKILL2_BUFF",t[t.IcebowSl1_SKILL3_BUFF=92]="IcebowSl1_SKILL3_BUFF",t[t.IcebowSl1_SKILL4_BUFF=93]="IcebowSl1_SKILL4_BUFF",t[t.IcebowSl1_ROSTER_BUFF=94]="IcebowSl1_ROSTER_BUFF",t[t.FlowerSl1_SKILL2_BUFF=101]="FlowerSl1_SKILL2_BUFF",t[t.FlowerSl1_ROSTER_BUFF=102]="FlowerSl1_ROSTER_BUFF",t[t.HotpoolSl1_SKILL2_BUFF=111]="HotpoolSl1_SKILL2_BUFF",t[t.HotpoolSl1_ROSTER_BUFF=112]="HotpoolSl1_ROSTER_BUFF",t[t.HotpoolSl1_DAMAGE_BUFF=113]="HotpoolSl1_DAMAGE_BUFF",t[t.GlacierSl1_SKILL2_BUFF=114]="GlacierSl1_SKILL2_BUFF",t[t.GlacierSl1_SKILL3_BUFF=115]="GlacierSl1_SKILL3_BUFF",t[t.GlacierSl1_ROSTER_BUFF=116]="GlacierSl1_ROSTER_BUFF",t[t.GlacierSl1_SKILL4_BUFF=117]="GlacierSl1_SKILL4_BUFF",t[t.FladiatorSl1_SKILL2_BUFF=118]="FladiatorSl1_SKILL2_BUFF",t[t.FladiatorSl1_SKILL3_BUFF=119]="FladiatorSl1_SKILL3_BUFF",t[t.FladiatorSl1_SKILL4_BUFF=120]="FladiatorSl1_SKILL4_BUFF",t[t.FladiatorSl1_ROSTER_BUFF=121]="FladiatorSl1_ROSTER_BUFF",t[t.FladiatorSl1_CRTICAL_BUFF=122]="FladiatorSl1_CRTICAL_BUFF",t[t.ManaBloomSl1_SKILL2_BUFF=123]="ManaBloomSl1_SKILL2_BUFF",t[t.ManaBloomSl1_SKILL3_BUFF=124]="ManaBloomSl1_SKILL3_BUFF",t[t.ManaBloomSl1_SKILL4_BUFF=125]="ManaBloomSl1_SKILL4_BUFF",t[t.ManaBloomSl1_ROSTER_BUFF=126]="ManaBloomSl1_ROSTER_BUFF",t[t.ClearSl1_SKILL2_BUFF=127]="ClearSl1_SKILL2_BUFF",t[t.ClearSl1_ROSTER_BUFF=128]="ClearSl1_ROSTER_BUFF",t[t.SlimeRacing_DAMAGE_BUFF=129]="SlimeRacing_DAMAGE_BUFF",t[t.SlimeRacing_ATTACK_SPEED_BUFF=130]="SlimeRacing_ATTACK_SPEED_BUFF",t[t.SlimeRacing_MOVE_SPEED_BUFF=131]="SlimeRacing_MOVE_SPEED_BUFF",t[t.RACE_REVIVE_MOVE_SPEED_BUFF=132]="RACE_REVIVE_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_MOVE_SPEED_BUFF=133]="RACE_CHEERUP_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_ATTACK_SPEED_BUFF=134]="RACE_CHEERUP_ATTACK_SPEED_BUFF",t[t.EXCAVATION_ENCOUNTER_DEFENSE_BUFF=135]="EXCAVATION_ENCOUNTER_DEFENSE_BUFF",t[t.SteelbashSl1_SKILL2_BUFF=136]="SteelbashSl1_SKILL2_BUFF",t[t.SteelbashSl1_SKILL3_BUFF=137]="SteelbashSl1_SKILL3_BUFF",t[t.SteelbashSl1_ROSTER_BUFF=138]="SteelbashSl1_ROSTER_BUFF",t[t.FlamdancerSl1_SKILL2_BUFF=139]="FlamdancerSl1_SKILL2_BUFF",t[t.FlamdancerSl1_SKILL3_BUFF=140]="FlamdancerSl1_SKILL3_BUFF",t[t.FlamdancerSl1_ROSTER_BUFF=141]="FlamdancerSl1_ROSTER_BUFF",t[t.FrostreaverSl1_SKILL2_BUFF=142]="FrostreaverSl1_SKILL2_BUFF",t[t.FrostreaverSl1_SKILL3_BUFF=143]="FrostreaverSl1_SKILL3_BUFF",t[t.FrostreaverSl1_ROSTER_BUFF=144]="FrostreaverSl1_ROSTER_BUFF",t[t.ThornjaSl1_SKILL2_BUFF=145]="ThornjaSl1_SKILL2_BUFF",t[t.ThornjaSl1_SKILL3_BUFF=146]="ThornjaSl1_SKILL3_BUFF",t[t.ThornjaSl1_SKILL4_BUFF=147]="ThornjaSl1_SKILL4_BUFF",t[t.ThornjaSl1_ROSTER_BUFF=148]="ThornjaSl1_ROSTER_BUFF",t[t.RACE_MAPTYPE1_ATKSPD_BUFF=149]="RACE_MAPTYPE1_ATKSPD_BUFF",t[t.RACE_MAPTYPE1_MOVESPD_BUFF=150]="RACE_MAPTYPE1_MOVESPD_BUFF",t[t.GearbladeSl1_SKILL2_BUFF=151]="GearbladeSl1_SKILL2_BUFF",t[t.GearbladeSl1_SKILL3_BUFF=152]="GearbladeSl1_SKILL3_BUFF",t[t.GearbladeSl1_SKILL4_BUFF=153]="GearbladeSl1_SKILL4_BUFF",t[t.GearbladeSl1_ROSTER_BUFF=154]="GearbladeSl1_ROSTER_BUFF",t[t.EmbersageSl1_SKILL2_BUFF=155]="EmbersageSl1_SKILL2_BUFF",t[t.EmbersageSl1_ROSTER_BUFF=156]="EmbersageSl1_ROSTER_BUFF",t[t.TidecallerSl1_SKILL2_BUFF=157]="TidecallerSl1_SKILL2_BUFF",t[t.TidecallerSl1_ROSTER_BUFF=158]="TidecallerSl1_ROSTER_BUFF",t[t.GrovewardenSl1_SKILL2_BUFF=159]="GrovewardenSl1_SKILL2_BUFF",t[t.GrovewardenSl1_SKILL3_BUFF=160]="GrovewardenSl1_SKILL3_BUFF",t[t.GrovewardenSl1_ROSTER_BUFF=161]="GrovewardenSl1_ROSTER_BUFF",t[t.FrankenSl1_SKILL2_BUFF=162]="FrankenSl1_SKILL2_BUFF",t[t.FrankenSl1_ROSTER_BUFF=164]="FrankenSl1_ROSTER_BUFF",t[t.WolfSl1_SKILL2_BUFF=165]="WolfSl1_SKILL2_BUFF",t[t.WolfSl1_SKILL3_BUFF=166]="WolfSl1_SKILL3_BUFF",t[t.WolfSl1_SKILL4_BUFF=167]="WolfSl1_SKILL4_BUFF",t[t.WolfSl1_ROSTER_BUFF=168]="WolfSl1_ROSTER_BUFF",t[t.BatSl1_SKILL2_BUFF=169]="BatSl1_SKILL2_BUFF",t[t.BatSl1_SKILL3_BUFF=170]="BatSl1_SKILL3_BUFF",t[t.BatSl1_SKILL4_BUFF=171]="BatSl1_SKILL4_BUFF",t[t.BatSl1_ROSTER_BUFF=172]="BatSl1_ROSTER_BUFF",t[t.SkullSl1_SKILL2_BUFF=173]="SkullSl1_SKILL2_BUFF",t[t.SkullSl1_ROSTER_BUFF=174]="SkullSl1_ROSTER_BUFF",t[t.Bomber1_ATKSPD_BUFF=200]="Bomber1_ATKSPD_BUFF",t[t.Bomber1_MOVESPD_BUFF=201]="Bomber1_MOVESPD_BUFF",t[t.TigerRider1_ATKSPD_BUFF=210]="TigerRider1_ATKSPD_BUFF",t[t.TigerRider1_MOVESPD_BUFF=211]="TigerRider1_MOVESPD_BUFF",t[t.Sylphid1_ATKSPD_STACK=220]="Sylphid1_ATKSPD_STACK",t[t.WyvernRider1_ATKSPD_BUFF=230]="WyvernRider1_ATKSPD_BUFF",t[t.WyvernRider1_MOVESPD_BUFF=231]="WyvernRider1_MOVESPD_BUFF",t[t.WyvernRider1_ATKDMG_BUFF=232]="WyvernRider1_ATKDMG_BUFF",t[t.WingKnight1_FLASH_BUFF=240]="WingKnight1_FLASH_BUFF",t[t.WingKnight1_DASH_BUFF=241]="WingKnight1_DASH_BUFF",t[t.WingKnight1_BERSERK_ATKSPD=242]="WingKnight1_BERSERK_ATKSPD",t[t.WingKnight1_BERSERK_ATKDMG=243]="WingKnight1_BERSERK_ATKDMG",t[t.WingKnight1_FLASH_MOVSPD=244]="WingKnight1_FLASH_MOVSPD",t[t.WingKnight1_FLASH_ATKSPD=245]="WingKnight1_FLASH_ATKSPD",t[t.BladeMaster1_KILL_ATKSPD=250]="BladeMaster1_KILL_ATKSPD",t[t.BladeMaster1_KILL_ATKDMG=251]="BladeMaster1_KILL_ATKDMG",t[t.BladeMaster1_RANGE_ATKSPD=252]="BladeMaster1_RANGE_ATKSPD",t[t.BladeMaster1_MELEE_MOVESPD=253]="BladeMaster1_MELEE_MOVESPD",t[t.BladeMaster1_MELEE_ATKDMG=254]="BladeMaster1_MELEE_ATKDMG",t[t.BladeMaster1_RUSH_ATKSPD=255]="BladeMaster1_RUSH_ATKSPD",t[t.BladeMaster1_RUSH_MOVESPD=256]="BladeMaster1_RUSH_MOVESPD",t[t.BladeMaster1_BLINK_MOVESPD=257]="BladeMaster1_BLINK_MOVESPD",t[t.Aladin1_SAND_SLOW=260]="Aladin1_SAND_SLOW",t[t.Aladin1_BLESSING_ATKDMG=261]="Aladin1_BLESSING_ATKDMG",t[t.Druid1_VINE_ATKDMG=270]="Druid1_VINE_ATKDMG",t[t.Druid1_VINE_DEFENSE=271]="Druid1_VINE_DEFENSE",t[t.Druid1_VINE_ATKSPD=272]="Druid1_VINE_ATKSPD",t[t.CrowKnight1_ORBIT_ATKSPD=280]="CrowKnight1_ORBIT_ATKSPD",t[t.CrowKnight1_ORBIT_ATKDMG=281]="CrowKnight1_ORBIT_ATKDMG",t[t.Succubus2_CHARM_ATKSPD=290]="Succubus2_CHARM_ATKSPD",t[t.Succubus2_CHARM_MOVSPD=291]="Succubus2_CHARM_MOVSPD",t[t.FireSpirit1_JUGGLE_ATKSPD=292]="FireSpirit1_JUGGLE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKSPD=300]="RaidEmblemRogue_ACTIVE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKDMG=301]="RaidEmblemRogue_ACTIVE_ATKDMG",t[t.RaidEmblemMage_BOSS_ATKSPD=302]="RaidEmblemMage_BOSS_ATKSPD",t[t.RaidEmblemMage_BOSS_DEFENSE=303]="RaidEmblemMage_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_DEFENSE=304]="RaidWeakpoint_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_ATKSPD=305]="RaidWeakpoint_BOSS_ATKSPD",t[t.RaidWeakpoint_BOSS_MOVESPD=306]="RaidWeakpoint_BOSS_MOVESPD",t[t.RaidRune_ACTIVE_ATKSPD=310]="RaidRune_ACTIVE_ATKSPD",t[t.RaidRune_ACTIVE_ATKDMG=311]="RaidRune_ACTIVE_ATKDMG",t[t.RaidRune_PULSE_ATKDMG=312]="RaidRune_PULSE_ATKDMG",t[t.RaidRune_PULSE_ATKSPD=313]="RaidRune_PULSE_ATKSPD",t[t.RaidRune_PULSE_DEFENSE=314]="RaidRune_PULSE_DEFENSE",t[t.RaidRune_ALLOUT_ATKDMG=315]="RaidRune_ALLOUT_ATKDMG",t[t.RaidRune_ALLOUT_ATKSPD=316]="RaidRune_ALLOUT_ATKSPD",t[t.RaidRune_ACTIVE_CRIT=317]="RaidRune_ACTIVE_CRIT",t[t.RaidRune_BOSS_ATKSPD=320]="RaidRune_BOSS_ATKSPD",t[t.RaidRune_BOSS_DEFENSE=321]="RaidRune_BOSS_DEFENSE",t[t.RaidRune_BOSS_ATKDMG=322]="RaidRune_BOSS_ATKDMG",t[t.RaidRune_ARROW_DEFENSE=323]="RaidRune_ARROW_DEFENSE",t[t.RaidRune_COMBO_DEFENSE=324]="RaidRune_COMBO_DEFENSE",t[t.BURN_DEBUFF=1001]="BURN_DEBUFF",t[t.BLOODY_DEBUFF=1002]="BLOODY_DEBUFF",t[t.RACE_ROLETYPE_MOVE_SPEED_DEBUFF=1003]="RACE_ROLETYPE_MOVE_SPEED_DEBUFF",t[t.RACE_ROLETYPE_DAMAGE_DEBUFF=1004]="RACE_ROLETYPE_DAMAGE_DEBUFF",t[t.EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF=1005]="EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF",t[t.RACE_MAPTYPE2_DEBUFF=1006]="RACE_MAPTYPE2_DEBUFF",t[t.TidecallerSl1_SKILL2_DEBUFF=1007]="TidecallerSl1_SKILL2_DEBUFF",t[t.RAID_BOSS1_DEBUFF=1008]="RAID_BOSS1_DEBUFF",t[t.MOSSGOLEM_DEFENSE_BUFF=1009]="MOSSGOLEM_DEFENSE_BUFF",t[t.WarpLanding_ATTACKSPEED_BUFF=1100]="WarpLanding_ATTACKSPEED_BUFF",t))(AZ||{
+ }
+ );
+ const SZ=class t extends EV{
+ initializeTextureName(){
+ this.className=MV.ScorpionPoisonBullet,this.sheetName="RaidBattle",this.textureName="PoisonBullet"}
+ initializeData(){
+ this.hitClassName="",this.g=0,this.speed=18,this.flyEnd=2,this.incFrame=1,this.minT=8,this.maxT=42,this.orientToPath=!0,this.weaponScale=1}
+ onHit(){
+ this.owner&&this.target&&this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0),this.target.isAlive&&(this.target.poison(t.POISON_DEBUFF_DURATION),this.target.addMoveSpeedBuff(AZ.ScorpionPoisonBullet_MOVESPEED_DEBUFF,t.POISON_MOVE_SPEED_DEBUFF,t.POISON_DEBUFF_DURATION,!0),this.target.addAttackSpeedBuff(AZ.ScorpionPoisonBullet_ATTACKSPEED_DEBUFF,t.POISON_ATTACK_SPEED_DEBUFF,t.POISON_DEBUFF_DURATION,!0))),this.displayExplodeEffect(),this.remove()}
+ displayExplodeEffect(){
+ const t=bV.getEffect(SH.PoisonExplodeEffect);
+ t.x=this.x,t.y=this.y,t.setBattleController(this.battleController||hli.getInstance()),t.start(24),kB.getInstance().addChild(t)}
+ }
+ ;
+ Xt(SZ,"ScorpionPoisonBullet"),Yt(SZ,"POISON_DEBUFF_DURATION",420),Yt(SZ,"POISON_MOVE_SPEED_DEBUFF",-.5),Yt(SZ,"POISON_ATTACK_SPEED_DEBUFF",-.3);
+ let TZ=SZ;
+ const CZ=class t extends He{
+ constructor(){
+ super(),Yt(this,"g",new Ff),Yt(this,"radius",0),Yt(this,"aspectY",1),Yt(this,"fillColor",t.DEFAULT_FILL_COLOR),Yt(this,"strokeColor",t.DEFAULT_STROKE_COLOR),Yt(this,"fillAlphaScale",1),Yt(this,"crater",null),Yt(this,"craterTextures",[]),Yt(this,"fire",null),Yt(this,"fireTextures",[]),Yt(this,"craterTick",0),Yt(this,"craterOnly",!1),Yt(this,"fadeOutLeft",-1),Yt(this,"fadeOutTotal",0),this.eventMode="none",this.addChild(this.g)}
+ show(i,s,e,n=1){
+ this.x=i,this.y=s,this.radius=e,this.aspectY=n,this.fillColor=t.DEFAULT_FILL_COLOR,this.strokeColor=t.DEFAULT_STROKE_COLOR,this.fillAlphaScale=1,this.craterOnly=!1,this.fadeOutLeft=-1,this.fadeOutTotal=0,this.crater&&(this.crater.visible=!1),this.fire&&(this.fire.visible=!1),this.draw(.3,0),IB.getInstance().addChild(this)}
+ showCrater(){
+ if(this.craterOnly=!0,this.g.clear(),eS.hasSheet("RaidBattle")){
+ this.craterTextures=[];
+ for(let i=1;
+ i<=t.CRATER_FRAME_COUNT;
+ i++){
+ const t=eS.getTexture("RaidBattle",`Crater${
+ String(i).padStart(4,"0")}
+ `);
+ t&&this.craterTextures.push(t)}
+ if(0!==this.craterTextures.length){
+ this.crater||(this.crater=new Ve(this.craterTextures[0]),this.crater.anchor.set(.5),this.addChildAt(this.crater,0)),this.crater.texture=this.craterTextures[0],this.craterTick=0,this.crater.width=2*this.radius,this.crater.height=this.radius*this.aspectY*2,this.crater.alpha=0,this.crater.visible=!0,this.fireTextures=[];
+ for(let i=1;
+ i<=t.FIRE_FRAME_COUNT;
+ i++){
+ const t=eS.getTexture("RaidBattle",`FireArea${
+ String(i).padStart(4,"0")}
+ `);
+ t&&this.fireTextures.push(t)}
+ this.fireTextures.length>0&&(this.fire||(this.fire=new Ve(this.fireTextures[0]),this.fire.anchor.set(.5),this.addChildAt(this.fire,1)),this.fire.texture=this.fireTextures[0],this.fire.alpha=0,this.fire.visible=!0)}
+ }
+ }
+ setStyle(t,i,s=1){
+ this.fillColor=t,this.strokeColor=i,this.fillAlphaScale=s}
+ startFadeOut(t){
+ this.fadeOutLeft>=0||(this.fadeOutTotal=Math.max(1,t),this.fadeOutLeft=this.fadeOutTotal)}
+ update(i){
+ var s,e;
+ if(!this.craterOnly){
+ const t=Math.max(0,Math.min(1,i)),s=.22+.18*(.5+.5*Math.sin(t*Math.PI*8));
+ this.draw(s,t)}
+ if((null==(s=this.crater)?void 0:s.visible)&&this.craterTextures.length>0){
+ this.craterTick++;
+ const i=Math.floor(this.craterTick/t.CRATER_ANIM_DIV)%this.craterTextures.length;
+ this.crater.texture=this.craterTextures[i];
+ const s=Math.min(1,this.craterTick/t.CRATER_FADE_IN_FRAMES),n=1-(1-s)*(1-s);
+ let h=n;
+ const r=.92+.08*n;
+ if(this.crater.width=2*this.radius*r,this.crater.height=this.radius*this.aspectY*2*r,this.fadeOutLeft>=0&&(this.fadeOutLeft>0&&this.fadeOutLeft--,h=Math.min(h,this.fadeOutLeft/this.fadeOutTotal)),this.crater.alpha=h,(null==(e=this.fire)?void 0:e.visible)&&this.fireTextures.length>0){
+ const s=2*this.radius*r,e=this.radius*this.aspectY*2*r;
+ this.fire.texture=this.fireTextures[i%this.fireTextures.length],this.fire.width=s*t.FIRE_SCALE,this.fire.height=e*t.FIRE_SCALE,this.fire.x=s*t.FIRE_OFFSET_X_RATIO,this.fire.y=e*t.FIRE_OFFSET_Y_RATIO,this.fire.alpha=h}
+ }
+ }
+ draw(t,i){
+ const s=this.g,e=this.radius,n=this.radius*this.aspectY;
+ s.clear(),s.ellipse(0,0,e,n).fill({
+ color:this.fillColor,alpha:.5*t*this.fillAlphaScale}
+ ),s.ellipse(0,0,e,n).stroke({
+ width:4,color:this.strokeColor,alpha:.9}
+ ),i>0&&s.ellipse(0,0,e*i,n*i).stroke({
+ width:2,color:16777215,alpha:.55}
+ )}
+ dispose(){
+ this.g.clear(),this.crater&&(this.crater.visible=!1),this.fire&&(this.fire.visible=!1),this.parent&&this.parent.removeChild(this)}
+ }
+ ;
+ Xt(CZ,"RaidWarningCircle"),Yt(CZ,"CRATER_ASPECT_Y",65/148),Yt(CZ,"CRATER_FRAME_COUNT",20),Yt(CZ,"CRATER_ANIM_DIV",2),Yt(CZ,"CRATER_FADE_IN_FRAMES",24),Yt(CZ,"FIRE_FRAME_COUNT",8),Yt(CZ,"FIRE_SCALE",.8),Yt(CZ,"FIRE_OFFSET_X_RATIO",.024),Yt(CZ,"FIRE_OFFSET_Y_RATIO",-.047),Yt(CZ,"DEFAULT_FILL_COLOR",16719904),Yt(CZ,"DEFAULT_STROKE_COLOR",16732240);
+ let IZ=CZ;
+ const OZ=class t extends WQ{
+ constructor(){
FireSpirit1 1 hunks, 771 statements
+ const W0=class t extends A0{
+ constructor(){
+ super(),Yt(this,"skillActive",!1),Yt(this,"skillPhase",0),Yt(this,"phaseTimer",0),Yt(this,"destX",0),Yt(this,"destY",0),Yt(this,"rushMode",!1),Yt(this,"pillar",null),Yt(this,"rushTickTimer",0),Yt(this,"homeX",0),Yt(this,"homeY",0),Yt(this,"burnPoint",new _i(0,0)),Yt(this,"fireTrails",[]),Yt(this,"trailTickTimer",0),Yt(this,"orbiters",[]),Yt(this,"thrownWhirls",[]),Yt(this,"thrownAge",[]),Yt(this,"orbitAngle",[]),Yt(this,"orbitRad",[]),Yt(this,"orbitSpin",[]),Yt(this,"orbitHOff",[]),Yt(this,"orbitBob",[]),Yt(this,"orbitCatch",[]),Yt(this,"orbitBloom",[]),Yt(this,"orbitJoinT",[]),Yt(this,"orbitJoinX",[]),Yt(this,"orbitJoinY",[]),Yt(this,"orbitCenterX",0),Yt(this,"orbitCenterY",0),Yt(this,"orbitCenterInit",!1),Yt(this,"orbitPhase",0),Yt(this,"orbitThrowSign",1),Yt(this,"orbThrowSign",1),Yt(this,"relightTimer",0),Yt(this,"juggleStack",0),Yt(this,"overheatTimer",0),Yt(this,"juggleFreeze",0)}
+ initializeData(){
+ super.initializeData(),this.sheetName="Game2",this.className=fx.FireSpirit1,this.unitType=ax.RANGE,this.weaponClass=MV.FireAttack1,this.radius=7,this.hitHeight=27,this.uiTopOffset=11,this.idleFrames=new AH(0,35),this.moveFrames=new AH(36,67),this.attackFrames=new AH(68,99),this.skillFrames=new AH(100,178),this.dieFrames=new AH(179,194),this.objAtk={
+ 79:1}
+ ,this.objSkill={
+ 106:1}
+ ,this.firePoint.set(10,-20),this.hasSkill=!0,this.maxMana=460,this.normalSize=.8,this.evolSize=.85}
+ execute(){
+ !this.skillActive||this.isAlive&&!this.removed||(this.restoreBody(),this.skillActive=!1,this.skillPhase=0,this.phaseTimer=0),this.fireTrails.length&&this.updateFireTrails(),this.skillActive?this.rushMode?this.updateRush():this.updateSkill():super.execute()}
+ attackMain(){
+ this.throwOrb()}
+ throwWhirls(){
+ const i=this.target&&this.target.isAlive?this.target:this.getAttackableEnemyList(1)[0];
+ if(!i)return;
+ const s=this.battleController||hli.getInstance(),e=this.x+this.firePoint.x*this.direction,n=this.y+this.firePoint.y,h=Math.atan2(i.y-n,i.x-e);
+ this.lookAt(i.x-this.x);
+ const r=this.evolStage>=1?t.WHIRL_COUNT_E:t.WHIRL_COUNT,o=Math.round(t.WHIRL_RANGE/t.WHIRL_SPEED),a=r>1?t.WHIRL_SPREAD/(r-1):0,c=h-t.WHIRL_SPREAD/2;
+ for(let l=0;
+ l<r;
+ l++){
+ const i=(r>1?c+a*l:h)+this.random.range(-.05,t.WHIRL_JITTER),u=l*t.WHIRL_STAGGER_BACK,d=e-Math.cos(i)*u,f=n-Math.sin(i)*u,p=t0.getInstance().getWeapon(MV.FireTornado1);
+ p.owner=this,p.target=null,p.setBattleController(s),p.setData(t.WHIRL_DPS),p.initThrow(d,f,Math.cos(i),Math.sin(i),t.WHIRL_SPEED,o+Math.round(u/t.WHIRL_SPEED),!1,t.WHIRL_SCALE,t.WHIRL_HIT_R),p.boomHomeSlot=l,p.play()}
+ }
+ getOrbitHome(i){
+ if(i<0||i>=this.orbitRad.length)return null;
+ const s=1-t.ORBIT_RUSH_TIGHT*this.getJuggleRatio(),e=t.ORBIT_RX*this.orbitRad[i]*s,n=t.ORBIT_RY*this.orbitRad[i]*s,h=this.orbitAngle[i];
+ return{
+ x:this.orbitCenterX+Math.cos(h)*e,y:this.orbitCenterY+t.ORBIT_H+this.orbitHOff[i]+Math.sin(h)*n+Math.sin(this.orbitBob[i])*t.ORBIT_BOB}
+ }
+ getJuggleRatio(){
+ return Math.min(1,this.juggleStack/t.JUGGLE_MAX)}
+ updateOrbitCenter(){
+ if(!this.orbitCenterInit)return this.orbitCenterX=this.x,this.orbitCenterY=this.y,void(this.orbitCenterInit=!0);
+ const i=this.x-this.orbitCenterX,s=this.y-this.orbitCenterY;
+ if(i*i+s*s>t.ORBIT_LAG_MAX*t.ORBIT_LAG_MAX)return this.orbitCenterX=this.x,void(this.orbitCenterY=this.y);
+ this.orbitCenterX+=i*t.ORBIT_LAG,this.orbitCenterY+=s*t.ORBIT_LAG}
+ spawnCatchSpark(i,s){
+ const e=bV.getEffect(SH.FireSpiritExplosion1);
+ e.x=i,e.y=s,kB.getInstance().addChild(e),e.start(t.CATCH_SPARK_LIFE),e.scale.set(t.CATCH_SPARK_SCALE)}
+ scatterOrbiters(){
+ for(let i=0;
+ i<this.orbiters.length;
+ i++){
+ const s=this.orbiters[i];
+ if(this.orbiters[i]=null,this.orbitBloom[i]=0,!s||s.removed)continue;
+ const e=this.orbitAngle[i]??0;
+ s.scatter(Math.cos(e)*t.DEATH_SCATTER_SPD,Math.sin(e)*t.DEATH_SCATTER_SPD-1.2,t.DEATH_SCATTER_LIFE)}
+ }
+ getOrbitCount(){
+ return this.evolStage>=1?t.ORBIT_COUNT_E:t.ORBIT_COUNT}
+ ensureOrbiters(){
+ const i=this.getOrbitCount();
+ for(;
+ this.orbiters.length<i;
+ ){
+ const s=this.orbiters.length;
+ this.orbiters.push(null),this.thrownWhirls.push(null),this.thrownAge.push(0),this.orbitAngle.push(2*Math.PI/Math.max(1,i)*s),this.orbitRad.push(this.random.range(t.ORBIT_RAD_MIN,t.ORBIT_RAD_MAX)),this.orbitSpin.push(this.random.range(t.ORBIT_SPIN_MIN,t.ORBIT_SPIN_MAX)),this.orbitHOff.push(this.random.range(-13,t.ORBIT_H_VAR)),this.orbitBob.push(this.random.range(0,2*Math.PI)),this.orbitCatch.push(1),this.orbitBloom.push(t.BLOOM_FRAMES+t.BLOOM_STAGGER*s),this.orbitJoinT.push(0),this.orbitJoinX.push(0),this.orbitJoinY.push(0)}
+ if(!(this.relightTimer>0))for(let s=0;
+ s<i;
+ s++){
+ if(this.orbiters[s]||this.thrownWhirls[s])continue;
+ const i=bV.getEffect(SH.FireSpiritOrbit1);
+ kB.getInstance().addChild(i),i.x=this.orbitCenterX,i.y=this.orbitCenterY+t.ORBIT_H,i.start(1e5),i.scale.set(t.ORBIT_SCALE),i.setHeat(this.getJuggleRatio()),this.orbitBloom[s]>0&&(i.alpha=0),this.orbiters[s]=i}
+ }
+ updateOrbiters(){
+ if(!this.isAlive||this.removed)return void this.clearOrbiters();
+ this.updateOrbitCenter(),this.ensureOrbiters(),this.orbitPhase+=t.ORBIT_SPIN;
+ const i=this.getOrbitCount(),s=this.getJuggleRatio(),e=1+t.ORBIT_RUSH_SPIN*s,n=1-t.ORBIT_RUSH_TIGHT*s;
+ for(let h=0;
+ h<this.orbiters.length;
+ h++){
+ const r=t.ORBIT_RX*this.orbitRad[h]*n,o=t.ORBIT_RY*this.orbitRad[h]*n,a=this.orbitCenterY+t.ORBIT_H+this.orbitHOff[h],c=this.thrownWhirls[h];
+ if(c){
+ this.orbitAngle[h]+=t.ORBIT_SPIN*this.orbitSpin[h]*e,this.orbitBob[h]+=t.ORBIT_BOB_SPEED*this.orbitSpin[h];
+ const i=++this.thrownAge[h]>t.BOOM_TIMEOUT;
+ if(c.removed||i){
+ if(c.boomConsumed)this.orbitBloom[h]=t.BLOOM_FRAMES+t.BLOOM_STAGGER*h;
+ else{
+ this.orbitBloom[h]=0,this.orbitCatch[h]=t.CATCH_SETTLE;
+ const i=this.getOrbitHome(h);
+ i&&(this.orbitJoinX[h]=c.x-i.x,this.orbitJoinY[h]=c.y-i.y,this.orbitJoinT[h]=t.JOIN_BLEND)}
+ c.removed||c.remove(),this.thrownWhirls[h]=null,this.thrownAge[h]=0}
+ continue}
+ const l=this.orbiters[h];
+ if(!l)continue;
+ if(l.removed){
+ this.orbiters[h]=null;
+ continue}
+ if(h>=i){
+ const i=this.orbitAngle[h]??0;
+ this.orbitBloom[h]=0,l.scatter(Math.cos(i)*t.DEATH_SCATTER_SPD,Math.sin(i)*t.DEATH_SCATTER_SPD-1.2,t.DEATH_SCATTER_LIFE),this.orbiters[h]=null;
+ continue}
+ let u=1,d=1;
+ if(this.orbitBloom[h]>0){
+ this.orbitBloom[h]--;
+ const i=1-Math.min(1,this.orbitBloom[h]/t.BLOOM_FRAMES);
+ u=i*i*(3-2*i),d=1+(1-u)*t.BLOOM_SPIN,i>0&&this.orbitBloom[h]===t.BLOOM_FRAMES-1&&this.spawnCatchSpark(this.orbitCenterX,a)}
+ 1!==this.orbitCatch[h]&&(this.orbitCatch[h]=1+(this.orbitCatch[h]-1)*t.CATCH_SETTLE_EASE,Math.abs(this.orbitCatch[h]-1)<.02&&(this.orbitCatch[h]=1));
+ const f=t.ORBIT_SPIN*this.orbitSpin[h]*e;
+ this.orbitAngle[h]+=f*this.orbitCatch[h]*d,this.orbitBob[h]+=t.ORBIT_BOB_SPEED*this.orbitSpin[h],l.setHeat(s);
+ const p=this.orbitAngle[h],g=Math.sin(p),m=t.BLOOM_START_RAD+(1-t.BLOOM_START_RAD)*u;
+ if(l.x=this.orbitCenterX+Math.cos(p)*r*m,l.y=a+g*o*m+Math.sin(this.orbitBob[h])*t.ORBIT_BOB*u,this.orbitJoinT[h]>0){
+ this.orbitJoinT[h]--;
+ const i=this.orbitJoinT[h]/t.JOIN_BLEND,s=i*i*(3-2*i);
+ l.x+=this.orbitJoinX[h]*s,l.y+=this.orbitJoinY[h]*s}
+ l.alpha=u,l.scale.set(t.ORBIT_SCALE*(1+g*t.ORBIT_DEPTH)*(t.BLOOM_START_SCL+(1-t.BLOOM_START_SCL)*u))}
+ }
+ pickOrbitSlot(t,i){
+ const s=this.getOrbitCount();
+ let e=-1,n=1/0;
+ for(let h=0;
+ h<s;
+ h++){
+ const s=this.orbiters[h];
+ if(!s||this.thrownWhirls[h])continue;
+ const r=s.x-t,o=s.y-i,a=r*r+o*o;
+ a<n&&(n=a,e=h)}
+ return e}
+ launchOrbiter(i,s,e,n=0,h=0,r=0){
+ const o=this.orbiters[i],a=o?o.x:this.x,c=o?o.y:this.y+t.ORBIT_H;
+ o&&!o.removed&&o.remove(),this.orbiters[i]=null;
+ const l=this.battleController||hli.getInstance(),u=t0.getInstance().getWeapon(MV.FireTornado1);
+ u.owner=this,u.target=null,u.setBattleController(l),u.setData(e?t.SKILL_BOOM_DPS:t.BOOM_DPS),u.initBoomerang(a,c,s,e?t.SKILL_BOOM_SPEED:t.BOOM_SPEED,e?t.SKILL_BOOM_CURVE:t.BOOM_CURVE,this.orbitThrowSign,e?t.SKILL_BOOM_SCALE:t.BOOM_SCALE,e?t.SKILL_BOOM_HIT_R:t.BOOM_HIT_R,e?t.SKILL_BOOM_SCALE_Y:t.BOOM_SCALE_Y,e?t.SKILL_BOOM_HOPS:0,e?t.SKILL_OVERSHOOT:t.BOOM_OVERSHOOT,(e?t.SKILL_MIN_TRAVEL:t.BOOM_MIN_TRAVEL)*(1+.18*n),e?t.SKILL_BOOM_GROW:t.BOOM_GROW,h,r,t.ORBIT_SCALE,e?t.SKILL_MAX_TARGETS:t.BOOM_MAX_TARGETS,e,e?t.SKILL_ARM_FRAMES:0,e?t.SKILL_MAX_TRAVEL:0),e&&u.setExplodePower(t.SKILL_EXP_DMG,t.SKILL_EXP_RADIUS,t.SKILL_EXP_BURN,t.SKILL_EXP_SCALE),u.play(),this.orbitThrowSign=-this.orbitThrowSign,this.thrownWhirls[i]=u,this.thrownAge[i]=0}
+ throwOrbiter(){
+ const i=this.target&&this.target.isAlive?this.target:this.getAttackableEnemyList(1)[0];
+ if(!i)return;
+ this.lookAt(i.x-this.x),this.ensureOrbiters();
+ const s=this.pickOrbitSlot(i.x,i.y);
+ s<0?this.attackCoolDown=Math.min(this.attackCoolDown,t.EMPTY_RETRY):(this.launchOrbiter(s,i,!1),this.addJuggleStack())}
+ addJuggleStack(){
+ this.juggleStack>=t.JUGGLE_MAX||(this.juggleStack++,this.addAttackSpeedBuff(AZ.FireSpirit1_JUGGLE_ATKSPD,this.juggleStack*t.JUGGLE_PER,t.JUGGLE_BUFF_DUR,!0),this.juggleStack>=t.JUGGLE_MAX&&(this.overheatTimer=t.OVERHEAT_HOLD))}
+ updateJuggle(){
+ this.juggleFreeze>0?this.juggleFreeze--:this.overheatTimer<=0||--this.overheatTimer>0||(this.juggleStack=0,this.removeAttackSpeedBuff(AZ.FireSpirit1_JUGGLE_ATKSPD))}
+ updateRelight(){
+ this.relightTimer>0&&this.relightTimer--}
+ throwAllOrbiters(){
+ this.ensureOrbiters();
+ const i=this.getOrbitCount(),s=[];
+ for(let t=0;
+ t<i;
+ t++)this.orbiters[t]&&!this.thrownWhirls[t]&&s.push(t);
+ if(0===s.length)return;
+ const e=this.enemyCentroidDir(),n=e?Math.atan2(e.y,e.x):this.direction>=0?0:Math.PI,h=s.length,r=Math.PI/h*t.SKILL_SECTOR_PAD;
+ for(let t=0;
+ t<h;
+ t++){
+ const i=n+2*Math.PI/h*t,e=this.pickBoomerangTarget(this.x,this.y,null,i,r);
+ this.orbitThrowSign=t%2==0?1:-1,this.launchOrbiter(s[t],e,!0,t,i,r)}
+ this.relightTimer=t.RELIGHT_DELAY,this.juggleFreeze=t.JUGGLE_FREEZE}
+ pickBoomerangTarget(i,s,e,n=0,h=0){
+ const r=this.getEnemiesAtPos(i,s,t.SKILL_HOP_RANGE,0,!0);
+ let o=null,a=1/0;
+ for(const t of r){
+ if(!t||!t.isAlive||t===e)continue;
+ if(h>0){
+ const i=Math.atan2(t.y-this.y,t.x-this.x);
+ if(Math.abs(Math.atan2(Math.sin(i-n),Math.cos(i-n)))>h)continue}
+ const r=t.x-i,c=t.y-s,l=r*r+c*c;
+ l<a&&(a=l,o=t)}
+ return o}
+ clearOrbiters(){
+ for(let t=0;
+ t<this.orbiters.length;
+ t++){
+ const i=this.orbiters[t];
+ i&&!i.removed&&i.remove(),this.orbiters[t]=null;
+ const s=this.thrownWhirls[t];
+ s&&!s.removed&&s.remove(),this.thrownWhirls[t]=null,this.thrownAge[t]=0}
+ }
+ pickOrbNextTarget(i,s,e){
+ let n=null,h=1/0;
+ for(const r of this.getEnemiesAtPos(i,s,t.ORB_CHILD_RANGE,0,!0)){
+ if(!r||!r.isAlive||r===e)continue;
+ const t=(r.x-i)**2+(r.y-s)**2;
+ t<h&&(h=t,n=r)}
+ return n}
+ getSplitCount(){
+ return this.evolStage>=1?t.ORB_SPLIT_E:t.ORB_SPLIT}
+ throwOrb(){
+ const i=[];
+ for(const r of this.getAttackableEnemyList(4*t.ORB_SHOTS))r&&r.isAlive&&!r.isUntagetable&&i.push(r);
+ if(0===i.length)return;
+ i.sort((t,i)=>(t.x-this.x)**2+(t.y-this.y)**2-((i.x-this.x)**2+(i.y-this.y)**2)),this.lookAt(i[0].x-this.x);
+ const s=this.pickSpreadTargets(i,t.ORB_SHOTS),e=s.length>1&&s[0]===s[1],n=this.x+this.firePoint.x*this.direction,h=this.y+this.firePoint.y;
+ for(let r=0;
+ r<s.length;
+ r++){
+ const i=s[r];
+ i&&i.isAlive&&this.launchOrb(n,h,i,t.ORB_DMG,!0,!1,0,e)}
+ }
+ pickSpreadTargets(t,i){
+ const s=[],e=[],n=new Set;
+ for(let r=0;
+ r<i;
+ r++){
+ let i=null,h=-1;
+ for(const s of t){
+ if(n.has(s))continue;
+ const t=Math.atan2(s.y-this.y,s.x-this.x);
+ let r=Math.PI;
+ for(const i of e){
+ const s=Math.abs(Math.atan2(Math.sin(t-i),Math.cos(t-i)));
+ s<r&&(r=s)}
+ r>h&&(h=r,i=s)}
+ if(!i)break;
+ n.add(i),s.push(i),e.push(Math.atan2(i.y-this.y,i.x-this.x))}
+ const h=s.length;
+ if(0===h)return s;
+ for(;
+ s.length<i;
+ )s.push(s[s.length%h]);
+ return s}
+ launchOrb(i,s,e,n,h,r,o=0,a=!1){
+ const c=this.battleController||hli.getInstance(),l=t0.getInstance().getWeapon(MV.FireOrb1);
+ l.owner=this,l.target=null,l.setBattleController(c),l.setData(n),l.initializeData(),l.initOrb(i,s,e,t.ORB_SPEED,n,h,this.orbThrowSign,r,r?t.ORB_SCALE_CHILD:t.ORB_SCALE_MAIN,o,t.ORB_HOME_DIST,n,a),l.play(),this.orbThrowSign=-this.orbThrowSign}
+ spawnOrbSplit(i,s,e,n){
+ const h=this.getSplitCount(),r=[];
+ for(const d of this.getEnemiesAtPos(i,s,t.ORB_CHILD_RANGE,0,!0))d&&d.isAlive&&d!==e&&r.push(d);
+ if(0===r.length)for(const t of this.getAttackableEnemyList(h+1,!1))t&&t.isAlive&&t!==e&&r.push(t);
+ r.sort((t,e)=>(t.x-i)**2+(t.y-s)**2-((e.x-i)**2+(e.y-s)**2));
+ const o=[];
+ for(const t of r)if(o.push(t),o.length>=h)break;
+ for(;
+ o.length<h;
+ )o.push(e??null);
+ const a=h>1?t.ORB_SPREAD_ARC/(h-1):0,c=n-t.ORB_SPREAD_ARC/2,l=h>1?-.3:0,u=h>1?2*t.ORB_SPREAD_KICK/(h-1):0;
+ for(let d=0;
+ d<h;
+ d++){
+ const r=o[d],f=r?Math.atan2(r.y-s,r.x-i)+l+u*d:h>1?c+a*d:n;
+ this.orbThrowSign=d%2==0?1:-1;
+ const p=o[d]===e?t.ORB_CHILD_REPEAT:t.ORB_CHILD_DMG;
+ this.launchOrb(i,s,o[d],p,!1,!0,f)}
+ return!0}
+ onOrbReturned(t,i){
+ }
+ startOrbSkill(){
+ const i=this.evolStage>=1?t.ORB_SCATTER_E:t.ORB_SCATTER,s=this.enemyCentroidDir(),e=s?Math.atan2(s.y,s.x):this.direction>=0?0:Math.PI,n=this.x,h=this.y+t.ORB_H,r=i>1?(t.ORB_SC_SPD_MAX-t.ORB_SC_SPD_MIN)/(i-1):0,o=2*Math.PI/i,a=2*Math.PI,c=new Array(i).fill(null),l=new Array(i).fill(1/0);
+ for(const u of this.getEnemiesAtPos(n,h,t.ORB_SC_AIM_R,0,!0)){
+ if(!u||!u.isAlive||u.isUntagetable)continue;
+ let t=Math.atan2(u.y-h-.5*u.hitHeight,u.x-n)-e+o/2;
+ t=(t%a+a)%a;
+ const s=Math.min(i-1,Math.floor(t/o)),r=(u.x-n)**2+(u.y-h)**2;
+ r<l[s]&&(l[s]=r,c[s]=u)}
+ for(let u=0;
+ u<i;
+ u++){
+ let s,a;
+ const l=c[u];
+ if(l){
+ const i=l.x-n,e=l.y-h-.5*l.hitHeight,r=Math.max(1,Math.sqrt(i*i+e*e)),o=t.ORB_SC_JITTER*t.ORB_SC_AIM_JIT;
+ s=Math.atan2(e,i)+this.random.range(-o,o),a=Math.max(t.ORB_SC_SPD_MIN,Math.min(t.ORB_SC_SPD_MAX,r/t.ORB_FUSE))}
+ else s=e+o*u+this.random.range(-.16,t.ORB_SC_JITTER),a=t.ORB_SC_SPD_MIN+r*(u%2==0?u:i-1-u);
+ const d=this.battleController||hli.getInstance(),f=t0.getInstance().getWeapon(MV.FireOrb1);
+ f.owner=this,f.target=null,f.setBattleController(d),f.setData(t.ORB_BLAST_DMG),f.initializeData(),f.initScatter(n,h,s,a,t.ORB_FUSE,t.ORB_BLAST_DMG,t.ORB_BLAST_R,t.ORB_BLAST_BURN,t.ORB_BURN_DUR,t.ORB_BURN_INT,t.ORB_BURN_ID,t.ORB_SC_SCALE,t.ORB_SC_ARM),f.play()}
+ }
+ skillMain(){
+ this.startOrbSkill()}
+ castSupernova(){
+ const i=this.aimSupernovaCenter();
+ this.lookAt(i.x-this.x),this.mana=0;
+ const s=this.evolStage>=1?t.SUPER_COUNT_E:t.SUPER_COUNT,e=2*Math.PI/s;
+ for(let n=0;
+ n<s;
+ n++){
+ const s=t0.getInstance().getWeapon(MV.FireTornado1);
+ s.owner=this,s.target=null,s.setBattleController(this.battleController||hli.getInstance()),s.setData(t.SUPER_DPS),s.initSpiral(i.x,i.y,e*n,t.SUPER_SPIN,t.SUPER_OUTER_R,t.SUPER_INNER_R,t.SUPER_LIFE,t.SUPER_ARRIVE),s.play()}
+ }
+ aimSupernovaCenter(){
+ const i=this.enemyCentroidDir();
+ if(!i){
+ const i=this.direction>=0?1:-1;
+ return{
+ x:this.x+i*t.SUPER_RANGE,y:this.y}
+ }
+ const s=Math.min(t.SUPER_RANGE,i.dist);
+ return{
+ x:this.x+i.x*s,y:this.y+i.y*s}
+ }
+ castFirestorm(){
+ const i=this.battleController||hli.getInstance(),s=this.x+this.firePoint.x*this.direction,e=this.y+this.firePoint.y,n=this.evolStage>=1?t.STORM_COUNT_E:t.STORM_COUNT,h=Math.round(t.STORM_RANGE/t.STORM_SPEED),r=2*Math.PI/n,o=this.random.next()*Math.PI*2;
+ for(let a=0;
+ a<n;
+ a++){
+ const n=o+r*a+this.random.range(-.1,t.STORM_JITTER),c=t0.getInstance().getWeapon(MV.FireTornado1);
+ c.owner=this,c.target=null,c.setBattleController(i),c.setData(t.STORM_DPS),c.initThrow(s,e,Math.cos(n),Math.sin(n),t.STORM_SPEED,h,!1,t.STORM_SCALE,t.STORM_HIT_R,t.STORM_TRAIL_STEP,t.STORM_SCALE_Y),c.play()}
+ }
+ onFireTrail(i,s){
+ this.fireTrails.length>=t.TRAIL_MAX&&this.fireTrails.shift(),this.fireTrails.push({
+ x:i,y:s,life:t.TRAIL_LIFE}
+ );
+ const e=bV.getEffect(SH.FireSpiritEmber1);
+ e.x=i,e.y=s,kB.getInstance().addChild(e),e.start(t.TRAIL_LIFE),e.scale.set(t.TRAIL_SCALE)}
+ updateFireTrails(){
+ let i=0;
+ for(const t of this.fireTrails)--t.life>0&&(this.fireTrails[i++]=t);
+ if(this.fireTrails.length=i,0===i)return;
+ if(--this.trailTickTimer>0)return;
+ if(this.trailTickTimer=t.TRAIL_TICK,!this.isAlive)return;
+ const s=new Set,e=t.TRAIL_RADIUS;
+ for(const n of this.fireTrails){
+ const i=this.getEnemiesAtPos(n.x,n.y,e,0,!1);
+ for(const e of i)e&&e.isAlive&&!s.has(e)&&(s.add(e),this.doDamage(e,t.TRAIL_DMG,!0))}
+ }
+ startRush(){
+ if(this.skillActive)return;
+ const i=this.enemyCentroidDir();
+ if(i){
+ const s=Math.min(t.RUSH_RANGE,i.dist);
+ this.destX=this.x+i.x*s,this.destY=this.y+i.y*s,this.lookAt(i.x)}
+ else{
+ const i=this.direction>=0?1:-1;
+ this.destX=this.x+i*t.RUSH_RANGE,this.destY=this.y}
+ this.homeX=this.x,this.homeY=this.y,this.mana=0,this.sp&&(this.sp.visible=!1),this.shadow&&(this.shadow.visible=!1),this.spawnPillar(),this.skillActive=!0,this.rushMode=!0,this.skillPhase=1,this.phaseTimer=t.RUSH_MORPH_FRAMES,this.rushTickTimer=0}
+ spawnPillar(){
+ const i=bV.getEffect(SH.FireSpiritPillar1);
+ i.x=this.x,i.y=this.y,kB.getInstance().addChild(i),i.start(1e5),i.scale.set(t.RUSH_PILLAR_SCALE),this.pillar=i}
+ updateRush(){
+ var i,s;
+ if(this.isAlive)switch(this.pillar&&!this.pillar.removed&&(this.pillar.x=this.x,this.pillar.y=this.y),null==(i=this.updateActiveBuff)||i.call(this),null==(s=this.updateDotDamage)||s.call(this),this.skillPhase){
+ case 1:--this.phaseTimer<=0&&(this.skillPhase=2,this.phaseTimer=t.RUSH_MAX_FRAMES);
+ break;
+ case 2:this.sweepBurn(),(this.moveToward(this.destX,this.destY,t.RUSH_SPEED)||--this.phaseTimer<=0)&&(this.skillPhase=3,this.phaseTimer=t.RUSH_STAY_FRAMES);
+ break;
+ case 3:this.sweepBurn(),--this.phaseTimer<=0&&(this.skillPhase=4,this.phaseTimer=t.RUSH_BACK_MAX);
+ break;
+ default:this.sweepBurn(),(this.moveToward(this.homeX,this.homeY,t.RUSH_BACK_SPEED)||--this.phaseTimer<=0)&&this.endRush()}
+ else this.endRush()}
+ moveToward(i,s,e){
+ const n=i-this.x,h=s-this.y,r=Math.sqrt(n*n+h*h);
+ return r<=t.RUSH_ARRIVE_DIST||(this.x+=n/r*e,this.y+=h/r*e,Math.abs(n)>1&&this.lookAt(n),!1)}
+ sweepBurn(){
+ if(--this.rushTickTimer>0)return;
+ this.rushTickTimer=t.RUSH_TICK;
+ const i=this.getEnemiesAtPos(this.x,this.y,t.RUSH_HIT_RADIUS,0,!0);
+ if(0===i.length)return;
+ const s=this.atkDmg*t.RUSH_BURN_TICK;
+ for(const e of i)e&&e.isAlive&&(this.doDamage(e,t.RUSH_TICK_DMG,!0),e.isAlive&&(e.addDotDamage(s,t.RUSH_BURN_DURATION,t.RUSH_BURN_INTERVAL,this,t.RUSH_BURN_DOT_ID),e.burn(Math.floor(t.RUSH_BURN_DURATION/2),this)))}
+ endRush(){
+ this.skillActive=!1,this.rushMode=!1,this.skillPhase=0,this.rushTickTimer=0,this.pillar&&(this.pillar.removed||this.pillar.fadeOut(),this.pillar=null),this.restoreBody(),this.tx=this.x,this.ty=this.y}
+ startSkill(){
+ if(this.skillActive)return;
+ const i=this.aimGatherPoint();
+ this.destX=this.x+i.x*i.dist,this.destY=this.y+i.y*i.dist,this.lookAt(i.x),this.isUntagetable=!0,this.sp&&(this.sp.visible=!1),this.shadow&&(this.shadow.visible=!1),this.mana=0,this.spawnRing(this.x,this.y,!0,t.SCATTER_FRAMES),this.skillActive=!0,this.skillPhase=1,this.phaseTimer=t.SCATTER_FRAMES}
+ updateSkill(){
+ this.phaseTimer--,this.phaseTimer>0||(1===this.skillPhase?(this.skillPhase=2,this.phaseTimer=t.GAP_FRAMES):2===this.skillPhase?(this.x=this.destX,this.y=this.destY,this.spawnRing(this.destX,this.destY,!1,t.GATHER_FRAMES),this.skillPhase=3,this.phaseTimer=t.GATHER_FRAMES):this.endSkill())}
+ endSkill(){
+ this.skillActive=!1,this.skillPhase=0,this.restoreBody(),this.tx=this.x,this.ty=this.y,this.gotoIdleState()}
+ restoreBody(){
+ this.isUntagetable=!1,this.sp&&(this.sp.visible=!0),this.shadow&&(this.shadow.visible=!0)}
+ spawnRing(i,s,e,n){
+ const h=this.evolStage>=1?t.TORNADO_COUNT_E:t.TORNADO_COUNT,r=e?t.INNER_RADIUS:t.GATHER_START_RADIUS,o=e?t.SPREAD_RADIUS:t.GATHER_END_RADIUS,a=e?t.SCATTER_SPIN:t.GATHER_SPIN,c=2*Math.PI/h;
+ for(let l=0;
+ l<h;
+ l++){
+ const e=t0.getInstance().getWeapon(MV.FireTornado1);
+ e.owner=this,e.target=null,e.setBattleController(this.battleController||hli.getInstance()),e.setData(t.TORNADO_DPS),e.initSpiral(i,s,c*l,a,r,o,n),e.play()}
+ }
+ aimGatherPoint(){
+ const i=this.enemyCentroidDir();
+ if(!i)return{
+ x:this.direction>=0?1:-1,y:0,dist:t.GATHER_DIST}
+ ;
+ const s=Math.min(t.GATHER_DIST,Math.max(t.MIN_GATHER_DIST,i.dist));
+ return{
+ x:i.x,y:i.y,dist:s}
+ }
+ enemyCentroidDir(){
+ let t=0,i=0,s=0;
+ for(const r of this.enemyList){
+ if(!r||!r.isAlive||r.isUntagetable)continue;
+ const e=r.x-this.x,n=r.y-this.y;
+ e*e+n*n>25e4||(t+=r.x,i+=r.y,s++)}
+ if(0===s)return null;
+ const e=t/s-this.x,n=i/s-this.y,h=Math.sqrt(e*e+n*n)||1;
+ return{
+ x:e/h,y:n/h,dist:h}
+ }
+ releaseAttachments(){
+ this.clearOrbiters(),this.orbiters.length=0,this.thrownWhirls.length=0,this.thrownAge.length=0,this.orbitAngle.length=0,this.orbitRad.length=0,this.orbitSpin.length=0,this.orbitHOff.length=0,this.orbitBob.length=0,this.orbitCatch.length=0,this.orbitBloom.length=0,this.orbitJoinT.length=0,this.orbitJoinX.length=0,this.orbitJoinY.length=0,this.orbitCenterInit=!1,this.fireTrails.length=0,this.trailTickTimer=0,this.pillar&&(this.pillar.removed||this.pillar.remove(),this.pillar=null),this.restoreBody()}
+ resetBattleState(){
+ this.skillActive=!1,this.skillPhase=0,this.phaseTimer=0,this.rushMode=!1,this.rushTickTimer=0,this.orbThrowSign=1,this.juggleStack=0,this.overheatTimer=0,this.juggleFreeze=0,this.relightTimer=0}
+ setData(t,i=1,s=1,e=1){
+ super.setData(t,i,s,e),this.releaseAttachments(),this.resetBattleState()}
+ remove(){
+ this.releaseAttachments(),this.removeAttackSpeedBuff(AZ.FireSpirit1_JUGGLE_ATKSPD),super.remove()}
+ onDie(){
+ super.onDie(),this.scatterOrbiters(),this.clearOrbiters(),this.skillActive=!1,this.skillPhase=0,this.phaseTimer=0,this.restoreBody()}
+ resetForPool(){
+ super.resetForPool(),this.skillActive=!1,this.skillPhase=0,this.phaseTimer=0,this.rushMode=!1,this.rushTickTimer=0,this.fireTrails.length=0,this.trailTickTimer=0,this.orbThrowSign=1,this.clearOrbiters(),this.orbiters.length=0,this.thrownWhirls.length=0,this.thrownAge.length=0,this.orbitAngle.length=0,this.orbitRad.length=0,this.orbitSpin.length=0,this.orbitHOff.length=0,this.orbitBob.length=0,this.orbitCatch.length=0,this.orbitBloom.length=0,this.orbitJoinT.length=0,this.orbitJoinX.length=0,this.orbitJoinY.length=0,this.orbitCenterInit=!1,this.orbitPhase=0,this.orbitThrowSign=1,this.juggleStack=0,this.overheatTimer=0,this.juggleFreeze=0,this.relightTimer=0,this.pillar&&(this.pillar.removed||this.pillar.remove(),this.pillar=null),this.restoreBody()}
+ }
+ ;
+ Xt(W0,"FireSpirit1"),Yt(W0,"SKILL_MODE",6),Yt(W0,"BASIC_MODE",4),Yt(W0,"BASIC_SHOTS",3),Yt(W0,"BASIC_SHOT_DELAY",3),Yt(W0,"WHIRL_COUNT",3),Yt(W0,"WHIRL_COUNT_E",4),Yt(W0,"WHIRL_SPREAD",.34),Yt(W0,"WHIRL_SPEED",3.4),Yt(W0,"WHIRL_RANGE",210),Yt(W0,"WHIRL_DPS",.5),Yt(W0,"WHIRL_SCALE",.45),Yt(W0,"WHIRL_HIT_R",26),Yt(W0,"WHIRL_STAGGER_BACK",16),Yt(W0,"WHIRL_JITTER",.05),Yt(W0,"STORM_COUNT",10),Yt(W0,"STORM_COUNT_E",12),Yt(W0,"STORM_SPEED",3),Yt(W0,"STORM_RANGE",330),Yt(W0,"STORM_SCALE",.85),Yt(W0,"STORM_SCALE_Y",1.45),Yt(W0,"STORM_HIT_R",42),Yt(W0,"STORM_DPS",.7),Yt(W0,"STORM_JITTER",.1),Yt(W0,"STORM_TRAIL_STEP",62),Yt(W0,"TRAIL_LIFE",150),Yt(W0,"TRAIL_RADIUS",34),Yt(W0,"TRAIL_TICK",30),Yt(W0,"TRAIL_DMG",.12),Yt(W0,"TRAIL_MAX",60),Yt(W0,"TRAIL_SCALE",.75),Yt(W0,"RUSH_MORPH_FRAMES",12),Yt(W0,"RUSH_SPEED",5.2),Yt(W0,"RUSH_MAX_FRAMES",70),Yt(W0,"RUSH_STAY_FRAMES",40),Yt(W0,"RUSH_BACK_SPEED",6.5),Yt(W0,"RUSH_BACK_MAX",70),Yt(W0,"RUSH_RANGE",300),Yt(W0,"RUSH_ARRIVE_DIST",14),Yt(W0,"RUSH_HIT_RADIUS",52),Yt(W0,"RUSH_TICK",12),Yt(W0,"RUSH_TICK_DMG",.45),Yt(W0,"RUSH_PILLAR_SCALE",1),Yt(W0,"RUSH_BURN_TICK",.1),Yt(W0,"RUSH_BURN_DURATION",180),Yt(W0,"RUSH_BURN_INTERVAL",30),Yt(W0,"RUSH_BURN_DOT_ID",72),Yt(W0,"SUPER_COUNT",5),Yt(W0,"SUPER_COUNT_E",7),Yt(W0,"SUPER_OUTER_R",150),Yt(W0,"SUPER_INNER_R",20),Yt(W0,"SUPER_SPIN",.075),Yt(W0,"SUPER_LIFE",180),Yt(W0,"SUPER_ARRIVE",.9),Yt(W0,"SUPER_DPS",1.4),Yt(W0,"SUPER_RANGE",260),Yt(W0,"TORNADO_COUNT",3),Yt(W0,"TORNADO_COUNT_E",4),Yt(W0,"SPREAD_RADIUS",140),Yt(W0,"GATHER_START_RADIUS",120),Yt(W0,"INNER_RADIUS",12),Yt(W0,"GATHER_END_RADIUS",60),Yt(W0,"SCATTER_SPIN",.07),Yt(W0,"GATHER_SPIN",.08),Yt(W0,"SCATTER_FRAMES",190),Yt(W0,"GAP_FRAMES",90),Yt(W0,"GATHER_FRAMES",180),Yt(W0,"GATHER_DIST",260),Yt(W0,"MIN_GATHER_DIST",120),Yt(W0,"TORNADO_DPS",1),Yt(W0,"ORBIT_COUNT",3),Yt(W0,"ORBIT_COUNT_E",4),Yt(W0,"ORBIT_RX",42),Yt(W0,"ORBIT_RY",14),Yt(W0,"ORBIT_H",-26),Yt(W0,"ORBIT_SPIN",.032),Yt(W0,"ORBIT_BOB",5),Yt(W0,"ORBIT_BOB_SPEED",.07),Yt(W0,"ORBIT_RAD_MIN",.72),Yt(W0,"ORBIT_RAD_MAX",1.32),Yt(W0,"ORBIT_SPIN_MIN",.82),Yt(W0,"ORBIT_SPIN_MAX",1.22),Yt(W0,"ORBIT_H_VAR",13),Yt(W0,"ORBIT_RUSH_SPIN",.9),Yt(W0,"ORBIT_RUSH_TIGHT",.2),Yt(W0,"JOIN_BLEND",20),Yt(W0,"CATCH_SETTLE",.3),Yt(W0,"CATCH_SETTLE_EASE",.94),Yt(W0,"CATCH_SPARK_SCALE",.3),Yt(W0,"CATCH_SPARK_LIFE",30),Yt(W0,"ORBIT_LAG",.14),Yt(W0,"ORBIT_LAG_MAX",130),Yt(W0,"DEATH_SCATTER_SPD",3.4),Yt(W0,"DEATH_SCATTER_LIFE",26),Yt(W0,"ORBIT_SCALE",.42),Yt(W0,"ORBIT_DEPTH",.04),Yt(W0,"BOOM_SPEED",5.6),Yt(W0,"BOOM_CURVE",.6),Yt(W0,"BOOM_OVERSHOOT",80),Yt(W0,"BOOM_MIN_TRAVEL",300),Yt(W0,"BOOM_SCALE",.44),Yt(W0,"BOOM_SCALE_Y",1.2),Yt(W0,"BOOM_GROW",9),Yt(W0,"BOOM_HIT_R",34),Yt(W0,"BOOM_DPS",.75),Yt(W0,"BOOM_MAX_TARGETS",6),Yt(W0,"SKILL_MAX_TARGETS",8),Yt(W0,"BOOM_TIMEOUT",1320),Yt(W0,"EMPTY_RETRY",8),Yt(W0,"JUGGLE_MAX",5),Yt(W0,"JUGGLE_PER",.15),Yt(W0,"OVERHEAT_HOLD",180),Yt(W0,"JUGGLE_BUFF_DUR",3600),Yt(W0,"JUGGLE_FREEZE",90),Yt(W0,"SKILL_BOOM_SPEED",4.8),Yt(W0,"SKILL_BOOM_CURVE",.7),Yt(W0,"SKILL_BOOM_SCALE",.54),Yt(W0,"SKILL_BOOM_SCALE_Y",1.4),Yt(W0,"SKILL_BOOM_HIT_R",48),Yt(W0,"SKILL_BOOM_DPS",.8),Yt(W0,"SKILL_BOOM_HOPS",3),Yt(W0,"SKILL_EXP_DMG",1),Yt(W0,"SKILL_EXP_RADIUS",92),Yt(W0,"SKILL_EXP_BURN",.15),Yt(W0,"SKILL_EXP_SCALE",1.1),Yt(W0,"SKILL_ARM_FRAMES",22),Yt(W0,"SKILL_MAX_TRAVEL",330),Yt(W0,"RELIGHT_DELAY",34),Yt(W0,"BLOOM_FRAMES",24),Yt(W0,"BLOOM_STAGGER",8),Yt(W0,"BLOOM_SPIN",2.4),Yt(W0,"BLOOM_START_RAD",.12),Yt(W0,"BLOOM_START_SCL",.2),Yt(W0,"SKILL_OVERSHOOT",70),Yt(W0,"SKILL_MIN_TRAVEL",120),Yt(W0,"SKILL_BOOM_GROW",12),Yt(W0,"SKILL_HOP_RANGE",180),Yt(W0,"SKILL_SECTOR_PAD",1.25),Yt(W0,"ORB_SPEED",15.5),Yt(W0,"ORB_SHOTS",2),Yt(W0,"ORB_DMG",.45),Yt(W0,"ORB_CHILD_DMG",.35),Yt(W0,"ORB_CHILD_REPEAT",.22),Yt(W0,"ORB_SPLIT",4),Yt(W0,"ORB_SPLIT_E",5),Yt(W0,"ORB_CHILD_RANGE",380),Yt(W0,"ORB_SCALE_MAIN",.78),Yt(W0,"ORB_SCALE_CHILD",.46),Yt(W0,"ORB_SPREAD_ARC",1.5),Yt(W0,"ORB_SPREAD_KICK",.3),Yt(W0,"ORB_H",-26),Yt(W0,"ORB_HOME_DIST",54),Yt(W0,"ORB_SCATTER",8),Yt(W0,"ORB_SCATTER_E",11),Yt(W0,"ORB_FUSE",30),Yt(W0,"ORB_SC_ARM",8),Yt(W0,"ORB_SC_SPD_MIN",5),Yt(W0,"ORB_SC_SPD_MAX",15),Yt(W0,"ORB_SC_JITTER",.16),Yt(W0,"ORB_SC_AIM_R",450),Yt(W0,"ORB_SC_AIM_JIT",.25),Yt(W0,"ORB_SC_SCALE",.7),Yt(W0,"ORB_BLAST_R",78),Yt(W0,"ORB_BLAST_DMG",1.15),Yt(W0,"ORB_BLAST_BURN",.12),Yt(W0,"ORB_BURN_DUR",180),Yt(W0,"ORB_BURN_INT",30),Yt(W0,"ORB_BURN_ID",74);
+ let j0=W0;
+ const V0=class t extends A0{
+ constructor(){
+ super(),Yt(this,"pillars",[]),Yt(this,"auraCount",0),Yt(this,"detonateQueue",[]),Yt(this,"detonateStepTimer",0),Yt(this,"blastHits",new Map)}
+ initializeData(){
+ super.initializeData(),this.sheetName="Game2",this.className=fx.Naga1,this.unitType=ax.RANGE,this.weaponClass=MV.NagaIceArrow1,this.atkRange=t.ATK_RANGE,this.atkRange2=this.atkRange*this.atkRange,this.orgAtkRange=this.baseAtkRange=this.atkRange,this.radius=7,this.hitHeight=27,this.uiTopOffset=14,this.idleFrames=new AH(0,35),this.moveFrames=new AH(36,63),this.attackFrames=new AH(64,85),this.skillFrames=new AH(86,173),this.dieFrames=new AH(174,189),this.objAtk={
+ 75:1}
+ ,this.objSkill={
+ 130:1}
+ ,this.firePoint.set(10,-18),this.normalSize=.8,this.evolSize=.85,this.hasSkill=!0,this.maxMana=430}
+ execute(){
+ super.execute(),this.isAlive?(this.pillars.length&&this.updatePillars(),this.detonateQueue.length&&this.processDetonateQueue()):(this.pillars.length||this.detonateQueue.length)&&this.clearPillars()}
+ attackMain(){
+ if(null==this.target)return;
+ const i=this.pickSpreadTargets(t.SHOT_COUNT);
+ if(0===i.length)return;
+ const s=new Array(t.SHOT_COUNT).fill(!1),e=new Set;
+ let n=t.PILLAR_SHOTS;
+ for(let r=0;
+ r<t.SHOT_COUNT&&n>0;
+ r++){
+ const t=i[r%i.length];
+ e.has(t)||(e.add(t),s[r]=!0,n--)}
+ for(let r=0;
+ r<t.SHOT_COUNT&&n>0;
+ r++)s[r]||(s[r]=!0,n--);
+ const h=new Map;
+ for(let r=0;
+ r<t.SHOT_COUNT;
+ r++){
+ const e=i[r%i.length],n=h.get(e)??0;
+ h.set(e,n+1);
+ const o=t.SHOT_DMG_PER*Math.pow(t.SHOT_REPEAT_FALLOFF,n),a=this.generateWeapon(e,this.weaponClass,o,"",r*t.SHOT_DELAY);
+ a&&(a.makesPillar=s[r])}
+ }
+ pickSpreadTargets(i){
+ const s=this.getAttackableEnemyList(t.CAND_COUNT).filter(t=>t&&t.isAlive&&!t.isUntagetable);
+ if(0===s.length)return[];
+ const e=this.direction>=0?1:-1,n=s.filter(t=>(t.x-this.x)*e>=0),h=n.length>0?n:s;
+ let r=this.target&&this.target.isAlive&&!this.target.isUntagetable&&(this.target.x-this.x)*e>=0?this.target:null;
+ if(!r){
+ let t=1/0;
+ for(const i of h){
+ const s=(i.x-this.x)**2+(i.y-this.y)**2;
+ s<t&&(t=s,r=i)}
+ }
+ const o=r?[r]:[];
+ return this.addSpread(h,o,2),this.addSpread(s,o,i),o}
+ addSpread(t,i,s){
+ const e=Xt(t=>Math.atan2(t.y-this.y,t.x-this.x),"angleOf");
+ for(;
+ i.length<s;
+ ){
+ let s=null,n=-1/0;
+ for(const h of t){
+ if(i.indexOf(h)>=0)continue;
+ const t=e(h);
+ let r=1/0;
+ for(const s of i){
+ let i=Math.abs(t-e(s));
+ i>Math.PI&&(i=2*Math.PI-i),i<r&&(r=i)}
+ const o=0===i.length?-((h.x-this.x)**2+(h.y-this.y)**2):r;
+ o>n&&(n=o,s=h)}
+ if(!s)break;
+ i.push(s)}
+ }
+ onIceHit(i,s=!0){
+ if(!i)return;
+ if(!s)return void(i.isAlive&&i.freeze(t.PILLAR_FREEZE));
+ const e=this.random.range(-30,t.PILLAR_JITTER),n=this.random.range(-30,t.PILLAR_JITTER),h=i.x+e,r=i.y+n,o=r-(i.isAir?i.airHeight:0);
+ this.spawnPillar(h,r,o),i.isAlive&&i.freeze(t.PILLAR_FREEZE)}
+ spawnPillar(i,s,e=s,n=t.PILLAR_LIFETIME){
+ if(this.pillars.length>=t.PILLAR_MAX){
+ const t=this.pillars.shift();
+ t&&!t.done&&this.detonatePillar(t)}
+ const h=this.random.chance(.5)?SH.NagaIceSegment2:SH.NagaIceSegment1,r=bV.getEffect(h);
+ r.x=i,r.y=e,NB.getInstance().addChild(r),r.start(n+t.PILLAR_FX_PAD);
+ const o=Math.abs(this.scale.x)||1,a=this.random.chance(.5)?-1:1;
+ r.scale.set(a*t.PILLAR_SCALE*o,t.PILLAR_SCALE*o),this.pillars.push({
+ x:i,y:s,fx:r,life:n,done:!1}
+ )}
+ pickScoutAngle(i){
+ const s=i.map(t=>Math.atan2(t.y-this.y,t.x-this.x)),e=Xt(t=>{
+ let i=Math.PI;
+ for(const e of s){
+ let s=Math.abs(t-e);
+ s>Math.PI&&(s=2*Math.PI-s),s<i&&(i=s)}
+ return i}
+ ,"sep"),n=this.getEnemiesAtPos(this.x,this.y,t.SCOUT_SEARCH_R,0,!0);
+ let h=null,r=t.SCOUT_MIN_SEP;
+ for(const t of n){
+ if(!t||!t.isAlive||t.isUntagetable)continue;
+ if(i.includes(t))continue;
+ const s=Math.atan2(t.y-this.y,t.x-this.x),n=e(s);
+ n>r&&(r=n,h=s)}
+ return null!==h?h:n.length<t.SCOUT_EMPTY_MIN?null:this.pickEmptyAngle(i)}
+ pickEmptyAngle(i){
+ const s=i.map(t=>Math.atan2(t.y-this.y,t.x-this.x)),e=this.direction>=0?1:-1;
+ let n=0,h=-1/0;
+ for(let r=0;
+ r<t.GROUND_SHOT_ANGLE_CANDS;
+ r++){
+ const i=r/t.GROUND_SHOT_ANGLE_CANDS*Math.PI*2,o=Math.cos(i)*e>=0?.3:0;
+ let a=Math.PI;
+ for(const t of s){
+ let s=Math.abs(i-t);
+ s>Math.PI&&(s=2*Math.PI-s),s<a&&(a=s)}
+ const c=a+o;
+ c>h&&(h=c,n=i)}
+ return n}
+ fireGroundShot(i,s){
+ const e=this.pickScoutAngle(i);
+ if(null===e)return;
+ const n=this.x+Math.cos(e)*t.GROUND_SHOT_RANGE,h=this.y+Math.sin(e)*t.GROUND_SHOT_RANGE,r=t0.getInstance().getWeapon(MV.NagaIceArrow1);
+ r.owner=this,r.target=null,r.x=this.x+this.firePoint.x*this.direction,r.y=this.y+this.firePoint.y;
+ const o=n-r.x,a=h-r.y,c=Math.sqrt(o*o+a*a)||1;
+ r.vx=o/c*r.speed,r.vy=a/c*r.speed,r.rotation=Math.atan2(r.vy,r.vx),r.setData(0),r.setupGroundShot(n,h,s),r.setBattleController(this.battleController||hli.getInstance()),jB.getInstance().addChild(r),(this.battleController||hli.getInstance()).addWeapon(r)}
+ onGroundStrike(i,s){
+ this.spawnPillar(i,s,s,Math.round(t.PILLAR_LIFETIME*t.GROUND_SHOT_LIFETIME_MULT))}
+ updatePillars(){
+ this.auraCount++;
+ const i=this.auraCount>=t.AURA_TICK;
+ i&&(this.auraCount=0);
+ let s=!1;
+ for(const t of this.pillars)t.done?s=!0:(t.life--,t.life<=0?(this.detonatePillar(t),s=!0):i&&this.applyAura(t));
+ s&&(this.pillars=this.pillars.filter(t=>!t.done))}
+ applyAura(i){
+ const s=this.getEnemiesAtPos(i.x,i.y,t.AURA_R,0,!0);
+ for(const e of s)e.isAlive&&(e.chill(t.CHILL_DUR),e.chillAttack(t.CHILL_DUR),e.addDotDamage(this.atkDmg*t.DOT_RATIO,t.DOT_DUR,t.DOT_INTERVAL,this,t.DOT_ID))}
+ skillMain(){
+ const t=this.pillars.filter(t=>!t.done);
+ 0!==t.length&&(t.sort((t,i)=>(t.x-this.x)**2+(t.y-this.y)**2-((i.x-this.x)**2+(i.y-this.y)**2)),this.detonateQueue=t,this.pillars=[],this.detonateStepTimer=0,this.blastHits.clear())}
+ processDetonateQueue(){
+ if(this.detonateStepTimer--,this.detonateStepTimer>0)return;
+ const i=t.DETONATE_MAX_PER_STEP-t.DETONATE_MIN_PER_STEP+1,s=t.DETONATE_MIN_PER_STEP+this.random.nextInt(i);
+ for(let t=0;
+ t<s;
+ t++){
+ const t=this.detonateQueue.shift();
+ if(!t)break;
+ t.done||this.detonatePillar(t)}
+ this.detonateStepTimer=t.DETONATE_STEP_FRAMES}
+ detonatePillar(i){
+ i.done=!0,i.fx.shatter(t.BLAST_FX_SCALE);
+ const s=this.getEnemiesAtPos(i.x,i.y,t.BLAST_R,0,!0).filter(t=>t&&t.isAlive).sort((t,s)=>(t.x-i.x)**2+(t.y-i.y)**2-((s.x-i.x)**2+(s.y-i.y)**2)).slice(0,t.BLAST_MAX_TARGETS);
+ for(const e of s){
+ if(!e.isAlive)continue;
+ const i=this.blastHits.get(e)??0;
+ if(i>=t.BLAST_REPEAT_MAX)continue;
+ this.blastHits.set(e,i+1);
+ const s=0===i?1:t.BLAST_REPEAT_MULT;
+ this.doDamage(e,t.BLAST_DMG*s,!0),0===i&&e.freeze(t.BLAST_FREEZE)}
+ }
+ clearPillars(){
+ for(const t of this.pillars)t.done||t.fx.remove();
+ this.pillars=[];
+ for(const t of this.detonateQueue)t.done||t.fx.remove();
+ this.detonateQueue=[],this.detonateStepTimer=0,this.blastHits.clear()}
+ onDie(){
+ super.onDie(),this.clearPillars()}
+ resetForPool(){
+ super.resetForPool(),this.clearPillars(),this.auraCount=0}
+ setData(t,i=1,s=1,e=1){
+ super.setData(t,i,s,e),this.clearPillars(),this.auraCount=0}
+ remove(){
+ this.clearPillars(),super.remove()}
+ lookAt(t){
+ const i=t>0?1:-1;
+ super.lookAt(-i),this.direction=i}
+ setSize(t){
+ super.setSize(t),this.lookAt(this.direction)}
+ async generateSprite(){
+ await super.generateSprite(),this.lookAt(this.direction)}
+ }
+ ;
+ Xt(V0,"Naga1"),Yt(V0,"ATK_RANGE",285),Yt(V0,"SHOT_COUNT",6),Yt(V0,"PILLAR_SHOTS",3),Yt(V0,"SHOT_DMG_PER",.7),Yt(V0,"SHOT_DELAY",4),Yt(V0,"CAND_COUNT",26),Yt(V0,"SHOT_REPEAT_FALLOFF",.8),Yt(V0,"PILLAR_FREEZE",45),Yt(V0,"PILLAR_LIFETIME",420),Yt(V0,"PILLAR_MAX",12),Yt(V0,"PILLAR_SCALE",1.3),Yt(V0,"PILLAR_JITTER",30),Yt(V0,"PILLAR_FX_PAD",30),Yt(V0,"AURA_TICK",15),Yt(V0,"AURA_R",92),Yt(V0,"CHILL_DUR",34),Yt(V0,"DOT_RATIO",.09),Yt(V0,"DOT_DUR",40),Yt(V0,"DOT_INTERVAL",20),Yt(V0,"DOT_ID",7701),Yt(V0,"BLAST_R",132),Yt(V0,"BLAST_FX_SCALE",1.2),Yt(V0,"BLAST_DMG",1.3),Yt(V0,"BLAST_FREEZE",60),Yt(V0,"BLAST_REPEAT_MULT",.5),Yt(V0,"BLAST_REPEAT_MAX",5),Yt(V0,"BLAST_FREEZE_ONCE",!0),Yt(V0,"BLAST_MAX_TARGETS",5),Yt(V0,"DETONATE_STEP_FRAMES",5),Yt(V0,"DETONATE_MIN_PER_STEP",1),Yt(V0,"DETONATE_MAX_PER_STEP",2),Yt(V0,"GROUND_SHOT_RANGE",200),Yt(V0,"GROUND_SHOT_LIFETIME_MULT",.6),Yt(V0,"GROUND_SHOT_ANGLE_CANDS",8),Yt(V0,"SCOUT_SEARCH_R",340),Yt(V0,"SCOUT_MIN_SEP",.55),Yt(V0,"SCOUT_EMPTY_MIN",6);
+ let K0=V0;
+ const z0=class t extends A0{
+ constructor(){
+ super(),Yt(this,"stuck",new Map),Yt(this,"ammo",[]),Yt(this,"venomTick",0),Yt(this,"snakePoint",new _i(0,0)),Yt(this,"coilSnakes",[])}
+ initializeData(){
+ super.initializeData(),this.sheetName="Game2",this.className=fx.Medusa1,this.unitType=ax.RANGE,this.weaponClass=MV.MedusaArrow1,this.radius=7,this.hitHeight=27,this.idleFrames=new AH(0,35),this.moveFrames=new AH(36,63),this.attackFrames=new AH(64,90),this.skillFrames=new AH(91,163),this.dieFrames=new AH(164,179),this.objAtk={
+ 78:1}
+ ,this.objSkill={
+ 127:1}
+ ,this.firePoint.set(10,-18),this.hasSkill=!0,this.maxMana=300,this.normalSize=.85,this.evolSize=.9}
+ execute(){
+ if(super.execute(),!this.isAlive)return;
+ this.venomTick++;
+ const i=this.venomTick%t.VENOM_INTERVAL===0,s=[];
+ for(const[e,n]of this.stuck)if(e&&!e.removed&&e.isAlive){
+ for(let t=n.length-1;
+ t>=0;
+ t--)--n[t]<=0&&n.splice(t,1);
+ 0!==n.length?(i&&this.doDamage(e,n.length*t.VENOM_PCT,!0),this.updateStuckVisual(e,n.length)):this.stuck.delete(e)}
+ else s.push({
+ x:e?e.x:this.x,y:e?e.y:this.y,count:n.length}
+ ),this.stuck.delete(e);
+ for(const e of s){
+ for(let i=0;
+ i<e.count;
+ i++)this.ammo.push(t.AMMO_LIFE);
+ this.spawnSnakes(e.x,e.y,this,e.count),this.spreadContagion(e.x,e.y)}
+ for(let t=this.ammo.length-1;
+ t>=0;
+ t--)--this.ammo[t]<=0&&this.ammo.splice(t,1);
+ this.updateCoil()}
+ updateCoil(){
+ const i=Math.min(this.ammo.length,t.MAX_COIL);
+ for(;
+ this.coilSnakes.length<i;
+ ){
+ const i=this.coilSnakes.length,s=bV.getEffect(SH.MedusaCoilSnake1),e=i/t.MAX_COIL*Math.PI*2;
+ s.setupCoil(this,e,t.COIL_RADIUS),kB.getInstance().addChild(s),s.start(999999),this.coilSnakes.push(s)}
+ for(;
+ this.coilSnakes.length>i;
+ ){
+ const t=this.coilSnakes.pop();
+ null==t||t.remove()}
+ }
+ clearCoil(){
+ for(const t of this.coilSnakes)t.remove();
+ this.coilSnakes.length=0}
+ spreadContagion(i,s){
+ this.spawnPop(i,s);
+ const e=t.CONTAGION_RADIUS*t.CONTAGION_RADIUS,n=[];
+ for(const t of this.enemyList){
+ if(!t||!t.isAlive||t.isUntagetable)continue;
+ const h=t.x-i,r=t.y-s;
+ h*h+r*r<=e&&n.push(t)}
+ if(0===n.length)return;
+ for(const r of n)this.doDamage(r,t.BURST_PCT,!0);
+ n.sort((t,e)=>(t.x-i)**2+(t.y-s)**2-((e.x-i)**2+(e.y-s)**2));
+ const h=Math.min(n.length,t.CONTAGION_TARGETS);
+ for(let r=0;
+ r<h;
+ r++){
+ const e=n[r];
+ for(let i=0;
+ i<t.CONTAGION_STACKS;
+ i++)this.onSnakeStick(e);
+ this.spawnSnakes(i,s,e,1)}
+ }
+ spawnPop(i,s){
+ const e=bV.getEffect(SH.PoisonExplodeEffect);
+ e.x=i,e.y=s,kB.getInstance().addChild(e),e.start(t.POP_LIFE)}
+ onSnakeStick(i){
+ if(!i||!i.isAlive)return;
+ let s=this.stuck.get(i);
+ s||(s=[],this.stuck.set(i,s)),s.push(t.STACK_LIFE),this.updateStuckVisual(i,s.length),s.length>=t.STACK_THRESHOLD&&this.petrify(i,s)}
+ updateStuckVisual(i,s){
+ this.snakePoint.set(0,.3*-i.hitHeight),i.showEffect(SH.MedusaSnakeStuck1,t.VISUAL_REFRESH,this.snakePoint,!0,!1).scale.set(t.STUCK_BASE_SCALE*(1+(s-1)*t.STUCK_SCALE_PER))}
+ petrify(i,s){
+ i.stun(t.PETRIFY_DURATION,this);
+ const e=s.length;
+ for(let n=0;
+ n<e;
+ n++)this.ammo.push(t.AMMO_LIFE);
+ this.spawnSnakes(i.x,i.y,this,e),this.stuck.delete(i)}
+ attackMain(){
+ const i=this.target;
+ if(!i||!i.isAlive)return;
+ const s=[i];
+ for(const t of this.getEnemiesWithin(this.atkRange,!0))t!==i&&t.isAlive&&s.push(t);
+ for(let e=0;
+ e<t.BASIC_SHOTS;
+ e++){
+ const i=s[e%s.length];
+ i&&i.isAlive&&this.generateWeapon(i,this.weaponClass,t.BASIC_DMG,"",t.BASIC_DELAY*e)}
+ }
+ spawnSnakes(i,s,e,n){
+ const h=Math.min(n,t.MAX_CRAWL_VISUAL);
+ for(let r=0;
+ r<h;
+ r++){
+ const n=bV.getEffect(SH.MedusaSnakeCrawl1),o=10*(r-(h-1)/2);
+ n.setupCrawl(i+o,s,e,t.CRAWL_LIFE),kB.getInstance().addChild(n),n.start(t.CRAWL_LIFE)}
+ }
+ skillMain(){
+ const i=Math.max(t.BASE_SHOTS,this.ammo.length);
+ this.ammo.length=0;
+ const s=this.getEnemiesWithin(t.SKILL_RANGE,!0);
+ if(0!==s.length)for(let e=0;
+ e<i;
+ e++){
+ const i=s[e%s.length];
+ i&&i.isAlive&&this.generateWeapon(i,this.weaponClass,t.BASIC_DMG,"",t.MULTI_SHOT_DELAY*e)}
+ }
+ resetForPool(){
+ super.resetForPool(),this.stuck.clear(),this.ammo.length=0,this.venomTick=0,this.clearCoil()}
+ remove(){
+ this.clearCoil(),super.remove()}
+ onDie(){
+ var t;
+ null==(t=super.onDie)||t.call(this),this.clearCoil()}
+ lookAt(t){
+ const i=t>0?1:-1;
+ super.lookAt(-i),this.direction=i}
+ setSize(t){
+ super.setSize(t),this.lookAt(this.direction)}
+ async generateSprite(){
+ await super.generateSprite(),this.lookAt(this.direction)}
+ }
+ ;
+ Xt(z0,"Medusa1"),Yt(z0,"STACK_LIFE",240),Yt(z0,"VENOM_PCT",.04),Yt(z0,"VENOM_INTERVAL",30),Yt(z0,"STACK_THRESHOLD",8),Yt(z0,"PETRIFY_DURATION",120),Yt(z0,"BASIC_SHOTS",3),Yt(z0,"BASIC_DMG",.35),Yt(z0,"BASIC_DELAY",2),Yt(z0,"VISUAL_REFRESH",20),Yt(z0,"STUCK_BASE_SCALE",.5),Yt(z0,"STUCK_SCALE_PER",.12),Yt(z0,"CONTAGION_RADIUS",90),Yt(z0,"CONTAGION_TARGETS",3),Yt(z0,"CONTAGION_STACKS",2),Yt(z0,"BURST_PCT",.5),Yt(z0,"POP_LIFE",30),Yt(z0,"MAX_COIL",8),Yt(z0,"COIL_RADIUS",24),Yt(z0,"AMMO_LIFE",300),Yt(z0,"BASE_SHOTS",6),Yt(z0,"SKILL_RANGE",260),Yt(z0,"MULTI_SHOT_DELAY",3),Yt(z0,"MAX_CRAWL_VISUAL",4),Yt(z0,"CRAWL_LIFE",90);
+ let q0=z0;
+ const X0=class t extends A0{
+ constructor(){
+ super(),Yt(this,"assignCount",new Map),Yt(this,"waveTimer",0),Yt(this,"wavesLeft",0),Yt(this,"waveIndex",0),Yt(this,"castPhase",0)}
+ initializeData(){
+ super.initializeData(),this.sheetName="Game2",this.className=fx.Hippogriff1,this.unitType=ax.RANGE,this.weaponClass=MV.HippogriffSpear1,this.radius=7,this.hitHeight=27,this.idleFrames=new AH(0,31),this.moveFrames=new AH(32,67),this.attackFrames=new AH(68,109),this.skillFrames=new AH(110,183),this.dieFrames=new AH(184,199),this.atkRange=300,this.atkRange2=this.atkRange*this.atkRange,this.orgAtkRange=this.baseAtkRange=this.atkRange,this.objAtk={
+ 80:1}
+ ,this.objSkill={
+ 142:1,151:1,158:1}
+ ,this.isAir=!0,this.airHeight=60,this.firePoint.set(12,-12-this.airHeight),this.hasSkill=!0,this.maxMana=300,this.normalSize=.85,this.evolSize=.9}
+ attackMain(){
+ const i=this.getAttackableEnemyList(t.ATK_SHOTS);
+ if(0===i.length)return;
+ this.lookAt(i[0].x-this.x);
+ const s=new Map;
+ for(let e=0;
+ e<t.ATK_SHOTS;
+ e++){
+ const n=i[e%i.length];
+ if(!n||!n.isAlive)continue;
+ const h=s.get(n)??0;
+ s.set(n,h+1);
+ const r=t.ATK_DMG_PER_SHOT*Math.pow(t.ATK_REPEAT_FALLOFF,h);
+ this.generateWeapon(n,this.weaponClass,r,"",e*t.ATK_SHOT_DELAY)}
+ }
+ skillMain(){
+ this.assignCount.clear(),this.waveIndex=0,this.castPhase=this.random.next()*Math.PI*2,this.fireWave(0),this.wavesLeft=t.WAVE_COUNT-1,this.waveTimer=t.WAVE_GAP}
+ execute(){
+ super.execute(),this.isAlive?this.wavesLeft>0&&--this.waveTimer<=0&&(this.wavesLeft--,this.waveTimer=t.WAVE_GAP,this.fireWave(++this.waveIndex)):(this.wavesLeft>0||this.assignCount.size>0)&&this.cancelCast()}
+ fireWave(i){
+ const s=this.battleController||hli.getInstance(),e=this.x,n=this.y-this.airHeight-t.CENTER_UP,h=[],r=t.TARGET_RANGE*t.TARGET_RANGE;
+ for(const t of this.enemyList){
+ if(!t||!t.isAlive||t.removed||t.isUntagetable)continue;
+ const i=t.x-e,s=t.y-n;
+ i*i+s*s<=r&&h.push(t)}
+ h.sort((t,i)=>(t.x-e)**2+(t.y-n)**2-((i.x-e)**2+(i.y-n)**2));
+ const o=[],a=t.HEAL_RANGE*t.HEAL_RANGE;
+ for(const t of this.allyList){
+ if(!t||!t.isAlive||t.removed)continue;
+ if(t===this||t.isCastle)continue;
+ if(t.hp>=t.maxHp)continue;
+ const i=t.x-e,s=t.y-n;
+ i*i+s*s<=a&&o.push(t)}
+ o.sort((t,i)=>t.hp/t.maxHp-i.hp/i.maxHp);
+ const c=o.length>0?Math.floor(t.PER_WAVE*t.HEAL_MAX_RATIO):0,l=this.castPhase+i*t.WAVE_ANGLE_OFFSET,u=2*Math.PI/t.PER_WAVE;
+ for(let d=0;
+ d<t.PER_WAVE;
+ d++){
+ const i=l+u*d+this.random.range(-.12,t.EJECT_JITTER);
+ let r=d<c,a=null;
+ if(r){
+ const i=o[d%o.length];
+ (this.assignCount.get(i)??0)>=t.HEAL_MAX_PER_ALLY?r=!1:a=i}
+ r||(a=h.length>0?h[d%h.length]:null);
+ let f=1;
+ if(a){
+ const i=this.assignCount.get(a)??0;
+ f=Math.max(t.REPEAT_MIN,Math.pow(t.REPEAT_FALLOFF,i)),this.assignCount.set(a,i+1)}
+ const p=t0.getInstance().getWeapon(MV.HippogriffMissile1);
+ p.owner=this,p.target=null,p.x=e,p.y=n,p.setData(r?0:t.MISSILE_DMG*f),p.setBattleController(s),p.setHeal(r?t.HEAL_PERCENT*f:0),p.launchHoming(i,a,d*t.EJECT_STAGGER),jB.getInstance().addChild(p),s.addWeapon(p)}
+ }
+ cancelCast(){
+ this.assignCount.clear(),this.wavesLeft=0,this.waveTimer=0,this.waveIndex=0,this.castPhase=0}
+ onDie(){
+ super.onDie(),this.cancelCast()}
+ resetForPool(){
+ super.resetForPool(),this.cancelCast()}
+ }
+ ;
+ Xt(X0,"Hippogriff1"),Yt(X0,"WAVE_COUNT",2),Yt(X0,"PER_WAVE",6),Yt(X0,"WAVE_GAP",16),Yt(X0,"WAVE_ANGLE_OFFSET",Math.PI/6),Yt(X0,"MISSILE_DMG",.75),Yt(X0,"REPEAT_FALLOFF",.45),Yt(X0,"REPEAT_MIN",.12),Yt(X0,"HEAL_PERCENT",1.5),Yt(X0,"HEAL_MAX_RATIO",.5),Yt(X0,"HEAL_MAX_PER_ALLY",6),Yt(X0,"HEAL_RANGE",340),Yt(X0,"TARGET_RANGE",340),Yt(X0,"EJECT_JITTER",.12),Yt(X0,"EJECT_STAGGER",2),Yt(X0,"CENTER_UP",26),Yt(X0,"ATK_SHOTS",7),Yt(X0,"ATK_DMG_PER_SHOT",.6),Yt(X0,"ATK_SHOT_DELAY",3),Yt(X0,"ATK_REPEAT_FALLOFF",.8);
+ let Y0=X0;
FireAttack1 3 hunks, 577 statements
- this.className=Vj.SteamFire1,this.textureName=Vj.PilotMissile1,this.scale.set(.8)}
+ this.sheetName="Game2",this.className=MV.FireAttack1,this.textureName="FireAttack"}
- this.hitClassName="FireExplode",this.g=0,this.speed=this.missileSpeed,this.flyEnd=0,this.incFrame=1,this.orientToPath=!1}
- calculateTrajectory(){
- if(!this.target)return;
- const t=this.target.getHitCenter().x-this.x;
- this.heading=t>=0?0:Math.PI,this.vx=Math.cos(this.heading)*this.missileSpeed,this.vy=0,this.rotation=this.heading,this.t=0,this.T=this.maxLifeTime}
- execute(){
- if(--this.delay>0)this.rotation=0;
- else{
- if(this.t++,this.t%2==0&&this.showSmoke(),this.target&&!this.target.removed&&this.target.isAlive||this.retarget(80),this.t<=3);
- else if(this.target&&!this.target.removed){
- const t=this.target.getHitCenter(),i=t.x-this.x,s=t.y-this.y;
- let e=Math.atan2(s,i)-this.heading;
- for(;
- e>Math.PI;
- )e-=2*Math.PI;
- for(;
- e<-Math.PI;
- )e+=2*Math.PI;
- const n=this.t>.6*this.T?3*this.turnRate:this.turnRate;
- e>n&&(e=n),e<-n&&(e=-n),this.heading+=e}
- if(this.vx=Math.cos(this.heading)*this.missileSpeed,this.vy=Math.sin(this.heading)*this.missileSpeed,this.x+=this.vx,this.y+=this.vy,this.rotation=this.heading,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&this.textures.length>0&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.checkEarlyCollision())this.onHit();
- else if(this.t>=this.T){
- if(this.target&&!this.target.removed){
- const t=this.target.getHitCenter();
- this.x=t.x,this.y=t.y}
- this.onHit()}
- }
- }
- retarget(t){
- if(!this.owner||!this.owner.enemyList)return;
- let i=null,s=t*t;
- for(const e of this.owner.enemyList){
- if(!e.isAlive||e.isUntagetable)continue;
- const t=e.x-this.x,n=e.y-this.y,h=t*t+n*n;
- h<s&&(i=e,s=h)}
- i&&(this.target=i)}
- onHitMain(){
- if(this.target&&this.target.isAlive){
- const t=this.owner&&this.owner.evolStage>=1,i=t?.4:.3,s=t?50:40;
- this.random.chance(i)&&this.target.stun(s,this.owner??void 0)}
- if(!this.owner||!this.owner.enemyList)return;
- let t=0;
- for(const i of this.owner.enemyList){
- if(!i.isAlive||i===this.target||i.isUntagetable)continue;
- const s=this.x-i.x;
- if(Math.abs(s)>35)continue;
- const e=this.y-i.y;
- if(!(Math.abs(e)>35)&&s*s+e*e<625&&(this.owner.doDamage(i,.4,!0),++t>=3))break}
- this.showSmoke()}
- showSmoke(){
- const t=jj.getEffect(yH.PilotMissileSmoke1);
- t.x=this.x,t.y=this.y,t.setBattleController(this.battleController||Nai.getInstance()),t.start(25),TB.getInstance().addChild(t)}
+ this.hitClassName="MagicalHitEffect",this.g=0,this.speed=10,this.flyEnd=14,this.incFrame=1}
- qt($K,"SteamFire1");
- let WK=$K;
- const jK=class extends zj{
- constructor(){
- super(...arguments),Yt(this,"hitSet",new Set)}
- initializeTextureName(){
- this.sheetName="Game1",this.className=Vj.SteamMissile1,this.textureName=Vj.SteamMissile1,this.scale.x=.5,this.scale.y=.2}
- initializeData(){
- this.hitClassName="PhysicalHitEffect",this.g=0,this.speed=11,this.flyEnd=2,this.incFrame=1}
- play(){
- this.hitSet.clear(),super.play()}
- onHit(){
- this.owner&&this.target?(this.target.isAlive&&!this.hitSet.has(this.target)&&(this.hitSet.add(this.target),this.owner.doDamage(this.target,this.damagePercent,!0)&&(this.onHitMain(),this.showHitEffect(this.resolvedHitClassName))),this.target=null):this.remove()}
- checkEarlyCollision(){
- if(this.target&&!this.target.removed)return super.checkEarlyCollision();
- if(!this.owner)return!1;
- for(const t of this.owner.enemyList){
- if(!t||!t.isAlive||this.hitSet.has(t))continue;
- const i=t.getHitCenter(),s=Math.abs(i.x-this.x),e=Math.abs(i.y-this.y),n=.3*t.hitWidth,h=.3*t.hitHeight;
- if(s<n&&e<h)return this.target=t,!0}
- return!1}
- remove(){
- this.hitSet.clear(),super.remove()}
- }
- ;
- qt(jK,"SteamMissile1");
- let VK=jK;
- const KK=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"dirX",1),Yt(this,"dirY",0)}
- initializeTextureName(){
- this.className=Vj.SylphidShuriken1,this.textureName="SylphidShuriken1"}
- initializeData(){
- this.sheetName="Game1",this.g=0,this.speed=t.FIXED_SPEED,this.minT=12,this.maxT=90,this.flyEnd=1,this.incFrame=1,this.weaponScale=1.4,this.orientToPath=!1,this.vr=.45,this.bounceRange=220}
- calculateTrajectory(){
- if(!this.target)return;
- const i=this.target.getHitCenter();
- this.offsetX=0,this.offsetY=.3*-this.target.hitHeight;
- const s=i.x+this.offsetX-this.x,e=i.y+this.offsetY-this.y,n=Math.sqrt(s*s+e*e)||1;
- this.dirX=s/n,this.dirY=e/n,this.T=Math.max(this.minT,Math.min(this.maxT,n/t.FIXED_SPEED)),this.vx=this.dirX*t.FIXED_SPEED,this.vy=this.dirY*t.FIXED_SPEED,this.t=0}
- execute(){
- if(!this.removed)if(this.t++,this.x+=this.dirX*t.FIXED_SPEED,this.y+=this.dirY*t.FIXED_SPEED,this.rotation+=this.vr,this.sp&&this.textures.length>0&&(this.sp.texture=this.textures[0]),this.checkEarlyCollision())this.onHit();
- else if(this.t>=this.T){
- if(this.target&&!this.target.removed&&this.target.isAlive)return void this.onHit();
- this.t>=this.T+30&&this.remove()}
- }
- onHitMain(){
- if(!this.target)return;
- const t=jj.getEffect(yH.ElfGlowing1);
- t.x=this.target.x,t.y=this.target.y-.5*this.target.hitHeight,t.start(30),TB.getInstance().addChild(t);
- const i=this.owner;
- i&&i.isAlive&&"function"==typeof i.onShurikenHit&&i.onShurikenHit()}
- }
- ;
- qt(KK,"SylphidShuriken1"),Yt(KK,"FIXED_SPEED",8);
- let zK=KK;
- const qK=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"lifeTimer",0),Yt(this,"hitTimer",0),Yt(this,"dirAngle",0),Yt(this,"launched",!1),Yt(this,"circleEffect",null)}
- initializeTextureName(){
- this.className=Vj.SylphidTornado1,this.textureName="ElfTornado1"}
- initializeData(){
- this.sheetName="Game1",this.g=0,this.speed=t.SPEED,this.incFrame=.4,this.weaponScale=1.6,this.orientToPath=!1,this.vr=0}
- generateSprite(){
- super.generateSprite(),this.flyEnd=Math.max(1,this.textures.length)}
- play(){
- this.lifeTimer=0,this.hitTimer=0,this.launched=!1,this.rotation=0,this.visible=!0,this.removed=!1,this.parent&&this.parent.removeChild(this),AB.getInstance().addChild(this),this.circleEffect=jj.getEffect(yH.ElfMagicCircle1),this.circleEffect.x=this.x,this.circleEffect.y=this.y+10,this.circleEffect.scale.set(1.2),this.circleEffect.start(t.LIFETIME+10),AB.getInstance().addChild(this.circleEffect),(this.battleController||Nai.getInstance()).addWeapon(this)}
- execute(){
- if(!this.removed)if(this.lifeTimer++,this.hitTimer++,this.lifeTimer>=t.LIFETIME)this.explodeAndRemove();
- else{
- if(this.launched)this.dirAngle+=2*(Math.random()-.5)*t.TURN_RATE;
- else if(this.launched=!0,this.target&&this.target.isAlive){
- const t=this.target.x-this.x,i=this.target.y-this.y;
- this.dirAngle=Math.atan2(i,t)}
- else this.dirAngle=Math.random()*Math.PI*2;
- this.x+=Math.cos(this.dirAngle)*t.SPEED,this.y+=Math.sin(this.dirAngle)*t.SPEED,this.circleEffect&&!this.circleEffect.removed&&(this.circleEffect.x=this.x,this.circleEffect.y=this.y+10),this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.suckNearby(),this.hitTimer>=t.HIT_INTERVAL&&(this.hitTimer=0,this.damageAndBindNearby())}
- }
- suckNearby(){
- if(!this.owner)return;
- const i=t.SUCK_RADIUS*t.SUCK_RADIUS;
- for(const s of this.owner.enemyList){
- if(s.removed||!s.isAlive||s.isUntagetable||s.isImmovable||s.knockImmune)continue;
- const e=s.x-this.x,n=s.y-this.y,h=e*e+n*n;
- if(h>i||h<1)continue;
- const r=Math.sqrt(h),o=t.SUCK_SPEED*(1-r/t.SUCK_RADIUS);
- s.x-=e/r*o,s.y-=n/r*o,s.tx=s.x,s.ty=s.y}
- }
- damageAndBindNearby(){
- if(!this.owner||!this.owner.isAlive)return;
- const i=t.HIT_RADIUS*t.HIT_RADIUS;
- for(const s of this.owner.enemyList){
- if(!s.isAlive||s.isUntagetable)continue;
- const e=s.x-this.x,n=s.y-this.y;
- e*e+n*n<=i&&(this.owner.doDamage(s,t.DMG_PER_TICK,!0),this.bindEnemy(s))}
- }
- bindEnemy(i){
- i.binding(t.BIND_DURATION,!1,this.owner??void 0);
- const s=i.effectList;
- for(let n=0;
- n<s.length;
- n++)if(s[n].className===yH.ElfBindEffect1)return void s[n].setDuration(t.BIND_DURATION);
- const e=jj.getEffect(yH.ElfBindEffect1);
- e.x=0,e.y=-2,e.start(t.BIND_DURATION),e.owner=i,i.addChild(e),i.effectList.push(e)}
- blowNearby(){
- if(!this.owner)return;
- const i=t.BLOW_RADIUS*t.BLOW_RADIUS;
- for(const s of this.owner.enemyList){
- if(!s.isAlive||s.isUntagetable)continue;
- const e=s.x-this.x,n=s.y-this.y,h=e*e+n*n;
- if(h>i||h<1)continue;
- const r=Math.sqrt(h),o=e/r*t.BLOW_SPEED,a=n/r*t.BLOW_SPEED;
- s.knockBack(o,a,t.BLOW_DURATION)}
- }
- explodeAndRemove(){
- if(this.removed)return;
- this.blowNearby();
- const t=jj.getEffect(yH.ElfExplodeEffect1);
- t.x=this.x,t.y=this.y,t.scale.set(2),t.start(60),TB.getInstance().addChild(t),this.circleEffect&&!this.circleEffect.removed&&this.circleEffect.remove(),this.circleEffect=null,super.remove()}
- remove(){
- this.explodeAndRemove()}
- }
- ;
- qt(qK,"SylphidTornado1"),Yt(qK,"SPEED",1.2),Yt(qK,"LIFETIME",300),Yt(qK,"HIT_RADIUS",50),Yt(qK,"HIT_INTERVAL",30),Yt(qK,"DMG_PER_TICK",.6),Yt(qK,"BIND_DURATION",30),Yt(qK,"TURN_RATE",.08),Yt(qK,"SUCK_RADIUS",70),Yt(qK,"SUCK_SPEED",1.8),Yt(qK,"BLOW_RADIUS",90),Yt(qK,"BLOW_SPEED",12),Yt(qK,"BLOW_DURATION",10);
- let YK=qK;
- const XK=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"orbitCenterX",0),Yt(this,"orbitCenterY",0),Yt(this,"orbitAngle",0),Yt(this,"orbitRadius",0),Yt(this,"orbitSpeed",.12),Yt(this,"orbitOwner",null),Yt(this,"orbitPhase",0),Yt(this,"orbitTimer",0),Yt(this,"orbitDir",1),Yt(this,"inStorm",!1),Yt(this,"oneShot",!1),Yt(this,"goblinTarget",null),Yt(this,"straight",!1),Yt(this,"tgtX",0),Yt(this,"tgtY",0),Yt(this,"launchDelay",0),Yt(this,"hitCooldowns",new Map),Yt(this,"flyStartX",0),Yt(this,"flyStartY",0),Yt(this,"flyTargetX",0),Yt(this,"flyTargetY",0),Yt(this,"burstVx",0),Yt(this,"burstVy",0),Yt(this,"burstTimer",0),Yt(this,"lifeTimer",0),Yt(this,"lifeDuration",1200),Yt(this,"flying",!1),Yt(this,"coinGravity",.18),Yt(this,"landY",0)}
- initializeTextureName(){
- this.sheetName="Game1",this.className=Vj.AladinCoin1,this.textureName=Vj.AladinCoin1,this.scale.set(.8)}
- initializeData(){
- this.g=0,this.speed=0,this.flyEnd=1,this.incFrame=0,this.vx=0,this.vy=0,this.flying=!1,this.orbitRadius=0,this.orbitPhase=0,this.orbitTimer=0,this.hitCooldowns?this.hitCooldowns.clear():this.hitCooldowns=new Map,this.orbitOwner=null,this.burstTimer=0,this.lifeTimer=0,this.inStorm=!1,this.oneShot=!1,this.goblinTarget=null,this.straight=!1,this.tgtX=0,this.tgtY=0,this.rotation=0,this.launchDelay=0}
- play(){
- this.visible=!0,this.removed=!1,this.resolvedHitClassName=this.hitClassName||"PhysicalHitEffect",(this.battleController||Nai.getInstance()).addWeapon(this)}
- launch(i,s,e=!1){
- const n=i-this.x,h=s-this.y;
- if(e){
- this.straight=!0,this.tgtX=i,this.tgtY=s;
- const e=Math.sqrt(n*n+h*h)||1;
- return this.vx=n/e*t.STRAIGHT_SPEED,this.vy=h/e*t.STRAIGHT_SPEED,void(this.flying=!0)}
- this.landY=s;
- const r=Math.max(12,Math.floor(Math.abs(n)/4+Math.abs(h)/10));
- this.vx=n/r,this.vy=h/r-this.coinGravity*(r-1)*.6,this.flying=!0}
- get isOrbiting(){
- return 0!==this.orbitPhase}
- get isStormOrbiting(){
- return 4===this.orbitPhase}
- absorbIntoStorm(t,i,s,e,n){
- if(0!==this.orbitPhase)return!1;
- if(this.removed)return!1;
- this.inStorm=!0,this.flying=!1,this.vx=0,this.vy=0,this.orbitCenterX=t,this.orbitCenterY=i;
- const h=this.x-t,r=(this.y-i)/.6;
- return this.orbitAngle=h*h+r*r>1?Math.atan2(r,h):0,this.orbitRadius=s,this.orbitSpeed=e,this.orbitDir=n,this.orbitPhase=4,this.orbitTimer=0,this.lifeTimer=0,!0}
- releaseFromStorm(){
- if(4!==this.orbitPhase)return;
- const t=16+6*this.random.next();
- this.burstVx=Math.cos(this.orbitAngle)*t,this.burstVy=Math.sin(this.orbitAngle)*t*.9;
- const i=Math.sin(this.orbitAngle);
- this.landY=this.orbitCenterY+115+110*Math.max(0,i),this.orbitPhase=3,this.burstTimer=0,this.inStorm=!1}
- lift(){
- 0===this.orbitPhase&&(this.y-=4+4*Math.random())}
- joinPath(t,i,s,e,n){
- this.flying=!1,this.vx=0,this.vy=0,this.orbitCenterX=t,this.orbitCenterY=i,this.orbitSpeed=e,this.orbitDir=n,this.orbitRadius=s,this.orbitOwner=null,this.orbitTimer=0,this.lifeTimer=0;
- const h=this.x-t,r=this.y-i;
- this.orbitAngle=Math.atan2(r/.6,h),this.flyStartX=this.x,this.flyStartY=this.y,this.flyTargetX=t+Math.cos(this.orbitAngle)*s,this.flyTargetY=i+Math.sin(this.orbitAngle)*s*.6,this.orbitPhase=1}
- startLane(t,i,s,e,n){
- this.joinPath(t,i,s,e,n)}
- startOrbit(t,i,s,e,n=null){
- this.joinPath(t,i,120,e,this.random.next()<.6?1:-1),this.orbitOwner=n}
- startCapture(t,i,s,e,n,h,r=null){
- this.joinPath(t,i,120,h,n),this.orbitOwner=r}
- execute(){
- if(!this.removed)if(this.launchDelay>0)this.launchDelay--;
- else{
- if(1===this.orbitPhase){
- const i=this.orbitTimer/t.FLY_FRAMES,s=1-(1-i)*(1-i);
- return this.x=this.flyStartX+(this.flyTargetX-this.flyStartX)*s,this.y=this.flyStartY+(this.flyTargetY-this.flyStartY)*s,void(++this.orbitTimer>=t.FLY_FRAMES&&(this.x=this.flyTargetX,this.y=this.flyTargetY,this.orbitTimer=0,this.orbitPhase=2))}
- if(2!==this.orbitPhase){
- if(4===this.orbitPhase)return this.orbitAngle+=this.orbitSpeed*this.orbitDir,this.x=this.orbitCenterX+Math.cos(this.orbitAngle)*this.orbitRadius,void(this.y=this.orbitCenterY+Math.sin(this.orbitAngle)*this.orbitRadius*.6);
- if(3===this.orbitPhase)return this.x+=this.burstVx,this.y+=this.burstVy,this.burstVx*=.95,this.burstVy=.95*this.burstVy+.8,this.checkOrbitHit(),this.burstVy>0&&this.y>=this.landY?(this.y=this.landY,this.orbitPhase=0,this.lifeTimer=0,void(this.flying=!1)):void(++this.burstTimer>=t.BURST_FRAMES&&(this.orbitPhase=0,this.lifeTimer=0,this.landY=this.y,this.flying=!1));
- if(this.flying&&this.straight){
- this.x+=this.vx,this.y+=this.vy,this.rotation+=.4;
- const t=this.tgtX-this.x,i=this.tgtY-this.y;
- if(t*this.vx+i*this.vy<=0||t*t+i*i<100){
- if(this.oneShot)return this.oneShotHit(),void this.remove();
- this.flying=!1}
- return}
- if(this.flying)return this.x+=this.vx,this.y+=this.vy,this.vy+=this.coinGravity,this.vy>0&&this.y>=this.landY&&(this.y=this.landY,this.vx=0,this.vy=0,this.flying=!1,this.oneShot)?(this.oneShotHit(),void this.remove()):void 0;
- ++this.lifeTimer>=this.lifeDuration&&(this.owner&&"function"==typeof this.owner.onCoinExpired&&this.owner.onCoinExpired(),this.remove())}
- else if(this.orbitAngle+=this.orbitSpeed*this.orbitDir,this.x=this.orbitCenterX+Math.cos(this.orbitAngle)*this.orbitRadius,this.y=this.orbitCenterY+Math.sin(this.orbitAngle)*this.orbitRadius*.6,this.checkOrbitHit(),++this.orbitTimer>=t.ORBIT_FRAMES)if(this.inStorm)this.orbitPhase=4,this.orbitTimer=0;
- else{
- const t=12+6*this.random.next(),i=-Math.sin(this.orbitAngle)*this.orbitDir,s=Math.cos(this.orbitAngle)*this.orbitDir*.6,e=Math.sqrt(i*i+s*s);
- this.burstVx=i/e*t,this.burstVy=s/e*t,this.landY=this.orbitCenterY+115,this.orbitPhase=3,this.burstTimer=0}
- }
- }
- oneShotHit(){
- if(this.goblinTarget)return this.goblinTarget.hitByHero(),void(this.goblinTarget=null);
- if(!this.owner)return;
- const i=this.owner,s=this.damagePercent>0?this.damagePercent:.6,e=this.target;
- if(e&&e.isAlive&&!e.isUntagetable)return void i.doDamage(e,s,!0);
- const n=t.ONESHOT_RADIUS*t.ONESHOT_RADIUS;
- for(const t of i.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- const e=t.x-this.x,h=t.y-this.y;
- if(e*e+h*h<=n)return void i.doDamage(t,s,!0)}
- }
- checkOrbitHit(){
- if(!this.owner)return;
- const i=this.owner,s=4===this.orbitPhase||3===this.orbitPhase,e=s?22:20,n=s?250:20,h=e*e,r=n*n,o="number"==typeof i.goldDmgMultiplier?i.goldDmgMultiplier:1,a=(this.damagePercent>0?this.damagePercent:.6)*o;
- for(const[t,c]of this.hitCooldowns)c<=1?this.hitCooldowns.delete(t):this.hitCooldowns.set(t,c-1);
- for(const c of i.enemyList){
- if(s&&t.burstHitCount>=t.BURST_TOTAL_HIT_CAP)break;
- if(!c.isAlive||c.isUntagetable)continue;
- if(this.hitCooldowns.has(c))continue;
- const e=c.x-this.x,n=c.y-this.y;
- e*e/h+n*n/r<=1&&(i.doDamage(c,a,!0),this.hitCooldowns.set(c,t.HIT_COOLDOWN),s&&t.burstHitCount++)}
- }
- }
- ;
- qt(XK,"AladinCoin1"),Yt(XK,"ONESHOT_RADIUS",34),Yt(XK,"STRAIGHT_SPEED",12),Yt(XK,"HIT_COOLDOWN",30),Yt(XK,"BURST_TOTAL_HIT_CAP",10),Yt(XK,"burstHitCount",0),Yt(XK,"FLY_FRAMES",40),Yt(XK,"ORBIT_FRAMES",140),Yt(XK,"BURST_FRAMES",60),Yt(XK,"MAP_MIN_X",60),Yt(XK,"MAP_MAX_X",580),Yt(XK,"MAP_MIN_Y",60),Yt(XK,"MAP_MAX_Y",580);
- let JK=XK;
- const QK=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"pierceTimer",0),Yt(this,"hitCooldowns",new Map)}
- initializeTextureName(){
- this.className=Vj.BladeWave1,this.textureName="BladeWave10",this.sheetName="Game1"}
- initializeData(){
- this.hitClassName="PhysicalHitEffect",this.g=0,this.speed=9,this.flyEnd=8,this.incFrame=1}
- setData(i=1){
- super.setData(i),this.pierceTimer=0,this.hitCooldowns.clear(),this.sp&&this.sp.scale.set(t.SCALE)}
- play(){
- this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"PhysicalHitEffect",this.battleController&&this.battleController.addWeapon(this)}
- calculateTrajectory(){
- }
- execute(){
- if(this.removed)return;
- if(this.pierceTimer++,this.pierceTimer>=t.LIFETIME)return void super.remove();
- this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0);
- const i=Math.floor(this.currentFrame);
- this.sp&&i<this.textures.length&&(this.sp.texture=this.textures[i]),this.isOutOfField(260)?super.remove():this.checkPierceHit()}
- checkPierceHit(){
- if(!this.owner)return;
- const i=t.HIT_RADIUS*t.HIT_RADIUS;
- for(const[t,s]of this.hitCooldowns)s<=1?this.hitCooldowns.delete(t):this.hitCooldowns.set(t,s-1);
- for(const t of this.owner.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- if(this.hitCooldowns.has(t))continue;
- const s=t.x-this.x,e=t.y-this.y;
- if(s*s+e*e<=i){
- const i=this.owner.evolStage>=1;
- this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),i&&t.knockBack(this.vx>0?2:-2,-1,20),this.hitCooldowns.set(t,20)}
- }
- }
- }
- ;
- qt(QK,"BladeWave1"),Yt(QK,"SCALE",3),Yt(QK,"HIT_RADIUS",35),Yt(QK,"LIFETIME",100);
- let ZK=QK;
- const tz=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"pierceTimer",0),Yt(this,"hitCooldowns",new Map),Yt(this,"uniqueTargets",new Set)}
- initializeTextureName(){
- this.className=Vj.SpinBlade,this.textureName=Vj.SpinBlade,this.sheetName="Game1"}
- initializeData(){
- this.hitClassName="PhysicalHitEffect",this.g=0,this.speed=9,this.flyEnd=6,this.incFrame=1}
- setData(i=1){
- super.setData(i),this.pierceTimer=0,this.hitCooldowns?this.hitCooldowns.clear():this.hitCooldowns=new Map,this.uniqueTargets?this.uniqueTargets.clear():this.uniqueTargets=new Set,this.sp&&this.sp.scale.set(t.SCALE)}
- play(){
- this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"PhysicalHitEffect",this.battleController&&this.battleController.addWeapon(this)}
- calculateTrajectory(){
- }
- execute(){
- if(this.removed)return;
- if(this.pierceTimer++,this.pierceTimer>=t.LIFETIME)return void super.remove();
- this.x+=this.vx,this.y+=this.vy,this.rotation+=.3,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0);
- const i=Math.floor(this.currentFrame);
- this.sp&&i<this.textures.length&&(this.sp.texture=this.textures[i]),this.isOutOfField(260)?super.remove():this.checkPierceHit()}
- checkPierceHit(){
- if(!this.owner)return;
- const i=t.HIT_RADIUS*t.HIT_RADIUS;
- for(const[t,s]of this.hitCooldowns)s<=1?this.hitCooldowns.delete(t):this.hitCooldowns.set(t,s-1);
- for(const s of this.owner.enemyList){
- if(!s.isAlive||s.isUntagetable)continue;
- if(this.hitCooldowns.has(s))continue;
- const e=s.x-this.x,n=s.y-this.y;
- if(e*e+n*n<=i){
- if(!this.uniqueTargets.has(s)){
- if(this.uniqueTargets.size>=t.MAX_TARGETS)continue;
- this.uniqueTargets.add(s)}
- this.owner.doDamage(s,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),s.knockBack(this.vx>0?3:-3,-2,25),this.hitCooldowns.set(s,20)}
- }
- }
- }
- ;
- qt(tz,"SpinBlade"),Yt(tz,"SCALE",2),Yt(tz,"HIT_RADIUS",22),Yt(tz,"LIFETIME",100),Yt(tz,"MAX_TARGETS",8);
- let iz=tz;
- const sz=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"flightTimer",0),Yt(this,"hasHit",!1)}
- initializeTextureName(){
- this.className=Vj.CrowKnightBullet1,this.textureName=Vj.CrowKnightBullet1,this.sheetName="Game1",this.scale.set(.8)}
- initializeData(){
- this.hitClassName="MagicalHitEffect",this.g=0,this.speed=16,this.flyEnd=1,this.incFrame=0,this.flightTimer=0}
- setData(t=1){
- super.setData(t),this.flightTimer=0,this.hasHit=!1,this.visible=!0,this.removed=!1,this.scale.set(.8)}
- play(){
- this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"MagicalHitEffect",(this.battleController||Nai.getInstance()).addWeapon(this)}
- calculateTrajectory(){
- }
- execute(){
- if(this.removed||this.hasHit)return;
- if(this.flightTimer++,this.flightTimer>=t.LIFETIME)return void super.remove();
- if(this.x+=this.vx,this.y+=this.vy,this.isOutOfField(260))return void super.remove();
- if(!this.owner)return;
- const i=t.HIT_RADIUS*t.HIT_RADIUS;
- for(const t of this.owner.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- const s=t.getHitCenter(),e=s.x-this.x,n=s.y-this.y;
- if(e*e+n*n<=i)return this.hasHit=!0,this.vx=0,this.vy=0,this.visible=!1,this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),this.owner.evolStage>=1&&t.stun(30),void this.remove()}
- }
- }
- ;
- qt(sz,"CrowKnightBullet1"),Yt(sz,"LIFETIME",60),Yt(sz,"HIT_RADIUS",40);
- let ez=sz;
- const nz=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"explodeDmgBonus",0),Yt(this,"explodeRangeBonus",0),Yt(this,"isLordCrow",!1),Yt(this,"flightTimer",0),Yt(this,"hoverUntil",0),Yt(this,"isDiving",!1),Yt(this,"riseVx",0),Yt(this,"riseVy",0)}
- initializeTextureName(){
- this.className=Vj.CrowCompanion1,this.textureName=Vj.CrowCompanion1,this.sheetName="Game1"}
- initializeData(){
- this.hitClassName="MagicalHitEffect",this.g=0,this.speed=t.DIVE_SPEED,this.flyEnd=8,this.incFrame=1,this.weaponScale=1.3}
- setData(i=1){
- super.setData(i),this.flightTimer=0,this.isDiving=!1,this.explodeDmgBonus=0,this.explodeRangeBonus=0,this.isLordCrow=!1;
- const s=t.HOVER_FRAMES_MIN+Math.floor(Math.random()*(t.HOVER_FRAMES_MAX-t.HOVER_FRAMES_MIN+1));
- this.hoverUntil=t.RISE_FRAMES+s;
- const e=-Math.PI/2+(Math.random()-.5)*(2*Math.PI/3);
- this.riseVx=Math.cos(e)*t.RISE_SPEED,this.riseVy=Math.sin(e)*t.RISE_SPEED}
- calculateTrajectory(){
- }
- execute(){
- if(!this.removed)if(this.flightTimer++,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0),this.sp&&(this.sp.texture=this.textures[Math.floor(this.currentFrame)]),this.flightTimer>=t.MAX_FLIGHT)this.explode();
- else{
- if(this.flightTimer<=t.RISE_FRAMES?(this.vx=this.riseVx,this.vy=this.riseVy):this.flightTimer<=this.hoverUntil?(this.vx=0,this.vy=0):this.isDiving=!0,this.isDiving&&this.target&&!this.target.removed){
- const i=this.target.x-this.x,s=this.target.y-this.y,e=Math.sqrt(i*i+s*s);
- if(e<t.DIVE_SPEED+2)return void this.explode();
- this.vx=i/e*t.DIVE_SPEED,this.vy=s/e*t.DIVE_SPEED}
- this.x+=this.vx,this.y+=this.vy,0===this.vx&&0===this.vy||(this.rotation=Math.atan2(this.vy,this.vx))}
- }
- explode(){
- var i;
- const s=this.owner,e=jj.getEffect(yH.CrowExplosion1);
- if(e.scale.set(2.5),e.x=this.x,e.y=this.y,e.start(30),TB.getInstance().addChild(e),s){
- const e=t.EXPLODE_RANGE+this.explodeRangeBonus,n=e*e,h=t.EXPLODE_DMG+this.explodeDmgBonus;
- let r=0;
- for(const o of s.enemyList){
- if(r>=t.EXPLODE_MAX_TARGETS)break;
- if(!o.isAlive||o.isUntagetable)continue;
- const e=o.x-this.x,a=o.y-this.y;
- if(e*e+a*a<=n){
- const t=o.isAlive;
- s.doDamage(o,this.damagePercent*h,!0),r++,!t||o.isAlive||this.isLordCrow||null==(i=s.onCrowKill)||i.call(s)}
- }
- }
- super.remove()}
- remove(){
- this.explode()}
- }
- ;
- qt(nz,"CrowCompanion1"),Yt(nz,"EXPLODE_DMG",.5),Yt(nz,"EXPLODE_RANGE",75),Yt(nz,"EXPLODE_MAX_TARGETS",2),Yt(nz,"RISE_SPEED",9),Yt(nz,"RISE_FRAMES",14),Yt(nz,"HOVER_FRAMES_MIN",24),Yt(nz,"HOVER_FRAMES_MAX",36),Yt(nz,"DIVE_SPEED",13),Yt(nz,"MAX_FLIGHT",130);
- let hz=nz;
- const rz=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"flightTimer",0),Yt(this,"currentAngle",0),Yt(this,"targetX",0),Yt(this,"targetY",0)}
- initializeTextureName(){
- this.className=Vj.CrowGuidedBall1,this.textureName=Vj.DarkMageBall1}
- initializeData(){
- this.hitClassName="MagicalHitEffect",this.g=0,this.speed=10,this.flyEnd=4,this.incFrame=1,this.weaponScale=1.6}
- setData(t=1){
- super.setData(t),this.flightTimer=0,this.currentAngle=Math.atan2(this.vy,this.vx),this.visible=!0,this.removed=!1,this.sp&&this.sp.scale.set(1.6)}
- calculateTrajectory(){
- }
- execute(){
- if(this.removed)return;
- if(this.flightTimer++,this.flightTimer>=t.LIFETIME)return void this.explode();
- if(this.flightTimer>t.DRIFT_FRAMES){
- let i=Math.atan2(this.targetY-this.y,this.targetX-this.x)-this.currentAngle;
- for(;
- i>Math.PI;
- )i-=2*Math.PI;
- for(;
- i<-Math.PI;
- )i+=2*Math.PI;
- const s=Math.min(1,(this.flightTimer-t.DRIFT_FRAMES)/t.TURN_ACCEL_F),e=t.TURN_RATE_BASE+(t.TURN_RATE_MAX-t.TURN_RATE_BASE)*s,n=Math.max(-e,Math.min(e,i));
- this.currentAngle+=n}
- this.vx=Math.cos(this.currentAngle)*this.speed,this.vy=Math.sin(this.currentAngle)*this.speed,this.rotation=this.currentAngle,this.x+=this.vx,this.y+=this.vy,this.currentFrame+=this.incFrame,this.currentFrame>=this.flyEnd&&(this.currentFrame=0);
- const i=Math.floor(this.currentFrame);
- if(this.sp&&i<this.textures.length&&(this.sp.texture=this.textures[i]),this.isOutOfField(260))return void this.explode();
- const s=this.targetX-this.x,e=this.targetY-this.y;
- s*s+e*e<=t.ARRIVE_DIST*t.ARRIVE_DIST&&this.explode()}
- explode(){
- const i=jj.getEffect(yH.AbyssSkillExplosion1);
- if(i.scale.set(1.7),i.x=this.x,i.y=this.y,i.start(20),TB.getInstance().addChild(i),this.owner){
- const i=t.EXPLODE_RANGE*t.EXPLODE_RANGE,s=[];
- for(const t of this.owner.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- const e=t.x-this.x,n=t.y-this.y;
- e*e+n*n<=i&&s.push(t)}
- s.sort((t,i)=>(t.x-this.x)**2+(t.y-this.y)**2-((i.x-this.x)**2+(i.y-this.y)**2));
- const e=Math.min(t.EXPLODE_MAX,s.length);
- for(let t=0;
- t<e;
- t++)this.owner.doDamage(s[t],this.damagePercent,!0)}
- super.remove()}
- remove(){
- this.explode()}
- }
- ;
- qt(rz,"CrowGuidedBall1"),Yt(rz,"LIFETIME",120),Yt(rz,"EXPLODE_RANGE",95),Yt(rz,"EXPLODE_MAX",3),Yt(rz,"ARRIVE_DIST",12),Yt(rz,"DRIFT_FRAMES",6),Yt(rz,"TURN_RATE_BASE",.05),Yt(rz,"TURN_RATE_MAX",.11),Yt(rz,"TURN_ACCEL_F",30);
- let oz=rz;
- const az=class t extends zj{
- constructor(){
- super(...arguments),Yt(this,"flightTimer",0)}
- initializeTextureName(){
- this.className=Vj.CrowFeatherShot1,this.textureName=Vj.CrowKnightBullet1,this.sheetName="Game1",this.scale.set(t.SCALE)}
- initializeData(){
- this.hitClassName="MagicalHitEffect",this.g=0,this.speed=14,this.flyEnd=1,this.incFrame=0,this.flightTimer=0}
- setData(i=1){
- super.setData(i),this.flightTimer=0,this.visible=!0,this.removed=!1,this.scale.set(t.SCALE)}
- play(){
- this.visible=!0,this.removed=!1,this.isActive=!0,this.resolvedHitClassName=this.hitClassName||"MagicalHitEffect",(this.battleController||Nai.getInstance()).addWeapon(this)}
- calculateTrajectory(){
- }
- execute(){
- if(this.removed)return;
- if(this.flightTimer++,this.flightTimer>=t.LIFETIME)return void super.remove();
- if(this.x+=this.vx,this.y+=this.vy,this.isOutOfField(260))return void super.remove();
- if(!this.owner)return;
- const i=t.HIT_RADIUS*t.HIT_RADIUS;
- for(const t of this.owner.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- const s=t.x-this.x,e=t.y-this.y;
- if(s*s+e*e<=i)return this.owner.doDamage(t,this.damagePercent,!0),this.showHitEffect(this.resolvedHitClassName),void super.remove()}
- }
- }
- ;
- qt(az,"CrowFeatherShot1"),Yt(az,"LIFETIME",60),Yt(az,"HIT_RADIUS",14),Yt(az,"SCALE",.55);
- let cz=az;
- var lz=(t=>(t[t.NONE=0]="NONE",t[t.OrcHunter1_RANGEEVADE_BUFF=1]="OrcHunter1_RANGEEVADE_BUFF",t[t.OrcRapterRider1_MOVESPEED_DEBUFF=2]="OrcRapterRider1_MOVESPEED_DEBUFF",t[t.Succubus1_MOVESPEED_BUFF=3]="Succubus1_MOVESPEED_BUFF",t[t.Succubus1_ATTACKSPEED_BUFF=4]="Succubus1_ATTACKSPEED_BUFF",t[t.ScorpionPoisonBullet_MOVESPEED_DEBUFF=5]="ScorpionPoisonBullet_MOVESPEED_DEBUFF",t[t.ScorpionPoisonBullet_ATTACKSPEED_DEBUFF=6]="ScorpionPoisonBullet_ATTACKSPEED_DEBUFF",t[t.DrillSl1_PENETRATE_BUFF=11]="DrillSl1_PENETRATE_BUFF",t[t.DrillSl1_SKILL2_BUFF=12]="DrillSl1_SKILL2_BUFF",t[t.DrillSl1_SKILL3_BUFF=13]="DrillSl1_SKILL3_BUFF",t[t.DrillSl1_SKILL4_BUFF=14]="DrillSl1_SKILL4_BUFF",t[t.DrillSl1_ROSTER_BUFF=15]="DrillSl1_ROSTER_BUFF",t[t.BombSl1_SKILL2_BUFF=21]="BombSl1_SKILL2_BUFF",t[t.BombSl1_SKILL3_BUFF=22]="BombSl1_SKILL3_BUFF",t[t.BombSl1_SKILL4_BUFF=23]="BombSl1_SKILL4_BUFF",t[t.BombSl1_ROSTER_BUFF=24]="BombSl1_ROSTER_BUFF",t[t.NurSl1_SKILL2_BUFF=31]="NurSl1_SKILL2_BUFF",t[t.NurSl1_ROSTER_BUFF=32]="NurSl1_ROSTER_BUFF",t[t.MagmaSl1_SKILL2_BUFF=41]="MagmaSl1_SKILL2_BUFF",t[t.MagmaSl1_SKILL3_BUFF=42]="MagmaSl1_SKILL3_BUFF",t[t.MagmaSl1_ROSTER_BUFF=43]="MagmaSl1_ROSTER_BUFF",t[t.TreebarkSl1_SKILL2_BUFF=51]="TreebarkSl1_SKILL2_BUFF",t[t.TreebarkSl1_SKILL3_BUFF=52]="TreebarkSl1_SKILL3_BUFF",t[t.TreebarkSl1_ROSTER_BUFF=53]="TreebarkSl1_ROSTER_BUFF",t[t.IcespearSl1_SKILL2_BUFF=61]="IcespearSl1_SKILL2_BUFF",t[t.IcespearSl1_SKILL3_BUFF=62]="IcespearSl1_SKILL3_BUFF",t[t.IcespearSl1_SKILL4_BUFF=63]="IcespearSl1_SKILL4_BUFF",t[t.IcespearSl1_ROSTER_BUFF=64]="IcespearSl1_ROSTER_BUFF",t[t.VinewhipSl1_SKILL2_BUFF=71]="VinewhipSl1_SKILL2_BUFF",t[t.VinewhipSl1_SKILL3_BUFF=72]="VinewhipSl1_SKILL3_BUFF",t[t.VinewhipSl1_SKILL4_BUFF=73]="VinewhipSl1_SKILL4_BUFF",t[t.VinewhipSl1_ROSTER_BUFF=74]="VinewhipSl1_ROSTER_BUFF",t[t.FlamecannonSl1_SKILL2_BUFF=81]="FlamecannonSl1_SKILL2_BUFF",t[t.FlamecannonSl1_SKILL3_BUFF=82]="FlamecannonSl1_SKILL3_BUFF",t[t.FlamecannonSl1_SKILL4_BUFF=83]="FlamecannonSl1_SKILL4_BUFF",t[t.FlamecannonSl1_ROSTER_BUFF=84]="FlamecannonSl1_ROSTER_BUFF",t[t.IcebowSl1_SKILL2_BUFF=91]="IcebowSl1_SKILL2_BUFF",t[t.IcebowSl1_SKILL3_BUFF=92]="IcebowSl1_SKILL3_BUFF",t[t.IcebowSl1_SKILL4_BUFF=93]="IcebowSl1_SKILL4_BUFF",t[t.IcebowSl1_ROSTER_BUFF=94]="IcebowSl1_ROSTER_BUFF",t[t.FlowerSl1_SKILL2_BUFF=101]="FlowerSl1_SKILL2_BUFF",t[t.FlowerSl1_ROSTER_BUFF=102]="FlowerSl1_ROSTER_BUFF",t[t.HotpoolSl1_SKILL2_BUFF=111]="HotpoolSl1_SKILL2_BUFF",t[t.HotpoolSl1_ROSTER_BUFF=112]="HotpoolSl1_ROSTER_BUFF",t[t.HotpoolSl1_DAMAGE_BUFF=113]="HotpoolSl1_DAMAGE_BUFF",t[t.GlacierSl1_SKILL2_BUFF=114]="GlacierSl1_SKILL2_BUFF",t[t.GlacierSl1_SKILL3_BUFF=115]="GlacierSl1_SKILL3_BUFF",t[t.GlacierSl1_ROSTER_BUFF=116]="GlacierSl1_ROSTER_BUFF",t[t.GlacierSl1_SKILL4_BUFF=117]="GlacierSl1_SKILL4_BUFF",t[t.FladiatorSl1_SKILL2_BUFF=118]="FladiatorSl1_SKILL2_BUFF",t[t.FladiatorSl1_SKILL3_BUFF=119]="FladiatorSl1_SKILL3_BUFF",t[t.FladiatorSl1_SKILL4_BUFF=120]="FladiatorSl1_SKILL4_BUFF",t[t.FladiatorSl1_ROSTER_BUFF=121]="FladiatorSl1_ROSTER_BUFF",t[t.FladiatorSl1_CRTICAL_BUFF=122]="FladiatorSl1_CRTICAL_BUFF",t[t.ManaBloomSl1_SKILL2_BUFF=123]="ManaBloomSl1_SKILL2_BUFF",t[t.ManaBloomSl1_SKILL3_BUFF=124]="ManaBloomSl1_SKILL3_BUFF",t[t.ManaBloomSl1_SKILL4_BUFF=125]="ManaBloomSl1_SKILL4_BUFF",t[t.ManaBloomSl1_ROSTER_BUFF=126]="ManaBloomSl1_ROSTER_BUFF",t[t.ClearSl1_SKILL2_BUFF=127]="ClearSl1_SKILL2_BUFF",t[t.ClearSl1_ROSTER_BUFF=128]="ClearSl1_ROSTER_BUFF",t[t.SlimeRacing_DAMAGE_BUFF=129]="SlimeRacing_DAMAGE_BUFF",t[t.SlimeRacing_ATTACK_SPEED_BUFF=130]="SlimeRacing_ATTACK_SPEED_BUFF",t[t.SlimeRacing_MOVE_SPEED_BUFF=131]="SlimeRacing_MOVE_SPEED_BUFF",t[t.RACE_REVIVE_MOVE_SPEED_BUFF=132]="RACE_REVIVE_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_MOVE_SPEED_BUFF=133]="RACE_CHEERUP_MOVE_SPEED_BUFF",t[t.RACE_CHEERUP_ATTACK_SPEED_BUFF=134]="RACE_CHEERUP_ATTACK_SPEED_BUFF",t[t.EXCAVATION_ENCOUNTER_DEFENSE_BUFF=135]="EXCAVATION_ENCOUNTER_DEFENSE_BUFF",t[t.SteelbashSl1_SKILL2_BUFF=136]="SteelbashSl1_SKILL2_BUFF",t[t.SteelbashSl1_SKILL3_BUFF=137]="SteelbashSl1_SKILL3_BUFF",t[t.SteelbashSl1_ROSTER_BUFF=138]="SteelbashSl1_ROSTER_BUFF",t[t.FlamdancerSl1_SKILL2_BUFF=139]="FlamdancerSl1_SKILL2_BUFF",t[t.FlamdancerSl1_SKILL3_BUFF=140]="FlamdancerSl1_SKILL3_BUFF",t[t.FlamdancerSl1_ROSTER_BUFF=141]="FlamdancerSl1_ROSTER_BUFF",t[t.FrostreaverSl1_SKILL2_BUFF=142]="FrostreaverSl1_SKILL2_BUFF",t[t.FrostreaverSl1_SKILL3_BUFF=143]="FrostreaverSl1_SKILL3_BUFF",t[t.FrostreaverSl1_ROSTER_BUFF=144]="FrostreaverSl1_ROSTER_BUFF",t[t.ThornjaSl1_SKILL2_BUFF=145]="ThornjaSl1_SKILL2_BUFF",t[t.ThornjaSl1_SKILL3_BUFF=146]="ThornjaSl1_SKILL3_BUFF",t[t.ThornjaSl1_SKILL4_BUFF=147]="ThornjaSl1_SKILL4_BUFF",t[t.ThornjaSl1_ROSTER_BUFF=148]="ThornjaSl1_ROSTER_BUFF",t[t.RACE_MAPTYPE1_ATKSPD_BUFF=149]="RACE_MAPTYPE1_ATKSPD_BUFF",t[t.RACE_MAPTYPE1_MOVESPD_BUFF=150]="RACE_MAPTYPE1_MOVESPD_BUFF",t[t.GearbladeSl1_SKILL2_BUFF=151]="GearbladeSl1_SKILL2_BUFF",t[t.GearbladeSl1_SKILL3_BUFF=152]="GearbladeSl1_SKILL3_BUFF",t[t.GearbladeSl1_SKILL4_BUFF=153]="GearbladeSl1_SKILL4_BUFF",t[t.GearbladeSl1_ROSTER_BUFF=154]="GearbladeSl1_ROSTER_BUFF",t[t.EmbersageSl1_SKILL2_BUFF=155]="EmbersageSl1_SKILL2_BUFF",t[t.EmbersageSl1_ROSTER_BUFF=156]="EmbersageSl1_ROSTER_BUFF",t[t.TidecallerSl1_SKILL2_BUFF=157]="TidecallerSl1_SKILL2_BUFF",t[t.TidecallerSl1_ROSTER_BUFF=158]="TidecallerSl1_ROSTER_BUFF",t[t.GrovewardenSl1_SKILL2_BUFF=159]="GrovewardenSl1_SKILL2_BUFF",t[t.GrovewardenSl1_SKILL3_BUFF=160]="GrovewardenSl1_SKILL3_BUFF",t[t.GrovewardenSl1_ROSTER_BUFF=161]="GrovewardenSl1_ROSTER_BUFF",t[t.FrankenSl1_SKILL2_BUFF=162]="FrankenSl1_SKILL2_BUFF",t[t.FrankenSl1_ROSTER_BUFF=164]="FrankenSl1_ROSTER_BUFF",t[t.WolfSl1_SKILL2_BUFF=165]="WolfSl1_SKILL2_BUFF",t[t.WolfSl1_SKILL3_BUFF=166]="WolfSl1_SKILL3_BUFF",t[t.WolfSl1_SKILL4_BUFF=167]="WolfSl1_SKILL4_BUFF",t[t.WolfSl1_ROSTER_BUFF=168]="WolfSl1_ROSTER_BUFF",t[t.BatSl1_SKILL2_BUFF=169]="BatSl1_SKILL2_BUFF",t[t.BatSl1_SKILL3_BUFF=170]="BatSl1_SKILL3_BUFF",t[t.BatSl1_SKILL4_BUFF=171]="BatSl1_SKILL4_BUFF",t[t.BatSl1_ROSTER_BUFF=172]="BatSl1_ROSTER_BUFF",t[t.SkullSl1_SKILL2_BUFF=173]="SkullSl1_SKILL2_BUFF",t[t.SkullSl1_ROSTER_BUFF=174]="SkullSl1_ROSTER_BUFF",t[t.Bomber1_ATKSPD_BUFF=200]="Bomber1_ATKSPD_BUFF",t[t.Bomber1_MOVESPD_BUFF=201]="Bomber1_MOVESPD_BUFF",t[t.TigerRider1_ATKSPD_BUFF=210]="TigerRider1_ATKSPD_BUFF",t[t.TigerRider1_MOVESPD_BUFF=211]="TigerRider1_MOVESPD_BUFF",t[t.Sylphid1_ATKSPD_STACK=220]="Sylphid1_ATKSPD_STACK",t[t.WyvernRider1_ATKSPD_BUFF=230]="WyvernRider1_ATKSPD_BUFF",t[t.WyvernRider1_MOVESPD_BUFF=231]="WyvernRider1_MOVESPD_BUFF",t[t.WyvernRider1_ATKDMG_BUFF=232]="WyvernRider1_ATKDMG_BUFF",t[t.WingKnight1_FLASH_BUFF=240]="WingKnight1_FLASH_BUFF",t[t.WingKnight1_DASH_BUFF=241]="WingKnight1_DASH_BUFF",t[t.WingKnight1_BERSERK_ATKSPD=242]="WingKnight1_BERSERK_ATKSPD",t[t.WingKnight1_BERSERK_ATKDMG=243]="WingKnight1_BERSERK_ATKDMG",t[t.WingKnight1_FLASH_MOVSPD=244]="WingKnight1_FLASH_MOVSPD",t[t.WingKnight1_FLASH_ATKSPD=245]="WingKnight1_FLASH_ATKSPD",t[t.BladeMaster1_KILL_ATKSPD=250]="BladeMaster1_KILL_ATKSPD",t[t.BladeMaster1_KILL_ATKDMG=251]="BladeMaster1_KILL_ATKDMG",t[t.BladeMaster1_RANGE_ATKSPD=252]="BladeMaster1_RANGE_ATKSPD",t[t.BladeMaster1_MELEE_MOVESPD=253]="BladeMaster1_MELEE_MOVESPD",t[t.BladeMaster1_MELEE_ATKDMG=254]="BladeMaster1_MELEE_ATKDMG",t[t.BladeMaster1_RUSH_ATKSPD=255]="BladeMaster1_RUSH_ATKSPD",t[t.BladeMaster1_RUSH_MOVESPD=256]="BladeMaster1_RUSH_MOVESPD",t[t.BladeMaster1_BLINK_MOVESPD=257]="BladeMaster1_BLINK_MOVESPD",t[t.Aladin1_SAND_SLOW=260]="Aladin1_SAND_SLOW",t[t.Aladin1_BLESSING_ATKDMG=261]="Aladin1_BLESSING_ATKDMG",t[t.Druid1_VINE_ATKDMG=270]="Druid1_VINE_ATKDMG",t[t.Druid1_VINE_DEFENSE=271]="Druid1_VINE_DEFENSE",t[t.Druid1_VINE_ATKSPD=272]="Druid1_VINE_ATKSPD",t[t.CrowKnight1_ORBIT_ATKSPD=280]="CrowKnight1_ORBIT_ATKSPD",t[t.CrowKnight1_ORBIT_ATKDMG=281]="CrowKnight1_ORBIT_ATKDMG",t[t.Succubus2_CHARM_ATKSPD=290]="Succubus2_CHARM_ATKSPD",t[t.Succubus2_CHARM_MOVSPD=291]="Succubus2_CHARM_MOVSPD",t[t.RaidEmblemRogue_ACTIVE_ATKSPD=300]="RaidEmblemRogue_ACTIVE_ATKSPD",t[t.RaidEmblemRogue_ACTIVE_ATKDMG=301]="RaidEmblemRogue_ACTIVE_ATKDMG",t[t.RaidEmblemMage_BOSS_ATKSPD=302]="RaidEmblemMage_BOSS_ATKSPD",t[t.RaidEmblemMage_BOSS_DEFENSE=303]="RaidEmblemMage_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_DEFENSE=304]="RaidWeakpoint_BOSS_DEFENSE",t[t.RaidWeakpoint_BOSS_ATKSPD=305]="RaidWeakpoint_BOSS_ATKSPD",t[t.RaidWeakpoint_BOSS_MOVESPD=306]="RaidWeakpoint_BOSS_MOVESPD",t[t.RaidRune_ACTIVE_ATKSPD=310]="RaidRune_ACTIVE_ATKSPD",t[t.RaidRune_ACTIVE_ATKDMG=311]="RaidRune_ACTIVE_ATKDMG",t[t.RaidRune_PULSE_ATKDMG=312]="RaidRune_PULSE_ATKDMG",t[t.RaidRune_PULSE_ATKSPD=313]="RaidRune_PULSE_ATKSPD",t[t.RaidRune_PULSE_DEFENSE=314]="RaidRune_PULSE_DEFENSE",t[t.RaidRune_ALLOUT_ATKDMG=315]="RaidRune_ALLOUT_ATKDMG",t[t.RaidRune_ALLOUT_ATKSPD=316]="RaidRune_ALLOUT_ATKSPD",t[t.RaidRune_ACTIVE_CRIT=317]="RaidRune_ACTIVE_CRIT",t[t.RaidRune_BOSS_ATKSPD=320]="RaidRune_BOSS_ATKSPD",t[t.RaidRune_BOSS_DEFENSE=321]="RaidRune_BOSS_DEFENSE",t[t.RaidRune_BOSS_ATKDMG=322]="RaidRune_BOSS_ATKDMG",t[t.RaidRune_ARROW_DEFENSE=323]="RaidRune_ARROW_DEFENSE",t[t.RaidRune_COMBO_DEFENSE=324]="RaidRune_COMBO_DEFENSE",t[t.BURN_DEBUFF=1001]="BURN_DEBUFF",t[t.BLOODY_DEBUFF=1002]="BLOODY_DEBUFF",t[t.RACE_ROLETYPE_MOVE_SPEED_DEBUFF=1003]="RACE_ROLETYPE_MOVE_SPEED_DEBUFF",t[t.RACE_ROLETYPE_DAMAGE_DEBUFF=1004]="RACE_ROLETYPE_DAMAGE_DEBUFF",t[t.EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF=1005]="EXCAVATION_CRITICALHIT_DEFENSE_DEBUFF",t[t.RACE_MAPTYPE2_DEBUFF=1006]="RACE_MAPTYPE2_DEBUFF",t[t.TidecallerSl1_SKILL2_DEBUFF=1007]="TidecallerSl1_SKILL2_DEBUFF",t[t.RAID_BOSS1_DEBUFF=1008]="RAID_BOSS1_DEBUFF",t[t.MOSSGOLEM_DEFENSE_BUFF=1009]="MOSSGOLEM_DEFENSE_BUFF",t[t.WarpLanding_ATTACKSPEED_BUFF=1100]="WarpLanding_ATTACKSPEED_BUFF",t))(lz||{
- }
- );
- const uz=class t extends zj{
- initializeTextureName(){
- this.className=Vj.ScorpionPoisonBullet,this.sheetName="RaidBattle",this.textureName="PoisonBullet"}
- initializeData(){
- this.hitClassName="",this.g=0,this.speed=18,this.flyEnd=2,this.incFrame=1,this.minT=8,this.maxT=42,this.orientToPath=!0,this.weaponScale=1}
- onHit(){
- this.owner&&this.target&&this.target.isAlive&&(this.owner.doDamage(this.target,this.damagePercent,!0),this.target.isAlive&&(this.target.poison(t.POISON_DEBUFF_DURATION),this.target.addMoveSpeedBuff(lz.ScorpionPoisonBullet_MOVESPEED_DEBUFF,t.POISON_MOVE_SPEED_DEBUFF,t.POISON_DEBUFF_DURATION,!0),this.target.addAttackSpeedBuff(lz.ScorpionPoisonBullet_ATTACKSPEED_DEBUFF,t.POISON_ATTACK_SPEED_DEBUFF,t.POISON_DEBUFF_DURATION,!0))),this.displayExplodeEffect(),this.remove()}
- displayExplodeEffect(){
- const t=jj.getEffect(yH.PoisonExplodeEffect);
- t.x=this.x,t.y=this.y,t.setBattleController(this.battleController||Nai.getInstance()),t.start(24),TB.getInstance().addChild(t)}
- }
- ;
- qt(uz,"ScorpionPoisonBullet"),Yt(uz,"POISON_DEBUFF_DURATION",420),Yt(uz,"POISON_MOVE_SPEED_DEBUFF",-.5),Yt(uz,"POISON_ATTACK_SPEED_DEBUFF",-.3);
- let dz=uz;
- const fz=class t extends Fe{
- constructor(){
- super(),Yt(this,"g",new Uf),Yt(this,"radius",0),Yt(this,"aspectY",1),Yt(this,"fillColor",t.DEFAULT_FILL_COLOR),Yt(this,"strokeColor",t.DEFAULT_STROKE_COLOR),Yt(this,"fillAlphaScale",1),Yt(this,"crater",null),Yt(this,"craterTextures",[]),Yt(this,"fire",null),Yt(this,"fireTextures",[]),Yt(this,"craterTick",0),Yt(this,"craterOnly",!1),Yt(this,"fadeOutLeft",-1),Yt(this,"fadeOutTotal",0),this.eventMode="none",this.addChild(this.g)}
- show(i,s,e,n=1){
- this.x=i,this.y=s,this.radius=e,this.aspectY=n,this.fillColor=t.DEFAULT_FILL_COLOR,this.strokeColor=t.DEFAULT_STROKE_COLOR,this.fillAlphaScale=1,this.craterOnly=!1,this.fadeOutLeft=-1,this.fadeOutTotal=0,this.crater&&(this.crater.visible=!1),this.fire&&(this.fire.visible=!1),this.draw(.3,0),AB.getInstance().addChild(this)}
- showCrater(){
- if(this.craterOnly=!0,this.g.clear(),iS.hasSheet("RaidBattle")){
- this.craterTextures=[];
- for(let i=1;
- i<=t.CRATER_FRAME_COUNT;
- i++){
- const t=iS.getTexture("RaidBattle",`Crater${
- String(i).padStart(4,"0")}
- `);
- t&&this.craterTextures.push(t)}
- if(0!==this.craterTextures.length){
- this.crater||(this.crater=new je(this.craterTextures[0]),this.crater.anchor.set(.5),this.addChildAt(this.crater,0)),this.crater.texture=this.craterTextures[0],this.craterTick=0,this.crater.width=2*this.radius,this.crater.height=this.radius*this.aspectY*2,this.crater.alpha=0,this.crater.visible=!0,this.fireTextures=[];
- for(let i=1;
- i<=t.FIRE_FRAME_COUNT;
- i++){
- const t=iS.getTexture("RaidBattle",`FireArea${
- String(i).padStart(4,"0")}
- `);
- t&&this.fireTextures.push(t)}
- this.fireTextures.length>0&&(this.fire||(this.fire=new je(this.fireTextures[0]),this.fire.anchor.set(.5),this.addChildAt(this.fire,1)),this.fire.texture=this.fireTextures[0],this.fire.alpha=0,this.fire.visible=!0)}
- }
- }
- setStyle(t,i,s=1){
- this.fillColor=t,this.strokeColor=i,this.fillAlphaScale=s}
- startFadeOut(t){
- this.fadeOutLeft>=0||(this.fadeOutTotal=Math.max(1,t),this.fadeOutLeft=this.fadeOutTotal)}
- update(i){
- var s,e;
- if(!this.craterOnly){
- const t=Math.max(0,Math.min(1,i)),s=.22+.18*(.5+.5*Math.sin(t*Math.PI*8));
- this.draw(s,t)}
- if((null==(s=this.crater)?void 0:s.visible)&&this.craterTextures.length>0){
- this.craterTick++;
- const i=Math.floor(this.craterTick/t.CRATER_ANIM_DIV)%this.craterTextures.length;
- this.crater.texture=this.craterTextures[i];
- const s=Math.min(1,this.craterTick/t.CRATER_FADE_IN_FRAMES),n=1-(1-s)*(1-s);
- let h=n;
- const r=.92+.08*n;
- if(this.crater.width=2*this.radius*r,this.crater.height=this.radius*this.aspectY*2*r,this.fadeOutLeft>=0&&(this.fadeOutLeft>0&&this.fadeOutLeft--,h=Math.min(h,this.fadeOutLeft/this.fadeOutTotal)),this.crater.alpha=h,(null==(e=this.fire)?void 0:e.visible)&&this.fireTextures.length>0){
- const s=2*this.radius*r,e=this.radius*this.aspectY*2*r;
- this.fire.texture=this.fireTextures[i%this.fireTextures.length],this.fire.width=s*t.FIRE_SCALE,this.fire.height=e*t.FIRE_SCALE,this.fire.x=s*t.FIRE_OFFSET_X_RATIO,this.fire.y=e*t.FIRE_OFFSET_Y_RATIO,this.fire.alpha=h}
- }
- }
- draw(t,i){
- const s=this.g,e=this.radius,n=this.radius*this.aspectY;
- s.clear(),s.ellipse(0,0,e,n).fill({
- color:this.fillColor,alpha:.5*t*this.fillAlphaScale}
- ),s.ellipse(0,0,e,n).stroke({
- width:4,color:this.strokeColor,alpha:.9}
- ),i>0&&s.ellipse(0,0,e*i,n*i).stroke({
- width:2,color:16777215,alpha:.55}
- )}
- dispose(){
- this.g.clear(),this.crater&&(this.crater.visible=!1),this.fire&&(this.fire.visible=!1),this.parent&&this.parent.removeChild(this)}
- }
- ;
- qt(fz,"RaidWarningCircle"),Yt(fz,"CRATER_ASPECT_Y",65/148),Yt(fz,"CRATER_FRAME_COUNT",20),Yt(fz,"CRATER_ANIM_DIV",2),Yt(fz,"CRATER_FADE_IN_FRAMES",24),Yt(fz,"FIRE_FRAME_COUNT",8),Yt(fz,"FIRE_SCALE",.8),Yt(fz,"FIRE_OFFSET_X_RATIO",.024),Yt(fz,"FIRE_OFFSET_Y_RATIO",-.047),Yt(fz,"DEFAULT_FILL_COLOR",16719904),Yt(fz,"DEFAULT_STROKE_COLOR",16732240);
+ Xt(vz,"FireAttack1");
CrowKnight1 18 hunks, 254 statements
- super(),Yt(this,"orbitCrows",[]),Yt(this,"decayTimer",0),Yt(this,"pendingExecutions",[]),Yt(this,"incomingCrows",[])}
+ super(),Yt(this,"orbitCrows",[]),Yt(this,"orbitRealignTimer",0),Yt(this,"decayTimer",0),Yt(this,"attackCrowShots",0),Yt(this,"atkShotIdx",0),Yt(this,"atkTargets",[]),Yt(this,"incomingCrows",[]),Yt(this,"phantoms",[]),Yt(this,"bodyShotIdx",0),Yt(this,"skillTilt",0)}
- super.setData(i,s,e,n),this.orgAtkSpd=130,this.atkSpd=130,this.orgAtkDuration=this.atkDuration=1e4/130,this.orgAtkRange=this.atkRange=350,this.atkRange2=this.atkRange*this.atkRange,this.orgMaxHp=this.maxHp=1500,this.hp=this.maxHp,this.orgAtkDmg=this.atkDmg=12,this.cleanupOrbitCrows(),this.cleanupPendingExecutions(),this.cleanupIncomingCrows(),this.decayTimer=0;
+ super.setData(i,s,e,n),this.releaseAttachments(),this.orgAtkRange=this.baseAtkRange=this.atkRange=t.ATK_RANGE,this.atkRange2=this.atkRange*this.atkRange,this.cleanupOrbitCrows(),this.cleanupPhantoms(),this.cleanupIncomingCrows(),this.decayTimer=0,this.attackCrowShots=0,this.atkShotIdx=0,this.atkTargets.length=0,this.skillTilt=0;
- super.initializeData(),this.className=ux.CrowKnight1,this.sheetName="Game1",this.unitType=rx.RANGE,this.weaponClass=Vj.CrowKnightBullet1,this.radius=7,this.hitHeight=36,this.idleFrames=new bH(0,31),this.moveFrames=new bH(32,60),this.attackFrames=new bH(61,107),this.skillFrames=new bH(108,162),this.dieFrames=new bH(163,179),this.objAtk={
- 76:1}
+ super.initializeData(),this.className=fx.CrowKnight1,this.sheetName="Game1",this.unitType=ax.RANGE,this.weaponClass=MV.CrowKnightBullet1,this.radius=7,this.hitHeight=36,this.uiTopOffset=6,this.idleFrames=new AH(0,31),this.moveFrames=new AH(32,60),this.attackFrames=new AH(61,107),this.skillFrames=new AH(108,163),this.dieFrames=new AH(164,201),this.objAtk={
+ 66:1,70:1,74:1,78:1,82:1,86:1,90:1,94:1}
- 134:1}
- ,this.isAir=!0,this.airHeight=60,this.firePoint.set(26,-2-this.airHeight),this.startSound=fG.SFX_BATTLE_UNDEAD_GO,this.attackSound=fG.SFX_BATTLE_SWORD_ATTACK1,this.dieSound=fG.SFX_BATTLE_UNDEAD_DIE,this.hasSkill=!0,this.maxMana=500,this.normalSize=.9,this.evolSize=1}
+ 134:1,139:1,144:1,149:1,154:1,160:1}
+ ,this.isAir=!0,this.airHeight=60,this.firePoint.set(26,-16-this.airHeight),this.startSound=mG.SFX_BATTLE_UNDEAD_GO,this.attackSound=mG.SFX_BATTLE_SWORD_ATTACK1,this.dieSound=mG.SFX_BATTLE_UNDEAD_DIE,this.hasSkill=!0,this.maxMana=500,this.normalSize=.8,this.evolSize=.9}
- super.execute(),this.isAlive&&(this.updateOrbitCrows(),this.updatePendingExecutions(),this.updateIncomingCrows(),this.updateDecayTimer())}
+ super.execute(),this.isAlive&&(this.updateOrbitCrows(),this.updatePhantoms(),this.updateIncomingCrows(),this.updateDecayTimer(),this.updateSkillTilt())}
+ realignOrbitCrows(){
+ const t=this.orbitCrows.length;
+ if(t<=1)return;
+ const i=this.orbitCrows[0].angle,s=2*Math.PI/t;
+ for(let e=1;
+ e<t;
+ e++)this.orbitCrows[e].angle=i+e*s}
+ updateSkillTilt(){
+ if(0!==this.skillTilt&&(this.skillTilt*=t.SKILL_TILT_DECAY,Math.abs(this.skillTilt)<.01&&(this.skillTilt=0),this.sp)){
+ const t=this.skillTilt;
+ this.sp.rotation=t,this.sp.x=-17*Math.sin(t),this.sp.y=-17*(1-Math.cos(t))}
+ }
- let t=this.target;
- if(!t||!t.isAlive){
+ if(this.atkShotIdx<=0||0===this.atkTargets.length){
+ this.atkShotIdx=0,this.atkTargets.length=0;
+ for(const i of this.getAttackableEnemyList(t.ATTACK_SHOTS))i&&i.isAlive&&!i.isUntagetable&&this.atkTargets.push(i)}
+ let i=null;
+ for(let t=0;
+ t<this.atkTargets.length;
+ t++){
+ const s=this.atkTargets[(this.atkShotIdx+t)%this.atkTargets.length];
+ if(s&&s.isAlive&&!s.isUntagetable){
+ i=s;
+ break}
+ }
+ if(!i){
- if(!t||!t.isAlive)return;
- const i=this.generateWeapon(t,Vj.CrowKnightBullet1,1);
+ if(this.atkShotIdx=(this.atkShotIdx+1)%t.ATTACK_SHOTS,!i||!i.isAlive)return;
+ 0===this.phantoms.length&&this.orbitCrows.length+this.incomingCrows.length<t.ORBIT_MAX_COUNT&&++this.attackCrowShots>=t.ATTACK_CROW_SHOTS&&(this.attackCrowShots=0,this.spawnOrbitCrow());
+ const s=i.getHitCenter(),e=Math.atan2(s.y-(this.y-this.airHeight),s.x-this.x),n=Math.atan2(Math.sin(e),Math.max(.001,Math.abs(Math.cos(e))));
+ this.skillTilt=Math.max(-.35,Math.min(t.ATTACK_LEAN_MAX,n))*this.direction;
+ const h=this.generateWeapon(i,MV.CrowKnightBullet1,t.ATTACK_DMG_PER_SHOT);
- if(this.pendingExecutions.length>0)return;
+ if(this.phantoms.length>0)return;
+ this.attackCrowShots=0;
+ addOrbitCrowAtAngle(i){
+ const s=eS.getTextures("Game1",MV.CrowCompanion1);
+ if(!s||0===s.length)return;
+ const e=new Ve(s[0]);
+ e.anchor.set(.5),e.scale.set(t.CROW_SCALE),jB.getInstance().addChild(e),this.orbitCrows.push({
+ sprite:e,textures:s,frame:this.random.next()*s.length,angle:i,fireTimer:t.ORBIT_FIRE_INTERVAL+Math.floor(30*this.random.next()),...this.makeBobParams()}
+ ),this.refreshOrbitBuff()}
+ onSkillStartFrame(){
+ this.bodyShotIdx=0,this.spawnPhantoms()}
- const i=t.SKILL_TARGET_RANGE*t.SKILL_TARGET_RANGE,s=[];
- for(const t of this.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- const e=t.x-this.x,n=t.y-this.y,h=e*e+n*n;
- h<=i&&s.push({
- unit:t,dist:h}
- )}
- if(0===s.length)return;
- s.sort((t,i)=>t.dist-i.dist);
- const e=s.slice(0,t.SKILL_TARGET_MAX).map(t=>t.unit);
- for(;
- this.orbitCrows.length<t.SKILL_MIN_CROWS;
- )this.spawnOrbitCrow();
- const n=2*e.length,h=[],r=[];
- for(let t=0;
- t<this.orbitCrows.length;
- t++)h.push(t),r.push(2*t);
- for(let t=r.length-1;
- t>0;
- t--){
- const i=Math.floor(this.random.next()*(t+1)),s=r[t];
- r[t]=r[i],r[i]=s}
- for(let o=0;
- o<this.orbitCrows.length;
- o++){
- const i=this.orbitCrows[o];
- let s,a,c=null;
- if(o<n){
- const i=e[o%e.length];
- s=i.x,a=i.y+t.SKILL_CROW_OFFSET_Y,c=i}
- else{
- const t=this.pickRandomScatterPos();
- s=t.x,a=t.y}
- const l=h[o];
- this.pendingExecutions.push({
- sprite:i.sprite,textures:i.textures,frame:i.frame,state:"aiming",countdown:t.AIMING_FRAMES,flyStartX:i.sprite.x,flyStartY:i.sprite.y,targetX:s,targetY:a,fireDelay:r[o],fireOrder:l,waveIdx:0,shotsFired:0,targetEnemy:c}
- )}
- this.orbitCrows.length=0,this.refreshOrbitBuff()}
- pickRandomScatterPos(){
- const t=this.random.next()*Math.PI*2,i=180+220*this.random.next();
- return{
- x:this.x+Math.cos(t)*i,y:this.y+Math.sin(t)*i*.7}
- }
- fireSkillBullet(i,s){
- this.lookAt(i-this.x);
- let e=null;
- for(const t of this.enemyList)if(t.isAlive&&!t.isUntagetable){
- e=t;
- break}
- let n=null;
- if(e)n=this.generateWeapon(e,Vj.CrowKnightBullet1,t.SKILL_DMG);
- else{
+ if(this.bodyShotIdx>=t.FIRE_ROUNDS)return;
+ const i=(this.bodyShotIdx-(t.FIRE_ROUNDS-1)/2)*t.TILT_STEP;
+ this.fireBodyBidir(i,t.PHANTOM_DMG),this.bodyShotIdx++}
+ fireBodyBidir(i,s){
+ const e=this.x,n=this.y-this.airHeight;
+ this.spawnBullet(e,n,i,s,t.PHANTOM_BULLET_SPEED),this.spawnBullet(e,n,i+Math.PI,s,t.PHANTOM_BULLET_SPEED),mG.getInstance().playSFX(this.attackSound),this.skillTilt=Math.max(-.5,Math.min(t.SKILL_MAX_TILT,i))}
+ spawnBullet(t,i,s,e,n){
- i&&(i.owner=this,i.target=null,i.x=this.x,i.y=this.y-this.airHeight,FB.getInstance().addChild(i),i.setData(t.SKILL_DMG),i.setBattleController(this.battleController||Nai.getInstance()),i.play(),n=i)}
- if(!n)return;
- n.x=this.x,n.y=this.y-this.airHeight;
- let h=i,r=s,o=1/0,a=null;
- for(const t of this.enemyList){
- if(!t.isAlive||t.isUntagetable)continue;
- const e=t.getHitCenter(),n=e.x-i,h=e.y-s,r=n*n+h*h;
- r<6400&&r<o&&(o=r,a=t)}
- if(a){
- const t=a.getHitCenter();
- h=t.x,r=t.y}
- const c=h-n.x,l=r-n.y,u=Math.sqrt(c*c+l*l);
- u>1&&(n.vx=c/u*t.SKILL_BULLET_SPEED,n.vy=l/u*t.SKILL_BULLET_SPEED,n.rotation=Math.atan2(n.vy,n.vx))}
- updatePendingExecutions(){
- var i;
- const s=(null==(i=this.battleController)?void 0:i.battleTime)??0;
- for(let e=this.pendingExecutions.length-1;
- e>=0;
- e--){
- const i=this.pendingExecutions[e];
- i.frame+=t.ORBIT_ANIM_SPEED,i.frame>=i.textures.length&&(i.frame=0);
- const n=Math.floor(i.frame);
- if(n<i.textures.length&&(i.sprite.texture=i.textures[n]),i.countdown--,i.targetEnemy&&i.targetEnemy.isAlive&&!i.targetEnemy.removed&&("aiming"===i.state||"flying"===i.state||"firing"===i.state&&0===i.shotsFired)&&(i.targetX=i.targetEnemy.x,i.targetY=i.targetEnemy.y+t.SKILL_CROW_OFFSET_Y),"aiming"===i.state){
- const e=.05*i.flyStartX,n=Math.sin(s*t.SKILL_HOVER_SPEED+e)*t.SKILL_HOVER_AMP*.5;
- i.sprite.x=i.flyStartX,i.sprite.y=i.flyStartY+n;
- const h=i.targetX>=i.flyStartX?1:-1,r=1-i.countdown/t.AIMING_FRAMES,o=1+Math.sin(r*Math.PI)*t.AIMING_PULSE_AMP;
- i.sprite.scale.x=h*t.CROW_SCALE*o,i.sprite.scale.y=t.CROW_SCALE*o,i.sprite.alpha=1,i.countdown<=0&&(i.state="flying",i.countdown=t.SKILL_FLY_FRAMES,i.sprite.scale.x=h*t.CROW_SCALE,i.sprite.scale.y=t.CROW_SCALE)}
- else if("flying"===i.state){
- const s=1-i.countdown/t.SKILL_FLY_FRAMES,e=1-Math.pow(1-s,2);
- i.sprite.x=i.flyStartX+(i.targetX-i.flyStartX)*e;
- const n=t.SKILL_FLY_ARC_HEIGHT*Math.sin(e*Math.PI);
- i.sprite.y=i.flyStartY+(i.targetY-i.flyStartY)*e+n;
- const h=i.targetX>=i.flyStartX?1:-1;
- i.sprite.scale.x=h*t.CROW_SCALE,i.sprite.scale.y=t.CROW_SCALE,i.sprite.alpha=1,i.countdown<=0&&(i.sprite.x=i.targetX,i.sprite.y=i.targetY,i.state="firing",i.countdown=i.fireDelay,i.shotsFired=0)}
- else if("firing"===i.state){
- i.sprite.x=i.targetX;
- const e=.05*i.targetX,n=Math.sin(s*t.SKILL_HOVER_SPEED+e)*t.SKILL_HOVER_AMP;
- if(i.sprite.y=i.targetY+n,i.countdown<=0){
- const s=i.sprite.scale.x;
- i.sprite.scale.x=(s>=0?1:-1)*t.CROW_SCALE*t.SKILL_FIRE_PULSE,i.sprite.scale.y=t.CROW_SCALE*t.SKILL_FIRE_PULSE;
- const e=i.sprite.x,n=i.sprite.y;
- if(this.fireSkillBullet(e,n),fG.getInstance().playSFX(this.attackSound),i.shotsFired++,i.shotsFired<t.SHOTS_PER_CROW){
- const s=t.SHOT_INTERVAL_MAX-t.SHOT_INTERVAL_MIN;
- i.countdown=t.SHOT_INTERVAL_MIN+Math.floor(this.random.next()*(s+1))}
- else{
- const s=e-this.x,h=n-this.y,r=Math.sqrt(s*s+h*h);
- i.countdown=Math.max(6,Math.ceil(r/t.SKILL_BULLET_SPEED)),i.state="inflight"}
- }
- }
- else if("inflight"===i.state){
- const s=(i.sprite.scale.x>=0?1:-1)*t.CROW_SCALE;
- i.sprite.scale.x+=.25*(s-i.sprite.scale.x),i.sprite.scale.y+=.25*(t.CROW_SCALE-i.sprite.scale.y),i.countdown<=0&&(i.state="waiting",i.sprite.alpha=1,i.countdown=0===i.waveIdx?t.HOLD_BETWEEN_WAVES:t.HOLD_BEFORE_RETURN)}
- else if("waiting"===i.state){
- const e=.05*i.targetX,n=Math.sin(s*t.SKILL_HOVER_SPEED+e)*t.SKILL_HOVER_AMP;
- i.sprite.y=i.targetY+n,i.countdown>0&&i.countdown--}
- else{
- const s=i.fireOrder/t.ORBIT_MAX_COUNT*Math.PI*2;
- i.targetX=this.x+Math.cos(s)*t.ORBIT_RADIUS_X,i.targetY=this.y+t.ORBIT_HEIGHT+Math.sin(s)*t.ORBIT_RADIUS_Y;
- const n=1-i.countdown/t.SKILL_FLY_FRAMES,h=1-Math.pow(1-n,2);
- i.sprite.x=i.flyStartX+(i.targetX-i.flyStartX)*h,i.sprite.y=i.flyStartY+(i.targetY-i.flyStartY)*h,i.countdown<=0&&(this.orbitCrows.length<t.ORBIT_MAX_COUNT?(this.orbitCrows.push({
- sprite:i.sprite,textures:i.textures,frame:i.frame,angle:s,fireTimer:t.ORBIT_FIRE_INTERVAL+Math.floor(30*this.random.next()),...this.makeBobParams()}
- ),this.refreshOrbitBuff()):i.sprite.parent&&i.sprite.parent.removeChild(i.sprite),this.pendingExecutions.splice(e,1))}
- }
- if(this.pendingExecutions.length>0&&this.pendingExecutions.every(t=>"waiting"===t.state&&t.countdown<=0))if(0===this.pendingExecutions[0].waveIdx){
- const i=this.pendingExecutions.length,s=[];
+ h&&(h.owner=this,h.target=null,h.x=t,h.y=i,h.setData(e),h.setBattleController(this.battleController||hli.getInstance()),jB.getInstance().addChild(h),h.play(),h.vx=Math.cos(s)*n,h.vy=Math.sin(s)*n,h.rotation=s)}
+ spawnMuzzleFlash(i,s){
+ const e=bV.getEffect(SH.MagicalHitEffect);
+ e&&(e.x=i,e.y=s,e.scale.set(t.MODE_B_FLASH_SCALE),e.setBattleController(this.battleController||hli.getInstance()),e.start(10),jB.getInstance().addChild(e))}
+ leanOf(i){
+ const s=Math.atan2(Math.sin(i),Math.max(.001,Math.abs(Math.cos(i))));
+ return Math.max(-.6,Math.min(t.LEAN_MAX,s))}
+ spawnPhantoms(){
+ var i,s;
+ if(this.phantoms.length>0)return;
+ const e=this.orbitCrows.length,n=Math.min(e,t.PHANTOM_MAX),h=Math.max(n,t.PHANTOM_MIN),r=this.skillFrames.start,o=Math.max(1,this.skillFrames.end-this.skillFrames.start),a=this.random.next()*Math.PI*2,c=2*Math.PI/h,l=1===t.phantomMode,u=this.x,d=this.y-this.airHeight,f=[];
- t++)s.push(2*t);
+ t++)f.push(t/h*Math.PI+(this.random.next()-.5)*(Math.PI/h)*.5);
- let e=0;
- for(const n of this.pendingExecutions){
- n.waveIdx=1,n.state="flying",n.countdown=t.SKILL_FLY_FRAMES,n.flyStartX=n.sprite.x,n.flyStartY=n.sprite.y;
- const i=n.fireOrder/t.ORBIT_MAX_COUNT*Math.PI*2+(this.random.next()-.5)*(Math.PI/3),h=220+200*this.random.next();
- n.targetX=this.x+Math.cos(i)*h,n.targetY=this.y+Math.sin(i)*h*.7,n.fireDelay=s[e++],n.sprite.alpha=1,n.targetEnemy=null}
+ const p=this.getEnemiesAtPos(u,d,t.SKILL_AIM_RANGE,0,!0);
+ if(p.length>0)for(let g=0;
+ g<f.length;
+ g++){
+ let i=1/0;
+ for(const t of p){
+ if(!t||!t.isAlive)continue;
+ const s=Math.atan2(t.y-d,t.x-u),e=Math.PI;
+ let n=(s-f[g])%e;
+ n>e/2&&(n-=e),n<-e/2&&(n+=e),Math.abs(n)<Math.abs(i)&&(i=n)}
+ i!==1/0&&(f[g]+=i*t.SKILL_AIM)}
+ for(let g=0;
+ g<h;
+ g++){
+ const e=g<n;
+ let h,u,d,p,m;
+ if(e){
+ const t=this.orbitCrows.shift();
+ d=t.angle,h=t.sprite.x,u=t.sprite.y,t.sprite.parent&&t.sprite.parent.removeChild(t.sprite)}
+ else d=this.random.next()*Math.PI*2,h=this.x+Math.cos(d)*t.ORBIT_RADIUS_X,u=this.y+t.ORBIT_HEIGHT+Math.sin(d)*t.ORBIT_RADIUS_Y;
+ {
+ const i=a+g*c+(this.random.next()-.5)*c*t.SPREAD_JITTER,s=t.SCATTER_MIN_R+this.random.next()*(t.SCATTER_MAX_R-t.SCATTER_MIN_R);
+ p=this.x+Math.cos(i)*s,m=this.y+Math.sin(i)*s*.6-t.PHANTOM_FLOAT}
+ const w=this.battleController,v=(null==(i=null==w?void 0:w.getFieldWidth)?void 0:i.call(w))??640,_=(null==(s=null==w?void 0:w.getFieldHeight)?void 0:s.call(w))??640;
+ p=Math.max(50,Math.min(v+110,p)),m=Math.max(70,Math.min(_+40,m));
+ const b=f[g],M=new Ve(this.textures[r]);
+ M.scale.set(this.currentSize,this.currentSize),M.tint=t.PHANTOM_TINT,M.alpha=0,M.x=h,M.y=u,IB.getInstance().addChild(M),this.phantoms.push({
+ sprite:M,frame:this.random.next()*o,state:"spread",delay:g*t.SPREAD_STAGGER,countdown:t.SPREAD_FRAMES,fromX:h,fromY:u,toX:p,toY:m,fireTimer:0,roundsLeft:t.FIRE_ROUNDS,sweepStart:b,baseTilt:this.leanOf(b),recoil:0,trailTimer:0,orbitAngle:d,restoresCrow:e,bodyMode:l,punch:0,returnTotal:t.RETURN_FRAMES}
+ )}
- else for(const e of this.pendingExecutions)e.state="returning",e.countdown=t.SKILL_FLY_FRAMES,e.flyStartX=e.sprite.x,e.flyStartY=e.sprite.y}
- cleanupPendingExecutions(){
- for(const t of this.pendingExecutions)t.sprite.parent&&t.sprite.parent.removeChild(t.sprite);
- this.pendingExecutions.length=0}
+ updatePhantoms(){
+ var i;
+ if(0===this.phantoms.length)return;
+ const s=this.skillFrames.start,e=Math.max(1,this.skillFrames.end-this.skillFrames.start),n=(null==(i=this.battleController)?void 0:i.battleTime)??0,h=this.state!==cx.SKILL;
+ for(let r=this.phantoms.length-1;
+ r>=0;
+ r--){
+ const i=this.phantoms[r],o=i.bodyMode?t.MODE_B_ALPHA:t.PHANTOM_ALPHA;
+ if(h&&i.bodyMode&&"return"!==i.state){
+ if("spread"===i.state&&i.sprite.alpha<.02){
+ i.sprite.parent&&i.sprite.parent.removeChild(i.sprite),this.phantoms.splice(r,1);
+ continue}
+ i.state="return",i.countdown=t.MODE_B_END_FADE,i.returnTotal=t.MODE_B_END_FADE,i.fromX=i.sprite.x,i.fromY=i.sprite.y}
+ if(i.bodyMode)this.sp&&(i.sprite.texture=this.sp.texture,i.sprite.rotation=this.sp.rotation);
+ else{
+ i.frame+=t.PHANTOM_ANIM_SPEED,i.frame>=e&&(i.frame-=e);
+ const n=s+Math.floor(i.frame);
+ n<this.textures.length&&(i.sprite.texture=this.textures[n]),0!==i.recoil&&(i.recoil*=.8,Math.abs(i.recoil)<.01&&(i.recoil=0)),i.sprite.rotation=i.baseTilt+i.recoil}
+ if("spread"===i.state){
+ if(i.delay>0){
+ i.delay--,i.sprite.alpha=0;
+ continue}
+ i.countdown--;
+ const s=1-i.countdown/t.SPREAD_FRAMES,e=1-Math.pow(1-s,2);
+ i.sprite.x=i.fromX+(i.toX-i.fromX)*e;
+ const n=(i.bodyMode?t.MODE_B_SPREAD_ARC:t.SPREAD_ARC)*Math.sin(e*Math.PI);
+ i.sprite.y=i.fromY+(i.toY-i.fromY)*e+n,i.sprite.alpha=Math.min(o,2*s*o),i.bodyMode||this.tickPhantomTrail(i),i.countdown<=0&&(i.sprite.x=i.toX,i.sprite.y=i.toY,i.sprite.alpha=o,i.state="fire",i.fireTimer=0,i.frame=0)}
+ else if("fire"===i.state){
+ if(i.bodyMode){
+ i.sprite.x=i.toX,i.sprite.y=i.toY,i.punch>.01?i.punch*=.8:i.punch=0;
+ const s=this.currentSize*(1+i.punch*t.MODE_B_PUNCH_AMP);
+ i.sprite.scale.set(s,s)}
+ else i.sprite.y=i.toY+2*Math.sin(.15*n+i.sweepStart);
+ if(i.fireTimer>0)i.fireTimer--;
+ else{
+ const s=i.bodyMode?t.MODE_B_FIRE_ROUNDS:t.FIRE_ROUNDS,e=s-i.roundsLeft,n=i.sweepStart+(e-(s-1)/2)*t.TILT_STEP;
+ this.spawnBullet(i.sprite.x,i.sprite.y,n,t.PHANTOM_DMG,t.PHANTOM_BULLET_SPEED),this.spawnBullet(i.sprite.x,i.sprite.y,n+Math.PI,t.PHANTOM_DMG,t.PHANTOM_BULLET_SPEED),i.baseTilt=this.leanOf(n),i.recoil=.4*(this.random.next()-.5),i.bodyMode&&(i.punch=1,this.spawnMuzzleFlash(i.sprite.x,i.sprite.y)),i.roundsLeft--,i.fireTimer=i.bodyMode?t.MODE_B_FIRE_GAP:t.FIRE_GAP,i.roundsLeft<=0&&(i.state="hold",i.countdown=t.HOLD_FRAMES)}
+ }
+ else if("hold"===i.state)i.bodyMode||(i.sprite.y=i.toY+2*Math.sin(.15*n+i.sweepStart)),i.sprite.alpha=o,i.countdown--,i.countdown<=0&&(i.state="return",i.countdown=t.RETURN_FRAMES,i.returnTotal=t.RETURN_FRAMES,i.fromX=i.sprite.x,i.fromY=i.sprite.y);
+ else{
+ i.countdown--;
+ const s=i.bodyMode?this.x:this.x+Math.cos(i.orbitAngle)*t.ORBIT_RADIUS_X,e=i.bodyMode?this.y-this.airHeight:this.y+t.ORBIT_HEIGHT+Math.sin(i.orbitAngle)*t.ORBIT_RADIUS_Y,n=1-i.countdown/i.returnTotal,h=1-Math.pow(1-n,2);
+ i.sprite.x=i.fromX+(s-i.fromX)*h,i.sprite.y=i.fromY+(e-i.fromY)*h,i.sprite.alpha=o*(1-h),i.bodyMode||this.tickPhantomTrail(i),i.countdown<=0&&(i.sprite.parent&&i.sprite.parent.removeChild(i.sprite),this.phantoms.splice(r,1),i.restoresCrow&&this.orbitCrows.length<t.ORBIT_MAX_COUNT&&this.addOrbitCrowAtAngle(i.orbitAngle),0===this.phantoms.length&&this.realignOrbitCrows())}
+ }
+ }
+ tickPhantomTrail(i){
+ if(i.trailTimer>0)return void i.trailTimer--;
+ i.trailTimer=t.TRAIL_GAP;
+ const s=bV.getEffect(SH.BladeMasterAfterImage);
+ s.setupAfterImage(i.sprite.texture,i.sprite.anchor.x,i.sprite.anchor.y,i.sprite.x,i.sprite.y,i.sprite.scale.x,i.sprite.scale.y,i.sprite.rotation,10,.6*i.sprite.alpha),IB.getInstance().addChild(s),s.start(10)}
+ cleanupPhantoms(){
+ for(const t of this.phantoms)t.sprite.parent&&t.sprite.parent.removeChild(t.sprite);
+ this.phantoms.length=0}
+ releaseAttachments(){
+ this.atkShotIdx=0,this.atkTargets.length=0,this.cleanupOrbitCrows(),this.cleanupPhantoms(),this.cleanupIncomingCrows()}
- null==(t=super.onDie)||t.call(this),this.cleanupOrbitCrows(),this.cleanupPendingExecutions(),this.cleanupIncomingCrows()}
+ null==(t=super.onDie)||t.call(this),this.releaseAttachments()}
+ remove(){
+ this.releaseAttachments(),super.remove()}
- qt(h5,"CrowKnight1"),Yt(h5,"ORBIT_RADIUS_X",70),Yt(h5,"ORBIT_RADIUS_Y",25),Yt(h5,"ORBIT_HEIGHT",-80),Yt(h5,"ORBIT_SPEED",.045),Yt(h5,"ORBIT_BASE_COUNT",0),Yt(h5,"ORBIT_MAX_COUNT",12),Yt(h5,"ORBIT_FIRE_INTERVAL",270),Yt(h5,"ORBIT_FIRE_RANGE",220),Yt(h5,"ORBIT_FIRE_DMG",.4),Yt(h5,"ORBIT_ANIM_SPEED",.25),Yt(h5,"ORBIT_DECAY_FRAMES",300),Yt(h5,"CROW_SCALE",.7),Yt(h5,"SKILL_TARGET_MAX",12),Yt(h5,"SKILL_TARGET_RANGE",400),Yt(h5,"SKILL_MIN_CROWS",6),Yt(h5,"SKILL_FLY_FRAMES",20),Yt(h5,"SKILL_DMG",3.5),Yt(h5,"SKILL_CROW_OFFSET_Y",-36),Yt(h5,"SKILL_BULLET_SPEED",14),Yt(h5,"INCOMING_FRAMES",35),Yt(h5,"INCOMING_ARC_HEIGHT",-25),Yt(h5,"AIMING_FRAMES",18),Yt(h5,"AIMING_PULSE_AMP",.25),Yt(h5,"SKILL_FLY_ARC_HEIGHT",-30),Yt(h5,"SKILL_HOVER_AMP",3),Yt(h5,"SKILL_HOVER_SPEED",.15),Yt(h5,"SKILL_FIRE_PULSE",1.35),Yt(h5,"SHOTS_PER_CROW",2),Yt(h5,"SHOT_INTERVAL_MIN",3),Yt(h5,"SHOT_INTERVAL_MAX",11),Yt(h5,"HOLD_BETWEEN_WAVES",45),Yt(h5,"HOLD_BEFORE_RETURN",35);
+ Xt(e3,"CrowKnight1"),Yt(e3,"ORBIT_RADIUS_X",34),Yt(e3,"ORBIT_RADIUS_Y",11),Yt(e3,"ORBIT_HEIGHT",-132),Yt(e3,"ORBIT_REALIGN_INTERVAL",180),Yt(e3,"ORBIT_SPEED",.045),Yt(e3,"ORBIT_BASE_COUNT",2),Yt(e3,"ORBIT_MAX_COUNT",5),Yt(e3,"ORBIT_AUTO_FIRE",!0),Yt(e3,"ORBIT_FIRE_INTERVAL",200),Yt(e3,"ORBIT_FIRE_RANGE",380),Yt(e3,"ORBIT_FIRE_DMG",.4),Yt(e3,"ATK_RANGE",250),Yt(e3,"ATTACK_SHOTS",8),Yt(e3,"ATTACK_DMG_PER_SHOT",.27),Yt(e3,"ORBIT_ANIM_SPEED",.25),Yt(e3,"ORBIT_DECAY_FRAMES",540),Yt(e3,"ATTACK_CROW_SHOTS",72),Yt(e3,"SKILL_AIM",.6),Yt(e3,"SKILL_AIM_RANGE",460),Yt(e3,"CROW_SCALE",.7),Yt(e3,"INCOMING_FRAMES",35),Yt(e3,"INCOMING_ARC_HEIGHT",-25),Yt(e3,"PHANTOM_MIN",5),Yt(e3,"PHANTOM_MAX",5),Yt(e3,"PHANTOM_TINT",8015359),Yt(e3,"PHANTOM_ALPHA",.72),Yt(e3,"PHANTOM_FLOAT",55),Yt(e3,"PHANTOM_ANIM_SPEED",.4),Yt(e3,"SPREAD_FRAMES",14),Yt(e3,"SPREAD_STAGGER",4),Yt(e3,"SPREAD_ARC",-40),Yt(e3,"SCATTER_MIN_R",62),Yt(e3,"SCATTER_MAX_R",160),Yt(e3,"phantomMode",0),Yt(e3,"MODE_B_SPREAD_ARC",0),Yt(e3,"MODE_B_FIRE_ROUNDS",7),Yt(e3,"MODE_B_FIRE_GAP",4),Yt(e3,"MODE_B_ALPHA",.6),Yt(e3,"MODE_B_JITTER",40),Yt(e3,"MODE_B_FLASH_SCALE",.42),Yt(e3,"MODE_B_PUNCH_AMP",.22),Yt(e3,"MODE_B_END_FADE",5),Yt(e3,"RETURN_FRAMES",18),Yt(e3,"FIRE_ROUNDS",3),Yt(e3,"FIRE_GAP",6),Yt(e3,"TILT_STEP",.4),Yt(e3,"LEAN_MAX",.6),Yt(e3,"HOLD_FRAMES",24),Yt(e3,"SPREAD_JITTER",.5),Yt(e3,"PHANTOM_DMG",2.2),Yt(e3,"PHANTOM_BULLET_SPEED",13),Yt(e3,"TRAIL_GAP",3),Yt(e3,"SKILL_MAX_TILT",.5),Yt(e3,"SKILL_TILT_DECAY",.85),Yt(e3,"SKILL_TILT_PIVOT",17),Yt(e3,"ATTACK_LEAN_MAX",.35);
MinePopup 5 hunks, 245 statements
- this.titleUp=new je(iS.getTexture("UI_MINE","Base_Title_up.png")),this.titleUp.x=0,this.titleUp.y=0,this.addChild(this.titleUp),this.bg=new je(iS.getTexture("UI_MINE","EBlock_bg.png")),this.bg.x=.5*(t.OUTER_W-t.BG_W),this.bg.y=this.titleUp.y+this.titleUp.height-i-i,this.addChild(this.bg),this.expProgressContainer=new Fe,this.expProgressContainer.x=this.bg.x+.5*(this.bg.width-t.HUD_W),this.expProgressContainer.y=this.bg.y+20,this.addChild(this.expProgressContainer),this.buildExpProgress(),this.titleInfo=new je(iS.getTexture("UI_MINE","Base_Title_info.png")),this.titleInfo.x=0,this.titleInfo.y=this.bg.y+this.bg.height-i-i,this.addChild(this.titleInfo),this.lblTitle=new wD(YG.getText("GAME_1203","화석 발굴"),yL.COLOR_WHITE,yL.WHITE_OUTLINE_FONT_OPTION_22),this.lblTitle.textSize=23,this.lblTitle.x=52,this.lblTitle.y=this.titleUp.y+.5*(this.titleUp.height-this.lblTitle.height)-3,this.addChild(this.lblTitle),this.btnGuide=new KB("UI_Ekkorr","UI_Alarm"),this.btnGuide.onClick=()=>{
+ this.titleUp=new Ve(eS.getTexture("UI_MINE","Base_Title_up.png")),this.titleUp.x=0,this.titleUp.y=0,this.addChild(this.titleUp),this.bg=new Ve(eS.getTexture("UI_MINE","EBlock_bg.png")),this.bg.x=.5*(t.OUTER_W-t.BG_W),this.bg.y=this.titleUp.y+this.titleUp.height-i-i,this.addChild(this.bg),this.expProgressContainer=new He,this.expProgressContainer.x=this.bg.x+.5*(this.bg.width-t.HUD_W),this.expProgressContainer.y=this.bg.y+20,this.addChild(this.expProgressContainer),this.buildExpProgress(),this.mine4xContainer=new He,this.mine4xContainer.x=this.bg.x+.5*this.bg.width,this.mine4xContainer.y=this.bg.y+75,this.addChild(this.mine4xContainer),this.btnInfo4X=new YB("UI_Ekkorr","UI_Alarm"),this.btnInfo4X.x=this.bg.x+.5*this.bg.width-80,this.btnInfo4X.y=10,this.btnInfo4X.onClick=()=>{
+ u6t.getInstance().showGuide()}
+ ,this.mine4xContainer.addChild(this.btnInfo4X),this.bg4X=new o6t,this.bg4X.x=this.btnInfo4X.x-this.bg4X.width-15,this.bg4X.y=this.btnInfo4X.y+.5*(this.btnInfo4X.height-this.bg4X.height),this.mine4xContainer.addChild(this.bg4X),this.btnMine4XOn=new YB("UI_MINE","4x_toggle_on.png",.55),this.btnMine4XOn.onClick=()=>{
+ this.mine4xClicked=0}
+ ,this.btnMine4XOn.x=this.bg4X.x+this.bg4X.width-this.btnMine4XOn.width-7,this.btnMine4XOn.y=this.bg4X.y+.5*(this.bg4X.height-this.btnMine4XOn.height),this.mine4xContainer.addChild(this.btnMine4XOn),this.btnMine4XOff=new YB("UI_MINE","4x_toggle_off.png",.55),this.btnMine4XOff.onClick=()=>{
+ this.mine4xClicked=1}
+ ,this.btnMine4XOff.x=this.btnMine4XOn.x+.5*(this.btnMine4XOn.width-this.btnMine4XOff.width),this.btnMine4XOff.y=this.btnMine4XOn.y+.5*(this.btnMine4XOn.height-this.btnMine4XOff.height),this.mine4xContainer.addChild(this.btnMine4XOff),this.titleInfo=new Ve(eS.getTexture("UI_MINE","Base_Title_info.png")),this.titleInfo.x=0,this.titleInfo.y=this.bg.y+this.bg.height-i-i,this.addChild(this.titleInfo),this.lblTitle=new bD(QG.getText("GAME_1203","화석 발굴"),AL.COLOR_WHITE,AL.WHITE_OUTLINE_FONT_OPTION_22),this.lblTitle.textSize=23,this.lblTitle.x=52,this.lblTitle.y=this.titleUp.y+.5*(this.titleUp.height-this.lblTitle.height)-3,this.addChild(this.lblTitle),this.btnGuide=new YB("UI_Ekkorr","UI_Alarm"),this.btnGuide.onClick=()=>{
- ,this.fossilLabel=new wD(YG.getText("GAME_1220","감지된 화석"),n.fill,n),this.fossilLabel.x=30,this.fossilLabel.y=this.fossilLabelBg.y+.5*(this.fossilLabelBg.height-this.fossilLabel.height)+1,this.fossilLabelContainer.addChild(this.fossilLabel),this.fossilLabelBg.width=this.fossilLabel.width+2*this.fossilLabel.x,this.uiBuilt=!0}
+ ,this.fossilLabel=new bD(QG.getText("GAME_1220","감지된 화석"),n.fill,n),this.fossilLabel.x=30,this.fossilLabel.y=this.fossilLabelBg.y+.5*(this.fossilLabelBg.height-this.fossilLabel.height)+1,this.fossilLabelContainer.addChild(this.fossilLabel),this.fossilLabelBg.width=this.fossilLabel.width+2*this.fossilLabel.x,this.addChild(this.mine4XBoxContainer),this.mine4XBoxContainer.y=this.mine4xContainer.y+60,this.uiBuilt=!0}
- ,await a.startGame(),(r.length>0||o.length>0)&&a.applyDiscovered(r,o),this.positionMineMain(a),this.refreshHeader(),this.refreshRevealedChests(),this.refreshEventTimerConfig(),this.startEventTimer(),this.x=.5*(qA.stageWidth-t.OUTER_W);
+ ,await a.startGame(),(r.length>0||o.length>0)&&a.applyDiscovered(r,o),this.positionMineMain(a),this.mine4xClicked=0,this.refreshHeader(),this.refreshRevealedChests(),this.refreshEventTimerConfig(),this.startEventTimer(),this.x=.5*(YA.stageWidth-t.OUTER_W);
+ set mine4xClicked(t){
+ t!=this._mine4xClicked&&(this._mine4xClicked=t,wB.getInstance().mine4XEnabled=1==t,t?(this.btnMine4XOn.visible=!0,this.btnMine4XOff.visible=!1):(this.btnMine4XOn.visible=!1,this.btnMine4XOff.visible=!0))}
+ get mine4xClicked(){
+ return this._mine4xClicked}
+ ensuremine4XInfoBox(){
+ if(this.mine4XInfoBox)return;
+ const t=new Ve;
+ t.texture=eS.getTexture("UI_MINE","4x_info_bg.png"),t.x=600-t.width-20,t.y=-20,t.eventMode="static",t.cursor="pointer",t.on("pointertap",()=>this.hideMine4XInfo());
+ const i=this.makeLabel(QG.getText("GAME_1663","망치 사용 비교"),20,16644251);
+ i.x=.5*(t.width-i.width),i.y=40,t.addChild(i);
+ const s=new Ve;
+ s.texture=eS.getTexture("UI_MINE","4x_info_divider_horizontal.png"),s.x=.5*(t.width-s.width),s.y=i.y+i.height+5,t.addChild(s);
+ const e=new c6t;
+ e.setData(!1),e.x=5+.5*(.5*t.width-e.width),e.y=s.y+7,t.addChild(e);
+ const n=new Ve;
+ n.texture=eS.getTexture("UI_MINE","4x_info_divider_vertical.png"),n.scale=.7,n.x=.5*(t.width-n.width),n.y=e.y+.5*(e.height-n.height),t.addChild(n);
+ const h=new c6t;
+ h.setData(!0),h.x=.5*t.width+.5*(.5*t.width-e.width)-5,h.y=e.y,t.addChild(h);
+ const r=new Ve;
+ r.texture=eS.getTexture("UI_MINE","4x_info_divider_horizontal.png"),r.x=.5*(t.width-r.width),r.y=e.y+e.height+5,t.addChild(r);
+ const o=this.makeLabel(QG.getText("GAME_1668","숫자는 타일에 주는 피해량입니다."),15,AL.COLOR_WHITE);
+ o.setWrapWidth(t.width-60),o.align="center",o.x=.5*(t.width-o.width),o.y=r.y+.5*(t.height-r.y-10-o.height),t.addChild(o),this.mine4XBoxContainer.addChild(t),this.mine4XInfoBox=t}
+ toggleMine4XInfo(){
+ var t;
+ (null==(t=this.mine4XInfoBox)?void 0:t.visible)?this.hideMine4XInfo():(this.ensuremine4XInfoBox(),this.mine4XInfoBox.visible=!0)}
+ hideMine4XInfo(){
+ this.mine4XInfoBox&&(this.mine4XInfoBox.visible=!1)}
+ makeLabel(t,i,s){
+ const e=new bD(t,s,AL.DEFAULT_OUTLINE_FONT_OPTION_16);
+ return e.textSize=i,e}
- qt(c3t,"MinePopup"),Yt(c3t,"instance"),Yt(c3t,"OUTER_W",594),Yt(c3t,"BG_W",574),Yt(c3t,"OVERLAP",5),Yt(c3t,"HUD_W",526),Yt(c3t,"HUD_H",50),Yt(c3t,"EVENT_END_TIME_KEY","MINE_EVENT_END_TIME"),Yt(c3t,"EXP_BAR_X",76),Yt(c3t,"EXP_BAR_Y",15),Yt(c3t,"EXP_BAR_W",222),Yt(c3t,"EXP_BAR_H",20),Yt(c3t,"GRID_TOP_PAD",118),Yt(c3t,"GRID_BOTTOM_PAD",42);
+ Xt(d6t,"MinePopup"),Yt(d6t,"instance"),Yt(d6t,"OUTER_W",594),Yt(d6t,"BG_W",574),Yt(d6t,"OVERLAP",5),Yt(d6t,"HUD_W",526),Yt(d6t,"HUD_H",50),Yt(d6t,"EVENT_END_TIME_KEY","MINE_EVENT_END_TIME"),Yt(d6t,"EXP_BAR_X",76),Yt(d6t,"EXP_BAR_Y",15),Yt(d6t,"EXP_BAR_W",222),Yt(d6t,"EXP_BAR_H",20),Yt(d6t,"GRID_TOP_PAD",133),Yt(d6t,"GRID_BOTTOM_PAD",42);
+ let f6t=d6t;
+ const p6t=class extends ZXt{
+ constructor(t){
+ super(t),Yt(this,"index",-1),this.setTexture({
+ texture:eS.getTexture("UI_Ekkorr","Popup_Bg_04"),leftWidth:12,topHeight:12,rightWidth:12,bottomHeight:12}
+ ),this._padding=10,this.width=75,this.height=34,this.textSize=16,this.minWidth=70,this.resizable=!0,this.activatedTextColor=16750848,this.deactivatedTextColor=14988422}
+ onDown(t){
+ this.container.scale=.9}
+ onUp(t){
+ this.container.scale=1}
+ onTap(t){
+ mG.getInstance().playSFX(mG.SFX_NORMAL_CLICK),dG(),this.onClick&&this.onClick(this.index)}
+ }
+ ;
+ Xt(p6t,"PresetSelectButton");
+ let g6t=p6t;
+ const m6t=class extends He{
+ constructor(){
+ super(),Yt(this,"titleIcon"),Yt(this,"titleLbl"),Yt(this,"btnMove"),Yt(this,"btns"),Yt(this,"container"),Yt(this,"lblMessage"),Yt(this,"selectedValue",-1),this.titleIcon=new Ve(eS.getTexture("UI_Ekkorr","Gage_Item_pointer")),this.titleIcon.scale.y=.8,this.addChild(this.titleIcon);
+ const t=AL.MENU_LABEL_OPTION;
+ let i;
+ t.fill=16771263,t.fontSize=18,this.titleLbl=new bD("프리셋",t.fill,t),this.addChild(this.titleLbl),this.btnMove=new YB("UI_Ekkorr","Btn_Move"),this.addChild(this.btnMove),this.btnMove.onClick=this.onMoveBtnClick.bind(this),this.btns=[];
+ for(let e=0;
+ e<5;
+ ++e)i=new g6t(`프리셋${
+ e+1}
+ `),i.index=e,this.addChild(i),this.btns.push(i),i.onClick=this.onPresetBtnClick.bind(this);
+ this.container=new He,this.addChild(this.container);
+ const s=AL.DEFAULT_FONT_OPTION_17;
+ s.fill=13421772,s.fontWeight="normal",s.align="center",this.lblMessage=new bD(QG.getText("GAME_1669","선택한 프리셋이 없습니다."),s.fill,s),this.lblMessage.visible=!1,this.addChild(this.lblMessage),AL.setLabelWrapWidth(this.lblMessage,520),this.updateLayout()}
+ updateLayout(){
+ this.titleLbl.x=this.titleIcon.x+this.titleIcon.width+5,this.titleLbl.y=.5*(this.titleIcon.height-this.titleLbl.height)-3,this.btnMove.x=this.titleLbl.x+this.titleLbl.width+10,this.btnMove.y=this.titleLbl.y+.5*(this.titleLbl.height-this.btnMove.height);
+ let t=this.titleIcon.x,i=this.titleIcon.y+this.titleIcon.height+5;
+ const s=this.btns.length;
+ for(let e=0;
+ e<s;
+ ++e)this.btns[e].x=t,this.btns[e].y=i,t+=this.btns[e].width+5;
+ this.container.x=this.titleIcon.x,this.container.y=i+this.btns[0].height+10,this.lblMessage.x=.5*(520-this.lblMessage.width),this.lblMessage.y=this.container.y+50}
+ setData(){
+ }
+ onMoveBtnClick(){
+ }
+ onPresetBtnClick(t){
+ }
+ showMessage(t){
+ this.lblMessage.text=t,this.lblMessage.x=.5*(520-this.lblMessage.width),this.lblMessage.y=this.container.y+50,this.lblMessage.visible=!0,this.container.visible=!1}
+ hideMessage(){
+ this.lblMessage.visible=!1,this.container.visible=!0}
+ isChanged(){
+ return!1}
+ getSelectedValue(){
+ return this.selectedValue}
+ }
+ ;
+ Xt(m6t,"BasePresetPart");
+ let w6t=m6t;
+ const v6t=class extends w6t{
+ constructor(){
+ let t;
+ super(),Yt(this,"icons"),this.icons=[];
+ for(let i=0;
+ i<10;
+ ++i)t=new D3,t.scale=.8,t.x=i%5*(t.width+5),t.y=Math.floor(i/5)*(t.height+3),this.container.addChild(t),this.icons.push(t)}
+ get height(){
+ return 230}
+ update(t){
+ if(this.btns.forEach(i=>{
+ i.activated=i.index===t}
+ ),-1===t)return void this.showMessage(QG.getText("GAME_1669","선택한 프리셋이 없습니다."));
+ this.hideMessage();
+ const i=Ax.getInstance(),s=[...i.heroPresets[t].team];
+ s.sort((t,s)=>{
+ var e,n,h,r;
+ if(t.enhance!==s.enhance)return s.enhance-t.enhance;
+ const o=(null==(e=i.getBookVO(t.kindNum))?void 0:e.grade)??-1,a=(null==(n=i.getBookVO(s.kindNum))?void 0:n.grade)??-1;
+ return o!==a?a-o:((null==(h=i.getBookVO(t.kindNum))?void 0:h.tribe)??-1)-((null==(r=i.getBookVO(s.kindNum))?void 0:r.tribe)??-1)}
+ );
+ const e=s.length,n=this.icons.length;
+ for(let h=0;
+ h<n;
+ ++h)h<e?(this.icons[h].setDataWithKindNum(s[h].kindNum,s[h].trans,s[h].enhance),this.icons[h].visible=!0):this.icons[h].visible=!1}
+ getSlotDisplayLabel(t){
+ const i=Ax.getInstance().heroPresets[t];
+ return i&&i.label&&i.label.length>0?i.label:this.getSlotName(t)}
+ getSlotName(t){
+ const i=t+1;
+ return QG.getValueReplace("GAME_744","##",String(i),`${
+ i}
+  번`)}
+ setData(){
+ this.titleLbl.text=QG.getText("GAME_1636","영웅 프리셋");
+ const t=Ax.getInstance();
+ let i;
+ const s=this.btns.length;
+ for(let h=0;
+ h<s;
+ ++h){
+ i=this.btns[h],i.text=this.getSlotDisplayLabel(h);
+ try{
+ const s=t.heroPresets[h];
+ s&&0!==s.team.length?i.deactivatedTextColor=14988422:i.deactivatedTextColor=8947848}
+ catch(n){
+ i.deactivatedTextColor=14988422}
+ }
+ const e=t.getActiveHeroPresetSlot();
+ this.selectedValue=e,this.update(e),this.updateLayout()}
+ onMoveBtnClick(){
+ O6t.getInstance().hide(),x3t.getInstance().goHeroPreset()}
+ onPresetBtnClick(t){
+ const i=Ax.getInstance().heroPresets[t];
+ i&&0!==i.team.length?t!==this.selectedValue&&(this.selectedValue=t,this.update(t),O6t.getInstance().onHeroPresetSelect(t)):rH.getInstance().showMessage(QG.getText("GAME_1644","비어있는 슬롯입니다."))}
+ isChanged(){
+ return-1!==this.selectedValue&&Ax.getInstance().getActiveHeroPresetSlot()!==this.selectedValue}
+ }
+ ;
+ Xt(v6t,"HeroPresetPart");
+ let _6t=v6t;
+ const b6t=class extends ix{
+ constructor(){
+ let t;
+ super(),Yt(this,"icons",[]),Yt(this,"posList",[]),Yt(this,"kindNumArray",[]);
+ for(let i=0;
+ i<6;
+ i++)t=new B3,t.scale=.78,t.x=7+i*Math.floor(.78*t.width+15),t.y=7,this.addChild(t),this.icons.push(t),this.posList.push(t.x);
+ this.posList.push(435)}
+ get width(){
+ return 435}
+ get height(){
+ return 70}
+ setData(t){
+ const i=t;
+ if(!i)return;
+ this.kindNumArray=i;
+ const s=mx.getInstance();
+ let e;
+ const n=this.icons.length;
+ for(let h=0;
+ h<n;
+ h++)if(e=this.icons[h],h<i.length){
+ const t=i[h],n=s.getBookVO(t),r=s.getPetVO(t);
+ n&&r&&r.grade>0?e.setPet(n.kindNum,r.grade):n&&r&&r.piece>0?e.setInactive(n.kindNum):e.setEmpty(),e.visible=!0}
+ else e.visible=!1}
+ onClick(t,i){
+ const s=mx.getInstance();
+ for(let e=0;
+ e<this.icons.length;
+ e++)if(t>this.posList[e]&&t<this.posList[e+1]){
+ if(e<this.kindNumArray.length&&this.icons[e].visible){
+ const t=this.kindNumArray[e],i=s.getPetVO(t);
+ if(!i)return;
+ if(i.grade<1)return void rH.getInstance().showMessage(QG.getText("GAME_1660","1★이 되면 대표 펫으로 설정할 수 있습니다."));
+ const n=this.icons[e].x,h=this.icons[e].y;
+ S6t.getInstance().show(this,n,h),O6t.getInstance().onPetSelect(t)}
+ break}
+ }
+ }
+ ;
+ Xt(b6t,"FavoritePetItemRenderer");
+ let M6t=b6t;
+ const y6t=class extends w6t{
+ constructor(){
+ super(),Yt(this,"representIcon"),Yt(this,"favoriteList"),Yt(this,"favoriteListBg"),this.btns.forEach(t=>{
+ t.removeFromParent()}
+ ),this.representIcon=new B3,this.representIcon.scale=.78,this.representIcon.x=this.titleIcon.x+10,this.representIcon.y=this.titleIcon.y+this.titleIcon.height+10+10+6,this.addChild(this.representIcon),this.favoriteListBg=new ky({
+ texture:eS.getTexture("UI_Ekkorr","Popup_Bg_03"),leftWidth:30,topHeight:30,rightWidth:30,bottomHeight:30}
+ ),this.favoriteListBg.alpha=.7,this.favoriteListBg.width=435,this.favoriteListBg.height=200,this.container.addChild(this.favoriteListBg),this.favoriteList=new Z3(M6t,this.favoriteListBg.width,195,0),this.favoriteList.x=10,this.favoriteList.y=10,this.container.addChild(this.favoriteList),AL.setLabelWrapWidth(this.lblMessage,this.favoriteListBg.width)}
+ get height(){
+ return 245}
+ updateLayout(){
+ this.titleLbl.x=this.titleIcon.x+this.titleIcon.width+5,this.titleLbl.y=.5*(this.titleIcon.height-this.titleLbl.height)-3,this.btnMove.x=this.titleLbl.x+this.titleLbl.width+10,this.btnMove.y=this.titleLbl.y+.5*(this.titleLbl.height-this.btnMove.height),this.representIcon?this.container.x=this.representIcon.x+this.representIcon.width+10:this.container.x=this.titleIcon.x,this.container.y=this.titleIcon.y+this.titleIcon.height+10,this.lblMessage&&this.favoriteListBg&&(this.lblMessage.x=this.container.x+.5*(this.favoriteListBg.width-this.lblMessage.width)),this.lblMessage.y=this.container.y+20}
+ update(){
+ const t=mx.getInstance();
+ this.updateRepresentIcon(t.representPet);
+ const i=[...t.favoritePets];
+ if(0===i.length){
+ const t=QG.getText("GAME_1638","설정한 선호 펫이 없습니다.")+"\n"+QG.getText("GAME_1639","펫 목록에서 선호 펫을 설정해 보세요.");
+ return void this.showMessage(t)}
+ this.hideMessage(),i.sort((i,s)=>{
+ var e,n,h,r;
+ const o=(null==(e=t.getPetVO(i))?void 0:e.grade)??-1,a=(null==(n=t.getPetVO(s))?void 0:n.grade)??-1;
+ if(a!==o)return a-o;
+ const c=(null==(h=t.getPetVO(i))?void 0:h.piece)??-1;
+ return((null==(r=t.getPetVO(s))?void 0:r.piece)??-1)-c}
+ ),this.favoriteList.dataProvider=hx.chunkArray(i,6)}
+ updateRepresentIcon(t){
+ const i=mx.getInstance();
+ if(t>0){
+ const s=i.getBookVO(t),e=i.getPetVO(t);
+ s&&e&&e.grade>0?this.representIcon.setPet(s.kindNum,e.grade):this.representIcon.setEmpty()}
+ else this.representIcon.setEmpty()}
+ onPetSelect(t){
+ t!==this.selectedValue&&(this.selectedValue=t,mx.getInstance(),this.updateRepresentIcon(t))}
+ setData(){
+ this.titleLbl.text=QG.getText("GAME_573","대표 펫");
+ const t=mx.getInstance();
+ this.selectedValue=t.representPet,this.update(),this.updateLayout()}
+ onMoveBtnClick(){
+ O6t.getInstance().hide(),x3t.getInstance().goPetList()}
+ showMessage(t){
+ super.showMessage(t),this.favoriteListBg&&(this.lblMessage.x=this.container.x+.5*(this.favoriteListBg.width-this.lblMessage.width)),this.lblMessage.y=this.container.y+20}
+ isChanged(){
+ return-1!==this.selectedValue&&mx.getInstance().representPet!==this.selectedValue}
+ }
+ ;
+ Xt(y6t,"PetPresetPart");
BurntEffect1 1 hunks, 187 statements
- const $j=[yH.RaidBuffSkillEffect1,yH.RaidBuffSkillEffect2,yH.RaidBuffSkillEffect3,yH.RaidBuffSkillEffect4,yH.RaidBuffSkillEffect5],Wj=class{
+ const Kj=[SH.RaidBuffSkillEffect1,SH.RaidBuffSkillEffect2,SH.RaidBuffSkillEffect3,SH.RaidBuffSkillEffect4,SH.RaidBuffSkillEffect5],zj=class extends CH{
+ constructor(){
+ super(SH.BurntEffect1),this._textureName="BurntEffect",this._sheetName="Game2",this.orgScale=1,this.loop=!0}
+ }
+ ;
+ Xt(zj,"BurntEffect1");
+ let qj=zj;
+ const Xj=class extends CH{
+ constructor(){
+ super(SH.BurnEffect1),this._textureName="BurnEffect1",this._sheetName="Game",this.orgScale=1,this.loop=!0}
+ }
+ ;
+ Xt(Xj,"BurnEffect1");
+ let Yj=Xj;
+ const Jj=class extends CH{
+ constructor(){
+ super(SH.FireSpiritExplosion1),this._textureName="FireExplosion",this._sheetName="Game2",this.orgScale=1.5,this.loop=!1}
+ start(t){
+ this.alpha=1,this.scale.set(this.orgScale),super.start(t)}
+ }
+ ;
+ Xt(Jj,"FireSpiritExplosion1");
+ let Qj=Jj;
+ const Zj=class t extends CH{
+ constructor(){
+ super(SH.FireSpiritPillar1),Yt(this,"layers",[]),Yt(this,"frames",[]),Yt(this,"spins",[]),Yt(this,"phases",[]),Yt(this,"texCount",0),Yt(this,"t",0),Yt(this,"fadingOut",!1),Yt(this,"fadeT",0),this._textureName="FireTornado",this._sheetName="Game2",this.orgScale=1,this.loop=!0}
+ async createUI(){
+ if(eS.hasSheet(this._sheetName)||await super.createUI(),this.layers.length>0)return;
+ const i=eS.getTextures(this._sheetName,this._textureName);
+ if(this.texCount=i.length,0!==this.texCount)for(let s=0;
+ s<t.LAYERS;
+ s++){
+ const e=new Kf(i);
+ e.anchor.set(.5,1);
+ const n=t.BASE_SCALE*Math.pow(t.TAPER,s);
+ e.scale.set(n),e.y=-s*t.LAYER_GAP,e.blendMode="add",e.gotoAndStop(0),this.addChild(e),this.layers.push(e),this.frames.push(this.texCount/t.LAYERS*s),this.spins.push(t.SPIN_BASE+t.SPIN_STEP*s),this.phases.push(2*Math.PI*s/t.LAYERS)}
+ }
+ start(t){
+ this.t=0,this.fadingOut=!1,this.fadeT=0,this.alpha=0,this.scale.set(this.orgScale),super.start(t)}
+ fadeOut(){
+ this.fadingOut||(this.fadingOut=!0,this.fadeT=t.FADE_FRAMES)}
+ onEnter(){
+ if(!this.removed){
+ if(this.t++,this.fadingOut){
+ if(this.fadeT--,this.alpha=Math.max(0,this.fadeT/t.FADE_FRAMES),this.fadeT<=0)return void this.remove()}
+ else this.alpha<1&&(this.alpha=Math.min(1,this.alpha+1/t.FADE_FRAMES));
+ for(let i=0;
+ i<this.layers.length;
+ i++){
+ const s=this.layers[i];
+ this.frames[i]+=this.spins[i],this.frames[i]>=this.texCount&&(this.frames[i]-=this.texCount),s.gotoAndStop(Math.floor(this.frames[i])),s.x=Math.sin(this.t*t.SWAY_FREQ+this.phases[i])*t.SWAY_AMP*(i+1)*.5}
+ }
+ }
+ }
+ ;
+ Xt(Zj,"FireSpiritPillar1"),Yt(Zj,"LAYERS",3),Yt(Zj,"BASE_SCALE",1.15),Yt(Zj,"TAPER",.82),Yt(Zj,"LAYER_GAP",52),Yt(Zj,"SPIN_BASE",.55),Yt(Zj,"SPIN_STEP",.14),Yt(Zj,"SWAY_AMP",5),Yt(Zj,"SWAY_FREQ",.13),Yt(Zj,"FADE_FRAMES",8);
+ let tV=Zj;
+ const iV=class t extends CH{
+ constructor(){
+ super(SH.FireSpiritEmber1),Yt(this,"startScale",1),this._textureName="FireAttack",this._sheetName="Game2",this.orgScale=.7,this.loop=!0,this.incFrame=.5}
+ start(t){
+ this.alpha=1,this.startScale=this.scale.x||this.orgScale,super.start(t)}
+ onEnter(){
+ if(super.onEnter(),!this.removed&&this.count<t.FADE_FRAMES){
+ const i=Math.max(0,this.count/t.FADE_FRAMES);
+ this.alpha=i;
+ const s=this.startScale*(.45+.55*i);
+ this.scale.set(s)}
+ }
+ }
+ ;
+ Xt(iV,"FireSpiritEmber1"),Yt(iV,"FADE_FRAMES",20);
+ let sV=iV;
+ const eV=class t extends CH{
+ constructor(){
+ super(SH.FireSpiritOrbit1),Yt(this,"scatterVX",0),Yt(this,"scatterVY",0),Yt(this,"scattering",!1),Yt(this,"scatterLife",1),Yt(this,"scatterT",0),this._textureName="FireTornado",this._sheetName="Game2",this.orgScale=.42,this.loop=!0,this.incFrame=t.BASE_INC}
+ start(i){
+ this.alpha=1,this.scattering=!1,this.scatterT=0,this.incFrame=t.BASE_INC,super.start(i),this.setHeat(0)}
+ setHeat(i){
+ const s=i<0?0:i>1?1:i;
+ if(this.incFrame=t.BASE_INC+t.HEAT_INC*s,!this.sp)return;
+ const e=t.COOL,n=t.HOT,h=Math.round(e.r+(n.r-e.r)*s),r=Math.round(e.g+(n.g-e.g)*s),o=Math.round(e.b+(n.b-e.b)*s);
+ this.sp.tint=h<<16|r<<8|o}
+ scatter(t,i,s){
+ this.scattering=!0,this.scatterVX=t,this.scatterVY=i,this.scatterLife=Math.max(1,s),this.scatterT=0,this.count=this.scatterLife}
+ onEnter(){
+ if(super.onEnter(),this.removed||!this.scattering)return;
+ const t=1-this.scatterT/this.scatterLife;
+ this.x+=this.scatterVX*t,this.y+=this.scatterVY*t,this.alpha=t*t,this.scale.set(this.orgScale*(.35+.65*t)),++this.scatterT>=this.scatterLife&&this.remove()}
+ }
+ ;
+ Xt(eV,"FireSpiritOrbit1"),Yt(eV,"BASE_INC",.55),Yt(eV,"HEAT_INC",.85),Yt(eV,"COOL",{
+ r:255,g:210,b:160}
+ ),Yt(eV,"HOT",{
+ r:255,g:255,b:255}
+ );
+ let nV=eV;
+ const hV=class extends CH{
+ constructor(){
+ super(SH.GriffinSpearFlash1),this._textureName="SpearEffect",this._sheetName="Game2",this.orgScale=1.5,this.loop=!1,this.incFrame=0}
+ start(t){
+ this.alpha=1,this.scale.set(this.orgScale),super.start(t)}
+ onEnter(){
+ super.onEnter(),this.removed||(this.scale.set(1.045*this.scale.x,1.045*this.scale.y),this.alpha-=.08,this.alpha<=0&&this.remove())}
+ }
+ ;
+ Xt(hV,"GriffinSpearFlash1");
+ let rV=hV;
+ const oV=class t extends CH{
+ constructor(){
+ super(SH.MedusaCoilSnake1),Yt(this,"coilOwner",null),Yt(this,"orbitAngle",0),Yt(this,"radius",24),this._textureName="MedusaArrow",this._sheetName="Game2",this.orgScale=.6,this.loop=!0}
+ setupCoil(t,i,s){
+ this.coilOwner=t,this.orbitAngle=i,this.radius=s}
+ onEnter(){
+ var i;
+ if(this.removed)return;
+ if(!this.coilOwner||this.coilOwner.removed)return void this.remove();
+ this.orbitAngle+=t.ORBIT_SPEED;
+ const s=Math.cos(this.orbitAngle)*this.radius,e=Math.sin(this.orbitAngle)*this.radius*.5;
+ this.x=this.coilOwner.x+s,this.y=this.coilOwner.y-.4*this.coilOwner.hitHeight+e;
+ const n=this.orbitAngle+Math.PI/2;
+ this.scale.x=this.orgScale*(Math.cos(n)>=0?-1:1),this.scale.y=this.orgScale,this.currentFrame+=this.incFrame,this.currentFrame>=this.endFrame&&(this.currentFrame=0),null==(i=this.sp)||i.gotoAndStop(Math.floor(this.currentFrame))}
+ }
+ ;
+ Xt(oV,"MedusaCoilSnake1"),Yt(oV,"ORBIT_SPEED",.03);
+ let aV=oV;
+ const cV=class t extends CH{
+ constructor(){
+ super(SH.MedusaSnakeCrawl1),Yt(this,"crawlOwner",null),Yt(this,"life",0),this._textureName="MedusaArrow",this._sheetName="Game2",this.orgScale=1,this.loop=!0}
+ setupCrawl(t,i,s,e){
+ this.x=t,this.y=i,this.crawlOwner=s,this.life=e}
+ onEnter(){
+ var i;
+ if(this.removed)return;
+ if(this.life--,this.life<=0||!this.crawlOwner||this.crawlOwner.removed)return void this.remove();
+ const s=this.crawlOwner.x-this.x,e=this.crawlOwner.y-this.y,n=Math.sqrt(s*s+e*e);
+ if(n<t.ARRIVE)return void this.remove();
+ const h=Math.min(t.SPEED,n);
+ this.x+=s/n*h,this.y+=e/n*h,this.scale.x=this.orgScale*(s>=0?-1:1),this.scale.y=this.orgScale,this.currentFrame+=this.incFrame,this.currentFrame>=this.endFrame&&(this.currentFrame=0),null==(i=this.sp)||i.gotoAndStop(Math.floor(this.currentFrame))}
+ }
+ ;
+ Xt(cV,"MedusaSnakeCrawl1"),Yt(cV,"SPEED",4),Yt(cV,"ARRIVE",20);
+ let lV=cV;
+ const uV=class extends CH{
+ constructor(){
+ super(SH.MedusaSnakeStuck1),this._textureName="MedusaArrow",this._sheetName="Game2",this.orgScale=1,this.loop=!0}
+ }
+ ;
+ Xt(uV,"MedusaSnakeStuck1");
+ let dV=uV;
+ const fV=class extends CH{
+ constructor(){
+ super(SH.NagaFrost1),this._textureName="NagaIce2",this._sheetName="Game2",this.orgScale=1,this.loop=!1,this.incFrame=1.5,this.holdLastFrame=!0,this.holdLastFrameOffset=16}
+ }
+ ;
+ Xt(fV,"NagaFrost1");
+ let pV=fV;
+ const gV=class t extends CH{
+ constructor(){
+ super(SH.NagaIceSegment1),Yt(this,"exploding",!1),Yt(this,"formDelay",0),this._textureName="NagaIce1",this._sheetName="Game2",this.orgScale=.5,this.loop=!1,this.incFrame=1}
+ async createUI(){
+ await super.createUI(),this.sp&&(this.sp.tint=t.TINT)}
+ start(t){
+ this.exploding=!1,this.formDelay=0,this.visible=!0,this.scale.set(this.orgScale),super.start(t)}
+ setFormDelay(t){
+ this.formDelay=Math.max(0,t),this.formDelay>0&&(this.visible=!1)}
+ shatter(i=1){
+ if(this.exploding=!0,this.formDelay=0,this.visible=!0,1!==i){
+ const t=this.scale.x;
+ this.scale.set(t*i,this.scale.y*i)}
+ this.currentFrame<t.GROWN_FRAME&&(this.currentFrame=t.GROWN_FRAME)}
+ onEnter(){
+ var i,s;
+ if(!this.exploding)return this.formDelay>0?(this.formDelay--,void(this.visible=!1)):(this.visible=!0,this.currentFrame<t.GROWN_FRAME&&(this.currentFrame+=this.incFrame,this.currentFrame>t.GROWN_FRAME&&(this.currentFrame=t.GROWN_FRAME)),void(null==(i=this.sp)||i.gotoAndStop(Math.floor(this.currentFrame))));
+ this.currentFrame+=this.incFrame,this.currentFrame>=this.endFrame?this.remove():null==(s=this.sp)||s.gotoAndStop(Math.floor(this.currentFrame))}
+ }
+ ;
+ Xt(gV,"NagaIceSegment1"),Yt(gV,"GROWN_FRAME",32),Yt(gV,"TINT",15529212);
+ let mV=gV;
+ const wV=class extends mV{
+ constructor(){
+ super(),this.className=SH.NagaIceSegment2,this._textureName="NagaIce2"}
+ }
+ ;
+ Xt(wV,"NagaIceSegment2");
+ let vV=wV;
+ const _V=class{
PetPresetIndicator 1 hunks, 141 statements
- super(),Yt(this,"btnDungeon",new KB("UI_Ekkorr","HeroGrade6")),Yt(this,"btnIdle",new KB("UI_Ekkorr","HeroGrade4")),Yt(this,"btnMap3",new KB("UI_Ekkorr","HeroGrade2")),Yt(this,"btnMap4",new KB("UI_Ekkorr","HeroGrade16")),Yt(this,"btnRaidBosses",[]),Yt(this,"btnBuff",new KB("UI_Ekkorr","HeroGrade10")),Yt(this,"btnMine",new KB("UI_Ekkorr","HeroGrade12")),Yt(this,"btnCardEvent",new KB("UI_Ekkorr","HeroGrade14")),Yt(this,"btnConquest",new KB("UI_Ekkorr","HeroGrade8")),Yt(this,"btnPowerSave",new KB("UI_Ekkorr","PowerOff")),Yt(this,"healthOrb",u0t.getInstance()),Yt(this,"waveCallInfo",w0t.getInstance()),Yt(this,"timeShiftGauge",new g0t),Yt(this,"btnWaveSetting",new KB("UI_Ekkorr","smallSetting")),Yt(this,"waveSettingFrameCnt",0),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,UM.getInstance().add(this.onWaveSettingFrame,this),Dzt.getInstance().x=0,Dzt.getInstance().y=-13,this.addChild(Dzt.getInstance()),Dzt.getInstance().onVisibilityChanged=t=>{
+ super(),Yt(this,"indicator"),this.eventMode="none",this.indicator=new ky({
+ texture:eS.getTexture("UI_Ekkorr","UI_SELECT"),leftWidth:25,topHeight:25,rightWidth:25,bottomHeight:25}
+ ),this.indicator.eventMode="none",this.indicator.x=-7,this.indicator.y=-7,this.indicator.width=73,this.indicator.height=73,this.addChild(this.indicator)}
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ show(t,i,s){
+ this.x=i,this.y=s,t&&t.addChild(this)}
+ hide(){
+ this.parent&&this.parent.removeChild(this)}
+ }
+ ;
+ Xt(A6t,"PetPresetIndicator"),Yt(A6t,"_instance");
+ let S6t=A6t;
+ const T6t=class extends w6t{
+ constructor(){
+ super(),Yt(this,"icons"),this.icons=[];
+ const t=.78;
+ let i;
+ for(let s=0;
+ s<15;
+ ++s)i=new IJt,i.scale=t,i.x=s%8*Math.floor(i.width*t+12),i.y=Math.floor(s/8)*Math.floor(i.height*t+12),this.container.addChild(i),this.icons.push(i)}
+ get height(){
+ return 230}
+ update(t){
+ if(this.btns.forEach(i=>{
+ i.activated=i.index===t}
+ ),-1===t)return void this.showMessage(QG.getText("GAME_1669","선택한 프리셋이 없습니다."));
+ this.hideMessage();
+ const i=Xx.getInstance(),s=i.presets,e=s[t].kindNums.map((i,e)=>({
+ kindNum:i,enhance:s[t].enhances[e]}
+ ));
+ e.sort((t,s)=>{
+ var e,n,h,r;
+ const o=t.kindNum,a=s.kindNum,c=nR.getInstance(),l=c.getSetsByTreasureKindNum(o),u=c.getSetsByTreasureKindNum(a),d=0==l.length;
+ if(d!=(0==u.length))return d?1:-1;
+ const f=(null==(e=i.getBookDataByKindNum(o))?void 0:e.grade)??-1,p=(null==(n=i.getBookDataByKindNum(a))?void 0:n.grade)??-1;
+ if(f!=p)return p-f;
+ const g=l.length>0?l[0].kindNum:0,m=u.length>0?u[0].kindNum:0;
+ if(g!=m)return m-g;
+ const w=(null==(h=i.getBookDataByKindNum(o))?void 0:h.sortId)??-1;
+ return((null==(r=i.getBookDataByKindNum(a))?void 0:r.sortId)??-1)-w}
+ );
+ const n=e.length,h=this.icons.length;
+ for(let r=0;
+ r<h;
+ ++r)r<n?(this.icons[r].setDataWithKindNum(e[r].kindNum,0,e[r].enhance),this.icons[r].visible=!0):this.icons[r].visible=!1}
+ getSlotDisplayLabel(t){
+ const i=Xx.getInstance().presets[t];
+ return i&&i.label&&i.label.length>0?i.label:this.getSlotName(t)}
+ getSlotName(t){
+ const i=t+1;
+ return QG.getValueReplace("GAME_744","##",String(i),`${
+ i}
+  번`)}
+ setData(){
+ this.titleLbl.text=QG.getText("GAME_1637","유물 프리셋");
+ const t=Xx.getInstance();
+ let i;
+ const s=this.btns.length;
+ for(let h=0;
+ h<s;
+ ++h){
+ i=this.btns[h],i.text=this.getSlotDisplayLabel(h);
+ try{
+ t.presets[h].hasEntries?i.deactivatedTextColor=14988422:i.deactivatedTextColor=8947848}
+ catch(n){
+ i.deactivatedTextColor=14988422}
+ }
+ const e=t.getActivePresetSlot();
+ this.selectedValue=e,this.update(e),this.updateLayout()}
+ onMoveBtnClick(){
+ O6t.getInstance().hide(),x3t.getInstance().goTreasurePreset()}
+ onPresetBtnClick(t){
+ Xx.getInstance().presets[t].hasEntries?t!==this.selectedValue&&(this.selectedValue=t,this.update(t),O6t.getInstance().onTreasurePresetSelect(t)):rH.getInstance().showMessage(QG.getText("GAME_1644","비어있는 슬롯입니다."))}
+ isChanged(){
+ return-1!==this.selectedValue&&Xx.getInstance().getActivePresetSlot()!==this.selectedValue}
+ }
+ ;
+ Xt(T6t,"TreasurePresetPart");
+ let C6t=T6t;
+ const I6t=class t extends RG{
+ constructor(){
+ super(),Yt(this,"heroPreset"),Yt(this,"treasurePreset"),Yt(this,"petPreset"),Yt(this,"btnConfirm"),Yt(this,"btnCancel"),Yt(this,"requestPending",!1),this.title=QG.getText("GAME_1635","통합 프리셋"),this.heroPreset=new _6t,this.heroPreset.x=30,this.heroPreset.y=70,this.addChild(this.heroPreset),this.treasurePreset=new C6t,this.treasurePreset.x=this.heroPreset.x,this.treasurePreset.y=this.heroPreset.y+this.heroPreset.height+30,this.addChild(this.treasurePreset),this.petPreset=new E6t,this.petPreset.x=this.heroPreset.x,this.petPreset.y=this.treasurePreset.y+this.treasurePreset.height+30,this.addChild(this.petPreset),this.btnConfirm=new TG("저장"),this.addChild(this.btnConfirm),this.btnConfirm.onClick=this.onConfirmClick.bind(this),this.btnCancel=new pjt("취소"),this.addChild(this.btnCancel),this.btnCancel.onClick=this.onCancelClick.bind(this),this.updateLayout()}
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ updateLayout(){
+ this.btnConfirm.x=.5*(this.width-this.btnConfirm.width-this.btnCancel.width-20),this.btnCancel.x=this.btnConfirm.x+this.btnConfirm.width+20,this.btnConfirm.y=this.petPreset.y+this.petPreset.height+30,this.btnCancel.y=this.btnConfirm.y,this.height=this.btnConfirm.y+this.btnConfirm.height+40}
+ setData(){
+ this.title=QG.getText("GAME_1635","통합 프리셋"),this.btnConfirm.text=QG.getText("GAME_527","저장"),this.btnCancel.text=QG.getText("COMMON_2","취소"),this.heroPreset.setData(),this.treasurePreset.setData(),this.petPreset.setData(),this.btnConfirm.activated=!1,S6t.getInstance().hide(),this.updateLayout()}
+ onHeroPresetSelect(t){
+ this.updateConfirmBtn()}
+ onTreasurePresetSelect(t){
+ this.updateConfirmBtn()}
+ onPetSelect(t){
+ this.petPreset.onPetSelect(t),this.updateConfirmBtn()}
+ updateConfirmBtn(){
+ this.heroPreset.isChanged()||this.treasurePreset.isChanged()||this.petPreset.isChanged()?this.btnConfirm.activated=!0:this.btnConfirm.activated=!1}
+ isAvailable(){
+ VD.maxWave;
+ const t=Math.max(300,mx.getInstance().unlockWave),i=Xx.getInstance();
+ return!(VD.maxWave<t||0==i.presetUnlocked)}
+ onCancelClick(){
+ this.hide()}
+ async onConfirmClick(){
+ if(1==this.requestPending)return;
+ this.setRequestPending(!0);
+ let t=!0;
+ this.heroPreset.isChanged()&&(t=await this.saveHeroPreset());
+ let i=!0;
+ this.treasurePreset.isChanged()&&(i=await this.saveTreasurePreset());
+ let s=!0;
+ this.petPreset.isChanged()&&(s=await this.savePetPreset()),t&&i&&s&&this.hide(),this.setRequestPending(!1)}
+ async saveHeroPreset(){
+ if(!this.heroPreset.isChanged())return!1;
+ const t=Ax.getInstance(),i=t.list.map(t=>t.id),s=t.list.map(t=>t.level);
+ oYt.cancel();
+ const e=this.heroPreset.getSelectedValue(),n=await ML.getInstance().hero.applyHeroPreset(e,!0,s);
+ if(!1===n.success)return $G.getInstance().showError(n),!1;
+ VD.setUserInfo(n.body),t.setLastAppliedHeroPresetSlot(e),bH.getInstance().updateAll();
+ const h=hli.getInstance(),r=Tx.getVO();
+ for(const o of i)r.id=o,h.fireHero(r);
+ r.remove();
+ for(const o of t.list)await h.hireHero(o);
+ return fXt.getInstance().isHeroSubView()&&NYt.getInstance().setData(),!0}
+ async saveTreasurePreset(){
+ if(!this.treasurePreset.isChanged())return!1;
+ const t=Xx.getInstance(),i=this.treasurePreset.getSelectedValue(),s=await ML.getInstance().treasure.applyPreset(i,!0);
+ return!1===s.success?($G.getInstance().showError(s,s.errorAdditional??null),!1):(VD.setUserInfo(s.body),t.setData(s.body.treasure,s.body.dungeon),bH.getInstance().updateAll(),fXt.getInstance().isTreasureSubView()&&f8t.getInstance().setData(),!0)}
+ async savePetPreset(){
+ if(!this.petPreset.isChanged())return!1;
+ const t=this.petPreset.getSelectedValue(),i=await ML.getInstance().pet.setRepresentPet(t,!0);
+ return!1===i.success?($G.getInstance().showError(i),!1):(VD.setUserInfo(i.body),X1t.getInstance().setData(),fXt.getInstance().isHeroSubView()&&NYt.getInstance().setData(),!0)}
+ setRequestPending(t){
+ this.requestPending=t}
+ }
+ ;
+ Xt(I6t,"PresetPopup"),Yt(I6t,"_instance");
+ let O6t=I6t;
+ const k6t=class t extends He{
+ constructor(){
+ super(),Yt(this,"btnDungeon",new YB("UI_Ekkorr","HeroGrade6")),Yt(this,"btnIdle",new YB("UI_Ekkorr","HeroGrade4")),Yt(this,"btnMap3",new YB("UI_Ekkorr","HeroGrade2")),Yt(this,"btnMap4",new YB("UI_Ekkorr","HeroGrade16")),Yt(this,"btnRaidBosses",[]),Yt(this,"btnBuff",new YB("UI_Ekkorr","HeroGrade10")),Yt(this,"btnMine",new YB("UI_Ekkorr","HeroGrade12")),Yt(this,"btnCardEvent",new YB("UI_Ekkorr","HeroGrade14")),Yt(this,"btnConquest",new YB("UI_Ekkorr","HeroGrade8")),Yt(this,"btnPowerSave",new YB("UI_Ekkorr","PowerOff")),Yt(this,"healthOrb",c1t.getInstance()),Yt(this,"waveCallInfo",g1t.getInstance()),Yt(this,"timeShiftGauge",new f1t),Yt(this,"btnWaveSetting",new YB("UI_Ekkorr","smallSetting")),Yt(this,"btnAllPreset",new YB("UI_Ekkorr","AllPreset")),Yt(this,"waveSettingFrameCnt",0),Yt(this,"onReviveBind"),this.healthOrb.x=640-.5*this.healthOrb.width-3,this.healthOrb.y=13,this.addChild(this.healthOrb),this.waveCallInfo.x=10,this.waveCallInfo.y=t.WAVE_CALL_BASE_Y,this.addChild(this.waveCallInfo),this.waveCallInfo.eventMode="static",this.waveCallInfo.on("pointerup",this.getNextWave,this),this.waveCallInfo.start(),this.timeShiftGauge.x=this.waveCallInfo.x+62,this.timeShiftGauge.y=this.waveCallInfo.y,this.addChild(this.timeShiftGauge),this.btnWaveSetting.x=this.timeShiftGauge.x+48+12,this.btnWaveSetting.y=this.waveCallInfo.y+.5*(40-this.btnWaveSetting.height),this.addChild(this.btnWaveSetting),this.btnWaveSetting.on("pointerup",this.onWaveSetting,this),this.btnWaveSetting.visible=!1,Fy.getInstance().add(this.onWaveSettingFrame,this),Nqt.getInstance().x=0,Nqt.getInstance().y=-13,this.addChild(Nqt.getInstance()),Nqt.getInstance().onVisibilityChanged=t=>{
AttendanceAutoTrigger 7 hunks, 63 statements
- const Hci=3e5;
- let $ci=0,Wci=!1;
+ const dui=6e4;
+ let fui=0,pui=!1,gui=!1;
- $ci=0,t<Hci||Zt(async()=>{
+ fui=0,t<dui||vui()}
+ ))}
+ async function wui(){
+ const{
+ BattleManager:t}
+ =await ti(async()=>{
- ,void 0).then(({
- BattleManager:t}
- )=>{
- t.getInstance().isIdleBattleActive()&&window.location.reload()}
+ ,void 0);
+ if(!t.getInstance().isIdleBattleActive())return!1;
+ const{
+ BattleFrameController:i}
+ =await ti(async()=>{
+ const{
+ BattleFrameController:t}
+ =await Promise.resolve().then(()=>EB);
+ return{
+ BattleFrameController:t}
+ }
+ ,void 0);
+ if(!i.getInstance().isRunning)return!1;
+ const{
+ BattleController:s}
+ =await ti(async()=>{
+ const{
+ BattleController:t}
+ =await Promise.resolve().then(()=>rli);
+ return{
+ BattleController:t}
+ }
+ ,void 0);
+ return!s.getInstance().isCastleDestroyed()}
+ async function vui(t){
+ var i;
+ if(!gui){
+ gui=!0;
+ try{
+ if(!(await wui()))return;
+ const t=await ML.getInstance().user.applyOfflineMarch(),s=(null==t?void 0:t.success)?null==(i=t.body)?void 0:i.offlineMarch:null;
+ if(null==s)return;
+ if(!(await wui()))return;
+ const{
+ BattleController:e}
+ =await ti(async()=>{
+ const{
+ BattleController:t}
+ =await Promise.resolve().then(()=>rli);
+ return{
+ BattleController:t}
+ }
+ ,void 0);
+ await bui(s,()=>{
+ e.getInstance().applyOfflineMarchWave(s.afterWave)}
- ))}
+ catch(Unt){
+ }
+ finally{
+ gui=!1}
+ }
+ }
- if(null==t)return void(await Gai.getInstance().startGame());
- await Gai.getInstance().startGame();
+ null!=t?(await ali.getInstance().startGame(),await bui(t)):await ali.getInstance().startGame()}
+ async function bui(t,i){
+ null==i||i();
- qt(jci,"registerBackgroundReloadWatcher"),qt(Vci,"checkOfflineMarch"),qt(Kci,"onGameMainStart"),qt(zci,"updateUserData"),qt(qci,"onAfConversionData"),qt(Yci,"updateProgress"),qt(Xci,"setPushSettings"),qt(Jci,"setupPush");
+ Xt(mui,"registerBackgroundOfflineWatcher"),Xt(wui,"canSettleOfflineOnResume"),Xt(vui,"settleOfflineOnResume"),Xt(_ui,"checkOfflineMarch"),Xt(bui,"playOfflineMarch"),Xt(Mui,"onGameMainStart"),Xt(yui,"updateUserData"),Xt(Eui,"onAfConversionData"),Xt(Aui,"updateProgress"),Xt(Sui,"setPushSettings"),Xt(Tui,"setupPush");
PetAwakeningEffects 8 hunks, 57 statements
+ static getHumanSecretQuestLimit(){
+ return this.isPetAwakened(27)?5:null}
+ static getDruidOwnedPactLevelContribution(){
+ const t=tP.getInstance().version;
+ return this._cachedDruidPactLevelVer===t||(this._cachedDruidPactLevelVer=t,this._cachedDruidPactLevel=this.sumAwakenedCoupleOwnedOnly(this.DRUID_PET_KINDNUM,5,15,300)),this._cachedDruidPactLevel}
+ static getDruidOwnedPactLevelContributors(){
+ return this.collectAwakenedCoupleOwnedContributors(this.DRUID_PET_KINDNUM)}
+ static getSuccubusOwnedCallOfDawnContribution(){
+ const t=tP.getInstance().version;
+ return this._cachedSuccubusCallOfDawnVer===t||(this._cachedSuccubusCallOfDawnVer=t,this._cachedSuccubusCallOfDawn=this.sumAwakenedCoupleOwnedOnly(this.SUCCUBUS_PET_KINDNUM,1,2.5,50)),this._cachedSuccubusCallOfDawn}
+ static getSuccubusOwnedCallOfDawnContributors(){
+ return this.collectAwakenedCoupleOwnedContributors(this.SUCCUBUS_PET_KINDNUM)}
+ static getBladeMasterOwnedPackLevelContribution(){
+ const t=tP.getInstance().version;
+ return this._cachedBladeMasterPackLevelVer===t||(this._cachedBladeMasterPackLevelVer=t,this._cachedBladeMasterPackLevel=this.sumAwakenedCoupleOwnedOnly(this.BLADE_MASTER_PET_KINDNUM,5,15,300)),this._cachedBladeMasterPackLevel}
+ static getBladeMasterOwnedPackLevelContributors(){
+ return this.collectAwakenedCoupleOwnedContributors(this.BLADE_MASTER_PET_KINDNUM)}
+ static collectAwakenedCoupleOwnedContributors(t){
+ var i;
+ if(!this.isPetAwakened(t))return[];
+ const s=(null==(i=mx.getInstance().getBookVO(t))?void 0:i.couple)??0;
+ if(s<=0)return[];
+ const e=Ax.getInstance();
+ return[...new Set(e.ownedUnitList.filter(t=>{
+ const i=e.getBookVO(t.kindNum);
+ return(t.count??0)+(t.trans[0]??0)+(t.trans[1]??0)+(t.trans[2]??0)>0&&i&&(5===i.grade||6===i.grade)&&this.isCoupleHeroBookVO(i,s)}
+ ).map(t=>t.kindNum))]}
+ if(h.className!==fx.Fairy1)continue;
+ if(t===Lx.ElfSecret&&h.className!==fx.Fairy1)continue;
+ case 28:return{
+ total:i.getGameplayTotal(Lx.PactOfLife),nameKey:"HERO_UNIQUE_SKILL_NAME_82",nameFallback:"생명의 맹약",isPercent:!1,coupleOwnedValue:this.getDruidOwnedPactLevelContribution()}
+ ;
+ case 29:return{
+ total:i.getGameplayTotal(Lx.CallOfDawn),nameKey:"HERO_UNIQUE_SKILL_NAME_92",nameFallback:"황혼의 부름",coupleOwnedValue:this.getSuccubusOwnedCallOfDawnContribution()}
+ ;
+ case 30:return{
+ total:i.getGameplayTotal(Lx.PackOfWild),nameKey:"HERO_UNIQUE_SKILL_NAME_87",nameFallback:"야성의 맹약",isPercent:!1,coupleOwnedValue:this.getBladeMasterOwnedPackLevelContribution()}
+ ;
- return this._cachedWyvernMaxLvVer===t||(this._cachedWyvernMaxLvVer=t,this._cachedWyvernMaxLv=this.sumAwakenedCoupleContribution(this.WYVERN_PET_KINDNUM,5,10,200)),this._cachedWyvernMaxLv}
+ return this._cachedWyvernMaxLvVer===t||(this._cachedWyvernMaxLvVer=t,this._cachedWyvernMaxLv=this.sumAwakenedCoupleTeamPlusCappedOwned(this.WYVERN_PET_KINDNUM,5,10,200)),this._cachedWyvernMaxLv}
- for(const s of this.GAMESPEED_AWAKENINGS)i+=this.sumAwakenedCoupleContribution(s.petKindNum,s.val5,s.val6,s.cap);
+ for(const s of this.GAMESPEED_AWAKENINGS)i+=this.sumAwakenedCoupleTeamPlusCappedOwned(s.petKindNum,s.val5,s.val6,s.cap);
- static sumAwakenedCoupleContribution(t,i,s,e){
- var n;
- if(!this.isPetAwakened(t))return 0;
- const h=(null==(n=px.getInstance().getBookVO(t))?void 0:n.couple)??0;
- if(h<=0)return 0;
- const r=Mx.getInstance(),o=qt(t=>5===t?i:6===t?s:0,"per");
- let a=0;
- for(const c of r.list){
- const t=r.getBookVO(c.kindNum);
- t&&this.isCoupleHeroBookVO(t,h)&&(a+=o(t.grade))}
- for(const c of r.ownedUnitList){
- const t=r.getBookVO(c.kindNum);
- if(!t||!this.isCoupleHeroBookVO(t,h))continue;
- const i=o(t.grade);
- 0!==i&&(a+=i*((c.count??0)+(c.trans[0]??0)+(c.trans[1]??0)+(c.trans[2]??0)))}
- return Math.min(a,e)}
- qt(PR,"PetAwakeningEffects"),Yt(PR,"QUEST_GOLD_AWAKENINGS",[{
+ Xt(DR,"PetAwakeningEffects"),Yt(DR,"DRUID_PET_KINDNUM",28),Yt(DR,"_cachedDruidPactLevel",0),Yt(DR,"_cachedDruidPactLevelVer",-1),Yt(DR,"SUCCUBUS_PET_KINDNUM",29),Yt(DR,"_cachedSuccubusCallOfDawn",0),Yt(DR,"_cachedSuccubusCallOfDawnVer",-1),Yt(DR,"BLADE_MASTER_PET_KINDNUM",30),Yt(DR,"_cachedBladeMasterPackLevel",0),Yt(DR,"_cachedBladeMasterPackLevelVer",-1),Yt(DR,"QUEST_GOLD_AWAKENINGS",[{
SpiritSanctuaryEffects 1 hunks, 38 statements
+ function Yoi(t,i,s,e){
+ var n;
+ if(e<100)return[];
+ const h=t.find(t=>"FireSpirit1"===t.className);
+ if(!h)return[];
+ const r=new Map(t.filter(t=>h.base?t.base===h.base:t.kindNum===h.kindNum).map(t=>[t.kindNum,t])),o=[],a=Xt((t,i,s)=>{
+ const e=r.get(t);
+ if(!e)return;
+ const n=Number.isFinite(i)?Math.max(0,Math.min(3,Math.floor(i))):0,h=5===e.grade?.5:6===e.grade?[1,1.5,2,3][n]:0;
+ if(h&&Number.isFinite(s))for(let r=0;
+ r<Math.min(5,Math.floor(s));
+ r++)o.push({
+ kindNum:t,trans:n,chance:h}
+ )}
+ ,"add");
+ for(const c of i)a(c.kindNum,c.trans??0,1);
+ for(const c of s){
+ a(c.kindNum,0,c.count??0);
+ for(let t=1;
+ t<=3;
+ t++)a(c.kindNum,t,(null==(n=c.trans)?void 0:n[t-1])??0)}
+ return o.sort((t,i)=>i.chance-t.chance||i.kindNum-t.kindNum).slice(0,5)}
+ function Joi(t){
+ return Math.min(15,t.reduce((t,i)=>t+i.chance,0))}
+ Xt(Yoi,"selectSanctuarySlots"),Xt(Joi,"sanctuaryChance");
+ const Qoi=class{
+ static getTopSlots(){
+ const t=Ax.getInstance();
+ return Yoi(t.bookList,t.list,t.ownedUnitList,VD.maxWave)}
+ static getChance(){
+ return Joi(this.getTopSlots())}
+ static getDisplayKindNum(){
+ var t;
+ return(null==(t=Ax.getInstance().bookList.filter(t=>"FireSpirit1"===t.className).sort((t,i)=>i.grade-t.grade)[0])?void 0:t.kindNum)??0}
+ }
+ ;
+ Xt(Qoi,"SpiritSanctuaryEffects");
+ let Zoi=Qoi;
HeroUniqueSkillDataManager 13 hunks, 29 statements
- var Rx=(t=>(t.MonsterGold="monstergold",t.WaveClearGold="wavecleargold",t.StartWave="startwave",t.ElfSecret="elfsecret",t.GodBless="godbless",t.MedalBuff="medal",t.OfflineSpeed="offlinespeed",t.OfflineMax="offlinemax",t.GameSpeed="gamespeed",t.WaveCall="wavecall",t.DoubleWave="doublewave",t.CallOfDawn="callofdawn",t.MaxLv="maxlv",t.PlusLv="pluslv",t.PactOfLife="pactoflife",t.PackOfWild="packofwild",t.CastleLevelUp="castlelevelup",t.QuestGold="questgoldgain",t.Core="core",t.Retreat="retreat",t.HumanSecret="humansecret",t.HumanSecretGoldUp="humansecretgoldup",t.UndeadSecret="undeadsecret",t.OrcSecret="orcsecret",t))(Rx||{
+ function Nx(t,i=0){
+ return[...new Set([t,i].filter(t=>t>0))]}
+ Xt(Nx,"skillIds");
+ var Lx=(t=>(t.MonsterGold="monstergold",t.WaveClearGold="wavecleargold",t.StartWave="startwave",t.ElfSecret="elfsecret",t.StageSkip2="stageskip2",t.AncientForestLegend="ancientforestlegend",t.EnemySpawnTimeReduction="enemyspawntimereduction",t.GodBless="godbless",t.MedalBuff="medal",t.OfflineSpeed="offlinespeed",t.OfflineMax="offlinemax",t.GameSpeed="gamespeed",t.WaveCall="wavecall",t.DoubleWave="doublewave",t.CallOfDawn="callofdawn",t.DawnChargePreserve="dawnchargepreserve",t.MaxLv="maxlv",t.PlusLv="pluslv",t.PactOfLife="pactoflife",t.PackOfWild="packofwild",t.CastleLevelUp="castlelevelup",t.QuestGold="questgoldgain",t.Core="core",t.Retreat="retreat",t.HumanSecret="humansecret",t.HumanSecretGoldUp="humansecretgoldup",t.UndeadSecret="undeadsecret",t.OrcSecret="orcsecret",t))(Lx||{
- t.kindNum=i.kindNum??0,t.name=i.name??"",t.code=i.code??"",t.value=i.value??0,t.desc=i.desc??"",this.bookMap.set(t.kindNum,t)}
+ t.kindNum=Number(i.kindNum)||0,t.name=i.name??"",t.code=i.code??"",t.value=Number(i.value)||0,t.desc=i.desc??"",this.bookMap.set(t.kindNum,t)}
- return"stageskip"===i?"elfsecret":"medalbuff"===i?"medal":"questgold"===i?"questgoldgain":i}
+ return"crowknightlevelup"===i?"pluslv":"stageskip"===i?"elfsecret":"medalbuff"===i?"medal":"questgold"===i?"questgoldgain":i}
- ,"detailFor");
+ ,"detailFor"),n=Xt(t=>t.flatMap(t=>Nx(t.uniqueSkillId,t.uniqueSkillId2).map(i=>({
+ ...t,uniqueSkillId:i}
+ ))),"expandSkills"),h=n(i);
- const n=new Map,h=[...i,...s];
+ const r=new Map,o=[...h,...n(s)];
+ for(const[t,a]of this.totals)this.totals.set(t,this.capTotal(t,a));
- return this.isCitadelLocked(t)?0:this.totals.get(t)??0}
+ return this.isCitadelLocked(t)?0:"elfsecret"===t?(this.totals.get(t)??0)+(this.totals.get("stageskip2")??0):this.totals.get(t)??0}
+ capTotal(t,i){
+ return"enemyspawntimereduction"===t?Math.max(0,Math.min(i,15)):"dawnchargepreserve"===t?Math.max(0,Math.min(i,30)):"stageskip2"===t?Math.min(i,30):"ancientforestlegend"===t?Math.max(0,Math.min(i,30)):i}
- let e=0;
+ let e=0,n=0;
- if(!t)continue;
- const h=t.uniqueSkill??0;
- if(!h)continue;
- const r=this.bookMap.get(h);
- r&&r.code&&(this.normalizeCode(r.code)===i&&(e+=r.value))}
- return e}
+ if(t)for(const s of this.getSkillsForUnit(t)){
+ const t=this.normalizeCode(s.code);
+ t===i&&(e+=s.value),"elfsecret"===i&&"stageskip2"===t&&(n+=s.value)}
+ }
+ return this.capTotal(i,e)+this.capTotal("stageskip2",n)}
+ getSkillsForUnit(t){
+ return Nx(t.uniqueSkill,t.uniqueSkill2).map(t=>this.bookMap.get(t)).filter(t=>!!t)}
- return this.isCitadelLocked(t)?[]:this.contributorsMap.get(t)??[]}
+ return this.isCitadelLocked(t)?[]:"elfsecret"===t?[...this.contributorsMap.get(t)??[],...this.contributorsMap.get("stageskip2")??[]]:this.contributorsMap.get(t)??[]}
- return this.isCitadelLocked(t)?[]:this.contributorsDetailMap.get(t)??[]}
+ return this.isCitadelLocked(t)?[]:"elfsecret"===t?[...this.contributorsDetailMap.get(t)??[],...this.contributorsDetailMap.get("stageskip2")??[]]:this.contributorsDetailMap.get(t)??[]}
- for(const[i,s]of this.totals.entries())t.push({
+ for(const[s,e]of this.totals.entries())"stageskip2"!==s&&"elfsecret"!==s&&t.push({
- return t}
+ const i=this.getTotal("elfsecret");
+ return i>0&&t.push({
+ code:"elfsecret",value:i}
+ ),t}
CitadelBuildingDetailPopup 6 hunks, 26 statements
- watchtower:{
+ sanctuary:{
+ titleKey:"GAME_1700",titleDefault:"정령의 성소",getValue:Xt(()=>Zoi.getChance(),"getValue"),getContributors:Xt(()=>Zoi.getTopSlots(),"getContributors"),previewKindNum:Xt(()=>Zoi.getDisplayKindNum(),"previewKindNum"),assignedTitleKey:"GAME_1702",assignedTitleDefault:"교감 중인 불의 정령",compactPrimary:Xt(t=>({
+ title:QG.getText("GAME_1703","추가 획득 확률"),value:`${
+ t}
+ %`}
+ ),"compactPrimary"),compactSecondary:Xt(()=>({
+ title:QG.getText("GAME_1704","발동 시 펫 조각"),value:"+1"}
+ ),"compactSecondary"),compactGauge:Xt(t=>({
+ cur:t,max:15,unit:"%"}
+ ),"compactGauge"),compactDesc:Xt(t=>sai([{
+ key:"GAME_1705",def:"보유한 불의 정령 중 효과가 높은 5명이 자동으로 배치됩니다."}
+ ,{
+ key:"GAME_1706",def:"5성 +0.5%, 6성 +1%, 1초월 +1.5%, 2초월 +2%, 3초월 +3%. 합산 최대 15%."}
+ ,{
+ key:"GAME_1707",def:"정령의 고원 클리어 시 확률에 따라 해당 스테이지의 펫 조각을 1개 더 획득합니다. 펫 조각 보상에만 적용됩니다."}
+ ,{
+ key:"GAME_1708",def:"즉시완료에도 적용되며, 여러 회를 완료하면 매회 독립적으로 판정합니다."}
+ ],t),"compactDesc")}
+ ,watchtower:{
- cur:t,max:CU.MAX_POINTS}
+ cur:t,max:xU.getMaxPoints()}
- key:"GAME_1587",def:"5★은 4포인트, 6★은 8포인트, 1초월마다 +4포인트씩 증가합니다."}
+ key:xU.isAwakened()?"VAULT_AWAKENED_POINTS":"GAME_1587",def:xU.isAwakened()?"램프요정 각성: 5★ 8포인트, 6★ 16포인트, 1초월마다 +8포인트. 최대 5명, 200포인트까지 적용됩니다.":"5★은 4포인트, 6★은 8포인트, 1초월마다 +4포인트씩 증가합니다."}
- key:"GAME_1589",def:"20포인트마다 골드 상자 상한이 1칸씩 증가합니다."}
+ key:"GAME_1589",def:"20포인트마다 골드 상자 상한이 1칸씩 증가합니다. (최대 10칸)"}
- const t=new rf;
+ const t=new of;
-  P`,this.lblVaultGaugeText.x=c+i+10,this.lblVaultGaugeText.y=l+.5*(t-this.lblVaultGaugeText.height),l+=t+18}
+  ${
+ f.unit??"P"}
+ `,this.lblVaultGaugeText.x=c+i+10,this.lblVaultGaugeText.y=l+.5*(t-this.lblVaultGaugeText.height),l+=t+18}
Mine4XBg 1 hunks, 21 statements
+ const r6t=class extends He{
+ constructor(){
+ super(),Yt(this,"bg",new Ve),Yt(this,"icon4X",new Ve),Yt(this,"hammer",new Ve),this.bg.texture=eS.getTexture("UI_MINE","4x_toggle_bg.png"),this.bg.scale=.7,this.addChild(this.bg),this.icon4X.texture=eS.getTexture("UI_MINE","4x_toggle_text.png"),this.icon4X.scale=.5,this.icon4X.x=20,this.icon4X.y=this.bg.y+.5*(this.bg.height-this.icon4X.height),this.addChild(this.icon4X),this.hammer.texture=eS.getTexture("UI_MINE","Thumbnail_Hammer_01.png"),this.hammer.scale=.33,this.hammer.x=this.icon4X.x+this.icon4X.width+5,this.hammer.y=this.bg.y+.5*(this.bg.height-this.hammer.height),this.addChild(this.hammer)}
+ }
+ ;
+ Xt(r6t,"Mine4XBg");
+ let o6t=r6t;
+ const a6t=class extends He{
+ constructor(){
+ super(),Yt(this,"lblTitle"),Yt(this,"hammer",new Ve),Yt(this,"lblTimes"),Yt(this,"img",new Ve),Yt(this,"lblDesc"),this.lblTitle=this.makeLabel("기본 사용",17,AL.COLOR_WHITE),this.lblTitle.align="center",this.lblTitle.lineHeight=14,this.lblTitle.setWrapWidth(200),this.addChild(this.lblTitle),this.hammer.texture=eS.getTexture("UI_MINE","Thumbnail_Hammer_01.png"),this.hammer.scale=.36,this.addChild(this.hammer),this.lblTimes=this.makeLabel("x1",23,AL.COLOR_WHITE),this.addChild(this.lblTimes),this.img.texture=eS.getTexture("UI_MINE","4x_off_example.png"),this.img.scale=.75,this.addChild(this.img),this.lblDesc=this.makeLabel("5칸 타격",17,16644251),this.addChild(this.lblDesc),this.updateLayout()}
+ updateLayout(){
+ this.lblTitle.x=.5*(this.img.width-this.lblTitle.width),this.hammer.x=.5*this.img.width-this.hammer.width-2,this.hammer.y=this.lblTitle.y+this.lblTimes.height+5,this.lblTimes.x=.5*this.img.width+2,this.lblTimes.y=this.hammer.y+.5*(this.hammer.height-this.lblTimes.height)-2,this.img.y=this.hammer.y+this.hammer.height,this.lblDesc.x=.5*(this.img.width-this.lblDesc.width),this.lblDesc.y=this.img.y+this.img.height+5}
+ setData(t){
+ t?(this.lblTitle.text=QG.getText("GAME_1665","4배 사용"),this.lblTimes.text="x4",this.img.texture=eS.getTexture("UI_MINE","4x_on_example.png"),this.lblDesc.text=QG.getText("GAME_1667","9칸 타격")):(this.lblTitle.text=QG.getText("GAME_1664","기본 사용"),this.lblTimes.text="x1",this.img.texture=eS.getTexture("UI_MINE","4x_off_example.png"),this.lblDesc.text=QG.getText("GAME_1666","5칸 타격")),this.updateLayout()}
+ makeLabel(t,i,s){
+ const e=new bD(t,s,AL.DEFAULT_OUTLINE_FONT_OPTION_16);
+ return e.textSize=i,e}
+ }
+ ;
+ Xt(a6t,"Mine4XInfoItem");
+ let c6t=a6t;
Mine4XGuidePopup 1 hunks, 19 statements
- super(),Yt(this,"titleUp"),Yt(this,"titleInfo"),Yt(this,"bg"),Yt(this,"iconHammer"),Yt(this,"lblTitle"),Yt(this,"btnGuide"),Yt(this,"lblEventTimer"),Yt(this,"lblHammer"),Yt(this,"expProgressContainer"),Yt(this,"expProgressPanel"),Yt(this,"expProgressTrack"),Yt(this,"expProgressPreview"),Yt(this,"expProgressFill"),Yt(this,"expProgressFrame"),Yt(this,"lblExpLevel"),Yt(this,"lblExpValue"),Yt(this,"btnClose"),Yt(this,"btnPlus"),Yt(this,"infoContainer"),Yt(this,"btnInfo"),Yt(this,"infoLine"),Yt(this,"fossilIcons"),Yt(this,"fossilLabelBg"),Yt(this,"fossilLabel"),Yt(this,"fossilLabelContainer"),Yt(this,"initialized",!1),Yt(this,"uiBuilt",!1),Yt(this,"expTween",null),Yt(this,"eventEndTimeMs",0),Yt(this,"lastEventTimerText","")}
+ super(),Yt(this,"basic",new c6t),Yt(this,"lineMid",new Ve),Yt(this,"min4x",new c6t),Yt(this,"lineBot",new Ve),Yt(this,"desc"),this.basic.setData(!1),this.basic.x=5+.5*(.5*this.width-this.basic.width),this.basic.y=80,this.addChild(this.basic),this.lineMid.texture=eS.getTexture("UI_MINE","4x_info_divider_vertical.png"),this.lineMid.width=2,this.lineMid.height=250,this.lineMid.x=.5*(this.width-this.lineMid.width),this.lineMid.y=this.basic.y+.5*(this.basic.height-this.lineMid.height),this.addChild(this.lineMid),this.min4x.setData(!0),this.min4x.x=.5*this.width+.5*(.5*this.width-this.min4x.width)-5,this.min4x.y=this.basic.y,this.addChild(this.min4x),this.lineBot.texture=eS.getTexture("UI_MINE","4x_info_divider_horizontal.png"),this.lineBot.width=this.width-60,this.lineBot.height=2,this.lineBot.x=.5*(this.width-this.lineBot.width),this.lineBot.y=this.basic.y+this.basic.height+5,this.addChild(this.lineBot),this.desc=this.makeLabel(QG.getText("GAME_1668","숫자는 타일에 주는 피해량입니다."),15,AL.COLOR_WHITE),this.desc.setWrapWidth(this.width-60),this.desc.align="center",this.desc.x=.5*(this.width-this.desc.width),this.desc.y=this.lineBot.y+this.lineBot.height+15,this.addChild(this.desc),this.outSideClickHide=!0}
+ static getInstance(){
+ return this._instance||(this._instance=new t),this._instance}
+ async showGuide(){
+ this.title=QG.getText("GAME_1663","망치 사용 비교"),this.height=this.desc.y+this.desc.height+30,await this.loadImage(),super.show()}
+ getDefaultPositionY(){
+ return.45*YA.stageHeight}
+ onBackButton(){
+ return this.hide(),!0}
+ makeLabel(t,i,s){
+ const e=new bD(t,s,AL.DEFAULT_OUTLINE_FONT_OPTION_16);
+ return e.textSize=i,e}
+ }
+ ;
+ Xt(l6t,"Mine4XGuidePopup"),Yt(l6t,"_instance");
+ let u6t=l6t;
+ const d6t=class t extends He{
+ constructor(){
+ super(),Yt(this,"titleUp"),Yt(this,"titleInfo"),Yt(this,"bg"),Yt(this,"iconHammer"),Yt(this,"lblTitle"),Yt(this,"btnGuide"),Yt(this,"lblEventTimer"),Yt(this,"lblHammer"),Yt(this,"expProgressContainer"),Yt(this,"expProgressPanel"),Yt(this,"expProgressTrack"),Yt(this,"expProgressPreview"),Yt(this,"expProgressFill"),Yt(this,"expProgressFrame"),Yt(this,"lblExpLevel"),Yt(this,"lblExpValue"),Yt(this,"btnClose"),Yt(this,"btnPlus"),Yt(this,"mine4xContainer"),Yt(this,"btnInfo4X"),Yt(this,"bg4X"),Yt(this,"btnMine4XOn"),Yt(this,"btnMine4XOff"),Yt(this,"mine4XInfoBox",null),Yt(this,"mine4XBoxContainer",new He),Yt(this,"infoContainer"),Yt(this,"btnInfo"),Yt(this,"infoLine"),Yt(this,"fossilIcons"),Yt(this,"fossilLabelBg"),Yt(this,"fossilLabel"),Yt(this,"fossilLabelContainer"),Yt(this,"initialized",!1),Yt(this,"uiBuilt",!1),Yt(this,"expTween",null),Yt(this,"eventEndTimeMs",0),Yt(this,"lastEventTimerText",""),Yt(this,"_mine4xClicked",-1)}
ArrowButton 1 hunks, 18 statements
+ ]),Yt(j3t,"HAMMER_DAMAGE_PATTERN_4X",[{
+ dx:0,dy:0,damage:4}
+ ,{
+ dx:-1,dy:0,damage:3}
+ ,{
+ dx:1,dy:0,damage:3}
+ ,{
+ dx:0,dy:-1,damage:3}
+ ,{
+ dx:0,dy:1,damage:3}
+ ,{
+ dx:-1,dy:-1,damage:2}
+ ,{
+ dx:-1,dy:1,damage:2}
+ ,{
+ dx:1,dy:-1,damage:2}
+ ,{
+ dx:1,dy:1,damage:2}
RightBottomMenus 6 hunks, 15 statements
- const e=zD.getInstance().development&&!1;
+ const e=YD.getInstance().development&&!t.MENUS_HIDDEN;
- this.btnBuff.visible=e,this.btnMine.visible=e,this.btnCardEvent.visible=e,this.btnConquest.visible=zD.getInstance().development,this.btnPowerSave.scale.set(.9),this.btnPowerSave.x=this.healthOrb.x-.9*this.btnPowerSave.width-42,this.btnPowerSave.y=this.healthOrb.y-15,this.btnPowerSave.eventMode="static",this.btnPowerSave.cursor="pointer",this.btnPowerSave.on("pointerup",this.onPowerSave,this),this.updatePowerSaveButton(!Dzt.getInstance().visible)}
+ this.btnBuff.visible=e,this.btnMine.visible=e,this.btnCardEvent.visible=e&&n1t.EVENT_OPEN,this.btnConquest.visible=YD.getInstance().development,this.btnPowerSave.x=this.healthOrb.x-.9*this.btnPowerSave.width-45,this.btnPowerSave.y=this.healthOrb.y-15,this.btnPowerSave.eventMode="static",this.btnPowerSave.cursor="pointer",this.btnPowerSave.on("pointerup",this.onPowerSave,this),this.updatePowerSaveButton(!Nqt.getInstance().visible),this.btnAllPreset.onClick=this.onAllPresetBtnClick.bind(this),this.setRevive(!0)}
+ update(){
+ this.updatePowerSaveButton(!Nqt.getInstance().visible)}
- t&&!this.btnPowerSave.parent?this.addChild(this.btnPowerSave):!t&&this.btnPowerSave.parent&&this.removeChild(this.btnPowerSave)}
+ t&&!this.btnPowerSave.parent?this.addChild(this.btnPowerSave):!t&&this.btnPowerSave.parent&&this.removeChild(this.btnPowerSave),this.updateAllPresetButton()}
+ updateAllPresetButton(){
+ O6t.getInstance().isAvailable()&&(this.btnPowerSave.parent?(this.btnAllPreset.x=this.btnPowerSave.x-this.btnAllPreset.width-7,this.btnAllPreset.y=this.btnPowerSave.y+.5*(this.btnPowerSave.height-this.btnAllPreset.height)-1,this.addChild(this.btnAllPreset)):this.btnAllPreset.removeFromParent())}
+ onAllPresetBtnClick(){
+ O6t.getInstance().isAvailable()&&(O6t.getInstance().setData(),O6t.getInstance().show())}
+ setRevive(t){
+ mS.getInstance().removeEventListener("Revive",this.onReviveBind),t&&(this.onReviveBind=this.onRevive.bind(this),mS.getInstance().addEventListener("Revive",this.onReviveBind))}
+ onRevive(t){
+ var i,s;
+ const e=(null==(i=null==t?void 0:t.detail)?void 0:i.oldMaxWave)??-1,n=(null==(s=null==t?void 0:t.detail)?void 0:s.newMaxWave)??-1;
+ e<300&&n>=300&&this.update()}
AttendanceDataManager 1 hunks, 14 statements
+ try{
+ const{
+ LocalDataManager:t}
+ =await ti(async()=>{
+ const{
+ LocalDataManager:t}
+ =await Promise.resolve().then(()=>qA);
+ return{
+ LocalDataManager:t}
+ }
+ ,void 0),i=await t.getAuthToken()||void 0;
+ await ML.getInstance().account.login(2,i)}
+ catch(i){
+ }
MerchantGoldEffects 5 hunks, 14 statements
+ static isAwakened(){
+ var t;
+ return((null==(t=mx.getInstance().getPetVO(this.AWAKENING_PET_KINDNUM))?void 0:t.grade)??0)>=5}
+ static getMaxPoints(){
+ return this.isAwakened()?this.AWAKENED_MAX_POINTS:this.MAX_POINTS}
- return t}
+ return Math.min(t,this.getMaxPoints())}
- var s,e;
- const h=Nx.getInstance();
- if(5===n.grade)return(null==(s=h.getByKindNum(this.SKILL_KIND_5STAR))?void 0:s.value)??0;
- if(6===n.grade){
- const t=Math.max(0,Math.min(3,i));
- return(null==(e=h.getByKindNum(this.SKILL_KIND_6STAR_BASE+t))?void 0:e.value)??0}
- return 0}
+ const e=this.isAwakened()?this.AWAKENED_POINTS:this.BASE_POINTS;
+ return 5===s.grade?e[0]:6===s.grade?e[1+Math.max(0,Math.min(3,i))]:0}
- qt(TU,"MerchantGoldEffects"),Yt(TU,"MERCHANT_CLASS_NAME",ux.Aladin1),Yt(TU,"_kindNums",[]),Yt(TU,"_kindNumsBookSize",-1),Yt(TU,"SKILL_KIND_5STAR",81),Yt(TU,"SKILL_KIND_6STAR_BASE",82),Yt(TU,"MAX_SLOTS",5),Yt(TU,"BASE_BOX_MAX",5),Yt(TU,"POINTS_PER_BOX",20),Yt(TU,"BOX_MAX_CAP",10),Yt(TU,"GOLD_PCT_PER_POINT",10),Yt(TU,"MAX_POINTS",100),Yt(TU,"UNLOCK_WAVE",100),Yt(TU,"_cachedSlots",[]),Yt(TU,"_cachedVer",-1);
+ Xt(kU,"MerchantGoldEffects"),Yt(kU,"MERCHANT_CLASS_NAME",fx.Aladin1),Yt(kU,"_kindNums",[]),Yt(kU,"_kindNumsBookSize",-1),Yt(kU,"BASE_POINTS",[4,8,12,16,20]),Yt(kU,"AWAKENED_POINTS",[8,16,24,32,40]),Yt(kU,"AWAKENING_PET_KINDNUM",27),Yt(kU,"MAX_SLOTS",5),Yt(kU,"BASE_BOX_MAX",5),Yt(kU,"POINTS_PER_BOX",20),Yt(kU,"BOX_MAX_CAP",10),Yt(kU,"GOLD_PCT_PER_POINT",10),Yt(kU,"MAX_POINTS",100),Yt(kU,"AWAKENED_MAX_POINTS",200),Yt(kU,"UNLOCK_WAVE",100),Yt(kU,"_cachedSlots",[]),Yt(kU,"_cachedVer",-1);
BuffStatusPopup 5 hunks, 14 statements
- monstergold:"몬스터 골드 증가",wavecleargold:"웨이브 클리어 골드 증가",startwave:"환생 시작 층 증가",elfsecret:"엘프의 비술 확률",godbless:"신의 축복 확률",medal:"환생 훈장 증가",offlinespeed:"오프라인 속도 증가",offlinemax:"오프라인 최고층 상한 증가",gamespeed:"게임 속도 증가",retreat:"퇴각 기능",humansecret:"인간의 비술",undeadsecret:"언데드의 비술",orcsecret:"오크의 비술",questgoldgain:"퀘스트 골드 획득 증가",questopengold:"퀘스트 오픈 골드 감소",questupgradegold:"퀘스트 업그레이드 골드 감소",questcompletetime:"퀘스트 완료 시간 단축",unitupgradegold:"병사 업그레이드 골드 감소",pactoflife:"생명의 맹약 (인간·엘프 레벨)",packofwild:"야성의 맹약 (오크·언데드 레벨)"}
+ monstergold:"몬스터 골드 증가",wavecleargold:"웨이브 클리어 골드 증가",startwave:"환생 시작 층 증가",elfsecret:"엘프의 비술 확률",ancientforestlegend:"고대숲의 전설 확률",enemyspawntimereduction:"적 등장 시간 감소",callofdawn:"황혼의 부름 충전 속도",dawnchargepreserve:"황혼의 잔향 확률",pluslv:"추가 레벨",godbless:"신의 축복 확률",medal:"환생 훈장 증가",offlinespeed:"오프라인 속도 증가",offlinemax:"오프라인 최고층 상한 증가",gamespeed:"게임 속도 증가",retreat:"퇴각 기능",humansecret:"인간의 비술",undeadsecret:"언데드의 비술",orcsecret:"오크의 비술",questgoldgain:"퀘스트 골드 획득 증가",questopengold:"퀘스트 오픈 골드 감소",questupgradegold:"퀘스트 업그레이드 골드 감소",questcompletetime:"퀘스트 완료 시간 단축",unitupgradegold:"병사 업그레이드 골드 감소",pactoflife:"생명의 맹약 (인간·엘프 레벨)",packofwild:"야성의 맹약 (오크·언데드 레벨)"}
+ const i=GR.getSylphidPlusLvContribution()+GR.getSnorkOwnedPlusLvContribution();
+ i>0&&t.set(Lx.PlusLv,(t.get(Lx.PlusLv)??0)+i);
+ const s=GR.getSuccubusOwnedCallOfDawnContribution();
+ s>0&&t.set(Lx.CallOfDawn,(t.get(Lx.CallOfDawn)??0)+s);
+ const e=GR.getDruidOwnedPactLevelContribution();
+ e>0&&t.set(Lx.PactOfLife,(t.get(Lx.PactOfLife)??0)+e);
+ const n=GR.getBladeMasterOwnedPackLevelContribution();
+ n>0&&t.set(Lx.PackOfWild,(t.get(Lx.PackOfWild)??0)+n);
- if(n)if(t=[...Nx.getInstance().getContributors(o)],o===Rx.GodBless){
+ if(n)if(t=[...Gx.getInstance().getContributors(o)],o===Lx.GodBless){
+ else if(o===Lx.PactOfLife)for(const i of GR.getDruidOwnedPactLevelContributors())t.includes(i)||t.push(i);
+ else if(o===Lx.CallOfDawn)for(const i of GR.getSuccubusOwnedCallOfDawnContributors())t.includes(i)||t.push(i);
+ else if(o===Lx.PackOfWild)for(const i of GR.getBladeMasterOwnedPackLevelContributors())t.includes(i)||t.push(i);
- `,A0t[o.toLowerCase()])||o,value:a,contributors:t,rowIndex:e++}
+ `,y1t[o.toLowerCase()])||o,value:a,valueSuffix:[Lx.PlusLv,Lx.PactOfLife,Lx.PackOfWild].includes(o)?"":"%",contributors:t,rowIndex:e++}
BaseUnit 6 hunks, 13 statements
- ),Yt(this,"numHitted",0),Yt(this,"numStun",0),Yt(this,"numFreeze",0),Yt(this,"numSlow",0),Yt(this,"numBurn",0),Yt(this,"numPoison",0),Yt(this,"numBleed",0),Yt(this,"numCurse",0),Yt(this,"numSilence",0),Yt(this,"numKnockBack",0),Yt(this,"numPowerShield",0),Yt(this,"numMagicalShield",0),Yt(this,"numPhysicalShield",0),Yt(this,"numTransparent",0),Yt(this,"knockBackVx",0),Yt(this,"knockBackVy",0),Yt(this,"numPriestShield",0),Yt(this,"priestShieldHits",0),Yt(this,"numBlow",0),Yt(this,"blowVx",0),Yt(this,"blowVy",0),Yt(this,"blowVh",0),Yt(this,"blowGravity",.3),Yt(this,"blowHeight",0),Yt(this,"numBinding",0),Yt(this,"numShock",0),Yt(this,"knockImmune",!1),Yt(this,"blowImmune",!1),Yt(this,"stunImmune",!1),Yt(this,"freezeImmune",!1),Yt(this,"poisonImmune",!1),Yt(this,"stunResistPct",0),Yt(this,"knockResistPct",0),Yt(this,"blowResistPct",0),Yt(this,"freezeResistPct",0),Yt(this,"currentSize",1.05),Yt(this,"_baseSize",0),Yt(this,"_baseHitHeight",0),Yt(this,"_baseHitWidth",0),Yt(this,"_baseRadius",0),Yt(this,"sizeScale",1),Yt(this,"direction",1),Yt(this,"hideHealthBarTimer",0),Yt(this,"maxRevive",0),Yt(this,"numRevive",0),Yt(this,"reviveCount",0),Yt(this,"reviveInterval",40),Yt(this,"immediateReviveDelay",60),Yt(this,"removed",!1),Yt(this,"stayAfterDeath",!1),Yt(this,"reviveHealthPercent",.6),Yt(this,"numShot",1),Yt(this,"numBounce",0),Yt(this,"multiShotDelay",0),Yt(this,"_poolReturned",!1),Yt(this,"targetAlpha",1),Yt(this,"t",0),Yt(this,"evolEffect",null),Yt(this,"evolStar",null),Yt(this,"numLove",0),Yt(this,"numLoveShield",0),Yt(this,"__airHeight",0),Yt(this,"_airHeight",0),Yt(this,"numAirToGround",-30),this.addChild(this.container),this.idleLookInterval=60,this.initializeData(),this.initialize(),this.generateSprite(),this.startFrame=this.idleFrames.start,this.endFrame=this.idleFrames.end,this.currentFrame=this.startFrame,this.loop=!0,this.eventMode="none"}
+ ),Yt(this,"numHitted",0),Yt(this,"numStun",0),Yt(this,"numFreeze",0),Yt(this,"numSlow",0),Yt(this,"numAtkSlow",0),Yt(this,"numChillTint",0),Yt(this,"numBurn",0),Yt(this,"numPoison",0),Yt(this,"numBleed",0),Yt(this,"numCurse",0),Yt(this,"numSilence",0),Yt(this,"numKnockBack",0),Yt(this,"numPowerShield",0),Yt(this,"numMagicalShield",0),Yt(this,"numPhysicalShield",0),Yt(this,"numTransparent",0),Yt(this,"knockBackVx",0),Yt(this,"knockBackVy",0),Yt(this,"numPriestShield",0),Yt(this,"priestShieldHits",0),Yt(this,"numBlow",0),Yt(this,"blowVx",0),Yt(this,"blowVy",0),Yt(this,"blowVh",0),Yt(this,"blowGravity",.3),Yt(this,"blowHeight",0),Yt(this,"numBinding",0),Yt(this,"numShock",0),Yt(this,"knockImmune",!1),Yt(this,"blowImmune",!1),Yt(this,"stunImmune",!1),Yt(this,"freezeImmune",!1),Yt(this,"poisonImmune",!1),Yt(this,"stunResistPct",0),Yt(this,"knockResistPct",0),Yt(this,"blowResistPct",0),Yt(this,"freezeResistPct",0),Yt(this,"currentSize",1.05),Yt(this,"_baseSize",0),Yt(this,"_baseHitHeight",0),Yt(this,"_baseHitWidth",0),Yt(this,"_baseRadius",0),Yt(this,"sizeScale",1),Yt(this,"direction",1),Yt(this,"hideHealthBarTimer",0),Yt(this,"maxRevive",0),Yt(this,"numRevive",0),Yt(this,"reviveCount",0),Yt(this,"reviveInterval",40),Yt(this,"immediateReviveDelay",60),Yt(this,"removed",!1),Yt(this,"stayAfterDeath",!1),Yt(this,"reviveHealthPercent",.6),Yt(this,"numShot",1),Yt(this,"numBounce",0),Yt(this,"multiShotDelay",0),Yt(this,"_poolReturned",!1),Yt(this,"targetAlpha",1),Yt(this,"t",0),Yt(this,"evolEffect",null),Yt(this,"evolStar",null),Yt(this,"numLove",0),Yt(this,"numLoveShield",0),Yt(this,"__airHeight",0),Yt(this,"_airHeight",0),Yt(this,"numAirToGround",-30),this.addChild(this.container),this.idleLookInterval=60,this.initializeData(),this.initialize(),this.generateSprite(),this.startFrame=this.idleFrames.start,this.endFrame=this.idleFrames.end,this.currentFrame=this.startFrame,this.loop=!0,this.eventMode="none"}
- if(1==this.frame&&0==this.gameStarted&&(this.onGameStart(),this.gameStarted=!0,""!=this.startSound&&Math.random()<.1&&fG.getInstance().playSFX(this.startSound)),this.attackCoolDown--,this.recoveryCoolDown--,this.mana+=1,this.stateChangeTimer>0&&this.stateChangeTimer--,this.rallyMoveTimer>0&&(this.rallyMoveTimer--,this.isPatrolMode)){
+ if(1==this.frame&&0==this.gameStarted&&(this.onGameStart(),this.gameStarted=!0,""!=this.startSound&&Math.random()<.1&&mG.getInstance().playSFX(this.startSound)),this.numAtkSlow>0?(this.numAtkSlow--,this.attackCoolDown-=.5):this.attackCoolDown--,this.numChillTint>0&&(this.numChillTint--,this.numChillTint<=0&&this.sp&&(this.sp.tint=16777215)),this.recoveryCoolDown--,this.mana+=1,this.stateChangeTimer>0&&this.stateChangeTimer--,this.rallyMoveTimer>0&&(this.rallyMoveTimer--,this.isPatrolMode)){
- this.numStun=0,this.numFreeze=0,this.numShock=0,this.numSlow=0,this.numBurn=0,this.numPoison=0,this.numBleed=0,this.numCurse=0,this.numKnockBack=0,this.numLove=0}
+ this.numStun=0,this.numFreeze=0,this.numShock=0,this.numSlow=0,this.numAtkSlow=0,this.numChillTint=0,this.sp&&(this.sp.tint=16777215),this.numBurn=0,this.numPoison=0,this.numBleed=0,this.numCurse=0,this.numKnockBack=0,this.numLove=0}
- this.numStun=0,this.numFreeze=0,this.numSlow=0,this.numBurn=0,this.numPoison=0,this.numBleed=0,this.numCurse=0,this.numSilence=0,this.numBinding=0,this.numShock=0,this.numTransparent=0,this.numKnockBack=0,this.knockBackVx=0,this.knockBackVy=0,this.numBlow=0,this.blowVx=0,this.blowVy=0,this.blowVh=0,this.blowHeight=0,this.alpha=1,this.targetAlpha=1}
+ this.numStun=0,this.numFreeze=0,this.numSlow=0,this.numAtkSlow=0,this.numChillTint=0,this.sp&&(this.sp.tint=16777215),this.numBurn=0,this.numPoison=0,this.numBleed=0,this.numCurse=0,this.numSilence=0,this.numBinding=0,this.numShock=0,this.numTransparent=0,this.numKnockBack=0,this.knockBackVx=0,this.knockBackVy=0,this.numBlow=0,this.blowVx=0,this.blowVy=0,this.blowVh=0,this.blowHeight=0,this.alpha=1,this.targetAlpha=1}
+ burn(i,s){
+ this.poisonImmune||i<this.numSlow||this.numLoveShield>0||(this.numSlow=i,this.numBurn=i,this.showEffect(SH.BurnEffect1,i,this.tmpPoint(0,-t.BURN_EFFECT_OFFSET_Y/this.sizeScale),!0))}
+ chill(t){
+ this.poisonImmune||this.numLoveShield>0||t<this.numSlow||(this.numSlow=t,this.applyChillTint(t))}
+ chillAttack(t){
+ this.poisonImmune||this.numLoveShield>0||t<this.numAtkSlow||(this.numAtkSlow=t,this.applyChillTint(t))}
+ applyChillTint(i){
+ i>this.numChillTint&&(this.numChillTint=i),this.sp&&(this.sp.tint=t.CHILL_TINT)}
- qt(PZ,"BaseUnit"),Yt(PZ,"tribeRatio",[[1,1,1,1,1,1],[1,1,1.2,1,.8,1],[1,.8,1,1.2,1,1],[1,1,.8,1,1.2,1],[1,1.2,1,.8,1,1],[1,1,1,1,1,1]]),Yt(PZ,"CLOAKING_ATTACK_LIMIT",30),Yt(PZ,"CLOAKING_DURATION",420),Yt(PZ,"FLOW_MAX_FRAMES",15),Yt(PZ,"FLOW_ENTER_FRAMES",3),Yt(PZ,"FLOW_LOOK_AHEAD",400),Yt(PZ,"FLOW_LOOK_AHEAD_STUCK",24),Yt(PZ,"FLOW_TARGET_ALIGN_MIN",.25),Yt(PZ,"CHRONIC_STUCK_STREAK",5),Yt(PZ,"CHRONIC_HOP_DIST",56),Yt(PZ,"STUCK_THRESHOLD",30),Yt(PZ,"PATH_REACH_DIST2",256),Yt(PZ,"PATH_INVALIDATE_DIST2",6400),Yt(PZ,"PATH_COOLDOWN_FRAMES",60),Yt(PZ,"STUCK_WINDOW_FRAMES",30),Yt(PZ,"STUCK_WINDOW_MIN_PROGRESS_SQ",100),Yt(PZ,"SURROUNDED_THRESHOLD",8),Yt(PZ,"SURROUNDED_SEARCH_CELLS",15),Yt(PZ,"TRAPPED_RAY_CELLS",20),Yt(PZ,"RETARGET_CHECK_INTERVAL",10),Yt(PZ,"RETARGET_SWAP_RATIO",1.5),Yt(PZ,"COMMAND_ARRIVE_RADIUS",80),Yt(PZ,"COMMAND_MAX_FRAMES",600),Yt(PZ,"COMMAND_STUCK_LIMIT",45),Yt(PZ,"BLOW_RECOVERY_STAGGER",12),Yt(PZ,"knockbackBounds",null),Yt(PZ,"raidDamageHook",null),Yt(PZ,"raidDamageMultHook",null),Yt(PZ,"HIT_ROTATION_TABLE",(()=>{
+ Xt(E0,"BaseUnit"),Yt(E0,"tribeRatio",[[1,1,1,1,1,1],[1,1,1.2,1,.8,1],[1,.8,1,1.2,1,1],[1,1,.8,1,1.2,1],[1,1.2,1,.8,1,1],[1,1,1,1,1,1]]),Yt(E0,"CLOAKING_ATTACK_LIMIT",30),Yt(E0,"CLOAKING_DURATION",420),Yt(E0,"FLOW_MAX_FRAMES",15),Yt(E0,"FLOW_ENTER_FRAMES",3),Yt(E0,"FLOW_LOOK_AHEAD",400),Yt(E0,"FLOW_LOOK_AHEAD_STUCK",24),Yt(E0,"FLOW_TARGET_ALIGN_MIN",.25),Yt(E0,"CHRONIC_STUCK_STREAK",5),Yt(E0,"CHRONIC_HOP_DIST",56),Yt(E0,"STUCK_THRESHOLD",30),Yt(E0,"PATH_REACH_DIST2",256),Yt(E0,"PATH_INVALIDATE_DIST2",6400),Yt(E0,"PATH_COOLDOWN_FRAMES",60),Yt(E0,"STUCK_WINDOW_FRAMES",30),Yt(E0,"STUCK_WINDOW_MIN_PROGRESS_SQ",100),Yt(E0,"SURROUNDED_THRESHOLD",8),Yt(E0,"SURROUNDED_SEARCH_CELLS",15),Yt(E0,"TRAPPED_RAY_CELLS",20),Yt(E0,"RETARGET_CHECK_INTERVAL",10),Yt(E0,"RETARGET_SWAP_RATIO",1.5),Yt(E0,"COMMAND_ARRIVE_RADIUS",80),Yt(E0,"COMMAND_MAX_FRAMES",600),Yt(E0,"COMMAND_STUCK_LIMIT",45),Yt(E0,"CHILL_TINT",7846143),Yt(E0,"BLOW_RECOVERY_STAGGER",12),Yt(E0,"knockbackBounds",null),Yt(E0,"raidDamageHook",null),Yt(E0,"raidDamageMultHook",null),Yt(E0,"HIT_ROTATION_TABLE",(()=>{
ShortcutManager 3 hunks, 13 statements
+ async goHero(){
+ 0==fXt.getInstance().isHeroView()&&await Wai.getInstance().onMenuClickByIndex(1),0==fXt.getInstance().isHeroSubView()&&(NYt.getInstance().updateLanguage(),DYt.getInstance().currentSubView=NYt.getInstance())}
+ async goHeroPreset(){
+ await this.goHero(),NYt.getInstance().setPresetBarVisible(!0)}
+ async goTreasure(){
+ 0==fXt.getInstance().isTreasureView()&&await Wai.getInstance().onMenuClickByIndex(3),0==fXt.getInstance().isTreasureSubView()&&(f8t.getInstance().updateLanguage(),nQt.getInstance().currentSubView=f8t.getInstance())}
+ async goTreasurePreset(){
+ await this.goTreasure(),f8t.getInstance().setPresetBarVisible(!0)}
+ goPetList(){
+ this.goPetMenuAt(1)}
- hF.getInstance().children.length>0&&(hF.getInstance().removeChildren(),mH.ensureMounted(nzt.getInstance())),gqt.getInstance().isPetPopup()||Whi.getInstance().executeOnPetBtnClick2(),y5t.getInstance().onMenuClick(2)}
+ this.goPetMenuAt(2)}
+ goPetMenuAt(t){
+ cF.getInstance().children.length>0&&(cF.getInstance().removeChildren(),bH.ensureMounted(sqt.getInstance())),fXt.getInstance().isPetPopup()||coi.getInstance().executeOnPetBtnClick2(),v3t.getInstance().onMenuClick(t)}
TreasureShopItemRenderer 1 hunks, 13 statements
- $D.setUserInfo(n.body),Kx.getInstance().setData(n.body.treasure,n.body.dungeon),f4t.invalidateCachedTransInfo(),Kx.getInstance().equipedKindNums.length>h.length?sH.getInstance().showMessage(YG.getText("GAME_300","슬롯에 추가되었습니다.")):sH.getInstance().showMessage(YG.getText("GAME_302","[내유물]로 이동했습니다.")),mH.getInstance().updateAll(),W6t.getInstance().setData(),this.setRequestPending(!1),$Vt.getInstance().getStatus()}
+ if(VD.setUserInfo(n.body),Xx.getInstance().setData(n.body.treasure,n.body.dungeon),P8t.invalidateCachedTransInfo(),Xx.getInstance().equipedKindNums.length>h.length?rH.getInstance().showMessage(QG.getText("GAME_300","슬롯에 추가되었습니다.")):rH.getInstance().showMessage(QG.getText("GAME_302","[내유물]로 이동했습니다.")),bH.getInstance().updateAll(),c8t.getInstance().setData(),this.setRequestPending(!1),FKt.getInstance().getStatus(),Xx.getInstance().allPurchased){
+ const{
+ RightBottomMenus:t}
+ =await ti(async()=>{
+ const{
+ RightBottomMenus:t}
+ =await Promise.resolve().then(()=>R6t);
+ return{
+ RightBottomMenus:t}
+ }
+ ,void 0);
+ t.getInstance().update()}
+ }
SpiritResultPopup 5 hunks, 12 statements
- showVictory(t,i=0,s=null){
- this.onConfirmCallback=s,this.title=this.buildTitle(t,i),this.lblMessage.text=YG.getText("COMMON_386","전투에 승리하였습니다."),this.lblMessage.textColor=65280,this.btnConfirm.color=iF.GREEN,this.btnConfirm.text=YG.getText("COMMON_1","확인"),this.setupReward(t),this.updateLayout(),super.show()}
- showSweep(t,i=null){
- this.onConfirmCallback=i,this.title=this.buildTitle(t,3),this.lblMessage.text=YG.getText("COMMON_379","즉시완료"),this.lblMessage.textColor=65280,this.btnConfirm.color=iF.GREEN,this.btnConfirm.text=YG.getText("COMMON_1","확인"),this.setupReward(t),this.updateLayout(),super.show()}
+ showVictory(t,i=0,s=null,e){
+ this.onConfirmCallback=s,this.title=this.buildTitle(t,i),this.lblMessage.text=QG.getText("COMMON_386","전투에 승리하였습니다."),this.lblMessage.textColor=65280,this.btnConfirm.color=hF.GREEN,this.btnConfirm.text=QG.getText("COMMON_1","확인"),this.setupReward(t,e),e&&e.bonusAmount>0&&(this.lblMessage.text+="\n"+QG.getValueReplace("GAME_1709","##",e.bonusAmount,`정령의 친화: 펫 조각 +${
+ e.bonusAmount}
+ `)),this.updateLayout(),super.show()}
+ showSweep(t,i=null,s){
+ this.onConfirmCallback=i,this.title=this.buildTitle(t,3),this.lblMessage.text=QG.getText("COMMON_379","즉시완료"),this.lblMessage.textColor=65280,this.btnConfirm.color=hF.GREEN,this.btnConfirm.text=QG.getText("COMMON_1","확인"),this.setupReward(t,s),s&&s.bonusAmount>0&&(this.lblMessage.text+="\n"+QG.getValueReplace("GAME_1709","##",s.bonusAmount,`정령의 친화: 펫 조각 +${
+ s.bonusAmount}
+ `)),this.updateLayout(),super.show()}
- setupReward(i){
+ setupReward(i,s){
- const s=i.reward>0?i.reward:1;
+ const e=(null==s?void 0:s.totalAmount)??(i.reward>0?i.reward:1);
- i.reward}
+ (null==s?void 0:s.totalAmount)??i.reward}
- this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.lblMessage.y=85;
+ this.lblMessage.setWrapWidth(this.width-60),this.lblMessage.x=.5*(this.width-this.lblMessage.width),this.lblMessage.y=85;
TimeShiftManager 9 hunks, 11 statements
- return 1+Nx.getInstance().getTotal(Rx.CallOfDawn)/100}
+ return 1+tP.getInstance().getGameplayTotal(Lx.CallOfDawn)/100}
- maxStack:this.maxStack,secondsPerStack:this.intervalSec/t,buffPercent:Math.round(100*(t-1))}
+ maxStack:this.maxStack,secondsPerStack:this.intervalSec/t,buffPercent:Math.round(1e3*(t-1))/10,preservePercent:Gx.getInstance().getTotal(Lx.DawnChargePreserve)}
- return this.stack>0}
+ return!this.usePending&&this.stack>0}
- return this.consume(),this.nightStartOf(t+1)}
+ return this.consume()?this.nightStartOf(t+1):t+1}
+ if(this.usePending)return!1;
- if(t<=0)return;
+ if(t<=0)return!1;
+ this.usePending=!0;
- t>=this.maxStack?this.lastUseTime=this.now()-(t-1)*i*1e3:this.lastUseTime+=1e3*i,this.reportUse()}
+ return t>=this.maxStack?this.lastUseTime=this.now()-(t-1)*i*1e3:this.lastUseTime+=1e3*i,this.reportUse(),!0}
+ finally{
+ this.usePending=!1}
- qt(d0t,"TimeShiftManager"),Yt(d0t,"intervalSec",300),Yt(d0t,"maxStack",1),Yt(d0t,"UNLOCK_MAX_WAVE",200),Yt(d0t,"lastUseTime",0),Yt(d0t,"loaded",!1),Yt(d0t,"loadPromise",null),Yt(d0t,"_autoEnabled",!1);
+ Xt(l1t,"TimeShiftManager"),Yt(l1t,"intervalSec",300),Yt(l1t,"maxStack",1),Yt(l1t,"UNLOCK_MAX_WAVE",200),Yt(l1t,"lastUseTime",0),Yt(l1t,"loaded",!1),Yt(l1t,"loadPromise",null),Yt(l1t,"usePending",!1),Yt(l1t,"_autoEnabled",!1);
BattleController 8 hunks, 11 statements
- super(),Yt(this,"battleType",sF.IDLE),Yt(this,"reviveGoldBuff",1),Yt(this,"heroHireCosts",[10,30,50,100,150,200,300,500,1e3,1500,2e3,2e3,2e3,2e3]),Yt(this,"castleVO",Ax.getVO()),Yt(this,"rallyDragHero",null),Yt(this,"rallyHeroes",new Set),Yt(this,"rallyRangeCircle",new Tai),Yt(this,"rallyDashLine",new Uf),Yt(this,"isDragging",!1),Yt(this,"dragStartX",0),Yt(this,"dragStartY",0),Yt(this,"minSortingCooldown",30),Yt(this,"enemyHpRatio",.25),Yt(this,"enemyAtkRatio",.25),Yt(this,"enemyMoveSpdRatio",1),Yt(this,"map",new Oai),Yt(this,"currentScenarioId",1),Yt(this,"rushTime",420),Yt(this,"waveTimer",0),Yt(this,"waveDuration",600),Yt(this,"spawnSchedule",[]),Yt(this,"spawnScheduleIndex",0),Yt(this,"allEnemiesSpawned",!1),Yt(this,"totalEnemiesInWave",0),Yt(this,"bossSpawned",!1),Yt(this,"isGameOverFlag",!1),Yt(this,"castleDestroyHandled",!1),Yt(this,"skippedWave",0),Yt(this,"shownDialogueWaves",new Set),Yt(this,"activeWaveNumbers",[]),Yt(this,"waveSpawnStatus",new Map),Yt(this,"goldCoolTime",30),Yt(this,"goldCoolTimeCount",0),Yt(this,"spawnVo",Ax.getVO()),Yt(this,"goldGoblinNextSpawnTime",-1),Yt(this,"goldGoblinList",[]),Yt(this,"goldGoblinSpawning",!1),Yt(this,"adsGoblinNextSpawnTime",-1),Yt(this,"adsGoblinList",[]),Yt(this,"adsGoblinSpawning",!1),Yt(this,"isFirstWave",!0),Yt(this,"autoSaveTimer",null),Yt(this,"autoSaveDelayTimer",null),Yt(this,"lastSavedWave",0),Yt(this,"lastGodBlessCheckedWave",0),Yt(this,"lastSavedGold",0),Yt(this,"isSaving",!1),Yt(this,"autoSaveRetryCount",0),Yt(this,"execute",qt(()=>{
+ super(),Yt(this,"battleType",rF.IDLE),Yt(this,"reviveGoldBuff",1),Yt(this,"heroHireCosts",[10,30,50,100,150,200,300,500,1e3,1500,2e3,2e3,2e3,2e3]),Yt(this,"castleVO",Tx.getVO()),Yt(this,"rallyDragHero",null),Yt(this,"rallyHeroes",new Set),Yt(this,"rallyRangeCircle",new Jci),Yt(this,"rallyDashLine",new Ff),Yt(this,"isDragging",!1),Yt(this,"dragStartX",0),Yt(this,"dragStartY",0),Yt(this,"minSortingCooldown",30),Yt(this,"enemyHpRatio",.25),Yt(this,"enemyAtkRatio",.25),Yt(this,"enemyMoveSpdRatio",1),Yt(this,"map",new ili),Yt(this,"currentScenarioId",1),Yt(this,"rushTime",420),Yt(this,"waveTimer",0),Yt(this,"waveDuration",600),Yt(this,"spawnSchedule",[]),Yt(this,"spawnScheduleIndex",0),Yt(this,"allEnemiesSpawned",!1),Yt(this,"totalEnemiesInWave",0),Yt(this,"bossSpawned",!1),Yt(this,"isGameOverFlag",!1),Yt(this,"castleDestroyHandled",!1),Yt(this,"skippedWaves",[]),Yt(this,"shownDialogueWaves",new Set),Yt(this,"activeWaveNumbers",[]),Yt(this,"waveSpawnStatus",new Map),Yt(this,"goldCoolTime",30),Yt(this,"goldCoolTimeCount",0),Yt(this,"spawnVo",Tx.getVO()),Yt(this,"goldGoblinNextSpawnTime",-1),Yt(this,"goldGoblinList",[]),Yt(this,"goldGoblinSpawning",!1),Yt(this,"adsGoblinNextSpawnTime",-1),Yt(this,"adsGoblinList",[]),Yt(this,"adsGoblinSpawning",!1),Yt(this,"isFirstWave",!0),Yt(this,"autoSaveTimer",null),Yt(this,"autoSaveDelayTimer",null),Yt(this,"lastSavedWave",0),Yt(this,"lastGodBlessCheckedWave",0),Yt(this,"lastSavedGold",0),Yt(this,"isSaving",!1),Yt(this,"autoSaveRetryCount",0),Yt(this,"execute",Xt(()=>{
- this.skippedWave=0;
+ this.skippedWaves=[];
- return e>0&&!s&&Math.random()<e/100&&(this.skippedWave=i,i++,dai.getInstance().show(t,i)),this.isFirstWave=!1,$D.wave=i,oai.getInstance().updateDay($D.wave),this.skippedWave>0&&oai.getInstance().showWaveSkipBonus(),Xhi.getInstance().isRunning&&Xhi.getInstance().tutorialIndex===Xhi.TUTORIAL_INDEX_WAVE0&&0==Xhi.getInstance().savedIndex&&(i=1,$D.wave=i,oai.getInstance().updateDay($D.wave),Xhi.getInstance().endTutorialWave0()),i}
+ return e>0&&!s&&(this.skippedWaves=Gci(t,e,tP.getInstance().getGameplayTotal(Lx.AncientForestLegend)),this.skippedWaves.length>0&&(i+=this.skippedWaves.length,Dci.getInstance().show(t,i))),this.isFirstWave=!1,VD.wave=i,xci.getInstance().updateDay(VD.wave),this.skippedWaves.length>0&&xci.getInstance().showWaveSkipBonus(this.skippedWaves.length),moi.getInstance().isRunning&&moi.getInstance().tutorialIndex===moi.TUTORIAL_INDEX_WAVE0&&0==moi.getInstance().savedIndex&&(i=1,VD.wave=i,xci.getInstance().updateDay(VD.wave),moi.getInstance().endTutorialWave0()),i}
- this.player.health=Math.min(n,Math.max(1,this.player.hp+i)),u0t.getInstance().updateInfo(this.player.hp,this.player.maxHp),s&&(this.player.baseAtkDmg=t.atkDmg,this.player.orgAtkDmg=this.player.atkDmg=this.player.baseAtkDmg,this.player.baseDef=t.def,this.player.orgDef=this.player.def=this.player.baseDef)}
+ this.player.health=Math.min(n,Math.max(1,this.player.hp+i)),c1t.getInstance().updateInfo(this.player.hp,this.player.maxHp),(s||this.player.baseAtkDmg!==t.atkDmg||this.player.baseDef!==t.def)&&(this.player.baseAtkDmg=t.atkDmg,this.player.orgAtkDmg=this.player.atkDmg=this.player.baseAtkDmg,this.player.baseDef=t.def,this.player.orgDef=this.player.def=this.player.baseDef)}
+ this.clearBattlefield()}
+ clearBattlefield(){
+ applyOfflineMarchWave(t){
+ return!this.isCastleDestroyed()&&!(t<=(this.activeWaveNumbers.length>0?Math.max(...this.activeWaveNumbers):VD.wave)||!UU.getInstance().getScenarioForWave(this.currentScenarioId,t)||(this.clearBattlefield(),VD.setWaveTrusted(t),this.currentWave=t,this.lastGodBlessCheckedWave=t,xci.getInstance().updateDay(VD.wave),this.startNewWave(),0))}
- this.skippedWave>0&&!this.shownDialogueWaves.has(this.skippedWave)&&(t.push(...AVt.getInstance().getByWave(this.skippedWave)),this.shownDialogueWaves.add(this.skippedWave)),this.shownDialogueWaves.has($D.wave)||(t.push(...AVt.getInstance().getByWave($D.wave)),this.shownDialogueWaves.add($D.wave)),t.length>0&&qhi.getInstance().showDialogues(t)}
+ for(const i of this.skippedWaves)this.shownDialogueWaves.has(i)||(t.push(...yKt.getInstance().getByWave(i)),this.shownDialogueWaves.add(i));
+ this.shownDialogueWaves.has(VD.wave)||(t.push(...yKt.getInstance().getByWave(VD.wave)),this.shownDialogueWaves.add(VD.wave)),t.length>0&&poi.getInstance().showDialogues(t)}
- t.sort((t,i)=>t.spawnTime-i.spawnTime)}
+ i>0&&bB(t,Gx.getInstance().getTotal(Lx.EnemySpawnTimeReduction)),t.sort((t,i)=>t.spawnTime-i.spawnTime)}
HeroIcon 4 hunks, 9 statements
- `,this.lblLevel.textColor=t.level>=i?16763904:16777215,this.lblEnhance.text=`+${
- t.enhance}
- `,this.lblEnhance.x=this.bg.width-this.lblEnhance.width-30,this.lblLevel.x=(this.bg.width-15-this.lblLevel.width)/2,t.trans>0?(this.trans.visible=!0,this.trans.texture=iS.getTexture("UI_Ekkorr",`Trans000${
+ `,this.lblLevel.textColor=t.level>=i?16763904:16777215,this.setEnhance(t.enhance),t.trans>0?(this.trans.visible=!0,this.trans.texture=eS.getTexture("UI_Ekkorr",`Trans000${
+ setEnhance(t){
+ this.lblEnhance.text=`+${
+ t}
+ `,this.lblEnhance.x=this.bg.width-this.lblEnhance.width-30,this.lblLevel.x=(this.bg.width-15-this.lblLevel.width)/2}
- setDataWithKindNum(t,i=0){
+ setDataWithKindNum(t,i=0,s=0){
- `)):this.trans.visible=!1,this.lblEnhance.visible=!1,this.lblLevel.visible=!1,this.lblCount.visible=!1}
+ `)):this.trans.visible=!1,s>0?(this.setEnhance(s),this.lblEnhance.visible=!0):this.lblEnhance.visible=!1,this.lblLevel.visible=!1,this.lblCount.visible=!1}
Pi 8 hunks, 8 statements
- a%h==0?t=r(nst(t))^lst[a/h-1]:h>6&&a%h==4&&(t=r(t)),o[a]=o[a-h]^t}
+ a%h==0?t=r(set(t))^aet[a/h-1]:h>6&&a%h==4&&(t=r(t)),o[a]=o[a-h]^t}
- function mst(t,i,s,e,n){
+ function get(t,i,s,e,n){
- qt(ust,"ei"),qt(dst,"ti"),qt(fst,"ni"),qt(pst,"ri"),qt(gst,"ii"),qt(mst,"oi"),qt(wst,"si"),qt(vst,"ai"),qt(_st,"ci"),qt(bst,"li"),qt(yst,"di"),qt(Mst,"ui"),qt(Est,"hi"),qt(Ast,"fi"),Lit.ctr=(0,Jit.wrapCipher)({
+ Xt(cet,"ei"),Xt(uet,"ti"),Xt(det,"ni"),Xt(fet,"ri"),Xt(pet,"ii"),Xt(get,"oi"),Xt(met,"si"),Xt(wet,"ai"),Xt(vet,"ci"),Xt(_et,"li"),Xt(bet,"di"),Xt(Met,"ui"),Xt(yet,"hi"),Xt(Eet,"fi"),Pst.ctr=(0,Xst.wrapCipher)({
- =mst(n,o[t+0],o[t+1],o[t+2],o[t+3]);
+ =get(n,o[t+0],o[t+1],o[t+2],o[t+3]);
- =mst(h,d,f,p,g);
+ =get(h,d,f,p,g);
- =mst(t,s[0],s[1],s[2],s[3]);
+ =get(t,s[0],s[1],s[2],s[3]);
- =mst(s,n,h,t[o],t[o+1]);
+ =get(s,n,h,t[o],t[o+1]);
- expandKeyLE:ust,expandKeyDecLE:dst,encrypt:gst,decrypt:mst,encryptBlock:Cst,decryptBlock:Ist,ctrCounter:vst,ctr32:_st}
+ expandKeyLE:cet,expandKeyDecLE:uet,encrypt:pet,decrypt:get,encryptBlock:Cet,decryptBlock:Iet,ctrCounter:wet,ctr32:vet}
EvolveConfirmPopup 1 hunks, 7 statements
- const e=Mx.getInstance().getBookVO(this.vo.evolKindNum),n=e?Nx.getInstance().getByKindNum(e.uniqueSkill):null;
- this.lblUniqueDesc.text=n?YG.getText(n.getDescKey(),n.desc):YG.getText("COMMON_367","없음"),this.btnCancel.text=YG.getText("COMMON_2","취소"),this.count>1?(this.btnConfirm.activatedTextLabelColor=13434624,this.btnConfirm.text=`${
+ const e=Ax.getInstance().getBookVO(this.vo.evolKindNum),n=e?Gx.getInstance().getSkillsForUnit(e):[];
+ this.lblUniqueDesc.text=n.length>0?n.map(t=>{
+ const i=QG.getText(t.getDescKey(),t.desc);
+ return n.length>1?`- ${
+ i}
+ `:i}
+ ).join("\n"):QG.getText("COMMON_367","없음"),this.btnCancel.text=QG.getText("COMMON_2","취소"),this.count>1?(this.btnConfirm.activatedTextLabelColor=13434624,this.btnConfirm.text=`${
HeroDetailPopup 3 hunks, 7 statements
- show(i,s="list"){
+ async show(i,s="list"){
- const a=Nx.getInstance().getByKindNum(i.uniqueSkill);
- if(a){
+ const a=Gx.getInstance().getSkillsForUnit(i);
+ this.lblUniqueDesc.text=a.length>0?a.map(t=>{
- this.lblUniqueDesc.text=t}
- else this.lblUniqueDesc.text=YG.getText("COMMON_367","없음");
+ return a.length>1?`- ${
+ i}
+ `:i}
+ ).join("\n"):QG.getText("COMMON_367","없음");
FavoritePetCell 4 hunks, 7 statements
- let L2t=N2t;
- const D2t=class extends ZO{
+ let P5t=R5t,N5t=(Xt(Gt=class extends ix{
- ;
- qt(D2t,"FavoritePetItemRenderer");
- let G2t=D2t;
+ ,"FavoritePetItemRenderer"),Gt);
- var i,s,e,n;
+ var i,s,e,n,h,r;
- l+=o*(t.reward||0),c-=o,0!==o&&(u=!0)}
+ d+=(null==(r=null==(h=a.body)?void 0:h.reward)?void 0:r.totalAmount)??c*(t.reward||0),u-=c,0!==c&&(f=!0)}
MineMain 4 hunks, 7 statements
- var i,s;
+ var i,s,e;
- if(pB.getInstance().status.hammerCount<=0)return void(null==(i=this.onHammerEmpty)||i.call(this));
+ const n=wB.getInstance().status;
+ if(n.hammerCount<=0)return void(null==(i=this.onHammerEmpty)||i.call(this));
+ if(wB.getInstance().mine4XEnabled&&n.hammerCount<4)return void(null==(s=this.onHammerEmpty)||s.call(this));
- const c=await vL.getInstance().mine.doDamage(i,s);
+ const c=await ML.getInstance().mine.doDamage(i,s,wB.getInstance().mine4XEnabled);
- const e=[];
- for(const n of t.HAMMER_DAMAGE_PATTERN){
+ const e=[],n=wB.getInstance().mine4XEnabled?t.HAMMER_DAMAGE_PATTERN_4X:t.HAMMER_DAMAGE_PATTERN;
+ for(const t of n){
ElfSecretSkillToast 2 hunks, 7 statements
- const s=YG.getText("GAME_162","엘프의 비술 발동!"),e=YG.getValueReplace("GAME_163","##",t+1,`Wave ${
- t+1}
-  스킵`);
- this.showIconMessage(`${
+ const s=QG.getText("GAME_162","엘프의 비술 발동!"),e=[];
+ for(let n=t+1;
+ n<i;
+ n++)e.push(QG.getValueReplace("GAME_163","##",n,`Wave ${
- \n${
- e}
- `,this.iconName,this.sheetName,180),this.y=580-this.height}
+  스킵`));
+ this.showIconMessage([s,...e].join("\n"),this.iconName,this.sheetName,180),this.y=580-this.height}
UnitDataManager 6 hunks, 6 statements
- e.className=n,e.name=s.name,e.tribe=Number(s.tribe),e.grade=Number(s.grade),e.evolKindNum=Number(s.evolKindNum),e.dmgType="P"==s.dmgType?ax.PHYSICAL:ax.MAGICAL,e.isAir="Y"==s.isAir,e.unitType="melee"==s.unitType?rx.MELEE:rx.RANGE,e.numBlock=Number(s.numBlock),e.atkDmg=Number(s.atkDmg),e.def=Number(s.def),e.phyDef=Number(s.phyDef)||0,e.magDef=Number(s.magDef)||0,e.hp=Number(s.hp),e.atkSpd=Number(s.atkSpd),e.moveSpd=Number(s.moveSpd),e.atkRange=Number(s.atkRange),e.magicShield=Number(s.magicShield),e.physicalShield=Number(s.physicalShield),e.numRevive=Number(s.numRevive),e.reviveTime=Number(s.reviveTime),e.recovery=Number(s.recovery),e.sex=s.sex,e.detect="Y"==s.detect,e.cloaking="Y"==s.cloaking,e.canPurchase="Y"==s.canPurchase,e.honor=Number(s.honor)||0,e.nAtk=s.nAtk??"",e.sAtk=s.sAtk??"",e.goldBuffIds=s.goldBuffs?s.goldBuffs.split("|").map(Number):[],e.goldBuffValues=s.goldBuffValues?s.goldBuffValues.split("|").map(Number):[],e.uniqueSkill=s.uniqueSkill??0,e.stunImmune="Y"==s.stunImmune,e.freezeImmune="Y"==s.freezeImmune,e.blowImmune="Y"==s.blowImmune,e.knockImmune="Y"==s.knockImmune,e.weight=s.weight??1,e.raidCc="string"==typeof s.raidCc&&s.raidCc.length>0?s.raidCc.split("|").filter(Boolean):[],e.maxTrans=Number(s.trans)||0;
+ e.className=n,e.name=s.name,e.tribe=Number(s.tribe),e.grade=Number(s.grade),e.evolKindNum=Number(s.evolKindNum),e.dmgType="P"==s.dmgType?lx.PHYSICAL:lx.MAGICAL,e.isAir="Y"==s.isAir,e.unitType="melee"==s.unitType?ax.MELEE:ax.RANGE,e.numBlock=Number(s.numBlock),e.atkDmg=Number(s.atkDmg),e.def=Number(s.def),e.phyDef=Number(s.phyDef)||0,e.magDef=Number(s.magDef)||0,e.hp=Number(s.hp),e.atkSpd=Number(s.atkSpd),e.moveSpd=Number(s.moveSpd),e.atkRange=Number(s.atkRange),e.magicShield=Number(s.magicShield),e.physicalShield=Number(s.physicalShield),e.numRevive=Number(s.numRevive),e.reviveTime=Number(s.reviveTime),e.recovery=Number(s.recovery),e.sex=s.sex,e.detect="Y"==s.detect,e.cloaking="Y"==s.cloaking,e.canPurchase="Y"==s.canPurchase,e.honor=Number(s.honor)||0,e.nAtk=s.nAtk??"",e.sAtk=s.sAtk??"",e.goldBuffIds=s.goldBuffs?s.goldBuffs.split("|").map(Number):[],e.goldBuffValues=s.goldBuffValues?s.goldBuffValues.split("|").map(Number):[],e.uniqueSkill=Number(s.uniqueSkill)||0,e.uniqueSkill2=Number(s.uniqueSkill2)||0,e.stunImmune="Y"==s.stunImmune,e.freezeImmune="Y"==s.freezeImmune,e.blowImmune="Y"==s.blowImmune,e.knockImmune="Y"==s.knockImmune,e.weight=s.weight??1,e.raidCc="string"==typeof s.raidCc&&s.raidCc.length>0?s.raidCc.split("|").filter(Boolean):[],e.maxTrans=Number(s.trans)||0;
- uniqueSkillId:t.uniqueSkill??0,kindNum:t.kindNum,trans:t.trans??0}
+ uniqueSkillId:t.uniqueSkill??0,uniqueSkillId2:t.uniqueSkill2,kindNum:t.kindNum,trans:t.trans??0}
- uniqueSkillId:i,kindNum:e.kindNum,trans:0}
+ uniqueSkillId:i,uniqueSkillId2:t.uniqueSkill2,kindNum:e.kindNum,trans:0}
- uniqueSkillId:i,kindNum:e.kindNum,trans:1}
+ uniqueSkillId:i,uniqueSkillId2:t.uniqueSkill2,kindNum:e.kindNum,trans:1}
- uniqueSkillId:i,kindNum:e.kindNum,trans:2}
+ uniqueSkillId:i,uniqueSkillId2:t.uniqueSkill2,kindNum:e.kindNum,trans:2}
- uniqueSkillId:i,kindNum:e.kindNum,trans:3}
+ uniqueSkillId:i,uniqueSkillId2:t.uniqueSkill2,kindNum:e.kindNum,trans:3}
Mo 5 hunks, 6 statements
- var iet,set,eet,net=Nst;
+ var int,snt,ent,nnt=Net;
- (Pit),iet=P7,set=g7&&g7.__createBinding||(Object.create?function(t,i,s,e){
+ (xst),int=x9,snt=f9&&f9.__createBinding||(Object.create?function(t,i,s,e){
- for(var s in t)"default"===s||Object.prototype.hasOwnProperty.call(i,s)||set(i,t,s)}
+ for(var s in t)"default"===s||Object.prototype.hasOwnProperty.call(i,s)||snt(i,t,s)}
- const pet=u3("KeyExchange:Layer"),get=u3("SocketService:Layer"),met=u3("Ecies:Layer"),wet=u3("RemoteCommunication:Layer");
- pet.color="##95c44e",get.color="#f638d7",met.color="#465b9c",wet.color="#47a2be";
+ const fnt=c6("KeyExchange:Layer"),pnt=c6("SocketService:Layer"),gnt=c6("Ecies:Layer"),mnt=c6("RemoteCommunication:Layer");
+ fnt.color="##95c44e",pnt.color="#f638d7",gnt.color="#465b9c",mnt.color="#47a2be";
- KeyExchange:pet,SocketService:get,Ecies:met,RemoteCommunication:wet}
+ KeyExchange:fnt,SocketService:pnt,Ecies:gnt,RemoteCommunication:mnt}
GuildWarBattlePopupV3 6 hunks, 6 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:11}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:9}
WaveCallGuidePopup 3 hunks, 6 statements
- 초마다 충전되며, 가득 차면 호출할 수 있습니다.`),YG.getText("GAME_1568","2. 영웅의 고유스킬로 충전속도를 빠르게 할 수 있습니다.")];
+ 초마다 충전되며, 가득 차면 호출할 수 있습니다.`),QG.getText("GAME_1568","2. 영웅의 고유스킬로 충전속도를 빠르게 할 수 있습니다."),QG.getText("TIME_SHIFT_PRESERVE_GUIDE","3. 영웅의 고유스킬에 따라 일정 확률로 충전 횟수를 소모하지 않고 사용할 수 있습니다. 팀 편성 시 누적 적용되며, 최대 30%입니다.")];
+ ,{
+ title:QG.getText("TIME_SHIFT_PRESERVE_HEROES","충전 횟수를 보존하는 영웅"),code:Lx.DawnChargePreserve}
- % )`)].join("\n")}
+ % )`),QG.getValueReplace("TIME_SHIFT_PRESERVE_STATUS","##",t.preservePercent,`충전 횟수 보존 확률 : ${
+ t.preservePercent}
+ % (최대 30%)`)].join("\n")}
BatchableSprite 5 hunks, 5 statements
- ...O.defaultTextStyle,...t}
+ ...k.defaultTextStyle,...t}
- ...O.defaultDropShadow,...t}
+ ...k.defaultDropShadow,...t}
- ...O.defaultDropShadow}
+ ...k.defaultDropShadow}
- ...Pu.defaultFillStyle,...t}
+ ...Nu.defaultFillStyle,...t}
- ...Pu.defaultStrokeStyle,...t}
+ ...Nu.defaultStrokeStyle,...t}
StageManager 1 hunks, 5 statements
- const zA=class t{
+ const qA=Object.freeze(Object.defineProperty({
+ __proto__:null,LocalDataManager:zA}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),XA=class t{
BattleFrameController 1 hunks, 5 statements
+ function bB(t,i){
+ if(!Number.isFinite(i)||i<=0)return;
+ const s=1-Math.min(i,15)/100;
+ for(const e of t)e.spawnTime=Math.max(0,Math.floor(e.spawnTime*s))}
+ Xt(bB,"applyEnemySpawnTimeReduction");
PVPBattleStatus 1 hunks, 5 statements
- const f3t=640,p3t=320,g3t=30,m3t=[4500223,2280703,8974079,6741452,4521898,2289373,5618687,7842559,10079487,11197951],w3t=[16729156,16746496,16763904,15623714,16733542,16724872,16737860,15615010,16746564,16755302],v3t=new Cg({
+ const R6t=Object.freeze(Object.defineProperty({
+ __proto__:null,RightBottomMenus:x6t}
+ ,Symbol.toStringTag,{
+ value:"Module"}
+ )),P6t=640,N6t=320,L6t=30,D6t=[4500223,2280703,8974079,6741452,4521898,2289373,5618687,7842559,10079487,11197951],G6t=[16729156,16746496,16763904,15623714,16733542,16724872,16737860,15615010,16746564,16755302],B6t=new Ig({
UserService 1 hunks, 4 statements
+ async applyOfflineMarch(){
+ return this.post(hP.USER.APPLY_OFFLINE_MARCH,{
+ }
+ ,!1)}
ShopDataManager 2 hunks, 4 statements
- if(this.allProducts.push(t),t.targeting){
- try{
- "string"==typeof t.targeting&&(t.targeting=JSON.parse(t.targeting.split('"').join('"')))}
+ if(this.allProducts.push(t),t.targeting&&"string"==typeof t.targeting)try{
+ t.targeting=JSON.parse(t.targeting)}
+ if(t.targeting){
TreasureIcon 2 hunks, 4 statements
- setDataWithKindNum(t){
+ setDataWithKindNum(t,i=0,s=0){
- i&&this.setVO(i)}
+ e&&(this.setVO(e),i>0?this.showTrans(i):this.hideTrans(),s>0?(this.lblEnhance.text=`+${
+ s}
+ `,this.showEnhance()):this.hideEnhance())}
MineRewardInfoPopup 3 hunks, 4 statements
- switch("petPiece"!==r.type&&(h={
+ switch("petPiece"!==r.type&&"priestessPiece"!==r.type&&(h={
- case"petPiece":const t=iB.currentMineEvent,i=t?t.petKindNums.length:r.kindNums.length;
+ case"petPiece":case"priestessPiece":const t=nB.currentMineEvent,i=t?"petPiece"===r.type?t.petKindNums:t.priestessKindNums:r.kindNums,s=i.length;
- ,h.type=z5.pet,h.prob=Number(X5t(r.prob/i,1)),h.kindNum=t?t.petKindNums[s]:r.kindNums[s],n.push(h)}
- "petPiece"!==r.type&&n.push(h)}
+ ,h.type=V3.pet,h.prob=Number(z3t(r.prob/s,1)),h.kindNum=i[e],n.push(h)}
+ "petPiece"!==r.type&&"priestessPiece"!==r.type&&n.push(h)}
TopMenu 2 hunks, 4 statements
- showWaveSkipBonus(){
+ showWaveSkipBonus(t=1){
- t.text="+1",t.visible=!0;
+ i.text=`+${
+ t}
+ `,i.visible=!0;
HeroGroupRow 1 hunks, 4 statements
- for(const t of h.bookList){
- const i=n.getByKindNum(t.uniqueSkill);
- if(!(null==i?void 0:i.code))continue;
- if(n.normalizeCode(i.code)!==s)continue;
+ for(const t of h.bookList)for(const i of n.getSkillsForUnit(t)){
+ if(!i.code||n.normalizeCode(i.code)!==s)continue;
Archery2GameScene 4 hunks, 4 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16777215}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16766720}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fill:16737792}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_20,fill:16777215}
PassthroughFilter 2 hunks, 3 statements
- let rf=hf;
- var of="in vec2 vTextureCoord;
+ let of=rf;
+ var af="in vec2 vTextureCoord;
- vertex:sf,fragment:of,name:"passthrough-filter"}
+ vertex:ef,fragment:af,name:"passthrough-filter"}
UnitVO 1 hunks, 3 statements
+ get uniqueSkill2(){
+ var t;
+ return this.bvo||(this.bvo=Ax.getInstance().getBookVO(this.kindNum)),(null==(t=this.bvo)?void 0:t.uniqueSkill2)??0}
URLManager 1 hunks, 3 statements
- /user/getAllInfo`,ADD_GEM:`${
+ /user/getAllInfo`,APPLY_OFFLINE_MARCH:`${
+ t.baseURL}
+ /user/applyOfflineMarch`,ADD_GEM:`${
SHA256 3 hunks, 3 statements
- ...Opt,...Rpt,...Npt,...Dpt,...Upt,...Ypt,...Qpt,...igt,...rgt}
+ ...Igt,...kgt,...Rgt,...Ngt,...Ggt,...zgt,...Ygt,...Zgt,...nmt}
- ...Wgt,...Vgt}
+ ...Hmt,...Wmt}
- utf8:Mmt,"utf-8":Mmt,hex:mmt.base16,latin1:Emt,ascii:Emt,binary:Emt,...mmt}
+ utf8:bwt,"utf-8":bwt,hex:pwt.base16,latin1:Mwt,ascii:Mwt,binary:Mwt,...pwt}
SuiProvider 3 hunks, 3 statements
- namespace:fSt.NameSpaceKeyAptos,addresses:s,methods:[...gSt.AptosMethods],extra:h}
+ namespace:uTt.NameSpaceKeyAptos,addresses:s,methods:[...fTt.AptosMethods],extra:h}
- namespace:MSt.NameSpaceKeyTON,addresses:o,methods:[...SSt.TONMethods],extra:a,data:{
+ namespace:bTt.NameSpaceKeyTON,addresses:o,methods:[...ETt.TONMethods],extra:a,data:{
- namespace:kSt.NameSpaceKeySui,addresses:i,methods:[...RSt.SuiMethods],extra:s}
+ namespace:CTt.NameSpaceKeySui,addresses:i,methods:[...kTt.SuiMethods],extra:s}
WalletPopup 3 hunks, 3 statements
- ...yL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
+ ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:24,fontWeight:"bold"}
- ...yL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
+ ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
- ...yL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
+ ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:16}
GoldSkillItemRenderer 3 hunks, 3 statements
- super(),Yt(this,"bg"),Yt(this,"icon",new je(iS.getTexture("UI_Ekkorr","Icon_Skill_AU"))),Yt(this,"targetIcon",new je(iS.getTexture("UI_Ekkorr","Icon_All"))),Yt(this,"lblSkillLv",new wD("",yL.COLOR_WHITE,yL.DEFAULT_FONT_OPTION_16)),Yt(this,"lblSkillDesc",new wD("",yL.DEFAULT_COLOR,yL.DEFAULT_FONT_OPTION_16)),Yt(this,"lblValue",new wD("",65280,yL.DEFAULT_OUTLINE_FONT_OPTION_16)),Yt(this,"lblValuePlus",new wD("",yL.COLOR_WHITE,yL.WHITE_OUTLINE_FONT_OPTION_16)),this.bg=new kM({
+ super(),Yt(this,"bg"),Yt(this,"icon",new Ve(eS.getTexture("UI_Ekkorr2","Icon_Skill_AU"))),Yt(this,"targetIcon",new Ve(eS.getTexture("UI_Ekkorr2","Icon_All"))),Yt(this,"lblSkillLv",new bD("",AL.COLOR_WHITE,AL.DEFAULT_FONT_OPTION_16)),Yt(this,"lblSkillDesc",new bD("",AL.DEFAULT_COLOR,AL.DEFAULT_FONT_OPTION_16)),Yt(this,"lblValue",new bD("",65280,AL.DEFAULT_OUTLINE_FONT_OPTION_16)),Yt(this,"lblValuePlus",new bD("",AL.COLOR_WHITE,AL.WHITE_OUTLINE_FONT_OPTION_16)),this.bg=new ky({
- if(1==e.length?(i="",s=e[0]):(i=e[0],s=e[1]),this.icon.texture=iS.getTexture("UI_Ekkorr",`Icon_Skill_${
+ if(1==e.length?(i="",s=e[0]):(i=e[0],s=e[1]),this.icon.texture=eS.getTexture("UI_Ekkorr2",`Icon_Skill_${
- t&&(this.targetIcon.visible=!0,this.targetIcon.texture=iS.getTexture("UI_Ekkorr",`Icon_${
+ t&&(this.targetIcon.visible=!0,this.targetIcon.texture=eS.getTexture("UI_Ekkorr2",`Icon_${
BuffItemRenderer 1 hunks, 3 statements
- %`,t.contributors&&t.contributors.length>0){
+ ${
+ t.valueSuffix??"%"}
+ `,t.contributors&&t.contributors.length>0){
GodBlessToast 1 hunks, 3 statements
+ function Gci(t,i,s,e=Math.random){
+ return i<=0||e()>=Math.min(i,100)/100?[]:s>0&&e()<Math.min(s,30)/100?[t+1,t+2]:[t+1]}
+ Xt(Gci,"rollElfSecretSkippedWaves");
WorkerManagerClass 2 hunks, 2 statements
- ...M.defaultFillStyle}
+ ...y.defaultFillStyle}
- ...M.defaultStrokeStyle}
+ ...y.defaultStrokeStyle}
TilingSpriteShader 1 hunks, 2 statements
- ...ep,vertex:{
- ...ep.vertex,header:ep.vertex.header.replace("group(1)","group(2)")}
+ ...np,vertex:{
+ ...np.vertex,header:np.vertex.header.replace("group(1)","group(2)")}
CanvasRenderer 1 hunks, 2 statements
- const Uv=[...Cv,uw,fw,Bv,Dv],Fv=[Lw,$m,Rw,vw,Ym,nw,Jm,gw],Hv=[Lm,Ow],$v=[],Wv=[],jv=[];
- ei.handleByNamedList(ti.CanvasSystem,$v),ei.handleByNamedList(ti.CanvasPipes,Wv),ei.handleByNamedList(ti.CanvasPipesAdaptor,jv),ei.add(...Uv,...Fv,...Hv);
+ const Fv=[...Iv,dw,pw,Uv,Gv],Hv=[Dw,Wm,Pw,_w,Ym,hw,Qm,mw],$v=[Dm,xw],Wv=[],jv=[],Vv=[];
+ ni.handleByNamedList(ii.CanvasSystem,Wv),ni.handleByNamedList(ii.CanvasPipes,jv),ni.handleByNamedList(ii.CanvasPipesAdaptor,Vv),ni.add(...Fv,...Hv,...$v);
WebGLRenderer 1 hunks, 2 statements
- const zb=[...Cv,U_,g_,t_,y_,Qv,$b,W_,d_,mb,ub,__,_b,T_,w_],qb=[...Iv],Yb=[Gm,Kb,jb],Xb=[],Jb=[],Qb=[];
- ei.handleByNamedList(ti.WebGLSystem,Xb),ei.handleByNamedList(ti.WebGLPipes,Jb),ei.handleByNamedList(ti.WebGLPipesAdaptor,Qb),ei.add(...zb,...qb,...Yb);
+ const qb=[...Iv,F_,m_,i_,y_,Zv,Wb,j_,f_,wb,db,b_,bb,C_,v_],Xb=[...Ov],Yb=[Bm,zb,Vb],Jb=[],Qb=[],Zb=[];
+ ni.handleByNamedList(ii.WebGLSystem,Jb),ni.handleByNamedList(ii.WebGLPipes,Qb),ni.handleByNamedList(ii.WebGLPipesAdaptor,Zb),ni.add(...qb,...Xb,...Yb);
WebGPURenderer 1 hunks, 2 statements
- const cM=[...Cv,Sy,gy,fy,wy,oy,nM,Uy,Hy,jy,Py,uy,_y,ey],lM=[...Iv,Iy],uM=[Fm,aM,rM],dM=[],fM=[],pM=[];
- ei.handleByNamedList(ti.WebGPUSystem,dM),ei.handleByNamedList(ti.WebGPUPipes,fM),ei.handleByNamedList(ti.WebGPUPipesAdaptor,pM),ei.add(...cM,...lM,...uM);
+ const ly=[...Iv,TM,mM,pM,vM,aM,hy,FM,$M,VM,NM,dM,bM,nM],uy=[...Ov,OM],dy=[Hm,cy,oy],fy=[],py=[],gy=[];
+ ni.handleByNamedList(ii.WebGPUSystem,fy),ni.handleByNamedList(ii.WebGPUPipes,py),ni.handleByNamedList(ii.WebGPUPipesAdaptor,gy),ni.add(...ly,...uy,...dy);
MineService 2 hunks, 2 statements
- async doDamage(t,i,s=!1){
+ async doDamage(t,i,s=!1,e=!1){
- xId:t,yId:i}
+ xId:t,yId:i,mine4X:s}
QuestDataManager 2 hunks, 2 statements
- const i=this.list.filter(t=>t.level>=1);
+ const i=this.list.filter(t=>t.isOpen&&t.level>=1);
- const s=i[Math.floor(Math.random()*i.length)],e=JR.getInstance().getGameplayTotal(Rx.HumanSecretGoldUp),n=Math.floor(s.gold*(1+e/100));
+ const s=GR.getHumanSecretQuestLimit(),e=null==s?i:i.slice(-s),n=e[Math.floor(Math.random()*e.length)],h=tP.getInstance().getGameplayTotal(Lx.HumanSecretGoldUp),r=Math.floor(n.gold*(1+h/100));
BaseWeapon 2 hunks, 2 statements
- [yH.MagicalHitEffect]:kH,[yH.PhysicalHitEffect]:xH,[yH.CriticalEffect]:h$,[yH.MissEffect]:w$,[yH.BlockEffect]:e$,[yH.EvadeEffect]:o$,[yH.AkEffect]:i$,[yH.HukEffect]:u$,[yH.PakEffect]:_$,[yH.YapEffect]:S$,[yH.StunImmuneEffect]:E$,[yH.FreezeImmuneEffect]:c$,[yH.KnockbackImmuneEffect]:f$,[yH.MagicalImmuneEffect]:g$,[yH.PhysicalImmuneEffect]:y$,[yH.HumanSkillEffect]:zH,[yH.ElfSkillEffect]:VH,[yH.UndeadSkillEffect]:JH,[yH.OrcSkillEffect]:YH,[yH.CurseEffect]:CH,[yH.PowerShieldEffect]:HH,[yH.PhysicalShieldEffect]:UH,[yH.MagicalShieldEffect]:GH,[yH.SilenceEffect]:WH,[yH.DarkArcherSkillEffect1]:C$,[yH.PriestLightEffect]:x$,[yH.PriestStartEffect]:L$,[yH.PriestShieldEffect]:P$,[yH.FairyWingEffect]:k$,[yH.BindingEffect]:SH,[yH.RockExplode]:PH,[yH.Smoke]:LH,[yH.EvolEffect]:G$,[yH.EvolEffect2]:U$,[yH.OrcIceExplodeEffect]:H$,[yH.FreezeEffectL]:W$,[yH.FreezeEffectM]:V$,[yH.FreezeEffectS]:z$,[yH.StunEffect]:Y$,[yH.CastleFire1]:J$,[yH.CastleFire2]:Z$,[yH.StoneEffect1]:iW,[yH.DeathHandSkillEffect1]:eW,[yH.BomberBigBombExplode1]:gW,[yH.BomberSmallBombExplode1]:hW,[yH.BlackMageBallExplode1]:oW,[yH.FireBallExplode]:cW,[yH.PoisonGreenEffect]:fW,[yH.OrcHunterEvadeBuff]:uW,[yH.AggroEffect]:wW,[yH.PilotMissileSmoke1]:_W,[yH.FireExplode]:yW,[yH.AntRockExplode]:EW,[yH.IceExplode2]:SW,[yH.HealYellow]:CW,[yH.ElectricEffect]:kW,[yH.RoboExplode]:xW,[yH.SuccubusLove]:PW,[yH.SuccubusEffect1]:LW,[yH.FallInLoveEffect]:GW,[yH.Accelerate]:UW,[yH.ElfGlowing1]:HW,[yH.ElfMagicCircle1]:WW,[yH.ElfExplodeEffect1]:zW,[yH.ElfBindEffect1]:VW,[yH.AbyssLightning1]:YW,[yH.AbyssSkillExplosion1]:JW,[yH.JudegmentMarkEffect1]:ZW,[yH.UndeadLightningExplosion1]:ij,[yH.FireExplosion1]:ej,[yH.FireExplosion2]:hj,[yH.AladinGenie1]:oj,[yH.DruidVine1]:cj,[yH.CrowExplosion1]:uj,[yH.BladeMasterAfterImage]:fj,[yH.PoisonExplodeEffect]:gj,[yH.BackAttackEffect]:wj,[yH.HeroAura1Effect]:_j,[yH.HeroAura2Effect]:yj,[yH.HeroAura3Effect]:Ej,[yH.HeroAura4Effect]:Sj,[yH.HeroAura5Effect]:Cj,[yH.HeroAura6Effect]:kj,[yH.RaidBuffSkillEffect1]:Pj,[yH.RaidBuffSkillEffect2]:Lj,[yH.RaidBuffSkillEffect3]:Gj,[yH.RaidBuffSkillEffect4]:Uj,[yH.RaidBuffSkillEffect5]:Hj}
+ [SH.MagicalHitEffect]:PH,[SH.PhysicalHitEffect]:LH,[SH.CriticalEffect]:c$,[SH.MissEffect]:M$,[SH.BlockEffect]:o$,[SH.EvadeEffect]:u$,[SH.AkEffect]:h$,[SH.HukEffect]:g$,[SH.PakEffect]:E$,[SH.YapEffect]:O$,[SH.StunImmuneEffect]:C$,[SH.FreezeImmuneEffect]:f$,[SH.KnockbackImmuneEffect]:w$,[SH.MagicalImmuneEffect]:_$,[SH.PhysicalImmuneEffect]:S$,[SH.HumanSkillEffect]:JH,[SH.ElfSkillEffect]:XH,[SH.UndeadSkillEffect]:i$,[SH.OrcSkillEffect]:ZH,[SH.CurseEffect]:xH,[SH.PowerShieldEffect]:VH,[SH.PhysicalShieldEffect]:WH,[SH.MagicalShieldEffect]:HH,[SH.SilenceEffect]:zH,[SH.DarkArcherSkillEffect1]:x$,[SH.PriestLightEffect]:L$,[SH.PriestStartEffect]:U$,[SH.PriestShieldEffect]:G$,[SH.FairyWingEffect]:P$,[SH.BindingEffect]:OH,[SH.RockExplode]:GH,[SH.Smoke]:UH,[SH.EvolEffect]:H$,[SH.EvolEffect2]:W$,[SH.OrcIceExplodeEffect]:V$,[SH.FreezeEffectL]:z$,[SH.FreezeEffectM]:X$,[SH.FreezeEffectS]:J$,[SH.StunEffect]:Z$,[SH.CastleFire1]:iW,[SH.CastleFire2]:eW,[SH.StoneEffect1]:hW,[SH.DeathHandSkillEffect1]:oW,[SH.BomberBigBombExplode1]:_W,[SH.BomberSmallBombExplode1]:cW,[SH.BlackMageBallExplode1]:uW,[SH.FireBallExplode]:fW,[SH.PoisonGreenEffect]:wW,[SH.OrcHunterEvadeBuff]:gW,[SH.AggroEffect]:MW,[SH.PilotMissileSmoke1]:EW,[SH.FireExplode]:SW,[SH.AntRockExplode]:CW,[SH.IceExplode2]:OW,[SH.HealYellow]:xW,[SH.ElectricEffect]:PW,[SH.RoboExplode]:LW,[SH.SuccubusLove]:GW,[SH.SuccubusEffect1]:UW,[SH.FallInLoveEffect]:HW,[SH.Accelerate]:WW,[SH.ElfGlowing1]:VW,[SH.ElfMagicCircle1]:zW,[SH.ElfExplodeEffect1]:JW,[SH.ElfBindEffect1]:XW,[SH.AbyssLightning1]:ZW,[SH.AbyssSkillExplosion1]:ij,[SH.JudegmentMarkEffect1]:ej,[SH.UndeadLightningExplosion1]:hj,[SH.FireExplosion1]:oj,[SH.FireExplosion2]:cj,[SH.AladinGenie1]:uj,[SH.DruidVine1]:fj,[SH.CrowExplosion1]:gj,[SH.BladeMasterAfterImage]:wj,[SH.PoisonExplodeEffect]:_j,[SH.BackAttackEffect]:Mj,[SH.HeroAura1Effect]:Ej,[SH.HeroAura2Effect]:Sj,[SH.HeroAura3Effect]:Cj,[SH.HeroAura4Effect]:Oj,[SH.HeroAura5Effect]:xj,[SH.HeroAura6Effect]:Pj,[SH.RaidBuffSkillEffect1]:Gj,[SH.RaidBuffSkillEffect2]:Uj,[SH.RaidBuffSkillEffect3]:Hj,[SH.RaidBuffSkillEffect4]:Wj,[SH.RaidBuffSkillEffect5]:Vj,[SH.BurntEffect1]:qj,[SH.BurnEffect1]:Yj,[SH.FireSpiritExplosion1]:Qj,[SH.FireSpiritPillar1]:tV,[SH.FireSpiritEmber1]:sV,[SH.FireSpiritOrbit1]:nV,[SH.GriffinSpearFlash1]:rV,[SH.MedusaCoilSnake1]:aV,[SH.MedusaSnakeCrawl1]:lV,[SH.MedusaSnakeStuck1]:dV,[SH.NagaFrost1]:pV,[SH.NagaIceSegment1]:mV,[SH.NagaIceSegment2]:vV}
- var Vj=(t=>(t.NormalArrow="NormalArrow",t.EnergyBall="EnergyBall",t.SpeedArrow="SpeedArrow",t.Bullet1="Bullet1",t.OrcSpearmanSpear1="OrcSpearmanSpear1",t.OrcIceMageFire1="OrcIceMageFire1",t.PoisonArcherArrow1="PoisonArcherArrow1",t.FireBirdBall1="FireBirdBall1",t.GreenEagleBall1="GreenEagleBall1",t.BlackMageBall1="BlackMageBall1",t.BlackMageDarkBall1="BlackMageDarkBall1",t.DarkMageBall1="DarkMageBall1",t.DarkMageSkillBall1="DarkMageSkillBall1",t.GreenEnergyBall="GreenEnergyBall",t.YellowEnergyBall="YellowEnergyBall",t.FairyMusicNote="FairyMusicNote",t.GhostBall1="GhostBall1",t.DarkArcherArrow1="DarkArcherArrow1",t.OrcWingBall1="OrcWingBall1",t.OrcAxeBall1="OrcAxeBall1",t.Twist="Twist",t.FlowerBullet="FlowerBullet",t.Rock="Rock",t.DarkHermitMissile="DarkHermitMissile",t.Pearl="Pearl",t.UniArrow="UniArrow",t.PowerArrow="PowerArrow",t.OrcBlizzardMageRain1="OrcBlizzardMageRain1",t.FireMagicBall1="FireMagicBall1",t.FireMageBird1="FireMageBird1",t.BomberSmallBomb1="BomberSmallBomb1",t.BomberBigBomb1="BomberBigBomb1",t.IceFlake="IceFlake",t.PoisonArcherArrowSkill1="PoisonArcherArrowSkill1",t.OrcIceMageFireSkill1="OrcIceMageFireSkill1",t.PilotMissile1="PilotMissile1",t.FireBullet="FireBullet",t.AntRock1="AntRock1",t.SpeedArrow2="SpeedArrow2",t.MoleFire="MoleFire",t.OrcRapterRiderSpear1="OrcRapterRiderSpear1",t.WyvernRiderThrowingKnife1="WyvernRiderThrowingKnife1",t.WyvernRiderThrowingKnifeS1="WyvernRiderThrowingKnifeS1",t.SuccubusBlade1="SuccubusBlade1",t.SuccubusWeapon="SuccubusWeapon",t.DarkChain1="DarkChain1",t.DruidTangle1="DruidTangle1",t.DruidDrill1="DruidDrill1",t.TigerRiderArrow1="TigerRiderArrow1",t.GriffinSpear1="GriffinSpear1",t.GriffinSuperSpear1="GriffinSuperSpear1",t.SteamFire1="SteamFire1",t.SteamMissile1="SteamMissile1",t.SylphidTornado1="SylphidTornado1",t.SylphidShuriken1="SylphidShuriken1",t.AladinCoin1="AladinCoin1",t.BladeWave1="BladeWave1",t.SpinBlade="SpinBlade",t.CrowKnightBullet1="CrowKnightBullet1",t.CrowCompanion1="CrowCompanion1",t.CrowGuidedBall1="CrowGuidedBall1",t.CrowFeatherShot1="CrowFeatherShot1",t.ScorpionPoisonBullet="ScorpionPoisonBullet",t.ScorpionPoisonArea="ScorpionPoisonArea",t.HarpyFeather="HarpyFeather",t.HarpyTornado="HarpyTornado",t.AladinGenieBoomerang="AladinGenieBoomerang",t.GolemStone="GolemStone",t.BerialLightning="BerialLightning",t.BerialLightningArea="BerialLightningArea",t.BerialFire="BerialFire",t.SummonDragon="SummonDragon",t.DKSpear="DKSpear",t))(Vj||{
+ var MV=(t=>(t.NormalArrow="NormalArrow",t.EnergyBall="EnergyBall",t.SpeedArrow="SpeedArrow",t.Bullet1="Bullet1",t.OrcSpearmanSpear1="OrcSpearmanSpear1",t.OrcIceMageFire1="OrcIceMageFire1",t.PoisonArcherArrow1="PoisonArcherArrow1",t.FireBirdBall1="FireBirdBall1",t.GreenEagleBall1="GreenEagleBall1",t.BlackMageBall1="BlackMageBall1",t.BlackMageDarkBall1="BlackMageDarkBall1",t.DarkMageBall1="DarkMageBall1",t.DarkMageSkillBall1="DarkMageSkillBall1",t.GreenEnergyBall="GreenEnergyBall",t.YellowEnergyBall="YellowEnergyBall",t.FairyMusicNote="FairyMusicNote",t.GhostBall1="GhostBall1",t.DarkArcherArrow1="DarkArcherArrow1",t.OrcWingBall1="OrcWingBall1",t.OrcAxeBall1="OrcAxeBall1",t.Twist="Twist",t.FlowerBullet="FlowerBullet",t.Rock="Rock",t.DarkHermitMissile="DarkHermitMissile",t.Pearl="Pearl",t.UniArrow="UniArrow",t.PowerArrow="PowerArrow",t.OrcBlizzardMageRain1="OrcBlizzardMageRain1",t.FireMagicBall1="FireMagicBall1",t.FireMageBird1="FireMageBird1",t.BomberSmallBomb1="BomberSmallBomb1",t.BomberBigBomb1="BomberBigBomb1",t.IceFlake="IceFlake",t.PoisonArcherArrowSkill1="PoisonArcherArrowSkill1",t.OrcIceMageFireSkill1="OrcIceMageFireSkill1",t.PilotMissile1="PilotMissile1",t.FireBullet="FireBullet",t.AntRock1="AntRock1",t.SpeedArrow2="SpeedArrow2",t.MoleFire="MoleFire",t.OrcRapterRiderSpear1="OrcRapterRiderSpear1",t.WyvernRiderThrowingKnife1="WyvernRiderThrowingKnife1",t.WyvernRiderThrowingKnifeS1="WyvernRiderThrowingKnifeS1",t.SuccubusBlade1="SuccubusBlade1",t.SuccubusWeapon="SuccubusWeapon",t.DarkChain1="DarkChain1",t.DruidTangle1="DruidTangle1",t.DruidDrill1="DruidDrill1",t.TigerRiderArrow1="TigerRiderArrow1",t.GriffinSpear1="GriffinSpear1",t.GriffinSuperSpear1="GriffinSuperSpear1",t.FireAttack1="FireAttack1",t.FireTornado1="FireTornado1",t.FireOrb1="FireOrb1",t.MedusaArrow1="MedusaArrow1",t.NagaIceArrow1="NagaIceArrow1",t.HippogriffMissile1="HippogriffMissile1",t.HippogriffSpear1="HippogriffSpear1",t.SteamFire1="SteamFire1",t.SteamMissile1="SteamMissile1",t.SylphidTornado1="SylphidTornado1",t.SylphidShuriken1="SylphidShuriken1",t.AladinCoin1="AladinCoin1",t.BladeWave1="BladeWave1",t.SpinBlade="SpinBlade",t.CrowKnightBullet1="CrowKnightBullet1",t.CrowCompanion1="CrowCompanion1",t.CrowGuidedBall1="CrowGuidedBall1",t.CrowFeatherShot1="CrowFeatherShot1",t.ScorpionPoisonBullet="ScorpionPoisonBullet",t.ScorpionPoisonArea="ScorpionPoisonArea",t.HarpyFeather="HarpyFeather",t.HarpyTornado="HarpyTornado",t.AladinGenieBoomerang="AladinGenieBoomerang",t.GolemStone="GolemStone",t.BerialLightning="BerialLightning",t.BerialLightningArea="BerialLightningArea",t.BerialFire="BerialFire",t.SummonDragon="SummonDragon",t.DKSpear="DKSpear",t))(MV||{
SteamFire1 1 hunks, 2 statements
- constructor(){
- super(...arguments),Yt(this,"missileSpeed",10),Yt(this,"turnRate",.18),Yt(this,"maxAngleY",.54),Yt(this,"maxLifeTime",90),Yt(this,"heading",0)}
Druid1 1 hunks, 2 statements
+ remove(){
+ this.cleanupAllVines(),this.tendrils.length=0,this.cleanupEagles(),super.remove()}
SpriteBattleReadyPopup 2 hunks, 2 statements
+ var t;
- )}
+ ,null==(t=e.body)?void 0:t.reward)}
MineRewardPopup 2 hunks, 2 statements
- if("petPiece"!==s.type)return!1;
+ if("petPiece"!==s.type&&"priestessPiece"!==s.type)return!1;
- case"petPiece":return{
+ case"petPiece":case"priestestPiece":return{
CastleSubMenu 1 hunks, 2 statements
+ ,{
+ kindNum:5,nameKey:"GAME_1700",defaultName:"정령의 성소",descKey:"GAME_1701",defaultDesc:"정령의 고원에서 펫 조각을 추가로 획득할 확률을 높여줍니다.",icon:"Citadel5",popupType:"sanctuary"}
GuildBarrackRowItemRenderer 2 hunks, 2 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarBattleReadyPopup 2 hunks, 2 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarSquadsPopup 2 hunks, 2 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:14}
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTierAssignPopup 2 hunks, 2 statements
- const i=[...jL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
+ const i=[...zL.memberList??[]].sort((t,i)=>i.roleLevel!==t.roleLevel?i.roleLevel-t.roleLevel:(i.wave??0)-(t.wave??0));
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
ObservablePoint 1 hunks, 1 statements
- var t,i,s,e,n,h,r,o,a,c,l,u,d,f,p,g,m,w,v,_,b,y,M,E,A,S,T,C,I,k,O,x,R,P,N,L,D,G,B,U,F,H,$,W,j,V,K,z,q,Y,X,J,Q,Z,tt,it,st,et,nt,ht,rt,ot,at,ct,lt,ut,dt,ft,pt,gt,mt,wt,vt,_t,bt,yt,Mt,Et,At,St,Tt,Ct,It,kt,Ot,xt,Rt,Pt,Nt,Lt,Dt,Gt,Bt,Ut,Ft,Ht,$t,Wt,jt,Vt,Kt,zt=Object.defineProperty,qt=(t,i)=>zt(t,"name",{
+ var t,i,s,e,n,h,r,o,a,c,l,u,d,f,p,g,m,w,v,_,b,M,y,E,A,S,T,C,I,O,k,x,R,P,N,L,D,G,B,U,F,H,$,W,j,V,K,z,q,X,Y,J,Q,Z,tt,it,st,et,nt,ht,rt,ot,at,ct,lt,ut,dt,ft,pt,gt,mt,wt,vt,_t,bt,Mt,yt,Et,At,St,Tt,Ct,It,Ot,kt,xt,Rt,Pt,Nt,Lt,Dt,Gt,Bt,Ut,Ft,Ht,$t,Wt,jt,Vt,Kt,zt,qt=Object.defineProperty,Xt=(t,i)=>qt(t,"name",{
CacheClass 1 hunks, 1 statements
- ...Qi.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1}
+ ...Zi.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1}
ApplicationInitHook 1 hunks, 1 statements
- const i=[...Jr,...this.config.runners??[]];
+ const i=[...Qr,...this.config.runners??[]];
DefaultShader 1 hunks, 1 statements
- name:i,...uc({
+ name:i,...dc({
GpuGraphicsContext 1 hunks, 1 statements
- ..."radial"===i.type?b.defaultRadialOptions:b.defaultLinearOptions,...Ki(i)}
+ ..."radial"===i.type?b.defaultRadialOptions:b.defaultLinearOptions,...zi(i)}
AssetsClass 1 hunks, 1 statements
- ...wn.defaultOptions,resolution:(null==(e=i.data)?void 0:e.resolution)||Nu(t),alphaMode:(null==(n=i.data)?void 0:n.alphaMode)||await gn(),...i.data}
+ ...vn.defaultOptions,resolution:(null==(e=i.data)?void 0:e.resolution)||Lu(t),alphaMode:(null==(n=i.data)?void 0:n.alphaMode)||await mn(),...i.data}
WorkerInstance 1 hunks, 1 statements
- return bd=[..._d,...t],bd}
+ return Md=[...bd,...t],Md}
DOMPipe 1 hunks, 1 statements
- return Nd=Dd(i),[...Nd,...t]}
+ return Ld=Gd(i),[...Ld,...t]}
HTMLTextStyle 1 hunks, 1 statements
- ...Cg.defaultDropShadow,...t}
+ ...Ig.defaultDropShadow,...t}
GlUboSystem 1 hunks, 1 statements
- ...N_,"mat2x2<f32>":"\n        data[offset] = v[0];
+ ...L_,"mat2x2<f32>":"\n        data[offset] = v[0];
FrameLoopManager 1 hunks, 1 statements
- __proto__:null,AbstractBitmapFont:Kg,AbstractRenderer:io,AbstractText:Sp,AbstractTextSystem:Ug,AccessibilitySystem:ph,AlphaMask:Xe,AlphaMaskPipe:Ym,AnimatedSprite:Vf,Application:wo,ApplicationInitHook:ao,Assets:cd,AssetsClass:ad,BLEND_TO_NPM:ya,BREAKING_SPACES:Vp,BREAKING_SPACES_SET:Kp,BREAK_AFTER_CHARS:Yp,BREAK_AFTER_CHARS_SET:Xp,BUFFER_TYPE:qv,BackgroundLoader:So,BackgroundSystem:zw,Batch:Ra,BatchGeometry:Xa,BatchTextureArray:Oa,BatchableGraphics:qc,BatchableHTMLText:vm,BatchableMesh:Wf,BatchableSprite:xg,BatchableText:Pg,Batcher:Ua,BatcherPipe:$m,BigPool:qs,BindGroup:ir,BindGroupSystem:ey,BitmapFont:xM,BitmapFontManager:sm,BlendModePipe:Lw,Bounds:as,BrowserAdapter:sn,Buffer:Ha,BufferImageSource:ts,BufferResource:V_,BufferUsage:Fa,CLEAR:qr,COLLAPSIBLE_SPACES:zp,COLLAPSIBLE_SPACES_SET:qp,Cache:bn,CanvasBatchAdaptor:Lm,CanvasColorMaskPipe:Jm,CanvasContextSystem:uw,CanvasGraphicsAdaptor:Ow,CanvasGraphicsContextSystem:Of,CanvasGraphicsPipe:Rf,CanvasLimitsSystem:fw,CanvasNineSliceSpritePipe:yM,CanvasObserver:Vn,CanvasPool:kp,CanvasPoolClass:Ip,CanvasRenderTargetAdaptor:Nv,CanvasRenderTargetSystem:Dv,CanvasRenderer:Kv,CanvasRendererTextSystem:Hg,CanvasSource:rn,CanvasStencilMaskPipe:nw,CanvasTextGenerator:Sg,CanvasTextMetrics:wg,CanvasTextPipe:Lg,CanvasTextSystem:Wg,CanvasTextureSystem:Bv,CanvasTilingSpritePipe:sp,Circle:ra,Color:Fs,ColorMask:Qe,ColorMaskPipe:Zm,ColorMatrixFilter:rf,CompressedSource:gd,Container:Fe,CustomRenderPipe:gw,DEG_TO_RAD:mi,DOMAdapter:nn,DOMPipe:Bd,DefaultBatcher:Fc,DefaultShader:Gc,DynamicBitmapFont:qg,Ellipse:aa,EventBoundary:Xd,EventEmitter:di,EventSystem:Zd,EventsTicker:Fd,ExtensionType:ti,ExtractSystem:Xw,FederatedContainer:tf,FederatedEvent:zn,FederatedMouseEvent:$d,FederatedPointerEvent:jd,FederatedWheelEvent:Kd,FillGradient:ul,FillPattern:wu,Filter:cr,FilterEffect:te,FilterPipe:df,FilterSystem:_f,FontStylePromiseCache:Sm,GCManagedHash:$c,GCSystem:ov,GL_FORMATS:e_,GL_TARGETS:n_,GL_TYPES:h_,GPUTextureGpuData:sM,GenerateTextureSystem:ev,Geometry:Ka,GlBackBufferSystem:g_,GlBatchAdaptor:Gm,GlBuffer:Xv,GlBufferSystem:Qv,GlColorMaskSystem:w_,GlContextSystem:t_,GlEncoderSystem:__,GlGeometryGpuData:l_,GlGeometrySystem:d_,GlGraphicsAdaptor:jb,GlLimitsSystem:y_,GlMeshAdaptor:Kb,GlProgram:Ph,GlProgramData:q_,GlRenderTarget:E_,GlRenderTargetAdaptor:H_,GlRenderTargetSystem:W_,GlShaderSystem:ub,GlStateSystem:_b,GlStencilSystem:T_,GlTexture:yb,GlTextureSystem:$b,GlUboSystem:U_,GlUniformGroupSystem:mb,GlobalResourceRegistry:js,GlobalUniformSystem:cv,GpuBatchAdaptor:Fm,GpuBlendModesToPixi:$y,GpuBufferData:hy,GpuBufferSystem:oy,GpuColorMaskSystem:uy,GpuDeviceSystem:fy,GpuEncoderSystem:gy,GpuGraphicsAdaptor:rM,GpuGraphicsContext:Tl,GpuLimitsSystem:wy,GpuMeshAdapter:aM,GpuMipmapGenerator:tM,GpuProgram:qh,GpuRenderTarget:Ly,GpuRenderTargetAdaptor:Gy,GpuRenderTargetSystem:Uy,GpuShaderSystem:Hy,GpuStateSystem:jy,GpuStencilModesToPixi:A_,GpuStencilSystem:_y,GpuTextureSystem:nM,GpuUboSystem:Sy,GpuUniformBatchPipe:Iy,Graphics:Uf,GraphicsContext:Pu,GraphicsContextRenderData:Il,GraphicsContextSystem:Ol,GraphicsGpuData:Lf,GraphicsPath:Zl,GraphicsPipe:Gf,HTMLText:Pm,HTMLTextPipe:bm,HTMLTextRenderData:gm,HTMLTextStyle:lm,HTMLTextSystem:xm,HelloSystem:mv,ImageSource:an,InstructionSet:Ie,Loader:Bo,LoaderParserPriority:Sn,MaskEffectManager:ee,MaskEffectManagerClass:se,MaskFilter:Af,Matrix:yi,MeshGeometry:Hf,NEWLINES:Wp,NEWLINES_SET:jp,NEWLINE_MATCH_REGEX:Qp,NEWLINE_SPLIT_REGEX:Jp,NOOP:Wi,NineSliceGeometry:EM,NineSliceSprite:kM,NineSliceSpriteGpuData:SM,NineSliceSpritePipe:CM,ObservablePoint:oi,PI_2:pi,PassthroughFilter:lf,PipelineSystem:Py,PlaneGeometry:_M,Point:vi,Polygon:ua,Pool:Vs,PoolGroupClass:zs,QuadGeometry:fp,RAD_TO_DEG:gi,Rectangle:Li,RenderGroup:Ne,RenderGroupPipe:vw,RenderGroupSystem:Vw,RenderTarget:Mv,RenderTargetSystem:Rv,RenderTexture:Qw,RenderableGCSystem:vv,RendererInitHook:lo,RendererType:sr,ResizePlugin:fo,Resolver:Dn,RoundedRectangle:pa,STENCIL_MODES:Ma,SVGParser:fu,SchedulerSystem:dv,Shader:nr,ShaderStage:$h,ShapePath:Jl,SharedRenderPipes:Iv,SharedSystems:Cv,Sprite:je,SpritePipe:Rw,Spritesheet:Fn,State:or,StencilMask:tn,StencilMaskPipe:rw,SystemRunner:Xr,Text:jg,TextStyle:Cg,Texture:ns,TextureGCSystem:bv,TextureMatrix:es,TexturePool:Re,TexturePoolClass:xe,TextureSource:Qi,TextureStyle:Xi,Ticker:pn,TickerListener:un,TickerPlugin:go,TilingSprite:Ep,TilingSpriteGpuData:_p,TilingSpritePipe:yp,TilingSpriteShader:up,Transform:qf,UNIFORM_TO_ARRAY_SETTERS:fb,UNIFORM_TO_SINGLE_SETTERS:db,UNIFORM_TYPES_MAP:Xh,UNIFORM_TYPES_VALUES:Yh,UPDATE_BLEND:2,UPDATE_COLOR:1,UPDATE_PRIORITY:cn,UPDATE_VISIBLE:4,UboBatch:cy,UboSystem:I_,UniformGroup:Zh,VERSION:ro,VideoSource:wn,ViewContainer:$e,ViewSystem:Tv,ViewableBuffer:_a,WGSL_ALIGN_SIZE_DATA:by,WGSL_TO_STD40_SIZE:k_,WebGLRenderer:ty,WebGPURenderer:mM,WorkerManager:Ku,accessibilityTarget:gh,addBits:Ja,addMaskBounds:Ke,addMaskLocalBounds:ze,addProgramDefines:Eh,appendSVGPath:du,applyMatrix:gp,applyStyleParams:Db,assignWithIgnore:Le,autoDetectRenderer:ho,bgr2rgb:me,bitmapFontCachePlugin:Mo,bitmapFontTextParser:vo,bitmapFontXMLParser:_o,bitmapFontXMLStringParser:bo,blockDataMap:Ky,boundsPool:oe,browserExt:ni,buildAdaptiveBezier:Rl,buildAdaptiveQuadratic:Ll,buildArc:Bl,buildArcTo:Ul,buildArcToSvg:Kl,buildCircle:Yc,buildContextBatches:yl,buildEllipse:Xc,buildLine:sl,buildPixelLine:el,buildPolygon:rl,buildRectangle:ol,buildRoundedRectangle:Jc,buildSimpleUvs:jc,buildTriangle:al,buildUvs:Wc,cacheAsTextureMixin:Ys,cacheTextureArray:To,calculatePathArea:uu,calculateProjection:kv,canUseNewCanvasBlendModes:Xf,canvasUtils:Jf,checkChildrenDidChange:be,checkDataUrl:Uo,checkExtension:Fo,checkForNestedPattern:cu,checkMaxIfStatementsInShader:Ta,childrenHelperMixin:Js,cleanArray:hv,cleanHash:nv,clearList:Dw,closePointEps:Qc,collapseNewlines:ng,collapseSpaces:eg,collectRenderablesMixin:Qs,color32BitToUniform:Pf,colorBit:Ec,colorBitGl:Ac,colorMatrixFilterFrag:ef,colorMatrixFilterWgsl:nf,compareModeToGlCompare:Lb,compileHighShader:lc,compileHighShaderGl:uc,compileHighShaderGlProgram:Mc,compileHighShaderGpuProgram:yc,compileHooks:Za,compileInputs:ic,compileOutputs:hc,compileShader:Y_,convertToList:vn,copySearchParams:Bn,createGlUploadCubeTextureResource:Tb,createGpuUploadCubeTextureResource:Xy,createIdFromString:vh,createStringVariations:Pn,createTexture:Lu,createUboElementsSTD40:O_,createUboElementsWGSL:yy,createUboSyncFunction:R_,createUboSyncFunctionSTD40:G_,createUboSyncFunctionWGSL:Ey,crossOrigin:td,cullingMixin:Hs,curveEps:1e-4,defaultFilterVert:sf,defaultValue:J_,definedProps:Ki,deprecation:$i,detectAvif:Io,detectCompressed:Ld,detectDefaults:Oo,detectMp4:Po,detectOgv:No,detectVideoAlphaMode:gn,detectWebm:Lo,detectWebp:Do,determineCrossOrigin:sd,earcut:zr,effectsMixin:ne,ensureAttributes:i_,ensureIsBuffer:$a,ensurePrecision:Ah,ensureTextOptions:Tp,executeInstructions:mw,extensions:ei,extractAttributesFromGlProgram:eb,extractAttributesFromGpuProgram:Fh,extractFontFamilies:Mm,extractStructAndGroups:Hh,extractSubpaths:lu,extractSvgUrlId:hu,fastCopy:ba,findMixin:he,fontStringFromTextStyle:_g,fragmentGPUTemplate:mc,fragmentGlTemplate:vc,generateArraySyncSTD40:D_,generateArraySyncWGSL:My,generateGpuLayoutGroups:Wh,generateLayoutHash:jh,generateProgram:ab,generateShaderSyncCode:K_,generateTextureBatchBit:Ic,generateTextureBatchBitGl:xc,generateTextureMatrix:wl,generateUniformsSync:pb,getAdjustedBlendModeBlend:Ea,getAttributeInfoFromFormat:Lh,getBatchSamplersUniformGroup:Lc,getBitmapTextLayout:Yg,getCanvasBoundingBox:Lp,getCanvasFillStyle:yg,getCanvasTexture:Av,getCharacterGroups:og,getDefaultUniformValue:Jh,getFastGlobalBoundsMixin:ce,getFontCss:Tm,getFontFamilyName:zo,getGeometryBounds:Wa,getGlTypeFromFormat:o_,getGlobalBounds:le,getGlobalMixin:we,getGlobalRenderableBounds:pf,getLocalBounds:ve,getMaxFragmentPrecision:Mh,getMaxMiterRatio:ku,getMaxTexturesPerBatch:Ia,getOrientationOfPoints:Zc,getPo2TextureFromSource:Gg,getResolutionOfUrl:Nu,getSVGUrl:Cm,getSupportedCompressedTextureFormats:vd,getSupportedGPUCompressedTextureFormats:wd,getSupportedGlCompressedTextureFormats:md,getSupportedTextureFormats:yd,getTemporaryCanvasFromImage:Im,getTestContext:yh,getTextureBatchBindGroup:ma,getUboData:nb,getUniformData:hb,getUrlExtension:Gn,glUploadBufferImageResource:Mb,glUploadCompressedTextureResource:Ab,glUploadImageResource:Cb,glUploadVideoResource:xb,globalUniformsBit:_c,globalUniformsBitGl:bc,gpuUploadBufferImageResource:Vy,gpuUploadCompressedTextureResource:qy,gpuUploadImageResource:Jy,gpuUploadVideoResource:Qy,groupD8:Ri,hasTagMarkup:Fp,hasTagStyles:Up,injectBits:rc,insertVersion:Sh,isBreakAfterChar:sg,isBreakingSpace:tg,isCollapsibleSpace:ig,isMobile:dh,isNewline:Zp,isPow2:Vi,isRenderingToScreen:Ov,isSafari:ym,isSingleItem:Nn,isWebGLSupported:so,isWebGPUSupported:eo,ktxTranscoderUrls:Sd,loadBitmapFont:Eo,loadEnvironmentExtensions:ur,loadFontAsBase64:Em,loadFontCSS:Am,loadImageBitmap:Yu,loadJson:Ho,loadKTX2:xd,loadKTX2onWorker:Od,loadSVGImage:km,loadSvg:Du,loadTextures:Xu,loadTxt:$o,loadVideoTextures:nd,loadWebFont:Xo,localUniformBit:ep,localUniformBitGl:hp,localUniformBitGroup2:np,logProgramError:ob,mapCanvasBlendModesToPixi:aw,mapFormatToGlFormat:Gb,mapFormatToGlInternalFormat:Bb,mapFormatToGlType:Ub,mapGlToVertexFormat:sb,mapType:ib,mapViewDimensionToGlTarget:Fb,mapWebGLBlendModesToPixi:wb,maskFrag:bf,maskVert:yf,maskWgsl:Mf,matrixPool:re,measureHtmlText:mm,measureMixin:Me,measureTaggedText:cg,mipmapScaleModeToGlFilter:Pb,multiplyColors:ge,multiplyHexColors:fe,nextPow2:ji,nonCompressedFormats:_d,normalizeExtensionPriority:si,onRenderMixin:Ee,parseSVGDefinitions:su,parseSVGFloatAttribute:iu,parseSVGPath:na,parseSVGStyle:ou,parseTaggedText:$p,passthroughFrag:of,passthroughWgsl:af,path:xn,preloadVideo:id,removeItems:Xs,removeStructAndGroupDuplicates:Vh,resolveCharacters:Zg,resolveCompressedTextureUrl:Pd,resolveJsonUrl:rd,resolveTextureUrl:hd,resourceToTexture:En,roundPixelsBit:Rc,roundPixelsBitGl:Pc,roundedShapeArc:zl,roundedShapeQuadraticCurve:ql,sayHello:pv,scaleModeToGlFilter:Rb,setPositions:pp,setProgramName:Ih,setUvs:mp,shapeBuilders:vl,sortMixin:Ae,spritesheetAsset:Wn,squaredDistanceToLineSegment:ca,stripVersion:kh,styleAttributes:ru,testImageFormat:Co,testVideoFormat:Ro,textStyleToCSS:em,textureBit:Wm,textureBitGl:jm,textureFrom:An,tilingBit:rp,tilingBitGl:op,toFillStyle:Cu,toLocalGlobalMixin:Te,toStrokeStyle:Iu,tokenize:rg,tokenizeTaggedRuns:ug,transformVertices:Vc,triangulateWithHoles:nl,trimRight:hg,uboSyncFunctionsSTD40:N_,uboSyncFunctionsWGSL:L_,uid:Gi,uniformParsers:x_,unsafeEvalSupported:fr,updateQuadBounds:hs,updateRenderGroupTransform:Uw,updateRenderGroupTransforms:Bw,updateTextBounds:kg,updateTransformAndChildren:Fw,updateTransformBackwards:de,v8_0_0:Ui,v8_3_4:Fi,validFormats:Rd,validateRenderables:$w,vertexGPUTemplate:gc,vertexGlTemplate:wc,warn:Ws,webworkerExt:hi,wordWrap:pg,wordWrapTaggedLines:lg,wrapModeToGlAddress:Nb}
+ __proto__:null,AbstractBitmapFont:zg,AbstractRenderer:so,AbstractText:Tp,AbstractTextSystem:Fg,AccessibilitySystem:gh,AlphaMask:Je,AlphaMaskPipe:Ym,AnimatedSprite:Kf,Application:vo,ApplicationInitHook:co,Assets:ld,AssetsClass:cd,BLEND_TO_NPM:ya,BREAKING_SPACES:Kp,BREAKING_SPACES_SET:zp,BREAK_AFTER_CHARS:Yp,BREAK_AFTER_CHARS_SET:Jp,BUFFER_TYPE:Xv,BackgroundLoader:To,BackgroundSystem:qw,Batch:Pa,BatchGeometry:Ja,BatchTextureArray:xa,BatchableGraphics:Xc,BatchableHTMLText:_m,BatchableMesh:jf,BatchableSprite:Rg,BatchableText:Ng,Batcher:Fa,BatcherPipe:Wm,BigPool:Xs,BindGroup:sr,BindGroupSystem:nM,BitmapFont:Ry,BitmapFontManager:em,BlendModePipe:Dw,Bounds:cs,BrowserAdapter:en,Buffer:$a,BufferImageSource:is,BufferResource:K_,BufferUsage:Ha,CLEAR:Xr,COLLAPSIBLE_SPACES:qp,COLLAPSIBLE_SPACES_SET:Xp,Cache:Mn,CanvasBatchAdaptor:Dm,CanvasColorMaskPipe:Qm,CanvasContextSystem:dw,CanvasGraphicsAdaptor:xw,CanvasGraphicsContextSystem:xf,CanvasGraphicsPipe:Pf,CanvasLimitsSystem:pw,CanvasNineSliceSpritePipe:yy,CanvasObserver:Kn,CanvasPool:kp,CanvasPoolClass:Op,CanvasRenderTargetAdaptor:Lv,CanvasRenderTargetSystem:Gv,CanvasRenderer:zv,CanvasRendererTextSystem:$g,CanvasSource:on,CanvasStencilMaskPipe:hw,CanvasTextGenerator:Tg,CanvasTextMetrics:vg,CanvasTextPipe:Dg,CanvasTextSystem:jg,CanvasTextureSystem:Uv,CanvasTilingSpritePipe:ep,Circle:oa,Color:Hs,ColorMask:Ze,ColorMaskPipe:tw,ColorMatrixFilter:of,CompressedSource:md,Container:He,CustomRenderPipe:mw,DEG_TO_RAD:wi,DOMAdapter:hn,DOMPipe:Ud,DefaultBatcher:Hc,DefaultShader:Bc,DynamicBitmapFont:Xg,Ellipse:ca,EventBoundary:Jd,EventEmitter:fi,EventSystem:tf,EventsTicker:Hd,ExtensionType:ii,ExtractSystem:Jw,FederatedContainer:sf,FederatedEvent:qn,FederatedMouseEvent:Wd,FederatedPointerEvent:Vd,FederatedWheelEvent:zd,FillGradient:dl,FillPattern:vu,Filter:lr,FilterEffect:ie,FilterPipe:ff,FilterSystem:bf,FontStylePromiseCache:Tm,GCManagedHash:Wc,GCSystem:av,GL_FORMATS:n_,GL_TARGETS:h_,GL_TYPES:r_,GPUTextureGpuData:ey,GenerateTextureSystem:nv,Geometry:za,GlBackBufferSystem:m_,GlBatchAdaptor:Bm,GlBuffer:Jv,GlBufferSystem:Zv,GlColorMaskSystem:v_,GlContextSystem:i_,GlEncoderSystem:b_,GlGeometryGpuData:u_,GlGeometrySystem:f_,GlGraphicsAdaptor:Vb,GlLimitsSystem:y_,GlMeshAdaptor:zb,GlProgram:Nh,GlProgramData:X_,GlRenderTarget:A_,GlRenderTargetAdaptor:$_,GlRenderTargetSystem:j_,GlShaderSystem:db,GlStateSystem:bb,GlStencilSystem:C_,GlTexture:yb,GlTextureSystem:Wb,GlUboSystem:F_,GlUniformGroupSystem:wb,GlobalResourceRegistry:Vs,GlobalUniformSystem:lv,GpuBatchAdaptor:Hm,GpuBlendModesToPixi:WM,GpuBufferData:rM,GpuBufferSystem:aM,GpuColorMaskSystem:dM,GpuDeviceSystem:pM,GpuEncoderSystem:mM,GpuGraphicsAdaptor:oy,GpuGraphicsContext:Cl,GpuLimitsSystem:vM,GpuMeshAdapter:cy,GpuMipmapGenerator:iy,GpuProgram:Xh,GpuRenderTarget:DM,GpuRenderTargetAdaptor:BM,GpuRenderTargetSystem:FM,GpuShaderSystem:$M,GpuStateSystem:VM,GpuStencilModesToPixi:S_,GpuStencilSystem:bM,GpuTextureSystem:hy,GpuUboSystem:TM,GpuUniformBatchPipe:OM,Graphics:Ff,GraphicsContext:Nu,GraphicsContextRenderData:Ol,GraphicsContextSystem:xl,GraphicsGpuData:Df,GraphicsPath:tu,GraphicsPipe:Bf,HTMLText:Nm,HTMLTextPipe:Mm,HTMLTextRenderData:mm,HTMLTextStyle:um,HTMLTextSystem:Rm,HelloSystem:wv,ImageSource:cn,InstructionSet:Oe,Loader:Uo,LoaderParserPriority:Tn,MaskEffectManager:ne,MaskEffectManagerClass:ee,MaskFilter:Sf,Matrix:yi,MeshGeometry:$f,NEWLINES:jp,NEWLINES_SET:Vp,NEWLINE_MATCH_REGEX:Zp,NEWLINE_SPLIT_REGEX:Qp,NOOP:ji,NineSliceGeometry:Ay,NineSliceSprite:ky,NineSliceSpriteGpuData:Ty,NineSliceSpritePipe:Iy,ObservablePoint:ai,PI_2:gi,PassthroughFilter:uf,PipelineSystem:NM,PlaneGeometry:by,Point:_i,Polygon:da,Pool:Ks,PoolGroupClass:qs,QuadGeometry:pp,RAD_TO_DEG:mi,Rectangle:Di,RenderGroup:Le,RenderGroupPipe:_w,RenderGroupSystem:Kw,RenderTarget:Ev,RenderTargetSystem:Pv,RenderTexture:Zw,RenderableGCSystem:_v,RendererInitHook:uo,RendererType:er,ResizePlugin:po,Resolver:Gn,RoundedRectangle:ga,STENCIL_MODES:Ea,SVGParser:pu,SchedulerSystem:fv,Shader:hr,ShaderStage:Wh,ShapePath:Ql,SharedRenderPipes:Ov,SharedSystems:Iv,Sprite:Ve,SpritePipe:Pw,Spritesheet:Hn,State:ar,StencilMask:sn,StencilMaskPipe:ow,SystemRunner:Jr,Text:Vg,TextStyle:Ig,Texture:hs,TextureGCSystem:Mv,TextureMatrix:ns,TexturePool:Pe,TexturePoolClass:Re,TextureSource:Zi,TextureStyle:Ji,Ticker:gn,TickerListener:dn,TickerPlugin:mo,TilingSprite:Ap,TilingSpriteGpuData:bp,TilingSpritePipe:yp,TilingSpriteShader:dp,Transform:Xf,UNIFORM_TO_ARRAY_SETTERS:pb,UNIFORM_TO_SINGLE_SETTERS:fb,UNIFORM_TYPES_MAP:Jh,UNIFORM_TYPES_VALUES:Yh,UPDATE_BLEND:2,UPDATE_COLOR:1,UPDATE_PRIORITY:ln,UPDATE_VISIBLE:4,UboBatch:lM,UboSystem:O_,UniformGroup:tr,VERSION:oo,VideoSource:vn,ViewContainer:We,ViewSystem:Cv,ViewableBuffer:ba,WGSL_ALIGN_SIZE_DATA:MM,WGSL_TO_STD40_SIZE:k_,WebGLRenderer:iM,WebGPURenderer:wy,WorkerManager:zu,accessibilityTarget:mh,addBits:Qa,addMaskBounds:ze,addMaskLocalBounds:qe,addProgramDefines:Ah,appendSVGPath:fu,applyMatrix:mp,applyStyleParams:Gb,assignWithIgnore:De,autoDetectRenderer:ro,bgr2rgb:we,bitmapFontCachePlugin:Eo,bitmapFontTextParser:_o,bitmapFontXMLParser:bo,bitmapFontXMLStringParser:Mo,blockDataMap:zM,boundsPool:ae,browserExt:hi,buildAdaptiveBezier:Pl,buildAdaptiveQuadratic:Dl,buildArc:Ul,buildArcTo:Fl,buildArcToSvg:zl,buildCircle:Yc,buildContextBatches:yl,buildEllipse:Jc,buildLine:el,buildPixelLine:nl,buildPolygon:ol,buildRectangle:al,buildRoundedRectangle:Qc,buildSimpleUvs:Vc,buildTriangle:cl,buildUvs:jc,cacheAsTextureMixin:Ys,cacheTextureArray:Co,calculatePathArea:du,calculateProjection:kv,canUseNewCanvasBlendModes:Jf,canvasUtils:Qf,checkChildrenDidChange:Me,checkDataUrl:Fo,checkExtension:Ho,checkForNestedPattern:lu,checkMaxIfStatementsInShader:Ca,childrenHelperMixin:Qs,cleanArray:rv,cleanHash:hv,clearList:Gw,closePointEps:Zc,collapseNewlines:hg,collapseSpaces:ng,collectRenderablesMixin:Zs,color32BitToUniform:Nf,colorBit:Ac,colorBitGl:Sc,colorMatrixFilterFrag:nf,colorMatrixFilterWgsl:hf,compareModeToGlCompare:Db,compileHighShader:uc,compileHighShaderGl:dc,compileHighShaderGlProgram:Ec,compileHighShaderGpuProgram:yc,compileHooks:tc,compileInputs:sc,compileOutputs:rc,compileShader:Y_,convertToList:_n,copySearchParams:Un,createGlUploadCubeTextureResource:Cb,createGpuUploadCubeTextureResource:JM,createIdFromString:_h,createStringVariations:Nn,createTexture:Du,createUboElementsSTD40:x_,createUboElementsWGSL:yM,createUboSyncFunction:P_,createUboSyncFunctionSTD40:B_,createUboSyncFunctionWGSL:AM,crossOrigin:id,cullingMixin:$s,curveEps:1e-4,defaultFilterVert:ef,defaultValue:Q_,definedProps:zi,deprecation:Wi,detectAvif:Oo,detectCompressed:Dd,detectDefaults:xo,detectMp4:No,detectOgv:Lo,detectVideoAlphaMode:mn,detectWebm:Do,detectWebp:Go,determineCrossOrigin:ed,earcut:qr,effectsMixin:he,ensureAttributes:s_,ensureIsBuffer:Wa,ensurePrecision:Sh,ensureTextOptions:Cp,executeInstructions:ww,extensions:ni,extractAttributesFromGlProgram:nb,extractAttributesFromGpuProgram:Hh,extractFontFamilies:Em,extractStructAndGroups:$h,extractSubpaths:uu,extractSvgUrlId:ru,fastCopy:Ma,findMixin:re,fontStringFromTextStyle:bg,fragmentGPUTemplate:wc,fragmentGlTemplate:_c,generateArraySyncSTD40:G_,generateArraySyncWGSL:EM,generateGpuLayoutGroups:jh,generateLayoutHash:Vh,generateProgram:cb,generateShaderSyncCode:z_,generateTextureBatchBit:Oc,generateTextureBatchBitGl:Rc,generateTextureMatrix:vl,generateUniformsSync:gb,getAdjustedBlendModeBlend:Aa,getAttributeInfoFromFormat:Dh,getBatchSamplersUniformGroup:Dc,getBitmapTextLayout:Yg,getCanvasBoundingBox:Dp,getCanvasFillStyle:yg,getCanvasTexture:Sv,getCharacterGroups:ag,getDefaultUniformValue:Qh,getFastGlobalBoundsMixin:le,getFontCss:Cm,getFontFamilyName:qo,getGeometryBounds:ja,getGlTypeFromFormat:a_,getGlobalBounds:ue,getGlobalMixin:ve,getGlobalRenderableBounds:gf,getLocalBounds:_e,getMaxFragmentPrecision:Eh,getMaxMiterRatio:ku,getMaxTexturesPerBatch:Oa,getOrientationOfPoints:tl,getPo2TextureFromSource:Bg,getResolutionOfUrl:Lu,getSVGUrl:Im,getSupportedCompressedTextureFormats:_d,getSupportedGPUCompressedTextureFormats:vd,getSupportedGlCompressedTextureFormats:wd,getSupportedTextureFormats:yd,getTemporaryCanvasFromImage:Om,getTestContext:yh,getTextureBatchBindGroup:wa,getUboData:hb,getUniformData:rb,getUrlExtension:Bn,glUploadBufferImageResource:Eb,glUploadCompressedTextureResource:Sb,glUploadImageResource:Ib,glUploadVideoResource:Rb,globalUniformsBit:bc,globalUniformsBitGl:Mc,gpuUploadBufferImageResource:KM,gpuUploadCompressedTextureResource:XM,gpuUploadImageResource:QM,gpuUploadVideoResource:ZM,groupD8:Pi,hasTagMarkup:Hp,hasTagStyles:Fp,injectBits:oc,insertVersion:Th,isBreakAfterChar:eg,isBreakingSpace:ig,isCollapsibleSpace:sg,isMobile:fh,isNewline:tg,isPow2:Ki,isRenderingToScreen:xv,isSafari:ym,isSingleItem:Ln,isWebGLSupported:eo,isWebGPUSupported:no,ktxTranscoderUrls:Td,loadBitmapFont:Ao,loadEnvironmentExtensions:dr,loadFontAsBase64:Am,loadFontCSS:Sm,loadImageBitmap:Yu,loadJson:$o,loadKTX2:Rd,loadKTX2onWorker:xd,loadSVGImage:km,loadSvg:Gu,loadTextures:Ju,loadTxt:Wo,loadVideoTextures:hd,loadWebFont:Jo,localUniformBit:np,localUniformBitGl:rp,localUniformBitGroup2:hp,logProgramError:ab,mapCanvasBlendModesToPixi:cw,mapFormatToGlFormat:Bb,mapFormatToGlInternalFormat:Ub,mapFormatToGlType:Fb,mapGlToVertexFormat:eb,mapType:sb,mapViewDimensionToGlTarget:Hb,mapWebGLBlendModesToPixi:vb,maskFrag:Mf,maskVert:yf,maskWgsl:Ef,matrixPool:oe,measureHtmlText:wm,measureMixin:Ee,measureTaggedText:lg,mipmapScaleModeToGlFilter:Nb,multiplyColors:me,multiplyHexColors:pe,nextPow2:Vi,nonCompressedFormats:bd,normalizeExtensionPriority:ei,onRenderMixin:Ae,parseSVGDefinitions:eu,parseSVGFloatAttribute:su,parseSVGPath:ha,parseSVGStyle:au,parseTaggedText:Wp,passthroughFrag:af,passthroughWgsl:cf,path:Rn,preloadVideo:sd,removeItems:Js,removeStructAndGroupDuplicates:Kh,resolveCharacters:tm,resolveCompressedTextureUrl:Nd,resolveJsonUrl:od,resolveTextureUrl:rd,resourceToTexture:An,roundPixelsBit:Pc,roundPixelsBitGl:Nc,roundedShapeArc:ql,roundedShapeQuadraticCurve:Xl,sayHello:gv,scaleModeToGlFilter:Pb,setPositions:gp,setProgramName:Oh,setUvs:wp,shapeBuilders:_l,sortMixin:Se,spritesheetAsset:jn,squaredDistanceToLineSegment:la,stripVersion:kh,styleAttributes:ou,testImageFormat:Io,testVideoFormat:Po,textStyleToCSS:nm,textureBit:jm,textureBitGl:Vm,textureFrom:Sn,tilingBit:op,tilingBitGl:ap,toFillStyle:Iu,toLocalGlobalMixin:Ce,toStrokeStyle:Ou,tokenize:og,tokenizeTaggedRuns:dg,transformVertices:Kc,triangulateWithHoles:hl,trimRight:rg,uboSyncFunctionsSTD40:L_,uboSyncFunctionsWGSL:D_,uid:Bi,uniformParsers:R_,unsafeEvalSupported:pr,updateQuadBounds:rs,updateRenderGroupTransform:Fw,updateRenderGroupTransforms:Uw,updateTextBounds:kg,updateTransformAndChildren:Hw,updateTransformBackwards:fe,v8_0_0:Fi,v8_3_4:Hi,validFormats:Pd,validateRenderables:Ww,vertexGPUTemplate:mc,vertexGlTemplate:vc,warn:js,webworkerExt:ri,wordWrap:gg,wordWrapTaggedLines:ug,wrapModeToGlAddress:Lb}
VersionManager 1 hunks, 1 statements
- qt(YA,"VersionManager"),Yt(YA,"gameId","ef2"),Yt(YA,"appVersion","1.14.45");
+ Xt(JA,"VersionManager"),Yt(JA,"gameId","ef2"),Yt(JA,"appVersion","1.14.67");
EkkorrGame 1 hunks, 1 statements
- await iS.generateTexture("UI_Ekkorr",t,!0)}
+ await eS.generateTexture("UI_Ekkorr",t,!0),await eS.generateTexture("UI_Ekkorr2",t,!0)}
PetDataManager 1 hunks, 1 statements
- ),ux=(t=>(t.ElfTown5="ElfTown5",t.NWolf="NWolf",t.HorseKnight1="HorseKnight1",t.SkeletonX1="SkeletonX1",t.SkeletonMan1="SkeletonMan1",t.SkeletonMan2="SkeletonMan2",t.SkeletonWarrior1="SkeletonWarrior1",t.GreatHammer1="GreatHammer1",t.ElfArcher1="ElfArcher1",t.HighArcher1="HighArcher1",t.FootMan1="FootMan1",t.Gunner1="Gunner1",t.ElfWarrior1="ElfWarrior1",t.ElfSwordMan1="ElfSwordMan1",t.OrcFighter1="OrcFighter1",t.OrcSpearMan1="OrcSpearMan1",t.OrcHammer1="OrcHammer1",t.OrcHunter1="OrcHunter1",t.OrcIceMage1="OrcIceMage1",t.HeavyWarrior1="HeavyWarrior1",t.HammerKnight1="HammerKnight1",t.PoisonArcher1="PoisonArcher1",t.FireBird1="FireBird1",t.GreenEagle1="GreenEagle1",t.WindMage1="WindMage1",t.OrcFlower="OrcFlower",t.BlackMage1="BlackMage1",t.DarkMage1="DarkMage1",t.Priest1="Priest1",t.Fairy1="Fairy1",t.Ghost1="Ghost1",t.DarkArcher1="DarkArcher1",t.OrcWing1="OrcWing1",t.OrcAxe1="OrcAxe1",t.BigDrumer1="BigDrumer1",t.OrcWolfRider1="OrcWolfRider1",t.OrcBigFoot1="OrcBigFoot1",t.OrcBlizzardMage1="OrcBlizzardMage1",t.FlowerSoldier1="FlowerSoldier1",t.FlowerSoldier2="FlowerSoldier2",t.KingSlime="KingSlime",t.SlimeBlue="SlimeBlue",t.SlimeRed="SlimeRed",t.SlimeYellow="SlimeYellow",t.HammerMole="HammerMole",t.MoleSoldier1="MoleSoldier1",t.MoleSoldier2="MoleSoldier2",t.DarkHermit="DarkHermit",t.Crab="Crab",t.StarFish="StarFish",t.Unicorn1="Unicorn1",t.IceWolf="IceWolf",t.GoldGoblin="GoldGoblin",t.AdsGoblin="AdsGoblin",t.DeathKnight1="DeathKnight1",t.Golem1="Golem1",t.GreatMage1="GreatMage1",t.Ant1="Ant1",t.WolfWarrior1="WolfWarrior1",t.Artillery1="Artillery1",t.Bomber1="Bomber1",t.DeathHand1="DeathHand1",t.SSlime1="SSlime1",t.SSlime2="SSlime2",t.SSlime3="SSlime3",t.OrcIcePhantom1="OrcIcePhantom1",t.Pilot1="Pilot1",t.Spider1="Spider1",t.Spider2="Spider2",t.Boar1="Boar1",t.Boar2="Boar2",t.RoboBomb1="RoboBomb1",t.RoboBomb2="RoboBomb2",t.Frog1="Frog1",t.Frog2="Frog2",t.OrcRapterRider1="OrcRapterRider1",t.WyvernRider1="WyvernRider1",t.DarkNinja1="DarkNinja1",t.Succubus1="Succubus1",t.Druid1="Druid1",t.TigerRider1="TigerRider1",t.GriffinRider1="GriffinRider1",t.SteamPunk1="SteamPunk1",t.Castle0="Castle0",t.Castle1="Castle1",t.Castle2="Castle2",t.WingKnight1="WingKnight1",t.Abyss1="Abyss1",t.Sylphid1="Sylphid1",t.Aladin1="Aladin1",t.Druid2="Druid2",t.BladeMaster1="BladeMaster1",t.CrowKnight1="CrowKnight1",t.Succubus2="Succubus2",t.ScorpionKing="ScorpionKing",t.HarpyKing="HarpyKing",t.GolemKing="GolemKing",t.BerialKing="BerialKing",t.DragonKnight="DragonKnight",t))(ux||{
+ ),fx=(t=>(t.ElfTown5="ElfTown5",t.NWolf="NWolf",t.HorseKnight1="HorseKnight1",t.SkeletonX1="SkeletonX1",t.SkeletonMan1="SkeletonMan1",t.SkeletonMan2="SkeletonMan2",t.SkeletonWarrior1="SkeletonWarrior1",t.GreatHammer1="GreatHammer1",t.ElfArcher1="ElfArcher1",t.HighArcher1="HighArcher1",t.FootMan1="FootMan1",t.Gunner1="Gunner1",t.ElfWarrior1="ElfWarrior1",t.ElfSwordMan1="ElfSwordMan1",t.OrcFighter1="OrcFighter1",t.OrcSpearMan1="OrcSpearMan1",t.OrcHammer1="OrcHammer1",t.OrcHunter1="OrcHunter1",t.OrcIceMage1="OrcIceMage1",t.HeavyWarrior1="HeavyWarrior1",t.HammerKnight1="HammerKnight1",t.PoisonArcher1="PoisonArcher1",t.FireBird1="FireBird1",t.GreenEagle1="GreenEagle1",t.WindMage1="WindMage1",t.OrcFlower="OrcFlower",t.BlackMage1="BlackMage1",t.DarkMage1="DarkMage1",t.Priest1="Priest1",t.Fairy1="Fairy1",t.Ghost1="Ghost1",t.DarkArcher1="DarkArcher1",t.OrcWing1="OrcWing1",t.OrcAxe1="OrcAxe1",t.BigDrumer1="BigDrumer1",t.OrcWolfRider1="OrcWolfRider1",t.OrcBigFoot1="OrcBigFoot1",t.OrcBlizzardMage1="OrcBlizzardMage1",t.FlowerSoldier1="FlowerSoldier1",t.FlowerSoldier2="FlowerSoldier2",t.KingSlime="KingSlime",t.SlimeBlue="SlimeBlue",t.SlimeRed="SlimeRed",t.SlimeYellow="SlimeYellow",t.HammerMole="HammerMole",t.MoleSoldier1="MoleSoldier1",t.MoleSoldier2="MoleSoldier2",t.DarkHermit="DarkHermit",t.Crab="Crab",t.StarFish="StarFish",t.Unicorn1="Unicorn1",t.IceWolf="IceWolf",t.GoldGoblin="GoldGoblin",t.AdsGoblin="AdsGoblin",t.DeathKnight1="DeathKnight1",t.Golem1="Golem1",t.GreatMage1="GreatMage1",t.Ant1="Ant1",t.WolfWarrior1="WolfWarrior1",t.Artillery1="Artillery1",t.Bomber1="Bomber1",t.DeathHand1="DeathHand1",t.SSlime1="SSlime1",t.SSlime2="SSlime2",t.SSlime3="SSlime3",t.OrcIcePhantom1="OrcIcePhantom1",t.Pilot1="Pilot1",t.Spider1="Spider1",t.Spider2="Spider2",t.Boar1="Boar1",t.Boar2="Boar2",t.RoboBomb1="RoboBomb1",t.RoboBomb2="RoboBomb2",t.Frog1="Frog1",t.Frog2="Frog2",t.OrcRapterRider1="OrcRapterRider1",t.WyvernRider1="WyvernRider1",t.DarkNinja1="DarkNinja1",t.Succubus1="Succubus1",t.Druid1="Druid1",t.TigerRider1="TigerRider1",t.GriffinRider1="GriffinRider1",t.SteamPunk1="SteamPunk1",t.Castle0="Castle0",t.Castle1="Castle1",t.Castle2="Castle2",t.WingKnight1="WingKnight1",t.Abyss1="Abyss1",t.Sylphid1="Sylphid1",t.Aladin1="Aladin1",t.Druid2="Druid2",t.BladeMaster1="BladeMaster1",t.CrowKnight1="CrowKnight1",t.Succubus2="Succubus2",t.FireSpirit1="FireSpirit1",t.Naga1="Naga1",t.Medusa1="Medusa1",t.Hippogriff1="Hippogriff1",t.ScorpionKing="ScorpionKing",t.HarpyKing="HarpyKing",t.GolemKing="GolemKing",t.BerialKing="BerialKing",t.DragonKnight="DragonKnight",t))(fx||{
UnitBookVO 1 hunks, 1 statements
- Yt(this,"kindNum",0),Yt(this,"className",ux.ElfTown5),Yt(this,"name",""),Yt(this,"tribe",0),Yt(this,"grade",0),Yt(this,"evolKindNum",0),Yt(this,"dmgType",ax.PHYSICAL),Yt(this,"isAir",!1),Yt(this,"unitType",rx.MELEE),Yt(this,"numBlock",0),Yt(this,"atkDmg",0),Yt(this,"def",0),Yt(this,"phyDef",0),Yt(this,"magDef",0),Yt(this,"hp",0),Yt(this,"atkSpd",0),Yt(this,"moveSpd",0),Yt(this,"atkRange",0),Yt(this,"magicShield",0),Yt(this,"physicalShield",0),Yt(this,"numRevive",0),Yt(this,"reviveTime",0),Yt(this,"recovery",0),Yt(this,"level",0),Yt(this,"enhance",0),Yt(this,"id",99999),Yt(this,"sex",lx.MALE),Yt(this,"detect",!1),Yt(this,"cloaking",!1),Yt(this,"canPurchase",!1),Yt(this,"honor",0),Yt(this,"base",0),Yt(this,"evolStage",0),Yt(this,"nAtk",""),Yt(this,"sAtk",""),Yt(this,"goldBuffIds",[]),Yt(this,"goldBuffValues",[]),Yt(this,"uniqueSkill",0),Yt(this,"stunImmune",!1),Yt(this,"freezeImmune",!1),Yt(this,"blowImmune",!1),Yt(this,"knockImmune",!1),Yt(this,"weight",1),Yt(this,"raidCc",[]),Yt(this,"maxTrans",0),Yt(this,"transMaterials",[[],[],[]])}
+ Yt(this,"kindNum",0),Yt(this,"className",fx.ElfTown5),Yt(this,"name",""),Yt(this,"tribe",0),Yt(this,"grade",0),Yt(this,"evolKindNum",0),Yt(this,"dmgType",lx.PHYSICAL),Yt(this,"isAir",!1),Yt(this,"unitType",ax.MELEE),Yt(this,"numBlock",0),Yt(this,"atkDmg",0),Yt(this,"def",0),Yt(this,"phyDef",0),Yt(this,"magDef",0),Yt(this,"hp",0),Yt(this,"atkSpd",0),Yt(this,"moveSpd",0),Yt(this,"atkRange",0),Yt(this,"magicShield",0),Yt(this,"physicalShield",0),Yt(this,"numRevive",0),Yt(this,"reviveTime",0),Yt(this,"recovery",0),Yt(this,"level",0),Yt(this,"enhance",0),Yt(this,"id",99999),Yt(this,"sex",dx.MALE),Yt(this,"detect",!1),Yt(this,"cloaking",!1),Yt(this,"canPurchase",!1),Yt(this,"honor",0),Yt(this,"base",0),Yt(this,"evolStage",0),Yt(this,"nAtk",""),Yt(this,"sAtk",""),Yt(this,"goldBuffIds",[]),Yt(this,"goldBuffValues",[]),Yt(this,"uniqueSkill",0),Yt(this,"uniqueSkill2",0),Yt(this,"stunImmune",!1),Yt(this,"freezeImmune",!1),Yt(this,"blowImmune",!1),Yt(this,"knockImmune",!1),Yt(this,"weight",1),Yt(this,"raidCc",[]),Yt(this,"maxTrans",0),Yt(this,"transMaterials",[[],[],[]])}
TreasureBuffAccessor 1 hunks, 1 statements
- ),DR=(t=>(t.MonsterGold="monstergold",t.WaveClearGold="wavecleargold",t.QuestGoldGain="questgoldgain",t.QuestOpenGold="questopengold",t.QuestUpgradeGold="questupgradegold",t.UnitUpgradeGold="unitupgradegold",t.QuestCompleteTime="questcompletetime",t.GameSpeed="gamespeed",t.OfflineSpeed="offlinespeed",t.OfflineMax="offlinemax",t.ElfSecret="elfsecret",t.GodBless="godbless",t.Retreat="retreat",t.HumanSecret="humansecret",t.UndeadSecret="undeadsecret",t.OrcSecret="orcsecret",t.WaveCall="wavecall",t.DoubleWave="doublewave",t.MaxLv="maxlv",t.PlusLv="pluslv",t.PactOfLife="pactoflife",t.PackOfWild="packofwild",t.CastleLevelUp="castlelevelup",t.Medal="medal",t.Core="core",t.StartWave="startwave",t.QuestMaxLv="questmaxlv",t))(DR||{
+ ),UR=(t=>(t.MonsterGold="monstergold",t.WaveClearGold="wavecleargold",t.QuestGoldGain="questgoldgain",t.QuestOpenGold="questopengold",t.QuestUpgradeGold="questupgradegold",t.UnitUpgradeGold="unitupgradegold",t.QuestCompleteTime="questcompletetime",t.GameSpeed="gamespeed",t.OfflineSpeed="offlinespeed",t.OfflineMax="offlinemax",t.ElfSecret="elfsecret",t.AncientForestLegend="ancientforestlegend",t.GodBless="godbless",t.Retreat="retreat",t.HumanSecret="humansecret",t.UndeadSecret="undeadsecret",t.OrcSecret="orcsecret",t.WaveCall="wavecall",t.DoubleWave="doublewave",t.MaxLv="maxlv",t.PlusLv="pluslv",t.DawnChargePreserve="dawnchargepreserve",t.PactOfLife="pactoflife",t.PackOfWild="packofwild",t.CastleLevelUp="castlelevelup",t.Medal="medal",t.Core="core",t.StartWave="startwave",t.QuestMaxLv="questmaxlv",t))(UR||{
BuffManager 1 hunks, 1 statements
- return"pluslv"===i&&(s+=NR.getSylphidPlusLvContribution(),s+=NR.getSnorkOwnedPlusLvContribution()),"maxlv"===i&&(s+=NR.getGolemMaxLvContribution(),s+=NR.getBokbokMaxLvContribution()),"core"===i&&(s+=NR.getFinnyCoreContribution(),s+=NR.getUnipetCoreContribution()),"medal"===i&&(s+=NR.getWinkyOwnedMedalBuffContribution()),"wavecall"===i&&(s+=NR.getOwnedWaveCallContribution()),s}
+ return"pluslv"===i&&(s+=GR.getSylphidPlusLvContribution(),s+=GR.getSnorkOwnedPlusLvContribution()),"pactoflife"===i&&(s+=GR.getDruidOwnedPactLevelContribution()),"packofwild"===i&&(s+=GR.getBladeMasterOwnedPackLevelContribution()),i===Lx.CallOfDawn&&(s+=GR.getSuccubusOwnedCallOfDawnContribution()),"maxlv"===i&&(s+=GR.getGolemMaxLvContribution(),s+=GR.getBokbokMaxLvContribution()),"core"===i&&(s+=GR.getFinnyCoreContribution(),s+=GR.getUnipetCoreContribution()),"medal"===i&&(s+=GR.getWinkyOwnedMedalBuffContribution()),"wavecall"===i&&(s+=GR.getOwnedWaveCallContribution()),s}
EventDataManager 1 hunks, 1 statements
- s.type=4,s.id=i.id,s.startTime=i.startTime,s.endTime=i.endTime,s.seasonId=i.seasonId,s.petKindNums=i.petKindNums,this.objList[s.type]||(this.objList[s.type]=[]),this.objList[s.type].push(s),this.isValidEvent(4)}
+ s.type=4,s.id=i.id,s.startTime=i.startTime,s.endTime=i.endTime,s.seasonId=i.seasonId,s.petKindNums=i.petKindNums,s.priestessKindNums=i.priestessKindNums,this.objList[s.type]||(this.objList[s.type]=[]),this.objList[s.type].push(s),this.isValidEvent(4)}
EventVO 1 hunks, 1 statements
- Yt(this,"type",-1),Yt(this,"id",0),Yt(this,"startTime",""),Yt(this,"endTime",""),Yt(this,"day",""),Yt(this,"divide",1),Yt(this,"startHour",0),Yt(this,"endHour",0),Yt(this,"max",0),Yt(this,"multi",0),Yt(this,"userCount",0),Yt(this,"rewards",[]),Yt(this,"date",0),Yt(this,"amounts",[]),Yt(this,"rewardType",""),Yt(this,"userAmount",0),Yt(this,"subType",""),Yt(this,"seasonId",0),Yt(this,"petKindNums",[])}
+ Yt(this,"type",-1),Yt(this,"id",0),Yt(this,"startTime",""),Yt(this,"endTime",""),Yt(this,"day",""),Yt(this,"divide",1),Yt(this,"startHour",0),Yt(this,"endHour",0),Yt(this,"max",0),Yt(this,"multi",0),Yt(this,"userCount",0),Yt(this,"rewards",[]),Yt(this,"date",0),Yt(this,"amounts",[]),Yt(this,"rewardType",""),Yt(this,"userAmount",0),Yt(this,"subType",""),Yt(this,"seasonId",0),Yt(this,"petKindNums",[]),Yt(this,"priestessKindNums",[])}
MineDataManager 1 hunks, 1 statements
- Yt(this,"bookList",[]),Yt(this,"chestRewardList",[]),Yt(this,"bookMap",new Map),Yt(this,"chestRewardMap",new Map),Yt(this,"maxLevel",0),Yt(this,"status",new lB),Yt(this,"instance",null),Yt(this,"revealedChests",[]),Yt(this,"discoveredBoxes",[]),Yt(this,"isStatusLoaded",!1),Yt(this,"currentSeasonId",0)}
+ Yt(this,"bookList",[]),Yt(this,"chestRewardList",[]),Yt(this,"bookMap",new Map),Yt(this,"chestRewardMap",new Map),Yt(this,"maxLevel",0),Yt(this,"status",new fB),Yt(this,"instance",null),Yt(this,"revealedChests",[]),Yt(this,"discoveredBoxes",[]),Yt(this,"isStatusLoaded",!1),Yt(this,"currentSeasonId",0),Yt(this,"mine4XEnabled",!1)}
BackgroundLayer 1 hunks, 1 statements
- t?(this.fogFilter||(this.fogFilter=new rf,this.fogFilter.saturate(-.35,!1),this.fogFilter.brightness(.92,!0)),this.bg.filters=[this.fogFilter],this.fogOverlay?(this.addChild(this.fogOverlay),this.fogOverlay.visible=!0):(this.fogOverlay=(new Uf).rect(0,0,640,640).fill({
+ t?(this.fogFilter||(this.fogFilter=new of,this.fogFilter.saturate(-.35,!1),this.fogFilter.brightness(.92,!0)),this.bg.filters=[this.fogFilter],this.fogOverlay?(this.addChild(this.fogOverlay),this.fogOverlay.visible=!0):(this.fogOverlay=(new Ff).rect(0,0,640,640).fill({
GameLayer 1 hunks, 1 statements
- super(),Yt(this,"titleBackground",null),Yt(this,"nightOverlay"),Yt(this,"colorFilter",new rf),t._instance=this,window.gameFx={
+ super(),Yt(this,"titleBackground",null),Yt(this,"nightOverlay"),Yt(this,"colorFilter",new of),t._instance=this,window.gameFx={
AutoTogglePill 1 hunks, 1 statements
- ...yL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
+ ...AL.DEFAULT_FONT_OPTION_15,fontSize:t.FONT_SIZE,lineHeight:t.PILL_H}
BaseEffect 1 hunks, 1 statements
- var yH=(t=>(t.MagicalHitEffect="MagicalHitEffect",t.PhysicalHitEffect="PhysicalHitEffect",t.CriticalEffect="CriticalEffect",t.MissEffect="MissEffect",t.BlockEffect="BlockEffect",t.EvadeEffect="EvadeEffect",t.AkEffect="AkEffect",t.HukEffect="HukEffect",t.PakEffect="PakEffect",t.YapEffect="YapEffect",t.StunImmuneEffect="StunImmuneEffect",t.FreezeImmuneEffect="FreezeImmuneEffect",t.KnockbackImmuneEffect="KnockbackImmuneEffect",t.MagicalImmuneEffect="MagicalImmuneEffect",t.PhysicalImmuneEffect="PhysicalImmuneEffect",t.HumanSkillEffect="HumanSkillEffect",t.ElfSkillEffect="ElfSkillEffect",t.UndeadSkillEffect="UndeadSkillEffect",t.OrcSkillEffect="OrcSkillEffect",t.CurseEffect="CurseEffect",t.PowerShieldEffect="PowerShieldEffect",t.PhysicalShieldEffect="PhysicalShieldEffect",t.MagicalShieldEffect="MagicalShieldEffect",t.SilenceEffect="SilenceEffect",t.FreezeEffectL="FreezeEffectL",t.FreezeEffectM="FreezeEffectM",t.FreezeEffectS="FreezeEffectS",t.StunEffect="StunEffect",t.PoisonGreenEffect="PoisonGreenEffect",t.DarkArcherSkillEffect1="DarkArcherSkillEffect1",t.OrcIceExplodeEffect="OrcIceExplodeEffect",t.DeathHandSkillEffect1="DeathHandSkillEffect1",t.BomberBigBombExplode1="BomberBigBombExplode1",t.BomberSmallBombExplode1="BomberSmallBombExplode1",t.BlackMageBallExplode1="BlackMageBallExplode1",t.OrcHunterEvadeBuff="OrcHunterEvadeBuff",t.AggroEffect="AggroEffect",t.PriestLightEffect="PriestLightEffect",t.PriestStartEffect="PriestStartEffect",t.PriestShieldEffect="PriestShieldEffect",t.FairyWingEffect="FairyWingEffect",t.BindingEffect="BindingEffect",t.RockExplode="RockExplode",t.Smoke="Smoke",t.EvolEffect="EvolEffect",t.EvolEffect2="EvolEffect2",t.CastleFire1="CastleFire1",t.CastleFire2="CastleFire2",t.StoneEffect1="StoneEffect1",t.FireBallExplode="FireBallExplode",t.PilotMissileSmoke1="PilotMissileSmoke1",t.FireExplode="FireExplode",t.AntRockExplode="AntRockExplode",t.IceExplode2="IceExplode2",t.HealYellow="HealYellow",t.ElectricEffect="ElectricEffect",t.RoboExplode="RoboExplode",t.SuccubusLove="SuccubusLove",t.SuccubusEffect1="SuccubusEffect1",t.FallInLoveEffect="FallInLoveEffect",t.Accelerate="Accelerate",t.ElfGlowing1="ElfGlowing1",t.ElfMagicCircle1="ElfMagicCircle1",t.ElfExplodeEffect1="ElfExplodeEffect1",t.ElfBindEffect1="ElfBindEffect1",t.AbyssLightning1="AbyssLightning1",t.AbyssSkillExplosion1="AbyssSkillExplosion1",t.JudegmentMarkEffect1="JudegmentMarkEffect1",t.UndeadLightningExplosion1="UndeadLightningExplosion1",t.FireExplosion1="FireExplosion1",t.FireExplosion2="FireExplosion2",t.AladinGenie1="AladinGenie1",t.DruidVine1="DruidVine1",t.CrowExplosion1="CrowExplosion1",t.BladeMasterAfterImage="BladeMasterAfterImage",t.PoisonExplodeEffect="PoisonExplodeEffect",t.BackAttackEffect="BackAttackEffect",t.HeroAura1Effect="HeroAura1Effect",t.HeroAura2Effect="HeroAura2Effect",t.HeroAura3Effect="HeroAura3Effect",t.HeroAura4Effect="HeroAura4Effect",t.HeroAura5Effect="HeroAura5Effect",t.HeroAura6Effect="HeroAura6Effect",t.RaidBuffSkillEffect1="RaidBuffSkillEffect1",t.RaidBuffSkillEffect2="RaidBuffSkillEffect2",t.RaidBuffSkillEffect3="RaidBuffSkillEffect3",t.RaidBuffSkillEffect4="RaidBuffSkillEffect4",t.RaidBuffSkillEffect5="RaidBuffSkillEffect5",t))(yH||{
+ var SH=(t=>(t.MagicalHitEffect="MagicalHitEffect",t.PhysicalHitEffect="PhysicalHitEffect",t.CriticalEffect="CriticalEffect",t.MissEffect="MissEffect",t.BlockEffect="BlockEffect",t.EvadeEffect="EvadeEffect",t.AkEffect="AkEffect",t.HukEffect="HukEffect",t.PakEffect="PakEffect",t.YapEffect="YapEffect",t.StunImmuneEffect="StunImmuneEffect",t.FreezeImmuneEffect="FreezeImmuneEffect",t.KnockbackImmuneEffect="KnockbackImmuneEffect",t.MagicalImmuneEffect="MagicalImmuneEffect",t.PhysicalImmuneEffect="PhysicalImmuneEffect",t.HumanSkillEffect="HumanSkillEffect",t.ElfSkillEffect="ElfSkillEffect",t.UndeadSkillEffect="UndeadSkillEffect",t.OrcSkillEffect="OrcSkillEffect",t.CurseEffect="CurseEffect",t.PowerShieldEffect="PowerShieldEffect",t.PhysicalShieldEffect="PhysicalShieldEffect",t.MagicalShieldEffect="MagicalShieldEffect",t.SilenceEffect="SilenceEffect",t.FreezeEffectL="FreezeEffectL",t.FreezeEffectM="FreezeEffectM",t.FreezeEffectS="FreezeEffectS",t.StunEffect="StunEffect",t.PoisonGreenEffect="PoisonGreenEffect",t.DarkArcherSkillEffect1="DarkArcherSkillEffect1",t.OrcIceExplodeEffect="OrcIceExplodeEffect",t.DeathHandSkillEffect1="DeathHandSkillEffect1",t.BomberBigBombExplode1="BomberBigBombExplode1",t.BomberSmallBombExplode1="BomberSmallBombExplode1",t.BlackMageBallExplode1="BlackMageBallExplode1",t.OrcHunterEvadeBuff="OrcHunterEvadeBuff",t.AggroEffect="AggroEffect",t.PriestLightEffect="PriestLightEffect",t.PriestStartEffect="PriestStartEffect",t.PriestShieldEffect="PriestShieldEffect",t.FairyWingEffect="FairyWingEffect",t.BindingEffect="BindingEffect",t.RockExplode="RockExplode",t.Smoke="Smoke",t.EvolEffect="EvolEffect",t.EvolEffect2="EvolEffect2",t.CastleFire1="CastleFire1",t.CastleFire2="CastleFire2",t.StoneEffect1="StoneEffect1",t.FireBallExplode="FireBallExplode",t.PilotMissileSmoke1="PilotMissileSmoke1",t.FireExplode="FireExplode",t.AntRockExplode="AntRockExplode",t.IceExplode2="IceExplode2",t.HealYellow="HealYellow",t.ElectricEffect="ElectricEffect",t.RoboExplode="RoboExplode",t.SuccubusLove="SuccubusLove",t.SuccubusEffect1="SuccubusEffect1",t.FallInLoveEffect="FallInLoveEffect",t.Accelerate="Accelerate",t.ElfGlowing1="ElfGlowing1",t.ElfMagicCircle1="ElfMagicCircle1",t.ElfExplodeEffect1="ElfExplodeEffect1",t.ElfBindEffect1="ElfBindEffect1",t.AbyssLightning1="AbyssLightning1",t.AbyssSkillExplosion1="AbyssSkillExplosion1",t.JudegmentMarkEffect1="JudegmentMarkEffect1",t.UndeadLightningExplosion1="UndeadLightningExplosion1",t.FireExplosion1="FireExplosion1",t.FireExplosion2="FireExplosion2",t.AladinGenie1="AladinGenie1",t.DruidVine1="DruidVine1",t.CrowExplosion1="CrowExplosion1",t.BladeMasterAfterImage="BladeMasterAfterImage",t.PoisonExplodeEffect="PoisonExplodeEffect",t.BackAttackEffect="BackAttackEffect",t.HeroAura1Effect="HeroAura1Effect",t.HeroAura2Effect="HeroAura2Effect",t.HeroAura3Effect="HeroAura3Effect",t.HeroAura4Effect="HeroAura4Effect",t.HeroAura5Effect="HeroAura5Effect",t.HeroAura6Effect="HeroAura6Effect",t.RaidBuffSkillEffect1="RaidBuffSkillEffect1",t.RaidBuffSkillEffect2="RaidBuffSkillEffect2",t.RaidBuffSkillEffect3="RaidBuffSkillEffect3",t.RaidBuffSkillEffect4="RaidBuffSkillEffect4",t.RaidBuffSkillEffect5="RaidBuffSkillEffect5",t.BurntEffect1="BurntEffect1",t.BurnEffect1="BurnEffect1",t.FireSpiritExplosion1="FireSpiritExplosion1",t.FireSpiritPillar1="FireSpiritPillar1",t.FireSpiritEmber1="FireSpiritEmber1",t.FireSpiritOrbit1="FireSpiritOrbit1",t.GriffinSpearFlash1="GriffinSpearFlash1",t.MedusaCoilSnake1="MedusaCoilSnake1",t.MedusaSnakeCrawl1="MedusaSnakeCrawl1",t.MedusaSnakeStuck1="MedusaSnakeStuck1",t.NagaFrost1="NagaFrost1",t.NagaIceSegment1="NagaIceSegment1",t.NagaIceSegment2="NagaIceSegment2",t))(SH||{
WeaponFactory 1 hunks, 1 statements
- [Vj.NormalArrow]:cV,[Vj.EnergyBall]:iV,[Vj.SpeedArrow]:fV,[Vj.Bullet1]:_V,[Vj.OrcSpearmanSpear1]:SV,[Vj.OrcIceMageFire1]:EV,[Vj.PoisonArcherArrow1]:uV,[Vj.GreenEagleBall1]:hV,[Vj.BlackMageBall1]:kV,[Vj.DarkMageBall1]:PV,[Vj.DarkMageSkillBall1]:LV,[Vj.GreenEnergyBall]:oV,[Vj.YellowEnergyBall]:wV,[Vj.FairyMusicNote]:eV,[Vj.GhostBall1]:GV,[Vj.DarkArcherArrow1]:xV,[Vj.OrcWingBall1]:CV,[Vj.OrcAxeBall1]:yV,[Vj.FlowerBullet]:Yj,[Vj.Rock]:Zj,[Vj.DarkHermitMissile]:Jj,[Vj.Pearl]:UV,[Vj.Twist]:gV,[Vj.UniArrow]:HV,[Vj.PowerArrow]:WV,[Vj.OrcBlizzardMageRain1]:VV,[Vj.FireMagicBall1]:zV,[Vj.FireMageBird1]:YV,[Vj.BomberSmallBomb1]:JV,[Vj.BomberBigBomb1]:ZV,[Vj.IceFlake]:iK,[Vj.FireBirdBall1]:eK,[Vj.BlackMageDarkBall1]:hK,[Vj.PoisonArcherArrowSkill1]:cK,[Vj.OrcIceMageFireSkill1]:oK,[Vj.PilotMissile1]:uK,[Vj.FireBullet]:fK,[Vj.AntRock1]:gK,[Vj.SpeedArrow2]:wK,[Vj.MoleFire]:_K,[Vj.OrcRapterRiderSpear1]:xK,[Vj.WyvernRiderThrowingKnife1]:CK,[Vj.WyvernRiderThrowingKnifeS1]:kK,[Vj.DarkChain1]:yK,[Vj.SuccubusBlade1]:EK,[Vj.SuccubusWeapon]:SK,[Vj.DruidTangle1]:PK,[Vj.DruidDrill1]:LK,[Vj.TigerRiderArrow1]:GK,[Vj.GriffinSpear1]:UK,[Vj.GriffinSuperSpear1]:HK,[Vj.SteamFire1]:WK,[Vj.SteamMissile1]:VK,[Vj.SylphidShuriken1]:zK,[Vj.SylphidTornado1]:YK,[Vj.AladinCoin1]:JK,[Vj.BladeWave1]:ZK,[Vj.SpinBlade]:iz,[Vj.CrowKnightBullet1]:ez,[Vj.CrowCompanion1]:hz,[Vj.CrowGuidedBall1]:oz,[Vj.CrowFeatherShot1]:cz,[Vj.ScorpionPoisonBullet]:dz,[Vj.ScorpionPoisonArea]:FQ,[Vj.HarpyFeather]:$Q,[Vj.HarpyTornado]:jQ,[Vj.AladinGenieBoomerang]:KQ,[Vj.GolemStone]:QQ,[Vj.BerialLightning]:tZ,[Vj.BerialLightningArea]:sZ,[Vj.BerialFire]:nZ,[Vj.SummonDragon]:rZ,[Vj.DKSpear]:aZ}
+ [MV.NormalArrow]:UV,[MV.EnergyBall]:xV,[MV.SpeedArrow]:WV,[MV.Bullet1]:XV,[MV.OrcSpearmanSpear1]:iK,[MV.OrcIceMageFire1]:ZV,[MV.PoisonArcherArrow1]:HV,[MV.GreenEagleBall1]:LV,[MV.BlackMageBall1]:hK,[MV.DarkMageBall1]:cK,[MV.DarkMageSkillBall1]:uK,[MV.GreenEnergyBall]:GV,[MV.YellowEnergyBall]:zV,[MV.FairyMusicNote]:PV,[MV.GhostBall1]:fK,[MV.DarkArcherArrow1]:oK,[MV.OrcWingBall1]:eK,[MV.OrcAxeBall1]:JV,[MV.FlowerBullet]:SV,[MV.Rock]:OV,[MV.DarkHermitMissile]:CV,[MV.Pearl]:gK,[MV.Twist]:VV,[MV.UniArrow]:wK,[MV.PowerArrow]:_K,[MV.OrcBlizzardMageRain1]:MK,[MV.FireMagicBall1]:EK,[MV.FireMageBird1]:SK,[MV.BomberSmallBomb1]:CK,[MV.BomberBigBomb1]:OK,[MV.IceFlake]:xK,[MV.FireBirdBall1]:PK,[MV.BlackMageDarkBall1]:LK,[MV.PoisonArcherArrowSkill1]:UK,[MV.OrcIceMageFireSkill1]:GK,[MV.PilotMissile1]:HK,[MV.FireBullet]:WK,[MV.AntRock1]:VK,[MV.SpeedArrow2]:zK,[MV.MoleFire]:XK,[MV.OrcRapterRiderSpear1]:oz,[MV.WyvernRiderThrowingKnife1]:ez,[MV.WyvernRiderThrowingKnifeS1]:hz,[MV.DarkChain1]:JK,[MV.SuccubusBlade1]:ZK,[MV.SuccubusWeapon]:iz,[MV.DruidTangle1]:cz,[MV.DruidDrill1]:uz,[MV.TigerRiderArrow1]:fz,[MV.GriffinSpear1]:gz,[MV.GriffinSuperSpear1]:wz,[MV.FireAttack1]:_z,[MV.FireTornado1]:VQ,[MV.FireOrb1]:zQ,[MV.MedusaArrow1]:XQ,[MV.NagaIceArrow1]:JQ,[MV.HippogriffMissile1]:ZQ,[MV.HippogriffSpear1]:iZ,[MV.SteamFire1]:eZ,[MV.SteamMissile1]:hZ,[MV.SylphidShuriken1]:oZ,[MV.SylphidTornado1]:cZ,[MV.AladinCoin1]:uZ,[MV.BladeWave1]:fZ,[MV.SpinBlade]:gZ,[MV.CrowKnightBullet1]:wZ,[MV.CrowCompanion1]:_Z,[MV.CrowGuidedBall1]:MZ,[MV.CrowFeatherShot1]:EZ,[MV.ScorpionPoisonBullet]:TZ,[MV.ScorpionPoisonArea]:kZ,[MV.HarpyFeather]:RZ,[MV.HarpyTornado]:NZ,[MV.AladinGenieBoomerang]:DZ,[MV.GolemStone]:$Z,[MV.BerialLightning]:jZ,[MV.BerialLightningArea]:KZ,[MV.BerialFire]:qZ,[MV.SummonDragon]:YZ,[MV.DKSpear]:QZ}
GreenEagle1 1 hunks, 1 statements
- )()),Yt(PZ,"attackableListPool",[]);
+ )()),Yt(E0,"attackableListPool",[]),Yt(E0,"BURN_EFFECT_OFFSET_Y",2);
UnitFactory 1 hunks, 1 statements
- [ux.NWolf]:l0,[ux.BlackMage1]:M0,[ux.SkeletonX1]:R0,[ux.SkeletonMan1]:T0,[ux.SkeletonMan2]:I0,[ux.SkeletonWarrior1]:O0,[ux.GreatHammer1]:A0,[ux.Ghost1]:j0,[ux.DarkMage1]:B0,[ux.DarkArcher1]:K0,[ux.Bomber1]:X1,[ux.DeathHand1]:Q1,[ux.DarkNinja1]:O2,[ux.Succubus1]:$2,[ux.Abyss1]:X2,[ux.CrowKnight1]:r5,[ux.Succubus2]:a5,[ux.FootMan1]:t0,[ux.Gunner1]:s0,[ux.HeavyWarrior1]:r0,[ux.HammerKnight1]:n0,[ux.HorseKnight1]:a0,[ux.FireBird1]:QZ,[ux.Priest1]:F0,[ux.GriffinRider1]:R2,[ux.SteamPunk1]:D2,[ux.WingKnight1]:N2,[ux.Aladin1]:t5,[ux.ElfArcher1]:N0,[ux.HighArcher1]:qZ,[ux.ElfWarrior1]:KZ,[ux.ElfSwordMan1]:jZ,[ux.PoisonArcher1]:XZ,[ux.GreenEagle1]:DZ,[ux.WindMage1]:D0,[ux.Fairy1]:$0,[ux.Druid1]:B2,[ux.Druid2]:s5,[ux.TigerRider1]:F2,[ux.Sylphid1]:Q2,[ux.OrcFighter1]:d0,[ux.OrcHunter1]:m0,[ux.OrcIceMage1]:v0,[ux.OrcWing1]:q0,[ux.OrcHammer1]:p0,[ux.OrcAxe1]:X0,[ux.OrcSpearMan1]:b0,[ux.BigDrumer1]:Q0,[ux.OrcWolfRider1]:t1,[ux.OrcBigFoot1]:N1,[ux.OrcBlizzardMage1]:D1,[ux.OrcIcePhantom1]:r2,[ux.OrcRapterRider1]:T2,[ux.WyvernRider1]:I2,[ux.BladeMaster1]:n5,[ux.ElfTown5]:FZ,[ux.OrcFlower]:$Z,[ux.FlowerSoldier1]:n1,[ux.FlowerSoldier2]:s1,[ux.KingSlime]:r1,[ux.SlimeBlue]:a1,[ux.SlimeRed]:l1,[ux.SlimeYellow]:d1,[ux.HammerMole]:p1,[ux.MoleSoldier1]:v1,[ux.MoleSoldier2]:m1,[ux.DarkHermit]:b1,[ux.Crab]:M1,[ux.StarFish]:A1,[ux.Unicorn1]:T1,[ux.IceWolf]:I1,[ux.GoldGoblin]:O1,[ux.AdsGoblin]:R1,[ux.DeathKnight1]:B1,[ux.Golem1]:F1,[ux.GreatMage1]:$1,[ux.Ant1]:j1,[ux.WolfWarrior1]:K1,[ux.Artillery1]:q1,[ux.SSlime1]:t2,[ux.SSlime2]:s2,[ux.SSlime3]:n2,[ux.Pilot1]:a2,[ux.Spider1]:p2,[ux.Spider2]:m2,[ux.Boar1]:d2,[ux.Boar2]:l2,[ux.RoboBomb1]:b2,[ux.RoboBomb2]:v2,[ux.Frog1]:M2,[ux.Frog2]:A2,[ux.Castle0]:q2,[ux.Castle1]:K2,[ux.Castle2]:j2,[ux.ScorpionKing]:m5,[ux.HarpyKing]:v5,[ux.GolemKing]:b5,[ux.BerialKing]:A5,[ux.DragonKnight]:I5}
+ [fx.NWolf]:a1,[fx.BlackMage1]:b1,[fx.SkeletonX1]:k1,[fx.SkeletonMan1]:A1,[fx.SkeletonMan2]:T1,[fx.SkeletonWarrior1]:I1,[fx.GreatHammer1]:y1,[fx.Ghost1]:$1,[fx.DarkMage1]:D1,[fx.DarkArcher1]:j1,[fx.Bomber1]:q2,[fx.DeathHand1]:Y2,[fx.DarkNinja1]:I5,[fx.Succubus1]:F5,[fx.Abyss1]:q5,[fx.CrowKnight1]:n3,[fx.Succubus2]:r3,[fx.FireSpirit1]:j0,[fx.Naga1]:K0,[fx.Medusa1]:q0,[fx.Hippogriff1]:Y0,[fx.FootMan1]:Q0,[fx.Gunner1]:t1,[fx.HeavyWarrior1]:n1,[fx.HammerKnight1]:s1,[fx.HorseKnight1]:r1,[fx.FireBird1]:$0,[fx.Priest1]:B1,[fx.GriffinRider1]:k5,[fx.SteamPunk1]:N5,[fx.WingKnight1]:R5,[fx.Aladin1]:Q5,[fx.ElfArcher1]:R1,[fx.HighArcher1]:B0,[fx.ElfWarrior1]:D0,[fx.ElfSwordMan1]:N0,[fx.PoisonArcher1]:F0,[fx.GreenEagle1]:T0,[fx.WindMage1]:N1,[fx.Fairy1]:F1,[fx.Druid1]:D5,[fx.Druid2]:t3,[fx.TigerRider1]:B5,[fx.Sylphid1]:Y5,[fx.OrcFighter1]:l1,[fx.OrcHunter1]:p1,[fx.OrcIceMage1]:m1,[fx.OrcWing1]:K1,[fx.OrcHammer1]:d1,[fx.OrcAxe1]:q1,[fx.OrcSpearMan1]:v1,[fx.BigDrumer1]:Y1,[fx.OrcWolfRider1]:Q1,[fx.OrcBigFoot1]:R2,[fx.OrcBlizzardMage1]:N2,[fx.OrcIcePhantom1]:n5,[fx.OrcRapterRider1]:A5,[fx.WyvernRider1]:T5,[fx.BladeMaster1]:s3,[fx.ElfTown5]:k0,[fx.OrcFlower]:R0,[fx.FlowerSoldier1]:s2,[fx.FlowerSoldier2]:t2,[fx.KingSlime]:n2,[fx.SlimeBlue]:r2,[fx.SlimeRed]:a2,[fx.SlimeYellow]:l2,[fx.HammerMole]:d2,[fx.MoleSoldier1]:m2,[fx.MoleSoldier2]:p2,[fx.DarkHermit]:v2,[fx.Crab]:b2,[fx.StarFish]:y2,[fx.Unicorn1]:A2,[fx.IceWolf]:T2,[fx.GoldGoblin]:I2,[fx.AdsGoblin]:k2,[fx.DeathKnight1]:D2,[fx.Golem1]:B2,[fx.GreatMage1]:F2,[fx.Ant1]:$2,[fx.WolfWarrior1]:j2,[fx.Artillery1]:K2,[fx.SSlime1]:Q2,[fx.SSlime2]:t5,[fx.SSlime3]:s5,[fx.Pilot1]:r5,[fx.Spider1]:d5,[fx.Spider2]:p5,[fx.Boar1]:l5,[fx.Boar2]:a5,[fx.RoboBomb1]:v5,[fx.RoboBomb2]:m5,[fx.Frog1]:b5,[fx.Frog2]:y5,[fx.Castle0]:K5,[fx.Castle1]:j5,[fx.Castle2]:$5,[fx.ScorpionKing]:p3,[fx.HarpyKing]:m3,[fx.GolemKing]:v3,[fx.BerialKing]:y3,[fx.DragonKnight]:T3}
Sr 1 hunks, 1 statements
- ...t,...Mit(i)}
+ ...t,...bst(i)}
Zr 1 hunks, 1 statements
- )(),est=sst.map((t,i)=>sst.indexOf(i)),nst=qt(t=>t<<24|t>>>8,"Vr"),hst=qt(t=>t<<8|t>>>24,"Gr"),rst=qt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr");
+ )(),iet=tet.map((t,i)=>tet.indexOf(i)),set=Xt(t=>t<<24|t>>>8,"Vr"),eet=Xt(t=>t<<8|t>>>24,"Gr"),net=Xt(t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255,"Yr");
Ma 1 hunks, 1 statements
- ...Lht,coercer:qt((t,i)=>znt(t,Dht)?Lht.coercer(Ght(t,i),i):Lht.coercer(t,i),"coercer")}
+ ...Prt,coercer:Xt((t,i)=>Vht(t,Nrt)?Prt.coercer(Lrt(t,i),i):Prt.coercer(t,i),"coercer")}
Yp 1 hunks, 1 statements
- const e=126,n=[71,73,70,56,55,97,...i,246,0,0,255,255,255,...wft(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
+ const e=126,n=[71,73,70,56,55,97,...i,246,0,0,255,255,255,...gpt(381,0),44,0,0,0,0,...i,0,7],h=Math.floor(s.length/e);
SuiStandardProvider 1 hunks, 1 statements
- namespace:Iyt.NameSpaceKeyEip155,addresses:i,methods:[...xyt.Eip55Methods],extra:s}
+ namespace:Tyt.NameSpaceKeyEip155,addresses:i,methods:[...Oyt.Eip55Methods],extra:s}
AppReadyEvent 1 hunks, 1 statements
- return ZMt||(ZMt=[...zMt]),ZMt}
+ return JEt||(JEt=[...VEt]),JEt}
SolProvider 1 hunks, 1 statements
- namespace:nSt.NameSpaceKeySOL,addresses:i,methods:[...aSt.SOLANAMethods],extra:s}
+ namespace:sTt.NameSpaceKeySOL,addresses:i,methods:[...rTt.SOLANAMethods],extra:s}
OkxwalletInjectConnector 1 hunks, 1 statements
- namespace:DSt.NameSpaceKeyBtc,addresses:i,methods:[...BSt.BtcMethods],extra:s}
+ namespace:NTt.NameSpaceKeyBtc,addresses:i,methods:[...DTt.BtcMethods],extra:s}
TcRootElement 1 hunks, 1 statements
- return RDt()||(t.push(new qft.OKXAppConnector),t.push(new qft.OKXWalletAppConnector)),ODt()&&t.push(new qft.OkxwalletInjectConnector),t.push(...NDt()),t}
+ return kGt()||(t.push(new Kpt.OKXAppConnector),t.push(new Kpt.OKXWalletAppConnector)),IGt()&&t.push(new Kpt.OkxwalletInjectConnector),t.push(...RGt()),t}
WalletSelectPopup 1 hunks, 1 statements
- ...yL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
+ ...AL.ERROR_POPUP_LABEL_OPTION,fontSize:18}
CheckBox 1 hunks, 1 statements
- ),this.bg.width=this.bg.height=24,this.bg.eventMode="none",this.addChild(this.bg),this.check=new je(iS.getTexture("UI_Ekkorr","Icon_Check_Green")),this.check.scale=.85,this.check.eventMode="none",this.check.x=.5*(this.bg.width-this.check.width)+2,this.check.y=this.bg.height-this.check.height-4,this.addChild(this.check),this.customHitArea=new je(iS.getTexture("UI_Ekkorr","Base_Tooltip")),this.customHitArea.tint=1708562,this.customHitArea.alpha=.1,this.customHitArea.x=-this.customHitAreaOffset,this.customHitArea.y=-this.customHitAreaOffset,this.customHitArea.width=this.bg.width+2*this.customHitAreaOffset,this.customHitArea.height=this.bg.height+2*this.customHitAreaOffset,this.addChildAt(this.customHitArea,0),this.customHitArea.eventMode="dynamic",this.customHitArea.on("pointertap",this.onTap,this),this.selected=!1,this.colorMatrix=new rf,this.colorMatrix.blackAndWhite(!0)}
+ ),this.bg.width=this.bg.height=24,this.bg.eventMode="none",this.addChild(this.bg),this.check=new Ve(eS.getTexture("UI_Ekkorr","Icon_Check_Green")),this.check.scale=.85,this.check.eventMode="none",this.check.x=.5*(this.bg.width-this.check.width)+2,this.check.y=this.bg.height-this.check.height-4,this.addChild(this.check),this.customHitArea=new Ve(eS.getTexture("UI_Ekkorr","Base_Tooltip")),this.customHitArea.tint=1708562,this.customHitArea.alpha=.1,this.customHitArea.x=-this.customHitAreaOffset,this.customHitArea.y=-this.customHitAreaOffset,this.customHitArea.width=this.bg.width+2*this.customHitAreaOffset,this.customHitArea.height=this.bg.height+2*this.customHitAreaOffset,this.addChildAt(this.customHitArea,0),this.customHitArea.eventMode="dynamic",this.customHitArea.on("pointertap",this.onTap,this),this.selected=!1,this.colorMatrix=new of,this.colorMatrix.blackAndWhite(!0)}
SpriteBattleController 1 hunks, 1 statements
- if(e)r1t.getInstance().showVictory(e,t,s);
+ if(e)n2t.getInstance().showVictory(e,t,s,i.body.reward);
FavoritePetSubView 1 hunks, 1 statements
- const t=[...LD.getInstance().favoritePets].sort((t,i)=>{
+ const t=[...BD.getInstance().favoritePets].sort((t,i)=>{
TreasureSubView 1 hunks, 1 statements
- const t=[...Kx.getInstance().equipedList];
+ const t=[...Xx.getInstance().equipedList];
GuildBarracksRaceView 1 hunks, 1 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildCheckBox 1 hunks, 1 statements
- ),this.bg.width=this.bg.height=24,this.bg.eventMode="none",this.addChild(this.bg),this.check=new je(iS.getTexture("UI_Guild","Base_Check02")),this.check.scale=.85,this.check.eventMode="none",this.check.x=.5*(this.bg.width-this.check.width)+2,this.check.y=this.bg.height-this.check.height-2,this.addChild(this.check),this.customHitArea=new je(iS.getTexture("UI_Guild","whiteRect")),this.customHitArea.tint=1708562,this.customHitArea.alpha=.1,this.customHitArea.x=-this.customHitAreaOffset,this.customHitArea.y=-this.customHitAreaOffset,this.customHitArea.width=this.bg.width+2*this.customHitAreaOffset,this.customHitArea.height=this.bg.height+2*this.customHitAreaOffset,this.addChildAt(this.customHitArea,0),this.customHitArea.eventMode="dynamic",this.customHitArea.on("pointertap",this.onTap,this),this.selected=!1,this.colorMatrix=new rf,this.colorMatrix.blackAndWhite(!0)}
+ ),this.bg.width=this.bg.height=24,this.bg.eventMode="none",this.addChild(this.bg),this.check=new Ve(eS.getTexture("UI_Guild","Base_Check02")),this.check.scale=.85,this.check.eventMode="none",this.check.x=.5*(this.bg.width-this.check.width)+2,this.check.y=this.bg.height-this.check.height-2,this.addChild(this.check),this.customHitArea=new Ve(eS.getTexture("UI_Guild","whiteRect")),this.customHitArea.tint=1708562,this.customHitArea.alpha=.1,this.customHitArea.x=-this.customHitAreaOffset,this.customHitArea.y=-this.customHitAreaOffset,this.customHitArea.width=this.bg.width+2*this.customHitAreaOffset,this.customHitArea.height=this.bg.height+2*this.customHitAreaOffset,this.addChildAt(this.customHitArea,0),this.customHitArea.eventMode="dynamic",this.customHitArea.on("pointertap",this.onTap,this),this.selected=!1,this.colorMatrix=new of,this.colorMatrix.blackAndWhite(!0)}
GuildMainSubView 1 hunks, 1 statements
- const i=[...jL.guildList].sort((t,i)=>{
+ const i=[...zL.guildList].sort((t,i)=>{
GuildRaidBattleReadyPopup 1 hunks, 1 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:13}
GuildWarActiveItemRenderer 1 hunks, 1 statements
- super(),Yt(this,"bg"),Yt(this,"myEmblem"),Yt(this,"oppEmblem"),Yt(this,"lblMyName"),Yt(this,"lblMyLv"),Yt(this,"lblMyRank"),Yt(this,"lblMyEloValue"),Yt(this,"iconVs"),Yt(this,"lblOppName"),Yt(this,"lblOppLv"),Yt(this,"lblOppRank"),Yt(this,"lblOppEloValue"),Yt(this,"lblScore"),Yt(this,"iconClock"),Yt(this,"lblEndsIn"),Yt(this,"btnAttack"),Yt(this,"ticketIcons",[]),Yt(this,"ticketDimFilter",new rf),this.ticketDimFilter.desaturate(),this.bg=new XB,this.bg.setIndex(2),this.bg.width=t.ROW_W,this.bg.height=t.ROW_H,this.addChild(this.bg),this.myEmblem=new V7t,this.myEmblem.scale.set(t.EMBLEM_SCALE),this.myEmblem.x=t.PAD,this.myEmblem.y=10,this.addChild(this.myEmblem),this.oppEmblem=new V7t,this.oppEmblem.scale.set(t.EMBLEM_SCALE),this.oppEmblem.x=t.OPP_EMBLEM_X,this.oppEmblem.y=10,this.addChild(this.oppEmblem),this.lblMyLv=new wD("",14531464,yL.DEFAULT_FONT_OPTION_16),this.addChild(this.lblMyLv),this.lblOppLv=new wD("",14531464,yL.DEFAULT_FONT_OPTION_16),this.addChild(this.lblOppLv),this.lblMyName=new wD("",yL.DEFAULT_COLOR,yL.DEFAULT_OUTLINE_FONT_OPTION_17),this.lblMyName.textColor=yL.DEFAULT_COLOR,this.lblMyName.x=t.LEFT_TEXT_X,this.lblMyName.y=14,this.addChild(this.lblMyName),this.lblOppName=new wD("",yL.DEFAULT_COLOR,yL.DEFAULT_OUTLINE_FONT_OPTION_17),this.lblOppName.textColor=yL.DEFAULT_COLOR,this.lblOppName.y=14,this.addChild(this.lblOppName),this.lblMyRank=new wD("",16750899,yL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblMyRank.x=t.LEFT_TEXT_X,this.lblMyRank.y=36,this.addChild(this.lblMyRank),this.lblOppRank=new wD("",16750899,yL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblOppRank.y=36,this.addChild(this.lblOppRank),this.lblMyEloValue=new wD("",16750899,yL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblMyEloValue.textColor=16750899,this.lblMyEloValue.x=t.LEFT_TEXT_X,this.lblMyEloValue.y=58,this.addChild(this.lblMyEloValue),this.lblOppEloValue=new wD("",16750899,yL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblOppEloValue.textColor=16750899,this.lblOppEloValue.y=58,this.addChild(this.lblOppEloValue),this.iconVs=new je(iS.getTexture("UI_Ekkorr","UI_VS")),this.iconVs.scale.set(.506),this.iconVs.y=8,this.addChild(this.iconVs),this.lblScore=new wD("",16750899,yL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblScore.textColor=16750899,this.lblScore.y=51,this.addChild(this.lblScore),this.iconClock=new je(iS.getTexture("UI_Ekkorr","Icon_Time02")),this.iconClock.scale.set(.595),this.addChild(this.iconClock),this.lblEndsIn=new wD("",yL.DEFAULT_COLOR,yL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblEndsIn.y=t.TIME_GROUP_Y,this.iconClock.y=this.lblEndsIn.y+(this.lblEndsIn.height-this.iconClock.height)/2,this.addChild(this.lblEndsIn),this.btnAttack=new _G(YG.getText("GAME_1040","공격")),this.btnAttack.color=_G.RED,this.btnAttack.width=t.BTN_W,this.btnAttack.height=t.BTN_H,this.btnAttack.x=t.BTN_X,this.btnAttack.onClick=()=>this.onAttack(),this.addChild(this.btnAttack);
+ super(),Yt(this,"bg"),Yt(this,"myEmblem"),Yt(this,"oppEmblem"),Yt(this,"lblMyName"),Yt(this,"lblMyLv"),Yt(this,"lblMyRank"),Yt(this,"lblMyEloValue"),Yt(this,"iconVs"),Yt(this,"lblOppName"),Yt(this,"lblOppLv"),Yt(this,"lblOppRank"),Yt(this,"lblOppEloValue"),Yt(this,"lblScore"),Yt(this,"iconClock"),Yt(this,"lblEndsIn"),Yt(this,"btnAttack"),Yt(this,"ticketIcons",[]),Yt(this,"ticketDimFilter",new of),this.ticketDimFilter.desaturate(),this.bg=new tU,this.bg.setIndex(2),this.bg.width=t.ROW_W,this.bg.height=t.ROW_H,this.addChild(this.bg),this.myEmblem=new uti,this.myEmblem.scale.set(t.EMBLEM_SCALE),this.myEmblem.x=t.PAD,this.myEmblem.y=10,this.addChild(this.myEmblem),this.oppEmblem=new uti,this.oppEmblem.scale.set(t.EMBLEM_SCALE),this.oppEmblem.x=t.OPP_EMBLEM_X,this.oppEmblem.y=10,this.addChild(this.oppEmblem),this.lblMyLv=new bD("",14531464,AL.DEFAULT_FONT_OPTION_16),this.addChild(this.lblMyLv),this.lblOppLv=new bD("",14531464,AL.DEFAULT_FONT_OPTION_16),this.addChild(this.lblOppLv),this.lblMyName=new bD("",AL.DEFAULT_COLOR,AL.DEFAULT_OUTLINE_FONT_OPTION_17),this.lblMyName.textColor=AL.DEFAULT_COLOR,this.lblMyName.x=t.LEFT_TEXT_X,this.lblMyName.y=14,this.addChild(this.lblMyName),this.lblOppName=new bD("",AL.DEFAULT_COLOR,AL.DEFAULT_OUTLINE_FONT_OPTION_17),this.lblOppName.textColor=AL.DEFAULT_COLOR,this.lblOppName.y=14,this.addChild(this.lblOppName),this.lblMyRank=new bD("",16750899,AL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblMyRank.x=t.LEFT_TEXT_X,this.lblMyRank.y=36,this.addChild(this.lblMyRank),this.lblOppRank=new bD("",16750899,AL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblOppRank.y=36,this.addChild(this.lblOppRank),this.lblMyEloValue=new bD("",16750899,AL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblMyEloValue.textColor=16750899,this.lblMyEloValue.x=t.LEFT_TEXT_X,this.lblMyEloValue.y=58,this.addChild(this.lblMyEloValue),this.lblOppEloValue=new bD("",16750899,AL.DEFAULT_OUTLINE_FONT_OPTION_18),this.lblOppEloValue.textColor=16750899,this.lblOppEloValue.y=58,this.addChild(this.lblOppEloValue),this.iconVs=new Ve(eS.getTexture("UI_Ekkorr","UI_VS")),this.iconVs.scale.set(.506),this.iconVs.y=8,this.addChild(this.iconVs),this.lblScore=new bD("",16750899,AL.DEFAULT_OUTLINE_FONT_OPTION_24),this.lblScore.textColor=16750899,this.lblScore.y=51,this.addChild(this.lblScore),this.iconClock=new Ve(eS.getTexture("UI_Ekkorr","Icon_Time02")),this.iconClock.scale.set(.595),this.addChild(this.iconClock),this.lblEndsIn=new bD("",AL.DEFAULT_COLOR,AL.DEFAULT_OUTLINE_FONT_OPTION_16),this.lblEndsIn.y=t.TIME_GROUP_Y,this.iconClock.y=this.lblEndsIn.y+(this.lblEndsIn.height-this.iconClock.height)/2,this.addChild(this.lblEndsIn),this.btnAttack=new yG(QG.getText("GAME_1040","공격")),this.btnAttack.color=yG.RED,this.btnAttack.width=t.BTN_W,this.btnAttack.height=t.BTN_H,this.btnAttack.x=t.BTN_X,this.btnAttack.onClick=()=>this.onAttack(),this.addChild(this.btnAttack);
GuildWarHistoryItemRenderer 1 hunks, 1 statements
- ...yL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
+ ...AL.DEFAULT_OUTLINE_FONT_OPTION_16,fontSize:i}
GuildWarTournamentRewardGuidePopup 1 hunks, 1 statements
- let e=[...jL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...jL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
+ let e=[...zL.rewardBattleList.sort((t,i)=>i.kindNum-t.kindNum)].concat([...zL.rewardBattleLostList.sort((t,i)=>i.kindNum-t.kindNum)]);
GuildWarCombatLogItemRenderer 1 hunks, 1 statements
- ...yL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...AL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarMemberStatusItemRenderer 1 hunks, 1 statements
- ...yL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...AL.DEFAULT_FONT_OPTION_15,fontSize:14}
GuildWarTargetMarkerItemRenderer 1 hunks, 1 statements
- ...yL.DEFAULT_FONT_OPTION_15,fontSize:14}
+ ...AL.DEFAULT_FONT_OPTION_15,fontSize:14}
Delay 1 hunks, 1 statements
- ...kyi(),[i]:s}
+ ...nEi(),[i]:s}
NetworkTimeout 1 hunks, 1 statements
- ...Zyi,...i}
+ ...IEi,...i}
RecaptchaVerifier 1 hunks, 1 statements
- ...NTi}
+ ...cIi}
BrowserPopupRedirectResolver 1 hunks, 1 statements
- ...BCi,width:e.toString(),height:n.toString(),top:h,left:r}
+ ...fOi,width:e.toString(),height:n.toString(),top:h,left:r}