SimpleSword.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using UnityEngine;
  2. public class SimpleSword : Weapon
  3. {
  4. [Header("Sword Settings")]
  5. public WeaponItem weaponItemData; // Reference to the ScriptableObject data
  6. public SimpleSword() : base()
  7. {
  8. weaponName = "Simple Sword";
  9. description = "A basic sword.";
  10. attackSpeed = 1.0f; // Example: 1 second between shots
  11. weaponModel = null; // Assign a 3D model if available
  12. }
  13. public override int MinDamage => weaponItemData != null ? weaponItemData.minDamage : 1;
  14. public override int MaxDamage => weaponItemData != null ? weaponItemData.maxDamage : 6;
  15. public override int Range => weaponItemData != null ? weaponItemData.range : 2;
  16. public override int WeaponModifier { get => weaponModifier; set => weaponModifier = value; }
  17. /// <summary>
  18. /// Initialize this weapon from a WeaponItem ScriptableObject
  19. /// </summary>
  20. /// <param name="itemData">The WeaponItem data to use</param>
  21. public void InitializeFromItem(WeaponItem itemData)
  22. {
  23. if (itemData == null) return;
  24. weaponItemData = itemData;
  25. weaponName = itemData.itemName;
  26. description = itemData.description;
  27. attackSpeed = itemData.attackSpeed;
  28. weaponModifier = itemData.weaponModifier;
  29. baseWeaponModifier = itemData.weaponModifier;
  30. weaponModel = itemData.model3D;
  31. Debug.Log($"SimpleSword initialized from item data: {weaponName}");
  32. }
  33. }