raspberry_games_server_game_logic 1.8.379 → 1.8.381

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/Kosi-Kaverit-kaverit.js +13 -13
  2. package/Kosi-Kodein-kodein-di.js +35 -35
  3. package/Kotlin-DateTime-library-kotlinx-datetime.js +90 -90
  4. package/Logic_Debertz-core.js +56 -56
  5. package/Logic_Debertz-engine.js +237 -169
  6. package/Logic_Debertz-engine.js.map +1 -1
  7. package/Logic_Debertz-game_server.d.ts +14 -8
  8. package/Logic_Debertz-game_server.js +900 -803
  9. package/Logic_Debertz-game_server.js.map +1 -1
  10. package/error-library-error.js +5 -5
  11. package/kotlin-kotlin-stdlib.js +284 -271
  12. package/kotlin-kotlin-stdlib.js.map +1 -1
  13. package/kotlinx-atomicfu.js +9 -9
  14. package/kotlinx-coroutines-core.js +80 -80
  15. package/kotlinx-coroutines-core.js.map +1 -1
  16. package/kotlinx-io-kotlinx-io-core.js +30 -30
  17. package/kotlinx-serialization-kotlinx-serialization-core.js +77 -77
  18. package/kotlinx-serialization-kotlinx-serialization-json.js +89 -89
  19. package/ktor-ktor-client-content-negotiation.js +22 -22
  20. package/ktor-ktor-client-core.js +64 -64
  21. package/ktor-ktor-client-logging.js +23 -23
  22. package/ktor-ktor-events.js +5 -5
  23. package/ktor-ktor-http.js +70 -70
  24. package/ktor-ktor-io.js +50 -50
  25. package/ktor-ktor-serialization-kotlinx.js +15 -15
  26. package/ktor-ktor-serialization.js +15 -15
  27. package/ktor-ktor-utils.js +46 -46
  28. package/ktor-ktor-websockets.js +13 -13
  29. package/package.json +1 -1
  30. package/random-library-crypto-rand.js +11 -11
  31. package/random-library-secure-random.js +5 -5
  32. package/raspberry-cardgame-lib-core.js +35 -35
  33. package/raspberry-cardgame-lib-logger.js +13 -13
  34. package/raspberry-cardgame-lib-random.js +39 -39
  35. package/uuid.js +12 -12
@@ -43,106 +43,106 @@
43
43
  'use strict';
44
44
  //region block: imports
45
45
  var imul = Math.imul;
46
- var Long = kotlin_kotlin.$_$.eh;
47
- var protoOf = kotlin_kotlin.$_$.hd;
48
- var initMetadataForCompanion = kotlin_kotlin.$_$.ic;
46
+ var Long = kotlin_kotlin.$_$.fh;
47
+ var protoOf = kotlin_kotlin.$_$.id;
48
+ var initMetadataForCompanion = kotlin_kotlin.$_$.jc;
49
49
  var AsyncProvider = kotlin_io_raspberryapps_game_engine_core.$_$.m1;
50
- var getKClass = kotlin_kotlin.$_$.be;
51
- var arrayOf = kotlin_kotlin.$_$.xh;
52
- var createKType = kotlin_kotlin.$_$.zd;
50
+ var getKClass = kotlin_kotlin.$_$.ce;
51
+ var arrayOf = kotlin_kotlin.$_$.yh;
52
+ var createKType = kotlin_kotlin.$_$.ae;
53
53
  var typeToken = kotlin_org_kodein_type_kaverit.$_$.d;
54
- var THROW_CCE = kotlin_kotlin.$_$.jh;
54
+ var THROW_CCE = kotlin_kotlin.$_$.kh;
55
55
  var TypeToken = kotlin_org_kodein_type_kaverit.$_$.b;
56
- var isInterface = kotlin_kotlin.$_$.vc;
56
+ var isInterface = kotlin_kotlin.$_$.wc;
57
57
  var Instance = kotlin_org_kodein_di_kodein_di.$_$.f;
58
- var KProperty1 = kotlin_kotlin.$_$.fe;
59
- var getPropertyCallableRef = kotlin_kotlin.$_$.ec;
58
+ var KProperty1 = kotlin_kotlin.$_$.ge;
59
+ var getPropertyCallableRef = kotlin_kotlin.$_$.fc;
60
60
  var JobsProvider = kotlin_io_raspberryapps_game_engine_core.$_$.o1;
61
- var initMetadataForClass = kotlin_kotlin.$_$.hc;
61
+ var initMetadataForClass = kotlin_kotlin.$_$.ic;
62
62
  var VOID = kotlin_kotlin.$_$.b;
63
63
  var listOf = kotlin_kotlin.$_$.f8;
64
- var plus = kotlin_kotlin.$_$.p8;
64
+ var plus = kotlin_kotlin.$_$.q8;
65
65
  var copyToArray = kotlin_kotlin.$_$.y6;
66
66
  var combineReducers = kotlin_io_raspberryapps_game_engine_core.$_$.k2;
67
67
  var applyCatcher = kotlin_io_raspberryapps_game_engine_core.$_$.c2;
68
68
  var applyMiddleware = kotlin_io_raspberryapps_game_engine_core.$_$.d2;
69
69
  var compose = kotlin_io_raspberryapps_game_engine_core.$_$.n2;
70
70
  var createStore = kotlin_io_raspberryapps_game_engine_core.$_$.o2;
71
- var CoroutineImpl = kotlin_kotlin.$_$.na;
71
+ var CoroutineImpl = kotlin_kotlin.$_$.oa;
72
72
  var Unit_instance = kotlin_kotlin.$_$.f5;
73
73
  var CoroutineScope = kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core.$_$.i1;
74
- var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.y9;
75
- var initMetadataForLambda = kotlin_kotlin.$_$.lc;
74
+ var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.z9;
75
+ var initMetadataForLambda = kotlin_kotlin.$_$.mc;
76
76
  var emptyList = kotlin_kotlin.$_$.d7;
77
77
  var RaspberryLogger = kotlin_io_raspberryapps_cardgame_logger.$_$.g;
78
- var lazy = kotlin_kotlin.$_$.gi;
79
- var initMetadataForInterface = kotlin_kotlin.$_$.kc;
78
+ var lazy = kotlin_kotlin.$_$.hi;
79
+ var initMetadataForInterface = kotlin_kotlin.$_$.lc;
80
80
  var listOf_0 = kotlin_kotlin.$_$.g8;
81
81
  var PrimitiveClasses_getInstance = kotlin_kotlin.$_$.s4;
82
- var createInvariantKTypeProjection = kotlin_kotlin.$_$.yd;
82
+ var createInvariantKTypeProjection = kotlin_kotlin.$_$.zd;
83
83
  var serializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.c3;
84
84
  var KSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.r2;
85
85
  var Logger_getInstance = kotlin_io_raspberryapps_cardgame_logger.$_$.m;
