@@ -37,7 +37,7 @@ export class AchievementService {
37
37
) =>
38
38
(
39
39
key : AchievementKey ,
40
- peopleOnly : boolean ,
40
+ modes : MatchmakingMode [ ] ,
41
41
maxProgress : number ,
42
42
progress : ( pim : PlayerInMatchEntity , m : FinishedMatchEntity ) => number ,
43
43
) => {
@@ -46,9 +46,7 @@ export class AchievementService {
46
46
maxProgress = maxProgress ;
47
47
48
48
supportsLobbyType ( type : MatchmakingMode ) : boolean {
49
- return peopleOnly
50
- ? BaseAchievement . REAL_LOBBY_TYPES . includes ( type )
51
- : true ;
49
+ return modes . includes ( type ) ;
52
50
}
53
51
54
52
async getProgress (
@@ -74,30 +72,76 @@ export class AchievementService {
74
72
const runningAchievement = createRunningAchievement ( map , p , f ) ;
75
73
76
74
runningAchievement (
77
- AchievementKey . HARDCORE , true ,
75
+ AchievementKey . HARDCORE ,
76
+ BaseAchievement . REAL_LOBBY_TYPES ,
78
77
1 ,
79
78
( t , m ) => + ( t . level === 25 && t . team === m . winner && t . deaths === 0 ) ,
80
79
) ;
81
- runningAchievement ( AchievementKey . GPM_1000 , true , 1000 , ( t ) => t . gpm ) ;
80
+ runningAchievement (
81
+ AchievementKey . GPM_1000 ,
82
+ BaseAchievement . REAL_LOBBY_TYPES ,
83
+ 1000 ,
84
+ ( t ) => t . gpm ,
85
+ ) ;
82
86
83
- runningAchievement ( AchievementKey . XPM_1000 , true , 1000 , ( t ) => t . xpm ) ;
84
- runningAchievement ( AchievementKey . LAST_HITS_1000 , true , 1000 , ( t ) => t . last_hits ) ;
85
- runningAchievement ( AchievementKey . DENIES_50 , true , 50 , ( t ) => t . denies ) ;
87
+ runningAchievement (
88
+ AchievementKey . XPM_1000 ,
89
+ BaseAchievement . REAL_LOBBY_TYPES ,
90
+ 1000 ,
91
+ ( t ) => t . xpm ,
92
+ ) ;
93
+ runningAchievement (
94
+ AchievementKey . LAST_HITS_1000 ,
95
+ BaseAchievement . REAL_LOBBY_TYPES ,
96
+ 1000 ,
97
+ ( t ) => t . last_hits ,
98
+ ) ;
99
+ runningAchievement (
100
+ AchievementKey . DENIES_50 ,
101
+ BaseAchievement . REAL_LOBBY_TYPES ,
102
+ 50 ,
103
+ ( t ) => t . denies ,
104
+ ) ;
86
105
87
106
runningAchievement (
88
- AchievementKey . GPM_XPM_1000 , true ,
107
+ AchievementKey . GPM_XPM_1000 ,
108
+ BaseAchievement . REAL_LOBBY_TYPES ,
89
109
1 ,
90
110
( t ) => + ( t . gpm >= 1000 && t . xpm >= 1000 ) ,
91
111
) ;
92
112
93
113
runningAchievement (
94
- AchievementKey . WIN_1HR_GAME , true ,
114
+ AchievementKey . WIN_1HR_GAME ,
115
+ BaseAchievement . REAL_LOBBY_TYPES ,
95
116
1 ,
96
117
( t , m ) => + ( t . team === m . winner && m . duration >= 3600 ) ,
97
118
) ;
98
119
99
120
runningAchievement (
100
- AchievementKey . WIN_1HR_GAME_AGAINST_TECHIES , true ,
121
+ AchievementKey . WIN_BOT_GAME ,
122
+ [ MatchmakingMode . BOTS ] ,
123
+ 1 ,
124
+ ( t , m ) => + ( t . team === m . winner ) ,
125
+ ) ;
126
+
127
+
128
+ runningAchievement (
129
+ AchievementKey . WIN_BOT_GAME ,
130
+ [ MatchmakingMode . BOTS ] ,
131
+ 1 ,
132
+ ( t , m ) => + ( t . team === m . winner ) ,
133
+ ) ;
134
+
135
+ runningAchievement (
136
+ AchievementKey . WIN_SOLOMID_GAME ,
137
+ [ MatchmakingMode . SOLOMID ] ,
138
+ 1 ,
139
+ ( t , m ) => + ( t . team === m . winner ) ,
140
+ ) ;
141
+
142
+ runningAchievement (
143
+ AchievementKey . WIN_1HR_GAME_AGAINST_TECHIES ,
144
+ BaseAchievement . REAL_LOBBY_TYPES ,
101
145
1 ,
102
146
( t , m ) =>
103
147
+ (
0 commit comments