=m[m.length-1]){var x=f[m.length-1];if(1==o){if(h==e.add){if((g=u).bones)for(var y=0;yi)this.apply(t,e,Number.MAX_VALUE,r,n,s,o),e=-1;else if(e>=h[l-1])return;if(!(i0&&h[c-1]==u;){c--}for(;c=h[c];c++){r.push(this.events[c])}}}},e.propertyIds=[""+n.event],e}(a);t.EventTimeline=S;var I=function(r){function s(t){var e=r.call(this,t,s.propertyIds)||this;return e.drawOrders=new Array(t),e}return __extends(s,r),s.prototype.getFrameCount=function(){return this.frames.length},s.prototype.setFrame=function(t,e,i){this.frames[t]=e,this.drawOrders[t]=i},s.prototype.apply=function(r,n,s,o,h,l,c){if(c!=i.mixOut){if(s>2];switch(m){case 0:var g=c[p];u=c[p+1],d=c[p+2],f=c[p+3];var v=(r-g)/(c[p+4]-g);u+=(c[p+4+1]-u)*v,d+=(c[p+4+2]-d)*v,f+=(c[p+4+3]-f)*v;break;case 1:u=c[p+1],d=c[p+2],f=c[p+3];break;default:u=this.getBezierValue(r,p,1,m-2),d=this.getBezierValue(r,p,2,m+18-2),f=this.getBezierValue(r,p,3,m+36-2)}if(o==e.setup){var M=l.data;l.mixRotate=M.mixRotate+(u-M.mixRotate)*s,l.mixX=M.mixX+(d-M.mixX)*s,l.mixY=M.mixY+(f-M.mixY)*s}else l.mixRotate+=(u-l.mixRotate)*s,l.mixX+=(d-l.mixX)*s,l.mixY+=(f-l.mixY)*s}}},i}(s);t.PathConstraintMixTimeline=X}(spine||(spine={})),function(t){var e=function(){function e(e){this.tracks=new Array,this.timeScale=1,this.unkeyedState=0,this.events=new Array,this.listeners=new Array,this.queue=new n(this),this.propertyIDs=new t.StringSet,this.animationsChanged=!1,this.trackEntryPool=new t.Pool(function(){return new i}),this.data=e}return e.emptyAnimation=function(){return f||(f=new t.Animation("",[],0)),f},e.prototype.update=function(t){t*=this.timeScale;for(var e=this.tracks,i=0,r=e.length;i0){if(n.delay-=a,n.delay>0)continue;a=-n.delay,n.delay=0}var s=n.next;if(s){var o=n.trackLast-s.delay;if(o>=0){for(s.delay=0,s.trackTime+=0==n.timeScale?0:(o/n.timeScale+t)*s.timeScale,n.trackTime+=a,this.setCurrent(i,s,!0);s.mixingFrom;){s.mixTime+=t,s=s.mixingFrom}continue}}else if(n.trackLast>=n.trackEnd&&!n.mixingFrom){e[i]=null,this.queue.end(n),this.clearNext(n);continue}if(n.mixingFrom&&this.updateMixingFrom(n,t)){var h=n.mixingFrom;for(n.mixingFrom=null,h&&(h.mixingTo=null);h;){this.queue.end(h),h=h.mixingFrom}}n.trackTime+=a}}this.queue.drain()},e.prototype.updateMixingFrom=function(t,e){var i=t.mixingFrom;if(!i)return!0;var r=this.updateMixingFrom(i,e);return i.animationLast=i.nextAnimationLast,i.trackLast=i.nextTrackLast,t.mixTime>0&&t.mixTime>=t.mixDuration?(0!=i.totalAlpha&&0!=t.mixDuration||(t.mixingFrom=i.mixingFrom,i.mixingFrom&&(i.mixingFrom.mixingTo=t),t.interruptAlpha=i.interruptAlpha,this.queue.end(i)),r):(i.trackTime+=e*i.timeScale,t.mixTime+=e,!1)},e.prototype.apply=function(e){if(!e)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();for(var i=this.events,r=this.tracks,n=!1,a=0,o=r.length;a0)){n=!0;var l=0==a?t.MixBlend.first:h.mixBlend,c=h.alpha;h.mixingFrom?c*=this.applyMixingFrom(h,e,l):h.trackTime>=h.trackEnd&&!h.next&&(c=0);var d=h.animationLast,f=h.getAnimationTime(),p=f,m=i;h.reverse&&(p=h.animation.duration-p,m=null);var g=h.animation.timelines,v=g.length;if(0==a&&1==c||l==t.MixBlend.add)for(var M=0;M1&&(a=1),r!=t.MixBlend.first&&(r=n.mixBlend));var c=a0&&this.queueEvents(n,v),this.events.length=0,n.nextAnimationLast=v,n.nextTrackLast=n.trackTime,a},e.prototype.applyAttachmentTimeline=function(e,i,r,n,a){var s=i.slots[e.slotIndex];s.bone.active&&(r0,v=p>=0;t.MathUtils.signum(m)!=t.MathUtils.signum(f)&&Math.abs(m)<=90&&(Math.abs(p)>180&&(p+=360*t.MathUtils.signum(p)),v=g),d=f+p-p%360,v!=g&&(d+=360*t.MathUtils.signum(p)),s[o]=d}s[o+1]=f,l.rotation=c+d*n}}else e.apply(i,0,r,null,1,a,t.MixDirection.mixIn)},e.prototype.queueEvents=function(t,e){for(var i=t.animationStart,r=t.animationEnd,n=r-i,a=t.trackLast%n,s=this.events,o=0,h=s.length;or||this.queue.event(t,l)}for((t.loop?0==n||a>t.trackTime%n:e>=r&&t.animationLast=this.tracks.length)){var e=this.tracks[t];if(e){this.queue.end(e),this.clearNext(e);for(var i=e;;){var r=i.mixingFrom;if(!r)break;this.queue.end(r),i.mixingFrom=null,i.mixingTo=null,i=r}this.tracks[e.trackIndex]=null,this.queue.drain()}}},e.prototype.setCurrent=function(t,e,i){var r=this.expandToIndex(t);this.tracks[t]=e,e.previous=null,r&&(i&&this.queue.interrupt(r),e.mixingFrom=r,r.mixingTo=e,e.mixTime=0,r.mixingFrom&&r.mixDuration>0&&(e.interruptAlpha*=Math.min(1,r.mixTime/r.mixDuration)),r.timelinesRotation.length=0),this.queue.start(e)},e.prototype.setAnimation=function(t,e,i){void 0===i&&(i=!1);var r=this.data.skeletonData.findAnimation(e);if(!r)throw new Error("Animation not found: "+e);return this.setAnimationWith(t,r,i)},e.prototype.setAnimationWith=function(t,e,i){if(void 0===i&&(i=!1),!e)throw new Error("animation cannot be null.");var r=!0,n=this.expandToIndex(t);n&&(-1==n.nextTrackLast?(this.tracks[t]=n.mixingFrom,this.queue.interrupt(n),this.queue.end(n),this.clearNext(n),n=n.mixingFrom,r=!1):this.clearNext(n));var a=this.trackEntry(t,e,i,n);return this.setCurrent(t,a,r),this.queue.drain(),a},e.prototype.addAnimation=function(t,e,i,r){void 0===i&&(i=!1),void 0===r&&(r=0);var n=this.data.skeletonData.findAnimation(e);if(!n)throw new Error("Animation not found: "+e);return this.addAnimationWith(t,n,i,r)},e.prototype.addAnimationWith=function(t,e,i,r){if(void 0===i&&(i=!1),void 0===r&&(r=0),!e)throw new Error("animation cannot be null.");var n=this.expandToIndex(t);if(n)for(;n.next;){n=n.next}var a=this.trackEntry(t,e,i,n);return n?(n.next=a,a.previous=n,r<=0&&(r+=n.getTrackComplete()-a.mixDuration)):(this.setCurrent(t,a,!0),this.queue.drain()),a.delay=r,a},e.prototype.setEmptyAnimation=function(t,i){void 0===i&&(i=0);var r=this.setAnimationWith(t,e.emptyAnimation(),!1);return r.mixDuration=i,r.trackEnd=i,r},e.prototype.addEmptyAnimation=function(t,i,r){void 0===i&&(i=0),void 0===r&&(r=0);var n=this.addAnimationWith(t,e.emptyAnimation(),!1,r<=0?1:r);return n.mixDuration=i,n.trackEnd=i,r<=0&&n.previous&&(n.delay=n.previous.getTrackComplete()-n.mixDuration+r),n},e.prototype.setEmptyAnimations=function(t){void 0===t&&(t=0);var e=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(var i=0,r=this.tracks.length;i0){a[f]=c,u[f]=g;continue t}break}}a[f]=l}}else a[f]=s}},e.prototype.getCurrent=function(t){return t>=this.tracks.length?null:this.tracks[t]},e.prototype.addListener=function(t){if(!t)throw new Error("listener cannot be null.");this.listeners.push(t)},e.prototype.removeListener=function(t){var e=this.listeners.indexOf(t);e>=0&&this.listeners.splice(e,1)},e.prototype.clearListeners=function(){this.listeners.length=0},e.prototype.clearListenerNotifications=function(){this.queue.clear()},e}();t.AnimationState=e;var i=function(){function e(){this.mixBlend=t.MixBlend.replace,this.timelineMode=new Array,this.timelineHoldMix=new Array,this.timelinesRotation=new Array}return e.prototype.reset=function(){this.next=null,this.previous=null,this.mixingFrom=null,this.mixingTo=null,this.animation=null,this.listener=null,this.timelineMode.length=0,this.timelineHoldMix.length=0,this.timelinesRotation.length=0},e.prototype.getAnimationTime=function(){if(this.loop){var t=this.animationEnd-this.animationStart;return 0==t?this.animationStart:this.trackTime%t+this.animationStart}return Math.min(this.trackTime+this.animationStart,this.animationEnd)},e.prototype.setAnimationLast=function(t){this.animationLast=t,this.nextAnimationLast=t},e.prototype.isComplete=function(){return this.trackTime>=this.animationEnd-this.animationStart},e.prototype.resetRotationDirections=function(){this.timelinesRotation.length=0},e.prototype.getTrackComplete=function(){var t=this.animationEnd-this.animationStart;if(0!=t){if(this.loop)return t*(1+(this.trackTime/t|0));if(this.trackTime=0?e.substring(0,a+1):"";e=this.start(e),this.downloader.downloadText(e,function(a){try{for(var o=new t.TextureAtlas(a),h=o.pages.length,l=!1,c=function c(t){n.loadTexture(s+t.name,function(r,a){l||(t.setTexture(a),0==--h&&n.success(i,e,o))},function(t,i){l||n.error(r,e,"Couldn't load texture atlas "+e+" page image: "+t),l=!0})},u=0,d=o.pages;u0},e.prototype.getErrors=function(){return this.errors},e}();t.AssetManager=e;var i=function(){function t(){this.callbacks={},this.rawDataUris={}}return t.prototype.downloadText=function(t,e,i){var r=this;if(this.rawDataUris[t]&&(t=this.rawDataUris[t]),!this.start(t,e,i)){var n=new XMLHttpRequest;n.overrideMimeType("text/html"),n.open("GET",t,!0);var a=function a(){r.finish(t,n.status,n.responseText)};n.onload=a,n.onerror=a,n.send()}},t.prototype.downloadJson=function(t,e,i){this.downloadText(t,function(t){e(JSON.parse(t))},i)},t.prototype.downloadBinary=function(t,e,i){var r=this;if(this.rawDataUris[t]&&(t=this.rawDataUris[t]),!this.start(t,e,i)){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="arraybuffer";var a=function a(){r.finish(t,n.status,n.responseText)};n.onload=function(){200==n.status?r.finish(t,200,new Uint8Array(n.response)):a()},n.onerror=a,n.send()}},t.prototype.start=function(t,e,i){var r=this.callbacks[t];try{if(r)return!0;this.callbacks[t]=r=[]}finally{r.push(e,i)}},t.prototype.finish=function(t,e,i){var r=this.callbacks[t];delete this.callbacks[t];for(var n=200==e?[i]:[e,i],a=n.length-1,s=r.length;a1e-4?(T=Math.abs(f*g-p*m)/T,f/=this.skeleton.scaleX,p=(m/=this.skeleton.scaleY)*T,g=f*T,b=Math.atan2(m,f)*t.MathUtils.radDeg):(f=0,m=0,b=90-Math.atan2(g,p)*t.MathUtils.radDeg);var w=r+s-b,A=r+o-b+90;v=t.MathUtils.cosDeg(w)*n,M=t.MathUtils.cosDeg(A)*a,x=t.MathUtils.sinDeg(w)*n,y=t.MathUtils.sinDeg(A)*a;this.a=f*v-p*x,this.b=f*M-p*y,this.c=m*v+g*x,this.d=m*M+g*y;break;case t.TransformMode.NoScale:case t.TransformMode.NoScaleOrReflection:var T,C=t.MathUtils.cosDeg(r),S=t.MathUtils.sinDeg(r),I=(f*C+p*S)/this.skeleton.scaleX,k=(m*C+g*S)/this.skeleton.scaleY;(T=Math.sqrt(I*I+k*k))>1e-5&&(T=1/T),I*=T,k*=T,T=Math.sqrt(I*I+k*k),this.data.transformMode==t.TransformMode.NoScale&&f*g-p*m<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(T=-T);var Y=Math.PI/2+Math.atan2(k,I),F=Math.cos(Y)*T,R=Math.sin(Y)*T;v=t.MathUtils.cosDeg(s)*n,M=t.MathUtils.cosDeg(90+o)*a,x=t.MathUtils.sinDeg(s)*n,y=t.MathUtils.sinDeg(90+o)*a;this.a=I*v+F*x,this.b=I*M+F*y,this.c=k*v+R*x,this.d=k*M+R*y}this.a*=this.skeleton.scaleX,this.b*=this.skeleton.scaleX,this.c*=this.skeleton.scaleY,this.d*=this.skeleton.scaleY},e.prototype.setToSetupPose=function(){var t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY,this.shearX=t.shearX,this.shearY=t.shearY},e.prototype.getWorldRotationX=function(){return Math.atan2(this.c,this.a)*t.MathUtils.radDeg},e.prototype.getWorldRotationY=function(){return Math.atan2(this.d,this.b)*t.MathUtils.radDeg},e.prototype.getWorldScaleX=function(){return Math.sqrt(this.a*this.a+this.c*this.c)},e.prototype.getWorldScaleY=function(){return Math.sqrt(this.b*this.b+this.d*this.d)},e.prototype.updateAppliedTransform=function(){var e=this.parent;if(!e)return this.ax=this.worldX,this.ay=this.worldY,this.arotation=Math.atan2(this.c,this.a)*t.MathUtils.radDeg,this.ascaleX=Math.sqrt(this.a*this.a+this.c*this.c),this.ascaleY=Math.sqrt(this.b*this.b+this.d*this.d),this.ashearX=0,void(this.ashearY=Math.atan2(this.a*this.b+this.c*this.d,this.a*this.d-this.b*this.c)*t.MathUtils.radDeg);var i=e.a,r=e.b,n=e.c,a=e.d,s=1/(i*a-r*n),o=this.worldX-e.worldX,h=this.worldY-e.worldY;this.ax=o*a*s-h*r*s,this.ay=h*i*s-o*n*s;var l=s*a,c=s*i,u=s*r,d=s*n,f=l*this.a-u*this.c,p=l*this.b-u*this.d,m=c*this.c-d*this.a,g=c*this.d-d*this.b;if(this.ashearX=0,this.ascaleX=Math.sqrt(f*f+m*m),this.ascaleX>1e-4){var v=f*g-p*m;this.ascaleY=v/this.ascaleX,this.ashearY=Math.atan2(f*p+m*g,v)*t.MathUtils.radDeg,this.arotation=Math.atan2(m,f)*t.MathUtils.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(p*p+g*g),this.ashearY=0,this.arotation=90-Math.atan2(g,p)*t.MathUtils.radDeg},e.prototype.worldToLocal=function(t){var e=1/(this.a*this.d-this.b*this.c),i=t.x-this.worldX,r=t.y-this.worldY;return t.x=i*this.d*e-r*this.b*e,t.y=r*this.a*e-i*this.c*e,t},e.prototype.localToWorld=function(t){var e=t.x,i=t.y;return t.x=e*this.a+i*this.b+this.worldX,t.y=e*this.c+i*this.d+this.worldY,t},e.prototype.worldToLocalRotation=function(e){var i=t.MathUtils.sinDeg(e),r=t.MathUtils.cosDeg(e);return Math.atan2(this.a*i-this.c*r,this.d*r-this.b*i)*t.MathUtils.radDeg+this.rotation-this.shearX},e.prototype.localToWorldRotation=function(e){e-=this.rotation-this.shearX;var i=t.MathUtils.sinDeg(e),r=t.MathUtils.cosDeg(e);return Math.atan2(r*this.c+i*this.d,r*this.a+i*this.b)*t.MathUtils.radDeg},e.prototype.rotateWorld=function(e){var i=this.a,r=this.b,n=this.c,a=this.d,s=t.MathUtils.cosDeg(e),o=t.MathUtils.sinDeg(e);this.a=s*i-o*n,this.b=s*r-o*a,this.c=o*i+s*n,this.d=o*r+s*a},e}();t.Bone=e}(spine||(spine={})),function(t){var e,i=function(){return function(i,r,n){if(this.x=0,this.y=0,this.rotation=0,this.scaleX=1,this.scaleY=1,this.shearX=0,this.shearY=0,this.transformMode=e.Normal,this.skinRequired=!1,this.color=new t.Color,i<0)throw new Error("index must be >= 0.");if(!r)throw new Error("name cannot be null.");this.index=i,this.name=r,this.parent=n}}();t.BoneData=i,function(t){t[t.Normal=0]="Normal",t[t.OnlyTranslation=1]="OnlyTranslation",t[t.NoRotationOrReflection=2]="NoRotationOrReflection",t[t.NoScale=3]="NoScale",t[t.NoScaleOrReflection=4]="NoScaleOrReflection"}(e=t.TransformMode||(t.TransformMode={}))}(spine||(spine={})),function(t){var e=function(){return function(t,e,i){this.name=t,this.order=e,this.skinRequired=i}}();t.ConstraintData=e}(spine||(spine={})),function(t){var e=function(){return function(t,e){if(!e)throw new Error("data cannot be null.");this.time=t,this.data=e}}();t.Event=e}(spine||(spine={})),function(t){var e=function(){return function(t){this.name=t}}();t.EventData=e}(spine||(spine={})),function(t){var e=function(){function e(t,e){if(this.bendDirection=0,this.compress=!1,this.stretch=!1,this.mix=1,this.softness=0,this.active=!1,!t)throw new Error("data cannot be null.");if(!e)throw new Error("skeleton cannot be null.");this.data=t,this.mix=t.mix,this.softness=t.softness,this.bendDirection=t.bendDirection,this.compress=t.compress,this.stretch=t.stretch,this.bones=new Array;for(var i=0;i180?f-=360:f<-180&&(f+=360);var w=e.ascaleX,A=e.ascaleY;if(n||a){switch(e.data.transformMode){case t.TransformMode.NoScale:case t.TransformMode.NoScaleOrReflection:p=i-e.worldX,m=r-e.worldY}var T=e.data.length*w,C=Math.sqrt(p*p+m*m);if(n&&CT&&T>1e-4)w*=g=(C/T-1)*o+1,s&&(A*=g)}e.updateWorldTransformWith(e.ax,e.ay,e.arotation+f*o,w,A,e.ashearX,e.ashearY)},e.prototype.apply2=function(e,i,r,n,a,s,o,h,l){var c=e.ax,u=e.ay,d=e.ascaleX,f=e.ascaleY,p=d,m=f,g=i.ascaleX,v=0,M=0,x=0;d<0?(d=-d,v=180,x=-1):(v=0,x=1),f<0&&(f=-f,x=-x),g<0?(g=-g,M=180):M=0;var y=i.ax,b=0,w=0,A=0,T=e.a,C=e.b,S=e.c,I=e.d,k=Math.abs(d-f)<=1e-4;!k||s?(b=0,w=T*y+e.worldX,A=S*y+e.worldY):(w=T*y+C*(b=i.ay)+e.worldX,A=S*y+I*b+e.worldY);var Y=e.parent;T=Y.a,C=Y.b,S=Y.c;var F,R,X=1/(T*(I=Y.d)-C*S),U=w-Y.worldX,E=A-Y.worldY,B=(U*I-E*C)*X-c,L=(E*T-U*S)*X-u,P=Math.sqrt(B*B+L*L),V=i.data.length*g;if(P<1e-4)return this.apply1(e,r,n,!1,s,!1,l),void i.updateWorldTransformWith(y,b,0,i.ascaleX,i.ascaleY,i.ashearX,i.ashearY);var D=((U=r-Y.worldX)*I-(E=n-Y.worldY)*C)*X-c,O=(E*T-U*S)*X-u,N=D*D+O*O;if(0!=h){h*=d*(g+1)*.5;var W=Math.sqrt(N),_=W-P-V*d+h;if(_>0){var z=Math.min(1,_/(2*h))-1;N=(D-=(z=(_-h*(1-z*z))/W)*D)*D+(O-=z*O)*O}}t:if(k){var G=(N-P*P-(V*=d)*V)/(2*P*V);G<-1?(G=-1,R=Math.PI*a):G>1?(G=1,R=0,s&&(p*=T=(Math.sqrt(N)/(P+V)-1)*l+1,o&&(m*=T))):R=Math.acos(G)*a,T=P+V*G,C=V*Math.sin(R),F=Math.atan2(O*T-D*C,D*T+O*C)}else{var q=(T=d*V)*T,j=(C=f*V)*C,Z=Math.atan2(O,D),H=-2*j*P,J=j-q;if((I=H*H-4*J*(S=j*P*P+q*N-q*j))>=0){var K=Math.sqrt(I);H<0&&(K=-K);var Q=(K=.5*-(H+K))/J,$=S/K,tt=Math.abs(Q)=-1&&S<=1&&(S=Math.acos(S),(I=(U=T*Math.cos(S)+P)*U+(E=C*Math.sin(S))*E)
");$("#experience .bottom-text").append('')}}}function itemsAreNotOnlyMythic(stackedItems){var nonMythicItemExists=false;Object.keys(stackedItems).forEach(function(itemKey){if(stackedItems[itemKey].item.rarity!=="mythic"){nonMythicItemExists=true}});return nonMythicItemExists}function mythicItemSelected(item_data){var use_button_disabled=false;switch(item_data.item.identifier){case"XP1":case"XP2":case"XP3":var max_mythic_book_upgrade_level=749;var girl_max_xp=xp_table[girl.rarity][max_mythic_book_upgrade_level][1];var girl_current_xp=girl.Xp.cur;var girl_xp_to_max=girl_max_xp-girl_current_xp;if(girl["Xp"].maxed||girl_xp_to_max=max_level_use_book||girl.Xp.cur>=xp_table[girl.rarity][max_level_use_book][1]){use_button_disabled=true}break;case"K1":case"K2":case"K3":var girlMaxAff=aff_table[girl.rarity][girl.nb_grades];var girlCurrentAff=girl.Affection.cur;var girlAffToMax=girlMaxAff-girlCurrentAff;if(girl.Affection.maxed||girl.can_upgrade||girlAffToMax=maxUsableGirlAffection||parseInt(girl.nb_grades)<=1){use_button_disabled=true}break}$("#girl-leveler-use-"+active_resource).prop("disabled",use_button_disabled)}function useItemsAjaxCallback(items,girl_data){useItems(items,girl_data,true);handleMaxOutButton(active_resource);handleMaxOutAllLevelsButton(active_resource)}function useItems(items,girl_data){var is_max_event=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(!items){return}var resource_value=0;var girlNextAwakeningBeforeUpdate=getXpUntilNextAwakening({girl:girl,xp_table:xp_table,awakening_requirements:awakening_requirements});items.forEach(function(item){resource_value+=item.quantity*item.item.value||0;updateGirlData(girl_data,item,is_max_event);removeOrDecreaseItem(item,item.quantity)});if(active_resource==="affection"){increaseAff(resource_value)}else{increaseXp(girl_data,girlNextAwakeningBeforeUpdate,resource_value)}}function removeOrDecreaseItem(){var item=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;var quantity_to_remove=arguments[1];if(item===null||!$('.inventory-slot[item-id="'+item.id_item+'"]').length){return}var $itemElement=$('.inventory-slot[item-id="'+item.id_item+'"]');var currentItemQuantity=parseInt($itemElement.find(".item-quantity").text());var newQuantity=currentItemQuantity-quantity_to_remove;if(newQuantity>0){$itemElement.find(".item-quantity").text(currentItemQuantity-quantity_to_remove);updateQuantityOfItem(item.id_item,newQuantity);$itemElement.find(".slot").attr("data-d",JSON.stringify(item))}else{var stackedItems=active_resource==="affection"?gifts:books;var itemIndex=stackedItems.findIndex(function(inventoryItem){return inventoryItem.id_item===item.id_item});stackedItems.splice(itemIndex,1);if(active_resource=="experience"){initBooksInventory()}else{initGiftsInventory()}selectFirstItem()}updateTotalFromItems()}function updateQuantityOfItem(itemStackID,newQuantity){var activeItemStack=active_resource==="affection"?gifts:books;var targetItem=activeItemStack.find(function(stackedItem){return stackedItem.id_item===itemStackID});targetItem.quantity=newQuantity}function updateGirlData(data,item,is_max_event){var value=0;if(item){value=item.quantity*item.item.value||0}if(data.affection){girl["Affection"]["left_before_update"]=girl["Affection"]["left"];girl["Affection"]["cur_before_update"]=girl["Affection"]["cur"];if(value){if(!is_max_event){girl["Affection"]["cur"]=girl["Affection"]["cur"]+value}}else{girl["Affection"]["cur"]=data.affection}girl["Affection"]["left"]=girl["Affection"]["max"]-girl["Affection"]["cur"];if(data.can_upgrade){girl["can_upgrade"]=data.can_upgrade.upgradable}}else if(!data.level_up){girl["Xp"]["left_before_update"]=girl["Xp"]["left"];girl["Xp"]["cur_before_update"]=girl["Xp"]["cur"];if(value){girl["Xp"]["cur"]=girl["Xp"]["cur"]+value}else{girl["Xp"]["cur"]=data.xp}girl["Xp"]["left"]=girl["Xp"]["max"]-girl["Xp"]["cur"]}else{Object.keys(data.girl).forEach(function(girl_data){girl[girl_data]=data.girl[girl_data]});girl.level=data.level}}function selectFirstItem(){var firstItem=$("#"+active_resource+" .inventory>.inventory-slot:not(.empty-slot)").first();if(firstItem.length){firstItem.addClass("selected");selected_item_id=firstItem.attr("item-id")}else{selected_item_id=null}}function addMaxOutButtonClick(resource){$("#girl-leveler-max-out-"+resource).click(function(event){$(event.currentTarget).prop("disabled",true);var item_type=resource==="affection"?"gift":"potion";var params={action:"get_girl_fill_items",type:item_type,id_girl:girl.id_girl};hh_ajax(params,function(data){data.resource=params.type;data.awakening_requirements=awakening_requirements;data.items=[];Object.keys(data.selection).forEach(function(item_id){var item_for_maxout=getItemInfo(item_id);item_for_maxout.quantity=data.selection[item_id];data.items.push(item_for_maxout)});HHPopupManager.show("girl_max_out_popup",data,useItemsAjaxCallback)});$(event.currentTarget).prop("disabled",false)})}function addMaxOutAllLevelsButtonClick(resource){$("#girl-leveler-max-out-all-levels-"+resource).click(function(event){$(event.currentTarget).prop("disabled",true);var item_type=resource==="affection"?"gift":"potion";var params={action:"get_girl_max_out_items",type:item_type,id_girl:girl.id_girl};var callbackAfterSucces=resource==="affection"?updateAffectionAndRedirect:updateAfterMaxAwakening;hh_ajax(params,function(data){data.resource=params.type;data.awakening_requirements=awakening_requirements;data.items=[];Object.keys(data.selection).forEach(function(item_id){var item_for_maxout=getItemInfo(item_id);item_for_maxout.quantity=data.selection[item_id];data.items.push(item_for_maxout)});if(data.resource==="potion"&&data.needed_gems||data.resource==="gift"&&data.needed_currency){HHPopupManager.show("girl_max_out_all_levels_popup",data,callbackAfterSucces)}else{HHPopupManager.show("girl_max_out_popup",data,useItemsAjaxCallback)}$(event.currentTarget).prop("disabled",false)})})}function updateAfterMaxAwakening(items,data){if(!items&&!data){return}useItemsAjaxCallback(items,data);player_gems_amount[girl.element].amount=data.hero.gems[girl.element].amount;girl.awakening_level=data.girl.awakening_level;handleMaxOutAllLevelsButton("experience");handleMaxOutButton("experience");$(".girl_exp_left").hide();$(".girl-awakening-exp-left").hide();anim_number($(".girl-level"),girl.level,data.girl.level-girl.level);updateTotalFromItems("experience");var owned_girls=high_level_girl_owned[data.girl.awakening_level];var girls_requirement=awakening_requirements[data.girl.awakening_level].girls_required>owned_girls;if(!girls_requirement){$("#awaken").hide()}}function updateAffectionAndRedirect(items,data){if(!items&&!data){return}var quest_index=girl.graded+1;loadingAnimation.start();window.location.replace(getDocumentHref("/quest/"+girl.upgrade_quests[quest_index]))}function getItemInfo(itemId){var stackedItems=active_resource==="affection"?gifts:books;var itemInfo={};stackedItems.forEach(function(item){if(item.id_item==itemId){itemInfo=item}});return itemInfo}function getResourceFromUrl(){var queryString=window.location.search;var urlParams=new URLSearchParams(queryString);if(urlParams.get("resource")!==null){return urlParams.get("resource")}else{return"experience"}}});$(function(){if(!$(".page-member-progression").length){return}init();function init(){initTiers();initProgressBar();initPassReminder();initClaimAllButton();initInfoPopUpContent();addClickEvents()}function addClickEvents(){addToogleInfoWindowClick();addClaimClick();addClaimAllClick()}function initTiers(){var all_tiers_html="";path_rewards.forEach(function(tier){all_tiers_html+=buildTierTemplate(tier)});$(".tiers").append(all_tiers_html)}function tierClaimStatus(tier){var status="";if(hero_has_pass){if(tier.free_reward_state=="claimed"&&tier.pass_reward_state=="claimed"){status="claimed"}else if(tier.free_reward_state=="unclaimed"||tier.pass_reward_state=="unclaimed"){status="unclaimed"}}else{status=tier.free_reward_state}return status}function buildTierTemplate(tier_data){var tier=tier_data.tier,free_reward_state=tier_data.free_reward_state,pass_reward_state=tier_data.pass_reward_state,pass_rewards=tier_data.pass_rewards,potions_required=tier_data.potions_required;var free_reward_claim_status=free_reward_state=="claimed"?"claimed-slot":"";var paid_reward_claim_status=pass_reward_state=="claimed"?"claimed-slot":"";var tier_claim_status=tierClaimStatus(tier_data);var free_reward_html=newReward.multipleSlot(tier_data.free_reward,"medium");var paid_slot_reward_html=FEATURE_PAYMENTS_AND_HC_FALLBACK?buildPaidRewardHtml(pass_rewards,pass_reward_state,paid_reward_claim_status):"";return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t'+buildClaimIconHtml()+"\n\t\t\t\t\t"+free_reward_html+'\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t'+buildClaimIconHtml()+'\n\t\t\t\t\t'+potions_required+"\n\t\t\t\t
\n\t\t\t\t"+paid_slot_reward_html+"\n\t\t\t
\n\t\t"}function buildPaidRewardHtml(pass_rewards,pass_reward_state,paid_reward_claim_status){var paid_reward_html=newReward.multipleSlot(pass_rewards,"medium paid-slot");return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t'+buildClaimIconHtml()+"\n\t\t\t\t\t"+paid_reward_html+"\n\t\t\t\t
\n\t\t\t
\n\t\t"}function buildClaimIconHtml(){return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t'}function initProgressBar(){var progress_bar=buildProgressBar();$(".tiers").append(progress_bar)}function buildProgressBar(){return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t'}function addClaimClick(){$(".claim-button").on("click",function(event){var params={action:path_prefix+"_claim",tier:$(event.currentTarget).attr("tier")};loadingAnimation.start();hh_ajax(params,function(data){Reward.handlePopup(data.rewards);var $tier=$("#tier-"+event.currentTarget.getAttribute("tier"));changeClassOfTierToClaimed($tier);updateClaimAllButton();loadingAnimation.stop()})})}function updateClaimAllButton(){var $claimable_tiers=$(".tiers .unclaimed");var visibility_state=$claimable_tiers.length>1?"visible":"hidden";$("#claim-all").css("visibility",visibility_state)}function initClaimAllButton(){var claim_all_button=buildClaimAllButtonHtml();$("#claim-all").append(claim_all_button);updateClaimAllButton()}function buildClaimAllButtonHtml(){return'\n\t\t\t\n\t\t"}function addClaimAllClick(){$("#claim-all").click(function(event){var params={action:path_prefix+"_claim_all"};loadingAnimation.start();hh_ajax(params,function(data){Reward.handlePopup(data.rewards);var $claimable_tiers=$(".tiers .unclaimed");for(var index=0;index<$claimable_tiers.length;index++){changeClassOfTierToClaimed($claimable_tiers[index])}updateClaimAllButton();loadingAnimation.stop()})})}function changeClassOfTierToClaimed(tier){$(tier).removeClass("unclaimed").addClass("claimed");$(tier).find(".free-slot").addClass("claimed-slot");if(hero_has_pass){$(tier).find(".paid-slots").addClass("claimed-slot").removeClass("paid-unclaimed")}}function initPassReminder(){if(!hero_has_pass&&FEATURE_PAYMENTS_AND_HC_FALLBACK){initPassRemiderPopUp();initPassRemiderBlock();addPassRemiderClickEvents();$(".tiers").addClass("no-pass")}}function initPassRemiderPopUp(){if(pass_reminder.show&&!isDisabledPopup("PassReminder")){displayPassReminder()}}function initPassRemiderBlock(){var get_pass_block=buildGetPassBlock();$(".tiers-container").prepend(get_pass_block)}function buildGetPassBlock(){var button_html=buildGetPassButtonHtml();return'\n\t\t\t\n\t\t'}function addPassRemiderClickEvents(){addGetPassClick();addPassReminderClick()}function addGetPassClick(){$("#get_pass_btn").on("click",onGetPassClick)}function addPassReminderClick(){$(".herro-pass-reminder").click(function(){displayPassReminder()})}function displayPassReminder(){var popupData={currently_available_rewards:pass_reminder.rewards.currently_available_rewards,all_rewards:pass_reminder.rewards.all_rewards,current_tier:current_tier,total_tiers:total_tiers,title_text:GT.design.hero_pass_bonus_rewards,rewards_now_text:pass_reminder.rewards_titles.currently_available_rewards,rewards_all_text:pass_reminder.rewards_titles.all_rewards,buttonHtml:buildGetPassButtonHtml(),buttonCallback:onGetPassClick};HHPopupManager.show("pass_reminder_popup",popupData,null)}function buildGetPassButtonHtml(){var button_no_payment_section=FEATURE_OFFERS_SHOP?"":'\n\t\t\t'+hh_prices.hero_pass+"";return'\n\t\t\t\n\t\t"}function onGetPassClick(){if(!FEATURE_PAYMENTS_AND_HC_FALLBACK){return}if(FEATURE_OFFERS_SHOP){HHPopupManager.show("no_HC",{init_load:true,prevent_events:true,desired_tab:"passes",desired_subtab:"hero_pass"},onHeroPassActivationFailed)}else{var $get_pass_btn=$("#get_pass_btn");hc_confirm(hh_prices["hero_pass"],function(){var ajax_params={action:"hero_pass_buy_hc"};disableButton($get_pass_btn,true);hh_ajax(ajax_params,reload,onHeroPassActivationFailed);updateClaimAllButton()})}}function onHeroPassActivationFailed(){disableButton($("#get_pass_btn"),false)}function addToogleInfoWindowClick(){var $info_container=$("#info_container");$(".button-notification-action").on("click",function(){$info_container.show()});$("#close_info").on("click",function(){$info_container.hide()})}function initInfoPopUpContent(){var info_container_html=buildInfoPopUpContent();$("#info_container").append(info_container_html)}function buildInfoPopUpContent(){return'\n\t\t\t\n\t\t\t\n\t\t"}});function buildHeroPassInfoHtml(){return FEATURE_PAYMENTS_AND_HC_FALLBACK?'\n\t\t\t\t\n\t\t\t\t\t
'+GT.design.hl_hero_pass+'
\n\t\t\t\t\t
'+GT.design.hl_hero_pass_description+"
\n\t\t\t\t
\n\t\t\t":""}var messengerEmojiList=[{identifier:"smile",source:IMAGES_URL+"/design/messenger/emoji/1f60a.svg"},{identifier:"wink",source:IMAGES_URL+"/design/messenger/emoji/1f609.svg"},{identifier:"laugh",source:IMAGES_URL+"/design/messenger/emoji/1f604.svg"},{identifier:"laugh_tears",source:IMAGES_URL+"/design/messenger/emoji/1f602.svg"},{identifier:"kissy_face",source:IMAGES_URL+"/design/messenger/emoji/1f617.svg"},{identifier:"kissy_face_wink",source:IMAGES_URL+"/design/messenger/emoji/1f618.svg"},{identifier:"heart_eyes",source:IMAGES_URL+"/design/messenger/emoji/1f60d.svg"},{identifier:"in_love",source:IMAGES_URL+"/design/messenger/emoji/1f970.svg"},{identifier:"pleading_face",source:IMAGES_URL+"/design/messenger/emoji/1f97a.svg"},{identifier:"cute_cry",source:IMAGES_URL+"/design/messenger/emoji/1f622.svg"},{identifier:"cowboy",source:IMAGES_URL+"/design/messenger/emoji/1f920.svg"},{identifier:"blow_steam_through_nose",source:IMAGES_URL+"/design/messenger/emoji/1f624.svg"},{identifier:"blush",source:IMAGES_URL+"/design/messenger/emoji/1f633.svg"},{identifier:"smile_side_eyes",source:IMAGES_URL+"/design/messenger/emoji/1f60f.svg"},{identifier:"party_person",source:IMAGES_URL+"/design/messenger/emoji/1f973.svg"},{identifier:"thirsty",source:IMAGES_URL+"/design/messenger/emoji/1f975.svg"},{identifier:"side_eyes",source:IMAGES_URL+"/design/messenger/emoji/1f440.svg"},{identifier:"monkey_hiding_eyes",source:IMAGES_URL+"/design/messenger/emoji/1f648.svg"},{identifier:"princess",source:IMAGES_URL+"/design/messenger/emoji/1f478.svg"},{identifier:"prince",source:IMAGES_URL+"/design/messenger/emoji/1f934.svg"},{identifier:"angel",source:IMAGES_URL+"/design/messenger/emoji/1f47c-1f3fc.svg"},{identifier:"devil",source:IMAGES_URL+"/design/messenger/emoji/1f608.svg"},{identifier:"water_drops",source:IMAGES_URL+"/design/messenger/emoji/1f4a6.svg"},{identifier:"eggplant",source:IMAGES_URL+"/design/messenger/emoji/1f346.svg"},{identifier:"peach",source:IMAGES_URL+"/design/messenger/emoji/1f351.svg"},{identifier:"banana",source:IMAGES_URL+"/design/messenger/emoji/1f34c.svg"},{identifier:"cherries",source:IMAGES_URL+"/design/messenger/emoji/1f352.svg"},{identifier:"rose",source:IMAGES_URL+"/design/messenger/emoji/1f339.svg"},{identifier:"crown",source:IMAGES_URL+"/design/messenger/emoji/1f451.svg"},{identifier:"volcano",source:IMAGES_URL+"/design/messenger/emoji/1f30b.svg"},{identifier:"fire",source:IMAGES_URL+"/design/messenger/emoji/1f525.svg"},{identifier:"sparkles",source:IMAGES_URL+"/design/messenger/emoji/2728.svg"},{identifier:"heart",source:IMAGES_URL+"/design/messenger/emoji/2764.svg"},{identifier:"heart_with_sparkles",source:IMAGES_URL+"/design/messenger/emoji/1f496.svg"},{identifier:"broken_heart",source:IMAGES_URL+"/design/messenger/emoji/1f494.svg"},{identifier:"bunny",source:IMAGES_URL+"/design/messenger/emoji/1f430.svg"},{identifier:"kitty",source:IMAGES_URL+"/design/messenger/emoji/1f431.svg"},{identifier:"chick",source:IMAGES_URL+"/design/messenger/emoji/1f423.svg"},{identifier:"puppy",source:IMAGES_URL+"/design/messenger/emoji/1f436.svg"},{identifier:"fox",source:IMAGES_URL+"/design/messenger/emoji/1f98a.svg"},{identifier:"lgbtq_flag",source:IMAGES_URL+"/design/messenger/emoji/1f3f3-fe0f-200d-1f308.svg"},{identifier:"bunny_girls",source:IMAGES_URL+"/design/messenger/emoji/1f46f-200d-2640-fe0f.svg"},{identifier:"bunny_boys",source:IMAGES_URL+"/design/messenger/emoji/1f46f-200d-2642-fe0f.svg"},{identifier:"nails",source:IMAGES_URL+"/design/messenger/emoji/1f485.svg"},{identifier:"party",source:IMAGES_URL+"/design/messenger/emoji/1f389.svg"},{identifier:"hole",source:IMAGES_URL+"/design/messenger/emoji/1f44c.svg"},{identifier:"one_in_the_hole",source:IMAGES_URL+"/design/messenger/emoji/261d.svg"},{identifier:"two_in_the_hole",source:IMAGES_URL+"/design/messenger/emoji/270c.svg"},{identifier:"surprise_attack",source:IMAGES_URL+"/design/messenger/emoji/1f596.svg"},{identifier:"fist_bump",source:IMAGES_URL+"/design/messenger/emoji/270a.svg"},{identifier:"tongue_out",source:IMAGES_URL+"/design/messenger/emoji/1f61b.svg"}];function initEmoji(){$(".page-messenger .message-text").each(function(){var messageContents=$(this).html();if(messageContents.includes("[emoji_")){messengerEmojiList.forEach(function(emoji){messageContents=messageContents.replace("[emoji_"+emoji.identifier+"]",'')})}$(this).html(messageContents)})}$(document).ready(function(){initEmoji()});function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}var _currentBattleRound=0;var _rewards={};var _rounds=[];function _getGirl(parentSelector,id){if(!id)return $(parentSelector+" [data-girl-id]").first();return $(parentSelector+' [data-girl-id="'+id+'"]')}function _toggleTeamGirl(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{e:data.$e,p:data.show?{backgroundColor:"#983455"}:{backgroundColor:"#300912"},o:{duration:100,sequenceQueue:runInSequence}}}function _showAttackGirl(data){var _p;var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var prop=data.direction;return{e:data.$e,p:(_p={},_defineProperty(_p,prop,0),_defineProperty(_p,"width",180),_p),o:{duration:300,sequenceQueue:runInSequence,begin:function begin(img){$(data.teamParentSelector+" .team-hexagon-container .team-member-container").removeClass("selected");data.$teamGirl.addClass("selected");$(img).addClass("js-displayed-girl");if(data.fadeBench){$(".new-battle-image").velocity({opacity:1},{duration:1500,queue:false})}}}}}function _hideAttackGirl(data){var _p2;var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(data.prematureEnd)return{e:null,p:{none:0}};if(data.$e.length===0){return{e:$("#battle"),p:{none:0},o:{duration:0}}}var prop=data.direction;return{e:data.$e,p:(_p2={},_defineProperty(_p2,prop,data.girlsCount*55-10),_defineProperty(_p2,"width",90),_defineProperty(_p2,"zIndex",data.$e.index()+_currentBattleRound),_p2),o:{duration:250,sequenceQueue:runInSequence,complete:function complete(img){$(img).removeClass("js-displayed-girl");$(img).siblings().velocity(_defineProperty({},prop,"-=55px"),{duration:250});var attaker_img_index=$(img).index()+1;var girls_team=$(img).parent().children();var girls_have_attacked=girls_team.slice(0,attaker_img_index);var girls_will_attack=girls_team.slice(attaker_img_index);girls_will_attack.map(function(index,girl_img){$(girl_img).css("z-index",attaker_img_index+girls_will_attack.length-index)});girls_have_attacked.map(function(index,girl_img){$(girl_img).css("z-index",attaker_img_index-index)})}}}}function _girlEmbiggen(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(data.prematureEnd)return{e:null,p:{none:0}};return{e:data.$e,p:{scaleX:"1.15",scaleY:"1.15"},o:{duration:250,sequenceQueue:runInSequence}}}function _girlNormalize(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{e:data.$e,p:{scaleX:"1",scaleY:"1",translateX:0},o:{duration:250,sequenceQueue:runInSequence}}}function _girlHit(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var $attacker_parent_block=data.direction==="right"?$(".new-battle-player"):$(".new-battle-opponent");return{e:data.$e,p:{translateX:[(data.direction=="left"?"-":"")+"20px","spring"]},o:{duration:600,sequenceQueue:runInSequence,begin:function begin(el){$(el).addClass("new-battle-girl-glow");$(".new-battle-hero-container").removeClass("attacking");$attacker_parent_block.addClass("attacking")},complete:function complete(el){$(el).removeClass("new-battle-girl-glow")}}}}function _egoBar(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(data.remaining<0)data.remaining=0;var widthRemaining=data.remaining/data.initial*100;return{e:data.$e,p:{width:widthRemaining+"%"},o:{duration:250,sequenceQueue:runInSequence,begin:function begin(el){$(el).siblings().find(".new-battle-hero-ego-value").data("total-ego",data.initial)},complete:function complete(el){if(widthRemaining==0&&$(el).hasClass("new-battle-hero-ego-initial-bar")){Reward.handlePopup(_rewards);objectivePopup.show(_rewards)}}}}}function _changeEgo(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{e:data.$e,p:{opacity:[0,1],translateY:-20,translateZ:0},o:{duration:1e3,sequenceQueue:runInSequence,begin:function begin(){if(data.hasOwnProperty("change_before")){$(data.$e).text(number_format_lang(data.change_before))}},complete:function complete(el){$(el).siblings(".new-battle-hero-ego-value").text(GT.ego+" "+data.remaining.toLocaleString());$(el).velocity({translateY:0},0)}}}}function _hitEffects(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(!data.isCritical)return{e:data.$e,p:{none:0},o:{sequenceQueue:runInSequence}};return{e:data.$e,p:{opacity:[0,1],translateY:-20,translateZ:0},o:{duration:1e3,sequenceQueue:runInSequence,complete:function complete(el){$(el).velocity({translateY:0},0)}}}}function _getNextRoundData(){return{roundData:_rounds.shift(),roundIndex:_currentBattleRound++}}function _roundEnd(){return{e:$("#battle"),p:{none:0},o:{duration:0,complete:function complete(){startRound()}}}}function _showSkill(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return{e:data.$e,p:{opacity:["1"],bottom:["12rem"],scaleX:[2],scaleY:[2]},o:{duration:1500,sequenceQueue:runInSequence,begin:function begin(el){data.$e.find(".skill-name").html(data.name);data.$e.find(".skill-description").html(data.description)},complete:function complete(el){data.$e.css("opacity","0").css("bottom","0").css("transform","scale(1)")}}}}function _showSkillInList(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{e:data.$e,p:{none:0},o:{duration:400,sequenceQueue:runInSequence,begin:function begin(el){if(data.type==="shield"){data.$e.find(".skill-amount").text(number_format_lang(data.amount))}if(data.round){data.$e.find(".skill-name").text(data.round)}data.$e.find(".skill-name").text(data.name);data.$e.addClass("active slideIn")}}}}function _updateSkillInList(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var delay=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;return{e:data.$e,p:{none:0},o:{duration:400,delay:delay,sequenceQueue:runInSequence,begin:function begin(){data.$e.find(".skill-rounds").html(data.rounds).css("transform","scale(1.5)")},complete:function complete(){data.$e.find(".skill-rounds").css("transform","scale(1)")}}}}function _updateSkillShield(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return{e:data.$e,p:{none:0},o:{duration:2e3,sequenceQueue:runInSequence,begin:function begin(){anim_number(data.$e.find(".skill-amount"),data.amount,data.blocked_damage);data.$e.find(".blocked-damage").text(number_format_lang(data.blocked_damage)).css("opacity","1");$(data.$e.find(".blocked-damage")).velocity({translateY:-80},0)},complete:function complete(){$(data.$e.find(".blocked-damage")).css("opacity","0").css("transform","none")}}}}function _hideSkillInList(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return{e:data.$e,p:{none:0},o:{duration:400,sequenceQueue:runInSequence,begin:function begin(){data.$e.addClass("slideOut")},complete:function complete(){data.$e.css("display","none")}}}}function _getCurrentGirlId(){var who=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"player";var round_index=arguments[1];var team_girls_amount=who==="player"?$(".new-battle-player .new-battle-image").length:$(".new-battle-opponent .new-battle-image").length;var girl_index=0;if(team_girls_amount>1){if(round_index0?number_format_lang(hero_heal):"");var $opponent_heal_done=$(".new-battle-opponent .new-battle-hero-heal-done-text").text(opponent_heal>0?number_format_lang(opponent_heal):"");var $player_critical=$(".new-battle-opponent .new-battle-hero-critical-text");var $opponent_critical=$(".new-battle-player .new-battle-hero-critical-text");var player_girls_count=$(".new-battle-player .new-battle-image").length;var opponent_girls_count=$(".new-battle-opponent .new-battle-image").length;var premature_end=opponent_remaining_ego_before_heal<=0;var $player_skill_animation=$(".new-battle-player .skill-animation");var $player_skill_list=$(".new-battle-player .skill-list");var $player_skill_list_stun=$(".new-battle-player .skill-list .skill-stun");var $player_skill_list_reflect=$(".new-battle-player .skill-list .skill-reflect");var $player_skill_list_shield=$(".new-battle-player .skill-list .skill-shield");var $opponent_skill_animation=$(".new-battle-opponent .skill-animation");var $opponent_skill_list=$(".new-battle-opponent .skill-list");var $opponent_skill_list_stun=$(".new-battle-opponent .skill-list .skill-stun");var $opponent_skill_list_reflect=$(".new-battle-opponent .skill-list .skill-reflect");var $opponent_skill_list_shield=$(".new-battle-opponent .skill-list .skill-shield");function _buildArrayOfHitSequence(who){var $damage_done=who==="hero"?$player_damage_done:$opponent_damage_done;var $heal_done=who==="hero"?$player_heal_done:$opponent_heal_done;var $critical=who==="hero"?$player_critical:$opponent_critical;var is_critical=round.roundData[who+"_hit"].is_critical;var $attaker_girl=who==="hero"?$current_player_attack_girl:$current_opponent_attack_girl;var $attaker_bar=who==="hero"?$player_bar:$opponent_bar;var $attacker_damage_bar=who==="hero"?$player_damage_bar:$opponent_damage_bar;var $attaker_heal_bar=who==="hero"?$player_heal_bar:$opponent_heal_bar;var attack_direction=who==="hero"?"right":"left";var attaker_remaining_ego_after_heal=round.roundData[who+"_hit"].attacker.remaining_ego;var attaker_initial_ego=who==="hero"?player_initial_ego:opponent_initial_ego;var $defender_girl=who==="hero"?$current_opponent_attack_girl:$current_player_attack_girl;var $defender_bar=who==="hero"?$opponent_bar:$player_bar;var $defender_damage_bar=who==="hero"?$opponent_damage_bar:$player_damage_bar;var $defender_heal_bar=who==="hero"?$opponent_heal_bar:$player_heal_bar;var $defender_shield_bar=who==="hero"?$opponent_shiled_bar:$player_shiled_bar;var defend_direction=who==="hero"?"left":"right";var defender_remaining_ego_before_heal=who==="hero"?opponent_remaining_ego_before_heal:hero_remaining_ego_before_heal;var defender_initial_ego=who==="hero"?opponent_initial_ego:player_initial_ego;var defender_remaining_ego=round.roundData[who+"_hit"].defender.remaining_ego;var is_defender_has_shield=round.roundData[who+"_hit"].defender?round.roundData[who+"_hit"].defender.shield:false;var is_attacker_has_shield=round.roundData[who+"_hit"].attacker?round.roundData[who+"_hit"].attacker.shield:false;if(is_attacker_has_shield){if(!round.roundData[who+"_skill_applied"]){var attacker_shiled_destroyed_part=round.roundData[who+"_hit"].attacker.shield.initial_shield_amount-round.roundData[who+"_hit"].attacker.shield.shield_amount;attaker_initial_ego+=round.roundData[who+"_hit"].attacker.shield.initial_shield_amount;attaker_remaining_ego_after_heal+=attacker_shiled_destroyed_part}}if(is_defender_has_shield){var defender=who==="hero"?"hero":"opponent";if(!round.roundData[defender+"_skill_applied"]){var defender_shiled_destroyed_part=round.roundData[who+"_hit"].defender.shield.initial_shield_amount-round.roundData[who+"_hit"].defender.shield.shield_amount;defender_initial_ego+=round.roundData[who+"_hit"].defender.shield.initial_shield_amount;defender_remaining_ego_before_heal+=defender_shiled_destroyed_part;defender_remaining_ego+=defender_shiled_destroyed_part}var $defender_skill_in_list=who==="hero"?$opponent_skill_list_shield:$player_skill_list_shield;var defender_shield_amount=round.roundData[who+"_hit"].defender.shield.shield_amount;var defender_shield_last_amount=round.roundData[who+"_hit"].defender.shield.last_shield_amount;var defender_shield_blocked_demage=round.roundData[who+"_hit"].blocked_damage;var defender_remaining_ego_with_sheild=defender_remaining_ego+defender_shield_amount;sequence.push(_girlHit({$e:$attaker_girl,direction:attack_direction}),_changeEgo({$e:$damage_done,remaining:defender_remaining_ego},false),_hitEffects({$e:$critical,isCritical:is_critical},false),_changeEgo({$e:$heal_done,remaining:attaker_remaining_ego_after_heal},false),_updateSkillShield({$e:$defender_skill_in_list,amount:defender_shield_last_amount,blocked_damage:-defender_shield_blocked_demage},false));if(defender_shield_amount==0){sequence.push(_girlNormalize({$e:$attaker_girl}),_egoBar({$e:$defender_damage_bar,remaining:defender_remaining_ego_with_sheild,initial:defender_remaining_ego_with_sheild},true),_egoBar({$e:$defender_bar,remaining:defender_remaining_ego_with_sheild,initial:defender_remaining_ego_with_sheild},true),_changeEgo({$e:$heal_done,remaining:defender_remaining_ego},false),_egoBar({$e:$defender_bar,remaining:defender_remaining_ego,initial:defender_initial_ego},true),_egoBar({$e:$attaker_heal_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego},false),_egoBar({$e:$defender_heal_bar,remaining:defender_remaining_ego_before_heal,initial:defender_initial_ego},false),_egoBar({$e:$defender_damage_bar,remaining:defender_remaining_ego_before_heal,initial:defender_initial_ego},true),_egoBar({$e:$defender_shield_bar,remaining:defender_shield_amount,initial:defender_initial_ego},false),_hideSkillInList({$e:$defender_skill_in_list}))}else{sequence.push(_girlNormalize({$e:$attaker_girl}),_egoBar({$e:$defender_damage_bar,remaining:defender_remaining_ego,initial:defender_initial_ego},true),_egoBar({$e:$defender_bar,remaining:defender_remaining_ego,initial:defender_initial_ego},true),_egoBar({$e:$attaker_heal_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego},false),_egoBar({$e:$defender_heal_bar,remaining:defender_remaining_ego_before_heal,initial:defender_initial_ego},false),_egoBar({$e:$defender_shield_bar,remaining:defender_initial_ego,initial:defender_initial_ego},true))}}else if(round.roundData[who+"_hit"]){sequence.push(_girlEmbiggen({$e:$attaker_girl}),_girlHit({$e:$attaker_girl,direction:attack_direction}),_changeEgo({$e:$damage_done,remaining:defender_remaining_ego},false),_hitEffects({$e:$critical,isCritical:is_critical},false),_changeEgo({$e:$heal_done,remaining:attaker_remaining_ego_after_heal},false),_egoBar({$e:$defender_bar,remaining:defender_remaining_ego_before_heal,initial:defender_initial_ego},false),_egoBar({$e:$defender_heal_bar,remaining:defender_remaining_ego,initial:defender_initial_ego},false),_egoBar({$e:$attacker_damage_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego},false),_egoBar({$e:$attaker_heal_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego},false),_girlNormalize({$e:$attaker_girl}),_egoBar({$e:$defender_damage_bar,remaining:defender_remaining_ego_before_heal,initial:defender_initial_ego},false),_egoBar({$e:$attaker_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego},false));var attacker_get_reflect=round.roundData[who+"_hit"].attacker.burn;var reflect_rounds=attacker_get_reflect?round.roundData[who+"_hit"].attacker.burn.rounds_left:false;if(attacker_get_reflect&&(reflect_rounds==1||reflect_rounds==0)){var reflect_damage=round.roundData[who+"_hit"].attacker.burn.hit.total_damage;var $burn_damage_done=who==="hero"?$opponent_damage_done:$player_damage_done;var attaker_remaining_ego_after_reflect=attaker_remaining_ego_after_heal-reflect_damage;var $skill_reflect_in_list=who==="hero"?$opponent_skill_list_reflect:$player_skill_list_reflect;sequence.push(_updateSkillInList({$e:$skill_reflect_in_list,rounds:reflect_rounds}),_girlHit({$e:$defender_girl,direction:defend_direction}),_changeEgo({$e:$burn_damage_done,remaining:attaker_remaining_ego_after_reflect,change_before:reflect_damage},false),_egoBar({$e:$attaker_bar,remaining:attaker_remaining_ego_after_reflect,initial:attaker_initial_ego},false),_egoBar({$e:$attaker_heal_bar,remaining:attaker_remaining_ego_after_reflect,initial:attaker_initial_ego},false),_girlNormalize({$e:$current_player_attack_girl}),_egoBar({$e:$attacker_damage_bar,remaining:attaker_remaining_ego_after_reflect,initial:attaker_initial_ego},false));if(reflect_rounds==0){sequence.push(_hideSkillInList({$e:$skill_reflect_in_list}))}}}}function _buildappliyngSkillBeforeHit(who){if(round.roundData[who+"_skill_applied"]){var applied_skill_type=round.roundData[who+"_skill_applied"].skill_type;var $skill_animation=who==="hero"?$player_skill_animation:$opponent_skill_animation;var skill_name=round.roundData[who+"_skill_applied"].named_attack_text;var skill_description=round.roundData[who+"_skill_applied"].description;if(applied_skill_type==="execute"){sequence.push(_showSkill({$e:$skill_animation,name:skill_name,description:skill_description},true))}}}function _buildappliyngSkillAfterHit(who){if(round.roundData[who+"_skill_applied"]){var applied_skill_type=round.roundData[who+"_skill_applied"].skill_type;var $skill_animation=who==="hero"?$player_skill_animation:$opponent_skill_animation;var skill_name=round.roundData[who+"_skill_applied"].named_attack_text;var skill_description=round.roundData[who+"_skill_applied"].description;if(applied_skill_type==="stun"||applied_skill_type==="reflect"){sequence.push(_showSkill({$e:$skill_animation,name:skill_name,description:skill_description},true));if(applied_skill_type==="stun"){var $skill_stun_in_list=who==="hero"?$opponent_skill_list_stun:$player_skill_list_stun;sequence.push(_showSkillInList({$e:$skill_stun_in_list,type:applied_skill_type,name:skill_name},true))}else if(applied_skill_type==="reflect"){var $skill_reflect_in_list=who==="hero"?$player_skill_list_reflect:$opponent_skill_list_reflect;sequence.push(_showSkillInList({$e:$skill_reflect_in_list,type:applied_skill_type,name:skill_name},true))}}else if(applied_skill_type==="shield"){var shield_initial_amount=round.roundData[who+"_hit"].attacker.shield.initial_shield_amount;var $skill_shield_in_list=who==="hero"?$player_skill_list_shield:$opponent_skill_list_shield;var $ego_bar=who==="hero"?$player_bar:$opponent_bar;var $heal_bar=who==="hero"?$player_heal_bar:$opponent_heal_bar;var $damage_bar=who==="hero"?$player_damage_bar:$opponent_damage_bar;var $shiled_bar=who==="hero"?$player_shiled_bar:$opponent_shiled_bar;var $heal_done=who==="hero"?$player_heal_done:$opponent_heal_done;var attaker_remaining_ego_after_heal=round.roundData[who+"_hit"].attacker.remaining_ego;var attaker_initial_ego=who==="hero"?player_initial_ego:opponent_initial_ego;var attaker_skill_shield_amount=round.roundData[who+"_hit"].attacker.shield.shield_amount;sequence.push(_showSkill({$e:$skill_animation,type:applied_skill_type,amount:shield_initial_amount,name:skill_name,description:skill_description},true),_showSkillInList({$e:$skill_shield_in_list,type:applied_skill_type,amount:shield_initial_amount,name:skill_name}),_egoBar({$e:$ego_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego+attaker_skill_shield_amount},false),_egoBar({$e:$heal_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego+attaker_skill_shield_amount},false),_egoBar({$e:$damage_bar,remaining:attaker_remaining_ego_after_heal,initial:attaker_initial_ego+attaker_skill_shield_amount},false),_egoBar({$e:$shiled_bar,remaining:attaker_remaining_ego_after_heal+attaker_skill_shield_amount,initial:attaker_initial_ego+attaker_skill_shield_amount},false),_changeEgo({$e:$heal_done,remaining:attaker_remaining_ego_after_heal+attaker_skill_shield_amount},false))}}}function _buildUpdateSkillAfterHit(who){var defender=who==="hero"?"opponent":"hero";if(round.roundData[defender+"_hit"]){if(round.roundData[defender+"_hit"].defender.stun){var stun_rounds=round.roundData[defender+"_hit"].defender.stun.rounds_left;var $skill_list=who==="hero"?$opponent_skill_list:$player_skill_list;if(stun_rounds==1){sequence.push(_updateSkillInList({$e:$skill_list,type:"stun"}))}else if(stun_rounds==0){var $reflect_skill_in_list=who==="hero"?$opponent_skill_list_stun:$player_skill_list_stun;sequence.push(_hideSkillInList({$e:$reflect_skill_in_list}))}}}}function _buildHideSkillAfterHit(who){if(round.roundData[who+"_hit"]){if(round.roundData[who+"_hit"].attacker){if(round.roundData[who+"_hit"].attacker.burn){var reflect_rounds=round.roundData[who+"_hit"].attacker.burn.rounds_left;if(reflect_rounds==0){var $reflect_skill_in_list=who==="hero"?$opponent_skill_list_reflect:$player_skill_list_reflect;sequence.push(_hideSkillInList({$e:$reflect_skill_in_list}))}}}}if(round.roundData[who+"_hit"].defender.stun){var stun_rounds=round.roundData[who+"_hit"].defender.stun.rounds_left;var $skill_list=who==="hero"?$opponent_skill_list:$player_skill_list;if(stun_rounds==1){sequence.push(_updateSkillInList({$e:$skill_list,rounds:stun_rounds}))}}}if(round.roundIndex===0){var $first_player_attack_girl=$(".new-battle-player .new-battle-girl-container .new-battle-image").first();var $first_opponent_attack_girl=$(".new-battle-opponent .new-battle-girl-container .new-battle-image").first();sequence.push(_showAttackGirl({$e:$first_player_attack_girl,$teamGirl:$current_player_team_girl,teamParentSelector:".new-battle-player",direction:"none",fadeBench:true}),_showAttackGirl({$e:$first_opponent_attack_girl,$teamGirl:$current_opponent_team_girl,teamParentSelector:".new-battle-opponent",direction:"none"},false))}else{sequence.push(_hideAttackGirl({$e:$last_player_girl,direction:"right",girlsCount:player_girls_count}),_showAttackGirl({$e:$current_player_attack_girl,$teamGirl:$current_player_team_girl,teamParentSelector:".new-battle-player",direction:"right"},false))}if(round.roundData.hero_hit){_buildappliyngSkillBeforeHit("hero");_buildArrayOfHitSequence("hero");_buildappliyngSkillAfterHit("hero");_buildUpdateSkillAfterHit("hero");_buildHideSkillAfterHit("hero")}else{sequence.push(_girlNormalize({$e:$current_player_attack_girl}));if(round.roundData.opponent_hit.defender.stun){var skill_stun_round=round.roundData.opponent_hit.defender.stun.rounds_left;if(skill_stun_round==1){sequence.push(_hideSkillInList({$e:$player_skill_list_stun}))}}}if(round.roundIndex===0){sequence.push(_girlEmbiggen({$e:$current_opponent_attack_girl,prematureEnd:premature_end}),_girlNormalize({$e:$current_opponent_attack_girl}))}else{sequence.push(_girlNormalize({$e:$current_player_attack_girl}),_egoBar({$e:$opponent_damage_bar,remaining:opponent_remaining_ego_before_heal,initial:opponent_initial_ego},false),_egoBar({$e:$player_bar,remaining:hero_remaining_ego_after_heal,initial:player_initial_ego},false),_hideAttackGirl({$e:$last_opponent_girl,prematureEnd:premature_end,direction:"left",girlsCount:opponent_girls_count}),_showAttackGirl({$e:$current_opponent_attack_girl,$teamGirl:$current_opponent_team_girl,teamParentSelector:".new-battle-opponent",direction:"left"},false),_girlEmbiggen({$e:$current_opponent_attack_girl}))}if(round.roundData.opponent_hit){_buildappliyngSkillBeforeHit("opponent");_buildArrayOfHitSequence("opponent");_buildappliyngSkillAfterHit("opponent");_buildUpdateSkillAfterHit("opponent");_buildHideSkillAfterHit("opponent")}else{sequence.push(_girlNormalize({$e:$current_opponent_attack_girl}));if(round.roundData.hero_hit.defender.stun){var _skill_stun_round=round.roundData.hero_hit.defender.stun.rounds_left;if(_skill_stun_round==1){sequence.push(_hideSkillInList({$e:$opponent_skill_list_stun}))}}}sequence.push(_roundEnd());$.Velocity.RunSequence(sequence)}function setRounds(rounds){_rounds=rounds}function setRewards(rewards,objective_points){_rewards=rewards;_rewards.objective_points=objective_points}function battleEnd(){$(".velocity-animating").velocity("stop",true);this.setRounds([]);Reward.handlePopup(_rewards);objectivePopup.show(_rewards)}$(function(){if(!$("#battle .new-battle-hero-container").length>0){return}var $team_containers=$(".new-battle-hero-team-container");$($team_containers[0]).append(buildPlayerTeam(hero_fighter,true,true));$($team_containers[1]).append(buildPlayerTeam(opponent_fighter,false,true));$(".team-hexagon").addClass("hexagon-size-xsmall");var urlParams=new URLSearchParams(window.location.search);var action="do_battles_"+(""+battle_type);hh_ajax({action:action,id_opponent:urlParams.get("id_opponent"),bb_team_index:urlParams.get("bb_team_index"),number_of_battles:1},function(data){setRounds(data.rounds);startRound();setRewards(data.rewards,data.objective_points);setTimeout(function(){$("#new-battle-skip-btn").show()},2e3)});$("#new-battle-skip-btn").on("click",function(){$(this).hide();battleEnd()})});$(function(){if(!$("#pvp-container").length>0){return}var battle_speed=localStorage.getItem("battle_speed")?localStorage.getItem("battle_speed"):1;var debug=false;var _round_index=0;var _rewards={};var _rounds=[];var ellipsisCoordinates=[];var step_between_points=2*Math.PI/19;var relative_horizontal_axis=-22.4;var relative_vertical_axis=-45.6;var radius=50;for(var points=0;points<2*Math.PI;points+=step_between_points){var multiplier=-3;var x=relative_horizontal_axis-radius*Math.cos(points+90);var y=relative_vertical_axis+radius*Math.sin(points+90);ellipsisCoordinates.push({incrementX:x*multiplier,incrementY:y*multiplier})}ellipsisCoordinates.push({incrementX:0,incrementY:0});var _status_effects_round_counter={hero:{},opponent:{}};var _max_ego={hero:{},opponent:{}};var _max_shields={hero:{},opponent:{}};if(current_page==="labyrinth-battle"){$("#bg_all .fixed_scaled").append('')}initBattleV4();function initBattleV4(){initLocalData();initSpeedAnimationButtons();initBattleTeamHtml("hero");initBattleTeamHtml("opponent");initGirlsImages("hero");initGirlsImages("opponent");startPVPBattle();addClickEvents()}function initLocalData(){Object.keys(hero_fighter_v4.fighters).forEach(function(index){var fighter_data=hero_fighter_v4.fighters[index];_status_effects_round_counter.hero[fighter_data.id_girl]={};_max_ego.hero[fighter_data.id_girl]=fighter_data.initial_ego;_max_shields.hero[fighter_data.id_girl]=0});Object.keys(opponent_fighter_v4.fighters).forEach(function(index){var fighter_data=opponent_fighter_v4.fighters[index];_status_effects_round_counter.opponent[fighter_data.id_girl]={};_max_ego.opponent[fighter_data.id_girl]=fighter_data.initial_ego;_max_shields.opponent[fighter_data.id_girl]=0})}function initSpeedAnimationButtons(){var html='\n\t\t\t\n\t\t\t\t
'+GT.design.pvp_battle_speed+'
\n\t\t\t\t
\n\t\t\t
\n\t\t";$("#pvp-container").append(html)}function addClickEvents(){addClickSkipBattle();addClickSpeedSwitcher()}function addClickSkipBattle(){$("#new-battle-skip-btn").on("click",function(e){$(e.currentTarget).hide();battleEnd()})}function addClickSpeedSwitcher(){$("body").on("click",".animation-speed-switcher",function(e){var speed_array=[1,2,4,8];var $speed_switcher=$(e.currentTarget);var current_speed_index=speed_array.indexOf(Number($speed_switcher.attr("speed")));var next_speed=speed_array[current_speed_index+1]||1;battle_speed=next_speed;localStorage.setItem("battle_speed",next_speed);$speed_switcher.text("x"+next_speed);$speed_switcher.attr("speed",next_speed)})}function showSkipbutton(){setTimeout(function(){$("#new-battle-skip-btn").show()},2e3)}function initBattleTeamHtml(who){$("#pvp-container").append(buildBattleTeamHtml(who))}function buildBattleTeamHtml(who){return'\n\t\t\t\n\t\t\t\t'+buildPvpHexagon(who)+'\n\t\t\t\t
\n\t\t\t
\n\t\t'}function buildPvpHexagon(who){var is_hero=who==="hero";var team_data=is_hero?hero_fighter_v4.fighters:opponent_fighter_v4.fighters;return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t'+buildPvpTeamMember(team_data[getGirlHexagonPosition(0,is_hero)],who)+"\n\t\t\t\t\t\t"+buildPvpTeamMember(team_data[getGirlHexagonPosition(1,is_hero)],who)+'\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t'+buildPvpTeamMember(team_data[getGirlHexagonPosition(2,is_hero)],who)+"\n\t\t\t\t\t\t"+buildPvpTeamMember(team_data[getGirlHexagonPosition(3,is_hero)],who)+"\n\t\t\t\t\t\t"+buildPvpTeamMember(team_data[getGirlHexagonPosition(4,is_hero)],who)+'\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t'+buildPvpTeamMember(team_data[getGirlHexagonPosition(5,is_hero)],who)+"\n\t\t\t\t\t\t"+buildPvpTeamMember(team_data[getGirlHexagonPosition(6,is_hero)],who)+"\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t"}function buildPvpTeamMember(girl_data,who){var member_html=girl_data?buildPvpTeamMemberBlock(girl_data,who):buildPvpTeamMemberEmptyBlock();return member_html}function buildPvpTeamMemberBlock(girl_data,who){var max_ego=_max_ego[who][girl_data.id_girl];var $health_bar=buildBar(girl_data.remaining_ego,max_ego,"health");var $mana_bar=buildBar(girl_data.girl.battle_caracs.mana_starting,100,"mana");girl_data.girl.class=girl_data.girl.girl.class;girl_data.girl.element_data=girl_data.girl.girl.element_data;girl_data.girl.name=girl_data.girl.girl.name;girl_data.girl.rarity=girl_data.girl.girl.rarity;return'\n\t\t\t\n\t\t\t\t
'+girl_data.attacking_order+'
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t'+$health_bar+"\n\t\t\t\t"+$mana_bar+"\n\t\t\t\t"+buildBarUpdatingelements()+"\n\t\t\t\t"+buildStatusEffectIcons()+"\n\t\t\t
\n\t\t"}function buildPvpTeamMemberEmptyBlock(){return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t'}function buildBar(available_amount,general_amount,bar_type){var bar_width=Math.round(available_amount/general_amount*100)+"%";var bar_text=bar_type==="health"?''+number_reduce(available_amount)+' / '+number_reduce(general_amount)+"":bar_width;var color=bar_type==="health"?"red":"blue";var shield_bar_html=bar_type==="health"?'':"";return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t'+shield_bar_html+'\n\t\t\t\t
'+bar_text+"
\n\t\t\t
\n\t\t"}function buildBarUpdatingelements(){return'\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t'}function buildStatusEffectIcons(){return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t'}function initGirlsImages(who){var team_data=who==="hero"?hero_fighter_v4:opponent_fighter_v4;Object.keys(team_data.fighters).forEach(function(index){var girl_id=team_data.fighters[index].id_girl;var girl_ava=team_data.fighters[index].girl.ava.toImageUrl("ava");var girl_grade_offset=team_data.fighters[index].girl.grade_offsets;var girl_favorite_grade=team_data.fighters[index].girl.favorite_grade;$(".container-"+who+" .pvp-girls").append(buildGirlImage(team_data.fighters[index],index));loadGirlImageSrc($(".container-"+who+' .girl-image[data-girl-id="'+girl_id+'"]'),girl_ava,girl_grade_offset,girl_favorite_grade)})}function buildGirlImage(fighter,index){var element=fighter.girl.element;var id=fighter.id_girl;var ava=fighter.girl.ava;return''}function _showGirl(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_showGirl",e:data.$e,p:{opacity:1,translateX:[(data.direction=="left"?"":"-")+"20%"]},o:{duration:500/battle_speed,sequenceQueue:run_in_sequence,begin:function begin(){data.hexagon_container.addClass("attacker")}}}}function _hideGirl(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_hideGirl",e:data.$e,p:{opacity:0,translateX:[(data.direction=="left"?"-":"")+"20%"]},o:{duration:500/battle_speed,sequenceQueue:run_in_sequence,complete:function complete(){data.hexagon_container.removeClass("attacker")}}}}function _girlHit(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_girlHit",e:data.$e,p:{translateX:[(data.direction=="left"?"":"-")+"5rem","spring"]},o:{duration:600/battle_speed,sequenceQueue:runInSequence}}}function _girlHitNormalize(data){var runInSequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_girlHitNormalize",e:data.$e,p:{translateX:["0px","linear"]},o:{duration:200/battle_speed,sequenceQueue:runInSequence}}}function _girlDrawEllipsisGrowing(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var scaleIncrement=1+data.index*10/100;return{name:"_girlDrawEllipsisGrowing",e:data.$e,p:{translateX:[data.incrementX+"px","linear"],translateY:[data.incrementY+"px","linear"],scaleX:scaleIncrement,scaleY:scaleIncrement,zIndex:40},o:{duration:10/battle_speed,sequenceQueue:run_in_sequence}}}function _girlDrawEllipsisShrinking(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var scaleIncrement=2-data.index*10/100;return{name:"_girlDrawEllipsisShrinking",e:data.$e,p:{translateX:[data.incrementX+"px","linear"],translateY:[data.incrementY+"px","linear"],scaleX:scaleIncrement,scaleY:scaleIncrement},o:{duration:10/battle_speed,sequenceQueue:run_in_sequence}}}function _showNamedAttackBackground(){var run_in_sequence=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;return{name:"_showNamedAttackBackground",e:$("#named-attack-background"),p:{left:"-50%",zIndex:25},o:{duration:200/battle_speed,sequenceQueue:run_in_sequence}}}function _setNamedAttackZindex(){var run_in_sequence=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;return{name:"_girlIntro",e:$("#named-attack-container"),p:{zIndex:50},o:{duration:10/battle_speed,sequenceQueue:run_in_sequence}}}function _showNamedAttack(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_girlIntro",e:$("#named-attack-container"),p:{right:"0%"},o:{duration:500/battle_speed,sequenceQueue:run_in_sequence,begin:function begin(){$("#named-attack-container span").text(""+data.skill_name)}}}}function _hideNamedAttack(){var run_in_sequence=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;var delay=2e3/battle_speed;return{name:"_girlIntro",e:$("#named-attack-container"),p:{right:"-200%"},o:{duration:100/battle_speed,sequenceQueue:run_in_sequence,delay:delay}}}function _hideNamedAttackBackground(){var run_in_sequence=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;return{name:"_girlIntro",e:$("#named-attack-background"),p:{left:"-400%"},o:{duration:100/battle_speed,sequenceQueue:run_in_sequence}}}function _normalizeGirlIntro(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_girlIntro",e:data.$e,p:{scaleX:1,scaleY:1,zIndex:1},o:{duration:200/battle_speed,sequenceQueue:run_in_sequence}}}function _teamColumnAppearing(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_teamColumnAppearing",e:data.$e,p:{opacity:1,left:"0",right:"0"},o:{duration:250/battle_speed,sequenceQueue:run_in_sequence}}}var quick_animation_duration=500;var slow_animation_duration=2e3;function _showUpdateNumber(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var sign=data.number>=0?"+":"-";var text=number_format_lang(Number(Math.abs(data.number)));var duration=slow_animation_duration/battle_speed;if(data.type=="block"){sign="";text="("+text+")"}else if(["damage","mana"].includes(data.type)&&data.number==0){sign="-"}var bigger=data.is_bigger?"bigger":"";return{name:"_showUpdateNumber",e:data.$e,p:{opacity:[0,1]},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass(data.type+" "+bigger).html(''+sign+text+"")},complete:function complete(el){data.$e.removeClass(data.type+" "+bigger)}}}}function _showUpdateText(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var text=data.type.toUpperCase();var duration=slow_animation_duration/battle_speed;return{name:"_showUpdateText",e:data.$e,p:{opacity:[0,1]},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass(data.type+" damage").html(''+text+"")},complete:function complete(el){data.$e.removeClass(data.type+" damage")}}}}function _skippingHitBecauseOfStun(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_skippingHitBecauseOfStun",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("yellow-glow scale_up_shake").css("animation-duration",duration/1e3+"s")},complete:function complete(){data.$e.removeClass("yellow-glow").addClass("scale_up_shake")}}}}function _updateHealthBar(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(data.remaining<0){data.remaining=0}var width_remaining=data.remaining*100/data.max;return{name:"_updateHealthBar",e:data.$e,p:{width:width_remaining+"%"},o:{duration:quick_animation_duration/battle_speed,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.siblings().find(".available").text(number_format_lang(data.remaining))}}}}function _updateManaBar(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return{name:"_updateManaBar",e:data.$e,p:{width:data.remaining+"%"},o:{duration:quick_animation_duration/battle_speed,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.siblings().text(data.remaining+"%")}}}}function _updateShieldBar(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(data.remaining<0){data.remaining=0}var width_remaining=data.remaining*100/data.max;return{name:"_updateManaBar",e:data.$e,p:{width:width_remaining+"%"},o:{duration:quick_animation_duration/battle_speed,sequenceQueue:run_in_sequence}}}function _applyDamage(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;var defender_class=data.type=="damage"?"defender_damaged":"defender_dodged";return{name:"_applyDamage",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("red-glow action "+defender_class);data.$e.find(".team-member-border").addClass("scale_up_shake").css("animation-duration",duration/1e3+"s")},complete:function complete(){data.$e.removeClass("red-glow action "+defender_class);data.$e.find(".team-member-border").removeClass("scale_up_shake");data.$e.find(".translating_content > span").removeClass()}}}}function _applyShieldBarGlow(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_applyShieldBarGlow",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("shield-glow")},complete:function complete(){data.$e.removeClass("shield-glow")}}}}function _applyStatusEffect(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_applyStatusEffect",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("status_effect_appear")},complete:function complete(){data.$e.addClass("status_effect_active")}}}}function _removeStatusEffect(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_removeStatusEffect",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.removeClass("status_effect_appear status_effect_active").addClass("status_effect_disappear")},complete:function complete(){data.$e.removeClass("status_effect_disappear")}}}}function _applyHeal(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_applyHeal",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("green-glow action");data.$e.find(".team-member-border").addClass("scale_up_down").css("animation-duration",duration/1e3+"s")},complete:function complete(){data.$e.removeClass("green-glow action");data.$e.find(".team-member-border").removeClass("scale_up_down");data.$e.find(".translating_content > span").removeClass()}}}}function _applyManaDrain(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_applyDamage",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("blue-glow action");data.$e.find(".team-member-border").addClass("scale_up_shake").css("animation-duration",duration/1e3+"s")},complete:function complete(){data.$e.removeClass("blue-glow action");data.$e.find(".team-member-border").removeClass("scale_up_shake");data.$e.find(".translating_content > span").removeClass()}}}}function _applyManaHeal(data){var run_in_sequence=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var duration=slow_animation_duration/battle_speed;return{name:"_applyManaHeal",e:data.$e,p:{none:0},o:{duration:duration,sequenceQueue:run_in_sequence,begin:function begin(){data.$e.addClass("blue-glow action");data.$e.find(".team-member-border").addClass("scale_up_down").css("animation-duration",duration/1e3+"s")},complete:function complete(){data.$e.removeClass("blue-glow action");data.$e.find(".team-member-border").removeClass("scale_up_down");data.$e.find(".translating_content > span").removeClass()}}}}function _roundEnd(){return{e:$("#battle"),p:{none:0},o:{duration:0,complete:function complete(){startRound()}}}}function _getNextPvPRoundData(){return{round:_rounds.shift(),round_index:_round_index++}}function setRounds(rounds){_rounds=rounds}function setRewards(rewards,labyrinth_opponent_data,objective_points){_rewards=rewards;_rewards.labyrinth_opponent_data=labyrinth_opponent_data;_rewards.objective_points=objective_points}function battleEnd(){$(".velocity-animating").velocity("stop",true);Reward.handlePopup(_rewards);objectivePopup.show(_rewards)}function startRound(){var _getNextPvPRoundData2=_getNextPvPRoundData(),round=_getNextPvPRoundData2.round,round_index=_getNextPvPRoundData2.round_index;if(debug){console.log("round",round)}if(!round||round===undefined){battleEnd();return}var sequence=[];var hit=round.attacker_hit;var attacker_hit_direction=round.who==="hero"?"left":"right";var defender_team=round.who==="hero"?"opponent":"hero";var attacker_team=round.who==="hero"?"hero":"opponent";var attacker_id=round.attacker_id_girl;var defender_id=round.defender_id_girl;var $attacker_girl_image=$(".container-"+attacker_team+' .girl-image[data-girl-id="'+attacker_id+'"]');var $attacker_member_container=$(".container-"+attacker_team+" #member-"+attacker_id);var $defender_member_container=$(".container-"+defender_team+" #member-"+defender_id);var $attacker_bars_update_text=$(".container-"+attacker_team+" #member-"+attacker_id+" .bars-update-text");var $defender_bars_update_text=$(".container-"+defender_team+" #member-"+defender_id+" .bars-update-text");var $attacker_health_bar=$(".container-"+attacker_team+" #member-"+attacker_id+" .health-bar");var $defender_health_bar=$(".container-"+defender_team+" #member-"+defender_id+" .health-bar");var $attacker_mana_bar=$(".container-"+attacker_team+" #member-"+attacker_id+" .mana-bar");var $attacker_shield_bar=$(".container-"+attacker_team+" #member-"+attacker_id+" .shield-bar");var $defender_shield_bar=$(".container-"+defender_team+" #member-"+defender_id+" .shield-bar");var attacker_team_changes=round.changes[attacker_team];var defender_team_changes=round.changes[defender_team];var attacker_initial_ego=getFromChanges("remaining_ego",attacker_id,attacker_team_changes);var attacker_initial_mana=getFromChanges("remaining_mana",attacker_id,attacker_team_changes);var attacker_max_ego=_max_ego[attacker_team][attacker_id];var defender_max_ego=_max_ego[defender_team][defender_id];if(round_index===0){_buildAppearingOfTeamsHexagons()}sequence.push(_showGirl({$e:$attacker_girl_image,hexagon_container:$attacker_member_container,direction:attacker_hit_direction},false));if(!hit){sequence.push(_skippingHitBecauseOfStun({$e:$attacker_member_container}))}else{var attacker_ego_before_hit=getFromChanges("remaining_ego",attacker_id,attacker_team_changes,"before_hit");if(attacker_initial_ego!=attacker_ego_before_hit){var prehit_heal_amount=attacker_ego_before_hit-attacker_initial_ego;sequence.push(_updateHealthBar({$e:$attacker_health_bar,max:attacker_max_ego,remaining:attacker_ego_before_hit}),_showUpdateNumber({$e:$attacker_bars_update_text,type:"health",number:prehit_heal_amount},false))}var attacker_mana_before_hit=getFromChanges("remaining_mana",attacker_id,attacker_team_changes,"before_hit");var attacker_mana_after_hit=getFromChanges("remaining_mana",attacker_id,attacker_team_changes,"after_hit");var attacker_mana_generation=attacker_mana_after_hit-attacker_initial_mana;var attacker_ego_after_hit=getFromChanges("remaining_ego",attacker_id,attacker_team_changes,"after_hit");var defender_ego_after_hit=getFromChanges("remaining_ego",defender_id,defender_team_changes,"after_hit");var defender_shields_after_hit=getFromChanges("total_shields_amount",defender_id,defender_team_changes,"after_hit");var attacker_hit_damage=hit.total_damage;var attacker_blocked_damage=hit.blocked_damage;var defender_max_shields=_max_shields[defender_team][defender_id];pushHitSequence(sequence,{attacker_hit_direction:attacker_hit_direction,$attacker_girl_image:$attacker_girl_image,$defender_member_container:$defender_member_container,$defender_bars_update_text:$defender_bars_update_text,$defender_health_bar:$defender_health_bar,$defender_shield_bar:$defender_shield_bar,defender_shields_after_hit:defender_shields_after_hit,defender_max_shields:defender_max_shields,blocked_damage:attacker_blocked_damage,attack_damage:attacker_hit_damage,defender_max_ego:defender_max_ego,defender_ego_after_hit:defender_ego_after_hit,is_critical:hit.is_critical,is_finisher:hit.is_finisher});var lifestolen_ego=attacker_ego_after_hit-attacker_ego_before_hit;if(attacker_ego_before_hit!=attacker_ego_after_hit){sequence.push(_updateHealthBar({$e:$attacker_health_bar,max:attacker_max_ego,remaining:attacker_ego_after_hit}),_showUpdateNumber({$e:$attacker_bars_update_text,type:"health",number:lifestolen_ego},false))}if(attacker_mana_before_hit!=attacker_mana_after_hit){sequence.push(_updateManaBar({$e:$attacker_mana_bar,remaining:attacker_mana_after_hit}),_showUpdateNumber({$e:$attacker_bars_update_text,type:"mana",number:attacker_mana_generation},false))}if(round.attacker_skill){var skill=round.attacker_skill;if(debug){console.log("skill",skill)}var attacker_mana_after_skill=getFromChanges("remaining_mana",attacker_id,attacker_team_changes,"after_skill");sequence.push(_updateManaBar({$e:$attacker_mana_bar,remaining:attacker_mana_after_skill}),_showUpdateNumber({$e:$attacker_bars_update_text,type:"mana",number:-100},false),_setNamedAttackZindex(false));for(var _x27=0;_x27<10;_x27++){var coordinate=ellipsisCoordinates[_x27];sequence.push(_girlDrawEllipsisGrowing({$e:$attacker_girl_image,incrementX:coordinate.incrementX,incrementY:coordinate.incrementY,index:_x27},false))}sequence.push(_showNamedAttackBackground(),_showNamedAttack({skill_name:skill.named_attack_text}),_hideNamedAttack(),_hideNamedAttackBackground());for(var _x28=10;_x280?"damage":"block";sequence.push(_applyDamage({$e:$attacker_member_container,type:type}));if(attacker_burn_damage_blocked>0){var shields_after_skill=getFromChanges("total_shields_amount",attacker_id,attacker_team_changes,"after_skill");var max_shields=_max_shields[attacker_team][attacker_id];sequence.push(_showUpdateNumber({$e:$attacker_bars_update_text,type:"block",number:attacker_burn_damage_blocked},false),_updateShieldBar({$e:$attacker_shield_bar,max:max_shields,remaining:shields_after_skill},false))}if(attacker_burn_damage>0){var _attacker_max_ego=_max_ego[attacker_team][attacker_id];var attacker_remaining_ego=getFromChanges("remaining_ego",attacker_id,attacker_team_changes,"after_skill");sequence.push(_showUpdateNumber({$e:$attacker_bars_update_text,type:"damage",number:-attacker_burn_damage},false),_updateHealthBar({$e:$attacker_health_bar,max:_attacker_max_ego,remaining:attacker_remaining_ego},false))}if(_status_effects_round_counter[attacker_team][attacker_id][skill_name].round==0){var $burned_icn=$(".container-"+attacker_team+" #member-"+attacker_id+" .burned_container");sequence.push(_removeStatusEffect({$e:$burned_icn},false))}}else if(skill_name==="defenses_up"&&_status_effects_round_counter[attacker_team][attacker_id][skill_name].round==0){var $defense_boost_icn=$(".container-"+attacker_team+" #member-"+attacker_id+" .defense_boost_container");sequence.push(_removeStatusEffect({$e:$defense_boost_icn},false))}else if(skill_name==="stun"&&_status_effects_round_counter[attacker_team][attacker_id][skill_name].round==0){var $stunned_icn=$(".container-"+attacker_team+" #member-"+attacker_id+" .stunned_container");sequence.push(_removeStatusEffect({$e:$stunned_icn},false))}if(_status_effects_round_counter[attacker_team][attacker_id][skill_name].round==0){delete _status_effects_round_counter[attacker_team][attacker_id][skill_name]}})}sequence.push(_hideGirl({$e:$attacker_girl_image,hexagon_container:$attacker_member_container,direction:attacker_hit_direction}));sequence.push(_roundEnd());$.Velocity.RunSequence(sequence);function _buildAppearingOfTeamsHexagons(){var $hero_hexagon_columns=$(".container-hero .team-hexagon-col");var $opponent_hexagon_columns=$(".container-opponent .team-hexagon-col");sequence.push(_teamColumnAppearing({$e:$hero_hexagon_columns[2]}),_teamColumnAppearing({$e:$opponent_hexagon_columns[0]},false),_teamColumnAppearing({$e:$hero_hexagon_columns[1]}),_teamColumnAppearing({$e:$opponent_hexagon_columns[1]},false),_teamColumnAppearing({$e:$hero_hexagon_columns[0]}),_teamColumnAppearing({$e:$opponent_hexagon_columns[2]},false))}}function startPVPBattle(){loadingAnimation.start();var urlParams=new URLSearchParams(window.location.search);var action="do_battles_"+battle_type;var ajax_params={action:action,id_opponent:urlParams.get("id_opponent"),number_of_battles:1};hh_ajax(ajax_params,function(data){if(debug){console.log("battle_response",data)}var labyrinth_opponent_data={id_difficulty:data.id_difficulty,id_floor:data.id_floor,opponent_type:data.opponent_type};loadingAnimation.stop();setRounds(data.rounds);startRound();setRewards(data.rewards,labyrinth_opponent_data,data.objective_points);showSkipbutton()})}function getFromChanges(property,girl_id,changes){var stage=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"initial";var result=changes.initial[girl_id][property];var ordered_stages=["initial","before_hit","after_hit","after_skill","after_status_effect"];var stage_index=ordered_stages.indexOf(stage);if(stage_index>0){if(changes[stage][girl_id]&&changes[stage][girl_id][property]!=undefined){result=changes[stage][girl_id][property]}else{var current_index=stage_index-1;while(current_index>0){var current_stage=ordered_stages[current_index];if(changes[current_stage][girl_id]&&changes[current_stage][girl_id][property]){result=changes[current_stage][girl_id][property];break}else{current_index--}}}}return result}function pushHitSequence(mainSequence,data){var damage_type=data.attack_damage>0?"damage":"block";var is_bigger=data.is_critical||data.is_finisher;mainSequence.push(_girlHit({$e:data.$attacker_girl_image,direction:data.attacker_hit_direction}),_girlHitNormalize({$e:data.$attacker_girl_image}),_applyDamage({$e:data.$defender_member_container,type:damage_type},false));if(data.blocked_damage>0){mainSequence.push(_showUpdateText({$e:data.$defender_bars_update_text,type:"block"},false),_showUpdateNumber({$e:data.$defender_bars_update_text,type:"block",number:data.blocked_damage},false),_updateShieldBar({$e:data.$defender_shield_bar,max:data.defender_max_shields,remaining:data.defender_shields_after_hit},false))}if(data.attack_damage>0){if(data.is_critical){mainSequence.push(_showUpdateText({$e:data.$defender_bars_update_text,type:"critical"}))}if(data.is_finisher){mainSequence.push(_showUpdateText({$e:data.$defender_bars_update_text,type:"finisher"}))}mainSequence.push(_showUpdateNumber({$e:data.$defender_bars_update_text,type:"damage",number:-data.attack_damage,is_bigger:is_bigger},false),_updateHealthBar({$e:data.$defender_health_bar,max:data.defender_max_ego,remaining:data.defender_ego_after_hit},false))}if(data.blocked_damage==0&&data.attack_damage==0){mainSequence.push(_showUpdateText({$e:data.$defender_bars_update_text,type:"dodge",number:0},false))}}});var previous_team_ids={};$(document).ready(function(){if(!$("#edit-team-page").length){return}buildPlayerBlock(hero_data,true,$(".change-team-panel.player-panel"));if(battle_type==="boss_bang"){$(".boss-bang-helper").css("visibility","visible")}var selectedTeamGirl="";var teamToSaveIds=[];preselectFirstTeamGirl();initAutoFillButton();addGirlElementFlavor($(".girl-element"));$("body").on("click","#confirm-boss-bang-team-creation",function(){var params={action:"create_bb_team",girls:teamToSaveIds};hh_ajax(params,function(){navigate(redirectUrl)})});$("#auto-fill-team").on("click",function(){var harem_team_length=$(".harem-panel-girls .harem-girl-container").length;var max_girls_can_add=harem_team_length\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\t'}function updateButtonsState(){var team_girls_data=getTeamGirlsData();updateValidateButtonState(team_girls_data.length);updateAutoFillButtonState(team_girls_data.length);updateClearTeamButtonState(team_girls_data.length)}$(".harem-girl-container").click(function(){var girl_avatar=$(this).find("img.girl_img").attr("girl-ico-src").replace("ico","ava");var girl_element=jsonParse($(this).find(".girl_img").attr("data-new-girl-tooltip")).element;if(girl_element===null){return}selectHaremGirl($(this));previewGirl(girl_avatar,girl_element);var team_girls_amount=getTeamGirlsIds().length;var $empty_position=$(".team-member-container:not([data-girl-id])");var empty_positions_list=$empty_position.map(function(){return $(this).attr("data-team-member-position")}).get().sort();var targeted_position=team_girls_amountimg").attr("girl-ico-src").replace("ico","ava");var girl_element_data=jsonParse($(this).find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip"),$(this));if(girl_element_data===null){return}var girl_element=girl_element_data.hasOwnProperty("element")?girl_element_data.element:girl_element_data.element_data.type;previewGirl(girl_avatar,girl_element)}selectTeamGirl($(this))});function selectTeamGirl(teamGirl){$(".team-hexagon .team-member-container").removeClass("selected");teamGirl.addClass("selected");selectedTeamGirl=teamGirl}function selectHaremGirl(harem_girl){var request_to_calculate_stats=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var selected_team_girl_tooltip_data=selectedTeamGirl.find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip")?jsonParse(selectedTeamGirl.find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip")):{};var selected_team_girl_data={id:selectedTeamGirl.attr("data-girl-id"),position:selectedTeamGirl.attr("data-team-member-position"),tooltipData:JSON.stringify(selected_team_girl_tooltip_data),imgSrc:selectedTeamGirl.find(".team-member.base-hexagon>img").attr("src"),imgIcoSrc:selectedTeamGirl.find(".team-member.base-hexagon>img").attr("girl-ico-src"),rarity:selected_team_girl_tooltip_data.rarity,element:selected_team_girl_tooltip_data.element,elementIco:selectedTeamGirl.find(".hexagon-girl-element").attr("src"),elementFlavor:selectedTeamGirl.find(".hexagon-girl-element").attr("tooltip")};if(girlInTeam(harem_girl)){if(selectedTeamGirl.attr("data-girl-id")){swapWithSelected(harem_girl,selected_team_girl_data)}}else{addToTeam(harem_girl,selected_team_girl_data);if(request_to_calculate_stats){updateTeamStats()}recalculateHeroTheme()}updateButtonsState()}function updateTeamStats(){var team_girls_ids=getTeamGirlsIds();var string_team_girls_ids=JSON.stringify(team_girls_ids);var params={action:"team_calculate_caracs",girls:team_girls_ids,battle_type:battle_type};if(team_girls_ids.length>=MIN_GIRLS_TO_UPDATE_CARACS&&previous_team_ids!==string_team_girls_ids){hh_ajax(params,updateHeroStats);previous_team_ids=string_team_girls_ids}}function getTeamGirlsIds(){var team_girls_ids=[];$(".team-hexagon .team-member-container").each(function(){if($(this).is("[data-girl-id]")){team_girls_ids[$(this).attr("data-team-member-position")]=$(this).attr("data-girl-id")}});return team_girls_ids}function updateHeroStats(data){var total_power=0;if(current_page==="edit-labyrinth-team"){total_power=data.power_display}else{total_power=data.total_power;Object.keys(data.caracs).forEach(function(stat){$("#stats-"+stat).text(number_format_lang(data.caracs[stat]))})}$(".team-hexagon-container .team-total-power").text(number_format_lang(total_power,0))}function recalculateSynergyData(element_added,element_removed){var iconArea=$(".icon-area");$.map(synergies,function(item,index){if(item.element.type==element_added){item.team_girls_count+=1}else if(item.element.type==element_removed){item.team_girls_count-=1}item.team_bonus_multiplier=Math.min(item.team_girls_count*item.team_bonus_per_girl,item.team_bonus_max_amount);item.harem_bonus_multiplier=Math.min(item.harem_girls_count*item.harem_bonus_per_girl,item.harem_bonus_max_amount);item.bonus_multiplier=item.team_bonus_multiplier+item.harem_bonus_multiplier});iconArea.attr("synergy-data",JSON.stringify(synergies))}function recalculateHeroTheme(){var team_girls_elements=getTeamGirlElements();var current_team_themes=getCurrentTeamThemes(team_girls_elements);if(current_team_themes!==initialThemesNames){var icon_area=$(".icon-area");icon_area.empty();current_team_themes.forEach(function(theme){var theme_data=getThemeData(theme);icon_area.append('')})}}function getThemeData(themeName){switch(themeName){case"darkness":return{flavor:GT.design.darkness_flavor_element,icon:"Dominatrix"};case"sun":return{flavor:GT.design.sun_flavor_element,icon:"Playful"};case"stone":return{flavor:GT.design.stone_flavor_element,icon:"Physical"};case"nature":return{flavor:GT.design.nature_flavor_element,icon:"Exhibitionist"};case"fire":return{flavor:GT.design.fire_flavor_element,icon:"Eccentric"};case"water":return{flavor:GT.design.water_flavor_element,icon:"Sensual"};case"psychic":return{flavor:GT.design.psychic_flavor_element,icon:"Voyeurs"};case"light":return{flavor:GT.design.light_flavor_element,icon:"Submissive"};case"balanced":return{flavor:GT.design.balanced_theme_flavor,icon:"Multicolored"}}}function getCurrentTeamThemes(teamGirlsElements){var currentTeamThemes=[];teamGirlsElements.forEach(function(element){if(element.count>=3){currentTeamThemes.push(element.name)}});if(currentTeamThemes.length===0){currentTeamThemes.push("balanced")}return currentTeamThemes}function getTeamGirlElements(){var teamGirlsElements=[];$(".team-hexagon .team-member-container").each(function(){if($(this).attr("data-girl-id")){var girlElement=$(this).find(".hexagon-girl-element").attr("element");var elementAlreadyInTeam=false;if(teamGirlsElements.length>0){teamGirlsElements.forEach(function(element){if(element.name===girlElement){element.count++;elementAlreadyInTeam=true}})}if(!elementAlreadyInTeam){teamGirlsElements.push({name:girlElement,count:1})}}});return teamGirlsElements}function addToTeam(harem_girl,selected_team_girl_data){var harem_girl_data={id:harem_girl.attr("id_girl"),tooltipData:harem_girl.find(".girl_img").attr("data-new-girl-tooltip"),imgSrc:harem_girl.find(".girl_img").attr("src"),imgIcoSrc:harem_girl.find(".girl_img").attr("girl-ico-src"),rarity:jsonParse(harem_girl.find(".girl_img").attr("data-new-girl-tooltip")).rarity,element:harem_girl.find(".girl-element").attr("element"),elementIco:harem_girl.find(".girl-element").attr("src"),elementFlavor:harem_girl.find(".girl-element").attr("tooltip")};$('.harem-panel-girls>.harem-girl-container[team_position="'+selected_team_girl_data.position+'"]').removeClass("selected").removeAttr("team_position");selectedTeamGirl.attr("data-girl-id",harem_girl_data.id);selectedTeamGirl.find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip",harem_girl_data.tooltipData);selectedTeamGirl.find(".team-member.base-hexagon>img").attr("src",harem_girl_data.imgSrc);selectedTeamGirl.find(".team-member.base-hexagon>img").attr("girl-ico-src",harem_girl_data.imgIcoSrc);selectedTeamGirl.find(".team-member.base-hexagon>img").removeClass().addClass("girl_img "+harem_girl_data.rarity);if(selectedTeamGirl.find(".hexagon-girl-element").length){selectedTeamGirl.find(".hexagon-girl-element").attr("element",harem_girl_data.element);selectedTeamGirl.find(".hexagon-girl-element").attr("src",harem_girl_data.elementIco);selectedTeamGirl.find(".hexagon-girl-element").attr("tooltip",harem_girl_data.elementFlavor)}else{selectedTeamGirl.append('')}if(harem_girl_data.element!==selected_team_girl_data.element){recalculateSynergyData(harem_girl_data.element,selected_team_girl_data.element)}harem_girl.attr("team_position",selected_team_girl_data.position);if(selected_team_girl_data.position!=undefined){harem_girl.addClass("selected")}}function swapWithSelected(harem_girl,selected_team_girl_data){var team_girl_to_swap=$(".team-hexagon").find('[data-team-member-position="'+harem_girl.attr("team_position")+'"]');var swap_girl_data={id:team_girl_to_swap.attr("data-girl-id"),position:team_girl_to_swap.attr("data-team-member-position"),tooltipData:team_girl_to_swap.find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip"),imgSrc:team_girl_to_swap.find(".team-member.base-hexagon>img").attr("src"),imgIcoSrc:team_girl_to_swap.find(".team-member.base-hexagon>img").attr("girl-ico-src"),rarity:jsonParse(team_girl_to_swap.find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip")).rarity,element:team_girl_to_swap.find(".hexagon-girl-element").attr("element"),elementIco:team_girl_to_swap.find(".hexagon-girl-element").attr("src"),elementFlavor:team_girl_to_swap.find(".hexagon-girl-element").attr("tooltip")};changeTeamGirlData(selectedTeamGirl,swap_girl_data);changeTeamGirlData(team_girl_to_swap,selected_team_girl_data);$('.harem-panel-girls>.harem-girl-container[id_girl="'+selected_team_girl_data.id+'"]').attr("team_position",harem_girl.attr("team_position"));$('.harem-panel-girls>.harem-girl-container[id_girl="'+harem_girl.attr("id_girl")+'"]').attr("team_position",selected_team_girl_data.position)}function getTeamGirlsData(){var team_girls_data=[];$(".team-hexagon").find(".team-member>img").each(function(){if(!$(this).data("new-girl-tooltip")){return}var team_girl_data=jsonParse($(this).attr("data-new-girl-tooltip"));team_girls_data.push(team_girl_data)});return team_girls_data}function initAutoFillButton(){var team_girls_data=getTeamGirlsData();updateAutoFillButtonState(team_girls_data.length);updateClearTeamButtonState(team_girls_data.length)}function changeTeamGirlData(girl,new_data){girl.attr("data-girl-id",new_data.id);girl.find(".team-member.base-hexagon>img").attr("data-new-girl-tooltip",new_data.tooltipData);girl.find(".team-member.base-hexagon>img").attr("src",new_data.imgSrc);girl.find(".team-member.base-hexagon>img").attr("girl-ico-src",new_data.imgIcoSrc);girl.find(".team-member.base-hexagon>img").removeClass().addClass("girl_img "+new_data.rarity);girl.find(".hexagon-girl-element").attr("element",new_data.element);girl.find(".hexagon-girl-element").attr("src",new_data.elementIco);girl.find(".hexagon-girl-element").attr("tooltip",new_data.elementFlavor)}function girlInTeam(haremGirl){if(haremGirl.attr("team_position")!==undefined){return true}return false}function previewGirl(avatar_src,girl_element){$(".girl-display>img").removeAttr("class").addClass("avatar").addClass("element-"+girl_element).attr("src",avatar_src.toImageUrl("ava"))}function preselectFirstTeamGirl(){var girl=$(".team-hexagon").find('[data-team-member-position="'+preselected_position+'"]');girl.addClass("selected");selectedTeamGirl=girl;if(Object.keys(teamGirls).length){previewGirl(teamGirls[preselected_position].ava,teamGirls[preselected_position].girl.element)}}function updateValidateButtonState(teamLength){var $validateButton=$("#validate-team");if(teamLength>=MIN_TEAM_SIZE){$validateButton.prop("disabled",false)}else{$validateButton.prop("disabled",true)}}function updateAutoFillButtonState(teamLength){var $autoFillButton=$("#auto-fill-team");if(teamLength>=MAX_TEAM_SIZE){$autoFillButton.prop("disabled",true)}else{$autoFillButton.prop("disabled",false)}}function updateClearTeamButtonState(team_length){var $clear_team_button=$("#clear-team");if(!team_length){$clear_team_button.prop("disabled",true)}else{$clear_team_button.prop("disabled",false)}}$("#cancel-change-team").click(function(){navigate(redirectUrl)});$("#validate-team").click(function(){var oldTeamIds=[];Object.keys(teamGirls).forEach(function(position){if(teamGirls[position]!==null){oldTeamIds.push(teamGirls[position].id_girl)}});var newTeamIds=[];$(".team-hexagon").find(".team-member-container").each(function(){if($(this).is("[data-girl-id]")){newTeamIds[$(this).attr("data-team-member-position")]=$(this).attr("data-girl-id")}});if(newTeamIds.length-1&&!$(jTeam).data("isLocked")){_currentTeamIndex=$(jTeam).data("teamIndex");return _activeTeamFound=true}});$('.team-slot-container[data-team-index="'+_currentTeamIndex+'"]').addClass("selected-team")}function initShowTeamInfo(index){var $container=$(".team-info-container");$container.empty();var selected_team=teams_data[""+index];var damage=selected_team.caracs.damage;var defense=selected_team.caracs.defense;var ego=selected_team.caracs.ego;var chance=selected_team.caracs.chance;var is_hero=true;var is_carac_value_formatted=true;var team_stats_html=buildPlayerStats(damage,defense,ego,chance,is_hero,is_carac_value_formatted);$container.append(team_stats_html);var team_girls_html=buildPlayerTeam(selected_team,true);$container.append(team_girls_html);$container.append(buildSynergyHelperButton())}function _changeActionButtonsState(state){$("#btn-select-team").prop("disabled",false);$("#btn-edit-team").prop("disabled",false);if(state.isLocked){$("#btn-select-team").prop("disabled",true);$("#btn-edit-team").prop("disabled",true);return}if(state.isEmpty){$("#btn-select-team").prop("disabled",true);return}}function addClickEvents(){addTeamSlotClickEvent();addGirlHexagonClickEvent();addSelectButtonClickEvent();addEditButtonClickEvent();addMonthlyCardTextClickEvent();addCrossCloseClickEvent()}function addTeamSlotClickEvent(){$(".teams-grid-container").on("click",".team-slot-container",function(){var $this=$(this);_currentTeamId=$this.data("idTeam");$(".team-slot-container").removeClass("selected-team");$this.addClass("selected-team");initShowTeamInfo($this.data("teamIndex"));_changeActionButtonsState({isLocked:$this.data("isLocked"),isEmpty:$this.data("isEmpty")});addGirlHexagonClickEvent()})}function addGirlHexagonClickEvent(){$(".team-member-container[data-girl-id]").on("click",function(){var id_girl=$(this).attr("data-girl-id");if(id_girl){navigate("/girl/"+id_girl+"?resource=experience")}})}function addSelectButtonClickEvent(){$("#btn-select-team").on("click",function(event){event.preventDefault();var params={action:"select_team",id_team:_currentTeamId,battle_type:battle_type};var redirectUrl=function redirectUrl(data){if(data.redirect_url){var url=data.redirect_url;if(battle_type==="trolls"){url+="?id_opponent="+localStorageGetItem("troll_id")}if(battle_type==="pantheon"){url+="?id_opponent="+localStorageGetItem("pantheon_id")}if(battle_type==="leagues"&&localStorageGetItem("leagues_id").length){url="/leagues-pre-battle.html?id_opponent="+localStorageGetItem("leagues_id")}return navigate(url)}};hh_ajax(params,redirectUrl)})}function addEditButtonClickEvent(){$("#btn-edit-team").on("click",function(event){event.preventDefault();var redirect_url="/edit-team.html?battle_type="+battle_type;if(_currentTeamId){redirect_url+="&id_team="+_currentTeamId}return navigate(redirect_url)})}function addMonthlyCardTextClickEvent(){$(".teams-monthly-card-msg span").on("click",function(){HHPopupManager.show("no_HC",{init_load:true,prevent_events:true,desired_tab:"monthly_card"})})}function addCrossCloseClickEvent(){$("#teams .close_cross").on("click",function(event){event.preventDefault();if(battle_type==="trolls"){battleTypeToUrlMap[battle_type]+="?id_opponent="+localStorageGetItem("troll_id")}if(battle_type==="pantheon"){battleTypeToUrlMap[battle_type]+="?id_opponent="+localStorageGetItem("pantheon_id")}if(battle_type==="leagues"){if(localStorageGetItem("leagues_id").length){battleTypeToUrlMap[battle_type]+="?id_opponent="+localStorageGetItem("leagues_id")}else{battleTypeToUrlMap[battle_type]="/leagues.html"}}return navigate(battleTypeToUrlMap[battle_type])})}});$(function(){if(!$(".page-path-of-valor").length&&!$(".page-path-of-glory").length){return}init();function init(){initTiers();initNextMilestone();initSkipTierButton();initPathTimer();showPassReminder();initGirlsInfo();initializePathAnimations();addClickEvents()}function addClickEvents(){var tabs={pov_tab_container:{callback:redirectOrRestart},pov_leaderboard_tab_container:{callback:loadPoVLeaderboard,callbackOptions:{loadOnce:true}},pog_tab_container:{callback:redirectOrRestart},pog_leaderboard_tab_container:{callback:loadPoGLeaderboard,callbackOptions:{loadOnce:true}}};initTabSystem("potions-paths",tabs);updateRewardsIcons("potions-paths",tabs);addPassReminderClick();addSkipTierProgressionClick()}function addSkipTierProgressionClick(){$("#btn-skip-tier-progression").click(function(){var random_girl=Math.floor(Math.random()*path_girls.length);options={girl:path_girls[random_girl],potions:{type:pathType==="path_of_valor"?"pov":"pog",amount:potions_for_next_tier,price:skip_tier_cost}};HHPopupManager.show("skip_tier_popup",options,null)})}function initSkipTierButton(){if(currentTier!==tiersTotal){var skip_tier_button='\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t';$(".potions-paths-potions").append(skip_tier_button)}}function addPassReminderClick(){$(".pass-reminder").click(function(){displayPassReminder()})}function getButtonHtml(){var pass_price="";if(pathType==="path_of_glory"){pass_price=hh_prices.path_of_glory_pass}else if(pathType==="path_of_valor"){pass_price=hh_prices.path_of_valor_pass}return'\n\t\t\t\n\t\t'}function displayPassReminder(){var path_name="";if(pathType==="path_of_glory"){path_name=GT.design.pass_reminder_title_pog}else if(pathType==="path_of_valor"){path_name=GT.design.pass_reminder_title_pov}var buttonHtml=getButtonHtml();var popupData={currently_available_rewards:pass_reminder.rewards.currently_available_rewards,all_rewards:pass_reminder.rewards.all_rewards,current_tier:currentTier,total_tiers:path_rewards.length,title_text:path_name,rewards_now_text:pass_reminder.rewards_titles.currently_available_rewards,rewards_all_text:pass_reminder.rewards_titles.all_rewards,buttonHtml:buttonHtml,time_remaining:time_remaining,buttonCallback:onPassPurchaseClick};HHPopupManager.show("pass_reminder_popup",popupData,null)}function showPassReminder(){if(isDisabledPopup("PassReminder")){return}if(pass_reminder.show){displayPassReminder()}}function redirectOrRestart(){var tabToSwitchTo=$(".tabs-switcher").find(".underline-tab");if(pathType==="path_of_glory"&&tabToSwitchTo.attr("data-tab")==="pov_tab_container"){navigate("/path-of-valor.html");return}else if(pathType==="path_of_valor"&&tabToSwitchTo.attr("data-tab")==="pog_tab_container"){navigate("/path-of-glory.html");return}else{var is_girl_animated=false;path_girls.forEach(function(path_girl){if(path_girl.hasOwnProperty("animated_grades")&&path_girl.animated_grades.includes(0)){is_girl_animated=true}});if(is_girl_animated&&!Hero.infos.no_pachinko_anim){restartAnimations()}}}function restartAnimations(){cleanPathAnimations();initializePathAnimations()}$(".button-notification-action").click(function(){$("#info_container").show()});$("#close_info").click(function(){$("#info_container").css("display","none")});function onPassPurchaseClick(){var params={action:pathPrefix+"_purchase_pass"};var button_element=$("#"+pathPrefix+"_tab_container .purchase-pass");var reminder_element=$("#"+pathPrefix+"_tab_container a.pass-reminder");hc_confirm(button_element.attr("price"),function(){hh_ajax(params,function(data){unlockPovPogBonusRewards();button_element.remove();reminder_element.remove();heroHasPass=true;updatePovPogClaimAllButton()})})}$("#"+pathPrefix+"_tab_container .purchase-pass").click(onPassPurchaseClick);$(".potions-paths-claim-reward").click(function(event){disableButton($(".potions-paths-claim-reward"),true);var params={action:pathPrefix+"_claim",tier:$(event.currentTarget).attr("tier")};hh_ajax(params,function(data){Reward.handlePopup(data.rewards);updateRewardsClaimState(data.rewards,event);var $claimable_tiers=$(".potions-paths-progress-bar-tiers .unclaimed");var last_element=$claimable_tiers[$claimable_tiers.length-1];if($claimable_tiers.length<2){$("#claim-all").remove();$(last_element).removeClass("claim-all-rewards")}if($(event.currentTarget).hasClass("last-claim-btn")){$("#claim-all").remove();$(event.currentTarget).parent().removeClass("claim-all-rewards");updatePovPogClaimAllButton();disableButton($(".potions-paths-claim-reward"),false)}})});function updateRewardsClaimState(reward_data,event){var total_new_shards=getTotalNewShards(reward_data);if(total_new_shards.length){reflectShardsChange(total_new_shards)}var $tier=$(event.currentTarget).parent();changePovPogClassOfTierToClaimed($tier)}function loadPoVLeaderboard(){var params={action:"leaderboard",feature:"path_of_valor"};var $leaderboard_container=$("#pov_leaderboard_tab_container .leaderboard_list");loadLeaderboard(params,$leaderboard_container,leaderboard_columns)}function loadPoGLeaderboard(){var params={action:"leaderboard",feature:"path_of_glory"};var $leaderboard_container=$("#pog_leaderboard_tab_container .leaderboard_list");loadLeaderboard(params,$leaderboard_container,leaderboard_columns)}function initPathTimer(){var $timer_box=$(".timer-box");var time_remaining=parseInt($timer_box.data("time-remaining"));var timer_html=buildTimer(time_remaining,GT.design.contests_ends_in,"potions-paths-timer",false);$timer_box.append(timer_html);activateTimers("potions-paths-timer")}function reflectShardsChange(totalNewShards){var newPotions=0;var objectivesData=jsonParse($(".potions-paths-more-info-button").attr("data-pov-info-tooltip"));totalNewShards.forEach(function(newShards){var relevantObjective=objectivesData.objective_combination.objectives.find(function(objective){return objective.identifier==="earn_shard_"+newShards.rarity});changeGirlPreview(newShards);if(relevantObjective&&relevantObjective.hasOwnProperty(pathType+"_points")){newPotions+=newShards.number*relevantObjective[pathType+"_points"]}});if(newPotions){showPathProgress(newPotions)}}function showPathProgress(newPotions){var tierBeforeChange=currentTier;changePotions(newPotions);var nextTierNumber=0;var nextTierPotions=0;pathPotionsPerTier.every(function(tierRequiredPotions){if(parseInt(tierRequiredPotions)>currentPotions){nextTierPotions=tierRequiredPotions;return false}nextTierNumber++;return true});currentTier=nextTierNumber-1;updateProgressBar();setTiersClaimable(parseInt(tierBeforeChange)+1,currentTier)}function setTiersClaimable(tierFrom,tierTo){for(var i=tierFrom;i<=tierTo;i++){$('.potions-paths-progress-bar-tiers > .potions-paths-tier > button[tier="'+i+'"]').parent().addClass("unclaimed")}}function changeGirlPreview(newShards){var $girlPreview=$('.girl-preview[girl-id="'+newShards.girlId+'"]');var $girlShardsText=$girlPreview.find(".shards_bar_wrapper > .shards > p > span");var currentGirlShards=$girlShardsText.text().split("/");var newShardsTotal=parseInt(currentGirlShards[0])+newShards.number;$girlShardsText.text(newShardsTotal+"/100");$girlPreview.find(".shards_bar > .bar").css("width",newShardsTotal+"%")}function changePotions(newPotions){currentPotions+=newPotions;$(".potions-paths-potions > h4 > span").text(currentPotions)}$(".leaderboard-tab").one("click",function(){var pathToLoad="";var pathToLoadPrefix="";if($(this).attr("data-tab")==="pog_leaderboard_tab_container"){pathToLoad="path_of_glory";pathToLoadPrefix="pog"}else{pathToLoad="path_of_valor";pathToLoadPrefix="pov"}});function initTiers(){var all_tiers_html="";path_rewards.forEach(function(tier){all_tiers_html+=buildTierTemplate(tier)});$(".potions-paths-progress-bar-tiers").append(all_tiers_html);updateProgressBar();updatePovPogClaimAllButton()}function initNextMilestone(){if(next_milestone_tier){var next_milestone_html=buildTierTemplate(path_rewards[next_milestone_tier-1]);$(".potions-paths-next-milestone-panel").append(next_milestone_html)}}function buildTierTemplate(tier_data){var free_reward_claim_status=tier_data.free_reward_state==="claimed"?"claimed-slot":"";var claim_status=tier_data.pass_reward_state=="unclaimed"||tier_data.free_reward_state=="unclaimed"?"unclaimed":"";var paid_reward_claim_status=tier_data.pass_reward_state==="claimed"?"claimed-slot":"";var free_reward_html=newReward.multipleSlot(tier_data.free_reward,"xs");var paid_reward_html=newReward.multipleSlot(tier_data.pass_rewards,"xs paid-slot");return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t'+free_reward_html+'\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t'+tier_data.potions_required+'\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t'+paid_reward_html+"\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t"}function updateProgressBar(){if(currentTier&¤tTier!=0){var $last_completed_tier_height=$("#tier-"+currentTier+" .tier-level")[0].offsetTop;$(".potions-paths-progress-bar-section").animate({scrollTop:$last_completed_tier_height-100},800);if(tiersTotal!=currentTier){$(".potions-paths-progress-bar-current").css("height",$last_completed_tier_height)}else{$(".potions-paths-progress-bar-current").css("height","100%")}}}function cleanPathAnimations(){removeCurrentAnimations();$(".animated-girl-display").remove()}function initializePathAnimations(){path_girls.forEach(function(path_girl,index){var animated_grade_info=getGirlAnimatedGradeInfo(path_girl,0);if(!Hero.infos.no_pachinko_anim&&animated_grade_info&&is_not_safari()){var $container=$(".girl-preview").eq(index);displayGirlAnimation(window.current_animations,$container,path_girl.id_girl,animated_grade_info)}else{var _$container=$('[girl-id="'+path_girl.id_girl+'"]');var girl_img='';_$container.prepend(girl_img);var $girl_img=$('[girl-id="'+path_girl.id_girl+'"] img');var girl_offset=path_girl.grade_offsets?path_girl.grade_offsets.static:null;loadGirlImageSrc($girl_img,path_girl.preview.poses[0].toImageUrl("ava"),girl_offset,0)}})}function initGirlsInfo(){path_girls.forEach(function(girl_data,index){var html=buildGirlPreview(girl_data,index);$(".potions-paths-second-row").append(html)})}function buildGirlPreview(girl,index){var pass_button_html=heroHasPass===0&&index===1?buildPassButton():"";var girl_side=index===0?"left_side":"right_side";return'\n\t\t\t\n\t\t\t\t'+pass_button_html+'\n\n\t\t\t\t
\n\t\t\t\t\t
'+girl.name+'
\n\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t'+buildShards(girl.girl_shards,girl.name,true)+"\n\t\t\t\t
\n\t\t\t
\n\t\t"}function buildPassButton(){var pass_price=hh_prices[pathType+"_pass"];return'\n\t\t\t\n\n\t\t\t\n\t\t'}});function updatePovPogClaimAllButton(){$("#claim-all").remove();$(".claim-all-rewards").removeClass("claim-all-rewards");var $claimable_tiers=$(".potions-paths-progress-bar-tiers .unclaimed");if($claimable_tiers.length>1){var last_element=$claimable_tiers[$claimable_tiers.length-1];var claim_all_button_html=buildPovPogClaimAllButtonHtml();$(last_element).append(claim_all_button_html).addClass("claim-all-rewards");$claimable_tiers.find('button[rel="claim"]').addClass("last-claim-btn")}addPovPogClaimAllClick()}function buildPovPogClaimAllButtonHtml(){return'\n\t\t\n\t"}function addPovPogClaimAllClick(){$("#claim-all").click(function(event){disableButton($("#claim-all"),true);var params={action:pathPrefix+"_claim_all"};hh_ajax(params,function(data){Reward.handlePopup(data.rewards);$(event.currentTarget).parent().removeClass("claim-all-rewards");var $claimable_tiers=$(".potions-paths-progress-bar-tiers .unclaimed");for(var index=0;index<$claimable_tiers.length;index++){changePovPogClassOfTierToClaimed($claimable_tiers[index])}updatePobPogGirlsBars(data.rewards);disableButton($("#claim-all"),false)})})}function updatePobPogGirlsBars(rewards_data){var total_new_shards=getTotalNewShards(rewards_data);if(total_new_shards.length){var new_potions=0;var objectives_data=jsonParse($(".potions-paths-more-info-button").attr("data-pov-info-tooltip"));total_new_shards.forEach(function(new_shards){var relevant_objective=objectives_data.objective_combination.objectives.find(function(objective){return objective.identifier==="earn_shard_"+new_shards.rarity});var $girl_preview=$('.girl-preview[girl-id="'+new_shards.girlId+'"]');var $girl_shards_text=$girl_preview.find(".shards_bar_wrapper > .shards > p > span");var current_girl_shards=$girl_shards_text.text().split("/");var new_shards_total=parseInt(current_girl_shards[0])+new_shards.number;$girl_shards_text.text(new_shards_total+"/100");$girl_preview.find(".shards_bar > .bar").css("width",new_shards_total+"%");if(relevant_objective&&relevant_objective.hasOwnProperty(pathType+"_points")){new_potions+=newShards.number*relevant_objective[pathType+"_points"]}})}}function getTotalNewShards(reward_data){var total_new_shards=[];if(reward_data.data.hasOwnProperty("shards")){reward_data.data.shards.forEach(function(girl_shards){var shards_number=girl_shards.value-girl_shards.previous_value;new_shards={number:shards_number,rarity:girl_shards.rarity,girlId:girl_shards.id_girl};total_new_shards.push(new_shards)})}return total_new_shards}function changePovPogClassOfTierToClaimed(tier){$(tier).removeClass("unclaimed");$(tier).find(".free-slot").addClass("claimed-slot");if(heroHasPass){$(tier).find(".paid-slots").addClass("claimed-slot").removeClass("paid-unclaimed")}}function unlockPovPogBonusRewards(){$allTiers=$(".potions-paths-progress-bar-tiers .potions-paths-tier");$allTiers.find(".paid-slots").removeClass("paid-locked").addClass("paid-available");$allTiers.each(function(){var $paidSlot=$(this).find(".paid-slot");var $freeSlot=$(this).find(".free-slot");if($freeSlot.hasClass("claimed-slot")&&!$paidSlot.hasClass("claimed-slot")){$(this).addClass("unclaimed")}})}var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};$(document).ready(function(){if(!$("#double_pachinko_event").length)return;init();function init(){initImagesRotation(current_event.event_data.pachinko_list)}function initImagesRotation(events_data){Object.keys(events_data).forEach(function(event){var event_img_url=events_data[event].background;var $event_img_block=$("."+event+" .block-img");if((typeof event_img_url==="undefined"?"undefined":_typeof(event_img_url))==="object"){event_img_url.forEach(function(img_url){$event_img_block.append('')});if(event_img_url.length>1){imageRotator=new ImageFadeRotator;imageRotator.itemInterval=3e3;imageRotator.run($event_img_block)}}else if(typeof event_img_url==="string"){$event_img_block.append('')}})}});var beforeReceivedDelayRange=[200,400];var beforeSeenDelayRange=[300,600];var whileWritingDelayRange=[800,1500];$(function(){if(!$(".page-messenger").length){return}var timeouts=[];init();function clearAllTimeouts(){timeouts.forEach(function(timeoutId){clearTimeout(timeoutId)});timeouts=[]}var currentlyFullscreenImage="";$(".switch-tab").click(function(){switchToTab($(this))});function bindImageMessageClickEvent(){$(".message-image").click(function(){var albumTab=$(".album-tab");switchToTab(albumTab)})}function switchToTab(newTab){$(".inbox-tabs").find(".active-tab").removeClass("active-tab");newTab.addClass("active-tab");$(".switch-tab-content").hide();var tabContent=newTab.attr("data-tab");$("#"+tabContent).show();addAlbumEvents()}function filterConversationsList(){var updatedGirlConversations={};var name=$('input[name="find"]').val();Object.keys(girlConversations).forEach(function(index){var conversation=girlConversations[index];if(conversation.title.toLowerCase().includes(name.toLowerCase())){updatedGirlConversations[conversation.id_conversation]=conversation}});filteredConversationIds=Object.keys(updatedGirlConversations);$(".girl-conversation").each(function(){var show=filteredConversationIds.includes($(this).data("conversation-id").toString());$(this).toggle(show)})}function scrollToConversationBottom(){timeouts.push(setTimeout(function(){$(".inbox-body").animate({scrollTop:$(".inbox-body").prop("scrollHeight")},200)},500))}function initializeSideBar(){buildSidebar();bindSidebarEvents()}function bindSidebarEvents(){$('input[name="find"]').on("keyup",function(){debounce(filterConversationsList,300)});$(".girl-conversation").on("click",function(){var selectedGirlName=$(this).find(".girl-name").text();$("#girl-name-conversation").text(selectedGirlName);$(this).parent().find(".selected-background").hide();$(this).find(".selected-background").show();var clickedConversationParams={id_conversation:$(this).attr("data-conversation-id")};messengerAjax("get_messenger_conversation",clickedConversationParams,handleConversationSwitch)})}function handleConversationSwitch(conversationData){if(currentConversation.id_conversation!=conversationData.id_conversation){updateConversationProgress(currentConversation.id_conversation);clearAllTimeouts();currentConversation=conversationData;initializeCurrentConversation();initEmoji();bindMessageClickEvents();switchToTab($(".messages-tab"));scrollToConversationBottom();buildAlbum();addAlbumEvents()}}function bindMessageClickEvents(){bindReplyClickEvent();bindClaimClickEvent();bindImageMessageClickEvent()}function bindClaimClickEvent(){$(".claim-messenger-reward").click(function(){$(this).attr("disabled",true);$(this).html("Claimed");$(this).parent(".message-rewards").first().addClass("claimed-rewards");$(this).siblings(".rewards-list").first().remove();var claimRewardParams={id_member_chat:$(this).attr("data-member-chat"),chat_message_index:$(this).attr("data-message-index")};messengerAjax("claim_message_reward",claimRewardParams,handleRewardClaim)})}$(".replies-recharge").click(function(){if(Hero.energies.reply.amount=Hero.energies.reply.max_regen_amount){$(".replies-recharge").empty().append('')}}$(".more-info-button").click(function(){var help_popup='\n\t\t\t\n\t\t";var popup_background='';$("body").append(popup_background);$("body").append(help_popup);timeouts.push(setTimeout(function(){$(".messenger-popup").css("opacity",1)}))});$("body").on("click",".messenger-help-popup .close-button",function(){$(".messenger-help-popup").remove();$(".messenger-popup-background").remove()});function togglePlayerMessageState(delayBeforeReceived,delayBeforeSeen){var lastPlayerMessage=$("#messenger-messages").children(".player-message").last();timeouts.push(setTimeout(function(){lastPlayerMessage.find(".message-status").removeClass("messenger_message_sent_icn").addClass("messenger_message_received_icn");timeouts.push(setTimeout(function(){lastPlayerMessage.find(".message-status").removeClass("messenger_message_received_icn").addClass("messenger_message_seen_icn")},delayBeforeSeen))},delayBeforeReceived))}function girlIsWriting(delayBeforeWriting,delayWhileWriting,messageHtml){timeouts.push(setTimeout(function(){$("#messenger-messages").append('\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t');$("#messenger-messages").find(".message-writing-now").css("display","flex");scrollToConversationBottom();timeouts.push(setTimeout(function(){$("#messenger-messages").find(".message-writing-now").remove();$("#messenger-messages").append(messageHtml);initEmoji();scrollToConversationBottom()},delayWhileWriting))},delayBeforeWriting))}function init(){initializeSideBar();initializeCurrentConversation();initEmoji();initializeProgressBars();initializeAlbum();bindMessageClickEvents();scrollToConversationBottom()}function initializeAlbum(){buildAlbum();addAlbumEvents()}function addAlbumEvents(){addGalleryClick()}function addFullscreenKeydowns(){if(elementHasEvent("keydown","body")){return}$("body").keydown(function(e){if(!currentlyFullscreenImage){return}var nextImageElement="";if(e.which==37){nextImageElement=getSiblingElement("prev")}else if(e.which==39){nextImageElement=getSiblingElement("next")}else if(e.which==27){exitFullScreen()}if(nextImageElement){changeImageElement(nextImageElement)}refreshControls()})}function addFullscreenControlsClick(){if(elementHasEvent("click",".fullscreen-controls")){return}$(".fullscreen-controls").click(function(){var nextImageElement="";if($(this).hasClass("previous-fullscreen-image")){nextImageElement=getSiblingElement("prev")}else{nextImageElement=getSiblingElement("next")}if(nextImageElement){changeImageElement(nextImageElement)}refreshControls()})}function addFullscreenExitClick(){if(elementHasEvent("click",".exit-fullscreen")){return}$(".exit-fullscreen").click(function(){exitFullScreen()})}function elementHasEvent(eventType,element){if($(element).length&&$._data($(element)[0],"events")){var event_data=$._data($(element)[0],"events");if(event_data&&event_data[eventType]){var events=event_data[eventType];if(events&&events.length){return true}}}return false}function addGalleryClick(){$(".toggle-fullscreen-image").each(function(){if(elementHasEvent("click",$(this))){return}$(this).click(function(){var imageSrc=$(this).find("img").attr("fullscreen-src");var containerControls=getFullscreenControls($(this));var fullScreenImageContainer='\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t'+containerControls+"\n\t\t\t\t
";$("body").append(fullScreenImageContainer);addFullscreenControlsClick();addFullscreenExitClick();addFullscreenKeydowns();currentlyFullscreenImage=$(this);timeouts.push(setTimeout(function(){$(".fullscreen-image").addClass("visible-fullscreen-image")},100))})})}function buildAlbum(){$(".album-gallery").empty();if(!currentConversation.album.length){return}currentConversation.album.forEach(function(girlImage){var albumPreview='\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t';$(".album-gallery").append(albumPreview)})}function updateAlbum(girlImage){var albumPreview='\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t';$(".album-gallery").append(albumPreview)}function exitFullScreen(){$(".fullscreen-image").remove()}function changeImageElement(nextImageElement){$(".fullscreen-image").find("img").attr("src",nextImageElement.find("img").attr("fullscreen-src"));currentlyFullscreenImage=nextImageElement}function refreshControls(){var fullscreenContainer=$(".fullscreen-image");fullscreenContainer.find(".fullscreen-controls").remove();var newControls=getFullscreenControls(currentlyFullscreenImage);fullscreenContainer.append(newControls);addFullscreenControlsClick()}function getSiblingElement(direction){if(currentlyFullscreenImage[direction]().length){return currentlyFullscreenImage[direction]()}return""}function getFullscreenControls(currentImageElement){var controlsHtml="";if(currentImageElement.prev().length){controlsHtml+=''}if(currentImageElement.next().length){controlsHtml+=''}return controlsHtml}function initializeCurrentConversation(){$("#messenger-messages").empty();updateSelectedConversation(currentConversation.id_conversation);var conversationHtml=buildConversation(currentConversation);$("#messenger-messages").append(conversationHtml)}function initializeProgressBars(){for(var conversationId in girlConversations){updateConversationProgress(conversationId)}}function updateSelectedConversation(conversationId){$(".girl-conversations-container").find(".selected-background").hide();$('.girl-conversation[data-conversation-id="'+conversationId+'"]').find(".selected-background").show();updateTabTitles(conversationId)}function updateTabTitles(conversationId){var conversation=girlConversations[conversationId];$(".inbox").find("#conversation-title").text(""+conversation.title);$(".inbox").find("#gallery-title").text(conversation.title+"'s Gallery")}function updateConversationProgress(conversationId){var _girlConversations$co=girlConversations[conversationId].progress,current_index=_girlConversations$co.current_index,max=_girlConversations$co.max;var progressPercent=current_index?current_index/(max-1)*100:0;$('.girl-conversation[data-conversation-id="'+conversationId+'"]').find(".conversation-progress").css("height",progressPercent+"%")}function generateRandomNumber(min,max){var difference=max-min;var rand=Math.random();rand=Math.floor(rand*difference);rand=rand+min;return rand}function messengerAjax(action,params){var callback=arguments.length>2&&arguments[2]!==undefined?arguments[2]:function(data){console.log(data)};params.action=action;hh_ajax(params,callback)}function calculateTimeoutDelays(messages){var uiDelays=[];var totalDelay=0;messages.forEach(function(message,index){var delayBeforeReceived=message.author=="player"?generateRandomNumber(beforeReceivedDelayRange[0],beforeReceivedDelayRange[1]):0;var delayBeforeSeen=message.author=="player"?generateRandomNumber(beforeSeenDelayRange[0],beforeSeenDelayRange[1]):0;var delayWhileWriting=message.author=="girl"?generateRandomNumber(whileWritingDelayRange[0],whileWritingDelayRange[1]):0;var sumDelays=delayBeforeReceived+delayBeforeSeen+delayWhileWriting;uiDelays[index]={delayBeforeReceived:delayBeforeReceived,delayBeforeSeen:delayBeforeSeen,delayWhileWriting:delayWhileWriting,sumDelays:sumDelays}});uiDelays.map(function(delays,index){var buffer=10;if(uiDelays[index-1]){var delaysToAdd=uiDelays[index-1];if(delays.delayBeforeReceived&&delays.delayBeforeReceived>0)delays.delayBeforeReceived+=uiDelays[index-1].sumDelays;if(delays.delayBeforeSeen&&delays.delayBeforeSeen>0)delays.delayBeforeSeen+=uiDelays[index-1].sumDelays;if(delays.delayWhileWriting&&delays.delayWhileWriting>0){var previousSumDelays=uiDelays[index-1].sumDelays;delays.delayBeforeWriting=previousSumDelays;totalDelay+=delays.delayBeforeWriting;delays.delayWhileWriting+=previousSumDelays;delays.sumDelays=delays.delayBeforeWriting+delays.delayWhileWriting+buffer*index}}if(index==uiDelays.length-1){totalDelay=delays.sumDelays}});return{uiDelays:uiDelays,totalDelay:totalDelay}}function appendNewMessagesToCurrentConversation(newMessages,newChat,newConversations){var _calculateTimeoutDela=calculateTimeoutDelays(newMessages),uiDelays=_calculateTimeoutDela.uiDelays,totalDelay=_calculateTimeoutDela.totalDelay;newMessages.forEach(function(message,index){updateChatData(message,newChat);message_html=buildMessage(message,true);if(message.author=="player"){$("#messenger-messages").append(message_html);initEmoji();togglePlayerMessageState(uiDelays[index].delayBeforeReceived,uiDelays[index].delayBeforeSeen)}if(message.author=="girl"){girlIsWriting(uiDelays[index].delayBeforeWriting,uiDelays[index].delayWhileWriting,message_html)}});timeouts.push(setTimeout(function(){updateConversationData(newMessages,newChat,newConversations);updateConversationProgress(currentConversation.id_conversation);bindMessageClickEvents();scrollToConversationBottom()},totalDelay+50))}function updateChatData(message,newChat){var newChatStarted=newChat&&message.title;var chats=currentConversation.chats;if(newChatStarted){chats.push(newChat)}var lastChat=chats[chats.length-1];lastChat.messages.push(message);if(newChat){var _newChat$progress=newChat.progress,current_index=_newChat$progress.current_index,max=_newChat$progress.max;girlConversations[currentConversation.id_conversation].progress={current_index:current_index,max:max}}else{girlConversations[currentConversation.id_conversation].progress.current_index=lastChat.messages[lastChat.messages.length-1].message_index}}function updateConversationData(newMessages,newChat,newConversations){newMessages.forEach(function(message){if(message.images&&Object.keys(message.images).length!==0){updateAlbum(message.images)}})}function handleReply(data){var new_messages=data.new_messages,new_chat=data.new_chat,new_conversations=data.new_conversations,hero_updates=data.hero_updates,conversation_status=data.conversation_status;updateConversationStatus(currentConversation.id_conversation,conversation_status);$("#messenger-messages").find(".choice-container").remove();if(hero_updates){Hero.updates(hero_updates)}if(new_chat){new_chat.messages.forEach(function(message,index){if(index===0){message.title=new_chat.title}new_messages.push(message)})}appendNewMessagesToCurrentConversation(new_messages,new_chat,new_conversations);if(new_conversations){new_conversations.forEach(function(conversation){girlConversations[conversation.id_conversation]=conversation;updateConversationProgress(conversation.id_conversation);if($('.girl-conversation[data-conversation-id="'+conversation.id_conversation+'"]').length===0){var sidebarConversationHtml=buildSidebarConversation(conversation);$(".girl-conversations-container").prepend(sidebarConversationHtml)}else{updateConversationStatus(conversation.id_conversation,conversation.status)}});bindSidebarEvents()}}function bindReplyClickEvent(){$(".message-option").click(function(){var option_index=$(this).attr("data-option-index");var message_index=$(this).attr("data-message-index");var chat=currentConversation.chats[currentConversation.chats.length-1];var messages=chat.messages;var option=messages[messages.length-1].reply_options[option_index];var clicked_option_params={id_member_chat:chat.id_member_chat,chat_message_index:message_index,id_chat_message_reply:option.id_chat_message_reply};disableButton($(".message-option"),true);messengerAjax("reply_to_chat",clicked_option_params,handleReply)})}function buildOption(options,message_index){var html='';var hero_frames=Hero.currencies.frames;var hero_replies=Hero.energies.reply.amount;options.forEach(function(option,index){var text=option.text,_option$cost=option.cost,amount=_option$cost.amount,type=_option$cost.type;var currency_span=type==="frames"?'
':'
';var reply_disabled=type==="frames"&&hero_frames
\n\t\t\t\t\t\n\t\t\t\t\t\t'+(text||"")+'\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t \n\t\t\t"});html+="";return html}function buildMessage(messageObject,isLastMessage){var author=messageObject.author,message=messageObject.message,images=messageObject.images,reward=messageObject.reward,reply_options=messageObject.reply_options,message_index=messageObject.message_index,title=messageObject.title;var newChatTitle="";if(title){newChatTitle=buildChatTitle(title)}var hasImages=images&&Object.keys(images).length>0;var imageClass=hasImages?"message-with-image":"";var statusSpan="";if(author=="player"){statusSpan=isLastMessage?'':''}var imageHtml=hasImages?'':"";var rewardHtml="";var chat=void 0;currentConversation.chats.forEach(function(chatObject){if(chatObject.id_chat==messageObject.id_chat){chat=chatObject}});if(!chat)chat=currentConversation.chats[currentConversation.chats.length-1];if(reward&&reward.rewards){if(chat.taken_rewards.includes(""+message_index)){rewardHtml='\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t'}else{var rewards=newReward.slot(reward.rewards[0]);rewardHtml='\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
Rewards:
\n\t\t\t\t\t\t
'+rewards+'
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t'}}var html=newChatTitle+'\n\t\t\n\t\t\t
\n\t\t\t\t'+(message||"")+"\n\t\t\t\t"+statusSpan+"\n\t\t\t
\n\n\t\t\t"+imageHtml+"\n\t\t\t"+rewardHtml+"\n\t\t
";if(isLastMessage&&reply_options){html+=buildOption(reply_options,message_index)}return html}function buildChatTitle(title){return'\n\t\t\t\n\t\t\t\t
'+title+"
\n\t\t\t\n\t\t"}function buildChat(chat){var title=chat.title,messages=chat.messages;var html=buildChatTitle(title);var amountMessages=messages.length;messages.forEach(function(message,index){var isLastMessage=amountMessages-1==index;html+=buildMessage(message,isLastMessage)});return html}function buildConversation(conversation){var chats=conversation.chats;var html="";chats.forEach(function(chat){html+=buildChat(chat)});return html}function handleRewardClaim(data){HHPopupManager.closeLastOpenedPopup();var claimableReward={data:data.rewards.data};updateConversationStatus(currentConversation.id_conversation,data.conversation_status);Reward.handlePopup(claimableReward)}function buildSidebar(){var html="";Object.keys(girlConversations).reverse().forEach(function(index){html+=buildSidebarConversation(girlConversations[index])});$(".girl-conversations-container").append(html)}function getConversationStatusClasses(status){var classes=[];switch(status){case"pending":classes=["unseen"];break;case"completed":classes=["completed","messenger_conversation_completed_icn"];break;case"reward":classes=["reward","messenger_conversation_reward_icn"];break}return classes}function updateConversationStatus(conversationId,status){var sidebarConversationElement=$(".girl-conversation[data-conversation-id="+conversationId+"]").find(".conversation-status");var classes=getConversationStatusClasses(status).join(" ");sidebarConversationElement.attr("class","conversation-status "+classes)}function buildSidebarConversation(conversation){var classes=getConversationStatusClasses(conversation.status);var html='\n\t\t\t\n\t\t\t\t
\n\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t'+conversation.title+'\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t
\n\t\t';return html}});var _createClass=function(){function defineProperties(target,props){for(var i=0;i.girls_list [girl].opened").removeClass("opened");$('#harem_left>.girls_list [girl="'+this.gId+'"]').addClass("opened");history.pushState({girl:this.gId},"",getDocumentHref("/harem/"+this.gId));window.onpopstate=function(event){if(event.state&&event.state.girl){girls[event.state.girl].showInRight()}};this._buildRightPartBody();appear_anim.appear_all();var prefered_girl_pose="undefined"!==typeof this.gData.fav_graded&&this.gData.fav_graded!="-1"?this.gData.fav_graded:this.gData.graded;prefered_girl_pose=parseInt(prefered_girl_pose,10);var animated_grade_info=getGirlAnimatedGradeInfo(this.gData.girl,prefered_girl_pose);if(animated_grade_info&&!Hero.infos.no_pachinko_anim&&this.gData.is_owned&&is_not_safari()){displayGirlAnimation(window.current_animations,$(".avatar-box"),this.gData.id_girl,animated_grade_info,{disable_offset:true})}this.addPosesAndScenesPreviewClickEvent();this.addEquipmentButtonsClick();this.addEquipmentSlotClick();this.addSkillsClickEvent()}},{key:"_getLeft",value:function _getLeft(){if(!this._leftHaremSection){this._leftHaremSection=$('#harem_left>.girls_list div[girl="'+this.gId+'"]')}return this._leftHaremSection}},{key:"_buildRightPartBody",value:function _buildRightPartBody(){this.nb_grades=parseInt(this.gData.girl.nb_grades,10);var $container=$("#harem_right>div");var containers_html='\n\t\t\t\n\t\t\t\n\t\t';$container.attr("girl",this.gId).addClass("opened").html(containers_html);var inner_html=this.gData.is_owned?this._buildBodyOwnedGirl():this._buildBodyNotOwnedGirl();$container.append(inner_html)}},{key:"_buildBodyNotOwnedGirl",value:function _buildBodyNotOwnedGirl(){var $middle_container=$(".middle_part");var $right_container=$(".girl_infos_area");$middle_container.addClass("missing_girl").append(this._buildMiddlePartBodyHtml());$right_container.removeClass("girl_infos_area").addClass("girl_variant_container").append(this._buildRightSideBodyHtml())}},{key:"_buildMiddlePartBodyHtml",value:function _buildMiddlePartBodyHtml(){var event_timer_html=this._isEventGirl()?''+GT.design.contests_ends_in+':
':"";var locked_ava=$("#hh_startrans").length||$("#hh_stargay").length?"/images/pictures/design/ava_locked.png":this.gData.ava.toImageUrl("avb");return'\n\t\t\t\n\t\t\t\n\t\t'}},{key:"_buildRightSideBodyHtml",value:function _buildRightSideBodyHtml(){return'\n\t\t\t\n\t\t\t'+this._buildHTMLGirlVariants()+"\n\t\t"}},{key:"_getGirlSourceLink",value:function _getGirlSourceLink(){var girl_anchor_source_data=this.gData.girl.sources.source.anchor_source;if(girl_anchor_source_data.disabled){return""}return getDocumentHref(girl_anchor_source_data.url)}},{key:"_isEventGirl",value:function _isEventGirl(){return this.gData.girl.sources.source.ongoing&&$.inArray(this.gData.girl.sources.source.name,["event_dm","event_troll","pachinko_event"])!==-1}},{key:"_buildBodyOwnedGirl",value:function _buildBodyOwnedGirl(){this._buildLeftSliderHTML();this._buildRightExpandedInfoHTML()}},{key:"_buildLeftSliderHTML",value:function _buildLeftSliderHTML(){var $middle_part=$("#harem_right .middle_part");var attributes=this.gData.first_time_info?'class="new-information" style="display: none;"':"";var girl_name=this.gData.girl.name;var prefered_girl_pose="undefined"!==typeof this.gData.fav_graded&&this.gData.fav_graded!="-1"?this.gData.fav_graded:this.gData.graded;prefered_girl_pose=parseInt(prefered_girl_pose,10);var girl_name_html=""+girl_name+this._buildGirlElementHtml()+this._buildGirlClassHtml()+"
";var rarity=this.gData.girl.rarity;var appear_ava=this.gData.first_time_info?"appear":"";var avatar_src=this.gData.ava;var rarity_html=''+this._buildGirlClassHtml(true)+" "+GT.design["girls_rarity_"+rarity]+"
";$middle_part.prepend(rarity_html);$middle_part.prepend(girl_name_html);var avatar_html="";var girl_has_animation=getGirlAnimatedGradeInfo(this.gData.girl,prefered_girl_pose);if(!girl_has_animation||Hero.infos.no_pachinko_anim||!is_not_safari()){avatar_html+='";if(this.gData.first_time_info){avatar_html+=''}}$middle_part.children(".avatar-box").append(avatar_html);if(!Hero.infos.no_static_image_animation){addMovement($middle_part.find(".avatar"))}if(this.gData.first_time_info){this.gData.first_time_info=false}var diamond_bar_html="";if(!guest_mode){diamond_bar_html+='';for(var i=0;i
this.gData.graded;var selected=prefered_girl_pose===i?"selected":"";var locked=is_locked?"locked":"unlocked";diamond_bar_html+='\n\t\t\t\t\t"}diamond_bar_html+=" "}$middle_part.append(diamond_bar_html)}},{key:"_buildGirlElementHtml",value:function _buildGirlElementHtml(){var hide=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return'\n\t\t\t\n\t\t"}},{key:"_buildGirlClassHtml",value:function _buildGirlClassHtml(){var hide=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return'"}},{key:"_buildRightExpandedInfoHTML",value:function _buildRightExpandedInfoHTML(){var $container=$("#harem_right>div .girl_infos_area");$container.css({"overflow-x":"hidden"});var body="";body+='';body+=this._buildGemsPlayerAmount();body+="
";body+='\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t- '+GT.design.haremdex_stats+'
\n\t\t\t\t\t\t\t- Equipment
\n\t\t\t\t\t\t\t- '+GT.design.girl_skills+'
\n\t\t\t\t\t\t\t- '+GT.design.haremdex_bio+'
\n\t\t\t\t\t\t\t- '+GT.design.haremdex_short_variants+'
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
';body+=this._buildExperienceBlockHTML();body+=this._buildAffectionBlockHTML();body+=this._buildEquipmentBlockHtml();body+=this._buildSkillsBlockHtml();var income_per_hour=number_format_lang(this.gData.salary_per_hour)+"/"+GT.time.h;body+='\n\t\t\t\t\t
\n\t\t\t\t\t'+GT.design.haremdex_income+': '+income_per_hour+"\n\t\t\t\t\t
\n\t\t\t\t";body+=this._buildStatsBlockHTML();body+=this._buildBiographyBlockHtml();body+=this._buildHTMLGirlVariants();$container.append(body)}},{key:"_buildExperienceBlockHTML",value:function _buildExperienceBlockHTML(){var girl_experience_block_html=this._buildGirlExperienceBlockHtml();return'\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
'+GT.design.Experience+':
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t'+GT.design.Lvl+'\n\t\t\t\t\t\t\t'+this.gData.level+"\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t"+girl_experience_block_html+"\n\t\t\t\t
\n\t\t\t
\n\t\t"}},{key:"_buildGirlExperienceBlockHtml",value:function _buildGirlExperienceBlockHtml(){var experience_block="";if(this.gData.level==GIRL_MAX_LEVEL){experience_block+=''+GT.design.Maxed+""}else if(this.gData.xp_details.maxed&&this.gData.level'+GT.design.awaken_to_uncap+'