Find us on Reddit to exchange with the community!
We are also on Twitter and Telegram if you want to get notified of new updates:
🇬🇧 Lindo allows you to play Dofus Touch on your computer (Windows / Mac OS / Linux) without android emulator, it is based on crossplatform technologies.
🇫🇷 Lindo vous permet de jouer à Dofus Touch sur votre ordinateur (Windows / Mac OS / Linux) sans utiliser d'émulateur, il est basé sur des technologies crossplateformes.
Keep in mind that Lindo doesn't officially respect the TOU (also known as CGU, Conditions Générales d'Utilisation in french) of Dofus Touch, use it at your own risk.
Lindo No-Emu works on :
- Windows 10 and newer (ia32/amd64)
- macOS 10.9 and newer
- Linux (Debian >= 9, Ubuntu >= 18) (amd64)
- Windows : Website
- Linux
$ apt-get install nodejs
- macOS
$ brew install nodejs
$ git clone https://github.com/prixe/lindo.git
$ cd lindo
$ npm ci
Compile electron typescript source and angular source in developpement mode with a watcher (don't stop this command until you stop developing) :
$ npm run build:dev
Start the project in electron (open a new terminal) :
$ npm start
Each time you change something in your code, you must restart lindo (restart 'npm start')
If you want to make a release for a specific system, make sure build the project in production mode first:
$ npm run build:prod
Then you can use this command :
On a windows environment :
$ npm run release:win
On a unix system (require docker)
$ docker-compose up
$ npm run release:linux
Only available on macOS system :
$ npm run release:mac
Lindo is developed with Angular as web framework and uses Material for the UI. It uses electron to be run as an standalone application, wich is based on Node.js and Chromium.
So we have to distinguish 2 contexts :
- Navigator context -> executed by Chromium (the Angular part)
- Electron context -> executed by Node.js (it's allow platform interaction)
Navigator context is in the src/
folder and Electron context is in the electron/
folder.
The idea is to simulate the environment Dofus Touch to run it on PC, because Dofus Touch is based on Apache Cordova.
$ npm install
Installs the packages in package.json and their dependencies
$ npm run build:dev
Executes multiple subcommands to build for development
$ npm start
Executes electron ./
and since "main": "/dist/electron/main.js"
(in package.json) it becomes executing electron ./dist/electron/main.js
which in turn eventually loads /dist/app/index.html
(which is the angular context) once it gets to main-window.js
$ npm run build:prod
Executes multiple subcommands to build for production
$ npm run release:win
(or release:mac or release:linux): executes in the case of release:win for example build --win --x64 --ia32
to compile and build the final binaries using electron-builder that in turn is using loaded configuration file=package.json ("build" field)
, and writing effective config file=releases\builder-effective-config.yaml
resulting in usable files in releases folder
-
$ npm run build:dev
$ npm run build:electron:dev
$ tsc -p electron/
: transpiles electron context files from TS to JS and puts them indist/electron
$ ncp electron/i18n dist/electron/i18n
: copies i18n files fromelectron/i18n
todist/electron/i18n
$ npm run lint
: executesng lint
to start lint verification of the files$ ng build --watch
: builds angular context into dist/app, watches the source files for changes then builds them without the need to re-run this command
-
$ npm run build:prod
$ npm run build:electron:prod
$ tsc -p electron/tsconfig.prod.json
: transpiles electron context files from TS to JS and puts them indist/electron
$ ncp electron/i18n dist/electron/i18n
: copies i18n files fromelectron/i18n
todist/electron/i18n
$ npm run lint
: executes$ ng lint
to start lint verification of the files$ ng build --configuration=production
: builds angular context into dist/app
The config used by angular in $ ng build (--configuration=production)
is at angular.json and particularly projects => lindo => architect => build => configurations => production. There is also stuff like file replacements inside.
In the case of errors during building use an older version of node temporarily until the project gets updated and uses a more recent version. I personally use nvm to use the version 8.17.0 of Nodejs when building Lindo.
You can contact a senior developer of the project as Clover or Prixe. Then you can create a pull request to add or fix features, you can also submit improvement idea or bug issue in the issues section.
If you edit the README.MD you wanna update the table of contents you can easily achieve it by using this command :
$ npm run toc
[TODO]
Lindo is under GNU GPLv3 read LICENCE
- Daniel & Thomas for created the original No-Emu
- Ankama which allows us to increase our competences without legal consequence