Initial commit: Tiny Tackle Heroes Unity project
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
using BumpCombat.Core;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BumpCombat.Enemies
|
||||
{
|
||||
[DisallowMultipleComponent]
|
||||
public sealed class EnemyModel : CharacterModel
|
||||
{
|
||||
private EnemyDefinition definition;
|
||||
private float maxHealthMultiplier = 1f;
|
||||
private float moveSpeedMultiplier = 1f;
|
||||
private float attackDamageMultiplier = 1f;
|
||||
|
||||
public EnemyDefinition Definition => definition;
|
||||
public override float MaxHealth => definition == null
|
||||
? 0f
|
||||
: Evaluate(
|
||||
CharacterStat.MaxHealth,
|
||||
definition.MaxHealth * maxHealthMultiplier);
|
||||
public override float MoveSpeed => definition == null
|
||||
? 0f
|
||||
: Evaluate(
|
||||
CharacterStat.MoveSpeed,
|
||||
definition.MoveSpeed * moveSpeedMultiplier);
|
||||
public float AttackDamage => definition == null
|
||||
? 0f
|
||||
: CalculateAttackDamage(
|
||||
definition.AttackDamage * attackDamageMultiplier);
|
||||
|
||||
public void ConfigureDefinition(EnemyDefinition enemyDefinition)
|
||||
{
|
||||
definition = enemyDefinition;
|
||||
}
|
||||
|
||||
public void ConfigureEventMultipliers(
|
||||
float healthMultiplier,
|
||||
float speedMultiplier,
|
||||
float damageMultiplier)
|
||||
{
|
||||
maxHealthMultiplier = Mathf.Max(1f, healthMultiplier);
|
||||
moveSpeedMultiplier = Mathf.Max(0f, speedMultiplier);
|
||||
attackDamageMultiplier = Mathf.Max(0f, damageMultiplier);
|
||||
}
|
||||
|
||||
public float CalculatePatternDamage(
|
||||
float patternMultiplier,
|
||||
bool applyEventTuning)
|
||||
{
|
||||
if (definition == null)
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
|
||||
float damage = definition.AttackDamage * patternMultiplier;
|
||||
if (applyEventTuning)
|
||||
{
|
||||
damage *= attackDamageMultiplier;
|
||||
}
|
||||
|
||||
return CalculateAttackDamage(damage);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user