Add WeaponStats class and update damage calculations for ranged and melee attacks
This commit is contained in:
@@ -13,7 +13,7 @@ namespace Weapons
|
||||
var projectile = Instantiate(projectilePrefab, firePoint.position, firePoint.rotation);
|
||||
projectile.TryGetComponent<IDamageInflectorSetup>(out var inflector);
|
||||
|
||||
inflector?.Setup(character);
|
||||
inflector?.Setup(character, weaponStats);
|
||||
}
|
||||
}
|
||||
}
|
@@ -19,7 +19,7 @@ namespace Weapons
|
||||
hit.TryGetComponent<Health>(out var health);
|
||||
if (hit.gameObject == character.gameObject) continue;
|
||||
|
||||
var damage = character.attributes.Damage * character.attributes.MeleeDamage;
|
||||
var damage = weaponStats.Damage + character.attributes.Damage * character.attributes.MeleeDamage;
|
||||
health.TakeDamage(damage);
|
||||
}
|
||||
}
|
||||
|
@@ -17,9 +17,17 @@ namespace Weapons
|
||||
public GameObject Owner { get; private set; }
|
||||
public DamageType Type => DamageType.Ranged;
|
||||
|
||||
public void Setup(Character attacker)
|
||||
public void Setup(Character attacker, WeaponStats weaponStats = null)
|
||||
{
|
||||
Damage = attacker.attributes.Damage * attacker.attributes.RangedDamage;
|
||||
if (weaponStats != null)
|
||||
{
|
||||
Damage = weaponStats.Damage + attacker.attributes.Damage * attacker.attributes.RangedDamage;
|
||||
}
|
||||
else
|
||||
{
|
||||
Damage = attacker.attributes.Damage * attacker.attributes.RangedDamage;
|
||||
}
|
||||
|
||||
Owner = attacker.gameObject;
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using Data;
|
||||
using Interfaces;
|
||||
using Sirenix.OdinInspector;
|
||||
using Sirenix.Serialization;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Weapons
|
||||
@@ -11,6 +13,7 @@ namespace Weapons
|
||||
|
||||
[SerializeField] private float cooldown = 1f;
|
||||
[SerializeField] protected Character character;
|
||||
[OdinSerialize, InlineProperty] public WeaponStats weaponStats = new();
|
||||
|
||||
private void Update()
|
||||
{
|
||||
|
Reference in New Issue
Block a user