예제 #1
0
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;
}