diff --git a/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossReward.cs b/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossReward.cs index 7ebb6edc02..859d4d0eae 100644 --- a/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossReward.cs +++ b/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossReward.cs @@ -108,6 +108,12 @@ protected void Awake() var preRaiderState = WorldBossStates.GetPreRaiderState(avatarAddress); foreach (var notification in notificationsSeasonReward) { + if (preRaiderState is null) + { + notification.SetActive(false); + return; + } + notification.SetActive(!isOnSeason && !preRaiderState.HasClaimedReward); } }); diff --git a/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossSeasonReward.cs b/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossSeasonReward.cs index f46879711c..544b372d51 100644 --- a/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossSeasonReward.cs +++ b/nekoyume/Assets/_Scripts/UI/Module/WorldBoss/WorldBossSeasonReward.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using Nekoyume.Blockchain; using Nekoyume.Helper; using Nekoyume.L10n; @@ -59,19 +60,21 @@ public void Set(WorldBossState worldBossState, RaiderState raider, int raidId, b var tableSheets = Game.Game.instance.TableSheets; var contributeSheet = tableSheets.WorldBossContributionRewardSheet; var contributeRow = contributeSheet.Values.FirstOrDefault(r => r.BossId == raidRow.BossId); - if (contributeRow == null) + if (contributeRow == null || worldBossState == null) { - NcDebug.LogError($"Not found WorldBossContributionRewardSheet for bossId: {raidRow.BossId}"); + NcDebug.LogError($"Not found WorldBoss Data: {raidRow.BossId}"); return; } rewardItem.Set(contributeRow); + var worldBossTotalDamage = worldBossState.TotalDamage; + worldBossTotalDamageText.text = $"{worldBossTotalDamage:N0}"; + if (raider == null) { claimButton.SetCondition(() => false); claimButton.UpdateObjects(); - worldBossTotalDamageText.text = "0"; userTotalDamageText.text = "0 (0%)"; foreach (var rewardItemView in rewardItems) @@ -85,10 +88,7 @@ public void Set(WorldBossState worldBossState, RaiderState raider, int raidId, b claimButton.SetCondition(() => canClaim); claimButton.UpdateObjects(); - var worldBossTotalDamage = worldBossState?.TotalDamage ?? 0; - var userTotalDamage = raider?.TotalScore ?? 0; - - worldBossTotalDamageText.text = $"{worldBossTotalDamage:N0}"; + var userTotalDamage = raider.TotalScore; float ratio = 0; if (worldBossTotalDamage > 0) { @@ -113,7 +113,7 @@ public void Set(WorldBossState worldBossState, RaiderState raider, int raidId, b if (!string.IsNullOrEmpty(currentItem.Ticker)) { var amount = (decimal)currentItem.Count * (decimal)ratio; - if (amount <= 0) + if (Math.Floor(amount) <= 0) { continue; }