bool Ship::ValidateBoardShip(ShipRef ship, CharacterRef character) { SkillRef requiredSkill; uint32 skillTypeID = 0; if( (skillTypeID = static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill1).get_int())) != 0) if( !(character->HasSkillTrainedToLevel( skillTypeID, static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill1Level).get_int()) )) ) return false; if( (skillTypeID = static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill2).get_int())) != 0) if( !(character->HasSkillTrainedToLevel( skillTypeID, static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill2Level).get_int() ))) ) return false; if( (skillTypeID = static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill3).get_int())) != 0) if( !(character->HasSkillTrainedToLevel( skillTypeID, static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill3Level).get_int() ))) ) return false; if( (skillTypeID = static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill4).get_int())) != 0) if( !(character->HasSkillTrainedToLevel( skillTypeID, static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill4Level).get_int() ))) ) return false; if( (skillTypeID = static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill5).get_int())) != 0) if( !(character->HasSkillTrainedToLevel( skillTypeID, static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill5Level).get_int() )) )) return false; if( (skillTypeID = static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill6).get_int())) != 0) if( !(character->HasSkillTrainedToLevel( skillTypeID, static_cast<uint32>(ship->GetAttribute(AttrRequiredSkill6Level).get_int() )) )) return false; return true; /* //Primary Skill if(ship->GetAttribute(AttrRequiredSkill1).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill1).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill1Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Secondary Skill if(ship->GetAttribute(AttrRequiredSkill2).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill2).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill2Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Tertiary Skill if(ship->GetAttribute(AttrRequiredSkill3).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill3).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill3Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Quarternary Skill if(ship->GetAttribute(AttrRequiredSkill4).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill4).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill4Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Quinary Skill if(ship->GetAttribute(AttrRequiredSkill5).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill5).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill5Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Senary Skill if(ship->GetAttribute(AttrRequiredSkill6).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill6).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill6Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } return true; */ }
bool Skill::FitModuleSkillCheck(InventoryItemRef item, CharacterRef character) { //TODO: move to skills SkillRef requiredSkill; //Primary Skill if(item->GetAttribute(AttrRequiredSkill1) != 0) { requiredSkill = character->GetSkill( static_cast<uint32>(item->GetAttribute(AttrRequiredSkill1).get_int()) ); if( !requiredSkill ) return false; if( item->GetAttribute(AttrRequiredSkill1Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Secondary Skill if(item->GetAttribute(AttrRequiredSkill2) != 0) { requiredSkill = character->GetSkill( static_cast<uint32>(item->GetAttribute(AttrRequiredSkill2).get_int()) ); if( !requiredSkill ) return false; if( item->GetAttribute(AttrRequiredSkill2Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Tertiary Skill if(item->GetAttribute(AttrRequiredSkill3) != 0) { requiredSkill = character->GetSkill( static_cast<uint32>(item->GetAttribute(AttrRequiredSkill3).get_int()) ); if( !requiredSkill ) return false; if( item->GetAttribute(AttrRequiredSkill3Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Quarternary Skill if(item->GetAttribute(AttrRequiredSkill4) != 0) { requiredSkill = character->GetSkill( static_cast<uint32>(item->GetAttribute(AttrRequiredSkill4).get_int()) ); if( !requiredSkill ) return false; if( item->GetAttribute(AttrRequiredSkill4Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Quinary Skill if(item->GetAttribute(AttrRequiredSkill5) != 0) { requiredSkill = character->GetSkill(static_cast<uint32>(item->GetAttribute(AttrRequiredSkill5).get_int())); if( !requiredSkill ) return false; if( item->GetAttribute(AttrRequiredSkill5Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Senary Skill if(item->GetAttribute(AttrRequiredSkill6) != 0) { requiredSkill = character->GetSkill(static_cast<uint32>(item->GetAttribute(AttrRequiredSkill6).get_int())); if( !requiredSkill ) return false; if( item->GetAttribute(AttrRequiredSkill6Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } return true; }
bool Ship::ValidateBoardShip(ShipRef ship, CharacterRef character) { SkillRef requiredSkill; //Primary Skill if(ship->GetAttribute(AttrRequiredSkill1).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill1).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill1Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Secondary Skill if(ship->GetAttribute(AttrRequiredSkill2).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill2).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill2Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Tertiary Skill if(ship->GetAttribute(AttrRequiredSkill3).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill3).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill3Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Quarternary Skill if(ship->GetAttribute(AttrRequiredSkill4).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill4).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill4Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Quinary Skill if(ship->GetAttribute(AttrRequiredSkill5).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill5).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill5Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } //Senary Skill if(ship->GetAttribute(AttrRequiredSkill6).get_int() != 0) { requiredSkill = character->GetSkill( ship->GetAttribute(AttrRequiredSkill6).get_int() ); if( !requiredSkill ) return false; if( ship->GetAttribute(AttrRequiredSkill6Level) > requiredSkill->GetAttribute(AttrSkillLevel) ) return false; } return true; }
void StunEffect::Apply(CharacterRef character) { Effect::Apply(character); character->SetCanMove(false); }