备份CatanBuilding瘦身独立工程
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user