From 5ed70c8d403855e4e4b7829c7144e18a9f0b6ad3 Mon Sep 17 00:00:00 2001 From: lxgr-linux <64218491+lxgr-linux@users.noreply.github.com> Date: Sat, 13 Jul 2024 11:05:26 +0000 Subject: [PATCH] Updated pages --- Changelog.md | 3 +- DevGuide.html | 2 +- assets/AppImageBuilder.yml | 83 +- ...irmfoto_2021-06-04_09-04-44 (Kopie 1).kra~ | Bin 33845 -> 0 bytes assets/Bildschirmfoto_2021-06-04_09-04-44.png | Bin 3120 -> 0 bytes ...p => com.github.lxgr_linux.pokete.desktop} | 2 +- ...e.svg => com.github.lxgr_linux.pokete.svg} | 0 assets/pokete.metainfo.xml | 520 +- ..._09-04-44 (Kopie 1).kra => pokete.png.kra} | Bin ...2021-06-04_09-04-44.kra => pokete_old.kra} | Bin doc/gen_wiki.html | 2137 -------- doc/pokete_data/achievements.html | 53 +- doc/pokete_data/attacks.html | 1004 +--- doc/pokete_data/index.html | 191 +- doc/pokete_data/items.html | 87 +- doc/pokete_data/map_data.html | 4520 +---------------- doc/pokete_data/maps.html | 633 +-- doc/pokete_data/mapstations.html | 551 +- doc/pokete_data/natures.html | 53 +- doc/pokete_data/npcs.html | 445 +- doc/pokete_data/poketes.html | 1466 +----- doc/pokete_data/trainers.html | 720 +-- doc/pokete_data/types.html | 97 +- doc/pokete_data/weather.html | 68 +- doc/pokete_general_use_fns.html | 350 -- doc/prepare_pages.html | 960 ---- doc/util/command/command.html | 236 + doc/util/command/helpers.html | 76 + doc/util/command/index.html | 77 + doc/util/command/parse.html | 69 + doc/util/index.html | 93 + doc/util/install.html | 69 + doc/util/liner.html | 96 + doc/util/pages.html | 210 + doc/util/release/appimage.html | 69 + doc/util/release/changelog.html | 76 + doc/util/release/index.html | 91 + doc/util/release/release_py.html | 69 + doc/util/versions.html | 76 + doc/util/wiki.html | 872 ++++ index.md | 5 +- wiki-multi/attacks/electro.html | 2 +- wiki-multi/attacks/fire.html | 2 +- wiki-multi/attacks/flying.html | 2 +- wiki-multi/attacks/ground.html | 2 +- wiki-multi/attacks/ice.html | 2 +- wiki-multi/attacks/index.html | 2 +- wiki-multi/attacks/normal.html | 2 +- wiki-multi/attacks/plant.html | 2 +- wiki-multi/attacks/poison.html | 2 +- wiki-multi/attacks/stone.html | 2 +- wiki-multi/attacks/undead.html | 2 +- wiki-multi/attacks/water.html | 2 +- wiki-multi/effects.html | 2 +- wiki-multi/index.html | 6 +- wiki-multi/items.html | 2 +- wiki-multi/poketes/electro.html | 2 +- wiki-multi/poketes/fire.html | 2 +- wiki-multi/poketes/flying.html | 2 +- wiki-multi/poketes/ground.html | 2 +- wiki-multi/poketes/ice.html | 2 +- wiki-multi/poketes/index.html | 2 +- wiki-multi/poketes/normal.html | 2 +- wiki-multi/poketes/plant.html | 2 +- wiki-multi/poketes/poison.html | 2 +- wiki-multi/poketes/stone.html | 2 +- wiki-multi/poketes/undead.html | 2 +- wiki-multi/poketes/water.html | 2 +- wiki-multi/types.html | 2 +- wiki.html | 6 +- 70 files changed, 2881 insertions(+), 13314 deletions(-) delete mode 100644 assets/Bildschirmfoto_2021-06-04_09-04-44 (Kopie 1).kra~ delete mode 100644 assets/Bildschirmfoto_2021-06-04_09-04-44.png rename assets/{pokete.desktop => com.github.lxgr_linux.pokete.desktop} (82%) rename assets/{pokete.svg => com.github.lxgr_linux.pokete.svg} (100%) rename assets/{Bildschirmfoto_2021-06-04_09-04-44 (Kopie 1).kra => pokete.png.kra} (100%) rename assets/{Bildschirmfoto_2021-06-04_09-04-44.kra => pokete_old.kra} (100%) delete mode 100644 doc/gen_wiki.html delete mode 100644 doc/pokete_general_use_fns.html delete mode 100644 doc/prepare_pages.html create mode 100644 doc/util/command/command.html create mode 100644 doc/util/command/helpers.html create mode 100644 doc/util/command/index.html create mode 100644 doc/util/command/parse.html create mode 100644 doc/util/index.html create mode 100644 doc/util/install.html create mode 100644 doc/util/liner.html create mode 100644 doc/util/pages.html create mode 100644 doc/util/release/appimage.html create mode 100644 doc/util/release/changelog.html create mode 100644 doc/util/release/index.html create mode 100644 doc/util/release/release_py.html create mode 100644 doc/util/versions.html create mode 100644 doc/util/wiki.html diff --git a/Changelog.md b/Changelog.md index e5c20a0e..df9f781d 100644 --- a/Changelog.md +++ b/Changelog.md @@ -141,7 +141,8 @@ What changed until this release? - Added multipage wiki - Completely rewrote gen_wiki.py - Reformated, moved, outsourced, chnages a lot of code - Again special thanks to MaFeLP + +Again special thanks to MaFeLP ## [0.5.1] - 2021-09-19 diff --git a/DevGuide.html b/DevGuide.html index 81eeb702..05555e39 100644 --- a/DevGuide.html +++ b/DevGuide.html @@ -22,7 +22,7 @@ {"@context":"https://schema.org","@type":"WebSite","description":"A terminal based Pokemon like game","headline":"pokete","name":"pokete","url":"https://lxgr-linux.github.io/pokete/"} - + diff --git a/assets/AppImageBuilder.yml b/assets/AppImageBuilder.yml index 17581adc..97075fcb 100644 --- a/assets/AppImageBuilder.yml +++ b/assets/AppImageBuilder.yml @@ -1,70 +1,53 @@ -# appimage-builder recipe see https://appimage-builder.readthedocs.io for details -version: 1 -script: - - rm -rf AppDir | true - - mkdir -p AppDir/usr/share/icons - - git clone --depth=1 https://github.com/lxgr-linux/pokete AppDir/usr/share/pokete - - git clone --depth=1 https://github.com/lxgr-linux/scrap_engine AppDir/usr/share/scrap_engine - - cp AppDir/usr/share/scrap_engine/scrap_engine.py AppDir/usr/share/pokete/ - - cp AppDir/usr/share/pokete/assets/pokete.svg AppDir/usr/share/icons/pokete.svg - AppDir: - path: AppDir app_info: - id: com.github.lxgr-linux.pokete - name: Pokete - icon: pokete - version: 0.8.0 exec: usr/bin/python3.10 - exec_args: $APPDIR/usr/share/pokete/pokete.py --log $@ - # pacman: - # include: - # - python - # exclude: [] + exec_args: $APPDIR/usr/bin/pokete.py --log $@ + icon: com.github.lxgr_linux.pokete + id: com.github.lxgr_linux.pokete + name: Pokete + version: 0.9.2 apt: arch: amd64 - sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' - include: - - python3.10 exclude: - - perl - - gcc-12-base + - perl + - gcc-12-base + include: + - python3.10 + sources: + - key_url: https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c + sourceline: deb [arch=amd64] https://archive.ubuntu.com/ubuntu/ jammy main restricted + universe multiverse files: - include: [] exclude: - - usr/share/man - - usr/share/pokete/bash - - usr/share/pokete/.git - - usr/share/pokete/prepare_pages.py - - usr/share/pokete/gen_wiki.py./ - - usr/share/pokete/*.md - - usr/share/scrap_engine - - usr/share/pokete/playsound/libplaysound.dll - - usr/share/pokete/playsound/libplaysound.osx.so - - usr/share/pokete/assets/ss - - usr/share/pokete/assets/*.png - - usr/share/pokete/assets/*.kra - - usr/share/pokete/assets/*.svg - - usr/share/doc + - pokete + - usr/share/scrap_engine + - usr/share/pokete/playsound/libplaysound.dll + - usr/share/pokete/playsound/libplaysound.osx.so + include: [] + path: AppDir test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 - command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable - command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest command: ./AppRun + image: appimagecrafters/tests-env:archlinux-latest centos-7: + command: ./AppRun image: appimagecrafters/tests-env:centos-7 + debian-stable: command: ./AppRun + image: appimagecrafters/tests-env:debian-stable + fedora-30: + command: ./AppRun + image: appimagecrafters/tests-env:fedora-30 ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial command: ./AppRun + image: appimagecrafters/tests-env:ubuntu-xenial AppImage: arch: x86_64 comp: gzip update-information: guess +script: +- rm -rf AppDir | true +- git clone --depth=1 https://github.com/lxgr-linux/pokete +- git clone --depth=1 https://github.com/lxgr-linux/scrap_engine AppDir/usr/share/scrap_engine +- cd ./pokete && python3.10 ./util.py install AppDir/usr +version: 1 diff --git a/assets/Bildschirmfoto_2021-06-04_09-04-44 (Kopie 1).kra~ b/assets/Bildschirmfoto_2021-06-04_09-04-44 (Kopie 1).kra~ deleted file mode 100644 index ce561d153ce0e278d5b1a172f31d90e212baf319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33845 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 diff --git a/assets/Bildschirmfoto_2021-06-04_09-04-44.png b/assets/Bildschirmfoto_2021-06-04_09-04-44.png deleted file mode 100644 index 7365beedeafee34a10a6badde4f5127e8a664fc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3120 zcmbtXc{H2p8V}Q!j*E_CC{@~Cbd;b?5xcgGB|(b{VmBz2SW;q%prcd`##E@K++KSH z6&hkGO&7-Ap((L7(pXAJEU|>RUuW()^Vf9d-g(aX&Ueo9J>UCm@AG?qZ`xHmOYtw| zzXX9m;?`E?4j_=wH^2iD6$Ug}1-P$)*B6+})=r|Lq7w}J_aKnig0=Z2r|2T~)R4XO zyiyl8&^y~=hn2EhO0e~JJrv}qGukxq;CQHvuQCeyAneDRk{xOdwnjHd`(pI5>$5jQv+eB9Y5T`L-mC7J8^hl;fEz_TOsQ~4f8 zo&*O6ODFD~`*B*RD@#=Jm|1ipi2B8$V~VE|IUu2A5z$jdW*~-;@c;NpwB>w|tE=mk zE8jbu%ZKweHz{1Hu9Uv{)<~81FzDp?cy&%ee*WUZLKsseQ9N%bvaekA4?Vh2_AJI$ zR#v>V7nUh{=*gBahVaM*wmJmm3}p%lN3{BDjJ6 zr`EAB)}Pny_a<^yGjdc^RBUZ+MI;oes;jGsL=81HYh|f~{Y^wd!ofpB?2#i!%CN&P zpyZ`Bzvx0;ltI+;Sc6};4GhN4N(J10Bc1Ur5{XnY!9}xr35M7eD|VS>cnIV}8waoq z|2SH$H-p2l2hL>o%$Fnx_P1sd`0VEN^z@iOrY#*c1Xmt8xrJ&$ogP64sKqU89r#7WCQDodkbpR4Mu~gq# z*PUiQ+n*2Vb50>Yc@nm>#;WfW(2ahXoK#3NUu(*ne%UaP>qV`3{MaCNqiToL))p5L z5s|@;i;X=ZBCRItr#wO{=B@j|HSG@j4C z`pt(~L5y5CO{g;&%XxnZ@(jPf+n1;HF21*?r)R1S`)RF;3f1PQLFR936%@!rbl>SO zkrHa&nS8PQNqMGyc6QcVyQ&)ogV`4w{me;obaV`8k6fZ<%s^I|V+PE0PH%5-e>5I% zvL32n9LLjOD{Di^gWG3}_z6sJ?HjJnDfU2<&->xQp>7JuK-^c;dwY9S>TN|?Y3c9q zK8>geU5J3c+Np;hYR~dp`az58Xp@ndSr887lrltb!`91XWn`e1H9Ic+7ACS8ogWUw zqlz$p`}QrL$A%gH7OYBp34T|NV6zy0QQjE0&1tpQk6HW9$LEovq=bZ>y?tAAT=DCM z$Sy60F@CS5va%aDK0WPu{rc0_Jj+alh6AmgU&>*cD@EPmAtyPoXq)Pr@9F?cmn?O4 z_0H|tbnJ9YAS=Ma!UBatmEhLWV#+Ej=LP%x7&%5T-1#l3$$7!lgR`&NEIM8HR-Q>c}Nld?rv*q>jxhF1e83!b`5X`Y{S99LB~qF zJ1>0pt>Qn)e(=Nr=Y^z)hsT`wKWJSI1NSobnHz0)=Jyz%1o!%fhy5k`+=2mu}Qpvwssg$I)MPc zIJKdiiAvc!Ud-FuS)cwSo{J}A4u^-lW0l(LBppcnDG+z9F|@dcUxvT_i-;Y@lBK`) zZJ3)2FwX2|n(T?asAYEfl%ODWYIki{&g!-!#E?O0!Jv zz4DF4tox#@hf~!9eUA5T*;XR@u}c6J}bp$eLsnx5oK+Q%n5;+l6zb#;RzqW^>w zAlI)ia`*XL#(Ln0OVJYfuMk(SdV4)}1G;_b`9T(YZlLf5gF`|spH+esHdoy7OP(Jl z>Dl!O-tHN(hD;BLBAc6=edGo$e~ivTZ4l!)L;pLkUiBF$d#Vkg_Oz+#*4B#0evdpX z1~^j#0$!(&P|s5_3vWs-#l*y7+m{ujL=SEJ6By$;$QA)MZq$bt=F*zNe&8tBlsiZ& znT#?|8b;;h<`yJ8uC1MF3cBwQ3;+-g=Wf~(&*$~_+B6Q_tnYC4^sMXVHN&S1WHP@h z#?*Lp<~PH$6pd|^r5YO>cVYaXmw37>Ij2JhTy)xKei=6W?BXU;wS2Uv=dMF=NC-S3 z$g4MCvC^TM!SGqN6AKg_qBPAP>m&95^cFVWu4dDgV`*u5|K~Dn+2co#PVd`iTa{H+S*iKEIx9=Pk*sTvSO*eH;Y9e#`1<>^ zfaxQ!!6U=N!vOkin$37$cX4q+AS!d{6ilGC_0J@^c0;hjsrI5VS>MRWrz8);K5rs4 zmIE9HZ{A!pMu&u4MAj8OFCC!@QTx*NGe+t>+MHU;i8=BL3ZvgQPshU4{LwuHg@q98 zwOFhh)GS(GPEPK;lCBd1AuB7pboil7`SQ#SU0BRev2l`_S!k)VX;SpfUkzQ|-7hND zuhO5YOQkKeWu&I24m>>5OU_BZcaO?=LWxGQHIIebiiwD7A?9{#TU!m-ghGels3_W` zv{c5oGto?OV^5~SY;90BnA%5h&1A7yN;poEq875(raCD}$QT;&;jZ9;XKjoG(BvK& z2J0OA z+$^-LG*WX5fwrk$Tnxf6?~+%Ls-d>&L>C<$of9TO02*6brYd4@-Qr;GbCQ8s9{ei= zu8R<-BSg%A{7shkUk)RThPydC(}sutm1CoN9~dWe`=KX{U&)e|f&?}y>Rfq1KtTTt z`LKWqXeocpo)U`$CZ1R diff --git a/assets/pokete.desktop b/assets/com.github.lxgr_linux.pokete.desktop similarity index 82% rename from assets/pokete.desktop rename to assets/com.github.lxgr_linux.pokete.desktop index f01bc27b..f3bc02d3 100755 --- a/assets/pokete.desktop +++ b/assets/com.github.lxgr_linux.pokete.desktop @@ -4,7 +4,7 @@ Type=Application Name=Pokete Comment=A terminal based Pokemon clone, based on the scrap engine. Exec=/usr/bin/pokete.py -Icon=/usr/share/pokete/assets/pokete.png +Icon=com.github.lxgr_linux.pokete Terminal=true StartupNotify=false Categories=Game; diff --git a/assets/pokete.svg b/assets/com.github.lxgr_linux.pokete.svg similarity index 100% rename from assets/pokete.svg rename to assets/com.github.lxgr_linux.pokete.svg diff --git a/assets/pokete.metainfo.xml b/assets/pokete.metainfo.xml index 75cb9a34..1584c2d2 100644 --- a/assets/pokete.metainfo.xml +++ b/assets/pokete.metainfo.xml @@ -1,88 +1,438 @@ - com.github.lxgr_linux.pokete - - lxgr-linux - - MIT - GPL-3.0 - Pokete - A terminal based Pokemon like game - -

