{"id":16401547,"url":"https://github.com/plugfox/foxhole-artillery-calculator","last_synced_at":"2026-06-23T09:31:43.791Z","repository":{"id":131286507,"uuid":"164830286","full_name":"PlugFox/foxhole-artillery-calculator","owner":"PlugFox","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-07T13:27:40.000Z","size":1097,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-07T20:04:27.463Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PlugFox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-09T09:21:03.000Z","updated_at":"2026-02-07T13:24:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"c1076a44-ed87-4e85-8332-1a15b6f961f4","html_url":"https://github.com/PlugFox/foxhole-artillery-calculator","commit_stats":{"total_commits":21,"total_committers":3,"mean_commits":7.0,"dds":0.09523809523809523,"last_synced_commit":"1c631ab612e018defbc4b411e1a1773eeae1c44c"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/PlugFox/foxhole-artillery-calculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Ffoxhole-artillery-calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Ffoxhole-artillery-calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Ffoxhole-artillery-calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Ffoxhole-artillery-calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PlugFox","download_url":"https://codeload.github.com/PlugFox/foxhole-artillery-calculator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Ffoxhole-artillery-calculator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34684673,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T05:43:23.754Z","updated_at":"2026-06-23T09:31:43.786Z","avatar_url":"https://github.com/PlugFox.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Foxhole\n---\n# Калькулятор артиллериста\n\n![CI - Linux](https://github.com/PlugFox/foxhole-artillery-calculator/workflows/CI%20-%20Linux%20Code%20Checks/badge.svg)\n![CI - Windows](https://github.com/PlugFox/foxhole-artillery-calculator/workflows/CI%20-%20Windows%20Build/badge.svg)\n\n![](screenshots/5.png)\n\n## Управление / Controls\n\n### Хоткеи по умолчанию / Default Hotkeys\n\n```\nNum -\n Инициация ввода координат противника\n\nNum +\n Инициация ввода координат союзника\n\nNum 0..9\n Ввод координат\n\nNum *\n Ресайз окна\n\nNum .\n Свернуть/развернуть калькулятор\n\nPrtScr\n Скриншот координат бинокля\n```\n\n+ Квадратики справа нужны чтоб сохранять координаты точек опорных позиций.\n+ При наведении на орудие - выскакивает подсказка о его дальности.\n+ Ввод координат выполняется последовательно, с помощью нампада (сначало дистанция, затем азимут).\n+ Если дистанция или угол не трехзначные, может быть удобно вводить с лидирующими нулями, но можно и нажать любую кнопку после ввода.\n+ Также, если дистанция начинается с цифры большей 1 или азимут с цифры больше 3 - будет инициирован двухзначный ввод.\n+ При нажатии на результирующие координаты - будет произведена попытка их озвучки синтетическим движком в en-US.\n+ Если на данный момент кальк не нужен - можно \"свернуть\" в полосочку по стрелочкам в шапочке, чтоб не мешался.\n+ Подсветка возможности ведения ответного огня\n+ В шапке есть кнопка для открытия дополнительной полезной информации.\n\n---\n\n## Конфигурация / Configuration\n\nС версии 2.0 калькулятор поддерживает настройку через конфигурационный файл `config.ini`. При первом запуске файл создается автоматически со значениями по умолчанию.\n\n**Расположение файла конфигурации / Configuration file location:**\n- Windows: `%APPDATA%\\FoxholeArtilleryCalculator\\config.ini`\n- Полный путь отображается при ошибке загрузки конфигурации\n\n### Формат конфигурации / Configuration Format\n\nФайл использует простой INI формат с секциями и параметрами:\n\n```ini\n[Section]\nparameter = value\n```\n\n### Настройка хоткеев / Hotkey Configuration\n\nВ файле `config.ini` можно изменить хоткеи для различных действий:\n\n```ini\n[Hotkeys]\nenemy_coordinates = SUBTRACT      # Ввод координат противника (по умолчанию Num -)\nfriendly_coordinates = ADD        # Ввод координат союзника (по умолчанию Num +)\nscreenshot = SNAPSHOT             # Снимок экрана (по умолчанию PrtScr)\nchange_resolution = MULTIPLY      # Смена разрешения (по умолчанию Num *)\ntoggle_window = DECIMAL           # Свернуть/развернуть (по умолчанию Num .)\n```\n\n**Доступные клавиши / Available keys:**\n- Клавиши Numpad: `NUMPAD0-NUMPAD9`, `ADD`, `SUBTRACT`, `MULTIPLY`, `DIVIDE`, `DECIMAL`\n- Функциональные клавиши: `F1-F24`\n- Специальные: `SNAPSHOT` (PrtScr), `INSERT`, `DELETE`, `HOME`, `END`, `PRIOR` (PageUp), `NEXT` (PageDown)\n- Буквы: `KEY_A` через `KEY_Z`\n- Цифры: `KEY_0` через `KEY_9`\n- Стрелки: `UP`, `DOWN`, `LEFT`, `RIGHT`\n- Другие: `SPACE`, `RETURN` (Enter), `ESCAPE`, `TAB`, `BACK` (Backspace)\n\nПолный список доступных клавиш смотрите в файле `classes/KeyboardHook.cs`\n\n### Настройка интерфейса / UI Configuration\n\n```ini\n[UI]\nactive_field_color = Lime         # Цвет активного поля ввода\nin_range_color = #7F00FF00        # Цвет для артиллерии в радиусе действия\nout_of_range_color = #7FFF0000    # Цвет для артиллерии вне радиуса\nenable_sound = true               # Включить озвучку координат\nvoice_culture = en-US             # Язык озвучки (en-US, ru-RU и др.)\n```\n\n### Настройка дальности артиллерии / Artillery Range Configuration\n\n```ini\n[Mortar]\nmin_range = 44\nmax_range = 66\n\n[FieldArtillery]\nmin_range = 74\nmax_range = 151\n\n[Howitzer]\nmin_range = 59\nmax_range = 166\n\n[Gunship]\nmin_range = 49\nmax_range = 101\n```\n\n### Общие настройки / General Settings\n\n```ini\n[General]\nbeep_on_field_change = false      # Звуковой сигнал при смене поля ввода\nscreenshot_width = 100            # Ширина снимка экрана в пикселях\nscreenshot_height = 50            # Высота снимка экрана в пикселях\n```\n\n---\n\n## Создание релиза / Creating a Release\n\nДля создания нового релиза используйте GitHub Actions:\n\n1. Перейдите во вкладку **Actions** в репозитории\n2. Выберите workflow **\"Create Release\"**\n3. Нажмите **\"Run workflow\"**\n4. Введите версию в формате `X.Y.Z` (например, `1.0.0`)\n5. Workflow автоматически:\n   - Создаст git тэг `vX.Y.Z`\n   - Обновит версию в `AssemblyInfo.cs`\n   - Соберёт Windows executable\n   - Создаст GitHub release с исполняемым файлом\n\nTo create a new release using GitHub Actions:\n\n1. Go to the **Actions** tab in the repository\n2. Select the **\"Create Release\"** workflow\n3. Click **\"Run workflow\"**\n4. Enter version in format `X.Y.Z` (e.g., `1.0.0`)\n5. The workflow will automatically:\n   - Create git tag `vX.Y.Z`\n   - Update version in `AssemblyInfo.cs`\n   - Build Windows executable\n   - Create GitHub release with the executable file\n\n---\n\n## CI/CD / Непрерывная интеграция\n\nРепозиторий использует автоматические проверки кода при каждом Pull Request и коммите в main:\n\n### Linux Code Checks (быстрая проверка)\n- Проверка синтаксиса YAML файлов\n- Валидация структуры файлов проекта\n- Проверка базового синтаксиса C#\n- Проверка документации\n\n### Windows Build Verification (проверка компиляции)\n- Сборка Debug и Release конфигураций\n- Проверка выходных файлов (exe, dll)\n- Артефакты сборки доступны в Actions\n\nThe repository uses automated code checks for every Pull Request and commit to main:\n\n### Linux Code Checks (fast validation)\n- YAML syntax validation\n- Project file structure verification\n- Basic C# syntax checking\n- Documentation validation\n\n### Windows Build Verification (compilation check)\n- Build Debug and Release configurations\n- Check build output files (exe, dll)\n- Build artifacts available in Actions","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugfox%2Ffoxhole-artillery-calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplugfox%2Ffoxhole-artillery-calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugfox%2Ffoxhole-artillery-calculator/lists"}