Small logic fixes.

This commit is contained in:
Relintai 2019-10-16 02:33:26 +02:00
parent 9e976eaebf
commit 53c66c2136
2 changed files with 8 additions and 8 deletions

View File

@ -1,19 +1,17 @@
#include "xp_data.h" #include "xp_data.h"
int XPData::get_max_level() int XPData::get_max_level() {
{ return _xp_required.size();
return _xp_required.size();
} }
int XPData::xp_required_for_level(int level) { int XPData::xp_required_for_level(int level) {
ERR_FAIL_COND_V(level < 0, 1); ERR_FAIL_INDEX_V(level, _xp_required.size(), 9999999);
ERR_FAIL_COND_V(level > _xp_required.size(), 99999999);
return _xp_required.get(level); return _xp_required.get(level);
} }
bool XPData::can_level_up(int level) { bool XPData::can_level_up(int level) {
return level <= _xp_required.size(); return level < _xp_required.size();
} }
PoolIntArray XPData::get_xps() { 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("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("can_level_up", "level"), &XPData::can_level_up);
ClassDB::bind_method(D_METHOD("get_xps"), &XPData::get_xps); ClassDB::bind_method(D_METHOD("get_xps"), &XPData::get_xps);
ClassDB::bind_method(D_METHOD("set_xps", "auras"), &XPData::set_xps); ClassDB::bind_method(D_METHOD("set_xps", "auras"), &XPData::set_xps);
ADD_PROPERTY(PropertyInfo(Variant::POOL_INT_ARRAY, "xps"), "set_xps", "get_xps"); ADD_PROPERTY(PropertyInfo(Variant::POOL_INT_ARRAY, "xps"), "set_xps", "get_xps");

View File

@ -1723,6 +1723,9 @@ void Entity::addc_xp(int value) {
} }
void Entity::slevelup(int value) { void Entity::slevelup(int value) {
if (_s_level == EntityEnums::MAX_LEVEL)
return;
_s_level += value; _s_level += value;
son_level_up(value); son_level_up(value);