33using Exiled . API . Features ;
44using EvArg = Exiled . Events . EventArgs ;
55using api = SCP_600V . API . Players . Scp600PlyGet ;
6+ using PlayerRoles ;
7+ using Exiled . API . Features . Roles ;
68
79namespace SCP_600V . EventHandler . GameEvent
810{
@@ -14,29 +16,28 @@ internal void DamageHandler(EvArg.Player.HurtingEventArgs e)
1416 {
1517 if ( e . Player != null )
1618 {
17- if ( api . IsScp600 ( e . Player ) )
19+ if ( api . IsScp600 ( e . Attacker ) == true )
1820 {
19- if ( e . Attacker . Role . Team == PlayerRoles . Team . SCPs || e . Attacker . SessionVariables . ContainsKey ( "IsScp" ) || e . Attacker . SessionVariables . ContainsKey ( "IsScp035" ) || e . Attacker . SessionVariables . ContainsKey ( "IsSH" ) )
21+ bool a = Scp600DamageHandler ( e . Attacker , e . Player ) ;
22+ if ( a )
2023 {
21- if ( ! Sai . Instance . Config . IsScpCanDamageMe )
22- {
23- e . DamageHandler . Damage = 0 ;
24- e . IsAllowed = false ;
25- }
26- else
27- {
28- e . IsAllowed = true ;
29- }
24+ e . DamageHandler . Damage = e . DamageHandler . Damage * Sai . Instance . Config . MultipleDamage ;
25+ e . IsAllowed = true ;
3026 }
31- }
32- if ( api . IsScp600 ( e . Attacker ) )
33- {
34- if ( e . Player . Role . Team == PlayerRoles . Team . SCPs )
27+ if ( a == false )
3528 {
3629 e . DamageHandler . Damage = 0 ;
3730 e . IsAllowed = false ;
3831 }
39- if ( api . IsCustomScp ( e . Player ) | api . IsScp035 ( e . Player ) | api . IsSH ( e . Player ) | api . IsScp600 ( e . Player ) )
32+ }
33+ if ( api . IsScp600 ( e . Attacker ) == false )
34+ {
35+ bool a = NoScp600DamageHandler ( e . Attacker , e . Player ) ;
36+ if ( a )
37+ {
38+ e . IsAllowed = true ;
39+ }
40+ if ( a == false )
4041 {
4142 e . DamageHandler . Damage = 0 ;
4243 e . IsAllowed = false ;
@@ -45,5 +46,85 @@ internal void DamageHandler(EvArg.Player.HurtingEventArgs e)
4546 }
4647 }
4748 }
49+ internal bool Scp600DamageHandler ( Player atacker , Player player )
50+ {
51+ if ( Sai . Instance . Config . IsScpCanDamageMe == false )
52+ {
53+ if ( player . Role . Team == Team . SCPs )
54+ {
55+ return false ;
56+ }
57+ if ( api . IsSH ( player ) || api . IsCustomScp ( player ) || api . IsScp035 ( player ) || api . IsScp600 ( player ) )
58+ {
59+ return false ;
60+ }
61+ else
62+ {
63+ return true ;
64+ }
65+ }
66+ else
67+ {
68+ return true ;
69+ }
70+ }
71+
72+ internal bool NoScp600DamageHandler ( Player atacker , Player player )
73+ {
74+ if ( Sai . Instance . Config . IsFFEnabled == false )
75+ {
76+ if ( Sai . Instance . Config . IsScpCanDamageMe == false )
77+ {
78+ if ( api . IsCustomScp ( atacker ) || api . IsSH ( atacker ) || api . IsScp035 ( atacker ) || api . IsScp600 ( atacker ) || atacker . Role . Team == Team . SCPs )
79+ {
80+ if ( api . IsScp600 ( player ) )
81+ {
82+ return false ;
83+ }
84+ else
85+ {
86+ return true ;
87+ }
88+ }
89+ else
90+ {
91+ return true ;
92+ }
93+ }
94+ else
95+ {
96+ return true ;
97+ }
98+ }
99+ else
100+ {
101+ if ( api . IsCustomScp ( atacker ) || api . IsSH ( atacker ) || api . IsScp035 ( atacker ) || api . IsScp600 ( atacker ) )
102+ {
103+ if ( api . IsScp600 ( player ) )
104+ {
105+ return false ;
106+ }
107+ else
108+ {
109+ return true ;
110+ }
111+ }
112+ if ( atacker . Role . Team == player . Role . Team )
113+ {
114+ if ( api . IsScp600 ( player ) )
115+ {
116+ return true ;
117+ }
118+ else
119+ {
120+ return false ;
121+ }
122+ }
123+ else
124+ {
125+ return true ;
126+ }
127+ }
128+ }
48129 }
49130}
0 commit comments