86
- var getKClassFromExpression = kotlin_kotlin.$_$.ae;
86
+ var getKClassFromExpression = kotlin_kotlin.$_$.be;
87
87
  var contentEquals = kotlin_kotlin.$_$.k6;
88
- var getBooleanHashCode = kotlin_kotlin.$_$.cc;
88
+ var getBooleanHashCode = kotlin_kotlin.$_$.dc;
89
89
  var contentHashCode = kotlin_kotlin.$_$.n6;
90
- var toString = kotlin_kotlin.$_$.kd;
91
- var defineProp = kotlin_kotlin.$_$.zb;
92
- var getNumberHashCode = kotlin_kotlin.$_$.dc;
93
- var equals = kotlin_kotlin.$_$.ac;
90
+ var toString = kotlin_kotlin.$_$.ld;
91
+ var defineProp = kotlin_kotlin.$_$.ac;
92
+ var getNumberHashCode = kotlin_kotlin.$_$.ec;
93
+ var equals = kotlin_kotlin.$_$.bc;
94
94
  var createSimpleEnumSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.h2;
95
- var THROW_IAE = kotlin_kotlin.$_$.kh;
95
+ var THROW_IAE = kotlin_kotlin.$_$.lh;
96
96
  var LazyThreadSafetyMode_PUBLICATION_getInstance = kotlin_kotlin.$_$.e;
97
- var lazy_0 = kotlin_kotlin.$_$.fi;
97
+ var lazy_0 = kotlin_kotlin.$_$.gi;
98
98
  var SerializerFactory = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.f2;
99
- var Enum = kotlin_kotlin.$_$.zg;
100
- var FunctionAdapter = kotlin_kotlin.$_$.nb;
101
- var Comparator = kotlin_kotlin.$_$.wg;
102
- var hashCode = kotlin_kotlin.$_$.gc;
103
- var compareValues = kotlin_kotlin.$_$.w9;
104
- var toList = kotlin_kotlin.$_$.k9;
99
+ var Enum = kotlin_kotlin.$_$.ah;
100
+ var FunctionAdapter = kotlin_kotlin.$_$.ob;
101
+ var Comparator = kotlin_kotlin.$_$.xg;
102
+ var hashCode = kotlin_kotlin.$_$.hc;
103
+ var compareValues = kotlin_kotlin.$_$.x9;
104
+ var toList = kotlin_kotlin.$_$.l9;
105
105
  var collectionSizeOrDefault = kotlin_kotlin.$_$.i6;
106
106
  var ArrayList_init_$Create$ = kotlin_kotlin.$_$.g;
107
- var sortedWith = kotlin_kotlin.$_$.b9;
107
+ var sortedWith = kotlin_kotlin.$_$.c9;
108
108
  var Duration__hashCode_impl_u4exz6 = kotlin_kotlin.$_$.f2;
109
109
  var Duration__toString_impl_8d916b = kotlin_kotlin.$_$.k2;
110
110
  var contentToString = kotlin_kotlin.$_$.o6;
111
- var Duration = kotlin_kotlin.$_$.ng;
111
+ var Duration = kotlin_kotlin.$_$.og;
112
112
  var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.h;
113
113
  var Collection = kotlin_kotlin.$_$.h5;
114
- var noWhenBranchMatchedException = kotlin_kotlin.$_$.hi;
115
- var getStringHashCode = kotlin_kotlin.$_$.fc;
116
- var enumEntries = kotlin_kotlin.$_$.pa;
114
+ var noWhenBranchMatchedException = kotlin_kotlin.$_$.ii;
115
+ var getStringHashCode = kotlin_kotlin.$_$.gc;
116
+ var enumEntries = kotlin_kotlin.$_$.qa;
117
117
  var previousToOrNull = kotlin_io_raspberryapps_game_engine_core.$_$.x2;
118
118
  var nextToOrNull = kotlin_io_raspberryapps_game_engine_core.$_$.v2;
119
119
  var NoSuchElementException_init_$Create$ = kotlin_kotlin.$_$.w1;
120
120
  var System_instance = kotlin_kotlin.$_$.u4;
121
121
  var PlayerIdContract = kotlin_io_raspberryapps_game_engine_core.$_$.f;
122
- var toString_0 = kotlin_kotlin.$_$.ni;
123
- var Comparable = kotlin_kotlin.$_$.vg;
122
+ var toString_0 = kotlin_kotlin.$_$.oi;
123
+ var Comparable = kotlin_kotlin.$_$.wg;
124
124
  var listOfNotNull = kotlin_kotlin.$_$.e8;
125
125
  var joinToString = kotlin_kotlin.$_$.v7;
126
126
  var get_amountOfCards = kotlin_io_raspberryapps_game_engine_core.$_$.d;
127
127
  var Player = kotlin_io_raspberryapps_game_engine_core.$_$.j;
128
128
  var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.l1;
129
- var objectCreate = kotlin_kotlin.$_$.gd;
130
- var single = kotlin_kotlin.$_$.z8;
129
+ var objectCreate = kotlin_kotlin.$_$.hd;
130
+ var single = kotlin_kotlin.$_$.a9;
131
131
  var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.q;
132
132
  var mapCapacity = kotlin_kotlin.$_$.h8;
133
133
  var LinkedHashMap_init_$Create$_0 = kotlin_kotlin.$_$.p;
134
- var toMutableMap = kotlin_kotlin.$_$.o9;
134
+ var toMutableMap = kotlin_kotlin.$_$.p9;
135
135
  var UnsupportedOperationException_init_$Create$ = kotlin_kotlin.$_$.c2;
136
- var toSet = kotlin_kotlin.$_$.q9;
137
- var sorted = kotlin_kotlin.$_$.c9;
136
+ var toSet = kotlin_kotlin.$_$.r9;
137
+ var sorted = kotlin_kotlin.$_$.d9;
138
138
  var createAnnotatedEnumSerializer = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.g2;
139
139
  var last = kotlin_kotlin.$_$.b8;
140
- var sum = kotlin_kotlin.$_$.d9;
140
+ var sum = kotlin_kotlin.$_$.e9;
141
141
  var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.p1;
142
142
  var first = kotlin_kotlin.$_$.k7;
143
143
  var first_0 = kotlin_kotlin.$_$.m7;
144
144
  var contains = kotlin_kotlin.$_$.j6;
145
- var initMetadataForObject = kotlin_kotlin.$_$.mc;
145
+ var initMetadataForObject = kotlin_kotlin.$_$.nc;
146
146
  var checkIndexOverflow = kotlin_kotlin.$_$.h6;
147
147
  var getPoint = kotlin_io_raspberryapps_game_engine_core.$_$.e1;
148
148
  var Toggles_instance = kotlin_io_raspberryapps_game_engine_core.$_$.a5;
@@ -150,20 +150,20 @@
150
150
  var MechanicException = kotlin_io_raspberryapps_game_engine_core.$_$.b;
