refactor: remove tjaf dependency; add local TJA parser
This commit is contained in:
77
public/src/js/gamerules.js
Normal file
77
public/src/js/gamerules.js
Normal file
@@ -0,0 +1,77 @@
|
||||
class GameRules{
|
||||
constructor(...args){
|
||||
this.init(...args)
|
||||
}
|
||||
init(game){
|
||||
this.difficulty = game.controller.selectedSong.difficulty
|
||||
var frame = 1000 / 60
|
||||
|
||||
switch(this.difficulty){
|
||||
case "easy":
|
||||
case "normal":
|
||||
this.good = 5 / 2 * frame
|
||||
this.ok = 13 / 2 * frame
|
||||
this.bad = 15 / 2 * frame
|
||||
break
|
||||
case "hard":
|
||||
case "oni":
|
||||
case "ura":
|
||||
default:
|
||||
this.good = 3 / 2 * frame
|
||||
this.ok = 9 / 2 * frame
|
||||
this.bad = 13 / 2 * frame
|
||||
break
|
||||
}
|
||||
switch(this.difficulty){
|
||||
case "easy":
|
||||
this.gaugeClear = 30 / 50
|
||||
break
|
||||
case "normal":
|
||||
case "hard":
|
||||
this.gaugeClear = 35 / 50
|
||||
break
|
||||
case "oni":
|
||||
case "ura":
|
||||
this.gaugeClear = 40 / 50
|
||||
break
|
||||
default:
|
||||
this.gaugeClear = 51 / 50
|
||||
break
|
||||
}
|
||||
|
||||
this.daiLeniency = 2 * frame
|
||||
}
|
||||
soulPoints(combo){
|
||||
var good, ok, bad
|
||||
switch(this.difficulty){
|
||||
case "easy":
|
||||
good = Math.floor(10000 / combo * 1.575)
|
||||
ok = Math.floor(good * 0.75)
|
||||
bad = Math.ceil(good / -2)
|
||||
break
|
||||
case "normal":
|
||||
good = Math.floor(10000 / combo / 0.7)
|
||||
ok = Math.floor(good * 0.75)
|
||||
bad = Math.ceil(good / -0.75)
|
||||
break
|
||||
case "hard":
|
||||
good = Math.floor(10000 / combo * 1.5)
|
||||
ok = Math.floor(good * 0.75)
|
||||
bad = Math.ceil(good / -0.8)
|
||||
break
|
||||
case "oni":
|
||||
case "ura":
|
||||
good = Math.floor(10000 / combo / 0.7)
|
||||
ok = Math.floor(good * 0.5)
|
||||
bad = Math.ceil(good * -1.6)
|
||||
break
|
||||
}
|
||||
return {good: good, ok: ok, bad: bad}
|
||||
}
|
||||
gaugePercent(gauge){
|
||||
return Math.floor(gauge / 200) / 50
|
||||
}
|
||||
clearReached(gauge){
|
||||
return this.gaugePercent(gauge) >= this.gaugeClear
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user