@@ -26,7 +26,7 @@ public partial class PlayerStatsComponent : MonoBehaviour
2626
2727 private Reward GetCurrentReward ( )
2828 {
29- if ( configuration . PVPRewards )
29+ if ( configuration . StatsMode == StatsMode . Both || configuration . StatsMode == StatsMode . PVP )
3030 {
3131 return configuration . Rewards . OrderByDescending ( x => x . Treshold ) . FirstOrDefault ( x => x . Treshold <= PlayerData . Kills ) ;
3232 } else
@@ -37,7 +37,7 @@ private Reward GetCurrentReward()
3737
3838 private Reward GetNextReward ( )
3939 {
40- if ( configuration . PVPRewards )
40+ if ( configuration . StatsMode == StatsMode . Both || configuration . StatsMode == StatsMode . PVP )
4141 {
4242 return configuration . Rewards . OrderBy ( x => x . Treshold ) . FirstOrDefault ( x => x . Treshold > PlayerData . Kills ) ;
4343 }
@@ -101,6 +101,32 @@ void Awake()
101101 SendUIEffect ( ) ;
102102 }
103103 }
104+
105+ // Give rewards if he doesn't have them
106+ UnturnedPlayer unturnedPlayer = UnturnedPlayer . FromPlayer ( Player ) ;
107+ List < RocketPermissionsGroup > groups = R . Permissions . GetGroups ( unturnedPlayer , true ) ;
108+ foreach ( Reward reward in configuration . Rewards )
109+ {
110+ if ( groups . Exists ( x => x . Id . Equals ( reward . PermissionGroup , StringComparison . OrdinalIgnoreCase ) ) )
111+ {
112+ continue ;
113+ }
114+
115+ if ( configuration . StatsMode == StatsMode . Both || configuration . StatsMode == StatsMode . PVP )
116+ {
117+ if ( reward . Treshold <= PlayerData . Kills )
118+ {
119+ R . Permissions . AddPlayerToGroup ( reward . PermissionGroup , unturnedPlayer ) ;
120+ }
121+ }
122+ else
123+ {
124+ if ( reward . Treshold <= PlayerData . Zombies )
125+ {
126+ R . Permissions . AddPlayerToGroup ( reward . PermissionGroup , unturnedPlayer ) ;
127+ }
128+ }
129+ }
104130 } ) ;
105131 } ) ;
106132 }
@@ -181,7 +207,7 @@ internal void OnPlayerDeath(Player killer, ELimb limb, EDeathCause cause)
181207 {
182208 PlayerData . PVEDeaths ++ ;
183209 SessionPlayerData . PVEDeaths ++ ;
184- if ( ! configuration . PVPUI )
210+ if ( configuration . StatsMode == StatsMode . PVE )
185211 {
186212 UpdateUIEffect ( ) ;
187213 }
@@ -200,11 +226,11 @@ internal void CheckGiveReward()
200226 {
201227 UnturnedPlayer unturnedPlayer = UnturnedPlayer . FromPlayer ( Player ) ;
202228 List < RocketPermissionsGroup > groups = R . Permissions . GetGroups ( unturnedPlayer , false ) ;
203- if ( ! groups . Exists ( x => x . Id . Equals ( reward . PermissionGroup , System . StringComparison . OrdinalIgnoreCase ) ) )
229+ if ( ! groups . Exists ( x => x . Id . Equals ( reward . PermissionGroup , StringComparison . OrdinalIgnoreCase ) ) )
204230 {
205231 R . Permissions . AddPlayerToGroup ( reward . PermissionGroup , unturnedPlayer ) ;
206232 string treshold = reward . Treshold . ToString ( "N0" ) ;
207- if ( configuration . PVPRewards )
233+ if ( configuration . StatsMode == StatsMode . Both || configuration . StatsMode == StatsMode . PVP )
208234 {
209235 pluginInstance . SendMessageToPlayer ( unturnedPlayer , "RewardReceivedPVP" , reward . Name , treshold ) ;
210236 } else
@@ -231,7 +257,6 @@ internal void OnPlayerUpdatedStat(EPlayerStat stat)
231257 case EPlayerStat . KILLS_ZOMBIES_MEGA :
232258 PlayerData . MegaZombies ++ ;
233259 SessionPlayerData . MegaZombies ++ ;
234- CheckGiveReward ( ) ;
235260 break ;
236261 case EPlayerStat . FOUND_RESOURCES :
237262 PlayerData . Resources ++ ;
@@ -247,7 +272,7 @@ internal void OnPlayerUpdatedStat(EPlayerStat stat)
247272 break ;
248273 }
249274
250- if ( ! configuration . PVPUI )
275+ if ( configuration . StatsMode == StatsMode . PVE )
251276 {
252277 UpdateUIEffect ( ) ;
253278 }
0 commit comments