// using System; // using GAS.Runtime; // using xFrame; // // namespace CoreGame.Render // { // [Serializable] // public class TaskCastBackGunBullet : InstantAbilityTask // { // public string skillHurtIncExpr = ""; // public override void OnExecute(in TaskSpec self) // { // var ctx = self.abilitySpec.ctx; // var owner = ctx.ownerEnt; // var equipComp = owner.equips; // if (equipComp == null) // { // XLog.LogDebug("TaskCastBackGunBullet ctx.ownerEnt is not a gun"); // return; // } // // ref var gun = ref equipComp.GetNextSlotData(); // if (gun.equipEid == 0) // { // XLog.LogDebug("TaskCastBackGunBullet gun.equipEid is 0"); // return; // } // // var gunEnt = Contexts.Combat.GetEntity(gun.equipEid); // // var gaParams = new GameplayAbilityParams(); // gaParams.skillHurtInc = (float)ExpressionEvaluator.CalcVal_WithCtx(skillHurtIncExpr, ctx, -0.5f); // gaParams.element = (int)gunEnt.gunData.elementType; // var shotSkill = GunSrv.TryActiveShotSkill(gunEnt.gunData, owner, gunEnt, gaParams); // } // } // }