@@ -137,7 +137,7 @@ protected override void OnUpdate() {
137137 _valueAnimator . SetTarget ( 1f ) ;
138138 }
139139 }
140- //
140+
141141 var targetColor = _colorShouldBeSet ? _targetColor : Color . white . ColorWithAlpha ( 0.3f ) ;
142142 var color = Color . Lerp (
143143 Color . white . ColorWithAlpha ( 0.1f ) ,
@@ -178,16 +178,18 @@ protected override void OnInit(BattleRoyaleReplay item) {
178178 return ;
179179 }
180180
181- if ( _refreshColorTask ? . Status is TaskStatus . Running || _refreshPlayerTask ? . Status is TaskStatus . Running ) {
181+ if ( _refreshColorTask != null || _refreshPlayerTask != null ) {
182182 _tokenSource . Cancel ( ) ;
183183 _tokenSource = new ( ) ;
184184 }
185185
186186 ResetColor ( ) ;
187187 RefreshOtherText ( ) ;
188188
189- _refreshPlayerTask = RefreshPlayer ( _tokenSource . Token ) . RunCatching ( ) ;
190- _refreshColorTask = RefreshAccentColor ( _tokenSource . Token ) . RunCatching ( ) ;
189+ var token = _tokenSource . Token ;
190+
191+ _refreshPlayerTask = RefreshPlayer ( item , token ) . RunCatching ( ) ;
192+ _refreshColorTask = RefreshAccentColor ( item , token ) . RunCatching ( ) ;
191193
192194 _prevReplay = item ;
193195 _prevRank = item . ReplayRank ;
@@ -199,27 +201,28 @@ public void Init(IBattleRoyaleHost battleRoyaleHost) {
199201 _navigateButton . Enabled = battleRoyaleHost . CanMutateLobby ;
200202 }
201203
202- private async Task RefreshAccentColor ( CancellationToken token ) {
203- var data = await Item . GetBattleRoyaleDataAsync ( false , token ) ;
204+ private async Task RefreshAccentColor ( BattleRoyaleReplay replay , CancellationToken token ) {
205+ var data = await replay . GetBattleRoyaleDataAsync ( false , token ) ;
204206
205207 if ( token . IsCancellationRequested ) {
206208 return ;
207209 }
208210
209211 var color = data . AccentColor ?? Color . white ;
210212 SetColor ( color ) ;
213+ _refreshColorTask = null ;
211214 }
212215
213- private async Task RefreshPlayer ( CancellationToken token ) {
214- var header = Item . ReplayHeader ;
215- var player = await header . LoadPlayerAsync ( false , token ) as IPlayer ;
216+ private async Task RefreshPlayer ( BattleRoyaleReplay replay , CancellationToken token ) {
217+ var player = await replay . ReplayHeader . LoadPlayerAsync ( false , token ) as IPlayer ;
216218
217219 if ( token . IsCancellationRequested ) {
218220 return ;
219221 }
220222
221223 _playerAvatar . SetAvatar ( player ) ;
222224 _playerNameText . Text = player . Name ;
225+ _refreshPlayerTask = null ;
223226 }
224227
225228 private void RefreshOtherText ( ) {
@@ -256,15 +259,15 @@ public void Setup(IBattleRoyaleHost? battleRoyaleHost) {
256259 _battleRoyaleHost . ReplayRefreshRequestedEvent -= HandleRefreshRequested ;
257260 _battleRoyaleHost . CanMutateLobbyStateChangedEvent -= HandleCanMutateLobbyChangedEvent ;
258261 }
259-
262+
260263 _battleRoyaleHost = battleRoyaleHost ;
261-
264+
262265 if ( _battleRoyaleHost != null ) {
263266 _battleRoyaleHost . ReplayAddedEvent += HandleReplayAdded ;
264267 _battleRoyaleHost . ReplayRemovedEvent += HandleReplayRemoved ;
265268 _battleRoyaleHost . ReplayRefreshRequestedEvent += HandleRefreshRequested ;
266269 _battleRoyaleHost . CanMutateLobbyStateChangedEvent += HandleCanMutateLobbyChangedEvent ;
267-
270+
268271 HandleCanMutateLobbyChangedEvent ( _battleRoyaleHost . CanMutateLobby ) ;
269272 }
270273 }
0 commit comments