- Pokete is a small terminal based game in the style of a very popular and old game by Gamefreak. Imagine you're a Pokete-Trainer and your goal is it to run around in the world and catch/train as many Poketes as possible and to get the best trainer. -

-
- - Game - - - game - python - pokemon - console-game - - https://github.com/lxgr-linux/pokete/ - https://github.com/lxgr-linux/pokete/issues - - com.github.lxgr_linux.pokete - - com.github.lxgr_linux.pokete.desktop - - - Fight against other poketes - https://lxgr-linux.github.io/pokete/assets/ss/ss01.png - - - Conversation with a trainer on Map Route 2 - https://lxgr-linux.github.io/pokete/assets/ss/ss05.png - - - - - -

Quite a lot of bugs were fixed: Added more documentation. #278: Fixed random dor in flowytown arena. #279: Fixed warnings at startup due to new python versions. #281: Fixed trainer name conflicts

-
- https://github.com/lxgr-linux/pokete/releases/tag/0.9.2 -
- - -

Quite a lot happened until this release: Moved some NPCs out of the way. Fixed a small bug with `gen_wiki.py` on windows. Added new `first evolution` achievement. Added new Poketes (Pavous, Uberpavous, Kartmen, Kakraholt, Bablbam). Volume settings with a funky new volumeslider. A new `--no_audio` commandline option to supress all audio. Stats for Poketes. Infos about the effect an attack has. The complete game is now resizable. Reduced stack traces. This release now requires `scrap_engine` on v1.4.0. Many thanks to @ondrejmyska for your many contributions.

-
- https://github.com/lxgr-linux/pokete/releases/tag/0.9.0 -
- - -

Version 0.8.2 fixes a display bug of the release notes on flatpak. Version 0.8.1 on the other hand brought the following improvements: This version brings a new cross-platform implementation of how the audio is played, written in go. This makes the installation size of pokete significantly smaller, as less dependencies are required. The first map has been reworked, to make it easier for new players to understand the game.

-
- https://github.com/lxgr-linux/pokete/releases/tag/0.8.2 -
- - -

This version brings a new cross-platform implementation of how the audio is played, written in go. This makes the installation size of pokete significantly smaller, as less dependencies are required. The first map has been reworked, to make it easier for new players to understand the game.

-
- https://github.com/lxgr-linux/pokete/releases/tag/0.8.1 -
- - -

We are constantly developing pokete further and with version 0.8.0 added a low of improvements and new features, such as music and sound effects. Running away from wild poketes can now fail and trainers can now have more than one pokete. Controls and hotkeys can now be remapped for different keyboard layouts. The default safe-file location has been moved to .local/share and some minor bugs have been fixed as well!

-
- https://github.com/lxgr-linux/pokete/releases/tag/0.8.0 -
- - -

Preparation release for flatpaks. Includes: A svg image of the pokete logo, A metainfo.xml file for pokete -

-
- https://github.com/lxgr-linux/pokete/releases/tag/0.7.3 -
-
- - mild - mild - intense - moderate - -
- + com.github.lxgr_linux.pokete + + lxgr-linux + + MIT + GPL-3.0 + Pokete + Terminal based Pokemon like game + +

Pokete is a small terminal based game in the style of a very popular and old game by Gamefreak. Imagine you're a Pokete-Trainer and your goal is it to run around in the world and catch/train as many Poketes as possible and to get the best trainer.

+
+ + Game + + + game + python + pokemon + console-game + + https://github.com/lxgr-linux/pokete/ + https://github.com/lxgr-linux/pokete/issues + + com.github.lxgr_linux.pokete + + com.github.lxgr_linux.pokete.desktop + + + Fight against other poketes + https://lxgr-linux.github.io/pokete/assets/ss/ss01.png + + + Conversation with a trainer on Map Route 2 + https://lxgr-linux.github.io/pokete/assets/ss/ss05.png + + + + + +

Quite a lot of bugs were fixed:

+
    +
  • Added more documentation
  • +
  • #278: Fixed random dor in flowytown arena
  • +
  • #279: Fixed warnings at startup due to new python versions
  • +
  • #281: Fixed trainer name conflicts
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.9.2 +
+ + +
    +
  • Fixed a bug with fightmap not resozing
  • +
  • Did some reformating
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.9.1 +
+ + +

Quite a lot happened until this release:

+
    +
  • Moved some NPCs out of the way
  • +
  • + Fixed a small bug with + gen_wiki.py + on windows +
  • +
  • + Added new + first evolution + achievement +
  • +
  • Added new Poketes (Pavous, Uberpavous, Kartmen, Kakraholt, Bablbam)
  • +
  • Volume settings with a funky new volumeslider
  • +
  • + A new + --no_audio + commandline option to supress all audio +
  • +
  • Stats for Poketes
  • +
  • Infos about the effect an attack has
  • +
  • The complete game is now resizable
  • +
  • Reduced stack traces
  • +
+

+ This release now requires + scrap_engine + on v1.4.0 +

+

Many thanks to @ondrejmyska for your many contributions.

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.9.0 +
+ + +

Fixes a small bug in the representation of pokete on flathub.

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.8.2 +
+ + +

The distribution size was shrinked extremely compared to 0.8.0

+
    +
  • Made all wav files mp3s
  • +
  • Added new audio library and replaced playsound
  • +
  • Reduced the Appimage size
  • +
  • The first map got a bigger overhaul to make an entrance into the game easier
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.8.1 +
+ + +
    +
  • Added audio
  • +
  • Removed pynput as a dependency on windows
  • +
  • A lot of spelling and grammar fixes
  • +
  • Fixed Poketes not beeing freeable
  • +
  • Added some game ballancing
  • +
  • Trainers can now obtain more than one Pokete
  • +
  • Made run away random
  • +
  • Added remappable controls
  • +
  • Save location is now based on XDG dirs, no intervention needed
  • +
  • + Added quick attacks using + yzcv + so the attackamenu can be skipped +
  • +
+

Many thanks to everybody who contributed to this release!

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.8.0 +
+ + +

Preparation release for flatpaks. Includes:

+
    +
  • A svg image of the pokete logo
  • +
  • A metainfo.xml file for pokete
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.7.3 +
+ + +

Crucial bugfix related to natures and pokete dex.

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.7.2 +
+ + +

Just some small bugfixes.

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.7.1 +
+ + +

Under the hood

+
    +
  • Massive code reorganisation
  • +
  • + Added + PeriodicEventManager + , introducing a centralized approach to handling periodically occurring events +
  • +
  • Enabled pipenv support
  • +
+

Game design and behaviour

+
    +
  • After all Poketes are dead, players are now transported back to the last visited Pokete center
  • +
  • Multiple Poketes in a fight are now automatically possible
  • +
  • NPCs are way smarter now and support multi-answer chats
  • +
  • Added achievements visible via a submenu
  • +
  • Added commandline options
  • +
  • Several new Poketes have been added:
  • +
  • Voglus
  • +
  • Ratatat
  • +
  • Crabbat
  • +
  • Rustacean
  • +
  • Saugh
  • +
  • Corcos day
  • +
  • Corcos night
  • +
  • Raupathor day
  • +
  • Raupathor night
  • +
  • Mothor
  • +
  • Also the maps "Agrawos" and "Sunny Beach" have been added
  • +
  • Weather influencing effectivities has been added
  • +
  • Added notifications
  • +
  • Ingame time was added:
  • +
  • Day and Night active Poketes
  • +
  • A clock
  • +
  • Time stops after a certain period of idling
  • +
  • Treats and the Pokete-Care where added to make leveling easier
  • +
  • The game is now available as an AppImage
  • +
  • The newly added natures now influence a Poketes stats on an individual basis
  • +
+

This article summarises the changes further.

+

Again very special thanks to @MaFeLP for supporting me!

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.7.0 +
+ + +

What changed until this release?

+
    +
  • Added Diamondos, Dia stab,
  • +
  • Dazzle, Dia spikes
  • +
  • Added Megapois, Poison thorn
  • +
  • Added Dicko, Lil nut
  • +
  • Added Mowcow, Supercow power
  • +
  • Added Wheeto, Special smell
  • +
  • Added Flowy Town, Mowcow Meadow, The Fields of Agrawos
  • +
  • Reformated files
  • +
  • Added Github pages, special thanks to MaFeLP
  • +
  • Added validation action
  • +
  • Made the savefile json
  • +
  • Added subtypes to better organise generic attacks
  • +
  • Added Devguide
  • +
  • Added modloader
  • +
  • Added .editorconfig
  • +
  • Added Pipfile and Pipfile.lock
  • +
  • Overhauled Roadmap
  • +
  • Added multipage wiki
  • +
  • Completely rewrote gen_wiki.py
  • +
  • Reformated, moved, outsourced, chnages a lot of code
  • +
+

Again special thanks to MaFeLP

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.6.0 +
+ + +

Some minor changes due to API changes in scrap_engine v1.0.0.

+

scrap_engine v1.0.0 is now required.

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.5.1 +
+ + +

What changed until this release?

+
    +
  • Improve Help
  • +
  • Added CODENAME: Grey Edition
  • +
  • Now unvisited maps names are not displayed in Roadmap anymore
  • +
  • Added question when exiting
  • +
  • Added startuptime to savefile
  • +
  • Added Route 7
  • +
  • Added coloured Minimap
  • +
  • Added Spikes, Bubble gun,
  • +
  • Flame throw, Toe breaker, Wind blow, Storm gust, Rock smash
  • +
  • Added Dicki, Dick energy,
  • +
  • Ground hit, Hiding
  • +
  • Added Schmetterling, Schmetter
  • +
  • Added abbility to learn a new attack very fifth level
  • +
  • Added second type
  • +
  • Added savable attacks
  • +
  • Added Poison Type
  • +
  • Added Learn Discs that can be used to teach new attack to Poketes
  • +
  • Added abilities
  • +
  • Added flying
  • +
  • scrap_engine v0.3.3 is now needed
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.5.0 +
+ + +

What changed until this release?

+
    +
  • Added EffectFreezing
  • +
  • Added ice Poketes (Cubl, Spikl) andattacks (freeze, Snow storm, Sword of ice)
  • +
  • Added some more new Poketes (Confuso, Poisopla) andattacks (Confusion, Posion spores, Root slap)
  • +
  • Added shiny Poketes
  • +
  • Outsourced all map information to maps.py
  • +
  • Added version checking to warn about data loss when downgrading
  • +
  • Sorted the Poketes and attacks in the wiki by types
  • +
  • Fixed the effectivity of EffectBurning
  • +
  • Fixed logic bug in most effects, so that some types are not affected by some effects
  • +
  • Added Pokete dex for the user to keep track of all Pokete 'races' they have ever caught regardless of wether or notthe Poketes are in the deck or not
  • +
  • Cleaned up save file to be more readable for humans
  • +
  • Changed development flow
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.4.1 +
+ + +

What changed until this release?

+
    +
  • Added confirmation for running away
  • +
  • Made playmap_1 way easier
  • +
  • Changed attack list to start with 1 and not 0
  • +
  • Renamed attacs to attacks
  • +
  • Added several new attacks
  • +
  • Added several new moves (downgrade...)
  • +
  • Added Rock-ville
  • +
  • Added new mechanic that moves movemap to ensure all text fits on movemap
  • +
  • Fixed bug with exclamations out of movemap
  • +
  • Added support for more than one move per attack
  • +
  • Increased attack AP to avoid running back to the Pokete-center as often
  • +
  • Changed roadmap mechanism
  • +
  • Added effects
  • +
  • Added coloured output for OutP (scrap_engine >= v0.3.1 is now needed)
  • +
  • Fixed bug with saving in shops
  • +
  • Fixed bug with moves when confused
  • +
  • Outsourced general-use functions
  • +
  • Made some functions a class
  • +
  • Made some other quality of life changes
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.4.0 +
+ + +

What changed until this release?

+
    +
  • Added coloured type tags and attack labels
  • +
  • Added ice type
  • +
  • Added about
  • +
  • Added a now Pokete
  • +
  • Made some minor fixes and changes
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.8 +
+ + +

What changed until this release?

+
    +
  • Added trading with other players in the same network
  • +
  • Simplified some code
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.7 +
+ + +

What changed until this release?

+
    +
  • scrap_engine 0.3.0 in now needed
  • +
  • Added initiative attribute for Poketes to determine which Pokete attacks first
  • +
  • Several minor fixed and additions
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.6 +
+ + +

What changed until this release?

+
    +
  • Compatibility with scrap_engine 0.2.0
  • +
  • Added validation for pokete_data
  • +
  • Added Intro
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.5 +
+ + +

What changed until this release?

+
    +
  • Added Changelog.md
  • +
  • Added Route 6, bigmountain see and bigmountain cave
  • +
  • Improved wiki.md
  • +
  • Added Wolfiro
  • +
  • Added saving Poketeballs
  • +
  • Added some new attacks
  • +
  • Fixed some bugs
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.4 +
+ + +

