bool Skill::SkillPrereqsComplete(Character &ch) { SkillRef requiredSkill; if( GetAttribute(AttrRequiredSkill1).get_int() != 0 ) { requiredSkill = ch.GetSkill(static_cast<uint32>(GetAttribute(AttrRequiredSkill1).get_int())); if( !requiredSkill ) return false; if( GetAttribute(AttrRequiredSkill1Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } if( GetAttribute(AttrRequiredSkill2).get_int() != 0 ) { requiredSkill = ch.GetSkill(static_cast<uint32>(GetAttribute(AttrRequiredSkill2).get_int())); if( !requiredSkill ) return false; if( GetAttribute(AttrRequiredSkill2Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } if( GetAttribute(AttrRequiredSkill3).get_int() != 0 ) { requiredSkill = ch.GetSkill(static_cast<uint32>(GetAttribute(AttrRequiredSkill3).get_int())); if( !requiredSkill ) return false; if( GetAttribute(AttrRequiredSkill3Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } return true; }