Bullet resource

This commit is contained in:
Marco 2025-02-12 16:20:55 +01:00
commit 07f6e58ebd
19 changed files with 236 additions and 50 deletions

View file

@ -12,8 +12,12 @@ public partial class WeaponResource : Resource
[Export]
public string Name { get; set; }
[Export]
public PackedScene BulletScene { get; set; }
[Export] public BulletResource BulletData { get; private set; }
//[Export]
//public PackedScene BulletScene { get; set; }
//[Export] public PackedScene DestructionParticlesScene { get; set; }
[Export] public double RateOfFire = 0.4f;
@ -33,35 +37,38 @@ public partial class WeaponResource : Resource
#region Bullet spawn data
[Export] public string AmmoKey;
[Export] public float BulletSpeed = 100f;
[Export] public float BulletDamage = 1;
[Export] public float LifeTime = 10f;
//[Export] public float BulletSpeed = 100f;
//[Export] public float BulletDamage = 1;
//[Export] public float LifeTime = 10f;
[Export] private float _rotationOffset = 0f;
[Export] private BulletOwner owner = BulletOwner.None;
[Export] private DamageType _damageType = DamageType.Neutral;
[Export] private Resource _modifier;
[Export] private Array<Resource> _timeModifiers;
//[Export] private BulletOwner owner = BulletOwner.None;
//[Export] private DamageType _damageType = DamageType.Neutral;
//[Export] private Resource _modifier;
//[Export] private Array<Resource> _timeModifiers;
#endregion
public BulletInfo MakeBullet(Vector2 position)
{
return new BulletInfo()
{
Position = position,
Direction = Vector2.Right,
Speed = BulletSpeed,
Owner = owner,
DamageType = _damageType,
Damage = BulletDamage,
BulletCount = BulletsPerShot,
Spread = SpreadAngle,
BulletScene = BulletScene,
RotationOffset = _rotationOffset,
Modifier = _modifier as IBulletModifier,
LifeTime = LifeTime,
TimeModifiers = _timeModifiers?.Where(mod => mod is TimeModifier).Cast<TimeModifier>().ToList() ??
new List<TimeModifier>()
};
return BulletData.MakeBullet(position, BulletsPerShot, SpreadAngle, _rotationOffset);
// return new BulletInfo()
// {
// Position = position,
// Direction = Vector2.Right,
// Speed = BulletSpeed,
// Owner = owner,
// DamageType = _damageType,
// Damage = BulletDamage,
// BulletCount = BulletsPerShot,
// Spread = SpreadAngle,
// BulletScene = BulletScene,
// RotationOffset = _rotationOffset,
// Modifier = _modifier as IBulletModifier,
// LifeTime = LifeTime,
// DestructionParticlesScene = DestructionParticlesScene,
// TimeModifiers = _timeModifiers?.Where(mod => mod is TimeModifier).Cast<TimeModifier>().ToList() ??
// new List<TimeModifier>()
// };
}
}