@@ -17,29 +17,33 @@ public static void OnChangingRoles(ChangingRoleEventArgs ev)
1717
1818 Timing . CallDelayed ( 2f , ( ) =>
1919 {
20- ev . Player . Broadcast ( 8 , BetterDoggie . Singleton . Config . SpawnMessage ) ;
21-
20+ ev . Player . Broadcast ( BetterDoggie . Singleton . Config . SpawnBroadcast ) ;
21+
22+ ev . Player . Health = BetterDoggie . Singleton . Config . DoggieHealth ;
23+ ev . Player . MaxHealth = BetterDoggie . Singleton . Config . DoggieHealth ;
24+ ev . Player . ArtificialHealth = BetterDoggie . Singleton . Config . DoggieAhp ;
25+ ev . Player . MaxArtificialHealth = BetterDoggie . Singleton . Config . DoggieAhp ;
26+
2227 ev . Player . Scale = BetterDoggie . Singleton . Config . DoggieScale ;
23- ev . Player . EnableEffect < Scp207 > ( ) ;
28+
29+ if ( BetterDoggie . Singleton . Config . ColaSpeedBoost )
30+ ev . Player . EnableEffect < Scp207 > ( ) ;
2431 } ) ;
2532 }
2633
2734 public static void OnHurtingPlayer ( HurtingEventArgs ev )
2835 {
29- if ( ev . Attacker . Role != RoleType . Scp93953 && ev . Attacker . Role != RoleType . Scp93989 )
36+ if ( ev . Attacker . Role != RoleType . Scp93953 && ev . Attacker . Role != RoleType . Scp93989 || ev . Attacker == ev . Target )
3037 return ;
3138
3239 if ( ev . DamageType == DamageTypes . Scp207 )
3340 {
3441 ev . IsAllowed = false ;
3542 return ;
3643 }
37-
38- if ( ev . Attacker == ev . Target )
39- return ;
4044
41- // 600 Is the maximum hume shield of 939
42- ev . Amount = BetterDoggie . Singleton . Config . BaseDamage + Math . Abs ( ev . Attacker . ArtificialHealth - 600 ) / 600 * BetterDoggie . Singleton . Config . MaxDamageBoost ;
45+ var maxHume = BetterDoggie . Singleton . Config . DoggieAhp ;
46+ ev . Amount = BetterDoggie . Singleton . Config . BaseDamage + Math . Abs ( ev . Attacker . ArtificialHealth - maxHume ) / maxHume * BetterDoggie . Singleton . Config . MaxDamageBoost ;
4347
4448 ev . Attacker . EnableEffect < SinkHole > ( 3f , true ) ;
4549 ev . Attacker . ChangeEffectIntensity < SinkHole > ( 2 ) ;
@@ -54,19 +58,33 @@ public static void OnInteractingDoor(InteractingDoorEventArgs ev)
5458 return ;
5559
5660 if ( ev . Player . ArtificialHealth <= BetterDoggie . Singleton . Config . DoorBustAhp )
57- BustDoor ( ev . Door . Base , ev . Player ) ;
61+ BustDoor ( ev . Door . Base , ev . Player , BetterDoggie . Singleton . Config . EnableBustSpeedBoost ) ;
5862 }
59-
60- private static void BustDoor ( DoorVariant door , Player ply )
63+
64+ /// <summary>
65+ /// Busts down a door and applies effect
66+ /// </summary>
67+ /// <param name="door"></param>
68+ /// <param name="ply"></param>
69+ /// <param name="speedBoost"></param>
70+ private static void BustDoor ( DoorVariant door , Player ply , bool speedBoost )
6171 {
62- if ( door is IDamageableDoor damage )
63- damage . IsDestroyed = true ;
72+ switch ( door )
73+ {
74+ case IDamageableDoor damage :
75+ damage . IsDestroyed = true ;
76+ break ;
77+ case PryableDoor pryableDoor :
78+ pryableDoor . TryPryGate ( ) ;
79+ break ;
80+ }
6481
65- if ( door is PryableDoor pryableDoor )
66- pryableDoor . TryPryGate ( ) ;
82+ if ( ! speedBoost )
83+ return ;
6784
68- ply . ChangeEffectIntensity < Scp207 > ( 2 ) ;
69- Timing . CallDelayed ( 2f , ( ) => ply . ChangeEffectIntensity < Scp207 > ( 1 ) ) ;
85+ ply . ChangeEffectIntensity < Scp207 > ( BetterDoggie . Singleton . Config . BustBoostAmount ) ;
86+ if ( BetterDoggie . Singleton . Config . ColaSpeedBoost )
87+ Timing . CallDelayed ( 2f , ( ) => ply . ChangeEffectIntensity < Scp207 > ( 1 ) ) ;
7088 }
7189 }
7290}
0 commit comments