* Returns a UFO's visibility to radar detection. * The UFO's size and altitude affect the chances * of it being detected by radars. * @return Visibility modifier. */
| 553 | * @return Visibility modifier. |
| 554 | */ |
| 555 | int Ufo::getVisibility() const |
| 556 | { |
| 557 | int size = 0; |
| 558 | // size = 15*(3-ufosize); |
| 559 | if (_rules->getSize() == "STR_VERY_SMALL") |
| 560 | size = -30; |
| 561 | else if (_rules->getSize() == "STR_SMALL") |
| 562 | size = -15; |
| 563 | else if (_rules->getSize() == "STR_MEDIUM_UC") |
| 564 | size = 0; |
| 565 | else if (_rules->getSize() == "STR_LARGE") |
| 566 | size = 15; |
| 567 | else if (_rules->getSize() == "STR_VERY_LARGE") |
| 568 | size = 30; |
| 569 | |
| 570 | int visibility = 0; |
| 571 | if (_altitude == "STR_GROUND") |
| 572 | visibility = -30; |
| 573 | else if (_altitude == "STR_VERY_LOW") |
| 574 | visibility = size - 20; |
| 575 | else if (_altitude == "STR_LOW_UC") |
| 576 | visibility = size - 10; |
| 577 | else if (_altitude == "STR_HIGH_UC") |
| 578 | visibility = size; |
| 579 | else if (_altitude == "STR_VERY_HIGH") |
| 580 | visibility = size - 10; |
| 581 | |
| 582 | return visibility; |
| 583 | } |
| 584 | |
| 585 | |
| 586 | /** |