From ff790c8e4acc317070fea6af6d66b11c2ea4c8b3 Mon Sep 17 00:00:00 2001 From: Aaron Fischer Date: Mon, 24 Jun 2019 00:53:43 +0200 Subject: [PATCH] New home for the tools --- .gitignore | 71 +++ mobile-app/.metadata | 10 + mobile-app/README.md | 16 + mobile-app/android/app/build.gradle | 61 +++ .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 33 ++ .../com/example/toolheim/MainActivity.java | 13 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values/styles.xml | 8 + .../app/src/profile/AndroidManifest.xml | 7 + mobile-app/android/build.gradle | 29 + mobile-app/android/gradle.properties | 1 + .../gradle/wrapper/gradle-wrapper.properties | 6 + mobile-app/android/settings.gradle | 15 + mobile-app/ios/Flutter/AppFrameworkInfo.plist | 26 + mobile-app/ios/Flutter/Debug.xcconfig | 1 + mobile-app/ios/Flutter/Release.xcconfig | 1 + .../ios/Runner.xcodeproj/project.pbxproj | 506 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/xcschemes/Runner.xcscheme | 93 ++++ .../contents.xcworkspacedata | 7 + mobile-app/ios/Runner/AppDelegate.h | 6 + mobile-app/ios/Runner/AppDelegate.m | 13 + .../AppIcon.appiconset/Contents.json | 122 +++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 11112 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ .../ios/Runner/Base.lproj/Main.storyboard | 26 + mobile-app/ios/Runner/Info.plist | 45 ++ mobile-app/ios/Runner/main.m | 9 + mobile-app/lib/Warband.dart | 66 +++ mobile-app/lib/Warband.g.dart | 55 ++ mobile-app/lib/main.dart | 57 ++ mobile-app/pubspec.lock | 454 ++++++++++++++++ mobile-app/pubspec.yaml | 77 +++ mobile-app/test/widget_test.dart | 30 ++ pdf-exporter/.travis.yml | 34 ++ pdf-exporter/README.md | 20 + pdf-exporter/build.sh | 5 + pdf-exporter/examples/example.mordheim.yml | 39 ++ pdf-exporter/exporter/pdf.go | 478 +++++++++++++++++ pdf-exporter/go.mod | 9 + pdf-exporter/go.sum | 7 + pdf-exporter/images/campaign.png | Bin 0 -> 35182 bytes pdf-exporter/images/henchmen.png | Bin 0 -> 28702 bytes pdf-exporter/images/hero.png | Bin 0 -> 42707 bytes pdf-exporter/images/hiredsword_marker.png | Bin 0 -> 31137 bytes pdf-exporter/images/notes.png | Bin 0 -> 8707 bytes pdf-exporter/images/wb_stats.png | Bin 0 -> 88587 bytes pdf-exporter/main.go | 24 + pdf-exporter/parser/warband_yaml.go | 234 ++++++++ 74 files changed, 2805 insertions(+) create mode 100644 .gitignore create mode 100644 mobile-app/.metadata create mode 100644 mobile-app/README.md create mode 100644 mobile-app/android/app/build.gradle create mode 100644 mobile-app/android/app/src/debug/AndroidManifest.xml create mode 100644 mobile-app/android/app/src/main/AndroidManifest.xml create mode 100644 mobile-app/android/app/src/main/java/com/example/toolheim/MainActivity.java create mode 100644 mobile-app/android/app/src/main/res/drawable/launch_background.xml create mode 100644 mobile-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 mobile-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 mobile-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 mobile-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 mobile-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 mobile-app/android/app/src/main/res/values/styles.xml create mode 100644 mobile-app/android/app/src/profile/AndroidManifest.xml create mode 100644 mobile-app/android/build.gradle create mode 100644 mobile-app/android/gradle.properties create mode 100644 mobile-app/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 mobile-app/android/settings.gradle create mode 100644 mobile-app/ios/Flutter/AppFrameworkInfo.plist create mode 100644 mobile-app/ios/Flutter/Debug.xcconfig create mode 100644 mobile-app/ios/Flutter/Release.xcconfig create mode 100644 mobile-app/ios/Runner.xcodeproj/project.pbxproj create mode 100644 mobile-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 mobile-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 mobile-app/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 mobile-app/ios/Runner/AppDelegate.h create mode 100644 mobile-app/ios/Runner/AppDelegate.m create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 mobile-app/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 mobile-app/ios/Runner/Base.lproj/Main.storyboard create mode 100644 mobile-app/ios/Runner/Info.plist create mode 100644 mobile-app/ios/Runner/main.m create mode 100644 mobile-app/lib/Warband.dart create mode 100644 mobile-app/lib/Warband.g.dart create mode 100644 mobile-app/lib/main.dart create mode 100644 mobile-app/pubspec.lock create mode 100644 mobile-app/pubspec.yaml create mode 100644 mobile-app/test/widget_test.dart create mode 100644 pdf-exporter/.travis.yml create mode 100644 pdf-exporter/README.md create mode 100755 pdf-exporter/build.sh create mode 100644 pdf-exporter/examples/example.mordheim.yml create mode 100644 pdf-exporter/exporter/pdf.go create mode 100644 pdf-exporter/go.mod create mode 100644 pdf-exporter/go.sum create mode 100644 pdf-exporter/images/campaign.png create mode 100644 pdf-exporter/images/henchmen.png create mode 100644 pdf-exporter/images/hero.png create mode 100644 pdf-exporter/images/hiredsword_marker.png create mode 100644 pdf-exporter/images/notes.png create mode 100644 pdf-exporter/images/wb_stats.png create mode 100644 pdf-exporter/main.go create mode 100644 pdf-exporter/parser/warband_yaml.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7bc39e3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,71 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.packages +.pub-cache/ +.pub/ +/mobile-app/build/ + +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/mobile-app/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages + diff --git a/mobile-app/.metadata b/mobile-app/.metadata new file mode 100644 index 0000000..033ad2a --- /dev/null +++ b/mobile-app/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 7a4c33425ddd78c54aba07d86f3f9a4a0051769b + channel: stable + +project_type: app diff --git a/mobile-app/README.md b/mobile-app/README.md new file mode 100644 index 0000000..d7b5b86 --- /dev/null +++ b/mobile-app/README.md @@ -0,0 +1,16 @@ +# toolheim + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/mobile-app/android/app/build.gradle b/mobile-app/android/app/build.gradle new file mode 100644 index 0000000..84be705 --- /dev/null +++ b/mobile-app/android/app/build.gradle @@ -0,0 +1,61 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 28 + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.toolheim" + minSdkVersion 16 + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' +} diff --git a/mobile-app/android/app/src/debug/AndroidManifest.xml b/mobile-app/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..b71dd91 --- /dev/null +++ b/mobile-app/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/mobile-app/android/app/src/main/AndroidManifest.xml b/mobile-app/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..75b49df --- /dev/null +++ b/mobile-app/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/mobile-app/android/app/src/main/java/com/example/toolheim/MainActivity.java b/mobile-app/android/app/src/main/java/com/example/toolheim/MainActivity.java new file mode 100644 index 0000000..95276bd --- /dev/null +++ b/mobile-app/android/app/src/main/java/com/example/toolheim/MainActivity.java @@ -0,0 +1,13 @@ +package com.example.toolheim; + +import android.os.Bundle; +import io.flutter.app.FlutterActivity; +import io.flutter.plugins.GeneratedPluginRegistrant; + +public class MainActivity extends FlutterActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + GeneratedPluginRegistrant.registerWith(this); + } +} diff --git a/mobile-app/android/app/src/main/res/drawable/launch_background.xml b/mobile-app/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/mobile-app/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/mobile-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/mobile-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/mobile-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/mobile-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/mobile-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/mobile-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/mobile-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/mobile-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/mobile-app/android/app/src/main/res/values/styles.xml b/mobile-app/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..00fa441 --- /dev/null +++ b/mobile-app/android/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + diff --git a/mobile-app/android/app/src/profile/AndroidManifest.xml b/mobile-app/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..b71dd91 --- /dev/null +++ b/mobile-app/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/mobile-app/android/build.gradle b/mobile-app/android/build.gradle new file mode 100644 index 0000000..bb8a303 --- /dev/null +++ b/mobile-app/android/build.gradle @@ -0,0 +1,29 @@ +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.2.1' + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/mobile-app/android/gradle.properties b/mobile-app/android/gradle.properties new file mode 100644 index 0000000..8bd86f6 --- /dev/null +++ b/mobile-app/android/gradle.properties @@ -0,0 +1 @@ +org.gradle.jvmargs=-Xmx1536M diff --git a/mobile-app/android/gradle/wrapper/gradle-wrapper.properties b/mobile-app/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..2819f02 --- /dev/null +++ b/mobile-app/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip diff --git a/mobile-app/android/settings.gradle b/mobile-app/android/settings.gradle new file mode 100644 index 0000000..5a2f14f --- /dev/null +++ b/mobile-app/android/settings.gradle @@ -0,0 +1,15 @@ +include ':app' + +def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + +def plugins = new Properties() +def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') +if (pluginsFile.exists()) { + pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } +} + +plugins.each { name, path -> + def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() + include ":$name" + project(":$name").projectDir = pluginDirectory +} diff --git a/mobile-app/ios/Flutter/AppFrameworkInfo.plist b/mobile-app/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9367d48 --- /dev/null +++ b/mobile-app/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/mobile-app/ios/Flutter/Debug.xcconfig b/mobile-app/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/mobile-app/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/mobile-app/ios/Flutter/Release.xcconfig b/mobile-app/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/mobile-app/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/mobile-app/ios/Runner.xcodeproj/project.pbxproj b/mobile-app/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..b2d222a --- /dev/null +++ b/mobile-app/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,506 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; + 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; + 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 9740EEB21CF90195004384FC /* Debug.xcconfig */; }; + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; + 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */, + 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146F21CF9000F007C117D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, + 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B80C3931E831B6300D905FE /* App.framework */, + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEBA1CF902C7004384FC /* Flutter.framework */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */, + 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 97C146F21CF9000F007C117D /* main.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0910; + ORGANIZATIONNAME = "The Chromium Authors"; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 9740EEB41CF90195004384FC /* Debug.xcconfig in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */, + 97C146F31CF9000F007C117D /* main.m in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = S8QB4VV633; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.toolheim; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.toolheim; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.toolheim; + PRODUCT_NAME = "$(TARGET_NAME)"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/mobile-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/mobile-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/mobile-app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/mobile-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/mobile-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..786d6aa --- /dev/null +++ b/mobile-app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-app/ios/Runner.xcworkspace/contents.xcworkspacedata b/mobile-app/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/mobile-app/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/mobile-app/ios/Runner/AppDelegate.h b/mobile-app/ios/Runner/AppDelegate.h new file mode 100644 index 0000000..36e21bb --- /dev/null +++ b/mobile-app/ios/Runner/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : FlutterAppDelegate + +@end diff --git a/mobile-app/ios/Runner/AppDelegate.m b/mobile-app/ios/Runner/AppDelegate.m new file mode 100644 index 0000000..59a72e9 --- /dev/null +++ b/mobile-app/ios/Runner/AppDelegate.m @@ -0,0 +1,13 @@ +#include "AppDelegate.h" +#include "GeneratedPluginRegistrant.h" + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + [GeneratedPluginRegistrant registerWithRegistry:self]; + // Override point for customization after application launch. + return [super application:application didFinishLaunchingWithOptions:launchOptions]; +} + +@end diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d43d11e66f4de3da27ed045ca4fe38ad8b48094 GIT binary patch literal 11112 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 P-1+_A+?hGkL;m(J7kc&K literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..28c6bf03016f6c994b70f38d1b7346e5831b531f GIT binary patch literal 564 zcmV-40?Yl0P)Px$?ny*JR5%f>l)FnDQ543{x%ZCiu33$Wg!pQFfT_}?5Q|_VSlIbLC`dpoMXL}9 zHfd9&47Mo(7D231gb+kjFxZHS4-m~7WurTH&doVX2KI5sU4v(sJ1@T9eCIKPjsqSr z)C01LsCxk=72-vXmX}CQD#BD;Cthymh&~=f$Q8nn0J<}ZrusBy4PvRNE}+1ceuj8u z0mW5k8fmgeLnTbWHGwfKA3@PdZxhn|PypR&^p?weGftrtCbjF#+zk_5BJh7;0`#Wr zgDpM_;Ax{jO##IrT`Oz;MvfwGfV$zD#c2xckpcXC6oou4ML~ezCc2EtnsQTB4tWNg z?4bkf;hG7IMfhgNI(FV5Gs4|*GyMTIY0$B=_*mso9Ityq$m^S>15>-?0(zQ<8Qy<_TjHE33(?_M8oaM zyc;NxzRVK@DL6RJnX%U^xW0Gpg(lXp(!uK1v0YgHjs^ZXSQ|m#lV7ip7{`C_J2TxPmfw%h$|%acrYHt)Re^PB%O&&=~a zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?DuHZf3iogk_%#9E|5S zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+ zX$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8 zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ! z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=O zx-7$a;U><*5L^!%xRlw)vAbh;sdlR||& ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#16c{ zJImlNL(npL!W|Gr_kxl1GVmF5&^$^YherS7+~q$p zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$ tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4 literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 zcmVjJBgitF5mAp-i>4+KS_oR{|13AP->1TD4=w)g|)JHOx|a2Wk1Va z!k)vP$UcQ#mdj%wNQoaJ!w>jv_6&JPyutpQps?s5dmDQ>`%?Bvj>o<%kYG!YW6H-z zu`g$@mp`;qDR!51QaS}|ZToSuAGcJ7$2HF0z`ln4t!#Yg46>;vGG9N9{V@9z#}6v* zfP?}r6b{*-C*)(S>NECI_E~{QYzN5SXRmVnP<=gzP+_Sp(Aza_hKlZ{C1D&l*(7IKXxQC1Z9#6wx}YrGcn~g%;icdw>T0Rf^w0{ z$_wn1J+C0@!jCV<%Go5LA45e{5gY9PvZp8uM$=1}XDI+9m7!A95L>q>>oe0$nC->i zeexUIvq%Uk<-$>DiDb?!In)lAmtuMWxvWlk`2>4lNuhSsjAf2*2tjT`y;@d}($o)S zn(+W&hJ1p0xy@oxP%AM15->wPLp{H!k)BdBD$toBpJh+crWdsNV)qsHaqLg2_s|Ih z`8E9z{E3sA!}5aKu?T!#enD(wLw?IT?k-yWVHZ8Akz4k5(TZJN^zZgm&zM28sfTD2BYJ|Fde3Xzh;;S` z=GXTnY4Xc)8nYoz6&vF;P7{xRF-{|2Xs5>a5)@BrnQ}I(_x7Cgpx#5&Td^4Q9_FnQ zX5so*;#8-J8#c$OlA&JyPp$LKUhC~-e~Ij!L%uSMu!-VZG7Hx-L{m2DVR2i=GR(_% zCVD!4N`I)&Q5S`?P&fQZ=4#Dgt_v2-DzkT}K(9gF0L(owe-Id$Rc2qZVLqI_M_DyO z9@LC#U28_LU{;wGZ&))}0R2P4MhajKCd^K#D+JJ&JIXZ_p#@+7J9A&P<0kdRujtQ_ zOy>3=C$kgi6$0pW06KaLz!21oOryKM3ZUOWqppndxfH}QpgjEJ`j7Tzn5bk6K&@RA?vl##y z$?V~1E(!wB5rH`>3nc&@)|#<1dN2cMzzm=PGhQ|Yppne(C-Vlt450IXc`J4R0W@I7 zd1e5uW6juvO%ni(WX7BsKx3MLngO7rHO;^R5I~0^nE^9^E_eYLgiR9&KnJ)pBbfno zSVnW$0R+&6jOOsZ82}nJ126+c|%svPo;TeUku<2G7%?$oft zyaO;tVo}(W)VsTUhq^XmFi#2z%-W9a{7mXn{uzivYQ_d6b7VJG{77naW(vHt-uhnY zVN#d!JTqVh(7r-lhtXVU6o})aZbDt_;&wJVGl2FKYFBFpU-#9U)z#(A%=IVnqytR$SY-sO( z($oNE09{D^@OuYPz&w~?9>Fl5`g9u&ecFGhqX=^#fmR=we0CJw+5xna*@oHnkahk+ z9aWeE3v|An+O5%?4fA&$Fgu~H_YmqR!yIU!bFCk4!#pAj%(lI(A5n)n@Id#M)O9Yx zJU9oKy{sRAIV3=5>(s8n{8ryJ!;ho}%pn6hZKTKbqk=&m=f*UnK$zW3YQP*)pw$O* zIfLA^!-bmBl6%d_n$#tP8Zd_(XdA*z*WH|E_yILwjtI~;jK#v-6jMl^?<%Y%`gvpwv&cFb$||^v4D&V=aNy?NGo620jL3VZnA%s zH~I|qPzB~e(;p;b^gJr7Ure#7?8%F0m4vzzPy^^(q4q1OdthF}Fi*RmVZN1OwTsAP zn9CZP`FazX3^kG(KodIZ=Kty8DLTy--UKfa1$6XugS zk%6v$Kmxt6U!YMx0JQ)0qX*{CXwZZk$vEROidEc7=J-1;peNat!vS<3P-FT5po>iE z!l3R+<`#x|+_hw!HjQGV=8!q|76y8L7N8gP3$%0kfush|u0uU^?dKBaeRSBUpOZ0c z62;D&Mdn2}N}xHRFTRI?zRv=>=AjHgH}`2k4WK=#AHB)UFrR-J87GgX*x5fL^W2#d z=(%K8-oZfMO=i{aWRDg=FX}UubM4eotRDcn;OR#{3q=*?3mE3_oJ-~prjhxh%PgQT zyn)Qozaq0@o&|LEgS{Ind4Swsr;b`u185hZPOBLL<`d2%^Yp1?oL)=jnLi;Zo0ZDliTtQ^b5SmfIMe{T==zZkbvn$KTQGlbG8w}s@M3TZnde;1Am46P3juKb zl9GU&3F=q`>j!`?SyH#r@O59%@aMX^rx}Nxe<>NqpUp5=lX1ojGDIR*-D^SDuvCKF z?3$xG(gVUsBERef_YjPFl^rU9EtD{pt z0CXwpN7BN3!8>hajGaTVk-wl=9rxmfWtIhC{mheHgStLi^+Nz12a?4r(fz)?3A%at zMlvQmL<2-R)-@G1wJ0^zQK%mR=r4d{Y3fHp){nWXUL#|CqXl(+v+qDh>FkF9`eWrW zfr^D%LNfOcTNvtx0JXR35J0~Jpi2#P3Q&80w+nqNfc}&G0A~*)lGHKv=^FE+b(37|)zL;KLF>oiGfb(?&1 zV3XRu!Sw>@quKiab%g6jun#oZ%!>V#A%+lNc?q>6+VvyAn=kf_6z^(TZUa4Eelh{{ zqFX-#dY(EV@7l$NE&kv9u9BR8&Ojd#ZGJ6l8_BW}^r?DIS_rU2(XaGOK z225E@kH5Opf+CgD^{y29jD4gHbGf{1MD6ggQ&%>UG4WyPh5q_tb`{@_34B?xfSO*| zZv8!)q;^o-bz`MuxXk*G^}(6)ACb@=Lfs`Hxoh>`Y0NE8QRQ!*p|SH@{r8=%RKd4p z+#Ty^-0kb=-H-O`nAA3_6>2z(D=~Tbs(n8LHxD0`R0_ATFqp-SdY3(bZ3;VUM?J=O zKCNsxsgt@|&nKMC=*+ZqmLHhX1KHbAJs{nGVMs6~TiF%Q)P@>!koa$%oS zjXa=!5>P`vC-a}ln!uH1ooeI&v?=?v7?1n~P(wZ~0>xWxd_Aw;+}9#eULM7M8&E?Y zC-ZLhi3RoM92SXUb-5i-Lmt5_rfjE{6y^+24`y$1lywLyHO!)Boa7438K4#iLe?rh z2O~YGSgFUBH?og*6=r9rme=peP~ah`(8Zt7V)j5!V0KPFf_mebo3z95U8(up$-+EA^9dTRLq>Yl)YMBuch9%=e5B`Vnb>o zt03=kq;k2TgGe4|lGne&zJa~h(UGutjP_zr?a7~#b)@15XNA>Dj(m=gg2Q5V4-$)D|Q9}R#002ovPDHLkV1o7DH3k3x literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/mobile-app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/mobile-app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/mobile-app/ios/Runner/Base.lproj/LaunchScreen.storyboard b/mobile-app/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/mobile-app/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-app/ios/Runner/Base.lproj/Main.storyboard b/mobile-app/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/mobile-app/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile-app/ios/Runner/Info.plist b/mobile-app/ios/Runner/Info.plist new file mode 100644 index 0000000..b0ac312 --- /dev/null +++ b/mobile-app/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + toolheim + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/mobile-app/ios/Runner/main.m b/mobile-app/ios/Runner/main.m new file mode 100644 index 0000000..dff6597 --- /dev/null +++ b/mobile-app/ios/Runner/main.m @@ -0,0 +1,9 @@ +#import +#import +#import "AppDelegate.h" + +int main(int argc, char* argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/mobile-app/lib/Warband.dart b/mobile-app/lib/Warband.dart new file mode 100644 index 0000000..82316a5 --- /dev/null +++ b/mobile-app/lib/Warband.dart @@ -0,0 +1,66 @@ +import 'dart:collection'; + +import 'package:json_annotation/json_annotation.dart'; +import 'package:yaml/yaml.dart'; + +part 'Warband.g.dart'; + +// flutter packages pub run build_runner build --delete-conflicting-outputs + +@JsonSerializable(nullable: true, anyMap: true) +class Hero { + @JsonKey(name: 'hero') + final String name; + final String stats; + final String skilllists; + final String weapons; + final String amour; + final String rules; + final int warbandaddition; + + Hero(this.stats, this.skilllists, this.weapons, this.amour, this.rules, this.warbandaddition, this.name); + + factory Hero.fromJson(yaml) => + _$HeroFromJson(yaml); +} + +@JsonSerializable(nullable: true, anyMap: true) +class Warband { + @JsonKey(name: 'warband', fromJson: _warbandNameAndRace) + HashMap nameAndRace; + @JsonKey(ignore: true) + String name; + @JsonKey(ignore: true) + String race; + + @JsonKey(name: 'campaign') + final int campaignPoints; + + final String objective; + final String alignment; + final String achievments; + final int gc; + final int shards; + final String equipment; + + final List heros; + + Warband(this.nameAndRace, this.campaignPoints, this.objective, this.alignment, this.gc, this.shards, this.equipment, this.achievments, this.heros) { + this.race = this.nameAndRace['name']; + this.name = this.nameAndRace['race']; + } + + static HashMap_warbandNameAndRace(String nameAndRace) { + HashMap nr = new HashMap(); + RegExp re = new RegExp(r"(.*) \((.*)\)"); + + var matches = re.allMatches(nameAndRace); + nr['name'] = matches.toList().first.group(1).toString(); + nr['race'] = matches.toList().first.group(2).toString(); + + return nr; + } + + factory Warband.fromJson(YamlMap yaml) => + _$WarbandFromJson(yaml); +} \ No newline at end of file diff --git a/mobile-app/lib/Warband.g.dart b/mobile-app/lib/Warband.g.dart new file mode 100644 index 0000000..08d0ba5 --- /dev/null +++ b/mobile-app/lib/Warband.g.dart @@ -0,0 +1,55 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'Warband.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Hero _$HeroFromJson(Map json) { + return Hero( + json['stats'] as String, + json['skilllists'] as String, + json['weapons'] as String, + json['amour'] as String, + json['rules'] as String, + json['warbandaddition'] as int, + json['hero'] as String); +} + +Map _$HeroToJson(Hero instance) => { + 'hero': instance.name, + 'stats': instance.stats, + 'skilllists': instance.skilllists, + 'weapons': instance.weapons, + 'amour': instance.amour, + 'rules': instance.rules, + 'warbandaddition': instance.warbandaddition + }; + +Warband _$WarbandFromJson(Map json) { + return Warband( + Warband._warbandNameAndRace(json['warband'] as String), + json['campaign'] as int, + json['objective'] as String, + json['alignment'] as String, + json['gc'] as int, + json['shards'] as int, + json['equipment'] as String, + json['achievments'] as String, + (json['heros'] as List) + ?.map((e) => e == null ? null : Hero.fromJson(e)) + ?.toList()); +} + +Map _$WarbandToJson(Warband instance) => { + 'warband': instance.nameAndRace, + 'campaign': instance.campaignPoints, + 'objective': instance.objective, + 'alignment': instance.alignment, + 'achievments': instance.achievments, + 'gc': instance.gc, + 'shards': instance.shards, + 'equipment': instance.equipment, + 'heros': instance.heros + }; diff --git a/mobile-app/lib/main.dart b/mobile-app/lib/main.dart new file mode 100644 index 0000000..bbba8d2 --- /dev/null +++ b/mobile-app/lib/main.dart @@ -0,0 +1,57 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:toolheim/Warband.dart'; +import 'package:yaml/yaml.dart'; + +void main() => runApp(Toolheim()); + +class Toolheim extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Toolheim', + theme: ThemeData( + primarySwatch: Colors.brown, + accentColor: Colors.grey, + ), + home: RoasterWidget(), + ); + } +} + +class RoasterWidget extends StatefulWidget { + @override + _RoasterWidgetState createState() => _RoasterWidgetState(); +} + +class _RoasterWidgetState extends State { + final String urlPath = 'https://raw.githubusercontent.com/Labernator/Mordheim/master/Mordheim-BorderTownBurning/Warband%20Rosters/Aaron/aaron.mordheim.yml'; + Warband warband; + + Future fetchWarband() async { + http.Response response = await http.get(urlPath); + YamlMap yamlObject = loadYaml(response.body); + Warband _warband = Warband.fromJson(yamlObject); + + setState(() { + warband = _warband; + }); + } + + void initState() { + fetchWarband(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(warband.name) + ), + body: Text(warband.race, textScaleFactor: 1.3) + ); + } +} diff --git a/mobile-app/pubspec.lock b/mobile-app/pubspec.lock new file mode 100644 index 0000000..0cb7be0 --- /dev/null +++ b/mobile-app/pubspec.lock @@ -0,0 +1,454 @@ +# Generated by pub +# See https://www.dartlang.org/tools/pub/glossary#lockfile +packages: + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "0.36.3" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.2" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + build: + dependency: transitive + description: + name: build + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.4" + build_config: + dependency: transitive + description: + name: build_config + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + build_runner: + dependency: "direct dev" + description: + name: build_runner + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.0" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.6" + built_collection: + dependency: transitive + description: + name: built_collection + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.2" + built_value: + dependency: transitive + description: + name: built_value + url: "https://pub.dartlang.org" + source: hosted + version: "6.6.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + checked_yaml: + dependency: "direct main" + description: + name: checked_yaml + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + code_builder: + dependency: transitive + description: + name: code_builder + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.14.11" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.6" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.7" + fixnum: + dependency: transitive + description: + name: fixnum + url: "https://pub.dartlang.org" + source: hosted + version: "0.10.9" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + front_end: + dependency: transitive + description: + name: front_end + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.18" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.7" + graphs: + dependency: transitive + description: + name: graphs + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.14.0+2" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.0+2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.3" + io: + dependency: transitive + description: + name: io + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.3" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.1+1" + json_annotation: + dependency: transitive + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.0" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + kernel: + dependency: transitive + description: + name: kernel + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.18" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "0.11.3+2" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.5" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.6+3" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + package_resolver: + dependency: transitive + description: + name: package_resolver + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.10" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.2" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.0" + pool: + dependency: transitive + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.2" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" + quiver: + dependency: transitive + description: + name: quiver + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + shelf: + dependency: transitive + description: + name: shelf + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.5" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.4+2" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.5" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.3" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + stream_transform: + dependency: transitive + description: + name: stream_transform + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.19" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.4" + timing: + dependency: transitive + description: + name: timing + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+1" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7+10" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.13" + yaml: + dependency: "direct main" + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.16" +sdks: + dart: ">=2.3.0-dev.0.1 <3.0.0" diff --git a/mobile-app/pubspec.yaml b/mobile-app/pubspec.yaml new file mode 100644 index 0000000..8071320 --- /dev/null +++ b/mobile-app/pubspec.yaml @@ -0,0 +1,77 @@ +name: toolheim +description: A new Flutter project. + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.1.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + yaml: + checked_yaml: + http: + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^0.1.2 + +dev_dependencies: + flutter_test: + sdk: flutter + build_runner: + json_serializable: + + +# For information on the generic Dart part of this file, see the +# following page: https://www.dartlang.org/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/mobile-app/test/widget_test.dart b/mobile-app/test/widget_test.dart new file mode 100644 index 0000000..10580a7 --- /dev/null +++ b/mobile-app/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:toolheim/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(Toolheim()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/pdf-exporter/.travis.yml b/pdf-exporter/.travis.yml new file mode 100644 index 0000000..c30107c --- /dev/null +++ b/pdf-exporter/.travis.yml @@ -0,0 +1,34 @@ +language: go +go: + - 1.12.x + +os: + - linux + - windows + +dist: trusty +sudo: false +install: true + +script: + - env GO111MODULE=on GOOS=linux GOARCH=amd64 go build -o bin/toolheim_linux . + - env GO111MOBULE=on GOOS=windows GOARCH=amd64 go build -o bin/toolheim_windows.exe . + - env GO111MODULE=on GOOS=darwin GOARCH=amd64 go build -o bin/toolheim_osx . + +before_deploy: + - git config --local user.name "Aaron Fischer" + - git config --local user.email "mail@aaron-fischer.net" + - export TRAVIS_TAG=${TRAVIS_TAG:-$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)} + - git tag $TRAVIS_TAG + +deploy: + provider: releases + skip_cleanup: true + api_key: + secure: Yc14JpZUZvnS2M9K07AMBt2vUSJBgMDUH/ykGUPjK+RAtKEv5KDqzVnsDMSSLxFv+hfCI9Hr1GNcTqBnQi66kORdpwTC5jTbz+rRGtopDWsciHqpwczSRUwcc9WiG3NjJSTDQejfTlIdgjdcwijLYNy/wvQMF8FqfRzyJYSev3IXShVyTTV71Dzz0UmXgnsU2O8/7ocCk+sWexQISMsHUA968014MQ5CWtBSJ/H35yFdTSa04ajjI6/EzhKwVvUNGmIaglKVzTg3LCXvVXyP3HqxVNHfMndNwKImNiZekjnfYKcWHH9d0LS0o7trX9Xve0WWgp9uGQQuRYElHhNTpDWfZBIFpLfLbEAIB3PLzxD0tR71mb0+TyJq8C/H8BdwZhUXGrBcdjVYAlyJ86CnCo81uRdQZU5FoQEc6WSqH1aLuW+ySYiVij68b1puhMwbVKvJB8WW2URkuPPBhZ/2scJzeUMVm5VhAYd/bZ8Qhf1svTn3kviIrUVWl7KcFPxUuUiR+C6tSbnksMmFWs2o+BMZMKDCfe+1jJyB9MF575qe5Ev7ju2BdMJsdX57dAdxwAzKxE9xi2yGOK22eGVRdZRkI27wtojN5LaDrytIVsj0Pw+KU0/vSW1PhBcWJVkWIGrrA4C/icY/hdK30y6t4bQrMTFr4NxYOJrvVfYHKeM= + file: + - bin/toolheim_windows.exe + - bin/toolheim_linux + - bin/toolheim_osx + on: + repo: f0086/toolheim diff --git a/pdf-exporter/README.md b/pdf-exporter/README.md new file mode 100644 index 0000000..3f464cd --- /dev/null +++ b/pdf-exporter/README.md @@ -0,0 +1,20 @@ +# Toolheim + +A simple tool to generate warband roasters out of .mordheim definition +files. + +## Building + +Open a terminal +``` + $ GOOS=windows GOARCH=386 go build . # windows binary + $ GOOS=linux GOARCH=amd64 go build . # linux binary + $ GOOS=darwin GOARCH=arm64 go build . # OSX binary +``` + +## Using the tool + +``` + $ ./toolheim --help + $ ./toolheim -warband .mordheim.yml +``` diff --git a/pdf-exporter/build.sh b/pdf-exporter/build.sh new file mode 100755 index 0000000..e2a5883 --- /dev/null +++ b/pdf-exporter/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +GOOS=windows GOARCH=386 go build -o bin/toolheim_windows.exe . +GOOS=linux GOARCH=amd64 go build -o bin/toolheim_linux . +GOOS=darwin GOARCH=arm64 go build -o bin/toolheim_osx . \ No newline at end of file diff --git a/pdf-exporter/examples/example.mordheim.yml b/pdf-exporter/examples/example.mordheim.yml new file mode 100644 index 0000000..bcfae69 --- /dev/null +++ b/pdf-exporter/examples/example.mordheim.yml @@ -0,0 +1,39 @@ +warband: My sample warband (Marienburg) +campaign: 0 +gc: 300 +shards: 5 +campaign: 25 +equipment: Chaos artefact +objective: My campaign objective + +heros: + - hero: The leader (pit king) [13XP] + stats: M8, WS4, BS4, S4, T5, W2, I4, A2, Ld9, Sv4 + weapons: Axe, Axe + armour: Helmet, Heavy armor, Lucky charm + rules: Leader, Pit fighter + warbandaddition: 25 + skilllists: Strength, Shooting, Combat, Speed, Special + + - hero: Troll slayer (hired sword) [12XP] + stats: M3, WS4, BS2, S4, T4, W1, I2, A1, Ld9, Sv- + weapons: Hand weapon, Dagger + rules: Hates orks, ... + hiredsword: true + skilllists: Strength, Special + +henchmen: + - group: Odd (1 Troll) [0XP] + stats: M6, WS3, BS0, S5, T4, W3, I2, A3, Ld3, Sv- + weapons: Big club + armor: Heavy armor + large: true + rules: Stupid, Regeneration, Fearful + + - group: Sample henchmen (4 Gor) [1XP] + stats: M5, WS2, BS3, S3, T3, W1, I3, A1, Ld5, Sv- + weapons: Dagger, Dagger + +notes: + Zusammenhängender Text + der auch auf mehrere Zeilen verteilt werden kann. Und der auch automatisch umgebrochen wird. diff --git a/pdf-exporter/exporter/pdf.go b/pdf-exporter/exporter/pdf.go new file mode 100644 index 0000000..10fa93c --- /dev/null +++ b/pdf-exporter/exporter/pdf.go @@ -0,0 +1,478 @@ +package exporter + +import ( + "strconv" + //"fmt" + + "github.com/f0086/toolheim/parser" + "github.com/jung-kurt/gofpdf" +) + +var marker_sign = "X" +var text_color_r = 170 +var text_color_g = 0 +var text_color_b = 0 + +var startY = 0 +var offsetY = 0 + +func MakeHeroPage(warband parser.Warband, pdf *gofpdf.Fpdf, newPage bool) { + if !newPage { + // add a new page if required + if startY > 297-60 { + pdf.AddPage() + startY = 0 + offsetY = 0 + } + } else { + pdf.AddPage() + startY = 0 + offsetY = 0 + } + + shiftY := 44 + for i, hero := range warband.Heros { + if i > 0 { + offsetY = offsetY + shiftY + } + + // handle multipage henchmen lists + if offsetY > 297-60 { + pdf.AddPage() + offsetY = 0 + } + + // Background + pdf.SetXY(5, float64(offsetY+5)) + pdf.Image("images/hero.png", 5, 0, 1499*0.133, 295*0.133, true, "", 0, "") + + // Name + pdf.SetFont("Arial", "B", 12) + pdf.SetXY(18, float64(offsetY+4)) + pdf.Write(11, hero.Name) + + // Type + pdf.SetFont("Arial", "", 12) + pdf.SetXY(18, float64(offsetY+10)) + pdf.Write(11, hero.Type) + + // Stats + pdf.SetFillColor(255, 0, 0) + pdf.SetFont("Arial", "", 13) + pdf.SetFontUnitSize(5) + + pdf.SetXY(6, float64(offsetY+24)) + if len(hero.Stats.Movement) > 1 { + pdf.SetX(3) + } + pdf.Write(11, hero.Stats.Movement) + pdf.SetX(13) + pdf.Write(11, strconv.Itoa(hero.Stats.WeaponSkill)) + pdf.SetX(20) + pdf.Write(11, strconv.Itoa(hero.Stats.BallisticSkill)) + pdf.SetX(27) + pdf.Write(11, strconv.Itoa(hero.Stats.Strength)) + pdf.SetX(33) + pdf.Write(11, strconv.Itoa(hero.Stats.Toughness)) + pdf.SetX(40) + pdf.Write(11, strconv.Itoa(hero.Stats.Wounds)) + pdf.SetX(46) + pdf.Write(11, strconv.Itoa(hero.Stats.Initiative)) + pdf.SetX(53) + pdf.Write(11, strconv.Itoa(hero.Stats.Attacks)) + pdf.SetX(59.5) + pdf.Write(11, strconv.Itoa(hero.Stats.Leadership)) + pdf.SetX(66.0) + pdf.Write(11, hero.Stats.Save) + + // Skill lists + if hero.BSkillLists.Combat == true { + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(7.25, float64(offsetY+21)) + pdf.Write(0, marker_sign) + } + if hero.BSkillLists.Shooting == true { + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(17.75, float64(offsetY+21)) + pdf.Write(0, marker_sign) + } + if hero.BSkillLists.Academic == true { + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(28.72, float64(offsetY+21)) + pdf.Write(0, marker_sign) + } + if hero.BSkillLists.Strength == true { + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(40.5, float64(offsetY+21)) + pdf.Write(0, marker_sign) + } + if hero.BSkillLists.Speed == true { + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(51.5, float64(offsetY+21)) + pdf.Write(0, marker_sign) + } + if hero.BSkillLists.Special == true { + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(60.7, float64(offsetY+21)) + pdf.Write(0, marker_sign) + } + + // Weapons + if hero.Weapons != nil { + for w, weapon := range hero.Weapons.List { + if w == 0 { + pdf.SetFont("Arial", "B", 10) + } else { + pdf.SetFont("Arial", "", 10) + } + pdf.SetXY(138, float64(offsetY+7+(w*5))) + pdf.Write(11, weapon) + } + } + + // Armour + pdf.SetFont("Arial", "", 10) + if hero.Armour != nil { + for j, armour := range hero.Armour.List { + pdf.SetXY(168, float64(offsetY+3+(j*5))) + pdf.Write(11, armour) + } + } + + ox := 0 + oy := 0 + if hero.Rules != nil { + for j, rule := range hero.Rules.List { + pdf.SetXY(float64(75+ox), float64(offsetY+6+(j*5)+oy)) + pdf.Write(11, rule) + if j == 3 { + // start right of the first line after 4th line + ox = 30 + oy = -20 + } + } + } + + if hero.HiredSword { + // show hired sword marker + pdf.SetXY(0, float64(offsetY)+38.5) + pdf.Image("images/hiredsword_marker.png", 6, 0, 421*0.053, 97*0.053, true, "", 0, "") + } + + // XP + pdf.SetFont("Arial", "", 20) + pdf.SetXY(185, float64(offsetY+28)) + pdf.Write(20, strconv.Itoa(hero.Experience)) + y := 0.0 + reduce_x := 0 + for x := 1; x <= hero.Experience; x++ { + pdf.SetFont("Arial", "B", 10) + xx := x + if reduce_x > 0 { + xx = xx - reduce_x*30 + } + pdf.SetXY(float64(73+((float64(xx)-1.0)*3.43)), float64(offsetY)+float64(y)*15.0+34.0) + pdf.Write(0, marker_sign) + if x == 30 || x == 60 { + y = y + 0.22 + reduce_x = reduce_x + 1 + } + } + + } + + offsetY = offsetY + shiftY + +} + +func MakeHenchmenPage(warband parser.Warband, pdf *gofpdf.Fpdf, newPage bool) { + + if !newPage { + // add a new page if required + if startY > 297-60 { + pdf.AddPage() + startY = 0 + offsetY = 0 + } + } else { + pdf.AddPage() + startY = 0 + offsetY = 0 + } + + shiftY := 34 + for i, henchmen := range warband.HenchmenGroups { + if i > 0 { + offsetY = offsetY + shiftY + } + + // handle multipage henchmen lists + if offsetY > 297-60 { + pdf.AddPage() + offsetY = 0 + } + + // Background + pdf.SetX(5) + pdf.SetY(float64(offsetY + 5)) + pdf.Image("images/henchmen.png", 5, 0, 1499*0.133, 218*0.133, true, "", 0, "") + + pdf.SetFont("Arial", "B", 12) + // Name + pdf.SetY(float64(offsetY + 4)) + pdf.SetX(18) + pdf.Write(11, henchmen.Name) + + // Type + pdf.SetFont("Arial", "", 12) + pdf.SetY(float64(offsetY + 9)) + pdf.SetX(18) + pdf.Write(11, henchmen.Type) + + // Number + pdf.SetFont("Arial", "B", 12) + pdf.SetY(float64(offsetY + 9)) + pdf.SetX(64) + pdf.Write(11, strconv.Itoa(henchmen.Number)) + + // Stats + pdf.SetFillColor(255, 0, 0) + + pdf.SetFont("Arial", "", 12) + pdf.SetFontUnitSize(5) + + pdf.SetY(float64(offsetY + 18)) + pdf.SetX(6) + if len(henchmen.Stats.Movement) > 1 { + pdf.SetX(3) + } + pdf.Write(11, henchmen.Stats.Movement) + pdf.SetX(13) + pdf.Write(11, strconv.Itoa(henchmen.Stats.WeaponSkill)) + pdf.SetX(20) + pdf.Write(11, strconv.Itoa(henchmen.Stats.BallisticSkill)) + pdf.SetX(27) + pdf.Write(11, strconv.Itoa(henchmen.Stats.Strength)) + pdf.SetX(33) + pdf.Write(11, strconv.Itoa(henchmen.Stats.Toughness)) + pdf.SetX(40) + pdf.Write(11, strconv.Itoa(henchmen.Stats.Wounds)) + pdf.SetX(46) + pdf.Write(11, strconv.Itoa(henchmen.Stats.Initiative)) + pdf.SetX(53) + pdf.Write(11, strconv.Itoa(henchmen.Stats.Attacks)) + pdf.SetX(59.5) + pdf.Write(11, strconv.Itoa(henchmen.Stats.Leadership)) + pdf.SetX(66.0) + pdf.Write(11, henchmen.Stats.Save) + + // Weapons + if henchmen.Weapons != nil { + for w, weapon := range henchmen.Weapons.List { + if w == 0 { + pdf.SetFont("Arial", "B", 10) + } else { + pdf.SetFont("Arial", "", 10) + } + pdf.SetXY(138, float64(offsetY+7+(w*5))) + pdf.Write(11, weapon) + } + } + + // Armour + pdf.SetFont("Arial", "", 10) + if henchmen.Armour != nil { + for j, armour := range henchmen.Armour.List { + pdf.SetXY(170, float64(offsetY+3+(j*5))) + pdf.Write(11, armour) + } + } + + // Rules + if henchmen.Rules != nil { + for j, rule := range henchmen.Rules.List { + pdf.SetXY(75, float64(offsetY+7+(j*5))) + pdf.Write(11, rule) + } + } + + // XP + pdf.SetFont("Arial", "", 13) + pdf.SetXY(190, float64(offsetY+21)) + pdf.Write(20, strconv.Itoa(henchmen.Experience)) + for x := 1; x <= henchmen.Experience; x++ { + pdf.SetFont("Arial", "B", 12) + pdf.SetXY(float64(137+((float64(x)-1.0)*3.45)), float64(offsetY)+30.5) + pdf.Write(0, marker_sign) + } + + } + +} + +func MakeStatisticPage(warband parser.Warband, pdf *gofpdf.Fpdf) { + + // Statistic page + pdf.AddPage() + + startY = 23 + offsetY = 0 + + // First page warband heading + pdf.SetFont("Arial", "B", 28) + pdf.SetXY(5, 5) + pdf.Write(11, warband.Warband.Name) + pdf.SetFont("Arial", "B", 17) + pdf.SetXY(5, 13) + pdf.Write(11, warband.Warband.Race) + + offsetY = 23 + + // Warband status + pdf.SetX(5) + pdf.SetY(float64(offsetY) + 5) + pdf.Image("images/wb_stats.png", 5, 0, 1499*0.133, 218*0.133, true, "", 0, "") + + // Equipment + pdf.SetFont("Arial", "", 10) + oX := 0 + oY := 0 + if warband.Equipment != nil { + for j, e := range warband.Equipment.List { + pdf.SetXY(123+float64(oX), float64(offsetY+oY+6+(j*5))) + pdf.Write(11, e) + if j == 4 { + oX = 40 + oY = -25 + } + } + } + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(55, float64(offsetY)+32.0) + pdf.Write(0, strconv.Itoa(warband.Rating)) + + pdf.SetFont("Arial", "", 10) + pdf.SetXY(72.5, float64(offsetY)+32.0) + pdf.SetTextColor(0, 0, 0) + pdf.Write(0, "Routtest: ") + pdf.SetFont("Arial", "", 10) + pdf.SetTextColor(text_color_r, text_color_g, text_color_b) + pdf.SetXY(95, float64(offsetY)+32.0) + pdf.Write(0, strconv.Itoa(warband.Routtest)) + + pdf.SetFont("Arial", "", 10) + pdf.SetXY(55, float64(offsetY)+11.25) + pdf.Write(0, strconv.Itoa(warband.Hero_sum_xp)) + + pdf.SetXY(60, float64(offsetY)+11.25) + pdf.Write(0, "(+"+strconv.Itoa(warband.WarbandAddition_sum)+")") + + pdf.SetFont("Arial", "", 10) + pdf.SetXY(55, float64(offsetY)+14.75) + pdf.Write(0, strconv.Itoa(warband.Henchmen_sum_xp)) + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(22.05, float64(offsetY)+18.0) + pdf.Write(0, strconv.Itoa(warband.Hero_cnt+warband.Henchmen_cnt+warband.Hiredsword_cnt)) + pdf.SetFont("Arial", "", 10) + pdf.SetXY(55.0, float64(offsetY)+18.0) + pdf.Write(0, strconv.Itoa((warband.Hero_cnt+warband.Henchmen_cnt+warband.Hiredsword_cnt)*5)) + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(32.05, float64(offsetY)+21.25) + pdf.Write(0, strconv.Itoa(warband.Large_cnt)) + pdf.SetFont("Arial", "", 10) + pdf.SetXY(55.0, float64(offsetY)+21.25) + pdf.Write(0, strconv.Itoa((warband.Large_cnt)*20)) + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(27.05, float64(offsetY)+24.5) + pdf.Write(0, "( "+strconv.Itoa(warband.Hiredsword_cnt)+" )") + pdf.SetFont("Arial", "", 10) + pdf.SetXY(55.0, float64(offsetY)+24.5) + pdf.Write(0, strconv.Itoa(warband.Hiredsword_sum_xp)) + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(95, float64(offsetY)+11.25) + pdf.Write(0, strconv.Itoa(warband.GoldCrowns)) + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(95, float64(offsetY)+17.75) + pdf.Write(0, strconv.Itoa(warband.Shards)) + + // Campaign info block + offsetY = offsetY + 40 + pdf.SetXY(5, float64(offsetY)) + pdf.Image("images/campaign.png", 5, 0, 1499*0.133, 218*0.133, true, "", 0, "") + + pdf.SetFont("Arial", "B", 10) + pdf.SetXY(22, float64(offsetY)+6.25) + pdf.Write(0, warband.Objective) + + pdf.SetFont("Arial", "", 10) + pdf.SetXY(147, float64(offsetY)+20.0) + pdf.Write(0, strconv.Itoa(warband.CampaignPoints)) + + row := 0 + for x := 1; x <= warband.CampaignPoints; x++ { + pdf.SetFont("Arial", "B", 8) + xx := x - (row * 20) + pdf.SetXY(float64(130.75+((float64(xx)-1.0)*3.30)), float64(offsetY)+float64(24.4)+float64((float64(row)*float64(2.5)))) + pdf.Write(0, marker_sign) + if x == 20 { + row = row + 1 + } + } + + // Notes block + offsetY = offsetY + 35 + pdf.SetXY(5, float64(offsetY)) + pdf.Image("images/notes.png", 5, 0, 1499*0.133, 218*0.33, true, "", 0, "") + + pdf.SetFont("Arial", "", 12) + lines := pdf.SplitLines([]byte(warband.Notes), 195) + for i := 0; i < len(lines); i++ { + pdf.SetXY(7.0, float64(offsetY+8+i*8)) + pdf.Write(0, string(lines[i])) + } + + // the space after + offsetY = offsetY + 70 + + /* + pdf.SetFont("Arial", "B", 13) + pdf.SetXY(20, float64(offsetY+21)) + pdf.Write(20, strconv.Itoa(hero_cnt)) + + pdf.SetFont("Arial", "B", 13) + pdf.SetXY(20, float64(offsetY+21)) + pdf.Write(20, strconv.Itoa(len(warband.HenchmenGroups))) + + pdf.SetFont("Arial", "B", 13) + pdf.SetXY(20, float64(offsetY+21)) + pdf.Write(20, strconv.Itoa(henchmen_cnt)) + + offsetY = offsetY + 20 + pdf.SetFont("Arial", "B", 13) + pdf.SetXY(20, float64(offsetY+21)) + pdf.Write(20, strconv.Itoa(hero_cnt+henchmen_cnt)) + */ + +} + +func MakePDF(warband parser.Warband, multiPage bool) { + pdf := gofpdf.New("P", "mm", "A4", "") + pdf.SetTextColor(text_color_r, text_color_g, text_color_b) + + MakeStatisticPage(warband, pdf) + MakeHeroPage(warband, pdf, multiPage) + MakeHenchmenPage(warband, pdf, multiPage) + + // TODO: Make output name variable or use name of the input file + err := pdf.OutputFileAndClose("warband-roaster.pdf") + + if err != nil { + panic(err) + } +} diff --git a/pdf-exporter/go.mod b/pdf-exporter/go.mod new file mode 100644 index 0000000..c51542a --- /dev/null +++ b/pdf-exporter/go.mod @@ -0,0 +1,9 @@ +module github.com/f0086/toolheim + +go 1.12 + +require ( + github.com/ghodss/yaml v1.0.0 + github.com/jung-kurt/gofpdf v1.0.1 + gopkg.in/yaml.v2 v2.2.2 // indirect +) diff --git a/pdf-exporter/go.sum b/pdf-exporter/go.sum new file mode 100644 index 0000000..854aa52 --- /dev/null +++ b/pdf-exporter/go.sum @@ -0,0 +1,7 @@ +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/jung-kurt/gofpdf v1.0.1 h1:edqVJAH0OvJmAAUup0lfOSM3VpPxQKtGvq3tu0MEknk= +github.com/jung-kurt/gofpdf v1.0.1/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/pdf-exporter/images/campaign.png b/pdf-exporter/images/campaign.png new file mode 100644 index 0000000000000000000000000000000000000000..0a675475bb08188d9933220514901641ab6c7233 GIT binary patch literal 35182 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 J=&x6Q{!dNERKNfL literal 0 HcmV?d00001 diff --git a/pdf-exporter/images/wb_stats.png b/pdf-exporter/images/wb_stats.png new file mode 100644 index 0000000000000000000000000000000000000000..676505905936454a6371f05b7d24a846b8a27fbe GIT binary patch literal 88587 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 1 { + hands.OffHand = strings.TrimSpace(items[1]) + } + return nil +} + +func ParseWarband(warbandDefinition []byte) Warband { + var warband Warband + + err := yaml.Unmarshal(warbandDefinition, &warband) + if err != nil { + panic(err) + } + + for _, h := range warband.Heros { + regex := regexp.MustCompile(`([^\(]+)\(([^\)]+)\)\s*\[([0-9]+)XP\]\s*`) + matches := regex.FindStringSubmatch(string(h.Header)) + h.Name = strings.TrimSpace(matches[1]) + h.Type = strings.TrimSpace(matches[2]) + h.Experience, _ = strconv.Atoi(strings.TrimSpace(matches[3])) + if h.WarbandAddition > 0 { + warband.Rating = warband.Rating + h.WarbandAddition + warband.WarbandAddition_sum = warband.WarbandAddition_sum + h.WarbandAddition + } + + if !h.Large && !h.HiredSword { + warband.Rating = warband.Rating + h.Experience + 5 + warband.Hero_sum_xp = warband.Hero_sum_xp + h.Experience + warband.Hero_cnt = warband.Hero_cnt + 1 + } else if h.Large { + warband.Rating = warband.Rating + h.Experience + 20 + warband.Hero_sum_xp = warband.Hero_sum_xp + h.Experience + warband.Large_cnt = warband.Large_cnt + 1 + } else if h.HiredSword { + warband.Rating = warband.Rating + h.Experience + 5 + warband.Hiredsword_sum_xp = warband.Hiredsword_sum_xp + h.Experience + warband.Hiredsword_cnt = warband.Hiredsword_cnt + 1 + } // TODO it is not possible that a large hired sword can be added + + // hier text Skill listen-Name zu boolschen Wert umwandeln + h.BSkillLists.Speed = false + h.BSkillLists.Shooting = false + h.BSkillLists.Special = false + h.BSkillLists.Combat = false + h.BSkillLists.Academic = false + h.BSkillLists.Strength = false + for _, s := range h.SkillLists.List { + if strings.EqualFold(s, "Speed") { + h.BSkillLists.Speed = true + } + if strings.EqualFold(s, "Shooting") { + h.BSkillLists.Shooting = true + } + if strings.EqualFold(s, "Special") { + h.BSkillLists.Special = true + } + if strings.EqualFold(s, "Combat") { + h.BSkillLists.Combat = true + } + if strings.EqualFold(s, "Academic") { + h.BSkillLists.Academic = true + } + if strings.EqualFold(s, "Strength") { + h.BSkillLists.Strength = true + } + } + } + + for _, hg := range warband.HenchmenGroups { + regex := regexp.MustCompile(`([^\(]+)\(([0-9]+)x?\s+([^\)]+)\)\s*\[([0-9]+)XP\]\s*`) + matches := regex.FindStringSubmatch(string(hg.Header)) + hg.Name = strings.TrimSpace(matches[1]) + hg.Number, _ = strconv.Atoi(strings.TrimSpace(matches[2])) + hg.Type = strings.TrimSpace(matches[3]) + hg.Experience, _ = strconv.Atoi(strings.TrimSpace(matches[4])) + if !hg.Large { + warband.Henchmen_sum_xp = warband.Henchmen_sum_xp + (hg.Experience * hg.Number) + warband.Henchmen_cnt = warband.Henchmen_cnt + hg.Number + warband.Rating = warband.Rating + (hg.Experience+5)*hg.Number + } else { + warband.Henchmen_sum_xp = warband.Henchmen_sum_xp + (hg.Experience * hg.Number) + warband.Large_cnt = warband.Large_cnt + 1 + warband.Rating = warband.Rating + (hg.Experience+20)*hg.Number + } + + } + + warband.Routtest = int(math.RoundToEven(float64(warband.Hero_cnt+warband.Henchmen_cnt+warband.Large_cnt+warband.Hiredsword_cnt) / 4.0)) + if float64(warband.Hero_cnt+warband.Henchmen_cnt+warband.Large_cnt+warband.Hiredsword_cnt)/4.0 > float64(warband.Routtest) { + warband.Routtest = warband.Routtest + 1 + } + + //spew.Dump(warband) + + return warband +}