2026-03-01 12:16:08 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "Enchantment.h"
|
|
|
|
|
|
|
|
|
|
class ThornsEnchantment : public Enchantment
|
|
|
|
|
{
|
|
|
|
|
private:
|
|
|
|
|
static const float CHANCE_PER_LEVEl;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
ThornsEnchantment(int id, int freq);
|
|
|
|
|
|
|
|
|
|
virtual int getMinCost(int level);
|
|
|
|
|
virtual int getMaxCost(int level);
|
|
|
|
|
virtual int getMaxLevel();
|
2026-03-02 17:37:16 +07:00
|
|
|
virtual bool canEnchant(shared_ptr<ItemInstance> item);
|
2026-03-01 12:16:08 +08:00
|
|
|
static bool shouldHit(int level, Random *random);
|
|
|
|
|
static int getDamage(int level, Random *random);
|
2026-03-03 03:04:10 +08:00
|
|
|
static void doThornsAfterAttack(shared_ptr<Entity> source, shared_ptr<LivingEntity> target, Random *random);
|
2026-03-01 12:16:08 +08:00
|
|
|
};
|