const RoulettePicPath = "pictures/UI_MiniGame/Roulette/";
var RouletteImgName = "PN_RouletteBase";
const RouletteBaseX = 100;
var RouletteRad = 0;
var RouletteSpeed = 0;
var RouletteStopFlg = false;
Game_Interpreter.prototype.Roulette_Start = function () {
    RouletteFlm = 0;
    RouletteRad = 0;
    RouletteSpeed = 0;
    RouletteStopFlame = 0;
    RouletteStopFlg = false;
    this.SetSpriteFIn(PN_RouletteBack , RoulettePicPath + "PN_RouletteBack" , 0 , 0 , 0 , 0 , 15);
    this.SetSpriteFIn(PN_RouletteBase , RoulettePicPath + "PN_RouletteBase" , RouletteBaseX , 0 , 0 , 0 , 15);
    this.SetSpriteFInC(PN_RouletteImg , RoulettePicPath + RouletteImgName , RouletteBaseX + 418 , 337 , 0 , 0 , 15);
    this.SetSpriteFIn(PN_RouletteTop , RoulettePicPath + "PN_RouletteTop" , RouletteBaseX , 0 , 0 , 0 , 15);
    this.SetSpriteFIn(PN_RouletteCk , RoulettePicPath + "PN_RouletteCk" , RouletteBaseX , 0 , 0 , 0 , 15);
};
var RouletteFlm = 0;
var RouletteStopFlame = 0;
const RouletteMaxSpeed = 15;
const RouletteMaxSpeedFlm = 120;
const RouletteStopFlm = 120;
const VN_手動停止角度 = 1093;
Game_Interpreter.prototype.Roulette_Update = function () {
    RouletteFlm++;
    let f手動停止角度 = $gameVariables.value(VN_手動停止角度);
    if (!RouletteStopFlg) {
        if (RouletteSpeed < RouletteMaxSpeed)
            RouletteSpeed += RouletteMaxSpeed / RouletteMaxSpeedFlm;
        else
            RouletteSpeed = RouletteMaxSpeed;
    }
    if (TouchInput.isPressed() && RouletteFlm > RouletteMaxSpeedFlm && !RouletteStopFlg) {
        RouletteStopFlg = true;
    }
    if (RouletteStopFlg) {
        RouletteStopFlame++;
        if (RouletteSpeed > 0) {
            RouletteSpeed = RouletteMaxSpeed * ((RouletteStopFlame - RouletteStopFlm) / RouletteStopFlm);
        }
        else {
            RouletteSpeed = 0;
        }
        RouletteSpeed *= -1;
    }
    RouletteRad += RouletteSpeed;
    this.AngleSprite(PN_RouletteImg , RouletteRad);
    let f現在角度 = Math.round(RouletteRad % 360);
    if (f手動停止角度 > 0) {
        if (RouletteStopFlame >= RouletteStopFlm - 3) {
            if (Math.abs(f手動停止角度 - f現在角度) > 3) {
                let fValue = RouletteStopFlm - RouletteStopFlame;
                if (fValue < 5) RouletteStopFlame = RouletteStopFlm - 5;
            } else {
                RouletteStopFlame = RouletteStopFlm + 1;
            }
        }
    }
    if (RouletteStopFlame > RouletteStopFlm) {
        $gameVariables.setValue(VN_ミニゲーム結果 , f現在角度);
        $gameVariables.setValue(VN_手動停止角度 ,0);
        return false;
    }
    return true; 
}
Game_Interpreter.prototype.Roulette_End = function () {
    this.MoveSprite(PN_RouletteBack , true , true , 7 , 0);
    this.MoveSprite(PN_RouletteBase , true , true , 7 , 0);
    this.MoveSprite(PN_RouletteImg , true , true , 7 , 0);
    this.MoveSprite(PN_RouletteTop , true , true , 7 , 0);
    this.MoveSprite(PN_RouletteCk , true , true , 7 , 0);
}
