Skip to content
/ lindo Public
forked from prixe/lindo

Lindo (original fork of the almighty no-emu by Daniel & Thomas) allows you to play Dofus touch on your computer (Windows/Mac/Linux)

License

Notifications You must be signed in to change notification settings

MinZe25/lindo

 
 

Repository files navigation

Lindo

Release npm node Github All Releases Contributors Website lindo-app.com

https://lindo-app.com

Links

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:

What is Lindo?

🇬🇧 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.

⚠️ Dofus Touch is the entire property of Ankama Games, and we are not affiliated with Ankama. None of the files hosted in this repository are under copyright: They come from Open Source projects, libraries, the original DofusTouch No-Emu created by Daniel & Thomas and the work of direct contributors. We do not intend to cause any harm to Ankama Games and will never take any revenue from this project.

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.

Supported Platform

Lindo No-Emu works on :

  • Windows 10 and newer (ia32/amd64)
  • macOS 10.9 and newer
  • Linux (Debian >= 9, Ubuntu >= 18) (amd64)

Table of contents

Installation

Prerequisites

Node.js

$ apt-get install nodejs
  • macOS
$ brew install nodejs

Build Lindo

$ git clone https://github.com/prixe/lindo.git
$ cd lindo
$ npm ci

Start project in dev mode

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')

Distribution building

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 :

Windows

On a windows environment :

$ npm run release:win

On a unix system (require docker)

$ docker-compose up

Linux

$ npm run release:linux

macOS

Only available on macOS system :

$ npm run release:mac

Development

Introduction

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.

Commands explanation

$ 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

Subcommands

  • $ npm run build:dev

    • $ npm run build:electron:dev
      • $ tsc -p electron/: transpiles electron context files from TS to JS and puts them in dist/electron
      • $ ncp electron/i18n dist/electron/i18n: copies i18n files from electron/i18n to dist/electron/i18n
    • $ npm run lint: executes ng 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 in dist/electron
      • $ ncp electron/i18n dist/electron/i18n: copies i18n files from electron/i18n to dist/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.

How to help ?

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.

Generate the TOC

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

Structure of the application

[TODO]

License

Lindo is under GNU GPLv3 read LICENCE

Credits

  • Daniel & Thomas for created the original No-Emu
  • Ankama which allows us to increase our competences without legal consequence

About

Lindo (original fork of the almighty no-emu by Daniel & Thomas) allows you to play Dofus touch on your computer (Windows/Mac/Linux)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 84.9%
  • HTML 9.0%
  • SCSS 3.2%
  • JavaScript 2.8%
  • NSIS 0.1%