From 53c66c21360457dc769c6fb664662bb6b5d8ab79 Mon Sep 17 00:00:00 2001 From: Relintai Date: Wed, 16 Oct 2019 02:33:26 +0200 Subject: [PATCH] Small logic fixes. --- data/xp_data.cpp | 13 +++++-------- entities/entity.cpp | 3 +++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/xp_data.cpp b/data/xp_data.cpp index a1afc16..270b217 100644 --- a/data/xp_data.cpp +++ b/data/xp_data.cpp @@ -1,19 +1,17 @@ #include "xp_data.h" -int XPData::get_max_level() -{ - return _xp_required.size(); +int XPData::get_max_level() { + return _xp_required.size(); } int XPData::xp_required_for_level(int level) { - ERR_FAIL_COND_V(level < 0, 1); - ERR_FAIL_COND_V(level > _xp_required.size(), 99999999); + ERR_FAIL_INDEX_V(level, _xp_required.size(), 9999999); - return _xp_required.get(level); + return _xp_required.get(level); } bool XPData::can_level_up(int level) { - return level <= _xp_required.size(); + return level < _xp_required.size(); } PoolIntArray XPData::get_xps() { @@ -34,7 +32,6 @@ void XPData::_bind_methods() { ClassDB::bind_method(D_METHOD("xp_required_for_level", "level"), &XPData::xp_required_for_level); ClassDB::bind_method(D_METHOD("can_level_up", "level"), &XPData::can_level_up); - ClassDB::bind_method(D_METHOD("get_xps"), &XPData::get_xps); ClassDB::bind_method(D_METHOD("set_xps", "auras"), &XPData::set_xps); ADD_PROPERTY(PropertyInfo(Variant::POOL_INT_ARRAY, "xps"), "set_xps", "get_xps"); diff --git a/entities/entity.cpp b/entities/entity.cpp index 92cc167..2bfe5fe 100644 --- a/entities/entity.cpp +++ b/entities/entity.cpp @@ -1723,6 +1723,9 @@ void Entity::addc_xp(int value) { } void Entity::slevelup(int value) { + if (_s_level == EntityEnums::MAX_LEVEL) + return; + _s_level += value; son_level_up(value);