GithubHelp home page GithubHelp logo

gilbertrdzdev / lindo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from prixe/lindo

0.0 0.0 0.0 8.39 MB

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

License: GNU General Public License v3.0

NSIS 0.08% TypeScript 85.82% JavaScript 2.34% HTML 8.65% SCSS 3.11%

lindo's Introduction

Lindo

Build Status npm node Github All Releases

https://lindo-app.com

🇬🇧 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 7 and newer (ia32/amd64)
  • macOS 10.9 and newer
  • Linux (Debian >= 9, Ubuntu >= 18) (amd64)

Table of contents

Community

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 install

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. Or you can eventually join our Discord. 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

lindo's People

Contributors

juliencoutault avatar clover-lindo avatar sylvainsimon avatar aejii avatar theketur55 avatar flashacker-neo avatar dazornsama avatar hopollo avatar dependabot[bot] avatar wordeur avatar axel012 avatar asimatasert avatar demogrogron avatar kjus14 avatar gilbertrdzdev avatar sorinluc avatar nicolasquintanam avatar tagazox avatar xelorium avatar ninodlc avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.