What changed until this release?

+
    +
  • Trainers are now more likely to use effective attacks
  • +
  • Added autosave
  • +
  • Added a proper settings system
  • +
  • Added undead type
  • +
  • Added some new Poketes and attacks
  • +
  • Added HowToPlay.md
  • +
  • Added trainer saving
  • +
  • Added Route 5
  • +
  • Added confirmation texts when doing sensible stuff
  • +
  • Moved some stuff around
  • +
  • Fixed some bugs
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.3 +
+ + +

What changed until this release?

+
    +
  • Added route 3
  • +
  • Added route 4
  • +
  • Added Deepest forest
  • +
  • minor fixes
  • +
  • Added pics
  • +
  • Fixed some values
  • +
  • Fixed some bugs with trainers
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.2 +
+ + +

What changed until this release?

+
    +
  • Added Abandoned village
  • +
  • Added clampi
  • +
  • Added more NPCs
  • +
  • Added .desktop (MaFeLP) and logo
  • +
  • Made additions to the item system
  • +
+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.1 +
+ + +

This is the first real release of Pokete, because at this point most of the key game mechanics are implemented and most

+

stuff that's still missing is just game content.

+
+ https://github.com/lxgr-linux/pokete/releases/tag/0.3.0 +
+
+ + mild + mild + intense + moderate + + \ No newline at end of file diff --git a/assets/Bildschirmfoto_2021-06-04_09-04-44 (Kopie 1).kra b/assets/pokete.png.kra similarity index 100% rename from assets/Bildschirmfoto_2021-06-04_09-04-44 (Kopie 1).kra rename to assets/pokete.png.kra diff --git a/assets/Bildschirmfoto_2021-06-04_09-04-44.kra b/assets/pokete_old.kra similarity index 100% rename from assets/Bildschirmfoto_2021-06-04_09-04-44.kra rename to assets/pokete_old.kra diff --git a/doc/gen_wiki.html b/doc/gen_wiki.html deleted file mode 100644 index 52210471..00000000 --- a/doc/gen_wiki.html +++ /dev/null @@ -1,2137 +0,0 @@ - - - - - - -gen_wiki API documentation - - - - - - - - - - - -
-
-
-

Module gen_wiki

-
-
-

This script generates the Pokete wiki

-
- -Expand source code - -
#!/usr/bin/env python3
-"""This script generates the Pokete wiki"""
-import os
-from os.path import exists, isdir
-import sys
-import scrap_engine as se
-import release
-from pokete_classes.effects import effects, effect_list
-from pokete_data import pokes, attacks, types, items, maps
-
-SILENT = False
-QUIET = False
-VERBOSE = True
-
-
-class Wiki:
-    """The class in which wiki generation behaviour is defined"""
-
-    @staticmethod
-    def start() -> str:
-        """The start and title of the wiki
-
-        Returns
-        ---
-        The title of the wiki page.
-        """
-        return f"""v{release.VERSION}
-
-# Pokete Wiki
-This wiki/documentation is a compilation of all Poketes, attacks, and types present in the Pokete game.
-The wiki can be generated using ```$ ./gen_wiki.py```.
-
-Use ```$ ./gen_wiki.py help``` to get more information about different wikis.
-
-You can find different versions of this wiki:
-
-- A single-page version can be found [here](wiki.md)
-- A multi-page version can be found [here](https://lxgr-linux.github.io/pokete/wiki-multi/)
-
-"""
-
-    @staticmethod
-    def overview(multi_page: bool = False) -> str:
-        """A short overview of what the wiki contains.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page wiki or not.
-
-        Returns
-        -------
-        An overview for a multi-page wiki.
-        """
-        return "Table of contents\n" + \
-            "\n".join(
-                f"{i + 1}. [{name.capitalize()}]({'' if multi_page else '#'}{name})"
-                for i, name in enumerate(["poketes", "attacks", "types", "item",
-                                          "effects"])) + "\n"
-
-    @staticmethod
-    def get_name(poke):
-        """Returns the name of a Pokete to display in headings"""
-        additional = ""
-        if "_night" in poke:
-            additional = " night"
-        elif "_day" in poke:
-            additional = " day"
-        return pokes[poke]['name'] + additional
-
-    @staticmethod
-    def table_of_contents(multi_page: bool = False) -> str:
-        """The table of contents of the pokete wiki
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page wiki or not.
-
-        Returns
-        -------
-        A Table of contents for a single page wiki.
-        """
-        out = ''
-
-        # Table of contents
-        if not multi_page:
-            out += """## Table of contents
-1. [Poketes](#poketes)
-"""
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} Poketes](#{typ}-poketes)\n"""
-                for j, poke in enumerate([k for k in sorted(list(pokes)[1:]) if
-                                          pokes[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{Wiki.get_name(poke)}](#{poke.replace("_", "-")})\n"""
-            out += "2. [Attacks](#attacks)\n"
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} attacks](#{typ}-attacks)\n"""
-                for j, atc in enumerate([k for k in sorted(attacks) if
-                                         attacks[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{attacks[atc]["name"]}](#{attacks[atc]["name"]
-                    .replace(" ", "-").lower()})\n"""
-            out += """3. [Types](#types)
-4. [Items](#items)
-"""
-            for j, item in enumerate(sorted(items)):
-                out += f"""   {j + 1}. [{items[item]["pretty_name"]}](#{item.replace("_", "-")})\n"""
-            out += """5. [Effects](#effects)
-"""
-            for j, effect in enumerate(effect_list):
-                out += f"""   {j + 1}. [{effect.c_name.capitalize()}](#{effect.c_name.replace("_", "-")})
-"""
-
-        else:
-            out += """## Table of contents
-1. [Poketes](./poketes)
-"""
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} Poketes](./poketes/{typ})\n"""
-                for j, poke in enumerate([k for k in sorted(list(pokes)[1:]) if
-                                          pokes[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{Wiki.get_name(poke)}](./poketes/{typ}#{poke.replace("_", "-")})\n"""
-            out += "2. [Attacks](./attacks)\n"
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} attacks](./attacks/{typ})\n"""
-                for j, atc in enumerate([k for k in sorted(attacks) if
-                                         attacks[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{attacks[atc]["name"]}](./attack/{typ}#{atc.replace("_", "-")})\n"""
-            out += """3. [Types](./types)
-4. [Items](./items)
-"""
-            for j, item in enumerate(sorted(items)):
-                out += f"""   {j + 1}. [{items[item]["pretty_name"]}](./items#{item.replace("_", "-")})\n"""
-            out += """5. [Effects](./effects)
-"""
-            for j, effect in enumerate(effect_list):
-                out += f"""   {j + 1}. [{effect.c_name.capitalize()}](./effects#{effect.c_name.replace("_", "-")})
-"""
-        return out
-
-    @staticmethod
-    def poketes(page_mode='single', pokete_type=None) -> str:
-        """The function to add all poketes and their attributes to the wiki.
-
-        Arguments:
-        ----------
-        - page_mode (string): Defines for what the output will be used. Can be:
-            - single: all poketes listed by their types with single-page links
-            - index: Just the index of all pokete types with multi-page links
-            - multi: Information about the pokete type definied in pokete_type
-              with multi-page links.
-        - pokete_type: Only necessary if page_mode is set to 'index': Then
-          defines the pokete type to get the information and links of.
-
-        Returns
-        -------
-        All poketes and their attributes as a markdown string.
-        """
-        if page_mode == 'single':
-            out = """
-## Poketes
-In the following all Poketes with their attributes are displayed.
-
-"""
-            for typ in sorted(types):
-                out += f"### {typ.capitalize()} Poketes"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == typ]:
-                    if VERBOSE:
-                        print(f' -> Adding {pokes[poke]["name"]}')
-                    out += Wiki.poke_info(poke)
-            return out
-        elif page_mode == 'index':
-            out = """# Poketes
-In the following all Poketes with their attributes are displayed.
-
-"""
-            for typ in sorted(types):
-                out += f"- [{typ.capitalize()} Poketes](./{typ})\n"
-            out += "\n---\n\n## All poketes sorted by their type:\n"
-            for typ in sorted(types):
-                out += f"- [{typ.capitalize()} Poketes](./{typ})\n"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == typ]:
-                    out += f"""  - [{pokes[poke]["name"].capitalize()}](./{typ}#{poke})\n"""
-            return out
-        elif page_mode == 'multi':
-            if pokete_type is not None:
-                out = f"# {pokete_type.capitalize()} Poketes"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == pokete_type]:
-                    if poke == sorted(list(pokes)[1:])[-1]:
-                        if VERBOSE:
-                            print(f'  `-> Adding {pokes[poke]["name"]}')
-                    else:
-                        if VERBOSE:
-                            print(f'  |-> Adding {pokes[poke]["name"]}')
-                    out += Wiki.poke_info(poke=poke, multi_page=True)
-                return out
-            raise AttributeError(
-                "Pokete_type can not be none, if mode 'multi' is selected.")
-        raise AttributeError("Please select a valid page mode of: 'single',"
-                             "'index' or 'multi'!")
-
-    @staticmethod
-    def poke_info(poke: str, multi_page: bool = False) -> str:
-        """Generates information about a specific pokete
-
-        Arguments:
-        ---------
-        - poke (string): The pokete to get the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all the attributes and information of the pokete.
-        """
-        if (evolve_pokete := pokes[poke]["evolve_poke"]) == "":
-            evolve_txt = "- Does not evolve\n"
-        else:
-            evolve_txt = f"""- Evolves to [{Wiki.get_name(evolve_pokete)}]({f'./{pokes[evolve_pokete]["types"][0]}'
-            if multi_page else ""}#{evolve_pokete.replace("_", "-")}) at level {pokes[poke]['evolve_lvl']}"""
-
-        md_attacks = "\n   + " + "\n   + ".join(f"""[{attacks[atc]["name"]}]({
-        f'../attacks/{attacks[atc]["types"][0].capitalize()}'
-        if multi_page else ""
-        }#{attacks[atc]["name"]
-                                                .replace(" ", "-").lower()})"""
-                                                for atc in
-                                                pokes[poke]["attacks"])
-        # ico
-        ico_map = se.Map(4, 11, background=" ")
-        for ico in pokes[poke]["ico"]:
-            se.Text(ico["txt"], state="float", ignore=" ").add(ico_map, 0, 0)
-        ico = "".join("".join(arr) + "\n" for arr in ico_map.map)
-
-        active = {
-            True: "Night",
-            False: "Day",
-            None: "Always",
-        }[pokes[poke].get("night_active")]
-
-        md_locations = "\n   + ".join(maps[i]["pretty_name"] for i in maps
-                                      if maps[i]["poke_args"] is not None
-                                      and poke in maps[i]["poke_args"]["pokes"]
-                                      or "w_poke_args" in maps[i]
-                                      and poke in maps[i]["w_poke_args"][
-                                          "pokes"])
-
-        return f"""
-##{'' if multi_page else '##'} {Wiki.get_name(poke)}
-{pokes[poke]["desc"]}
-
-```
-{ico}
-```
-
-- Type: [{pokes[poke]["types"][0].capitalize()}]({'../types' if multi_page
-        else '#types'})
-- Health points: {pokes[poke]["hp"]}
-- Attack factor: {pokes[poke]["atc"]}
-- Defense factor: {pokes[poke]["defense"]}
-- Initiative: {pokes[poke]["initiative"]}
-- Missing chance: {pokes[poke]["miss_chance"]}
-- Rarity: {pokes[poke]["rarity"]}
-- Loosing experience: {pokes[poke]["lose_xp"]}
-- Attacks:{md_attacks}
-- Active: {active}
-- Can be found in:
-   + {md_locations if md_locations != "" else "Nowhere"}
-{evolve_txt}
-"""
-
-    @staticmethod
-    def attacks(multi_page: bool = False) -> str or list:
-        """The function to all attacks to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all attacks with their attributes and informations.
-        """
-        if multi_page:
-            index = """# Attacks
-Those are all attacks present in the game.
-"""
-            pages = []
-            for typ in sorted(types):
-                if VERBOSE:
-                    print(f" -> Adding {typ}")
-                index += f"\n- [{typ.capitalize()}](./{typ})"
-                page = f"# {typ.capitalize()} attacks"
-                for atc in [k for k in attacks if
-                            attacks[k]["types"][0] == typ]:
-                    if multi_page:
-                        if atc == [k for k in attacks if
-                                   attacks[k]["types"][0] == typ][-1]:
-                            if VERBOSE:
-                                print(f'  `-> Adding {attacks[atc]["name"]}')
-                        else:
-                            if VERBOSE:
-                                print(f'  |-> Adding {attacks[atc]["name"]}')
-                    else:
-                        if VERBOSE:
-                            print(f' -> Adding {attacks[atc]["name"]}')
-                    page += Wiki.attack_info(atc, True)
-                pages.append((f"{typ}.md", page))
-            index += "\n\n---\n\n## All attacks sorted by their type:\n"
-            for typ in sorted(types):
-                index += f"- [{typ.capitalize()} Attacks](./{typ})\n"
-                for atc in [k for k in attacks if
-                            attacks[k]["types"][0] == typ]:
-                    index += f"""  - [{attacks[atc]["name"].capitalize()}](./{typ}#{atc.replace('_', '-')})\n"""
-
-            index += '\n'
-            pages.insert(0, ("index.md", index))
-            return pages
-        out = """
-## Attacks
-Those are all attacks present in the game.
-"""
-        for typ in sorted(types):
-            out += f"\n### {typ.capitalize()} attacks"
-            for atc in [k for k in attacks if
-                        attacks[k]["types"][0] == typ]:
-                if atc == \
-                    [k for k in attacks if attacks[k]["types"][0] == typ][
-                        -1]:
-                    if VERBOSE:
-                        print(f' `-> Adding {attacks[atc]["name"]}')
-                else:
-                    if VERBOSE:
-                        print(f' |-> Adding {attacks[atc]["name"]}')
-                out += Wiki.attack_info(atc)
-
-        return out
-
-    @staticmethod
-    def attack_info(attack: str, multi_page: bool = False) -> str:
-        """The function to collect information and attributes of a specific
-        attack
-
-        Arguments
-        ---------
-        - attacks (string): The attack to collect the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string with the information about the attack.
-        """
-        eff = None if attacks[attack]["effect"] is None \
-            else getattr(effects, attacks[attack]["effect"])
-        return f"""\n##{"" if multi_page else "##"} {attacks[attack]["name"]}
-{attacks[attack]["desc"]}
-
-- Type: [{attacks[attack]["types"][0].capitalize()}]({"../types" if multi_page
-        else "#types"})
-- Minimum Level: {attacks[attack]["min_lvl"]}
-- Attack factor: {attacks[attack]["factor"]}
-- Missing chance: {attacks[attack]["miss_chance"]}
-- Attack points: {attacks[attack]["ap"]}
-- Effect: {"None" if eff is None else f'[{eff.c_name.capitalize()}]({"../effects" if multi_page else ""}#{eff.c_name.replace("_", "-")})'}
-"""
-
-    @staticmethod
-    def types(multi_page: bool = False) -> str:
-        """The function to add all types to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all available types.
-        """
-        out = f"""
-#{'' if multi_page else '#'} Types
-Those are all the Pokete/Attack types that are present in the game with all their (in)effectivities against other types.
-
-|Type|Effective against|Ineffective against|
-|---|---|---|
-"""
-
-        for poke_type in types:
-            effective, ineffective = ("".join([i.capitalize() + (", "
-                                                                 if i != types[
-                poke_type][j][-1]
-                                                                 else "")
-                                               for i in types[poke_type][j]])
-                                      for j in ["effective", "ineffective"])
-            out += f"|{poke_type.capitalize()}|{effective}|{ineffective}|\n"
-
-        return out + '\n'
-
-    @staticmethod
-    def items(multi_page: bool = False) -> str:
-        """The function to add all items to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string that contains information about all items.
-        """
-        return f"""#{'' if multi_page else '#'} Items
-Those are all items present in the game, that can be traded or found.
-
-""" + '\n'.join(Wiki.item_info(item=item, multi_page=multi_page)
-                for item in sorted(items))
-
-    @staticmethod
-    def item_info(item: str, multi_page: bool = False) -> str:
-        """The function to collect information and attributes of a specific item
-
-        Arguments
-        ---------
-        - item (string): The item to collect the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string with the information about the item.
-        """
-        return f"""##{'' if multi_page else '#'} {items[item]["pretty_name"]}
-{items[item]["desc"]}
-
-- Price: {items[item]["price"]}
-- Can be used in fights: {"Yes" if items[item]["fn"] is not None else "No"}
-"""
-
-    @staticmethod
-    def effects(multi_page: bool = False) -> str:
-        """The function to add all effects to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all the effects in the game.
-        """
-        if multi_page:
-            out = """# Effects
-Those effects can be given to a Pokete through an attack.
-"""
-            out += str.join("", [effect.ret_md() for effect in
-                                 effect_list]).replace("###", "##")
-        else:
-            out = """
-## Effects
-Those effects can be given to a Pokete through an attack.
-"""
-            out += str.join("", [effect.ret_md() for effect in effect_list])
-        return out
-
-    @staticmethod
-    def single(filename: str = "wiki.md") -> None:
-        """The function to generate a single page wiki.
-
-        This function creates the pokete wiki in a single file and adds the
-        following to it:
-        - title
-        - table of contents
-        - all poketes with information on them
-        - all attacks with information on them
-        - all types with information on them
-        - all items with information on them
-        - all effects with information on them
-
-        Arguments:
-        ---------
-        - filename (string): The file to save the wiki to.
-        """
-        if QUIET or VERBOSE:
-            print(":: Generating wiki.md...")
-        md_str: str = ""
-        for _text, obj in zip(["page start", "table of contents", "poketes",
-                               "attacks", "types", "items", "effects"],
-                              [Wiki.start, Wiki.table_of_contents, Wiki.poketes,
-                               Wiki.attacks, Wiki.types, Wiki.items,
-                               Wiki.effects]):
-            if QUIET or VERBOSE:
-                print(f"==> Adding {_text}...")
-            md_str += obj()
-
-        # writing to file
-        if QUIET or VERBOSE:
-            print("==> Writing to wiki.md...")
-        with open(filename, mode="w+", encoding="utf-8") as file:
-            file.write(md_str)
-
-    @staticmethod
-    def multi(folder_name: str = "wiki") -> None:
-        """The function to generate the wiki in multiple pages in a folder
-
-        This function creates the pokete wiki in a single file and adds the
-        following to it:
-        - title
-        - table of contents
-        - all poketes with information on them
-        - all attacks with information on them
-        - all types with information on them
-        - all items with information on them
-        - all effects with information on them
-
-        Arguments:
-        ---------
-        - folder_name (string): The folder to save the wiki to.
-        """
-        if QUIET or VERBOSE:
-            print(":: Generating multi-page wiki...")
-            print("==> Checking if old wiki exists...")
-        for folder in ['', '/poketes', '/attacks']:
-            if VERBOSE:
-                print(f' -> Checking "{folder_name}{folder}": ', end='')
-            if exists(folder_name + folder):
-                if not isdir(folder_name + folder):
-                    if VERBOSE:
-                        print("Does not exist. Making...")
-                    os.mkdir(folder_name + folder)
-                else:
-                    if VERBOSE:
-                        print("Exists. Deleting and making new...")
-            else:
-                os.mkdir(folder_name + folder)
-                if VERBOSE:
-                    print("Does not exist. Making...")
-
-        if QUIET or VERBOSE:
-            print("==> Adding page start...")
-        if VERBOSE:
-            print(" -> Adding index...")
-        index: str = Wiki.start()
-        if VERBOSE:
-            print(" -> Adding overview...")
-        index += Wiki.overview(multi_page=True) + "\n---\n"
-        if VERBOSE:
-            print(" -> Adding table of contents...")
-        index += Wiki.table_of_contents(multi_page=True)
-        if VERBOSE:
-            print(f' -> Writing to "{folder_name}/index.md"...')
-        with open(f"{folder_name}/index.md", 'w') as file:
-            file.write(index)
-
-        if QUIET or VERBOSE:
-            print("==> Adding poketes...")
-        if VERBOSE:
-            print(" -> Adding index.md...")
-        with open(f"{folder_name}/poketes/index.md", 'w') as file:
-            file.write(Wiki.poketes(page_mode='index'))
-        for typ in types:
-            with open(f"{folder_name}/poketes/{typ}.md", 'w') as file:
-                file.write(Wiki.poketes(page_mode='multi', pokete_type=typ))
-
-        if QUIET or VERBOSE:
-            print("==> Adding attacks...")
-        for page in Wiki.attacks(multi_page=True):
-            file_name, file_contents = page
-            with open(f"{folder_name}/attacks/{file_name}", 'w') as file:
-                file.write(file_contents)
-
-        for name in ["types", "items", "effects"]:
-            if QUIET or VERBOSE:
-                print(f"==> Adding {name}...")
-            with open(f"{folder_name}/{name}.md", 'w') as file:
-                file.write(getattr(Wiki, name)(multi_page=True))
-
-
-def gen_pics():
-    """The function to generate a markdown file with some example pictures."""
-    if QUIET or VERBOSE:
-        print(":: Generating pics.md...")
-    md_str = """# Example pictures
-""" + "\n\n".join(f"![{i}](ss/{i})" for i in sorted(os.listdir("assets/ss")))
-
-    # writing to file
-    with open("assets/pics.md", "w+") as file:
-        file.write(md_str)
-
-
-if __name__ == "__main__":
-    if len(sys.argv) == 1:
-        SILENT, QUIET, VERBOSE = False, True, False
-        Wiki.single()
-        gen_pics()
-    else:
-        for arg in sys.argv[1:]:
-            if arg.lower() in ["silent", "quite", "verbose"]:
-                SILENT, QUIET, VERBOSE = False, False, False
-                if arg.lower() == "silent":
-                    SILENT = True
-                elif arg.lower() == "quite":
-                    QUIET = True
-                else:
-                    VERBOSE = True
-            elif arg.lower() == "single":
-                Wiki.single()
-            elif arg.lower() == "multi":
-                Wiki.multi("wiki")
-            elif arg.lower() == "pics":
-                gen_pics()
-            else:
-                print(f"""gen_wiki.py:
-
-Usage:
-------
-{sys.argv[0]} OPTION1 (OPTION2 OPTION3 ...)
-
-Options:
---------
-silent:\t\tPrints no statements at all
-quite:\t\tPrints only some minimal statements
-verbose:\tPrints everything that it's doing
-single:\t\tGenerated the `wiki.md` as a single file
-multi:\t\tGenerates a folder `wiki` with the wiki files
-\t\t(Warning: Links are for html pages, not markdown pages!)
-pics:\t\tGenerates the `assets/pics.md` file with all sample pictures
-
-Examples:
----------
-- {sys.argv[0]} silent single verbose multi
-\t`-> Creates wiki.md silently and the multi-wiki verbosely
-- {sys.argv[0]} quite single multi pics
-\t`-> Creates wiki.md, the multi-page wiki and pics.md quitely
-
-Copyright (c) lxgr-linux <lxgr-linux@protonmail.com> 2021""")
-                if arg.lower() not in ["-h", "--help", "help"]:
-                    sys.exit(2)
-
-
-
-
-
-
-
-

