mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-12 20:07:32 +00:00
83 lines
5.5 KiB
Java
83 lines
5.5 KiB
Java
package kamkeel.npcs;
|
||
|
||
import kamkeel.npcs.controllers.AttributeController;
|
||
import kamkeel.npcs.controllers.data.attribute.AttributeDefinition;
|
||
import kamkeel.npcs.controllers.data.attribute.AttributeValueType;
|
||
import kamkeel.npcs.controllers.data.attribute.requirement.RequirementCheckerRegistry;
|
||
import kamkeel.npcs.controllers.data.attribute.requirement.types.ProfileSlotRequirement;
|
||
import kamkeel.npcs.controllers.data.attribute.requirement.types.QuestActiveRequirement;
|
||
import kamkeel.npcs.controllers.data.attribute.requirement.types.QuestCompletedRequirement;
|
||
import kamkeel.npcs.controllers.data.attribute.requirement.types.SoulbindRequirement;
|
||
|
||
/**
|
||
* ModAttributes registers the core attributes (both non–magic and magic–based).
|
||
*/
|
||
public class CustomAttributes {
|
||
public static final String HEALTH_KEY = "health";
|
||
public static final String HEALTH_BOOST_KEY = "health_boost";
|
||
public static final String MAIN_ATTACK_KEY = "main_attack";
|
||
public static final String MAIN_ATTACK_BOOST_KEY = "main_attack_boost";
|
||
public static final String NEUTRAL_KEY = "neutral";
|
||
public static final String NEUTRAL_BOOST_KEY = "neutral_boost";
|
||
public static final String CRITICAL_DAMAGE_KEY = "critical_damage";
|
||
public static final String CRITICAL_CHANCE_KEY = "critical_chance";
|
||
public static final String MAGIC_DAMAGE_KEY = "magic_damage";
|
||
public static final String MAGIC_BOOST_KEY = "magic_boost";
|
||
public static final String MAGIC_DEFENSE_KEY = "magic_defense";
|
||
public static final String MAGIC_RESISTANCE_KEY = "magic_resistance";
|
||
public static final String MOVEMENT_SPEED_KEY = "movement_speed";
|
||
public static final String KNOCKBACK_RES_KEY = "knockback_res";
|
||
|
||
public static AttributeDefinition HEALTH;
|
||
public static AttributeDefinition HEALTH_BOOST;
|
||
public static AttributeDefinition MAIN_ATTACK;
|
||
public static AttributeDefinition MAIN_BOOST;
|
||
public static AttributeDefinition NEUTRAL_ATTACK;
|
||
public static AttributeDefinition NEUTRAL_BOOST;
|
||
public static AttributeDefinition CRITICAL_CHANCE;
|
||
public static AttributeDefinition CRITICAL_DAMAGE;
|
||
public static AttributeDefinition MAGIC_DAMAGE;
|
||
public static AttributeDefinition MAGIC_BOOST;
|
||
public static AttributeDefinition MAGIC_DEFENSE;
|
||
public static AttributeDefinition MAGIC_RESISTANCE;
|
||
public static AttributeDefinition MOVEMENT_SPEED;
|
||
public static AttributeDefinition KNOCKBACK_RES;
|
||
|
||
public CustomAttributes() {
|
||
HEALTH = AttributeController.registerAttribute(HEALTH_KEY, "Health", 'c', AttributeValueType.FLAT, AttributeDefinition.AttributeSection.BASE);
|
||
HEALTH_BOOST = AttributeController.registerAttribute(HEALTH_BOOST_KEY, "Health Boost", 'c', AttributeValueType.PERCENT, AttributeDefinition.AttributeSection.MODIFIER);
|
||
HEALTH_BOOST.setTranslationKey("attribute.name.generic.maxHealth");
|
||
|
||
MAIN_ATTACK = AttributeController.registerAttribute(MAIN_ATTACK_KEY, "Main Attack Damage", '4', AttributeValueType.FLAT, AttributeDefinition.AttributeSection.BASE);
|
||
MAIN_BOOST = AttributeController.registerAttribute(MAIN_ATTACK_BOOST_KEY, "Main Attack Damage", '4', AttributeValueType.PERCENT, AttributeDefinition.AttributeSection.MODIFIER);
|
||
|
||
NEUTRAL_ATTACK = AttributeController.registerAttribute(NEUTRAL_KEY, "Neutral Damage", '6', AttributeValueType.FLAT, AttributeDefinition.AttributeSection.BASE);
|
||
NEUTRAL_BOOST = AttributeController.registerAttribute(NEUTRAL_BOOST_KEY, "Neutral Damage", '6', AttributeValueType.PERCENT, AttributeDefinition.AttributeSection.MODIFIER);
|
||
|
||
CRITICAL_CHANCE = AttributeController.registerAttribute(CRITICAL_CHANCE_KEY, "Critical Chance", '6', AttributeValueType.PERCENT, AttributeDefinition.AttributeSection.INFO);
|
||
CRITICAL_DAMAGE = AttributeController.registerAttribute(CRITICAL_DAMAGE_KEY, "Critical Damage", '6', AttributeValueType.FLAT, AttributeDefinition.AttributeSection.INFO);
|
||
|
||
MAGIC_DAMAGE = AttributeController.registerAttribute(MAGIC_DAMAGE_KEY, "Magic Damage", '3', AttributeValueType.MAGIC, AttributeDefinition.AttributeSection.BASE);
|
||
MAGIC_BOOST = AttributeController.registerAttribute(MAGIC_BOOST_KEY, "Magic Damage", '3', AttributeValueType.MAGIC, AttributeDefinition.AttributeSection.MODIFIER);
|
||
|
||
MAGIC_DEFENSE = AttributeController.registerAttribute(MAGIC_DEFENSE_KEY, "Magic Defense", 'b', AttributeValueType.MAGIC, AttributeDefinition.AttributeSection.BASE);
|
||
MAGIC_RESISTANCE = AttributeController.registerAttribute(MAGIC_RESISTANCE_KEY, "Magic Resistance", 'b', AttributeValueType.MAGIC, AttributeDefinition.AttributeSection.MODIFIER);
|
||
|
||
MOVEMENT_SPEED = AttributeController.registerAttribute(MOVEMENT_SPEED_KEY, "Movement Speed", 'a', AttributeValueType.PERCENT, AttributeDefinition.AttributeSection.MODIFIER);
|
||
MOVEMENT_SPEED.setTranslationKey("attribute.name.generic.movementSpeed");
|
||
|
||
KNOCKBACK_RES = AttributeController.registerAttribute(KNOCKBACK_RES_KEY, "Knockback Resistance", 'b', AttributeValueType.PERCENT, AttributeDefinition.AttributeSection.MODIFIER);
|
||
KNOCKBACK_RES.setTranslationKey("attribute.name.generic.knockbackResistance");
|
||
|
||
// TODO: Attributes
|
||
// Durability Attribute
|
||
// Unique Name Attribute
|
||
|
||
// Requirement
|
||
RequirementCheckerRegistry.registerChecker(new QuestCompletedRequirement());
|
||
RequirementCheckerRegistry.registerChecker(new QuestActiveRequirement());
|
||
RequirementCheckerRegistry.registerChecker(new ProfileSlotRequirement());
|
||
RequirementCheckerRegistry.registerChecker(new SoulbindRequirement());
|
||
}
|
||
}
|