Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yiyuezhuo/Hex-Wargame-JavaScript
A classic hex wargame written by JavaScript. And the scenario can be created by web-page editor
https://github.com/yiyuezhuo/Hex-Wargame-JavaScript
wargame
Last synced: 3 months ago
JSON representation
A classic hex wargame written by JavaScript. And the scenario can be created by web-page editor
- Host: GitHub
- URL: https://github.com/yiyuezhuo/Hex-Wargame-JavaScript
- Owner: yiyuezhuo
- License: mit
- Created: 2015-12-20T11:46:01.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-16T06:12:23.000Z (over 2 years ago)
- Last Synced: 2024-07-30T21:01:07.362Z (6 months ago)
- Topics: wargame
- Language: JavaScript
- Homepage: http://yiyuezhuo.github.io/Hex-Wargame-JavaScript/
- Size: 1.04 MB
- Stars: 33
- Watchers: 6
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: License.txt
Awesome Lists containing this project
README
# Classic hex based wargame project - javascript
## Introduction
This is a project that want to develope a classic hex based wargame by javascript.
Code is cheap ,show me the image:
![Alt image](/preview/p.gif)
or you can clone this repo and open `index.html` file to enjoy it.
## Customized scenario development by editor (under development)
## Customized scenario development by script
I write a Python script to merge some `.csv` file into a `*.js` scenario file so that engine can run it.
However I found `.csv` file can be used to edit data in visualization table software (eg. Excel) very easily. It's familiar with
program newbie and a lot of wargame player who want to develop their unique game.### scenario_maker.py
#### Usage
$ python scenario_maker.py scenario_dir output.js
### `.csv` scenario define document structure
#### Map configuration
* `block.csv`
* `capture.csv`
* `label.csv`
* `terrain.csv`
* `VP.csv`For example,if ,in `terrain.csv` , grid of `(2,3)` (line 2,column 3) is "open",
it mean that the terrain of hex(2,3) in game map will be "open".The style is motivated by HPS & JT games.
#### Unit setup
* `unit.csv` Unit list
* `place.csv` Set unit location#### Other csv file
* `AI.csv` Guide AI how to attack
* `CRT.csv` Combat result table
* `player.csv` Player level information.
* `setting.csv` Some setting.
* `terrain_type.csv` Attributions of terrain movement cost, moveable etc.#### Other configure file
* `script.js` This use a special format. Allowing you trigger some event in game without dive in detail. But some knowledge about intrinsic system will be helpful.
* `unit.css` Set counter color .
* `hex.css` Set hex and color .The configurations handled by two `*.css` files was handled by `*.csv` files in old version, but those style configure being in `*.css` will be more reasonable since you can dynamic modify them without running the python script again and again to see the final effect of new art.
## Advanced configuration
### Counter shape
`domplot.js`: The counter is plotted by pure DOM. For example, infantry symbol, a pair of cross lines in NOTA notations, is plotted by:
```javascript
'infantry' : function(){
var pad,line1,line2,unit;
unit = this.unitBase();
pad = unit.els.pad;
// following code paint a cross representing infantry in NATO Joint Military Symbology
line1 = this.brush.draw_line(0,0,26,16);
line2 = this.brush.draw_line(0,16,26,0);
line1.addClass('line');
line2.addClass('line');
line1.appendTo(pad);
line2.appendTo(pad);
unit.els.line=[line1,line2];
return unit;
},```