Compare commits

..

124 Commits

Author SHA1 Message Date
DarkPhoenix
9dab6b0f92 Bump version 2021-06-15 18:31:09 +03:00
DarkPhoenix
33e3ea6030 Add bubble launcher as an element for wubble alias 2021-06-15 18:27:21 +03:00
DarkPhoenix
9d97b27c3a Implement wubble application via interdiction module 2021-06-15 18:25:25 +03:00
DarkPhoenix
05d156c7f4 Fix covops effects 2021-06-15 18:17:30 +03:00
DarkPhoenix
2ddc4924cc Update metadata to 1910975 2021-06-15 16:30:46 +03:00
DarkPhoenix
e3fef6f1a7 Add custom wubble effect 2021-06-13 02:30:09 +03:00
DarkPhoenix
fbd8d04f68 Fix nullifier duration bonus 2021-06-11 23:53:16 +03:00
DarkPhoenix
23916165bb Bump version 2021-06-11 23:27:11 +03:00
DarkPhoenix
3cca6a6c95 Update effects 2021-06-11 23:26:09 +03:00
DarkPhoenix
a52172a3c6 Update static data to 1910538 2021-06-11 21:26:46 +03:00
Anton Vorobyov
8a2bfb48ce Merge pull request #2339 from pyfa-org/crowdin_master
New Crowdin updates
2021-06-11 21:08:04 +03:00
DarkPhoenix
b42254cb61 Avoid crashes on ctrl-backspace in notes view 2021-06-11 21:04:59 +03:00
DarkPhoenix
91fbcd4eb4 Fix bastion rof bonus 2021-06-11 20:58:17 +03:00
DarkPhoenix
bdc52da05d Remove travis configuration 2021-06-11 20:34:01 +03:00
DarkPhoenix
2bbe17722b Refresh deployment tokens 2021-06-09 13:57:03 +03:00
DarkPhoenix
3ef07b9153 Upload artifacts on tags to github 2021-06-08 22:47:00 +03:00
DarkPhoenix
5af904ca18 Split build process into multiple stages 2021-06-08 21:07:11 +03:00
DarkPhoenix
d3cdc67472 Update path to macos build 2021-06-08 21:01:38 +03:00
DarkPhoenix
0991124d5f Store package as an appveyor artifact 2021-06-08 20:55:10 +03:00
DarkPhoenix
83ea548c4d Try python 3.7
This is the version we used on Travis
2021-06-08 20:43:09 +03:00
DarkPhoenix
4752eee09d Fix venv path 2021-06-08 20:36:47 +03:00
DarkPhoenix
53d2d1fabe Activate python 3.8 2021-06-08 20:34:29 +03:00
DarkPhoenix
f600868eb2 Move sleep to init 2021-06-08 20:29:03 +03:00
DarkPhoenix
f6a489fa22 Add sleep to give some time to debug 2021-06-08 20:24:26 +03:00
DarkPhoenix
2962a89919 Enable macOS debugging 2021-06-08 20:19:50 +03:00
DarkPhoenix
c3d53f56a9 Preinstall pathlib on macOS 2021-06-08 19:46:43 +03:00
DarkPhoenix
3257abbeff Remove linking of gettext for macOS
Apprently, it's already linked on appveyor images
2021-06-08 19:36:48 +03:00
DarkPhoenix
5858d96deb Set python version to 3.8 for mac before building 2021-06-08 19:36:18 +03:00
DarkPhoenix
94d1eae464 Move macOS build scripts to appveyor configuration 2021-06-08 19:29:34 +03:00
DarkPhoenix
b7e2b782c9 Move all windows-specific code under windows section 2021-06-08 19:02:37 +03:00
DarkPhoenix
05e5958d36 Make PYTHON variable image-specific to test if it works 2021-06-08 18:54:07 +03:00
Anton Vorobyov
e9364fe65a New translations lang.pot (Russian) 2021-05-27 14:31:12 +03:00
Anton Vorobyov
b3b71896ae New translations lang.pot (Russian) 2021-05-26 14:22:49 +03:00
Anton Vorobyov
00d20f53d0 New translations lang.pot (Russian) 2021-05-19 21:03:26 +03:00
DarkPhoenix
88e4f7a77e Set SQLAlchemy version to last known working 2021-05-19 03:40:09 +03:00
DarkPhoenix
5763954f51 Fix bastion falloff bonus 2021-05-19 03:29:25 +03:00
DarkPhoenix
4fbfbcc84e Bump version 2021-05-19 03:12:20 +03:00
DarkPhoenix
1f2c20e95b Update icons 2021-05-19 03:11:13 +03:00
DarkPhoenix
d7aa744bc1 Do not activate WCS and nullifiers by default 2021-05-19 02:55:20 +03:00
DarkPhoenix
1117c786ff Add new nullifier/WCS effects 2021-05-19 02:52:29 +03:00
DarkPhoenix
6a715f6678 Update effects for metaliminal storms 2021-05-19 02:27:39 +03:00
DarkPhoenix
5e93235b02 Add jargon entries for SRS and wubble 2021-05-19 01:35:32 +03:00
DarkPhoenix
271b915ce6 Fix sig suppressor effect #2 2021-05-19 01:30:58 +03:00
DarkPhoenix
52667da64a Fix sig suppressor effect 2021-05-19 01:29:20 +03:00
DarkPhoenix
82f0fea1bf Run effectUsedBy script 2021-05-19 01:28:48 +03:00
DarkPhoenix
751823177b Update static data to 1903677 2021-05-19 01:19:49 +03:00
DarkPhoenix
ac7e8a1efa Fix msgformat 2021-05-19 00:40:29 +03:00
Anton Vorobyov
066a12e912 Merge pull request #2337 from pyfa-org/crowdin_master
New Crowdin updates
2021-05-19 00:23:35 +03:00
Anton Vorobyov
ea64657fba New translations lang.pot (Chinese Simplified) 2021-05-18 20:34:57 +03:00
Anton Vorobyov
17b94001e0 New translations lang.pot (Turkish) 2021-05-18 20:34:56 +03:00
Anton Vorobyov
cc481f9f29 New translations lang.pot (Russian) 2021-05-18 20:34:55 +03:00
Anton Vorobyov
f73bb14990 New translations lang.pot (Korean) 2021-05-18 20:34:53 +03:00
Anton Vorobyov
a5ed992cd2 New translations lang.pot (Japanese) 2021-05-18 20:34:52 +03:00
Anton Vorobyov
f7e792411a New translations lang.pot (Italian) 2021-05-18 20:34:51 +03:00
Anton Vorobyov
fc71d7b706 New translations lang.pot (Spanish) 2021-05-18 20:34:50 +03:00
Anton Vorobyov
162055d5ce New translations lang.pot (French) 2021-05-18 20:34:48 +03:00
DarkPhoenix
5cc87a439f Merge branch 'i18n' 2021-05-12 22:39:41 +03:00
Anton Vorobyov
d2d3a42adf Merge pull request #2331 from pyfa-org/crowdin_l10n
New Crowdin updates
2021-05-12 22:38:37 +03:00
Ryan Holmes
e43cb74906 New translations lang.pot (Korean) 2021-04-07 20:23:31 -04:00
DarkPhoenix
ace00d495a Add stacking penalty for bastion missile range bonus 2021-03-27 19:40:34 +03:00
DarkPhoenix
729b39e351 Define backref for boosters manually 2021-03-27 19:37:11 +03:00
DarkPhoenix
5ae1e64a76 Revert "Remove backref to owner since it seems to be unused, but it crashed attempts to remove items which have been removed from static data"
This reverts commit 8ee900a90e.
2021-03-27 18:51:15 +03:00
DarkPhoenix
88a9ce03ba Merge branch 'i18n' 2021-03-26 17:18:22 +03:00
Anton Vorobyov
cbd3d8cc1b Merge pull request #2319 from pyfa-org/crowdin_l10n
New Crowdin updates
2021-03-26 17:17:06 +03:00
Anton Vorobyov
65a126b4c5 Merge pull request #2312 from sajuukthanatoskhar/EFS_Information_Export_add_on
Adding more information to EFS Export
2021-03-25 15:47:56 +03:00
DarkPhoenix
241c744d40 Fixed stacking penalization of heat rof bonus 2021-03-25 15:37:09 +03:00
DarkPhoenix
8ee900a90e Remove backref to owner since it seems to be unused, but it crashed attempts to remove items which have been removed from static data 2021-03-25 15:13:18 +03:00
DarkPhoenix
1c415fbe06 Mark objects dirty so that they get removed, instead of setting their item ID to 0 2021-03-25 15:06:28 +03:00
DarkPhoenix
304aebbccf Update static data to 1889623 2021-03-25 14:31:41 +03:00
DarkPhoenix
18d9f6a542 Fix repr for boosters with no item 2021-03-25 13:52:40 +03:00
DarkPhoenix
cdc6e046b0 Fix #2308 2021-03-25 13:15:48 +03:00
DarkPhoenix
59bb9670b6 Multiple fixes related to sig suppressor 2021-03-25 12:49:50 +03:00
DarkPhoenix
9321a78a61 Update effects 2021-03-25 12:35:40 +03:00
DarkPhoenix
53191714f2 Exclude TSB from list of projectable mods for EFS purposes 2021-03-24 17:47:54 +03:00
DarkPhoenix
b17347156c Update static data to 1888542 2021-03-24 17:40:26 +03:00
DarkPhoenix
66ace06194 Run effect used by script 2021-03-23 18:44:06 +03:00
DarkPhoenix
e8697c6131 Update static data to 1888542 2021-03-23 18:38:26 +03:00
Ryan Holmes
7a6e87330d New translations lang.pot (Russian) 2021-03-02 10:09:27 -05:00
Ryan Holmes
2acf92160e New translations lang.pot (Russian) 2021-03-02 09:11:19 -05:00
DarkPhoenix
6e49f6fd7a Bump version 2021-02-23 21:34:06 +03:00
DarkPhoenix
6e56230a0e Update staticdata to 1878176 2021-02-23 21:28:30 +03:00
DarkPhoenix
01282d103a Add extraction filaments as well 2021-02-20 21:24:11 +03:00
DarkPhoenix
a0317d5b3c Bump version 2021-02-20 20:23:04 +03:00
DarkPhoenix
a697c1890a Adjust effects 2021-02-20 20:22:44 +03:00
DarkPhoenix
aaf719437f Update static data to 1877575 2021-02-20 20:09:24 +03:00
DarkPhoenix
3d6e703b7c Trigger travis builds only on tags 2021-02-19 21:17:34 +03:00
DarkPhoenix
ce26b22752 Add filament market group 2021-02-19 20:44:57 +03:00
DarkPhoenix
6b30b2859e Allow adding items to cargo via double-click 2021-02-19 20:39:10 +03:00
DarkPhoenix
961258618a Make filaments searchable 2021-02-19 20:36:11 +03:00
DarkPhoenix
f07684875f Use proper attribute for missiles 2021-02-19 10:37:52 +03:00
DarkPhoenix
538954f4a6 Fix vargur damage bonus 2021-02-19 02:16:57 +03:00
DarkPhoenix
30e73ed795 Fix bastion stacking penalties on RoF 2021-02-18 23:38:24 +03:00
DarkPhoenix
d216eb3e55 Bump version 2021-02-18 22:15:00 +03:00
DarkPhoenix
c25fa0f632 Update bastion effect 2021-02-18 22:11:51 +03:00
DarkPhoenix
8a115be0bd Update effect uses 2021-02-18 21:03:53 +03:00
DarkPhoenix
b897ee5146 Update static data to 1876339 2021-02-18 20:41:40 +03:00
Ryan Holmes
7b3bda5816 New translations lang.pot (Korean) 2021-01-27 11:06:59 -05:00
Ryan Holmes
f62e16288d New translations lang.pot (Korean) 2021-01-27 09:54:33 -05:00
Ryan Holmes
9aad8860a9 New translations lang.pot (Korean) 2021-01-26 23:57:54 -05:00
Ryan Holmes
f8dd1f27a9 New translations lang.pot (Korean) 2021-01-26 22:46:04 -05:00
DarkPhoenix
09bc2da863 Limit subwarp speed to 100 for warp considerations 2021-01-26 00:33:43 +03:00
Ryan Holmes
f531c144af New translations lang.pot (Chinese Simplified) 2021-01-23 21:52:34 -05:00
Gareth Williams
dfd08fa8e2 MOD: EFS Export Version Number to 0.05
ADD: OptimalSignatureRadius is now exported with each *turret*
2021-01-23 17:55:00 +01:00
Gareth Williams
e430848be9 ADD: Added the ability for EFS exports to contain the following information: shieldrecharge rate, inertia, energy|neutraliser Resistance 2021-01-09 22:34:29 +01:00
Anton Vorobyov
2d645b8f91 Merge pull request #2301 from pyfa-org/i18n
I18n
2020-12-08 20:00:30 +03:00
DarkPhoenix
e33cb80608 Bump version 2020-12-08 19:56:43 +03:00
Anton Vorobyov
fcc8c3eeb9 Merge pull request #2300 from pyfa-org/crowdin_l10n
New Crowdin updates
2020-12-08 19:51:37 +03:00
DarkPhoenix
c29d567255 Change default jargon definitions for missile types, they now include launchers as well 2020-12-08 19:46:13 +03:00
DarkPhoenix
e85b618cbc Add set of hacks to rename caustic to tachyon 2020-12-08 19:40:48 +03:00
DarkPhoenix
008b6a887d Rename Caustic to Tachyon 2020-12-08 19:30:21 +03:00
DarkPhoenix
05ab2d47c7 Fix error handler in a situation when gamedata metadata is not available 2020-12-08 19:16:05 +03:00
DarkPhoenix
75b611c94a Fix salvaging spec effect 2020-12-08 18:01:57 +03:00
Ryan Holmes
356d594637 New translations lang.pot (French) 2020-12-08 09:14:01 -05:00
Ryan Holmes
03f4bc1d75 New translations lang.pot (French) 2020-12-08 08:13:23 -05:00
DarkPhoenix
226c5d7fad Update static data to 1860847 2020-12-08 15:09:51 +03:00
DarkPhoenix
0c3998b640 Add new effects 2020-12-05 16:39:58 +03:00
DarkPhoenix
942f9a35ee Update static data to 1859379 2020-12-05 14:27:19 +03:00
DarkPhoenix
031a3c2d3e Fix IDs of new damage patterns 2020-11-27 18:03:18 +03:00
DarkPhoenix
ed7df2f1a7 Bump version 2020-11-26 15:57:15 +03:00
DarkPhoenix
fb2ad2cc10 Update static data to 1853874 2020-11-26 15:56:40 +03:00
DarkPhoenix
34bce4e083 Bump version 2020-11-24 14:56:39 +03:00
DarkPhoenix
fc45b43295 Update static data to 1852074 2020-11-24 14:53:32 +03:00
DarkPhoenix
4160b08388 Fix mining preservation charge 2020-11-24 13:08:25 +03:00
DarkPhoenix
95c25b274c Add logging to help with no localization debugging 2020-11-24 13:01:52 +03:00
357 changed files with 98392 additions and 32398 deletions

