PageSourceSearch

https://www.lezhin.com/_next/static/chunks/55429.b05b52fa173bb18c.js

js lezhin.com collected 2026-09-24 09:11:15 UTC 7,195 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[55429],{55429:function(e,t,s){s.r(t),window.TD=window.TD||{};var a=window.TD;a.COLS=11,a.ROWS=16,a.TOTAL_WAVES=30,a.START_GOLD=200,a.START_LIVES=10,a.INTEREST_RATE=.02,a.MAX_INTEREST=10,a.SELL_RATIO=.6,a.ENTRY={r:-1,c:1},a.EXIT={r:a.ROWS,c:9},a.ENTRY_CELL={r:0,c:1},a.EXIT_CELL={r:a.ROWS-1,c:9},a.generateDailyWaypoints=function(){var e=new Date,t=1e4*e.getFullYear()+(e.getMonth()+1)*100+e.getDate();function s(){return(t=1664525*t+1013904223&2147483647)/2147483647}for(var o={r:a.ROWS-1,c:9},n=[{r:0,c:1}],r=[[1,3],[4,7],[8,11],[12,14]],p=0;p<r.length;p++){for(var l=r[p][0],i=r[p][1],c=a.COLS-1-1,u=null,h=0;h<200;h++){for(var y=l+Math.floor(s()*(i-l+1)),g=1+Math.floor(s()*(c-1+1)),m=!0,f=n.concat([o]),d=0;d<f.length;d++){var w=Math.abs(f[d].r-y),T=Math.abs(f[d].c-g);if(3>Math.sqrt(w*w+T*T)){m=!1;break}}if(m){u={r:y,c:g};break}}u||(u={r:Math.floor((l+i)/2),c:Math.floor((1+c)/2)}),n.push(u)}return n.push(o),n},a.WAYPOINTS=a.generateDailyWaypoints(),a.isReservedCell=function(e,t){for(var s=0;s<a.WAYPOINTS.length;s++)if(a.WAYPOINTS[s].r===e&&a.WAYPOINTS[s].c===t)return!0;return!1},a.THEME={bg:"#0d1117",gridDark:"#151d28",gridLight:"#1a2332",gridLine:"#1e2d3d",portalIn:{inner:"#00e5ff",outer:"#006064"},portalOut:{inner:"#ff1744",outer:"#880e4f"},wpGlow:["#4fc3f7","#81c784","#ffb74d","#ce93d8"],stone:"#2a3a4a",stoneLight:"#354a5e"},a.TOWERS={blocker:{name:"블로커",icon:"\uD83E\uDDF1",cost:15,range:0,damage:0,speed:99,hp:5,splash:0,slow:0,dot:0,chain:0,color:"#777777",damageType:"physical",canHitAir:!1,noSell:!0},arrow:{name:"화살탑",icon:"\uD83C\uDFF9",cost:30,range:3.5,damage:8,speed:.3,hp:50,splash:0,slow:0,dot:0,chain:0,color:"#B0BEC5",damageType:"physical",canHitAir:!0},cannon:{name:"대포탑",icon:"\uD83D\uDCA3",cost:70,range:1.8,damage:30,speed:1.4,hp:50,splash:1.5,slow:0,dot:0,chain:0,color:"#FF5722",damageType:"physical",canHitAir:!1},ice:{name:"얼음탑",icon:"❄️",cost:45,range:2,damage:3,speed:.7,hp:50,splash:0,slow:.5,dot:0,chain:0,color:"#03A9F4",damageType:"magic",canHitAir:!1},lightning:{name:"번개탑",icon:"⚡",cost:90,range:2.5,damage:16,speed:.65,hp:50,splash:0,slow:0,dot:0,chain:4,color:"#FFC107",damageType:"magic",canHitAir:!0},sniper:{name:"저격탑",icon:"\uD83C\uDFAF",cost:100,range:6.5,damage:120,speed:1.5,hp:50,splash:0,slow:0,dot:0,chain:0,color:"#FF1744",damageType:"physical",canHitAir:!0,airOnly:!0},poison:{name:"독탑",icon:"☠️",cost:65,range:2,damage:4,speed:1,hp:50,splash:0,slow:0,dot:4,chain:0,color:"#8BC34A",damageType:"magic",canHitAir:!1},arcane:{name:"마탑",icon:"\uD83D\uDD2E",cost:170,range:3.5,damage:135,speed:.8,hp:50,splash:0,slow:0,dot:0,chain:0,color:"#AA00FF",damageType:"magic",canHitAir:!1}},a.UPGRADE_MULT=[1,1.5,2.2],a.UPGRADE_COST_MULT=[0,1,1.5],a.HP_UPGRADE_MULT=[1,1.3,1.6],a.ENEMIES={normal:{name:"고블린",color:"#e74c3c",speed:1,hpMult:1,reward:2,size:.3,liveCost:1,armor:0,magicResist:0,flying:!1,slowResist:0,symbol:"●"},fast:{name:"도적",color:"#f39c12",speed:1.8,hpMult:.55,reward:2,size:.22,liveCost:1,armor:0,magicResist:0,flying:!1,slowResist:.2,symbol:"◆"},tank:{name:"기사",color:"#8e44ad",speed:.55,hpMult:3.5,reward:8,size:.4,liveCost:1,armor:.65,magicResist:-.25,flying:!1,slowResist:.3,symbol:"■"},swarm:{name:"쥐떼",color:"#e67e22",speed:1,hpMult:.3,reward:1,size:.18,liveCost:1,armor:0,magicResist:0,flying:!1,slowResist:0,symbol:"\xb7"},flying:{name:"와이번",color:"#5dade2",speed:1.4,hpMult:1.2,reward:6,size:.28,liveCost:1,armor:0,magicResist:.2,flying:!0,slowResist:1,symbol:"▲"},regen:{name:"트롤",color:"#2ecc71",speed:.75,hpMult:2.5,reward:7,size:.35,liveCost:1,armor:.15,magicResist:0,flying:!1,slowResist:.1,symbol:"♦"},shield:{name:"성기사",color:"#3498db",speed:.8,hpMult:1.5,reward:8,size:.35,liveCost:1,armor:.3,magicResist:.2,flying:!1,slowResist:.2,symbol:"◎"},boss:{name:"드래곤",color:"#c0392b",speed:.4,hpMult:15,reward:60,size:.5,liveCost:3,armor:.35,magicResist:.2,flying:!1,slowResist:.85,symbol:"★"}},a.generateWaves=function(){for(var e=[],t=1;t<=a.TOTAL_WAVES;t++){var s=[],o=Math.floor(70*(1+.4*t+.06*Math.pow(t,1.5)));if(t<=2)s.push({type:"normal",count:8+3*t});else if(3===t)s.push({type:"normal",count:12}),s.push({type:"fast",count:5});else if(4===t)s.push({type:"fast",count:10}),s.push({type:"normal",count:8});else if(5===t)s.push({type:"swarm",count:25}),s.push({type:"normal",count:6});else if(6===t)s.push({type:"fast",count:12}),s.push({type:"swarm",count:10});else if(7===t)s.push({type:"tank",count:3}),s.push({type:"normal",count:10});else if(8===t)s.push({type:"flying",count:6}),s.push({type:"normal",count:8});else if(9===t)s.push({type:"regen",count:5}),s.push({type:"tank",count:3}),s.push({type:"fast",count:6});else if(10===t)s.push({type:"boss",count:1}),s.push({type:"tank",count:5}),s.push({type:"flying",count:4});else if(t<=15){var n=["tank","flying","swarm","regen","shield"][t%5],r=["flying","fast","tank","
1shield","regen"][(t+2)%5];s.push({type:n,count:8+Math.floor(.5*t)}),s.push({type:r,count:5+Math.floor(.3*t)}),s.push({type:"normal",count:6})}else if(t<=19){var p=["tank","flying","regen","shield"][t%4];s.push({type:p,count:10+Math.floor(.5*t)}),s.push({type:"swarm",count:12+t}),s.push({type:"flying",count:5+Math.floor(.3*t)})}else if(20===t)s.push({type:"boss",count:2}),s.push({type:"flying",count:10}),s.push({type:"shield",count:6}),s.push({type:"tank",count:6});else if(t<=24){var l=["tank","flying","regen","shield"][t%4],i=["shield","flying","swarm","regen"][(t+2)%4];s.push({type:l,count:12+Math.floor(.5*t)}),s.push({type:i,count:8+Math.floor(.4*t)}),s.push({type:"fast",count:8}),t%2==0&&s.push({type:"boss",count:1})}else 25===t?(s.push({type:"boss",count:3}),s.push({type:"shield",count:10}),s.push({type:"flying",count:12}),s.push({type:"tank",count:8})):t<=29?(s.push({type:"tank",count:12+Math.floor(.3*t)}),s.push({type:"shield",count:8+Math.floor(.2*t)}),s.push({type:"flying",count:10+Math.floor(.2*t)}),s.push({type:"regen",count:6+Math.floor(.15*t)}),s.push({type:"swarm",count:20+t}),s.push({type:"boss",count:Math.floor((t-25)*.6)+1})):(s.push({type:"boss",count:5}),s.push({type:"flying",count:15}),s.push({type:"shield",count:12}),s.push({type:"regen",count:10}),s.push({type:"tank",count:12}),s.push({type:"swarm",count:30}));for(var c=0;c<s.length;c++)s[c].hp=o;e.push({number:t,enemies:s,spawnInterval:Math.max(.3,1.1-.025*t),reward:8+Math.floor(1.5*t)})}return e},a.getWavePreview=function(e,t){if(t>=a.TOTAL_WAVES)return null;for(var s=e[t],o=[],n=!1,r=0;r<s.enemies.length;r++){var p=s.enemies[r],l=a.ENEMIES[p.type];o.push({type:p.type,count:p.count,color:l.color,symbol:l.symbol,name:l.name}),l.flying&&(n=!0)}return{preview:o,hasFlying:n,waveNum:t+1}},a.getTowerStats=function(e){var t=a.TOWERS[e.type],s=e.level-1;return{damage:t.damage*a.UPGRADE_MULT[s],range:t.range+.3*s,speed:t.speed*(1-.1*s),splash:t.splash*(1+.2*s),slow:t.slow+.1*s,dot:t.dot*a.UPGRADE_MULT[s],chain:t.chain+s,maxHp:t.hp*a.HP_UPGRADE_MULT[s],damageType:t.damageType,canHitAir:t.canHitAir}},a.calcDamage=function(e,t,s){var a=e;return"physical"===t?a*=1-(s.armor||0):a*=1-(s.magicResist||0),a}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.