using Config; using Godot; /// <summary> /// 子弹数据 /// </summary> public class BulletData : IClone<BulletData> { /// <summary> /// 发射该子弹的武器, 可能为null /// </summary> public Weapon Weapon; /// <summary> /// 使用的配置数据 /// </summary> public ExcelConfig.BulletBase BulletBase; /// <summary> /// 发射该子弹的角色, 可能为null /// </summary> public Role TriggerRole; /// <summary> /// 造成的伤害 /// </summary> public int Harm; /// <summary> /// 击退值 /// </summary> public float Repel; /// <summary> /// 最大飞行距离 /// </summary> public float MaxDistance; /// <summary> /// 子弹飞行速度 /// </summary> public float FlySpeed; /// <summary> /// 初始离地高度 /// </summary> public float Altitude; /// <summary> /// 纵轴速度 /// </summary> public float VerticalSpeed; /// <summary> /// 反弹次数 /// </summary> public int BounceCount; /// <summary> /// 子弹最大穿透次数 /// </summary> public int Penetration; /// <summary> /// 子弹最大存在时间 /// </summary> public float LifeTime; /// <summary> /// 坐标 /// </summary> public Vector2 Position; /// <summary> /// 旋转角度 /// </summary> public float Rotation; public BulletData Clone() { return new BulletData { Weapon = Weapon, BulletBase = BulletBase, TriggerRole = TriggerRole, Harm = Harm, Repel = Repel, MaxDistance = MaxDistance, FlySpeed = FlySpeed, Altitude = Altitude, VerticalSpeed = VerticalSpeed, BounceCount = BounceCount, Penetration = Penetration, LifeTime = LifeTime, Position = Position, Rotation = Rotation }; } }