Functions

-
-
-def gen_pics() -
-
-

The function to generate a markdown file with some example pictures.

-
- -Expand source code - -
def gen_pics():
-    """The function to generate a markdown file with some example pictures."""
-    if QUIET or VERBOSE:
-        print(":: Generating pics.md...")
-    md_str = """# Example pictures
-""" + "\n\n".join(f"![{i}](ss/{i})" for i in sorted(os.listdir("assets/ss")))
-
-    # writing to file
-    with open("assets/pics.md", "w+") as file:
-        file.write(md_str)
-
-
-
-
-
-

Classes

-
-
-class Wiki -
-
-

The class in which wiki generation behaviour is defined

-
- -Expand source code - -
class Wiki:
-    """The class in which wiki generation behaviour is defined"""
-
-    @staticmethod
-    def start() -> str:
-        """The start and title of the wiki
-
-        Returns
-        ---
-        The title of the wiki page.
-        """
-        return f"""v{release.VERSION}
-
-# Pokete Wiki
-This wiki/documentation is a compilation of all Poketes, attacks, and types present in the Pokete game.
-The wiki can be generated using ```$ ./gen_wiki.py```.
-
-Use ```$ ./gen_wiki.py help``` to get more information about different wikis.
-
-You can find different versions of this wiki:
-
-- A single-page version can be found [here](wiki.md)
-- A multi-page version can be found [here](https://lxgr-linux.github.io/pokete/wiki-multi/)
-
-"""
-
-    @staticmethod
-    def overview(multi_page: bool = False) -> str:
-        """A short overview of what the wiki contains.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page wiki or not.
-
-        Returns
-        -------
-        An overview for a multi-page wiki.
-        """
-        return "Table of contents\n" + \
-            "\n".join(
-                f"{i + 1}. [{name.capitalize()}]({'' if multi_page else '#'}{name})"
-                for i, name in enumerate(["poketes", "attacks", "types", "item",
-                                          "effects"])) + "\n"
-
-    @staticmethod
-    def get_name(poke):
-        """Returns the name of a Pokete to display in headings"""
-        additional = ""
-        if "_night" in poke:
-            additional = " night"
-        elif "_day" in poke:
-            additional = " day"
-        return pokes[poke]['name'] + additional
-
-    @staticmethod
-    def table_of_contents(multi_page: bool = False) -> str:
-        """The table of contents of the pokete wiki
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page wiki or not.
-
-        Returns
-        -------
-        A Table of contents for a single page wiki.
-        """
-        out = ''
-
-        # Table of contents
-        if not multi_page:
-            out += """## Table of contents
-1. [Poketes](#poketes)
-"""
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} Poketes](#{typ}-poketes)\n"""
-                for j, poke in enumerate([k for k in sorted(list(pokes)[1:]) if
-                                          pokes[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{Wiki.get_name(poke)}](#{poke.replace("_", "-")})\n"""
-            out += "2. [Attacks](#attacks)\n"
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} attacks](#{typ}-attacks)\n"""
-                for j, atc in enumerate([k for k in sorted(attacks) if
-                                         attacks[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{attacks[atc]["name"]}](#{attacks[atc]["name"]
-                    .replace(" ", "-").lower()})\n"""
-            out += """3. [Types](#types)
-4. [Items](#items)
-"""
-            for j, item in enumerate(sorted(items)):
-                out += f"""   {j + 1}. [{items[item]["pretty_name"]}](#{item.replace("_", "-")})\n"""
-            out += """5. [Effects](#effects)
-"""
-            for j, effect in enumerate(effect_list):
-                out += f"""   {j + 1}. [{effect.c_name.capitalize()}](#{effect.c_name.replace("_", "-")})
-"""
-
-        else:
-            out += """## Table of contents
-1. [Poketes](./poketes)
-"""
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} Poketes](./poketes/{typ})\n"""
-                for j, poke in enumerate([k for k in sorted(list(pokes)[1:]) if
-                                          pokes[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{Wiki.get_name(poke)}](./poketes/{typ}#{poke.replace("_", "-")})\n"""
-            out += "2. [Attacks](./attacks)\n"
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} attacks](./attacks/{typ})\n"""
-                for j, atc in enumerate([k for k in sorted(attacks) if
-                                         attacks[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{attacks[atc]["name"]}](./attack/{typ}#{atc.replace("_", "-")})\n"""
-            out += """3. [Types](./types)
-4. [Items](./items)
-"""
-            for j, item in enumerate(sorted(items)):
-                out += f"""   {j + 1}. [{items[item]["pretty_name"]}](./items#{item.replace("_", "-")})\n"""
-            out += """5. [Effects](./effects)
-"""
-            for j, effect in enumerate(effect_list):
-                out += f"""   {j + 1}. [{effect.c_name.capitalize()}](./effects#{effect.c_name.replace("_", "-")})
-"""
-        return out
-
-    @staticmethod
-    def poketes(page_mode='single', pokete_type=None) -> str:
-        """The function to add all poketes and their attributes to the wiki.
-
-        Arguments:
-        ----------
-        - page_mode (string): Defines for what the output will be used. Can be:
-            - single: all poketes listed by their types with single-page links
-            - index: Just the index of all pokete types with multi-page links
-            - multi: Information about the pokete type definied in pokete_type
-              with multi-page links.
-        - pokete_type: Only necessary if page_mode is set to 'index': Then
-          defines the pokete type to get the information and links of.
-
-        Returns
-        -------
-        All poketes and their attributes as a markdown string.
-        """
-        if page_mode == 'single':
-            out = """
-## Poketes
-In the following all Poketes with their attributes are displayed.
-
-"""
-            for typ in sorted(types):
-                out += f"### {typ.capitalize()} Poketes"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == typ]:
-                    if VERBOSE:
-                        print(f' -> Adding {pokes[poke]["name"]}')
-                    out += Wiki.poke_info(poke)
-            return out
-        elif page_mode == 'index':
-            out = """# Poketes
-In the following all Poketes with their attributes are displayed.
-
-"""
-            for typ in sorted(types):
-                out += f"- [{typ.capitalize()} Poketes](./{typ})\n"
-            out += "\n---\n\n## All poketes sorted by their type:\n"
-            for typ in sorted(types):
-                out += f"- [{typ.capitalize()} Poketes](./{typ})\n"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == typ]:
-                    out += f"""  - [{pokes[poke]["name"].capitalize()}](./{typ}#{poke})\n"""
-            return out
-        elif page_mode == 'multi':
-            if pokete_type is not None:
-                out = f"# {pokete_type.capitalize()} Poketes"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == pokete_type]:
-                    if poke == sorted(list(pokes)[1:])[-1]:
-                        if VERBOSE:
-                            print(f'  `-> Adding {pokes[poke]["name"]}')
-                    else:
-                        if VERBOSE:
-                            print(f'  |-> Adding {pokes[poke]["name"]}')
-                    out += Wiki.poke_info(poke=poke, multi_page=True)
-                return out
-            raise AttributeError(
-                "Pokete_type can not be none, if mode 'multi' is selected.")
-        raise AttributeError("Please select a valid page mode of: 'single',"
-                             "'index' or 'multi'!")
-
-    @staticmethod
-    def poke_info(poke: str, multi_page: bool = False) -> str:
-        """Generates information about a specific pokete
-
-        Arguments:
-        ---------
-        - poke (string): The pokete to get the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all the attributes and information of the pokete.
-        """
-        if (evolve_pokete := pokes[poke]["evolve_poke"]) == "":
-            evolve_txt = "- Does not evolve\n"
-        else:
-            evolve_txt = f"""- Evolves to [{Wiki.get_name(evolve_pokete)}]({f'./{pokes[evolve_pokete]["types"][0]}'
-            if multi_page else ""}#{evolve_pokete.replace("_", "-")}) at level {pokes[poke]['evolve_lvl']}"""
-
-        md_attacks = "\n   + " + "\n   + ".join(f"""[{attacks[atc]["name"]}]({
-        f'../attacks/{attacks[atc]["types"][0].capitalize()}'
-        if multi_page else ""
-        }#{attacks[atc]["name"]
-                                                .replace(" ", "-").lower()})"""
-                                                for atc in
-                                                pokes[poke]["attacks"])
-        # ico
-        ico_map = se.Map(4, 11, background=" ")
-        for ico in pokes[poke]["ico"]:
-            se.Text(ico["txt"], state="float", ignore=" ").add(ico_map, 0, 0)
-        ico = "".join("".join(arr) + "\n" for arr in ico_map.map)
-
-        active = {
-            True: "Night",
-            False: "Day",
-            None: "Always",
-        }[pokes[poke].get("night_active")]
-
-        md_locations = "\n   + ".join(maps[i]["pretty_name"] for i in maps
-                                      if maps[i]["poke_args"] is not None
-                                      and poke in maps[i]["poke_args"]["pokes"]
-                                      or "w_poke_args" in maps[i]
-                                      and poke in maps[i]["w_poke_args"][
-                                          "pokes"])
-
-        return f"""
-##{'' if multi_page else '##'} {Wiki.get_name(poke)}
-{pokes[poke]["desc"]}
-
-```
-{ico}
-```
-
-- Type: [{pokes[poke]["types"][0].capitalize()}]({'../types' if multi_page
-        else '#types'})
-- Health points: {pokes[poke]["hp"]}
-- Attack factor: {pokes[poke]["atc"]}
-- Defense factor: {pokes[poke]["defense"]}
-- Initiative: {pokes[poke]["initiative"]}
-- Missing chance: {pokes[poke]["miss_chance"]}
-- Rarity: {pokes[poke]["rarity"]}
-- Loosing experience: {pokes[poke]["lose_xp"]}
-- Attacks:{md_attacks}
-- Active: {active}
-- Can be found in:
-   + {md_locations if md_locations != "" else "Nowhere"}
-{evolve_txt}
-"""
-
-    @staticmethod
-    def attacks(multi_page: bool = False) -> str or list:
-        """The function to all attacks to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all attacks with their attributes and informations.
-        """
-        if multi_page:
-            index = """# Attacks
-Those are all attacks present in the game.
-"""
-            pages = []
-            for typ in sorted(types):
-                if VERBOSE:
-                    print(f" -> Adding {typ}")
-                index += f"\n- [{typ.capitalize()}](./{typ})"
-                page = f"# {typ.capitalize()} attacks"
-                for atc in [k for k in attacks if
-                            attacks[k]["types"][0] == typ]:
-                    if multi_page:
-                        if atc == [k for k in attacks if
-                                   attacks[k]["types"][0] == typ][-1]:
-                            if VERBOSE:
-                                print(f'  `-> Adding {attacks[atc]["name"]}')
-                        else:
-                            if VERBOSE:
-                                print(f'  |-> Adding {attacks[atc]["name"]}')
-                    else:
-                        if VERBOSE:
-                            print(f' -> Adding {attacks[atc]["name"]}')
-                    page += Wiki.attack_info(atc, True)
-                pages.append((f"{typ}.md", page))
-            index += "\n\n---\n\n## All attacks sorted by their type:\n"
-            for typ in sorted(types):
-                index += f"- [{typ.capitalize()} Attacks](./{typ})\n"
-                for atc in [k for k in attacks if
-                            attacks[k]["types"][0] == typ]:
-                    index += f"""  - [{attacks[atc]["name"].capitalize()}](./{typ}#{atc.replace('_', '-')})\n"""
-
-            index += '\n'
-            pages.insert(0, ("index.md", index))
-            return pages
-        out = """
-## Attacks
-Those are all attacks present in the game.
-"""
-        for typ in sorted(types):
-            out += f"\n### {typ.capitalize()} attacks"
-            for atc in [k for k in attacks if
-                        attacks[k]["types"][0] == typ]:
-                if atc == \
-                    [k for k in attacks if attacks[k]["types"][0] == typ][
-                        -1]:
-                    if VERBOSE:
-                        print(f' `-> Adding {attacks[atc]["name"]}')
-                else:
-                    if VERBOSE:
-                        print(f' |-> Adding {attacks[atc]["name"]}')
-                out += Wiki.attack_info(atc)
-
-        return out
-
-    @staticmethod
-    def attack_info(attack: str, multi_page: bool = False) -> str:
-        """The function to collect information and attributes of a specific
-        attack
-
-        Arguments
-        ---------
-        - attacks (string): The attack to collect the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string with the information about the attack.
-        """
-        eff = None if attacks[attack]["effect"] is None \
-            else getattr(effects, attacks[attack]["effect"])
-        return f"""\n##{"" if multi_page else "##"} {attacks[attack]["name"]}
-{attacks[attack]["desc"]}
-
-- Type: [{attacks[attack]["types"][0].capitalize()}]({"../types" if multi_page
-        else "#types"})
-- Minimum Level: {attacks[attack]["min_lvl"]}
-- Attack factor: {attacks[attack]["factor"]}
-- Missing chance: {attacks[attack]["miss_chance"]}
-- Attack points: {attacks[attack]["ap"]}
-- Effect: {"None" if eff is None else f'[{eff.c_name.capitalize()}]({"../effects" if multi_page else ""}#{eff.c_name.replace("_", "-")})'}
-"""
-
-    @staticmethod
-    def types(multi_page: bool = False) -> str:
-        """The function to add all types to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all available types.
-        """
-        out = f"""
-#{'' if multi_page else '#'} Types
-Those are all the Pokete/Attack types that are present in the game with all their (in)effectivities against other types.
-
-|Type|Effective against|Ineffective against|
-|---|---|---|
-"""
-
-        for poke_type in types:
-            effective, ineffective = ("".join([i.capitalize() + (", "
-                                                                 if i != types[
-                poke_type][j][-1]
-                                                                 else "")
-                                               for i in types[poke_type][j]])
-                                      for j in ["effective", "ineffective"])
-            out += f"|{poke_type.capitalize()}|{effective}|{ineffective}|\n"
-
-        return out + '\n'
-
-    @staticmethod
-    def items(multi_page: bool = False) -> str:
-        """The function to add all items to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string that contains information about all items.
-        """
-        return f"""#{'' if multi_page else '#'} Items
-Those are all items present in the game, that can be traded or found.
-
-""" + '\n'.join(Wiki.item_info(item=item, multi_page=multi_page)
-                for item in sorted(items))
-
-    @staticmethod
-    def item_info(item: str, multi_page: bool = False) -> str:
-        """The function to collect information and attributes of a specific item
-
-        Arguments
-        ---------
-        - item (string): The item to collect the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string with the information about the item.
-        """
-        return f"""##{'' if multi_page else '#'} {items[item]["pretty_name"]}
-{items[item]["desc"]}
-
-- Price: {items[item]["price"]}
-- Can be used in fights: {"Yes" if items[item]["fn"] is not None else "No"}
-"""
-
-    @staticmethod
-    def effects(multi_page: bool = False) -> str:
-        """The function to add all effects to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all the effects in the game.
-        """
-        if multi_page:
-            out = """# Effects
-Those effects can be given to a Pokete through an attack.
-"""
-            out += str.join("", [effect.ret_md() for effect in
-                                 effect_list]).replace("###", "##")
-        else:
-            out = """
-## Effects
-Those effects can be given to a Pokete through an attack.
-"""
-            out += str.join("", [effect.ret_md() for effect in effect_list])
-        return out
-
-    @staticmethod
-    def single(filename: str = "wiki.md") -> None:
-        """The function to generate a single page wiki.
-
-        This function creates the pokete wiki in a single file and adds the
-        following to it:
-        - title
-        - table of contents
-        - all poketes with information on them
-        - all attacks with information on them
-        - all types with information on them
-        - all items with information on them
-        - all effects with information on them
-
-        Arguments:
-        ---------
-        - filename (string): The file to save the wiki to.
-        """
-        if QUIET or VERBOSE:
-            print(":: Generating wiki.md...")
-        md_str: str = ""
-        for _text, obj in zip(["page start", "table of contents", "poketes",
-                               "attacks", "types", "items", "effects"],
-                              [Wiki.start, Wiki.table_of_contents, Wiki.poketes,
-                               Wiki.attacks, Wiki.types, Wiki.items,
-                               Wiki.effects]):
-            if QUIET or VERBOSE:
-                print(f"==> Adding {_text}...")
-            md_str += obj()
-
-        # writing to file
-        if QUIET or VERBOSE:
-            print("==> Writing to wiki.md...")
-        with open(filename, mode="w+", encoding="utf-8") as file:
-            file.write(md_str)
-
-    @staticmethod
-    def multi(folder_name: str = "wiki") -> None:
-        """The function to generate the wiki in multiple pages in a folder
-
-        This function creates the pokete wiki in a single file and adds the
-        following to it:
-        - title
-        - table of contents
-        - all poketes with information on them
-        - all attacks with information on them
-        - all types with information on them
-        - all items with information on them
-        - all effects with information on them
-
-        Arguments:
-        ---------
-        - folder_name (string): The folder to save the wiki to.
-        """
-        if QUIET or VERBOSE:
-            print(":: Generating multi-page wiki...")
-            print("==> Checking if old wiki exists...")
-        for folder in ['', '/poketes', '/attacks']:
-            if VERBOSE:
-                print(f' -> Checking "{folder_name}{folder}": ', end='')
-            if exists(folder_name + folder):
-                if not isdir(folder_name + folder):
-                    if VERBOSE:
-                        print("Does not exist. Making...")
-                    os.mkdir(folder_name + folder)
-                else:
-                    if VERBOSE:
-                        print("Exists. Deleting and making new...")
-            else:
-                os.mkdir(folder_name + folder)
-                if VERBOSE:
-                    print("Does not exist. Making...")
-
-        if QUIET or VERBOSE:
-            print("==> Adding page start...")
-        if VERBOSE:
-            print(" -> Adding index...")
-        index: str = Wiki.start()
-        if VERBOSE:
-            print(" -> Adding overview...")
-        index += Wiki.overview(multi_page=True) + "\n---\n"
-        if VERBOSE:
-            print(" -> Adding table of contents...")
-        index += Wiki.table_of_contents(multi_page=True)
-        if VERBOSE:
-            print(f' -> Writing to "{folder_name}/index.md"...')
-        with open(f"{folder_name}/index.md", 'w') as file:
-            file.write(index)
-
-        if QUIET or VERBOSE:
-            print("==> Adding poketes...")
-        if VERBOSE:
-            print(" -> Adding index.md...")
-        with open(f"{folder_name}/poketes/index.md", 'w') as file:
-            file.write(Wiki.poketes(page_mode='index'))
-        for typ in types:
-            with open(f"{folder_name}/poketes/{typ}.md", 'w') as file:
-                file.write(Wiki.poketes(page_mode='multi', pokete_type=typ))
-
-        if QUIET or VERBOSE:
-            print("==> Adding attacks...")
-        for page in Wiki.attacks(multi_page=True):
-            file_name, file_contents = page
-            with open(f"{folder_name}/attacks/{file_name}", 'w') as file:
-                file.write(file_contents)
-
-        for name in ["types", "items", "effects"]:
-            if QUIET or VERBOSE:
-                print(f"==> Adding {name}...")
-            with open(f"{folder_name}/{name}.md", 'w') as file:
-                file.write(getattr(Wiki, name)(multi_page=True))
-
-

