From 91851d4ef98850460368d2c5f274f365b92879f4 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 2 Nov 2019 00:01:07 +0100 Subject: [PATCH] Implemented spell learn spell requiremets. --- entities/entity.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/entities/entity.cpp b/entities/entity.cpp index 0ba29d2..2217778 100644 --- a/entities/entity.cpp +++ b/entities/entity.cpp @@ -2470,7 +2470,6 @@ Ref Entity::sget_aura_by_bind(Node *caster, int aura_id) { return sget_aura_by(e, aura_id); } - Ref Entity::sget_aura_with_group_by(Entity *caster, Ref aura_group) { for (int i = 0; i < _s_auras.size(); ++i) { Ref ad = _s_auras.get(i); @@ -2496,7 +2495,6 @@ Ref Entity::sget_aura_with_group_by_bind(Node *caster, Ref return sget_aura_with_group_by(e, aura_group); } - int Entity::cget_aura_count() { return _s_auras.size(); } @@ -3370,7 +3368,16 @@ void Entity::slearn_spell(int id) { for (int i = 0; i < cd->get_num_spells(); ++i) { Ref sp = cd->get_spell(i); + if (!sp.is_valid()) + continue; + if (sp->get_id() == id) { + Ref req_spell = sp->get_training_required_spell(); + + if (req_spell.is_valid() && !hass_spell(req_spell)) { + return; + } + adds_spell(sp); sets_free_spell_points(_s_free_spell_points - 1); return;