🕹️
Screeps: Arenaでコード補完を有効にする方法
Screeps: Arenaとは
Screeps: ArenaはJavaScriptで書いたAI同士を戦わせるゲーム。
2022年4月時点ではvscodeなどの外部エディタの使用が推奨されているものの、サンプル実装のとおりにJavaScriptを書いてもScreeps: Arena独自APIを補完してくれない。それを改善するには @types/screeps-arena
を使おう。
事前準備
Node.js実行環境を用意する。
HomebrewやChocolateyやaptやdnfなどで用意してもok。
VSCode(jsconfig.jsonを扱える環境)の場合
ScreepsArenaディレクトリ(main.mjsと同じディレクトリでもok)に jsconfig.json
ファイルを設置する。
jsconfig.json
{
"typeAcquisition": {
"include": ["screeps-arena"]
}
}
vscodeを再起動する。
vim-lsp(jsconfig.jsonを扱えない環境)の場合
ScreepsArenaディレクトリ(main.mjsと同じディレクトリでもok)で以下を実行。
npm install @types/screeps-arena --save-dev
package.json
と package-lock.json
と node_modules
が生成されることを確認。
import文変更
あとは main.mjs
内の import文の /game
などの先頭の /
を取り除く。
main.mjs
# 変更前
import { } from '/game/utils';
import { } from '/game/prototypes';
import { } from '/game/constants';
import { } from '/arena';
# 変更後
import { } from 'game/utils';
import { } from 'game/prototypes';
import { } from 'game/constants';
import { } from 'arena';
制約
2022年4月時点の最新バージョンである 0.0.1
は utils.getTicks()
や prototypes.Flag
が含まれないなど不完全な模様。最新の先っぽを追っかけたい場合はgithubの先っぽを使うとよい。
npm install "https://github.com/screepers/typed-screeps-arena#develop" --save-dev
がこれも完璧ではなさそう。 utils.getTricks()
は存在するが prototypes.Flag
は含まれてなかった。ただ prototypes.Flag
はTutorialにしか存在しないものかもしれない。
Discussion