Static methods

-
-
-def attack_info(attack: str, multi_page: bool = False) ‑> str -
-
-

The function to collect information and attributes of a specific -attack

-

Arguments

-
    -
  • attacks (string): The attack to collect the information of.
  • -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string with the information about the attack.

-
- -Expand source code - -
    @staticmethod
-    def attack_info(attack: str, multi_page: bool = False) -> str:
-        """The function to collect information and attributes of a specific
-        attack
-
-        Arguments
-        ---------
-        - attacks (string): The attack to collect the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string with the information about the attack.
-        """
-        eff = None if attacks[attack]["effect"] is None \
-            else getattr(effects, attacks[attack]["effect"])
-        return f"""\n##{"" if multi_page else "##"} {attacks[attack]["name"]}
-{attacks[attack]["desc"]}
-
-- Type: [{attacks[attack]["types"][0].capitalize()}]({"../types" if multi_page
-        else "#types"})
-- Minimum Level: {attacks[attack]["min_lvl"]}
-- Attack factor: {attacks[attack]["factor"]}
-- Missing chance: {attacks[attack]["miss_chance"]}
-- Attack points: {attacks[attack]["ap"]}
-- Effect: {"None" if eff is None else f'[{eff.c_name.capitalize()}]({"../effects" if multi_page else ""}#{eff.c_name.replace("_", "-")})'}
-"""
-
-
-
-def attacks(multi_page: bool = False) ‑> str -
-
-

The function to all attacks to the wiki.

-

Arguments

-
    -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string of all attacks with their attributes and informations.

-
- -Expand source code - -
    @staticmethod
