55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
| using Godot;
 | |
| using SupaLidlGame.Characters;
 | |
| 
 | |
| namespace SupaLidlGame.Items
 | |
| {
 | |
|     public abstract partial class Weapon : Item
 | |
|     {
 | |
|         public double RemainingUseTime { get; protected set; } = 0;
 | |
| 
 | |
|         public bool CanStartAttack => RemainingUseTime <= 0;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// How much damage in HP that this weapon deals.
 | |
|         /// </summary>
 | |
|         [Export]
 | |
|         public float Damage { get; set; } = 0;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// The time in seconds it takes for this weapon to become available
 | |
|         /// again after using.
 | |
|         /// </summary>
 | |
|         [Export]
 | |
|         public double UseTime { get; set; } = 0;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// The magnitude of the knockback force of the weapon.
 | |
|         /// </summary>
 | |
|         [Export]
 | |
|         public float Knockback { get; set; } = 0;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// The initial velocity of any projectile the weapon may spawn.
 | |
|         /// </summary>
 | |
|         [Export]
 | |
|         public float InitialVelocity { get; set; } = 0;
 | |
| 
 | |
|         public Character Character { get; set; }
 | |
| 
 | |
|         public override void Equip(Character character)
 | |
|         {
 | |
|             Character = character;
 | |
|         }
 | |
| 
 | |
|         public override void Unequip(Character character)
 | |
|         {
 | |
|             Character = null;
 | |
|         }
 | |
| 
 | |
|         public override void Deuse()
 | |
|         {
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 |