151
151
  var asJsReadonlyArrayView = kotlin_kotlin.$_$.m5;
152
152
  var KtList = kotlin_kotlin.$_$.n5;
153
- var ensureNotNull = kotlin_kotlin.$_$.ai;
153
+ var ensureNotNull = kotlin_kotlin.$_$.bi;
154
154
  var GameCard = kotlin_io_raspberryapps_cardgame_core.$_$.q;
155
155
  var firstOrNull = kotlin_kotlin.$_$.h7;
156
156
  var Companion_instance = kotlin_io_raspberryapps_cardgame_core.$_$.n;
157
157
  var flatten = kotlin_kotlin.$_$.n7;
158
- var to = kotlin_kotlin.$_$.oi;
158
+ var to = kotlin_kotlin.$_$.pi;
159
159
  var mapOf = kotlin_kotlin.$_$.i8;
160
160
  var asSequence = kotlin_kotlin.$_$.c6;
161
- var filter = kotlin_kotlin.$_$.he;
162
- var map = kotlin_kotlin.$_$.le;
163
- var firstOrNull_0 = kotlin_kotlin.$_$.ie;
161
+ var filter = kotlin_kotlin.$_$.ie;
162
+ var map = kotlin_kotlin.$_$.me;
163
+ var firstOrNull_0 = kotlin_kotlin.$_$.je;
164
164
  var CardIndexComparator_instance = kotlin_io_raspberryapps_cardgame_core.$_$.l;
165
165
  var lastOrNull = kotlin_kotlin.$_$.a8;
166
- var toMap = kotlin_kotlin.$_$.m9;
166
+ var toMap = kotlin_kotlin.$_$.n9;
167
167
  var PlayerIdOrderComparator = kotlin_io_raspberryapps_game_engine_core.$_$.g;
168
168
  var getValue = kotlin_kotlin.$_$.q7;
169
169
  var PlayerIdContractOrderComparator = kotlin_io_raspberryapps_game_engine_core.$_$.e;
@@ -201,17 +201,17 @@
201
201
  var Companion_getInstance_3 = kotlin_kotlin.$_$.w4;
202
202
  var getOrNull = kotlin_kotlin.$_$.p7;
203
203
  var _Duration___get_inWholeMilliseconds__impl__msfiry = kotlin_kotlin.$_$.g2;
204
- var equalsLong = kotlin_kotlin.$_$.bb;
205
- var coerceAtLeast = kotlin_kotlin.$_$.pd;
204
+ var equalsLong = kotlin_kotlin.$_$.cb;
205
+ var coerceAtLeast = kotlin_kotlin.$_$.qd;
206
206
  var Companion_getInstance_4 = kotlin_kotlin.$_$.v4;
207
207
  var DurationUnit_MILLISECONDS_getInstance = kotlin_kotlin.$_$.c;
208
- var toDuration = kotlin_kotlin.$_$.qg;
209
- var toIntOrNull = kotlin_kotlin.$_$.ag;
208
+ var toDuration = kotlin_kotlin.$_$.rg;
209
+ var toIntOrNull = kotlin_kotlin.$_$.bg;
210
210
  var RulesDto = kotlin_io_raspberryapps_game_engine_core.$_$.b1;
211
211
  var Companion_instance_0 = kotlin_io_raspberryapps_game_engine_core.$_$.o4;
212
212
  var Companion_instance_1 = kotlin_io_raspberryapps_game_engine_core.$_$.m4;
213
213
  var PlayerConnectionState_LIVE_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.s3;
214
- var toDuration_0 = kotlin_kotlin.$_$.rg;
214
+ var toDuration_0 = kotlin_kotlin.$_$.sg;
215
215
  var PlayerConnectionState_LEFT_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.r3;
216
216
  var mapFromDto_2 = kotlin_io_raspberryapps_game_engine_core.$_$.t;
217
217
  var mapToDto_2 = kotlin_io_raspberryapps_game_engine_core.$_$.y;
@@ -224,10 +224,10 @@
224
224
  var $serializer_getInstance_1 = kotlin_io_raspberryapps_game_engine_core.$_$.s4;
225
225
  var InstantSerializer_getInstance = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_core.$_$.s;
226
226
  var PlayerState = kotlin_io_raspberryapps_game_engine_core.$_$.i;
227
- var charSequenceLength = kotlin_kotlin.$_$.wb;
227
+ var charSequenceLength = kotlin_kotlin.$_$.xb;
228
228
  var LoggerPayload = kotlin_io_raspberryapps_cardgame_logger.$_$.e;
229
229
  var CardGrowthComparator = kotlin_io_raspberryapps_game_engine_core.$_$.d1;
230
- var take = kotlin_kotlin.$_$.f9;
230
+ var take = kotlin_kotlin.$_$.g9;
231
231
  var CardName_ACE_getInstance = kotlin_io_raspberryapps_cardgame_core.$_$.a;
232
232
  var CardName_KING_getInstance = kotlin_io_raspberryapps_cardgame_core.$_$.d;
233
233
  var CardName_QUEEN_getInstance = kotlin_io_raspberryapps_cardgame_core.$_$.f;
@@ -248,7 +248,7 @@
248
248
  var ProcessingReasonDto_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.t4;
249
249
  var filterByPlayerId = kotlin_io_raspberryapps_game_engine_core.$_$.m;
250
250
  var CardNumberComparator_instance = kotlin_io_raspberryapps_cardgame_core.$_$.m;
251
- var singleOrNull = kotlin_kotlin.$_$.y8;
251
+ var singleOrNull = kotlin_kotlin.$_$.z8;
252
252
  var addAll = kotlin_kotlin.$_$.w5;
253
253
  var Module_init_$Create$ = kotlin_org_kodein_di_kodein_di.$_$.a;
254
254
  var Json_0 = kotlin_org_jetbrains_kotlinx_kotlinx_serialization_json.$_$.c;
@@ -262,48 +262,49 @@
262
262
  var CombinationsCheckerProvider = kotlin_io_raspberryapps_cardgame_core.$_$.y;
263
263
  var CombinationsCheckerProviderImpl = kotlin_io_raspberryapps_cardgame_core.$_$.x;
264
264
  var MutableSharedFlow = kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core.$_$.t;
265
- var toList_0 = kotlin_kotlin.$_$.j9;
266
- var plus_0 = kotlin_kotlin.$_$.q8;
265
+ var toList_0 = kotlin_kotlin.$_$.k9;
266
+ var plus_0 = kotlin_kotlin.$_$.r8;
267
267
  var listOfNotNull_0 = kotlin_kotlin.$_$.d8;
268
268
  var LinkedHashSet_init_$Create$ = kotlin_kotlin.$_$.s;
269
- var toMutableSet = kotlin_kotlin.$_$.p9;
269
+ var toMutableSet = kotlin_kotlin.$_$.q9;
270
270
  var filterByCardName = kotlin_io_raspberryapps_cardgame_core.$_$.u;
