You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

70 lines
2.5 KiB

// using System;
//
// using GAS.Runtime;
// using Sirenix.OdinInspector;
// using Sog;
//
// namespace CoreGame.Logic
// {
// [Serializable]
// public class TaskCastFlyBullet : OngoingAbilityTask
// {
// public int bulletId;
// public bool randomElementType;
// public string canCastExpr = "";
//
// [ShowInInspector]
// [HideReferenceObjectPicker]
// [ShowIf("m_Cfg")]
// private BulletDesc m_Cfg => BulletDescMgr.Instance.GetConfig(bulletId);
//
// private int m_CastCount;
// private Fixed64 m_CastInterval;
// private Fixed64 m_AccumulateTime;
// private Fixed64 m_AccRotateAngle;
// private bool m_CanCast;
//
// public override void OnStart(Fixed64 startTime, GameAbilityContext ctx)
// {
// m_CanCast = BulletSrv.CanCast(ctx, canCastExpr);
// if (!m_CanCast)
// return;
//
// m_CastCount = (int)ExpressionEvaluator.CalcVal_WithCtx(m_Cfg.fireTimes, ctx, 3f);
// m_CastInterval = m_Cfg.fireDelay * BattleConst.TenThousandReverse;
// var fireDelayMax = m_Cfg.fireDelayMax * BattleConst.TenThousandReverse;
// if ((m_CastCount - 1) * m_CastInterval > fireDelayMax)
// {
// m_CastInterval = fireDelayMax / (m_CastCount - 1);
// }
//
// m_AccumulateTime = 0f;
// m_AccRotateAngle = 0f;
// if (m_CastCount > 0)
// {
// BulletSrv.CreateBulletWithPoint(ctx, bulletId, 0, randomElementType);
// m_CastCount--;
// m_AccRotateAngle += m_Cfg.rotateEachTime * BattleConst.TenThousandReverse;
// }
// }
//
// public override void OnEnd(Fixed64 endTime, GameAbilityContext ctx)
// {
// }
//
// public override void OnTick(Fixed64 dt, Fixed64 startTime, Fixed64 endTime, GameAbilityContext ctx)
// {
// if (!m_CanCast)
// return;
//
// if (m_AccumulateTime >= m_CastInterval && m_CastCount > 0)
// {
// BulletSrv.CreateBulletWithPoint(ctx, bulletId, m_AccRotateAngle, randomElementType);
// m_AccumulateTime -= m_CastInterval;
// m_CastCount--;
// m_AccRotateAngle += m_Cfg.rotateEachTime * Fixed64.EN4;
// }
// m_AccumulateTime += dt;
// }
// }
// }