Add projectiles
This commit is contained in:
49
Zennysoft.Game.Ma/src/items/ammo/Ammo.cs
Normal file
49
Zennysoft.Game.Ma/src/items/ammo/Ammo.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using Chickensoft.AutoInject;
|
||||
using Chickensoft.Introspection;
|
||||
using Chickensoft.Serialization;
|
||||
using Godot;
|
||||
using Zennysoft.Game.Abstractions;
|
||||
using Zennysoft.Game.Ma;
|
||||
using Zennysoft.Ma.Adapter;
|
||||
|
||||
[Meta(typeof(IAutoNode)), Id("ammo")]
|
||||
public partial class Ammo : EquipableItem, IStackable
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
private int _count;
|
||||
|
||||
[Node] private Sprite3D _sprite { get; set; }
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
_count = Stats.InitialCount;
|
||||
_sprite.Texture = Stats.Texture;
|
||||
}
|
||||
|
||||
|
||||
public override string ItemName => Stats.Name;
|
||||
|
||||
public override string Description => Stats.Description;
|
||||
|
||||
public override float SpawnRate => Stats.SpawnRate;
|
||||
|
||||
public override int ThrowDamage => Stats.ThrowDamage;
|
||||
|
||||
public override float ThrowSpeed => Stats.ThrowSpeed;
|
||||
|
||||
public override ItemTag ItemTag => Stats.ItemTag;
|
||||
|
||||
public override Texture2D GetTexture() => Stats.Texture;
|
||||
|
||||
[Save("ammo_item_count")]
|
||||
public int Count { get => _count; }
|
||||
public void SetCount(int count) => _count = count;
|
||||
|
||||
[Save("ammo_element")]
|
||||
public ElementType AmmoElement => Stats.AmmoElement;
|
||||
|
||||
[Export]
|
||||
[Save("ammo_stats")]
|
||||
public AmmoStats Stats { get; set; } = new AmmoStats();
|
||||
}
|
||||
Reference in New Issue
Block a user