Compare commits

..

3 commits

Author SHA1 Message Date
7c2e3381c7
Merge pull request 'feat: add blank status' (!165) from slots-blank into main
All checks were successful
Release / Release (push) Successful in 1m17s
Release / Build Frontend Image (push) Successful in 30s
Release / Build Backend Image (push) Successful in 37s
Reviewed-on: #165
Reviewed-by: Constantin Simonis <constantin@simonis.lol>
2025-05-07 12:25:57 +00:00
Phan Huy Tran
f813512436 feat: add blank status
All checks were successful
CI / Get Changed Files (pull_request) Successful in 7s
CI / eslint (pull_request) Has been skipped
CI / Docker frontend validation (pull_request) Successful in 9s
CI / oxlint (pull_request) Has been skipped
CI / prettier (pull_request) Has been skipped
CI / test-build (pull_request) Has been skipped
CI / Docker backend validation (pull_request) Successful in 49s
CI / Checkstyle Main (pull_request) Successful in 52s
2025-05-07 14:17:57 +02:00
Phan Huy Tran
cf79298b04 feat: add blank status 2025-05-07 14:17:41 +02:00
2 changed files with 44 additions and 18 deletions

View file

@ -42,31 +42,36 @@ public class SlotService {
Symbol symbol2 = getSymbolAt(this.secondReel, index2);
Symbol symbol3 = getSymbolAt(this.thirdReel, index3);
boolean isWin = symbol1.equals(symbol2) && symbol1.equals(symbol3);
Status status = determineStatus(symbol1, symbol2, symbol3);
SpinResult spinResult = processResult(betAmount, user, isWin, symbol1);
SpinResult spinResult = processResult(betAmount, user, status, symbol1);
buildResultMatrix(spinResult, index1, index2, index3);
return spinResult;
}
private SpinResult processResult(BigDecimal betAmount, UserEntity user, boolean isWin, Symbol winSymbol) {
BigDecimal resultAmount;
String status;
if (isWin) {
resultAmount = betAmount.multiply(winSymbol.getPayoutMultiplier());
status = "win";
this.balanceService.addFunds(user, resultAmount);
} else {
resultAmount = betAmount;
status = "lose";
this.balanceService.subtractFunds(user, betAmount);
}
private SpinResult processResult(BigDecimal betAmount, UserEntity user, Status status, Symbol winSymbol) {
SpinResult spinResult = new SpinResult();
spinResult.setStatus(status);
spinResult.setAmount(resultAmount);
switch (status) {
case WIN:
BigDecimal winAmount = betAmount.multiply(winSymbol.getPayoutMultiplier());
this.balanceService.addFunds(user, winAmount);
spinResult.setAmount(winAmount);
spinResult.setStatus(Status.WIN.name().toLowerCase());
break;
case BLANK:
spinResult.setAmount(BigDecimal.ZERO);
spinResult.setStatus(Status.BLANK.name().toLowerCase());
break;
case LOSE:
this.balanceService.subtractFunds(user, betAmount);
spinResult.setAmount(betAmount);
spinResult.setStatus(Status.LOSE.name().toLowerCase());
break;
}
return spinResult;
}
@ -124,4 +129,18 @@ public class SlotService {
return reel.get(effectiveIndex);
}
private Status determineStatus(Symbol symbol1, Symbol symbol2, Symbol symbol3) {
boolean allSymbolsMatch = symbol1.equals(symbol2) && symbol1.equals(symbol3);
if (allSymbolsMatch) {
if (symbol1 == Symbol.BLANK) {
return Status.BLANK;
} else {
return Status.WIN;
}
}
return Status.LOSE;
}
}

View file

@ -0,0 +1,7 @@
package de.szut.casino.slots;
public enum Status {
WIN,
LOSE,
BLANK
}