
    @d'                     6   S SK r S SKJrJrJrJrJrJrJrJ	r	  S SKJ
r
Jr  S SKJrJr  S rS\ R                   4S jr " S S	\5      r\" 5       r\S
:X  a  \ R*                  " S\R,                   S35        \ H  r\R,                  \R,                  :X  d  M  \R0                  (       a  \R3                  5         \R4                  " \5        \ R*                  " S\R,                   S35        \R6                  R8                  \R6                  l          O   \" \5        g)    N)SDKModEnabledSaveTypeModTypesGameOptionsModsRegisterModHook)ServerMethodClientMethod)ENetModeEModifierTypec                  ~    [         R                  " 5       R                  5       R                  [        R
                  :H  $ N)	unrealsdk	GetEngineGetCurrentWorldInfoNetModer   	NM_Client     `Z:\mnt\Skyabridged\SteamLibrary\steamapps\common\Borderlands 2\sdk_mods\MovementTech\__init__.py	is_clientr      s+    113;;x?Q?QQQr   returnc                  Z    [         R                  " 5       R                  S   R                  $ )Nr   )r   r   GamePlayersActorr   r   r   get_pcr   	   s"    ))!,222r   c            	       ^  ^  \ rS rSr% Sr\\S'   Sr\\S'   Sr\\S'   Sr	\\S	'   \
R                  r\R                  r\\S
'   \R"                  r\\S'   Sr\\S'   SrSrSrSrSrSrSr0 r/ SQr/ SQr/ SQSS/S/SS/SS//rSr / SQr!SSSSSS.r"0 r#Sr$S r%S>S" jr&S!\4S# jr'S!\4S$ jr(S!\)4S% jr*S!\+RX                  4S& jr-S' r.S( r/S) r0\1S* 5       r2\3S+ 5       r4S, r5S- r6\3S?S. j5       r7S/ r8\3S?S0 j5       r9\:" S15      S2\+RX                  S3\+Rv                  S4\+Rx                  S!\4S5 j5       r=S6 r>S?S7 jr?\:" S85      S2\+RX                  S3\+Rv                  S4\+Rx                  S!\4S9 j5       r@\:" S:5      S2\+RX                  S3\+Rv                  S4\+Rx                  S!\4S; j5       rAS>U 4S< jjrBS=rCU =rD$ )@MovementTech   zMovement TechNamezHEnables slamming and double jumps for BL2.
Now with multiplayer support!Description
ZetaDaemonAuthorz1.2VersionTypesSaveEnabledStateFslamming   i  N)zKFX_CHAR_Shared_Shield.Particles.Novas.Part_Incendiary_Nova_Shield_ExplosionzFFX_CHAR_Shared_Shield.Particles.Novas.Part_Shock_Nova_Shield_ExplosionzJFX_CHAR_Shared_Shield.Particles.Novas.Part_Explosive_Nova_Shield_ExplosionzJFX_CHAR_Shared_Shield.Particles.Novas.Part_Corrosive_Nova_Shield_ExplosionEFX_CHAR_Shared_Shield.Particles.Novas.Part_Slag_Nova_Shield_Explosion)Slam_Custom_FireSlam_Custom_ShockSlam_Custom_ExplosiveSlam_Custom_CorrosiveSlam_Custom_Slag)         r   r1      r2   zCAke_Exp_Elemental.Exp_Explosive.Ak_Play_Exp_Elemental_Explosive_MED)Fireshock	explosive	corrosiveampz2GD_Incendiary.DamageType.DmgType_Incendiary_Impactz(GD_Shock.DamageType.DmgType_Shock_Impact0GD_Explosive.DamageType.DmgType_Explosive_Impactz0GD_Corrosive.DamageType.DmgType_Corrosive_Impactz$GD_Amp.DamageType.DmgType_Amp_ImpactTzAke_Fs_Player.Ak_Play_Fs_Jumpr   c           
      f    [         R                  " SSSSSSSS9U l        U R                  /U l         g )NzJump Height Increasez4Percent increase for jump height. (Dictated by host)r   d   r4   F)Captionr#   StartingValueMinValueMaxValue	IncrementIsHidden)r   Slider
JumpHeightselfs    r   __init__MovementTech.__init__L   s9    NN!E$/ ??$,r   c                 @    XR                   ;   a  U R                  U   $ g)Nr:   )Frame_NamesDamage_DictrF   	framenames     r   get_damage_typeMovementTech.get_damage_typeZ   s"    """


9
%%	;r   c                 \    XR                   ;   a  U R                  U   $ U R                  S   $ )Nr7   )rJ   Particle_DictrL   s     r   get_particleMovementTech.get_particle_   s0    """


Y
''			K	((r   c                 d    Sn[         R                  " SS5      R                  nU[        X15      -  $ )N   ConstantAttributeValueResolverzfGD_Balance_HealthAndDamage.HealthAndDamage.Att_UniversalBalanceScaler:ConstantAttributeValueResolver_0)r   
FindObjectConstantValuepow)rF   power
multiplierlevels       r   slam_damageMovementTech.slam_damaged   s>    *


?  Bj  k  y  y%	s5(	))r   c                 t   [         R                  " SU5      n[         R                  " UR                  UR                  US9n[         R
                  " U5        UR                  Ul        UR                  =R                  S-  sl        UR                  n/ nU H  nUR                  Xh   5        M     Xul	        U$ )NParticleSystemClassOuterr"   r3   )r   rW   ConstructObjectrb   rc   	KeepAliveObjectArchetypeObjectFlagsBEmittersappend)	rF   srcnew_nameemmitter_idx_listBase_ParticleCustom_Impact_ParticleBase_EmittersNew_Emittersidxs	            r   clone_particleMovementTech.clone_particlei   s    &&'7=-$44						
 ,-+8+H+H($$&&!+&((-,c})* $0!	r   c                    [         R                  " SS5      nU(       d-  [         R                  " S5        [         R                  " SS5      n[         R                  " U5        [	        [        U R                  5      5       HW  nU R                  U R                  U   U R                  U   U R                  U   5      U R                  U R                  U   '   MY     g )Nr`   r+   Sage_Underground_Combat)r   rW   LoadPackagere   rangelenBase_Impact_Particlesrs   Custom_Impact_ParticlesEmmitter_Idx_ListsrQ   rJ   )rF   objrr   s      r   construct_particles MovementTech.construct_particles{   s    -/vw#	23			.0w	x3c3t1123c/3/B/Bs#  %C 04d&&s+, 4r   c                 6   [         R                  " SS SS9U l        [         R                  " U R                  5        [         R                  " [         R                  " S5      U R                  SS9U l        [         R                  " U R
                  5        [         R                  " [         R                  " S5      U R
                  SS9/U R
                  l        [         R                  " [         R                  " S5      U R
                  SS9/U R
                  l        [        5       R                  S	U R
                  R                  U R
                  R                  S
   5       S35        [         R                  " SU R                  SS9U l        [         R                  " U R                  5        [        R                  U R                  l        U R                  U R                  l        [         R"                  " SS5      U l        [         R                  " SU R                  SS9U l        [        R                  U R&                  l        [)        U R*                  R,                  S-  5      U R&                  l        [         R                  " U R&                  5        g )NPackager    ra   AttributeDefinitionPawnGravityPawnAttributeContextResolver $ObjectPropertyAttributeValueResolverzset r   z" PropertyName CustomGravityScalingAttributeModifierGravityModifierz*D_Attributes.GameplayAttributes.JumpHeightJumpModifierr<   )r   rd   packagere   	FindClassgravity_attrContextResolverChainValueResolverChainr   ConsoleCommandPathNamegravity_modifierr   MT_ScaleTypeslam_gravityValuerW   	jump_attrjump_modifierfloatrD   CurrentValuerE   s    r   construct_attrsMovementTech.construct_attrs   s   **		$,
 dll#//			2	3	$
 d''(


<
=


	,$( 


D
E


	*$& 	(D!2!2!;!;D<M<M<`<`ab<c!d e  fH  I  J#33		$
 d++,,55$ $ 1 1$''(=?kl$. 00		$
 *22$"4??#?#?#CD$d(()r   c                     [         R                  " 5       R                  5       R                  nUR	                  U R                  U5      [        U5      5        g r   )r   r   r   MyEmitterPoolSpawnEmitterrR   tuple)rF   rM   locationemitter_pools       r   spawn_particleMovementTech.spawn_particle   s>    $$&::<JJ,D--i8%/Kr   c                 &    U R                  X5        g r   )r   rF   rM   r   s      r   client_spawn_particle"MovementTech.client_spawn_particle   s    i*r   c                 H    U R                  X5        U R                  X5        g r   )r   r   r   s      r   server_spawn_particle"MovementTech.server_spawn_particle   s    Y1i*r   c                     [        U R                  R                  S-  5      U R                  l        U R
                  R                  XR                  5        g )Nr<   )r   rD   r   r   r   r   AddAttributeModifierrF   pawns     r   apply_jump_modifier MovementTech.apply_jump_modifier   s<    "4??#?#?#CD$..%%d,>,>?r   c                 N    U R                   R                  XR                  5        g r   )r   RemoveAttributeModifierr   r   s     r   remove_jump_modifier!MovementTech.remove_jump_modifier   s    ..((/A/ABr   c                 :    U R                  UR                  5        g r   )r   PawnrF   PCs     r   server_apply_jump_modifier'MovementTech.server_apply_jump_modifier   s    277#r   c                     XR                   ;  a  SU R                   U'   OU R                   U   (       a  g SU R                   U'   U R                  R                  UR                  U R                  5        g NT)playersr   r   r   r   r   s     r   
start_slamMovementTech.start_slam   sW    ||4<<||B	$,,r(($2G2GHr   c                 .    Ub  U R                  U5        g g r   )r   r   s     r   server_start_slamMovementTech.server_start_slam   s    ^??2 r   z(WillowGame.WillowPlayerInput.DuckPressedthisfunctionparamsc                     UR                   nUR                  R                  5       (       a  g[        5       (       a  U R	                  5         gU R                  U5        g)NTF)rc   r   IsOnGroundOrShortFallr   r   r   )rF   r   r   r   r   s        r   try_slamMovementTech.try_slam   sJ    zz"WW""$$
[[ 
 ??2	r   c                    X R                   ;  a  SU R                   U'   U R                   U   nU(       d  g UR                  nU R                  R                  X@R                  5        U R
                  R                  X@R                  5        SU R                   U'   US-  nUS:  a  gUR                  R                  UR                  R                  UR                  R                  S-
  4nSSU-  S-  -   nUR                  S   nUb  UR                  5       nOSn[        5       (       a  U R                  X5        O"U R                  X5        U R!                  X5        UR#                  [$        R&                  " S	U R(                  5      5        UR+                  U R,                  X`R/                  UR1                  5       5      -  SUS
-  [$        R2                  " S5      [$        R&                  " SU R5                  U5      5      S S5        g )NFi  TF   r2   g      ?r7   AkEvent
   DmgType_CrushedWillowDamageTypeDefinition)r   r   r   r   r   r   r   LocationXYZEquippedItemsGetElementalFramer   r   r   r   PlayAkEventr   rW   Impact_SoundBehavior_CauseRadiusDamageslam_radiusr]   GetGameStager   rN   )	rF   velocityr   was_slammingr   player_locationdamage_multiplierartifactrM   s	            r   handle_impactMovementTech.handle_impact   s   ||4<<b!,			$++D2G2GH..((/A/AB$,,r
B,(_
]]__dmmoot}}r7IJ/#.4//"())+99[[i9i9y29''	43D3DEF!!''(9(9(;<<B;()4d6J6J96UV	r   c                 .    Ub  U R                  X5        g g r   )r   )rF   r   r   s      r   server_handle_impact!MovementTech.server_handle_impact  s    ^h# r   z&WillowGame.WillowPlayerPawn.PlayLandedc                     SU l         [        5       (       a  U R                  UR                  5        gU R	                  UR                  UR
                  5        gr   )can_double_jumpr   r   	ImpactVelr   
ControllerrF   r   r   r   s       r   landedMovementTech.landed  sI    $[[V--. 
 f&&8	r   z"WillowGame.WillowPlayerPawn.DoJumpc                     U R                   (       d  gUR                  5       (       a2  [        5       (       a  U R                  5         gU R	                  U5        gSU l         SUl        g)NTFr4   )r   CanJumpr   r   r   Physicsr   s       r   try_jumpMovementTech.try_jump  sV    			
	\\^^kk##%  	T"
$$,	r   c                 b   > [         TU ]  5         U R                  5         U R                  5         g r   )superEnabler~   r   )rF   	__class__s    r   r   MovementTech.Enable)  s%    '.r   )rD   r   r   r   r   r   r   r   )r   Nr   )E__name__
__module____qualname____firstlineno__r"   str__annotations__r#   r%   r&   r   BL2SupportedGamesr   Gameplayr'   r   LoadOnMainMenur(   r)   boolr   r   r   r   r   r   r   r   rz   r{   r|   r   rJ   rK   rQ   r   
Jump_SoundrG   rN   rR   r   r]   r   UObjectrs   r~   r   r   r   r   r   r   r   r   r   r   r   r
   	UFunctionFStructr   r   r   r   r   r   __static_attributes____classcell__)r   s   @r   r    r       s   s_c_#(($$$%4%C%C?C4 a&#a&a& V ?5AA	/ -< <
)c )
* *
 y?P?P  $-*^L + + + +@C $ $I   12)++ y7J7J T]TeTe jn  3$L$ /0	)) Y5H5H R[RcRc hl  1 +,)++ y7J7J T]TeTe jn  - r   r    __main__[z] Manually loadedz] Removed last instance)r   Mods.ModMenur   r   r   r   r   r   r	   r
   r   r   
Mods.Enumsr   r   r   r  r   r    instancer   Logr"   mod	IsEnabledDisableremover   r   r   r   r   <module>r     s     b b b 3 .R3	!! 3_6 _D	 >z
8==/!234SXX	mmKKM;;s==1X]]O#:;< $'==#;#;8   H r   