using System;using System.Threading.Tasks; public class ActualPanel { game.PlayerDataStorage.PlayerKVGameplayLoop.FishingRewardAction kvReward; Func kvPresentation; public bool isActiveAndEnabled=true; public Canvas canvasGroup=new(); public Fish playerFishData=new();public Player playerData=new(); int fishID=7;public int Applied; bool KVRewardViewCurrent()=>this!=null && isActiveAndEnabled && game.PlayerDataStorage.PlayerKVGameplayLoop.RewardPanelCurrent(kvReward,this); public Button playButton=new();public bool NonKvOnly;public int HomeClicks; public void StartTail() { playButton.onClick.AddListener(OnClickInHome); #if UNITY_EDITOR && !SERVICE_HOST if(!game.PlayerDataStorage.PlayerKVGameplayLoop.Enabled) #endif { NonKvOnly=true; } OnShow(); } void OnClickInHome()=>HomeClicks++; void OnShowCore(){Applied++;}public void Run()=>OnShow(); void OnShow() { #if UNITY_EDITOR && !SERVICE_HOST if(game.PlayerDataStorage.PlayerKVGameplayLoop.Enabled) { try { var bound=game.PlayerDataStorage.PlayerKVGameplayLoop.BindRewardPanel(this); if(bound==null) return; kvReward=bound; game.PlayerDataStorage.PlayerKVEditResult primary; using(game.PlayerDataStorage.PlayerKVGameplayLoop.BeginRewardSegment("reward")) { OnShowCore(); playerFishData.SaveCaughtFishForKVLoop(fishID); primary=playerData.SaveFishingRewardForKVLoop(); } _=ConfirmKVRewardAsync(primary); } catch(System.Exception e) { game.PlayerDataStorage.PlayerKVGameplayLoop.Fault(e.Message); } return; } #endif OnShowCore(); } async System.Threading.Tasks.Task ConfirmKVRewardAsync(game.PlayerDataStorage.PlayerKVEditResult primary) { try { await game.PlayerDataStorage.PlayerKVGameplayLoop.ConfirmRewardAsync(kvReward,primary); if(!KVRewardViewCurrent()) return; game.PlayerDataStorage.PlayerKVGameplayLoop.PresentReward(kvReward,()=>{canvasGroup.alpha=1;canvasGroup.blocksRaycasts=true;canvasGroup.interactable=true;}); if(kvPresentation!=null) await kvPresentation(); } catch(System.Exception e) { game.PlayerDataStorage.PlayerKVGameplayLoop.Fault(e.Message); } } }