using asap.core; using cfg; using GameCore; using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.AddressableAssets; public class FishingData { public FishingBehaviorConf fishingBehaviorConf { private set; get; } cfg.Tables _tables; // 是否正在遛鱼 public bool IsDrawing; // 是否正在抓鱼 public bool IsCatchingFish; // 是否抓到鱼了 public bool IsCaughtFish; // 是否弹出奖励界面 public bool IsShowRewardPanel; //public bool AutomaticFishing; public MapData curMapData; public int MapId; public FishData curFishData; public FixedFishList fixedFishList; public FishData swimFishData; public int RodId; public RodData fishRodData; public Item fishItem; //吃鱼相关 public Item swimItem; //吃鱼序列 public List fishEatDataList; public float fishWeight { get; set; } public float random { get; set; } public int CardLevel { get; set; } public float EventFishDamageMag { get; set; } public float CardDamageMag { get; set; } public float WeightIncEvent { get; set; } public float StrugglingPower { get; set; }//鱼的力量 public float FishingRetryPowerReduction { get; set; } = 1; public float FishingRetryEscapeReduction { get; set; } = 1; public float FishEscapeSpeedDec { get; set; } = 0; public float FishingRetryHPReduction { get; set; } = 1; public float Speed { get; set; }//鱼的速度 public float Vigilance { get; set; }//鱼的警惕性 public float MaxLinelength; public float MaxZEscape; public float MaxYEscape; public float DashStayTime; public int FishSkillStaminaState = 0; public float FishSkillStaminaParam = 0; public FishDash DashStay; public FishStruggle FishStruggle; public FishJump FishJump; public float NextPointMin; public float NextPointMax; public float NextPointEMin; public float NextPointEMax; public IFishSpSkillData fishSpSkillData; public SuperDashSpSkillData superDashSpSkillData; public DirtyStuckSpSkillData dirtyStuckSpSkillData; //等鱼上钩 public float EnhancedWaitingTime; public float ExtraUnderwaterOffset; public bool isWeather = false; public int NewItemID = 0; public int NewIndex = 0; //public float ClickFishFlapping = 1f; //public float BottleOpenDelay = 1.95f; //public float FishFlapping = 3.05f; //钓鱼结果 public FishingResult fishingResult = FishingResult.Success; public float FishSpeed; //鱼的速度对移动速度的影响 public List StrengthToScale { get; set; } public float FishVigilanceToTime { get; set; } public float RodVigilanceToTime { get; set; } //目标奖励活动相关 public Vector3 image_extra_pos { set; get; } public int addCollecting { set; get; } //目标奖励活动相关 public Transform mainCamera; public Quaternion startEuler; public float startTimer; public float endTimer; //ui吃鱼的血量比 public float UIEatHpPercent = -1; //目标奖励活动Buff相关 public bool isMapBuff = false; public bool isAddTargetBuff; public bool isAddPiggyBank; public bool isAddBarginPack; // [REMOVED] SupplyDropCtrl type no longer exists // public SupplyDropCtrl supplyDropCtrl; public object supplyDropCtrl; public bool IsHideRod => supplyDropCtrl != null || isAddTargetBuff || isAddPiggyBank || isAddBarginPack; public bool isAwaitTargetBuff; public bool isShowTargetPanel; public int jerking_count = 0; public int stickle_state = 0; public float FishAnimSpeed = 1; public bool IsFree = false; public bool IsDuel = false; public int RetryCount { get; private set; } public bool IsRetry { get { return RetryCount > 0; } set { if (value) { RetryCount++; } else { RetryCount = 0; } Debug.Log($"IsRetry set to {value}, RetryCount is now {RetryCount}"); } } public int retry_ways = 0; //特殊技能结算音效 public string AudioRewardFish; public DateTime LastCastingTime; public int rodType; public async System.Threading.Tasks.Task Init() { fishingBehaviorConf = (FishingBehaviorConf)(await Addressables.LoadAssetAsync("FishingBehaviorConf").Task); _tables = GContext.container.Resolve(); } public void SetRodData(RodData fishRodData) { this.fishRodData = fishRodData; RodId = fishRodData.ID; } public void ChangeFishData(FishData curFishData) { this.curFishData = curFishData; } public float HoldThreshold() { if (fishRodData != null) { return fishRodData.HoldThreshold; } if (fishRodData != null) { return fishRodData.HoldThreshold; } return 0; } public bool IsNewItemFish() { //return NewItemID == fishItem.ID; return fishItem.Quality > 5; } public bool IsEventGameFish() { return fishItem.SubType == 11 || fishItem.SubType == 12; } public bool IsGeneralFish() { return fishItem.SubType == 1; } public bool IsKeepsakeFish() { return fishItem.SubType == 4; } public bool IsPiggyBankFish() { return fishItem.SubType == 22; } public bool IsBarginPackFish() { return fishItem.SubType == 21; } public bool IsPackItemFish() { return fishItem.SubType == 21 || fishItem.SubType == 22; } public List SwimmingAreaX() { return curMapData.SwimmingAreaX; } public List SwimmingAreaZ() { return curMapData.SwimmingAreaZ; } public float CameraMaxAngle() { return curMapData.CameraMaxAngle; } public float FishMaxAngle() { return curMapData.FishMaxAngle; } //相机相关 SetCamera public void SetCamera(Transform camera) { mainCamera = camera; camera.localEulerAngles = new Vector3(0, 0, 0); startEuler = camera.localRotation; } public float GetFishingTimer() { return endTimer - startTimer; } public void StopAuto() { GContext.Publish(new StopAutoEvent() { IsDrawing = IsDrawing }); } public void InitEatHp() { UIEatHpPercent = -1; var fixedFishList = _tables.TbFixedFishList.GetOrDefault(GContext.container.Resolve().GetAnglingCount() + 1); if (fixedFishList != null && fixedFishList.EatFishType != 0) { if (fixedFishList.EatFishType == 1) { UIEatHpPercent = fixedFishList.UIEatHpPercent; } } else { var EatFishData = _tables.TbFishEatFish.GetOrDefault(swimFishData.EatFishID); UIEatHpPercent = UnityEngine.Random.Range(0, 1f); if (EatFishData != null && EatFishData.EatWeight > 0) { int weight = EatFishData.UIEatWeight + EatFishData.EatWeight; int w = UnityEngine.Random.Range(0, weight); if (w < EatFishData.UIEatWeight) { UIEatHpPercent = UnityEngine.Random.Range(EatFishData.UIEatHpPercent[0], EatFishData.UIEatHpPercent[1]); } else { UIEatHpPercent = -1; } } } } public void Reset() { FishingRetryPowerReduction = 1; FishingRetryEscapeReduction = 1; FishingRetryHPReduction = 1; fishItem = null; NewItemID = 0; fixedFishList = null; IsRetry = false; AudioRewardFish = null; superDashSpSkillData = null; dirtyStuckSpSkillData = null; } }