271
271
  var first_1 = kotlin_kotlin.$_$.l7;
272
- var setOf = kotlin_kotlin.$_$.w8;
273
- var setOf_0 = kotlin_kotlin.$_$.x8;
272
+ var setOf = kotlin_kotlin.$_$.x8;
273
+ var setOf_0 = kotlin_kotlin.$_$.y8;
274
274
  var NoSuchElementException_init_$Create$_0 = kotlin_kotlin.$_$.u1;
275
- var compareTo = kotlin_kotlin.$_$.yb;
275
+ var compareTo = kotlin_kotlin.$_$.zb;
276
276
  var distributeCardsBottom = kotlin_io_raspberryapps_cardgame_core.$_$.s;
277
277
  var distributeCardsTop = kotlin_io_raspberryapps_cardgame_core.$_$.t;
278
- var toMutableList = kotlin_kotlin.$_$.n9;
278
+ var toMutableList = kotlin_kotlin.$_$.o9;
279
279
  var CardsRandomProvider_CUSTOM_getInstance = kotlin_io_raspberryapps_cardgame_core.$_$.i;
280
280
  var CardsRandomProvider_RANDOM_ORG_SIGNED_getInstance = kotlin_io_raspberryapps_cardgame_core.$_$.j;
281
281
  var CardsRandomProvider_RANDOM_ORG_getInstance = kotlin_io_raspberryapps_cardgame_core.$_$.k;
282
- var initMetadataForCoroutine = kotlin_kotlin.$_$.jc;
282
+ var initMetadataForCoroutine = kotlin_kotlin.$_$.kc;
283
283
  var get_indices = kotlin_kotlin.$_$.u7;
284
- var abs = kotlin_kotlin.$_$.ld;
285
- var zip = kotlin_kotlin.$_$.t9;
284
+ var abs = kotlin_kotlin.$_$.md;
285
+ var zip = kotlin_kotlin.$_$.u9;
286
286
  var Team = kotlin_io_raspberryapps_game_engine_core.$_$.k;
287
287
  var getValueInHand = kotlin_io_raspberryapps_game_engine_core.$_$.f1;
288
288
  var AgentType_BOT_NATIVE_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.m3;
289
289
  var AgentType_BOT_REPLACEMENT_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.n3;
290
- var coerceIn = kotlin_kotlin.$_$.sd;
291
- var numberToInt = kotlin_kotlin.$_$.fd;
290
+ var coerceIn = kotlin_kotlin.$_$.td;
291
+ var maxOrNull = kotlin_kotlin.$_$.k8;
292
+ var numberToInt = kotlin_kotlin.$_$.gd;
292
293
  var checkCountOverflow = kotlin_kotlin.$_$.g6;
293
- var roundToInt = kotlin_kotlin.$_$.md;
294
+ var roundToInt = kotlin_kotlin.$_$.nd;
294
295
  var average = kotlin_kotlin.$_$.d6;
295
296
  var mapToFinishReason = kotlin_io_raspberryapps_game_engine_core.$_$.q;
296
297
  var StopTimerAction = kotlin_io_raspberryapps_game_engine_core.$_$.z1;
297
298
  var TimerType_DELAY_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.e4;
298
299
  var StartTimerAction = kotlin_io_raspberryapps_game_engine_core.$_$.y1;
299
300
  var PlayerConnectionState_DISCONNECTING_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.q3;
300
- var fromInt = kotlin_kotlin.$_$.cb;
301
+ var fromInt = kotlin_kotlin.$_$.db;
301
302
  var PlayerReturnsReason = kotlin_io_raspberryapps_game_engine_core.$_$.k1;
302
303
  var nextToPlayerId = kotlin_io_raspberryapps_game_engine_core.$_$.r;
303
304
  var previousPlayerId = kotlin_io_raspberryapps_game_engine_core.$_$.s;
304
305
  var Companion_instance_2 = kotlin_io_raspberryapps_game_engine_core.$_$.w4;
305
- var contains_0 = kotlin_kotlin.$_$.oe;
306
- var split = kotlin_kotlin.$_$.pf;
306
+ var contains_0 = kotlin_kotlin.$_$.pe;
307
+ var split = kotlin_kotlin.$_$.qf;
307
308
  var UserInfoData = kotlin_io_raspberryapps_cardgame_random.$_$.c;
308
309
  var CardDeckRequestUserData = kotlin_io_raspberryapps_cardgame_random.$_$.a;
309
310
  var get_actionTag = kotlin_io_raspberryapps_game_engine_core.$_$.f2;
@@ -332,12 +333,12 @@
332
333
  var Middleware = kotlin_io_raspberryapps_game_engine_core.$_$.h2;
333
334
  var middleware = kotlin_io_raspberryapps_game_engine_core.$_$.l2;
334
335
  var filterPlayerTurn = kotlin_io_raspberryapps_game_engine_core.$_$.n;
335
- var Result = kotlin_kotlin.$_$.hh;
336
+ var Result = kotlin_kotlin.$_$.ih;
336
337
  var FlowCollector = kotlin_org_jetbrains_kotlinx_kotlinx_coroutines_core.$_$.r;
337
338
  var LoggerOutputDataDto = kotlin_io_raspberryapps_game_engine_core.$_$.q2;
338
339
  var Reason_FINISHED_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.c4;
339
340
  var GameFinishedReason = kotlin_io_raspberryapps_game_engine_core.$_$.i1;
340
- var compare = kotlin_kotlin.$_$.wa;
341
+ var compare = kotlin_kotlin.$_$.xa;
341
342
  var Default_getInstance = kotlin_kotlin.$_$.r4;
342
343
  var PlayerConnectionState_TIMEOUT_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.u3;
343
344
  var PlayerConnectionState_DELETED_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.p3;
@@ -351,16 +352,16 @@
351
352
  var ArrayDeque_init_$Create$ = kotlin_kotlin.$_$.f;
352
353
  var Reducer = kotlin_io_raspberryapps_game_engine_core.$_$.i2;
353
354
  var TimerAction = kotlin_io_raspberryapps_game_engine_core.$_$.a2;
354
- var minus = kotlin_kotlin.$_$.k8;
355
+ var minus = kotlin_kotlin.$_$.l8;
355
356
  var updateOrAddItems = kotlin_io_raspberryapps_game_engine_core.$_$.e3;
356
357
  var get_byIdPlayerPredicate = kotlin_io_raspberryapps_game_engine_core.$_$.l;
357
358
  var updateItem = kotlin_io_raspberryapps_game_engine_core.$_$.c3;
358
- var toDuration_1 = kotlin_kotlin.$_$.pg;
359
+ var toDuration_1 = kotlin_kotlin.$_$.qg;
359
360
  var updated = kotlin_io_raspberryapps_game_engine_core.$_$.f3;
