PK [#aFmeta.xml com.github.pruszko.responsive_reticle 1.0.3 Responsive reticle A simple mod for World of Tanks that increases client reticle tick rate several dozen times. PK [res/PK [ res/scripts/PK [res/scripts/client/PK [res/scripts/client/gui/PK [res/scripts/client/gui/mods/PK [##6res/scripts/client/gui/mods/mod_responsive_reticle.pyc jTic@sddlZddlmZddlmZddlZddlZddlZddlm Z ddl m Z ddl m Z ddl mZddlmZdd lmZdd lmZejeZd Zd Zd dZdZee dZee ddZee dedZee dedZdefdYZ dZ!erddl"m#Z#ee#dZ$n%ddl"m%Z%ee%dZ&dS(iN(tpi(tOptional(t PlayerAvatar(t_GunMarkerController(tVehicleGunRotator(tcalcPitchLimitsFromDesc(tVehicleDescriptor(t getShotAngles(t CURRENT_REALMcCs tdkS(NtRU(R(((ssrc\mod_responsive_reticle.pyt isClientLestascCst S(N(R (((ssrc\mod_responsive_reticle.pyt isClientWGscCstS(N(tTrue(((ssrc\mod_responsive_reticle.pyttcsfd}|S(Ncszs Sj}|jdrE|dkrEdj|}nt|fd}t|||S(Nt__t__init__t_cs||S(N((targstkwargs(tfunctold(ssrc\mod_responsive_reticle.pytwrapper)s(t__name__t startswithtgetattrtsetattr(RtfuncNameR(tclst condition(RRssrc\mod_responsive_reticle.pyt_overrideMethods  ((RRR((RRssrc\mod_responsive_reticle.pyt overrideInscCsmtjrtStj}tj|j}|dkr>tS|j}d|j j kr]tS|j j dkS(NtSPGi( t BattleReplayt isPlayingtFalsetBigWorldtplayertentitytplayerVehicleIDtNonettypeDescriptorttypettagstguntstaticTurretYaw(R%tvehtvehicleDescriptor((ssrc\mod_responsive_reticle.pytshouldBoostTickRate1s    cCsAtrdt_dt_ntjt_dt_||dS(NgMbP?gMb@?g{Gz?(R0Rt(_VehicleGunRotator__ROTATION_TICK_LENGTHt*_VehicleGunRotator__INSUFFICIENT_TIME_DIFFt constantstSERVER_TICK_LENGTH(Rtself((ssrc\mod_responsive_reticle.pyt__onTickNs     gcCs5tr!|tjkr!d}n||||dS(Ni(R0RR1(RR5tpositionMatrixt relaxTime((ssrc\mod_responsive_reticle.pyt_updateMatrixProviderbs RcCsd|_|dk r|n|j}tj}|dksL|jr|j rtrjt|d|_ q|j j d|_ n|j }|j }|j }|j} |j} |j} |jdk r|j\} } n!t|| |d|j\} } |j| | | ||}|jsA|j||_}n ||_}| dkrtt|| | |_n d|_t||j|jjd|jj}|j|j | |||_ |jr|jr|j!|d|j"|j dn)|j!||j#|j"|j |j#t|| }|t$krTdt$|}n|||_trt||j|_ n|j |j|_ dS(NgtoverrideGunPositionii(%t'_VehicleGunRotator__turretRotationSpeedR(t%_VehicleGunRotator__prevSentShotPointR!t g_replayCtrlt_VehicleGunRotator__isLockedtisUpdateGunOnTimeWarpR0t-getOwnVehicleShotDispersionAngleForGunRotatort$_VehicleGunRotator__dispersionAnglest_avatart getOwnVehicleShotDispersionAngletgetVehicleDescriptort&_VehicleGunRotator__getTurretYawLimitst*_VehicleGunRotator__maxTurretRotationSpeedt_VehicleGunRotator__turretYawt#getAvatarOwnVehicleStabilisedMatrixt#_VehicleGunRotator__fixedShotAnglesRt_VehicleGunRotator__gunPositiontgetNextTurretYawR"t+_VehicleGunRotator__syncWithServerTurretYawtabstestimatedTurretRotationTimeRt%_VehicleGunRotator__getGunPitchLimitsthullt turretPitchestturrett gunJointPitchtgetNextGunPitcht_VehicleGunRotator__gunPitcht&_VehicleGunRotator__updateTurretMatrixt#_VehicleGunRotator__updateGunMatrixR1R(RR5t shotPointttimeDifft targetPointt replayCtrltavatartdescrtturretYawLimitstmaxTurretRotationSpeedt prevTurretYawt vehicleMatrixt shotTurretYawt shotGunPitchtestimatedTurretYawt turretYawtgunPitchLimitstdiff((ssrc\mod_responsive_reticle.pyt__rotatesP                 cCsmd|_|dk r|n|j}tj}|dksL|jr|j rtrjt|d|_ qi|j j d|_ n|j }|j }|j }|j} |j} |j} t|| | |jf|d|j\} } |j| | | ||}|j||_}| dkrFt|| | |_n d|_t||j|jjd|jj}|j|j| |||_|jr|jr|j |d|j!|jdn)|j ||j"|j!|j|j"t|| }|t#kr&dt#|}n|||_trTt||j|_ n|j |j|_ dS(NgR:ii($R;R(R<R!R=R>R?R0R@RARBRCRDRERFRGRHRRURJRKRLRMRNRRORPRQRRRSRTR"RVRWR1R(RR5RXRYRZR[R\R]R^R_R`RaRbRcRdReRfRg((ssrc\mod_responsive_reticle.pyRhsH          $      tDispersionStatecBseZdZdZRS(cCs||_||_||_dS(N(tlastTimet lastTurretYawtdispersionAngles(R5RjRkRl((ssrc\mod_responsive_reticle.pyRs  cCs||_||_||_dS(N(RjRkRl(R5RjRkRl((ssrc\mod_responsive_reticle.pytsetStates  (Rt __module__RRm(((ssrc\mod_responsive_reticle.pyRis c Cstj}|}|j}t|dd}|dkrp|j|}tdtjd|d||_|Stj|j }|t j kr|j St ||j}|tkrdt|}n||}|j|}|jdtjd|d||S(Nt_mod_dispersion_stateRjRkRli(R$R%ReRR(RCRittimeRoRjR3R4RlRMRkRRm( t gunRotatortturretRotationSpeedR\RetdispersionStateRlRYt turretYawDifftnewTurretRotationSpeed((ssrc\mod_responsive_reticle.pyR@s,      (tWGGunMarkerDataProviderc Cst s|tjkr3||||||dStj}t|dd}|dkroi}||_nt|}|j |d} | dkrtj ||<||||t j |dStj | } | t j krdStj ||<||||t j |dS(Nt_mod_dataProviderSizeCache( R0RR1R$R%RR(RwtidtgetRpR3R4( RR5t currentSizetcurrentSizeOffsetR8toffsetInertnessR%tdataProviderSizeCachetselfIdRjRY((ssrc\mod_responsive_reticle.pyt updateSizes.s&     (tGunMarkerDataProviderc Cst s|tjkr-||||dStj}t|dd}|dkrii}||_nt|}|j |d}|dkrtj ||<|||t j dStj |}|t j krdStj ||<|||t j dS(NRw( R0RR1R$R%RR(RwRxRyRpR3R4( RR5RzR8R%R}R~RjRY((ssrc\mod_responsive_reticle.pyt updateSizeSs&     ('tloggingtmathRttypingRR!R$R3tAvatarRt"AvatarInputHandler.gun_marker_ctrlRRtgun_rotation_sharedRtitems.vehiclesRtprojectile_trajectoryRtrealmRt getLoggerRtlogR R RR0R6R9RhtobjectRiR@tGUIRvRRR(((ssrc\mod_responsive_reticle.pyts:        /4. * #PK? [#aF$ meta.xml lЯyIZyBHoPK? [$'res/ @\y@\y@\yPK? [ $Ires/scripts/ @\y@\y@\yPK? [$sres/scripts/client/ @\y@\y@\yPK? [$res/scripts/client/gui/ @\y@\y@\yPK? [$res/scripts/client/gui/mods/ @\y@\y@\yPK? [##6$ res/scripts/client/gui/mods/mod_responsive_reticle.pyc \y\y\yPK%