princess-synergy/www/js/plugins/JsScript139Set.js
2026-02-05 14:03:22 -06:00

73 lines
3 KiB
JavaScript

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);
}