360
361
  var PlayerWaitingState_IN_PROGRESS_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.v3;
361
362
  var getProgress = kotlin_io_raspberryapps_game_engine_core.$_$.p;
362
- var takeLast = kotlin_kotlin.$_$.e9;
363
- var plus_1 = kotlin_kotlin.$_$.m8;
363
+ var takeLast = kotlin_kotlin.$_$.f9;
364
+ var plus_1 = kotlin_kotlin.$_$.n8;
364
365
  var updateLastItem = kotlin_io_raspberryapps_game_engine_core.$_$.d3;
365
366
  var d = kotlin_io_raspberryapps_cardgame_logger.$_$.h;
366
367
  var e = kotlin_io_raspberryapps_cardgame_logger.$_$.i;
@@ -373,18 +374,18 @@
373
374
  var get_atomicfu$reentrantLock = kotlin_org_jetbrains_kotlinx_atomicfu.$_$.a;
374
375
  var LogType_DEBUG_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.f4;
375
376
  var LogType_ERROR_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.g4;
376
- var stackTraceToString = kotlin_kotlin.$_$.ki;
377
- var take_0 = kotlin_kotlin.$_$.wf;
377
+ var stackTraceToString = kotlin_kotlin.$_$.li;
378
+ var take_0 = kotlin_kotlin.$_$.xf;
378
379
  var LogType_INFO_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.h4;
379
380
  var LogType_VERBOSE_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.i4;
380
381
  var LogType_WARN_getInstance = kotlin_io_raspberryapps_game_engine_core.$_$.j4;
381
382
  var get_entries = kotlin_io_raspberryapps_game_engine_core.$_$.p2;
382
383
  var LoggerEnabledTrigger = kotlin_io_raspberryapps_cardgame_logger.$_$.d;
383
- var isArray = kotlin_kotlin.$_$.nc;
384
+ var isArray = kotlin_kotlin.$_$.oc;
384
385
  var mapOfObject = kotlin_io_raspberryapps_game_engine_core.$_$.u2;
385
386
  var GameUserInfo = kotlin_io_raspberryapps_game_engine_core.$_$.c;
386
387
  var generateMsg = kotlin_io_raspberryapps_cardgame_logger.$_$.b;
387
- var mutableListOf = kotlin_kotlin.$_$.l8;
388
+ var mutableListOf = kotlin_kotlin.$_$.m8;
388
389
  var CombinedRaspberryLogger = kotlin_io_raspberryapps_cardgame_logger.$_$.c;
389
390
  var PlatformRaspberryLogger = kotlin_io_raspberryapps_cardgame_logger.$_$.f;
390
391
  var Companion_instance_3 = kotlin_org_kodein_di_kodein_di.$_$.b;
@@ -1275,7 +1276,7 @@
1275
1276
  return $super === VOID ? this.e9d(loggerKey, types) : $super.e9d.call(this, loggerKey, types);
1276
1277
  }
1277
1278
  initMetadataForInterface(FileLoggerOutput, 'FileLoggerOutput', VOID, VOID, [LoggerOutput, LoggerEnabledTrigger]);