-    def attacks(multi_page: bool = False) -> str or list:
-        """The function to all attacks to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all attacks with their attributes and informations.
-        """
-        if multi_page:
-            index = """# Attacks
-Those are all attacks present in the game.
-"""
-            pages = []
-            for typ in sorted(types):
-                if VERBOSE:
-                    print(f" -> Adding {typ}")
-                index += f"\n- [{typ.capitalize()}](./{typ})"
-                page = f"# {typ.capitalize()} attacks"
-                for atc in [k for k in attacks if
-                            attacks[k]["types"][0] == typ]:
-                    if multi_page:
-                        if atc == [k for k in attacks if
-                                   attacks[k]["types"][0] == typ][-1]:
-                            if VERBOSE:
-                                print(f'  `-> Adding {attacks[atc]["name"]}')
-                        else:
-                            if VERBOSE:
-                                print(f'  |-> Adding {attacks[atc]["name"]}')
-                    else:
-                        if VERBOSE:
-                            print(f' -> Adding {attacks[atc]["name"]}')
-                    page += Wiki.attack_info(atc, True)
-                pages.append((f"{typ}.md", page))
-            index += "\n\n---\n\n## All attacks sorted by their type:\n"
-            for typ in sorted(types):
-                index += f"- [{typ.capitalize()} Attacks](./{typ})\n"
-                for atc in [k for k in attacks if
-                            attacks[k]["types"][0] == typ]:
-                    index += f"""  - [{attacks[atc]["name"].capitalize()}](./{typ}#{atc.replace('_', '-')})\n"""
-
-            index += '\n'
-            pages.insert(0, ("index.md", index))
-            return pages
-        out = """
-## Attacks
-Those are all attacks present in the game.
-"""
-        for typ in sorted(types):
-            out += f"\n### {typ.capitalize()} attacks"
-            for atc in [k for k in attacks if
-                        attacks[k]["types"][0] == typ]:
-                if atc == \
-                    [k for k in attacks if attacks[k]["types"][0] == typ][
-                        -1]:
-                    if VERBOSE:
-                        print(f' `-> Adding {attacks[atc]["name"]}')
-                else:
-                    if VERBOSE:
-                        print(f' |-> Adding {attacks[atc]["name"]}')
-                out += Wiki.attack_info(atc)
-
-        return out
-
-
-
-def effects(multi_page: bool = False) ‑> str -
-
-

The function to add all effects to the wiki.

-

Arguments

-
    -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string of all the effects in the game.

-
- -Expand source code - -
    @staticmethod
-    def effects(multi_page: bool = False) -> str:
-        """The function to add all effects to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all the effects in the game.
-        """
-        if multi_page:
-            out = """# Effects
-Those effects can be given to a Pokete through an attack.
-"""
-            out += str.join("", [effect.ret_md() for effect in
-                                 effect_list]).replace("###", "##")
-        else:
-            out = """
-## Effects
-Those effects can be given to a Pokete through an attack.
-"""
-            out += str.join("", [effect.ret_md() for effect in effect_list])
-        return out
-
-
-
-def get_name(poke) -
-
-

Returns the name of a Pokete to display in headings

-
- -Expand source code - -
@staticmethod
-def get_name(poke):
-    """Returns the name of a Pokete to display in headings"""
-    additional = ""
-    if "_night" in poke:
-        additional = " night"
-    elif "_day" in poke:
-        additional = " day"
-    return pokes[poke]['name'] + additional
-
-
-
-def item_info(item: str, multi_page: bool = False) ‑> str -
-
-

The function to collect information and attributes of a specific item

-

Arguments

-
    -
  • item (string): The item to collect the information of.
  • -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string with the information about the item.

-
- -Expand source code - -
    @staticmethod
-    def item_info(item: str, multi_page: bool = False) -> str:
-        """The function to collect information and attributes of a specific item
-
-        Arguments
-        ---------
-        - item (string): The item to collect the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string with the information about the item.
-        """
-        return f"""##{'' if multi_page else '#'} {items[item]["pretty_name"]}
-{items[item]["desc"]}
-
-- Price: {items[item]["price"]}
-- Can be used in fights: {"Yes" if items[item]["fn"] is not None else "No"}
-"""
-
-
-
-def items(multi_page: bool = False) ‑> str -
-
-

The function to add all items to the wiki.

-

Arguments

-
    -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string that contains information about all items.

-
- -Expand source code - -
    @staticmethod
-    def items(multi_page: bool = False) -> str:
-        """The function to add all items to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string that contains information about all items.
-        """
-        return f"""#{'' if multi_page else '#'} Items
-Those are all items present in the game, that can be traded or found.
-
-""" + '\n'.join(Wiki.item_info(item=item, multi_page=multi_page)
-                for item in sorted(items))
-
-
-
-def multi(folder_name: str = 'wiki') ‑> None -
-
-

The function to generate the wiki in multiple pages in a folder

-

This function creates the pokete wiki in a single file and adds the -following to it: -- title -- table of contents -- all poketes with information on them -- all attacks with information on them -- all types with information on them -- all items with information on them -- all effects with information on them

-

Arguments:

-
    -
  • folder_name (string): The folder to save the wiki to.
  • -
-
- -Expand source code - -
@staticmethod
-def multi(folder_name: str = "wiki") -> None:
-    """The function to generate the wiki in multiple pages in a folder
-
-    This function creates the pokete wiki in a single file and adds the
-    following to it:
-    - title
-    - table of contents
-    - all poketes with information on them
-    - all attacks with information on them
-    - all types with information on them
-    - all items with information on them
-    - all effects with information on them
-
-    Arguments:
-    ---------
-    - folder_name (string): The folder to save the wiki to.
-    """
-    if QUIET or VERBOSE:
-        print(":: Generating multi-page wiki...")
-        print("==> Checking if old wiki exists...")
-    for folder in ['', '/poketes', '/attacks']:
-        if VERBOSE:
-            print(f' -> Checking "{folder_name}{folder}": ', end='')
-        if exists(folder_name + folder):
-            if not isdir(folder_name + folder):
-                if VERBOSE:
-                    print("Does not exist. Making...")
-                os.mkdir(folder_name + folder)
-            else:
-                if VERBOSE:
-                    print("Exists. Deleting and making new...")
-        else:
-            os.mkdir(folder_name + folder)
-            if VERBOSE:
-                print("Does not exist. Making...")
-
-    if QUIET or VERBOSE:
-        print("==> Adding page start...")
-    if VERBOSE:
-        print(" -> Adding index...")
-    index: str = Wiki.start()
-    if VERBOSE:
-        print(" -> Adding overview...")
-    index += Wiki.overview(multi_page=True) + "\n---\n"
-    if VERBOSE:
-        print(" -> Adding table of contents...")
-    index += Wiki.table_of_contents(multi_page=True)
-    if VERBOSE:
-        print(f' -> Writing to "{folder_name}/index.md"...')
-    with open(f"{folder_name}/index.md", 'w') as file:
-        file.write(index)
-
-    if QUIET or VERBOSE:
-        print("==> Adding poketes...")
-    if VERBOSE:
-        print(" -> Adding index.md...")
-    with open(f"{folder_name}/poketes/index.md", 'w') as file:
-        file.write(Wiki.poketes(page_mode='index'))
-    for typ in types:
-        with open(f"{folder_name}/poketes/{typ}.md", 'w') as file:
-            file.write(Wiki.poketes(page_mode='multi', pokete_type=typ))
-
-    if QUIET or VERBOSE:
-        print("==> Adding attacks...")
-    for page in Wiki.attacks(multi_page=True):
-        file_name, file_contents = page
-        with open(f"{folder_name}/attacks/{file_name}", 'w') as file:
-            file.write(file_contents)
-
-    for name in ["types", "items", "effects"]:
-        if QUIET or VERBOSE:
-            print(f"==> Adding {name}...")
-        with open(f"{folder_name}/{name}.md", 'w') as file:
-            file.write(getattr(Wiki, name)(multi_page=True))
-
-
-
-def overview(multi_page: bool = False) ‑> str -
-
-

A short overview of what the wiki contains.

-

Arguments

-
    -
  • multi_page (boolean): if the item info should be made for a multi-page wiki or not.
  • -
-

Returns

-

An overview for a multi-page wiki.

-
- -Expand source code - -
@staticmethod
-def overview(multi_page: bool = False) -> str:
-    """A short overview of what the wiki contains.
-
-    Arguments
-    ---------
-    - multi_page (boolean): if the item info should be made for a multi-page wiki or not.
-
-    Returns
-    -------
-    An overview for a multi-page wiki.
-    """
-    return "Table of contents\n" + \
-        "\n".join(
-            f"{i + 1}. [{name.capitalize()}]({'' if multi_page else '#'}{name})"
-            for i, name in enumerate(["poketes", "attacks", "types", "item",
-                                      "effects"])) + "\n"
-
-
-
-def poke_info(poke: str, multi_page: bool = False) ‑> str -
-
-

Generates information about a specific pokete

-

Arguments:

-
    -
  • poke (string): The pokete to get the information of.
  • -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string of all the attributes and information of the pokete.

-
- -Expand source code - -
    @staticmethod
-    def poke_info(poke: str, multi_page: bool = False) -> str:
-        """Generates information about a specific pokete
-
-        Arguments:
-        ---------
-        - poke (string): The pokete to get the information of.
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all the attributes and information of the pokete.
-        """
-        if (evolve_pokete := pokes[poke]["evolve_poke"]) == "":
-            evolve_txt = "- Does not evolve\n"
-        else:
-            evolve_txt = f"""- Evolves to [{Wiki.get_name(evolve_pokete)}]({f'./{pokes[evolve_pokete]["types"][0]}'
-            if multi_page else ""}#{evolve_pokete.replace("_", "-")}) at level {pokes[poke]['evolve_lvl']}"""
-
-        md_attacks = "\n   + " + "\n   + ".join(f"""[{attacks[atc]["name"]}]({
-        f'../attacks/{attacks[atc]["types"][0].capitalize()}'
-        if multi_page else ""
-        }#{attacks[atc]["name"]
-                                                .replace(" ", "-").lower()})"""
-                                                for atc in
-                                                pokes[poke]["attacks"])
-        # ico
-        ico_map = se.Map(4, 11, background=" ")
-        for ico in pokes[poke]["ico"]:
-            se.Text(ico["txt"], state="float", ignore=" ").add(ico_map, 0, 0)
-        ico = "".join("".join(arr) + "\n" for arr in ico_map.map)
-
-        active = {
-            True: "Night",
-            False: "Day",
-            None: "Always",
-        }[pokes[poke].get("night_active")]
-
-        md_locations = "\n   + ".join(maps[i]["pretty_name"] for i in maps
-                                      if maps[i]["poke_args"] is not None
-                                      and poke in maps[i]["poke_args"]["pokes"]
-                                      or "w_poke_args" in maps[i]
-                                      and poke in maps[i]["w_poke_args"][
-                                          "pokes"])
-
-        return f"""
-##{'' if multi_page else '##'} {Wiki.get_name(poke)}
-{pokes[poke]["desc"]}
-
-```
-{ico}
-```
-
-- Type: [{pokes[poke]["types"][0].capitalize()}]({'../types' if multi_page
-        else '#types'})
-- Health points: {pokes[poke]["hp"]}
-- Attack factor: {pokes[poke]["atc"]}
-- Defense factor: {pokes[poke]["defense"]}
-- Initiative: {pokes[poke]["initiative"]}
-- Missing chance: {pokes[poke]["miss_chance"]}
-- Rarity: {pokes[poke]["rarity"]}
-- Loosing experience: {pokes[poke]["lose_xp"]}
-- Attacks:{md_attacks}
-- Active: {active}
-- Can be found in:
-   + {md_locations if md_locations != "" else "Nowhere"}
-{evolve_txt}
-"""
-
-
-
-def poketes(page_mode='single', pokete_type=None) ‑> str -
-
-

The function to add all poketes and their attributes to the wiki.

-

Arguments:

-
    -
  • page_mode (string): Defines for what the output will be used. Can be:
      -
    • single: all poketes listed by their types with single-page links
    • -
    • index: Just the index of all pokete types with multi-page links
    • -
    • multi: Information about the pokete type definied in pokete_type -with multi-page links.
    • -
    -
  • -
  • pokete_type: Only necessary if page_mode is set to 'index': Then -defines the pokete type to get the information and links of.
  • -
-

Returns

-

All poketes and their attributes as a markdown string.

-
- -Expand source code - -
    @staticmethod
-    def poketes(page_mode='single', pokete_type=None) -> str:
-        """The function to add all poketes and their attributes to the wiki.
-
-        Arguments:
-        ----------
-        - page_mode (string): Defines for what the output will be used. Can be:
-            - single: all poketes listed by their types with single-page links
-            - index: Just the index of all pokete types with multi-page links
-            - multi: Information about the pokete type definied in pokete_type
-              with multi-page links.
-        - pokete_type: Only necessary if page_mode is set to 'index': Then
-          defines the pokete type to get the information and links of.
-
-        Returns
-        -------
-        All poketes and their attributes as a markdown string.
-        """
-        if page_mode == 'single':
-            out = """
-## Poketes
-In the following all Poketes with their attributes are displayed.
-
-"""
-            for typ in sorted(types):
-                out += f"### {typ.capitalize()} Poketes"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == typ]:
-                    if VERBOSE:
-                        print(f' -> Adding {pokes[poke]["name"]}')
-                    out += Wiki.poke_info(poke)
-            return out
-        elif page_mode == 'index':
-            out = """# Poketes
-In the following all Poketes with their attributes are displayed.
-
-"""
-            for typ in sorted(types):
-                out += f"- [{typ.capitalize()} Poketes](./{typ})\n"
-            out += "\n---\n\n## All poketes sorted by their type:\n"
-            for typ in sorted(types):
-                out += f"- [{typ.capitalize()} Poketes](./{typ})\n"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == typ]:
-                    out += f"""  - [{pokes[poke]["name"].capitalize()}](./{typ}#{poke})\n"""
-            return out
-        elif page_mode == 'multi':
-            if pokete_type is not None:
-                out = f"# {pokete_type.capitalize()} Poketes"
-                for poke in [k for k in sorted(list(pokes)[1:]) if
-                             pokes[k]["types"][0] == pokete_type]:
-                    if poke == sorted(list(pokes)[1:])[-1]:
-                        if VERBOSE:
-                            print(f'  `-> Adding {pokes[poke]["name"]}')
-                    else:
-                        if VERBOSE:
-                            print(f'  |-> Adding {pokes[poke]["name"]}')
-                    out += Wiki.poke_info(poke=poke, multi_page=True)
-                return out
-            raise AttributeError(
-                "Pokete_type can not be none, if mode 'multi' is selected.")
-        raise AttributeError("Please select a valid page mode of: 'single',"
-                             "'index' or 'multi'!")
-
-
-
-def single(filename: str = 'wiki.md') ‑> None -
-
-

The function to generate a single page wiki.

-

This function creates the pokete wiki in a single file and adds the -following to it: -- title -- table of contents -- all poketes with information on them -- all attacks with information on them -- all types with information on them -- all items with information on them -- all effects with information on them

-

Arguments:

-
    -
  • filename (string): The file to save the wiki to.
  • -
