12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #pragma once
- #include "Reader.h"
- #include <JSON.h>
- #include <ReferenceCounter.h>
- class ItemType;
- class ItemSkill;
- class Block;
- class Entity;
- class Dimension;
- class ItemSkillLevelUpRule : public virtual Framework::ReferenceCounter
- {
- public:
- virtual void applyOn( ItemSkill *zSkill ) = 0;
- };
- class ItemSkill : public virtual Framework::ReferenceCounter
- {
- public:
- virtual void use( Entity *zActor, Block *zTarget, Dimension *zDimension ) = 0;
- virtual void use( Entity *zActor, Entity *zTarget, Dimension *zDimension ) = 0;
- };
- class BasicItemSkill : public ItemSkill
- {
- protected:
- int level;
- float xp;
- float maxXP;
- float durabilityModifier;
- float speedModifier;
- float luckModifier;
- float staminaModifier;
- float hungerModifier;
- BasicItemSkill( float maxXp = 100.f, float durabilityModifier = 1.f, float speedModifier = 1.f, float luckModifier = 1.f, float staminaModifier = 1.f, float hungerModifier = 1.f, float xpIncrease = 1.1f );
- public:
- virtual void use( Entity *zActor, Block *zTarget, Dimension *zDimension ) override;
- virtual void use( Entity *zActor, Entity *zTarget, Dimension *zDimension ) override;
- friend ItemType;
- };
|