Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgraded to Node v18 #84

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
18.12.1
11 changes: 5 additions & 6 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"printWidth": 140,
"parser": "flow",
"semi": false,
"singleQuote": true,
"tabWidth": 4,
"useTabs": true
"printWidth": 140,
"semi": false,
"singleQuote": true,
"tabWidth": 4,
"useTabs": true
}
48 changes: 30 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,57 @@
# Rotten Soup

###### A roguelike written in JavaScript with [Vue](https://vuejs.org/), [Vuetify](https://vuetifyjs.com/en/), [Tiled](https://www.mapeditor.org/), [rot.js](http://ondras.github.io/rot.js/hp/) and [PixiJS](http://www.pixijs.com/).

![screenshot](public/images/screen.gif)

While maintaining some roots in traditional roguelike gameplay with features like randomly generated dungeons, turn-based combat and permadeath, Rotten Soup also has many modern features such as tiled graphics, animations, a statically defined overworld, and mouse controls. Since Rotten Soup is developed using JavaScript, you can play it in your browser [here](https://rottensoup.herokuapp.com)!

## Features
* [x] Three detailed areas that you can explore. The Mulberry Town, Forest & Graveyard
* [x] Randomly generated dungeons with different themes every 5 floors with unique enemies and loot
* [x] A tough mini-boss that can raise the dead
* [x] Dozens of unique villagers!
* [x] Melee, Magic, and Ranged combat
* [x] Wide variety of playable characters
* [x] Potions, swords, keys, and spellbooks!
* [x] Quests
* [x] Dialog and interaction with NPC's
* [x] Procedurally generated worlds not unlike Minecraft
* [x] Weapon enchantments
* [x] Goal-based enemies

- [x] Three detailed areas that you can explore. The Mulberry Town, Forest & Graveyard
- [x] Randomly generated dungeons with different themes every 5 floors with unique enemies and loot
- [x] A tough mini-boss that can raise the dead
- [x] Dozens of unique villagers!
- [x] Melee, Magic, and Ranged combat
- [x] Wide variety of playable characters
- [x] Potions, swords, keys, and spellbooks!
- [x] Quests
- [x] Dialog and interaction with NPC's
- [x] Procedurally generated worlds not unlike Minecraft
- [x] Weapon enchantments
- [x] Goal-based enemies

## Stuff I'm working on
* [ ] Shops where you can sell/buy items
* [ ] Unique characters classes, skills, and abilities
* [ ] More weapons (Axes, Polearms, Bows, Staves, Morningstar, Whips, Daggers, Clubs, Spears)
* [ ] Enemies that used ranged and magical attacks

- [ ] Shops where you can sell/buy items
- [ ] Unique characters classes, skills, and abilities
- [ ] More weapons (Axes, Polearms, Bows, Staves, Morningstar, Whips, Daggers, Clubs, Spears)
- [ ] Enemies that used ranged and magical attacks

## Running the game locally

To run Rotten Soup locally, you can clone this repository and install its dependencies with `yarn`. You will probably need to install `vue-cli`.

With Yarn

```
npm install vue-cli -g
yarn global add vue-cli
```

Once you do that, you can run the app with `yarn serve`.
Or NPM

```
npm install vue-cli
```

Once you do that, you can run the app with `yarn serve`.

## Contact / Feedback

If you have any feedback, please send me an email at [email protected] or drop an issue on GitHub. Any feedback is welcome and greatly appreciated.

## Donate

If you've really enjoyed my game and want to buy me a cup of coffee, I won't stop you!

[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.me/larkenx)
2 changes: 1 addition & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module.exports = {
presets: [
'@vue/app'
'@vue/cli-plugin-babel/preset'
]
}
Empty file removed legacy/v1/test.tmp
Empty file.
80 changes: 40 additions & 40 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
{
"name": "rotten-soup",
"version": "0.4.2",
"private": false,
"scripts": {
"start": "node server",
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"heroku-postbuild": "yarn run build"
},
"dependencies": {
"vue": "^2.5.17",
"cross-env": "^5.1.4",
"d3-delaunay": "^4.1.5",
"express": "^4.16.3",
"material-design-icons": "^3.0.1",
"pixi.js": "4.8.2",
"poisson-disk-sampling": "^1.0.2",
"prettier": "^1.14.2",
"prng-parkmiller-js": "^0.1.1",
"roboto-fontface": "^0.9.0",
"rot-js": "^0.6.5",
"simplex-noise": "^2.4.0",
"vue-drag-drop": "^1.1.4",
"vue-router": "^3.0.1",
"vue2vis": "^0.0.13",
"vuetify": "^1.0.0",
"yarn": "^1.9.4"
},
"devDependencies": {
"@fortawesome/fontawesome-free": "^5.3.1",
"@vue/cli-plugin-babel": "^3.2.0",
"@vue/cli-service": "^3.2.0",
"vue-template-compiler": "^2.5.17",
"webpack-xlsx-loader": "^1.0.0"
},
"engines": {
"node": "^8.9.1",
"npm": "5.5.1",
"yarn": "^1.9.4"
}
"name": "rotten-soup",
"version": "0.4.2",
"private": false,
"scripts": {
"start": "node server",
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"heroku-postbuild": "yarn run build"
},
"dependencies": {
"core-js": "^3.8.3",
"cross-env": "^5.1.4",
"d3-delaunay": "^4.1.5",
"express": "^4.16.3",
"material-design-icons": "^3.0.1",
"node-polyfill-webpack-plugin": "^2.0.1",
"pixi.js": "4.8.2",
"poisson-disk-sampling": "^1.0.2",
"prettier": "^1.14.2",
"prng-parkmiller-js": "^0.1.1",
"roboto-fontface": "^0.9.0",
"rot-js": "^0.6.5",
"simplex-noise": "^2.4.0",
"vue": "^2.5.17",
"vue-drag-drop": "^1.1.4",
"vue-router": "^3.0.1",
"vue2vis": "^0.0.13",
"vuetify": "^1.0.0",
"yarn": "^1.9.4"
},
"devDependencies": {
"@fortawesome/fontawesome-free": "^5.3.1",
"@vue/cli-plugin-babel": "~5.0.8",
"@vue/cli-service": "~5.0.8",
"vue-template-compiler": "^2.5.17",
"webpack-xlsx-loader": "^1.0.0"
},
"engines": {
"node": "18.12.1"
}
}
28 changes: 13 additions & 15 deletions vue.config.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
const path = require('path')
function resolve(dir) {
return path.join(__dirname, dir)
return path.join(__dirname, dir)
}
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')

module.exports = {
chainWebpack: config => {
config.resolve.alias
.set('#', resolve('/src/assets/js/game'))
config.module
.rule('xlsx')
.test(/\.xlsx$/)
.use('webpack-xlsx-loader')
.loader('webpack-xlsx-loader')
.end()
},
devServer: {
disableHostCheck: true
}
}
chainWebpack: config => {
config.plugin('polyfills').use(NodePolyfillPlugin)
config.resolve.alias.set('#', resolve('/src/assets/js/game'))
config.module
.rule('xlsx')
.test(/\.xlsx$/)
.use('webpack-xlsx-loader')
.loader('webpack-xlsx-loader')
.end()
}
}
Loading