-
- -Expand source code - -
@staticmethod
-def single(filename: str = "wiki.md") -> None:
-    """The function to generate a single page wiki.
-
-    This function creates the pokete wiki in a single file and adds the
-    following to it:
-    - title
-    - table of contents
-    - all poketes with information on them
-    - all attacks with information on them
-    - all types with information on them
-    - all items with information on them
-    - all effects with information on them
-
-    Arguments:
-    ---------
-    - filename (string): The file to save the wiki to.
-    """
-    if QUIET or VERBOSE:
-        print(":: Generating wiki.md...")
-    md_str: str = ""
-    for _text, obj in zip(["page start", "table of contents", "poketes",
-                           "attacks", "types", "items", "effects"],
-                          [Wiki.start, Wiki.table_of_contents, Wiki.poketes,
-                           Wiki.attacks, Wiki.types, Wiki.items,
-                           Wiki.effects]):
-        if QUIET or VERBOSE:
-            print(f"==> Adding {_text}...")
-        md_str += obj()
-
-    # writing to file
-    if QUIET or VERBOSE:
-        print("==> Writing to wiki.md...")
-    with open(filename, mode="w+", encoding="utf-8") as file:
-        file.write(md_str)
-
-
-
-def start() ‑> str -
-
-

The start and title of the wiki

-

Returns

-

The title of the wiki page.

-
- -Expand source code - -
    @staticmethod
-    def start() -> str:
-        """The start and title of the wiki
-
-        Returns
-        ---
-        The title of the wiki page.
-        """
-        return f"""v{release.VERSION}
-
-# Pokete Wiki
-This wiki/documentation is a compilation of all Poketes, attacks, and types present in the Pokete game.
-The wiki can be generated using ```$ ./gen_wiki.py```.
-
-Use ```$ ./gen_wiki.py help``` to get more information about different wikis.
-
-You can find different versions of this wiki:
-
-- A single-page version can be found [here](wiki.md)
-- A multi-page version can be found [here](https://lxgr-linux.github.io/pokete/wiki-multi/)
-
-"""
-
-
-
-def table_of_contents(multi_page: bool = False) ‑> str -
-
-

The table of contents of the pokete wiki

-

Arguments

-
    -
  • multi_page (boolean): if the item info should be made for a multi-page wiki or not.
  • -
-

Returns

-

A Table of contents for a single page wiki.

-
- -Expand source code - -
    @staticmethod