1278
- initMetadataForClass(FileLoggerOutputImpl, 'FileLoggerOutputImpl', FileLoggerOutputImpl, VOID, [FileLoggerOutput]);
1279
+ initMetadataForClass(FileLoggerOutputImpl, 'FileLoggerOutputImpl', VOID, VOID, [FileLoggerOutput]);
1279
1280
  function filterLivePlayers(store, playerIds, includeBots, $super) {
1280
1281
  includeBots = includeBots === VOID ? false : includeBots;
1281
1282
  return $super === VOID ? this.f9d(store, playerIds, includeBots) : $super.f9d.call(this, store, playerIds, includeBots);
@@ -2280,7 +2281,7 @@
2280
2281
  ffaMovEnabled = ffaMovEnabled === VOID ? true : ffaMovEnabled;
2281
2282
  botNativeUpdatesRating = botNativeUpdatesRating === VOID ? true : botNativeUpdatesRating;
2282
2283
  replacementForcedDecrease = replacementForcedDecrease === VOID ? true : replacementForcedDecrease;
2283
- ffaMaxRatingDecreaseFraction = ffaMaxRatingDecreaseFraction === VOID ? 1.0 : ffaMaxRatingDecreaseFraction;
2284
+ ffaMaxRatingDecreaseFraction = ffaMaxRatingDecreaseFraction === VOID ? 0.8 : ffaMaxRatingDecreaseFraction;
2284
2285
  this.defaultFactor = defaultFactor;
2285
2286
  this.eloScaleH2H = eloScaleH2H;
2286
2287
  this.eloScaleFfa = eloScaleFfa;
@@ -42486,16 +42487,18 @@
42486
42487
  var opponent = tmp$ret$2;
42487
42488
  var expected = pBeats($this, item.d71_1, opponent.d71_1, cfg.eloScaleH2H);
42488
42489
  var effectivePoints = getEffectivePoints($this, item, cfg);
42489
- var actual = effectivePoints >= maxScore ? 1.0 : 0.0;
42490
- var kFactor = baseK($this, item.h71_1, gameComplexityCoefficient, cfg);
42490
+ var opponentEffectivePoints = getEffectivePoints($this, opponent, cfg);
42491
42491
  var tmp;
42492
- if (actual === 0.0 && effectivePoints >= maxScore * cfg.h2hCloseLossThresholdRatio) {
42493
- tmp = calculateScoreFactor($this, maxScore, effectivePoints, cfg.h2hCloseLossThresholdRatio);
42492
+ if (effectivePoints >= maxScore && opponentEffectivePoints >= maxScore) {
42493
+ tmp = calculateProportionalResult($this, effectivePoints, maxScore);
42494
42494
  } else {
42495
- tmp = 1.0;
42495
+ tmp = effectivePoints >= maxScore ? 1.0 : 0.0;
42496
42496
  }
42497
- var scoreFactor = tmp;
42498
- var ratingChange = kFactor * scoreFactor * (actual - expected);
42497
+ var actual = tmp;
42498
+ var kFactor = baseK($this, item.h71_1, gameComplexityCoefficient, cfg);
42499
+ var baseRatingChange = kFactor * (actual - expected);
42500
+ var scoreFactor = calculateCloseLossProtection($this, effectivePoints, maxScore, baseRatingChange, cfg);
42501
+ var ratingChange = baseRatingChange * scoreFactor;
42499
42502
  var newRating = clampAndRound($this, item.d71_1 + ratingChange, minUserRating, maxUserRating);
42500
42503
  if (item.f71_1 && newRating < item.d71_1 && !(item.g71_1.equals(AgentType_BOT_REPLACEMENT_getInstance()) && cfg.replacementForcedDecrease)) {
42501
42504
  newRating = item.d71_1;
@@ -42518,38 +42521,52 @@
42518
42521
  var _iterator__ex2g4s = ratingList.l();
42519
42522
  while (_iterator__ex2g4s.m()) {
42520
42523
  var item = _iterator__ex2g4s.n();
42521
- var tmp$ret$2;
42524
+ var tmp$ret$2 = getEffectivePoints($this, item, cfg);
42525
+ destination.j(tmp$ret$2);
42526
+ }
42527
+ var playerScores = destination;
42528
+ var dynamicMaxScore = calculateDynamicMaxScore($this, maxScore, playerScores);
42529
+ // Inline function 'kotlin.collections.map' call
42530
+ // Inline function 'kotlin.collections.mapTo' call
42531
+ var destination_0 = ArrayList_init_$Create$(collectionSizeOrDefault(ratingList, 10));
42532
+ var _iterator__ex2g4s_0 = ratingList.l();
42533
+ while (_iterator__ex2g4s_0.m()) {
42534
+ var item_0 = _iterator__ex2g4s_0.n();
42535
+ var tmp$ret$5;
42522
42536
  $l$block: {
42523
- if (item.g71_1.equals(AgentType_BOT_NATIVE_getInstance()) && !cfg.botNativeUpdatesRating) {
42524
- tmp$ret$2 = frozenOutput($this, item);
42537
+ if (item_0.g71_1.equals(AgentType_BOT_NATIVE_getInstance()) && !cfg.botNativeUpdatesRating) {
42538
+ tmp$ret$5 = frozenOutput($this, item_0);
42525
42539
  break $l$block;
42526
42540
  }
42527
42541
  // Inline function 'kotlin.collections.filter' call
42528
42542
  // Inline function 'kotlin.collections.filterTo' call
42529
- var destination_0 = ArrayList_init_$Create$_0();
42530
- var _iterator__ex2g4s_0 = ratingList.l();
42531
- while (_iterator__ex2g4s_0.m()) {
42532
- var element = _iterator__ex2g4s_0.n();
42533
- if (!(element.c71_1 === item.c71_1)) {
42534
- destination_0.j(element);
42543
+ var destination_1 = ArrayList_init_$Create$_0();
42544
+ var _iterator__ex2g4s_1 = ratingList.l();
42545
+ while (_iterator__ex2g4s_1.m()) {
42546
+ var element = _iterator__ex2g4s_1.n();
42547
+ if (!(element.c71_1 === item_0.c71_1)) {
42548
+ destination_1.j(element);
42535
42549
  }
42536
42550
  }
42537
- var opponents = destination_0;
42551
+ var opponents = destination_1;
42538
42552
  var totalExpected = 0.0;
42539
42553
  var totalActual = 0.0;
42540
42554
  // Inline function 'kotlin.collections.forEach' call
42541
- var _iterator__ex2g4s_1 = opponents.l();
42542
- while (_iterator__ex2g4s_1.m()) {
42543
- var element_0 = _iterator__ex2g4s_1.n();
42544
- var expected = pBeats($this, item.d71_1, element_0.d71_1, cfg.eloScaleFfa);
42545
- var actual = calculatePairwiseResult($this, item, element_0, maxScore, cfg);
42555
+ var _iterator__ex2g4s_2 = opponents.l();
42556
+ while (_iterator__ex2g4s_2.m()) {
42557
+ var element_0 = _iterator__ex2g4s_2.n();
42558
+ var expected = pBeats($this, item_0.d71_1, element_0.d71_1, cfg.eloScaleFfa);
42559
+ var actual = calculateFfaPairwiseResult($this, item_0, element_0, playerScores, maxScore, cfg);
42546
42560
  totalExpected = totalExpected + expected;
42547
42561
  totalActual = totalActual + actual;
42548
42562
  }
42549
- var baseKFactor = baseK($this, item.h71_1, gameComplexityCoefficient, cfg);
42563
+ var baseKFactor = baseK($this, item_0.h71_1, gameComplexityCoefficient, cfg);
42550
42564
  var ffaScaling = calculateFfaScaling($this, ratingList.o(), cfg);
42551
42565
  var effectiveKFactor = baseKFactor * ffaScaling;
42552
- var ratingChange = effectiveKFactor * (totalActual - totalExpected);
42566
+ var baseRatingChange = effectiveKFactor * (totalActual - totalExpected);
42567
+ var playerEffectivePoints = getEffectivePoints($this, item_0, cfg);
42568
+ var scoreFactor = calculateCloseLossProtection($this, playerEffectivePoints, maxScore, baseRatingChange, cfg);
42569
+ var ratingChange = baseRatingChange * scoreFactor;
42553
42570
  var theoreticalMaxGain = effectiveKFactor * (ratingList.o() - 1 | 0);
42554
42571
  var maxRatingDecrease = theoreticalMaxGain / ratingList.o() * cfg.ffaMaxRatingDecreaseFraction;
42555
42572
  var tmp;
@@ -42559,33 +42576,95 @@
42559
42576
  tmp = ratingChange;
42560
42577
  }
42561
42578
  var limitedRatingChange = tmp;
42562
- var newRating = clampAndRound($this, item.d71_1 + limitedRatingChange, minUserRating, maxUserRating);
42563
- if (item.f71_1 && newRating < item.d71_1 && !(item.g71_1.equals(AgentType_BOT_REPLACEMENT_getInstance()) && cfg.replacementForcedDecrease)) {
42564
- newRating = item.d71_1;
42579
+ var newRating = clampAndRound($this, item_0.d71_1 + limitedRatingChange, minUserRating, maxUserRating);
42580
+ if (item_0.f71_1 && newRating < item_0.d71_1 && !(item_0.g71_1.equals(AgentType_BOT_REPLACEMENT_getInstance()) && cfg.replacementForcedDecrease)) {
42581
+ newRating = item_0.d71_1;
42565
42582
  }
42566
- tmp$ret$2 = new PlayerRatingOutput(item.c71_1, item.d71_1, newRating, item.f71_1);
42583
+ tmp$ret$5 = new PlayerRatingOutput(item_0.c71_1, item_0.d71_1, newRating, item_0.f71_1);
42567
42584
  }
42568
- destination.j(tmp$ret$2);
42585
+ destination_0.j(tmp$ret$5);
42569
42586
  }
42570
- return destination;
42587
+ return destination_0;
42571
42588
  }
42572
- function calculatePairwiseResult($this, player, opponent, maxScore, cfg) {
42589
+ function calculateFfaPairwiseResult($this, player, opponent, allPlayerScores, maxScore, cfg) {
42573
42590
  var playerEffectivePoints = getEffectivePoints($this, player, cfg);
42574
42591
  var opponentEffectivePoints = getEffectivePoints($this, opponent, cfg);
42575
42592
  var tmp;
42576
42593
  if (cfg.ffaMovEnabled) {
42577
- tmp = calculateMarginAwarePairwiseResult($this, playerEffectivePoints, opponentEffectivePoints, maxScore);
42594
+ tmp = calculateFfaAdaptivePairwiseResult($this, playerEffectivePoints, opponentEffectivePoints, allPlayerScores, maxScore);
42595
+ } else {
42596
+ tmp = calculateProportionalPairwiseResult($this, playerEffectivePoints, opponentEffectivePoints, maxScore);
42597
+ }
42598
+ return tmp;
42599
+ }
42600
+ function calculateProportionalPairwiseResult($this, playerPoints, opponentPoints, maxScore) {
42601
+ var tmp;
42602
+ if (maxScore > 0) {
42603
+ // Inline function 'kotlin.math.max' call
42604
+ var b = playerPoints / maxScore;
42605
+ var playerProportion = Math.max(0.0, b);
42606
+ // Inline function 'kotlin.math.max' call
42607
+ var b_0 = opponentPoints / maxScore;
42608
+ var opponentProportion = Math.max(0.0, b_0);
42609
+ var tmp_0;
42610
+ if (playerProportion > opponentProportion) {
42611
+ var tmp_1 = playerProportion - opponentProportion;
42612
+ // Inline function 'kotlin.math.max' call
42613
+ tmp_0 = 0.5 + 0.5 * (tmp_1 / Math.max(playerProportion, opponentProportion));
42614
+ } else if (playerProportion < opponentProportion) {
42615
+ var tmp_2 = opponentProportion - playerProportion;
42616
+ // Inline function 'kotlin.math.max' call
42617
+ tmp_0 = 0.5 - 0.5 * (tmp_2 / Math.max(playerProportion, opponentProportion));
42618
+ } else {
42619
+ tmp_0 = 0.5;
42620
+ }
42621
+ tmp = tmp_0;
42578
42622
  } else {
42579
- tmp = playerEffectivePoints > opponentEffectivePoints ? 1.0 : playerEffectivePoints < opponentEffectivePoints ? 0.0 : 0.5;
42623
+ tmp = playerPoints > opponentPoints ? 1.0 : playerPoints < opponentPoints ? 0.0 : 0.5;
42580
42624
  }
42581
42625
  return tmp;
42582
42626
  }
42583
- function calculateMarginAwarePairwiseResult($this, playerPoints, opponentPoints, maxScore) {
42627
+ function calculateFfaAdaptivePairwiseResult($this, playerPoints, opponentPoints, allPlayerScores, maxScore) {
42584
42628
  var scoreDiff = playerPoints - opponentPoints | 0;
42585
- var maxPossibleDiff = maxScore;
42586
- var normalizedDiff = coerceIn(scoreDiff / maxPossibleDiff, -1.0, 1.0);
42629
+ var sortedScores = sorted(allPlayerScores);
42630
+ var tmp;
42631
+ if (sortedScores.o() >= 2) {
42632
+ // Inline function 'kotlin.math.max' call
42633
+ var a = last(sortedScores) - sortedScores.p(sortedScores.o() - 2 | 0) | 0;
42634
+ tmp = Math.max(a, 50);
42635
+ } else {
42636
+ tmp = maxScore;
42637
+ }
42638
+ var competitiveRange = tmp;
42639
+ var normalizedDiff = coerceIn(scoreDiff / competitiveRange, -1.0, 1.0);
42587
42640
  return 0.5 + 0.5 * normalizedDiff;
42588
42641
  }
42642
+ function calculateDynamicMaxScore($this, maxScore, playerScores) {
42643
+ var tmp0_elvis_lhs = maxOrNull(playerScores);
42644
+ var maxActualScore = tmp0_elvis_lhs == null ? 0 : tmp0_elvis_lhs;
42645
+ // Inline function 'kotlin.math.max' call
42646
+ return Math.max(maxScore, maxActualScore);
42647
+ }
42648
+ function calculateProportionalResult($this, playerScore, dynamicMaxScore) {
42649
+ var tmp;
42650
+ if (dynamicMaxScore > 0) {
42651
+ // Inline function 'kotlin.math.max' call
42652
+ var b = playerScore / dynamicMaxScore;
42653
+ tmp = Math.max(0.0, b);
42654
+ } else {
42655
+ tmp = 0.0;
42656
+ }
42657
+ return tmp;
42658
+ }
42659
+ function calculateCloseLossProtection($this, playerScore, originalMaxScore, baseRatingChange, cfg) {
42660
+ var tmp;
42661
+ if (playerScore >= originalMaxScore * cfg.h2hCloseLossThresholdRatio && baseRatingChange < 0) {
42662
+ tmp = calculateScoreFactor($this, originalMaxScore, playerScore, cfg.h2hCloseLossThresholdRatio);
42663
+ } else {
42664
+ tmp = 1.0;
42665
+ }
42666
+ return tmp;
42667
+ }
42589
42668
  function calculateFfaScaling($this, playerCount, cfg) {
42590
42669
  switch (playerCount) {
42591
42670
  case 3:
@@ -42821,8 +42900,19 @@
42821
42900
  destination_2.j(tmp$ret$17);
42822
42901
  }
42823
42902
  var teamAvgLoser = average(destination_2);
42824
- var winnerTeamWon = winnerTeamOriginalScore >= maxScore;
42825
- var loserTeamWon = loserTeamOriginalScore >= maxScore;
42903
+ var winnerActual;
42904
+ var loserActual;
42905
+ if (winnerTeamOriginalScore >= maxScore && loserTeamOriginalScore >= maxScore) {
42906
+ var rawWinnerActual = calculateProportionalResult(this, winnerTeamScore, maxScore);
42907
+ var rawLoserActual = calculateProportionalResult(this, loserTeamScore, maxScore);
42908
+ winnerActual = rawWinnerActual;
42909
+ // Inline function 'kotlin.math.min' call
42910
+ var b = rawWinnerActual * 0.95;
42911
+ loserActual = Math.min(rawLoserActual, b);
42912
+ } else {
42913
+ winnerActual = winnerTeamOriginalScore >= maxScore ? 1.0 : 0.0;
42914
+ loserActual = loserTeamOriginalScore >= maxScore ? 1.0 : 0.0;
42915
+ }
42826
42916
  // Inline function 'kotlin.collections.mutableListOf' call
42827
42917
  var results = ArrayList_init_$Create$_0();
42828
42918
  // Inline function 'kotlin.collections.forEach' call
@@ -42833,23 +42923,18 @@
42833
42923
  results.j(frozenOutput(this, element_5));
42834
42924
  } else {
42835
42925
  var expected = pBeats(this, element_5.d71_1, teamAvgLoser, ratingConfig.eloScaleH2H);
42836
- var actual = winnerTeamOriginalScore >= maxScore ? 1.0 : 0.0;
42837
42926
  var tmp_3;
42838
42927
  if (element_5.g71_1.equals(AgentType_BOT_REPLACEMENT_getInstance()) && ratingConfig.replacementForcedDecrease) {
42839
42928
  tmp_3 = 0.0;
42840
42929
  } else {
42841
- tmp_3 = actual;
42930
+ tmp_3 = winnerActual;
42842
42931
  }
42843
42932
  var effectiveActual = tmp_3;
42844
42933
  var kFactor = baseK(this, element_5.h71_1, gameComplexityCoefficient, ratingConfig);
42845
- var tmp_4;
42846
- if (effectiveActual === 0.0 && loserTeamOriginalScore >= maxScore * ratingConfig.h2hCloseLossThresholdRatio) {
42847
- tmp_4 = calculateScoreFactor(this, maxScore, loserTeamOriginalScore, ratingConfig.h2hCloseLossThresholdRatio);
42848
- } else {
42849
- tmp_4 = 1.0;
42850
- }
42851
- var scoreFactor = tmp_4;
42852
- var ratingChange = kFactor * scoreFactor * (effectiveActual - expected);
42934
+ var baseRatingChange = kFactor * (effectiveActual - expected);
42935
+ var playerEffectivePoints = getEffectivePoints(this, element_5, ratingConfig);
42936
+ var scoreFactor = calculateCloseLossProtection(this, playerEffectivePoints, maxScore, baseRatingChange, ratingConfig);
42937
+ var ratingChange = baseRatingChange * scoreFactor;
42853
42938
  var newRating = clampAndRound(this, element_5.d71_1 + ratingChange, minUserRating, maxUserRating);
42854
42939
  if (element_5.f71_1 && newRating < element_5.d71_1 && !(element_5.g71_1.equals(AgentType_BOT_REPLACEMENT_getInstance()) && ratingConfig.replacementForcedDecrease)) {
42855
42940
  newRating = element_5.d71_1;
@@ -42865,16 +42950,19 @@
42865
42950
  results.j(frozenOutput(this, element_6));
42866
42951
  } else {
42867
42952
  var expected_0 = pBeats(this, element_6.d71_1, teamAvgWinner, ratingConfig.eloScaleH2H);
42868
- var actual_0 = loserTeamOriginalScore >= maxScore ? 1.0 : 0.0;
42869
42953
  var kFactor_0 = baseK(this, element_6.h71_1, gameComplexityCoefficient, ratingConfig);
42870
- var tmp_5;
42871
- if (actual_0 === 0.0 && loserTeamOriginalScore >= maxScore * ratingConfig.h2hCloseLossThresholdRatio) {
42872
- tmp_5 = calculateScoreFactor(this, maxScore, loserTeamOriginalScore, ratingConfig.h2hCloseLossThresholdRatio);
42873
- } else {
42874
- tmp_5 = 1.0;
42875
- }
42876
- var scoreFactor_0 = tmp_5;
42877
- var ratingChange_0 = kFactor_0 * scoreFactor_0 * (actual_0 - expected_0);
42954
+ var baseRatingChange_0 = kFactor_0 * (loserActual - expected_0);
42955
+ // Inline function 'kotlin.collections.sumOf' call
42956
+ var sum_3 = 0;
42957
+ var _iterator__ex2g4s_9 = losers.l();
42958
+ while (_iterator__ex2g4s_9.m()) {
42959
+ var element_7 = _iterator__ex2g4s_9.n();
42960
+ var tmp_4 = sum_3;
42961
+ sum_3 = tmp_4 + getEffectivePoints(this, element_7, ratingConfig) | 0;
42962
+ }
42963
+ var teamTotalScore = sum_3;
42964
+ var scoreFactor_0 = calculateCloseLossProtection(this, teamTotalScore, maxScore, baseRatingChange_0, ratingConfig);
42965
+ var ratingChange_0 = baseRatingChange_0 * scoreFactor_0;
42878
42966
  var newRating_0 = clampAndRound(this, element_6.d71_1 + ratingChange_0, minUserRating, maxUserRating);
42879
42967
  results.j(new PlayerRatingOutput(element_6.c71_1, element_6.d71_1, newRating_0, element_6.f71_1));
42880
42968
  }
@@ -55055,17 +55143,7 @@
55055
55143
  function Companion_getInstance_171() {
55056
55144
  return Companion_instance_169;
55057
55145
  }
55058
- function CallbackWrapperLoggerOutput$_init_$lambda_hgxyzw(it) {
55059
- return null;
55060
- }
55061
55146
  function CallbackWrapperLoggerOutput(logger, payloadMapper) {
55062
- var tmp;
55063
- if (payloadMapper === VOID) {
55064
- tmp = CallbackWrapperLoggerOutput$_init_$lambda_hgxyzw;
55065
- } else {
55066
- tmp = payloadMapper;
55067
- }
55068
- payloadMapper = tmp;
55069
55147
  this.q9b_1 = logger;
55070
55148
  this.r9b_1 = payloadMapper;
55071
55149
  }
@@ -55334,9 +55412,6 @@
55334
55412
  protoOf(sam$kotlinx_coroutines_flow_FlowCollector$0_0).hashCode = function () {
55335
55413
  return hashCode(this.a3());
55336
55414
  };
55337
- function FileLoggerOutputImpl$_init_$lambda_sdog02(it) {
55338
- return null;
55339
- }
55340
55415
  function FileLoggerOutputImpl$observe$$inlined$filter$1($this, $types) {
55341
55416
  this.p9c_1 = $this;
55342
55417
  this.q9c_1 = $types;
@@ -55351,22 +55426,15 @@
55351
55426
  return this.m28(collector, $completion);
55352
55427
  };
55353
55428
  function FileLoggerOutputImpl(payloadToLoggerKeyMapper, enabled) {
55354
- var tmp;
55355
- if (payloadToLoggerKeyMapper === VOID) {
55356
- tmp = FileLoggerOutputImpl$_init_$lambda_sdog02;
55357
- } else {
55358
- tmp = payloadToLoggerKeyMapper;
55359
- }
55360
- payloadToLoggerKeyMapper = tmp;
55361
55429
  enabled = enabled === VOID ? true : enabled;
55362
55430
  this.r9c_1 = payloadToLoggerKeyMapper;
55363
55431
  this.s9c_1 = enabled;
55364
- var tmp_0 = this;
55432
+ var tmp = this;
55365
55433
  // Inline function 'kotlinx.atomicfu.locks.reentrantLock' call
55366
- tmp_0.t9c_1 = get_atomicfu$reentrantLock();
55367
- var tmp_1 = this;
55434
+ tmp.t9c_1 = get_atomicfu$reentrantLock();
55435
+ var tmp_0 = this;
55368
55436
  // Inline function 'kotlin.collections.mutableMapOf' call
55369
- tmp_1.u9c_1 = LinkedHashMap_init_$Create$();
55437
+ tmp_0.u9c_1 = LinkedHashMap_init_$Create$();
55370
55438
  }
55371
55439
  protoOf(FileLoggerOutputImpl).c1l = function (_set____db54di) {
55372
55440
  this.s9c_1 = _set____db54di;