备份CatanBuilding瘦身独立工程

This commit is contained in:
JSD\13999
2026-05-26 16:15:54 +08:00
commit 2d0e6a61b7
12001 changed files with 2431925 additions and 0 deletions

View File

@@ -0,0 +1,137 @@
using asap.core;
using cfg;
using DG.Tweening;
using Game;
using UnityEngine;
public class FishingFlyingWhale : FishingFlyingFish
{
public float enterDelayTime = 1f;
public float rodInactiveDelay = 1.1f;
public float rodAppearDelay = 2.83f;
public float drawingDelay = 3f;//结束
public float fishSpSwimmingToMapTime = 1f;
public float spExitDelay = 4;
public float spDamageProtectionTime = 0.2f;
public Vector3 fishSpEatPoint = new Vector3(0, -3, 35);
public Vector3 fishToMouthPos = new Vector3(-1.5f, 0, -0.1f);
public Vector3 fishToMouthRot = new Vector3(0, 86, 0);
public override void StartFlying(FishingBehaviorB fishingBehavior, FishingData fishingData)
{
this.fishingBehavior = fishingBehavior;
this.fishingData = fishingData;
FishMove();
}
async void FishMove()
{
//转弯
var _fish = fishingBehavior.GetFish;
var _strugglePoint = fishSpEatPoint;
//_strugglePoint.y = _fish.transform.position.y;
Quaternion rotation = Quaternion.LookRotation(_fish.transform.position - _strugglePoint);
_fish.transform.DORotateQuaternion(rotation, 0.1f);
_fish.transform.DOMove(_strugglePoint, enterDelayTime);
await Awaiters.Seconds(enterDelayTime);
fishingBehavior.CameraToFish = false;
fishingData.mainCamera.DOLocalRotateQuaternion(Quaternion.identity, 0.5f);
fishingBehavior.FishBehaviour.transform.parent = fishingBehavior.FishComeAnimationRoot.transform;
fishingBehavior.FishBehaviour.transform.localPosition = fishToMouthPos;
fishingBehavior.FishBehaviour.transform.localEulerAngles = fishToMouthRot;
FishingPanel_Advanced.Instance?.ShowState(3);
EatFishAction();
RodMove();
//开始timeScale缩放
AniEatTimeScale();
DarknessTimeDelay();
AniExitTime();
await Awaiters.Seconds(drawingDelay);
fishingBehavior.DestroySwimFish();
fishingBehavior.RodDrawing();
fishingBehavior.SetDrawingForce(1);
GContext.Publish(new LoadFishListEvent() { isShow = true });
fishingBehavior.CameraToFish = true;
FishSwimming();
}
async void RodMove()
{
fishingBehavior.fishingRodAnimator.SetTrigger("_pulling");
GContext.Publish(ERightState.Pulling);
await Awaiters.Seconds(rodInactiveDelay);
float delay = rodAppearDelay - rodInactiveDelay;
fishingBehavior.ChangelineStartPos();
GContext.Publish(ERightState.Preparing);
await Awaiters.Seconds(delay);
fishingBehavior.IsChangelineStartPos = false;
fishingBehavior.ShowRod(true);
}
async void AniEatTimeScale()
{
var fishingBehaviorConf = fishingData.fishingBehaviorConf;
await Awaiters.Seconds(fishingBehaviorConf.timeEatStartScale);
float time = fishingBehaviorConf.timeEatEndScale - fishingBehaviorConf.timeEatStartScale;
DOTween.To(() => fishingBehaviorConf.timeEatMinScale, x => Time.timeScale = x, 1, time)
.SetEase(fishingBehaviorConf.timeEatScaleCurve);
await Awaiters.Seconds(fishingBehaviorConf.timeEatEndScale);
Time.timeScale = 1f;
}
void EatFishAction()
{
fishingBehavior.FishSwimBehaviour.gameObject.SetActive(false);
fishingBehavior.fx_fishbosscome.SetActive(false);
//await Awaiters.Seconds(eatFishActionDelay);
//大鱼停止游弋
fishingBehavior.fishCome.FishComeStop();
var _strugglePoint = fishSpEatPoint;
//_strugglePoint.y = _fish.transform.position.y;
fishingBehavior.fishCome.transform.localPosition = _strugglePoint;
fishingBehavior.FishSwimBehaviour.gameObject.SetActive(true);
fishingBehavior.fishCome.animator.Play("FishBossPullingBiteSp");
fishingBehavior.FishSwimBehaviour.PlayBite();
fishingBehavior.cameraAnimator.Play("CameraAnimationWhaleSp");
}
void FishSwimming()
{
var ver = new Vector3();
ver.y = fishingBehavior.GetFishUnderwaterOffset();
ver.z = fishingBehavior.WaitingZ();
fishingBehavior.GetFish.transform.position = fishingBehavior.FishComeAnimationRoot.transform.position;
var _strugglePoint = new Vector3(0, ver.y, ver.z);
//fishingBehavior.GetBait.transform.position = ver;
fishingBehavior.GetFish.transform.DOMove(_strugglePoint, fishSpSwimmingToMapTime).OnUpdate(
(() =>
{
fishingBehavior.SetCurFishEffectPos();
}));
fishingBehavior.FishTurn();
}
void DarknessTimeDelay()
{
//天气压黑
var _fishEatfish = GContext.container.Resolve<Tables>().TbFishEatFish.GetOrDefault(fishingData.swimFishData.EatFishID);
if (_fishEatfish != null)
{
if (_fishEatfish.IsDarkness)
{
WeatherEvent weatherEvent = new WeatherEvent() { State = 1 };
GContext.Publish(weatherEvent);
fishingData.isWeather = true;
if (weatherEvent.IsPlay)
{
GContext.Publish(new EventBGMSound("BGM_WeatherChange"));
}
}
FishingPanel_Advanced.Instance?.ShowWarning(_fishEatfish.WarningAfterEat);
}
}
async void AniExitTime()
{
await Awaiters.Seconds(spExitDelay);
fishingBehavior.StartMoveFish();
fishingBehavior.cameraAnimator.Play("Drawing01");
fishingBehavior.fishCome.animator.Play("Idle01");
GContext.Publish(new OnEatEndEvent());
}
}