-    def table_of_contents(multi_page: bool = False) -> str:
-        """The table of contents of the pokete wiki
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page wiki or not.
-
-        Returns
-        -------
-        A Table of contents for a single page wiki.
-        """
-        out = ''
-
-        # Table of contents
-        if not multi_page:
-            out += """## Table of contents
-1. [Poketes](#poketes)
-"""
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} Poketes](#{typ}-poketes)\n"""
-                for j, poke in enumerate([k for k in sorted(list(pokes)[1:]) if
-                                          pokes[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{Wiki.get_name(poke)}](#{poke.replace("_", "-")})\n"""
-            out += "2. [Attacks](#attacks)\n"
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} attacks](#{typ}-attacks)\n"""
-                for j, atc in enumerate([k for k in sorted(attacks) if
-                                         attacks[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{attacks[atc]["name"]}](#{attacks[atc]["name"]
-                    .replace(" ", "-").lower()})\n"""
-            out += """3. [Types](#types)
-4. [Items](#items)
-"""
-            for j, item in enumerate(sorted(items)):
-                out += f"""   {j + 1}. [{items[item]["pretty_name"]}](#{item.replace("_", "-")})\n"""
-            out += """5. [Effects](#effects)
-"""
-            for j, effect in enumerate(effect_list):
-                out += f"""   {j + 1}. [{effect.c_name.capitalize()}](#{effect.c_name.replace("_", "-")})
-"""
-
-        else:
-            out += """## Table of contents
-1. [Poketes](./poketes)
-"""
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} Poketes](./poketes/{typ})\n"""
-                for j, poke in enumerate([k for k in sorted(list(pokes)[1:]) if
-                                          pokes[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{Wiki.get_name(poke)}](./poketes/{typ}#{poke.replace("_", "-")})\n"""
-            out += "2. [Attacks](./attacks)\n"
-            for i, typ in enumerate(sorted(types)):
-                out += f"""   {i + 1}. [{typ.capitalize()} attacks](./attacks/{typ})\n"""
-                for j, atc in enumerate([k for k in sorted(attacks) if
-                                         attacks[k]["types"][0] == typ]):
-                    out += f"""       {j + 1}. [{attacks[atc]["name"]}](./attack/{typ}#{atc.replace("_", "-")})\n"""
-            out += """3. [Types](./types)
-4. [Items](./items)
-"""
-            for j, item in enumerate(sorted(items)):
-                out += f"""   {j + 1}. [{items[item]["pretty_name"]}](./items#{item.replace("_", "-")})\n"""
-            out += """5. [Effects](./effects)
-"""
-            for j, effect in enumerate(effect_list):
-                out += f"""   {j + 1}. [{effect.c_name.capitalize()}](./effects#{effect.c_name.replace("_", "-")})
-"""
-        return out
-
-
-
-def types(multi_page: bool = False) ‑> str -
-
-

The function to add all types to the wiki.

-

Arguments

-
    -
  • multi_page (boolean): if the item info should be made for a multi-page -wiki or not.
  • -
-

Returns

-

A markdown string of all available types.

-
- -Expand source code - -
    @staticmethod
-    def types(multi_page: bool = False) -> str:
-        """The function to add all types to the wiki.
-
-        Arguments
-        ---------
-        - multi_page (boolean): if the item info should be made for a multi-page
-          wiki or not.
-
-        Returns
-        -------
-        A markdown string of all available types.
-        """
-        out = f"""
-#{'' if multi_page else '#'} Types
-Those are all the Pokete/Attack types that are present in the game with all their (in)effectivities against other types.
-
-|Type|Effective against|Ineffective against|
-|---|---|---|
-"""
-
-        for poke_type in types:
-            effective, ineffective = ("".join([i.capitalize() + (", "
-                                                                 if i != types[
-                poke_type][j][-1]
-                                                                 else "")
-                                               for i in types[poke_type][j]])
-                                      for j in ["effective", "ineffective"])
-            out += f"|{poke_type.capitalize()}|{effective}|{ineffective}|\n"
-
-        return out + '\n'
-
-
-
-
-
-
-
- -
- - - \ No newline at end of file diff --git a/doc/pokete_data/achievements.html b/doc/pokete_data/achievements.html index 6378359f..60009f1b 100644 --- a/doc/pokete_data/achievements.html +++ b/doc/pokete_data/achievements.html @@ -2,18 +2,21 @@ - - + + pokete_data.achievements API documentation - - - - - - + + + + + + - - + +
@@ -23,31 +26,6 @@

Module pokete_data.achievements

Contains raw achievement data

-
- -Expand source code - -
"""Contains raw achievement data"""
-
-achievements = {
-    "first_poke": {
-        "title": "First Pokete",
-        "desc": "Catch your first Pokete!"
-    },
-    "first_duel": {
-        "title": "First duel",
-        "desc": "Fight against your first trainer!"
-    },
-    "catch_em_all": {
-        "title": "Catch em all",
-        "desc": "Catch all Poketes and fill your Pokete-Dex!"
-    },
-    "first_evolve": {
-        "title": "First evolution",
-        "desc": "Evolve your first Pokete!"
-    },
-}
-
@@ -59,7 +37,6 @@

Module pokete_data.achievements

- \ No newline at end of file + diff --git a/doc/pokete_data/attacks.html b/doc/pokete_data/attacks.html index 0954128d..9458c66a 100644 --- a/doc/pokete_data/attacks.html +++ b/doc/pokete_data/attacks.html @@ -2,18 +2,21 @@ - - + + pokete_data.attacks API documentation - - - - - - + + + + + + - - + +
@@ -22,982 +25,6 @@

Module pokete_data.attacks

-
- -Expand source code - -
attacks = {
-    # normal attacks
-    "tackle": {
-        "name": "Tackle",
-        "factor": 3 / 2,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Tackles the enemy very hard.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 30,
-    },
-    "cry": {
-        "name": "Cry",
-        "factor": 0,
-        "action": "cry",
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "So loud that it confuses the enemy.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    "bite": {
-        "name": "Bite",
-        "factor": 1.75,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 0,
-        "desc": "A hard bite with sharp teeth.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 30,
-    },
-    "power_bite": {
-        "name": "Power Bite",
-        "factor": 8,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 30,
-        "desc": "The hardest bite you can think of.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 5,
-    },
-    "chocer": {
-        "name": "Choker",
-        "factor": 1,
-        "action": "chocer",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Chokes the enemy and makes it weaker.",
-        "types": ["normal", "snake"],
-        "effect": "paralyzation",
-        "is_generic": True,
-        "ap": 15,
-    },
-    "tail_wipe": {
-        "name": "Tail Swipe",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.5,
-        "min_lvl": 10,
-        "desc": "Swipes through the enemy's face.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    "meat_skewer": {
-        "name": "Meat Skewer",
-        "factor": 3.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.7,
-        "min_lvl": 0,
-        "desc": "Drills a horn deep in the enemy's flesh.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    "snooze": {
-        "name": "Snooze",
-        "factor": 0,
-        "action": "snooze",
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 15,
-        "desc": "Makes the enemy sleepy.",
-        "types": ["normal"],
-        "effect": "sleep",
-        "is_generic": False,
-        "ap": 15,
-    },
-    "supercow_power": {
-        "name": "Supercow Power",
-        "factor": 0,
-        "action": "dick_energy",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 10,
-        "desc": "Makes the Pokete angry and strong.",
-        "types": ["normal"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    # poison attacks
-    "poison_bite": {
-        "name": "Poison Bite",
-        "factor": 1,
-        "action": None,
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.3,
-        "min_lvl": 0,
-        "desc": "Makes the enemy weaker.",
-        "types": ["poison", "snake"],
-        "effect": "poison",
-        "is_generic": True,
-        "ap": 10,
-    },
-    "poison_thorn": {
-        "name": "Poison Thorn",
-        "factor": 2.75,
-        "action": None,
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.1,
-        "min_lvl": 15,
-        "desc": "Stabs a venomous thorn into the enemy's flesh.",
-        "types": ["poison"],
-        "effect": "poison",
-        "is_generic": False,
-        "ap": 20,
-    },
-    # stone attacks
-    "pepple_fire": {
-        "name": "Pebble Fire",
-        "factor": 1,
-        "action": "cry",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Fires pebbles at the enemy and makes it blind.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 5,
-    },
-    "sand_throw": {
-        "name": "Sand Throw",
-        "factor": 1,
-        "action": "cry",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Throws sand at the enemy and makes it blind.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 5,
-    },
-    "politure": {
-        "name": "Polish",
-        "factor": 0,
-        "action": "politure",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Upgrades defense and attack points.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "brick_throw": {
-        "name": "Brick Throw",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["throw"],
-        "miss_chance": 0.3,
-        "min_lvl": 15,
-        "desc": "Throws an Euler brick at the enemy.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "stone_crush": {
-        "name": "Stone crush",
-        "factor": 2,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.3,
-        "min_lvl": 0,
-        "desc": "Crushes the enemy between two heavy stones.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 20,
-    },
-    "rock_smash": {
-        "name": "Rock Smash",
-        "factor": 5,
-        "action": None,
-        "world_action": "",
-        "move": ["pound"],
-        "miss_chance": 0.1,
-        "min_lvl": 15,
-        "desc": "Pounds the enemy with the Pokete's full weight.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 5,
-    },
-    "dia_stab": {
-        "name": "Dia Stab",
-        "factor": 5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 15,
-        "desc": "Stabs the enemy with a giant diamond spike.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 5,
-    },
-    "dazzle": {
-        "name": "Dazzle",
-        "factor": 1.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 10,
-        "desc": "Shines a bright light at the enemy and dazzles them.",
-        "types": ["stone"],
-        "effect": "paralyzation",
-        "is_generic": False,
-        "ap": 20,
-    },
-    "dia_spikes": {
-        "name": "Dia spikes",
-        "factor": 2,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0,
-        "min_lvl": 20,
-        "desc": "Throws a heck of a lot of diamond spikes at the enemy.",
-        "types": ["stone"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 20,
-    },
-    # ground attacks
-    "earch_quake": {
-        "name": "Earthquake",
-        "factor": 4,
-        "action": None,
-        "world_action": "",
-        "move": ["pound"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Moves the ground with tremendous force.",
-        "types": ["ground"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "power_roll": {
-        "name": "Power Roll",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Rolls over the enemy.",
-        "types": ["ground"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "toe_breaker": {
-        "name": "Toe Breaker",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.3,
-        "min_lvl": 0,
-        "desc": "Breaks the enemy's toes.",
-        "types": ["ground"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 20,
-    },
-    "ground_hit": {
-        "name": "Ground Hit",
-        "factor": 3,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 0,
-        "desc": "Damages the enemy with an unpredictable hit out of the ground.",
-        "types": ["ground"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "dick_energy": {
-        "name": "Dick Energy",
-        "factor": 0,
-        "action": "dick_energy",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Collects a great amount of energy in the Pokete's tip.",
-        "types": ["ground"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 15,
-    },
-    "hiding": {
-        "name": "Hiding",
-        "factor": 0,
-        "action": "hiding",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 20,
-        "desc": "Makes the Pokete hide under the ground to minimize damage.",
-        "types": ["ground"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 15,
-    },
-     "webattack": {
-        "name": "Web attack",
-        "factor": 1,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Thows web towards enemy in order to immobilize.",
-        "types": ["normal"],
-        "effect": "paralyzation",
-        "is_generic": False,
-        "ap": 10,
-    },
-
-    # Fire attacks
-    "fire_bite": {
-        "name": "Fire Bite",
-        "factor": 2,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Burns and bites the enemy at the same time.",
-        "types": ["fire"],
-        "effect": "burning",
-        "is_generic": True,
-        "ap": 15,
-    },
-    "ash_throw": {
-        "name": "Ash Throw",
-        "factor": 0.5,
-        "action": "cry",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 15,
-        "desc": "Throws ashes in the enemy's eyes.",
-        "types": ["fire"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "flame_throw": {
-        "name": "Flame Throw",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.3,
-        "min_lvl": 15,
-        "desc": "Hans! Get ze Flammenwerfer!",
-        "types": ["fire"],
-        "effect": "burning",
-        "is_generic": True,
-        "ap": 10,
-    },
-
-    "fire_ball": {
-        "name": "Fire Ball",
-        "factor": 4,
-        "action": None,
-        "world_action": "",
-        "move": ["fireball"],
-        "miss_chance": 0,
-        "min_lvl": 25,
-        "desc": "Casts a fireball at the enemy.",
-        "types": ["fire"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    # flying attacks
-    "flying": {
-        "name": "Flying",
-        "factor": 1.5,
-        "action": None,
-        "world_action": "teleport",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 0,
-        "desc": "Gives the Pokete the ability to fly you around.",
-        "types": ["flying"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 30,
-    },
-    "pick": {
-        "name": "Peck",
-        "factor": 1.7,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 0,
-        "desc": "A peck at the enemy's weakest spot.",
-        "types": ["flying", "bird"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 30,
-    },
-    "wind_blow": {
-        "name": "Wind Blow",
-        "factor": 2,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Casts a gust of wind at the enemy.",
-        "types": ["flying"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 20,
-    },
-    "storm_gust": {
-        "name": "Storm Gale",
-        "factor": 6,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Casts a vicious and violent storm full of rain and hail, hitting the enemy in its weakest spots "
-                "and makes it want to die.",
-        "types": ["flying"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "schmetter": {
-        "name": "Schmetter",
-        "factor": 1.7,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 0,
-        "desc": "Schmetters the enemy away.",
-        "types": ["flying"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 30,
-    },
-    "eye_pick": {
-        "name": "Eye Peck",
-        "factor": 2.5,
-        "action": "eye_pick",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.6,
-        "min_lvl": 0,
-        "desc": "Pecks at one of the enemy's eyes.",
-        "types": ["flying", "bird"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "wing_hit": {
-        "name": "Wing Hit",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.5,
-        "min_lvl": 0,
-        "desc": "Hits the enemy with a wing.",
-        "types": ["flying"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "brooding": {
-        "name": "Brooding",
-        "factor": 0,
-        "action": "brooding",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 15,
-        "desc": "Regenerates 2 HP.",
-        "types": ["flying", "bird"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "power_pick": {
-        "name": "Power Peck",
-        "factor": 2,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.4,
-        "min_lvl": 0,
-        "desc": "A harsh pecking on the enemy's head.",
-        "types": ["flying", "bird"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    # water attacks
-    "bubble_gun": {
-        "name": "Bubble Gun",
-        "factor": 2,
-        "action": None,
-        "world_action": "",
-        "move": ["gun"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Fires some bubbles at the enemy.",
-        "types": ["water"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 20,
-    },
-    "rain_dance": {
-        "name": "Rain dance",
-        "factor": 2,
-        "action": "rain_dance",
-        "world_action": "",
-        "move": ["rain"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Summons rainy clouds.",
-        "types": ["water"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    "bubble_bomb": {
-        "name": "Bubble Bomb",
-        "factor": 6,
-        "action": "cry",
-        "world_action": "",
-        "move": ["bomb", "downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "A deadly bubble.",
-        "types": ["water"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "bubble_shield": {
-        "name": "Bubble Shield",
-        "factor": 0,
-        "action": "hiding",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Creates a giant bubble that protects the Pokete.",
-        "types": ["water"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "wet_slap": {
-        "name": "Wet Slap",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 10,
-        "desc": "Gives the enemy a cold and wet slap in the face.",
-        "types": ["water"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "shell_pinch": {
-        "name": "Shell Pinch",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.1,
-        "min_lvl": 15,
-        "desc": "Pinches the enemy with its strong shell.",
-        "types": ["water"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 20,
-    },
-    # undead attacks
-    "heart_touch": {
-        "name": "Heart Touch",
-        "factor": 4,
-        "action": "heart_touch",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 20,
-        "desc": "Touches the enemy's heart with cold, ghostly claws.",
-        "types": ["undead"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "confusion": {
-        "name": "Confusion",
-        "factor": 0,
-        "action": None,
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Confuses the enemy.",
-        "types": ["undead"],
-        "effect": "confusion",
-        "is_generic": True,
-        "ap": 40,
-    },
-    "mind_blow": {
-        "name": "Mind Blow",
-        "factor": 0,
-        "action": None,
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Causes confusion deep in the enemy's mind.",
-        "types": ["undead"],
-        "effect": "confusion",
-        "is_generic": True,
-        "ap": 15,
-    },
-    # electro attacks
-    "shock": {
-        "name": "Shock",
-        "factor": 3 / 2,
-        "action": None,
-        "world_action": "",
-        "move": ["arch"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Gives the enemy a shock.",
-        "types": ["electro"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 30,
-    },
-    "charging": {
-        "name": "Charging",
-        "factor": 0,
-        "action": "dick_energy",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 10,
-        "desc": "Charges up the Pokete.",
-        "types": ["electro"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "mega_arch": {
-        "name": "Mega Arch",
-        "factor": 5,
-        "action": None,
-        "world_action": "",
-        "move": ["arch"],
-        "miss_chance": 0.2,
-        "min_lvl": 15,
-        "desc": "Gives the enemy a massive shock.",
-        "types": ["electro"],
-        "effect": "paralyzation",
-        "is_generic": True,
-        "ap": 10,
-    },
-    # plant attacks
-    "special_smell": {
-        "name": "Special Smell",
-        "factor": 0,
-        "action": None,
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0.1,
-        "min_lvl": 0,
-        "desc": "Spreads a special smell that will make the enemy confused but very happy.",
-        "types": ["plant"],
-        "effect": "confusion",
-        "is_generic": False,
-        "ap": 10,
-    },
-    "apple_drop": {
-        "name": "Apple Drop",
-        "factor": 1.7,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.3,
-        "min_lvl": 0,
-        "desc": "Makes an apple drop on the enemy's head.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 30,
-    },
-    "encouragement": {
-        "name": "Encouragement",
-        "factor": 0,
-        "action": "encouragement",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 20,
-        "desc": "Encourages and strengthens all Poketes in your team.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    "super_sucker": {
-        "name": "Super Sucker",
-        "factor": 0,
-        "action": "super_sucker",
-        "world_action": "",
-        "move": ["downgrade", "shine"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Sucks 2 HP from the enemy and adds to its own.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 10,
-    },
-    "sucker": {
-        "name": "Sucker",
-        "factor": 0,
-        "action": "sucker",
-        "world_action": "",
-        "move": ["downgrade", "shine"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Sucks 1 HP from the enemy and adds to its own.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 20,
-    },
-    "root_strangler": {
-        "name": "Root Strangler",
-        "factor": 1,
-        "action": None,
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 20,
-        "desc": "Uses old and crusty roots to strangle the enemy.",
-        "types": ["plant"],
-        "effect": "paralyzation",
-        "is_generic": True,
-        "ap": 15,
-    },
-    "root_slap": {
-        "name": "Root Slap",
-        "factor": 1.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.2,
-        "min_lvl": 0,
-        "desc": "Uses old and crusty roots to slap the enemy.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 30,
-    },
-    "the_old_roots_hit": {
-        "name": "The Old Roots Hit",
-        "factor": 50,
-        "action": None,
-        "world_action": "",
-        "move": ["shine", "shine", "attack"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "An ancient attack that summons the deepest and oldest roots from deep in the earth to defeat the enemy.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": False,
-        "ap": 1,
-    },
-    "leaf_storm": {
-        "name": "Leaf Storm",
-        "factor": 5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0,
-        "min_lvl": 20,
-        "desc": "Blasts a bunch of spiky leaves at the enemy.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "bark_hardening": {
-        "name": "Bark Hardening",
-        "factor": 0,
-        "action": "bark_hardening",
-        "world_action": "",
-        "move": ["shine"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Hardens its outer layers to protect itself.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 15,
-    },
-    "poison_spores": {
-        "name": "Poison Spores",
-        "factor": 0,
-        "action": None,
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Ejects some poisonous spores onto the enemy.",
-        "types": ["plant"],
-        "effect": "poison",
-        "is_generic": False,
-        "ap": 15,
-    },
-    "branch_stab": {
-        "name": "Branch Stab",
-        "factor": 4,
-        "action": "cry",
-        "world_action": "",
-        "move": ["attack", "downgrade"],
-        "miss_chance": 0.2,
-        "min_lvl": 15,
-        "desc": "Stabs the enemy with a branch, preferably in the enemy's eyes.",
-        "types": ["plant"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    # ice attacks
-    "freeze": {
-        "name": "Freeze",
-        "factor": 0,
-        "action": None,
-        "world_action": "",
-        "move": ["downgrade"],
-        "miss_chance": 0.1,
-        "min_lvl": 10,
-        "desc": "Freezes the enemy.",
-        "types": ["ice"],
-        "effect": "freezing",
-        "is_generic": True,
-        "ap": 10,
-    },
-    "snow_storm": {
-        "name": "Snow Storm",
-        "factor": 2.5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Summons a snow storm full of ice spikes onto the enemy.",
-        "types": ["ice"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 20,
-    },
-    "sword_of_ice": {
-        "name": "Sword of Ice",
-        "factor": 5,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0.3,
-        "min_lvl": 20,
-        "desc": "Stabs a giant ice spike into the enemy.",
-        "types": ["ice"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 10,
-    },
-    "spikes": {
-        "name": "Spikes",
-        "factor": 1.75,
-        "action": None,
-        "world_action": "",
-        "move": ["attack"],
-        "miss_chance": 0,
-        "min_lvl": 0,
-        "desc": "Stabs the enemy with some small ice spikes.",
-        "types": ["ice"],
-        "effect": None,
-        "is_generic": True,
-        "ap": 30,
-    },
-}
-
-if __name__ == "__main__":
-    print("\033[31;1mDo not execute this!\033[0m")
-
@@ -1009,7 +36,6 @@

Module pokete_data.attacks

- \ No newline at end of file + diff --git a/doc/pokete_data/index.html b/doc/pokete_data/index.html index e25bd2a0..1aa77c45 100644 --- a/doc/pokete_data/index.html +++ b/doc/pokete_data/index.html @@ -2,20 +2,23 @@ - - + + pokete_data API documentation - - - - - +…"> + + + + + - - + +
@@ -28,114 +31,6 @@

Package pokete_data

p_data can be manipulated by mods and therefore should be injected and not imported

I know all this is very awfull…

-
- -Expand source code - -
"""This provides p_data. Never ever import this except for in pokete.py since
-   p_data can be manipulated by mods and therefore should be injected and not
-   imported
-
-   I know all this is very awfull..."""
-
-from .poketes import *
-from .attacks import *
-from .map_data import *
-from .types import *
-from .items import *
-from .trainers import *
-from .npcs import *
-from .mapstations import *
-from .maps import *
-from .achievements import *
-from .weather import *
-from .natures import *
-
-
-class ValidationError(Exception):
-    """Error thrown when validation fails
-    ARGS:
-        value: The missing values name
-        name: The dicts name
-        validator: The dicts type"""
-
-    def __init__(self, value, name, validator):
-        super().__init__(f"Value '{value}' is not in '{name}' ({validator})")
-
-
-def one_validate(ob, validator, name):
-    """Validates one dict entry
-    ARGS:
-        ob: Dict entry
-        validator: key for validators
-        name: Name for error"""
-    for value in validators[validator]:
-        if value not in ob:
-            raise ValidationError(value, name, validator)
-
-
-def single_validate(dict, validator, name=""):
-    """Validates a single dict
-    ARGS:
-        dict: Dict to validate
-        validator: key for validators
-        name: Optional name"""
-    for j in dict:
-        one_validate(dict[j], validator, f"{name}.{j}")
-
-
-def validate():
-    """Validates all modules"""
-    all_trainer_names = []
-
-    for i, j in zip(
-        [weathers, achievements, pokes, types, map_data, stations, items, npcs,
-         attacks, maps], validators):
-        single_validate(i, j)
-    for p in pokes:
-        for i in pokes[p]["ico"]:
-            one_validate(i, "poke_ico", p + ".ico")
-    for m in map_data:
-        for i in ["hard_ob", "soft_ob", "dor", "ball"]:
-            single_validate(map_data[m][i + "s"], i, m)
-    for s in stations:
-        one_validate(stations[s]["gen"], "gen", s + ".gen")
-        one_validate(stations[s]["add"], "add", s + "add")
-    for t in trainers:
-        for i in trainers[t]:
-            one_validate(i, "trainer", t + ".trainer")
-            if (trainer_name := i["args"][0]) in all_trainer_names:
-                raise Exception(f"Trainer {i}s name is duplicated")
-            all_trainer_names.append(trainer_name)
-
-
-validators = {
-    "weathers": ["info", "effected"],
-    "achievements": ["title", "desc"],
-    "poke": ["name", "hp", "atc", "defense", "attacks", "miss_chance", "desc",
-             "lose_xp", "rarity", "types", "evolve_poke", "evolve_lvl", "ico",
-             "initiative"],
-    "type": ["effective", "ineffective", "color"],
-    "playmap": ["hard_obs", "soft_obs", "dors", "balls"],
-    "station": ["gen", "add"],
-    "item": ["pretty_name", "desc", "price", "fn"],
-    "npc": ["texts", "fn", "map", "x", "y"],
-    "attack": ["name", "factor", "action", "move", "miss_chance", "min_lvl",
-               "desc", "types", "effect", "is_generic", "ap"],
-    "map": ["height", "width", "pretty_name", "extra_actions", "poke_args"],
-    "hard_ob": ["x", "y", "txt"],
-    "soft_ob": ["x", "y", "txt"],
-    "dor": ["x", "y", "args"],
-    "ball": ["x", "y"],
-    "gen": ["additionals", "text", "desc"],
-    "add": ["x", "y"],
-    "poke_ico": ["txt", "esc"],
-    "trainer": ["pokes", "args"]
-}
-
-if __name__ == "__main__":
-    print("\033[31;1mDo not execute this!\033[0m")
-

Sub-modules

@@ -213,20 +108,6 @@

Args

name
Name for error
-
- -Expand source code - -
def one_validate(ob, validator, name):
-    """Validates one dict entry
-    ARGS:
-        ob: Dict entry
-        validator: key for validators
-        name: Name for error"""
-    for value in validators[validator]:
-        if value not in ob:
-            raise ValidationError(value, name, validator)
-
def single_validate(dict, validator, name='') @@ -242,53 +123,12 @@

Args

name
Optional name
-
- -Expand source code - -
def single_validate(dict, validator, name=""):
-    """Validates a single dict
-    ARGS:
-        dict: Dict to validate
-        validator: key for validators
-        name: Optional name"""
-    for j in dict:
-        one_validate(dict[j], validator, f"{name}.{j}")
-
def validate()

Validates all modules

-
- -Expand source code - -
def validate():
-    """Validates all modules"""
-    all_trainer_names = []
-
-    for i, j in zip(
-        [weathers, achievements, pokes, types, map_data, stations, items, npcs,
-         attacks, maps], validators):
-        single_validate(i, j)
-    for p in pokes:
-        for i in pokes[p]["ico"]:
-            one_validate(i, "poke_ico", p + ".ico")
-    for m in map_data:
-        for i in ["hard_ob", "soft_ob", "dor", "ball"]:
-            single_validate(map_data[m][i + "s"], i, m)
-    for s in stations:
-        one_validate(stations[s]["gen"], "gen", s + ".gen")
-        one_validate(stations[s]["add"], "add", s + "add")
-    for t in trainers:
-        for i in trainers[t]:
-            one_validate(i, "trainer", t + ".trainer")
-            if (trainer_name := i["args"][0]) in all_trainer_names:
-                raise Exception(f"Trainer {i}s name is duplicated")
-            all_trainer_names.append(trainer_name)
-
@@ -334,7 +174,6 @@

Ancestors