View File

@@ -1,96 +1,129 @@
image: Visual Studio 2019
image:
- Visual Studio 2019
- macos
clone_depth: 400
environment:
matrix:
- PYTHON: "C:\\Python37-x64"
# Should be enabled only for build process debugging
# init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
install:
- ps: echo("OS version:")
- ps: "[System.Environment]::OSVersion.Version"
for:
-
matrix:
only:
- image: Visual Studio 2019
environment:
PYTHON: "C:\\Python37-x64"
# Should be enabled only for build process debugging
# init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
install:
- ps: echo("OS version:")
- ps: "[System.Environment]::OSVersion.Version"
- ps: echo("Filesystem - root:")
- ps: "ls \"C:\\\""
- ps: echo("Filesystem - root:")
- ps: "ls \"C:\\\""
- ps: echo("Filesystem - projects root:")
- ps: "ls \"C:\\projects\\\""
- ps: echo("Filesystem - projects root:")
- ps: "ls \"C:\\projects\\\""
- ps: echo("Filesystem - pyfa root:")
- ps: "ls \"C:\\projects\\$env:APPVEYOR_PROJECT_SLUG\\\""
- ps: echo("Filesystem - pyfa root:")
- ps: "ls \"C:\\projects\\$env:APPVEYOR_PROJECT_SLUG\\\""
- ps: echo("Filesystem - installed SDKs:")
- ps: "ls \"C:\\Program Files (x86)\\Windows Kits\\\""
- ps: echo("Filesystem - installed SDKs:")
- ps: "ls \"C:\\Program Files (x86)\\Windows Kits\\\""
# Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
- cmd: "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- cmd: "appveyor DownloadFile https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.20.2-v1.16/gettext0.20.2-iconv1.16-shared-64.zip"
- cmd: "7z x gettext0.20.2-iconv1.16-shared-64.zip -ogettext"
- cmd: "SET PATH=gettext;%PATH%"
# Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
- cmd: "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- cmd: "appveyor DownloadFile https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.20.2-v1.16/gettext0.20.2-iconv1.16-shared-64.zip"
- cmd: "7z x gettext0.20.2-iconv1.16-shared-64.zip -ogettext"
- cmd: "SET PATH=gettext;%PATH%"
- cmd: "python --version"
- cmd: "python -c \"import struct; print(struct.calcsize('P') * 8)\""
- cmd: "python --version"
- cmd: "python -c \"import struct; print(struct.calcsize('P') * 8)\""
# Upgrade to the latest version of pip to avoid it displaying warnings
# about it being out of date.
- cmd: "python -m pip install --upgrade pip"
# Upgrade to the latest version of pip to avoid it displaying warnings
# about it being out of date.
- cmd: "python -m pip install --upgrade pip"
# Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the
# target Python version and architecture
- ps: echo("Install pip requirements:")
# This one is needed to build wxpython 4.0.6 on windows
- cmd: "python -m pip install pathlib2"
- cmd: "python -m pip install -r requirements.txt"
- cmd: "python -m pip install PyInstaller==3.6"
before_build:
# directory that will contain the built files
- ps: $env:PYFA_DIST_DIR = "c:\projects\$env:APPVEYOR_PROJECT_SLUG\dist"
- ps: $env:PYFA_VERSION = (python ./scripts/dump_version.py)
- ps: echo("pyfa version $env:PYFA_VERSION")
build_script:
- ps: echo("Build pyfa:")
- ps: Get-ChildItem locale/*.po -Recurse -File| Foreach {msgen $_.fullname -o $_.fullname}
# Build language files
- cmd: "python scripts/compile_lang.py"
# Dump language progress
- cmd: "python scripts/dump_crowdin_progress.py"
# Build gamedata DB
- cmd: "python db_update.py"
# Build command for PyInstaller
- cmd: "python -m PyInstaller --noupx --clean --windowed --noconsole -y pyfa.spec"
# Copy over manifest (See pyfa-org/pyfa#1622)
- ps: xcopy /y dist_assets\win\pyfa.exe.manifest $env:PYFA_DIST_DIR\pyfa\
# InnoScript EXE building. This is in a separate script because I don't feel like copying over the logic to AppVeyor script right now...
- cmd: "python dist_assets/win/dist.py"
- ps: dir $env:PYFA_DIST_DIR/
after_build:
- ps: "ls \"./\""
- ps: 7z a "pyfa-$env:PYFA_VERSION-win.zip" -r "$env:PYFA_DIST_DIR\pyfa\*"
test_script:
# Ha... we're just building
artifacts:
- path: pyfa*-win.zip
- path: pyfa*-win.exe
deploy:
tag: $(pyfa_version)
release: pyfa $(pyfa_version)
description: 'Release description'
provider: GitHub
auth_token:
secure: X+U3hOAMTt7HGXCR/LXaGNF6qyhUXetrjz5+xlWiNJQ3XEdzhZZmHK75m0Hm6qre
draft: true
force_update: false
# deploy on tag push only
on:
APPVEYOR_REPO_TAG: true
# Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the
# target Python version and architecture
- ps: echo("Install pip requirements:")
# This one is needed to build wxpython 4.0.6 on windows
- cmd: "python -m pip install pathlib2"
- cmd: "python -m pip install -r requirements.txt"
- cmd: "python -m pip install PyInstaller==3.6"
before_build:
# directory that will contain the built files
- ps: $env:PYFA_DIST_DIR = "c:\projects\$env:APPVEYOR_PROJECT_SLUG\dist"
- ps: $env:PYFA_VERSION = (python ./scripts/dump_version.py)
- ps: echo("pyfa version $env:PYFA_VERSION")
build_script:
- ps: echo("Build pyfa:")
- ps: Get-ChildItem locale/*.po -Recurse -File| Foreach {msgen $_.fullname -o $_.fullname}
# Build language files
- cmd: "python scripts/compile_lang.py"
# Dump language progress
- cmd: "python scripts/dump_crowdin_progress.py"
# Build gamedata DB
- cmd: "python db_update.py"
# Build command for PyInstaller
- cmd: "python -m PyInstaller --noupx --clean --windowed --noconsole -y pyfa.spec"
# Copy over manifest (See pyfa-org/pyfa#1622)
- ps: xcopy /y dist_assets\win\pyfa.exe.manifest $env:PYFA_DIST_DIR\pyfa\
# InnoScript EXE building. This is in a separate script because I don't feel like copying over the logic to AppVeyor script right now...
- cmd: "python dist_assets/win/dist.py"
- ps: dir $env:PYFA_DIST_DIR/
after_build:
- ps: "ls \"./\""
- ps: 7z a "pyfa-$env:PYFA_VERSION-win.zip" -r "$env:PYFA_DIST_DIR\pyfa\*"
artifacts:
- path: pyfa*-win.zip
- path: pyfa*-win.exe
deploy:
tag: $(pyfa_version)
release: pyfa $(pyfa_version)
description: 'Release description'
provider: GitHub
auth_token:
secure: M94o0xMtzxrvlKpqMcXU2KfbJdd3aYJ3UxWzePUz/pkT1/Ojiis052CiLsLVyzJg
draft: true
force_update: false
# deploy on tag push only
on:
APPVEYOR_REPO_TAG: true
-
matrix:
only:
- image: macos
# Should be enabled only for build process debugging
init:
# - sh: curl -sflL 'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-ssh.sh' | bash -e -
- sh: source ~/venv3.7/bin/activate
install:
- sh: bash scripts/osx-setup.sh
build_script:
- sh: bash scripts/osx-translations.sh
- sh: python3 scripts/compile_lang.py
- sh: python3 scripts/dump_crowdin_progress.py
- sh: python3 db_update.py
after_build:
- sh: export PYFA_VERSION="$(python3 scripts/dump_version.py)"
- sh: bash scripts/osx-package.sh
artifacts:
- path: dist/pyfa*-mac.zip
before_deploy:
- sh: export RELEASE_PKG_FILE=$(ls *.deb)
- sh: echo "deploying $RELEASE_PKG_FILE to GitHub releases"
deploy:
tag: $PYFA_VERSION
release: pyfa $PYFA_VERSION
description: 'Release description'
provider: GitHub
auth_token:
secure: M94o0xMtzxrvlKpqMcXU2KfbJdd3aYJ3UxWzePUz/pkT1/Ojiis052CiLsLVyzJg
draft: true
force_update: false
# deploy on tag push only
on:
APPVEYOR_REPO_TAG: true

View File

@@ -1,34 +0,0 @@
os: linux
language: python
git:
depth: 400
python:
- 3.8
matrix:
include:
- os: osx
osx_image: xcode11.3
language: generic
before_install:
- bash scripts/osx-translations.sh
- bash scripts/osx-setup.sh
install:
- python3 scripts/compile_lang.py
- python3 scripts/dump_crowdin_progress.py
- python3 db_update.py
- export PYFA_VERSION="$(python3 scripts/dump_version.py)"
- bash scripts/osx-package.sh
before_deploy:
- export RELEASE_PKG_FILE=$(ls *.deb)
- echo "deploying $RELEASE_PKG_FILE to GitHub releases"
deploy:
provider: releases
api_key:
secure: D8tBW0kyHlKf/sXS69aIuexsYTx9auY2DzudKFlfcvdzqat4N2XZqZbZCTVd7YVvptQ8Dj0oZ/p3KUxEGpnJZmlTeJL142rpM/qaNd6wOIMy2yUde/aZl+W9JLFNQp7KHutM+MxObYLzJGihx/8YsupmFx6lxgdngGDXtXYZe/ruDIWDs92ShoKJ4vlce9Csm7eGKv7wv6Z6V9sD5FS3E9J8xdWStHxsbrkPBOflmG+uHU09dpEqzUm+ZYROIoTwig1Xbw3fw+gfjmNrfdSU4fAJcVZI1hrgoenZyJbMfhI2Ej/nZdbZgaXcZNF/eUpqOGgbPe1JljqFnHTbexcE+LPBVyAToScsGMpByHhig67DrZ0nk9gSZoC6CPNl5YS6xub+5dncMJ3P5L03DOGYRu4SL9NczbeuQyKuea7+JPP/8VLwfFDSEqbNEAmgzABAzrdfano+VXtuBuE/Tiy5eE7le9hJu6aSQoKW1SA3cUhMsmr2amzdO96sh+PN8FA1oNr45Yuy0pqOj4SUIkb8JUy4th7vgdhljEkSxrHDK1UcHpxUTp+IIUZkZVVk50aH68dQZxGwSTVOeRxpjrTcEf7VCGaM98qxi/ZK4RW6Ewiq0eo0AxwEeB2Zm841lycGPR/406vM9/ZBzv5IhELIdDdVWTk+dGjJBXB8z5hPJOg=
file_glob: true
file: "dist/pyfa-*.zip"
skip_cleanup: true
draft: true
on:
tags: true
repo: pyfa-org/Pyfa

View File

@@ -142,7 +142,18 @@ def update_db():
):
row['published'] = True
# Nearly useless and clutter search results too much
elif row['typeName_en-us'].startswith('Limited Synth '):
elif (
row['typeName_en-us'].startswith('Limited Synth ') or
row['typeName_en-us'].endswith(' Filament') and (
"'Needlejack'" not in row['typeName_en-us'] and
"'Devana'" not in row['typeName_en-us'] and
"'Pochven'" not in row['typeName_en-us'] and
"'Extraction'" not in row['typeName_en-us'] and
"'Krai Veles'" not in row['typeName_en-us'] and
"'Krai Perun'" not in row['typeName_en-us'] and
"'Krai Svarog'" not in row['typeName_en-us']
)
):
row['published'] = False
newData = []

View File

@@ -24,11 +24,12 @@ import datetime
from eos.db import saveddata_meta
from eos.saveddata.booster import Booster
from eos.saveddata.boosterSideEffect import BoosterSideEffect
from eos.saveddata.fit import Fit
boosters_table = Table("boosters", saveddata_meta,
Column("ID", Integer, primary_key=True),
Column("itemID", Integer),
Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False),
Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False, index=True),
Column("active", Boolean),
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now),
@@ -44,6 +45,7 @@ booster_side_effect_table = Table("boosterSideEffects", saveddata_meta,
mapper(Booster, boosters_table,
properties={
"owner": relation(Fit),
"_Booster__sideEffects": relation(
BoosterSideEffect,
backref="booster",

View File

@@ -191,7 +191,6 @@ mapper(es_Fit, fits_table,
Booster,
collection_class=HandledBoosterList,
cascade='all, delete, delete-orphan',
backref='owner',
single_parent=True),
"_Fit__drones": relation(
Drone,

View File

@@ -19,6 +19,7 @@
from logbook import Logger
from sqlalchemy.orm.attributes import flag_dirty
from sqlalchemy.orm.collections import collection
@@ -108,10 +109,7 @@ class HandledList(list):
def remove(self, thing):
# We must flag it as modified, otherwise it not be removed from the database
# @todo: flag_modified isn't in os x skel. need to rebuild to include
# flag_modified(thing, "itemID")
if thing.isInvalid: # see GH issue #324
thing.itemID = 0
flag_dirty(thing)
list.remove(self, thing)
def sort(self, *args, **kwargs):

File diff suppressed because it is too large Load Diff

View File

@@ -19,7 +19,7 @@
import json
from collections import OrderedDict
import re
from logbook import Logger
from sqlalchemy.orm import reconstructor
@@ -33,6 +33,10 @@ from .eqBase import EqBase
pyfalog = Logger(__name__)
def _t(x):
return x
class Effect(EqBase):
"""
The effect handling class, it is used to proxy and load effect handler code,
@@ -245,6 +249,10 @@ class Item(EqBase):
pass
return shortName
@property
def customName(self):
return re.sub(_t('Caustic'), _t('Tachyon'), self.name)
@property
def attributes(self):
return self.__attributes
@@ -481,6 +489,10 @@ class Item(EqBase):
def isCharge(self):
return self.category.name == 'Charge'
@property
def isCommodity(self):
return self.category.name == 'Commodity'
@property
def isDrone(self):
return self.category.name == 'Drone'

View File

@@ -159,6 +159,6 @@ class Booster(HandledItem, ItemAttrShortcut):
sideEffect.active = sideEffectStates[sideEffect.effectID]
def __repr__(self):
return "Booster(ID={}, name={}) at {}".format(
self.item.ID, self.item.name, hex(id(self))
)
if self.item is not None:
return f"Booster(ID={self.item.ID}, name={self.item.name}) at {hex(id(self))}"
return f"Booster(ID={self.itemID}) at {hex(id(self))}"

View File

@@ -146,6 +146,9 @@ BUILTINS = OrderedDict([
(-94, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Gallente EDENCOM Entities')) + _t('Dread/Subcaps'), 0, 417, 583, 0)),
(-95, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Minmatar EDENCOM Entities')) + _t('Dread'), 0, 0, 583, 417)),
(-96, (_c(_t('NPC')) + _c(_t('Invasion')) + _c(_t('Minmatar EDENCOM Entities')) + _t('Subcaps'), 302, 136, 328, 234)),
(-110, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Drifter Entities'), 250, 250, 250, 250)),
(-112, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Sleeper Entities'), 265, 265, 235, 235)),
(-111, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Rogue Drone Entities'), 250, 250, 250, 250)),
(-97, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Amarr Empire'), 4464, 3546, 97, 0)),
(-98, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Caldari State'), 0, 2139, 4867, 0)),
(-99, (_c(_t('NPC')) + _c(_t('Mission')) + _t('CONCORD'), 336, 134, 212, 412)),
@@ -155,10 +158,7 @@ BUILTINS = OrderedDict([
(-103, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Mordus Legion'), 25, 262, 625, 0)),
(-104, (_c(_t('NPC')) + _c(_t('Mission')) + _t('Thukker'), 0, 52, 10, 79)),
(-105, (_c(_t('NPC')) + _t('Sansha Incursion'), 1682, 1347, 3678, 3678)),
(-106, (_c(_t('NPC')) + _t('Sleepers'), 1472, 1472, 1384, 1384)),
(-107, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Drifter Entities'), 250, 250, 250, 250)),
(-108, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Rogue Drone Entities'), 250, 250, 250, 250)),
(-109, (_c(_t('NPC')) + _c(_t('Invasion')) + _t('Sleeper Entities'), 265, 265, 235, 235))])
(-106, (_c(_t('NPC')) + _t('Sleepers'), 1472, 1472, 1384, 1384))])
class DamagePattern:

View File

@@ -111,7 +111,7 @@ class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
if self.hasAmmo:
cycleTime = self.getModifiedItemAttr("missileLaunchDuration", 0)
else:
for attr in ("speed", "duration"):
for attr in ("speed", "duration", "durationHighisGood"):
cycleTime = self.getModifiedItemAttr(attr, None)
if cycleTime is not None:
break

View File

@@ -682,8 +682,8 @@ class Fit:
"duration", value, stackingPenalties=True)
if warfareBuffID == 25: # Mining Burst: Mining Equipment Preservation: Crystal Volatility
self.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Mining"),
"crystalVolatilityChance", value, stackingPenalties=True)
self.modules.filteredChargeBoost(lambda mod: mod.item.requiresSkill("Mining"),
"crystalVolatilityChance", value, stackingPenalties=True)
if warfareBuffID == 26: # Information Burst: Sensor Optimization: Targeting Range
self.ship.boostItemAttr("maxTargetRange", value, stackingPenalties=True)

View File

@@ -23,7 +23,6 @@ from eos.modifiedAttributeDict import ModifiedAttributeDict, ItemAttrShortcut
class Mode(ItemAttrShortcut, HandledItem):
def __init__(self, item, owner=None):
if item.group.name != "Ship Modifiers":
raise ValueError(
@@ -34,7 +33,6 @@ class Mode(ItemAttrShortcut, HandledItem):
self.__itemModifiedAttributes.original = self.item.attributes
self.__itemModifiedAttributes.overrides = self.item.overrides
@property
def item(self):
return self.__item

View File

@@ -539,7 +539,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
return DmgTypes(0, 0, 0, 0)
return volleyParams[min(volleyParams)]
def getDps(self, spoolOptions=None, targetProfile=None, ignoreState=False):
def getDps(self, spoolOptions=None, targetProfile=None, ignoreState=False, getSpreadDPS=False):
dmgDuringCycle = DmgTypes(0, 0, 0, 0)
cycleParams = self.getCycleParameters()
if cycleParams is None:
@@ -556,7 +556,12 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
thermal=dmgDuringCycle.thermal * dpsFactor,
kinetic=dmgDuringCycle.kinetic * dpsFactor,
explosive=dmgDuringCycle.explosive * dpsFactor)
return dps
if not getSpreadDPS:
return dps
return {'em':dmgDuringCycle.em * dpsFactor,
'therm': dmgDuringCycle.thermal * dpsFactor,
'kin': dmgDuringCycle.kinetic * dpsFactor,
'exp': dmgDuringCycle.explosive * dpsFactor}
def isRemoteRepping(self, ignoreState=False):
repParams = self.getRepAmountParameters(ignoreState=ignoreState)
@@ -1021,6 +1026,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut):
speed = max(
self.getModifiedItemAttr("speed", 0), # Most weapons
self.getModifiedItemAttr("duration", 0), # Most average modules
self.getModifiedItemAttr("durationHighisGood", 0), # Most average modules
self.getModifiedItemAttr("durationSensorDampeningBurstProjector", 0),
self.getModifiedItemAttr("durationTargetIlluminationBurstProjector", 0),
self.getModifiedItemAttr("durationECMJammerBurstProjector", 0),

View File

@@ -55,7 +55,7 @@ def calculate_time_in_warp(max_warp_speed, max_subwarp_speed, warp_dist):
k_accel = max_warp_speed
k_decel = min(max_warp_speed / 3, 2)
warp_dropout_speed = max_subwarp_speed / 2
warp_dropout_speed = min(max_subwarp_speed / 2, 100)
max_ms_warp_speed = max_warp_speed * AU_METERS
accel_dist = AU_METERS

View File

@@ -70,7 +70,7 @@ class CargoView(d.Display):
def addItem(self, event):
item = Market.getInstance().getItem(event.itemID, eager='group')
if item is None or not item.isCharge:
if item is None or not (item.isCharge or item.isCommodity):
event.Skip()
return

View File

@@ -26,7 +26,12 @@ class NotesView(wx.Panel):
def OnKeyDown(self, event):
if event.RawControlDown() and event.GetKeyCode() == wx.WXK_BACK:
HandleCtrlBackspace(self.editNotes)
try:
HandleCtrlBackspace(self.editNotes)
except (KeyboardInterrupt, SystemExit):
raise
except:
pass
else:
event.Skip()

View File

@@ -206,16 +206,16 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
for beacon in sMkt.getGroup("Abyssal Hazards").items:
if not beacon.isType('projected'):
continue
groups = (_t('Bioluminescence'), _t('Caustic'), _t('Filament'))
groups = (_t('Bioluminescence'), _t('Tachyon'), _t('Filament'))
for group in groups:
if re.search(group, beacon.name):
if re.search(group, beacon.customName):
key = group
break
else:
continue
subsubdata = subdata.groups.setdefault(key, Group())
subsubdata.items.append(Entry(beacon.ID, beacon.name, beacon.name))
subsubdata.items.append(Entry(beacon.ID, beacon.customName, beacon.customName))
subdata.sort()
# PVP weather

View File

@@ -107,17 +107,17 @@ class BaseName(ViewColumn):
elif isinstance(stuff, Module):
if self.projectedView:
# check for projected abyssal name
name_check = stuff.item.name[0:-2]
name_check = stuff.item.customName[0:-2]
type = AddEnvironmentEffect.abyssal_mapping.get(name_check, None)
if type:
sMkt = Market.getInstance()
type = sMkt.getItem(type)
return "{} {}".format(type.name, stuff.item.name[-1:])
return "{} {}".format(type.name, stuff.item.customName[-1:])
if stuff.isEmpty:
return "%s Slot" % FittingSlot(stuff.slot).name.capitalize()
else:
return stuff.item.name
return stuff.item.customName
elif isinstance(stuff, Implant):
return stuff.item.name
elif isinstance(stuff, TargetProfile):

View File

@@ -70,7 +70,13 @@ class ErrorFrame(AuxiliaryFrame):
from eos.config import gamedata_version, gamedata_date
time = datetime.datetime.fromtimestamp(int(gamedata_date)).strftime('%Y-%m-%d %H:%M:%S')
if gamedata_date:
try:
time = datetime.datetime.fromtimestamp(int(gamedata_date)).strftime('%Y-%m-%d %H:%M:%S')
except TypeError:
time = None
else:
time = None
version = "pyfa " + config.getVersion() + '\nEVE Data Version: {} ({})\n\n'.format(gamedata_version, time) # gui.aboutData.versionString
desc = _t("pyfa has experienced an unexpected issue. Below is a message that contains crucial \n"

View File

@@ -156,7 +156,7 @@ class EveFittings(AuxiliaryFrame):
data = json.loads(self.fitTree.fittingsTreeCtrl.GetItemData(selection))
with wx.MessageDialog(
self, _t("Do you really want to delete {} ({}) from EVE?").format((data['name'], getItem(data['ship_type_id']).name)),
self, _t("Do you really want to delete {} ({}) from EVE?").format(data['name'], getItem(data['ship_type_id']).name),
_t("Confirm Delete"), wx.YES | wx.NO | wx.ICON_QUESTION
) as dlg:
if dlg.ShowModal() == wx.ID_YES:

View File

@@ -325,7 +325,8 @@ def activeStateLimit(itemIdentity):
'cynosuralGeneration', 'jumpPortalGeneration', 'jumpPortalGenerationBO',
'cloneJumpAccepting', 'cloakingWarpSafe', 'cloakingPrototype', 'cloaking',
'massEntanglerEffect5', 'electronicAttributeModifyOnline', 'targetPassively',
'cargoScan', 'shipScan', 'surveyScan'
'cargoScan', 'shipScan', 'surveyScan', 'targetSpectrumBreakerBonus',
'interdictionNullifierBonus', 'warpCoreStabilizerActive'
}.intersection(item.effects):
return FittingModuleState.ONLINE
return FittingModuleState.ACTIVE

BIN
imgs/icons/1157@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

BIN
imgs/icons/1157@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
imgs/icons/1433@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

BIN
imgs/icons/1433@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
imgs/icons/21911@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

BIN
imgs/icons/21911@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
imgs/icons/21912@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 794 B

BIN
imgs/icons/21912@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
imgs/icons/21914@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

BIN
imgs/icons/21914@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 747 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

After

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 680 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 719 B

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 880 B

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 864 B

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 B

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 851 B

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 886 B

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 874 B

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 896 B

After

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 865 B

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 889 B

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 845 B

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 B

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

After

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
imgs/icons/24510@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 B

BIN
imgs/icons/24510@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/24530@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

BIN
imgs/icons/24530@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
imgs/icons/24531@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 B

BIN
imgs/icons/24531@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
imgs/icons/24532@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

BIN
imgs/icons/24532@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
imgs/icons/24543@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

BIN
imgs/icons/24543@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
imgs/icons/24547@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 B

BIN
imgs/icons/24547@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
imgs/icons/24562@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

BIN
imgs/icons/24562@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
imgs/icons/24563@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 736 B

BIN
imgs/icons/24563@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
imgs/icons/24564@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

BIN
imgs/icons/24564@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
imgs/icons/24565@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 862 B

BIN
imgs/icons/24565@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
imgs/icons/24578@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 837 B

BIN
imgs/icons/24578@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
imgs/icons/24579@1x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

BIN
imgs/icons/24579@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Some files were not shown because too many files have changed in this diff Show More