From 0aa794600e352a0a03db332c68ab4f9cc830be72 Mon Sep 17 00:00:00 2001 From: Mario Date: Sun, 26 Apr 2026 22:53:05 +0200 Subject: [PATCH] Weiter am Ingame Chastity Game gearbeitet --- .../V3__migrate_chastity_game_set.sql | 215 +++++ .../oaa/xxx/games/bdsm/AufgabeAnzeige.class | Bin 3256 -> 3576 bytes .../bdsm/controller/FinisherController.class | Bin 9402 -> 9388 bytes .../bdsm/controller/SperreController.class | Bin 9425 -> 9479 bytes .../xxx/games/chastity/common/GameState.class | Bin 0 -> 2245 bytes .../chastity/common/LockGameController.class | Bin 0 -> 13792 bytes .../chastity/common/LockGameEntity.class | Bin 4288 -> 4750 bytes .../chastity/common/LockGameLockEntity.class | Bin 2524 -> 2859 bytes .../common/LockGameLockRepository.class | Bin 0 -> 585 bytes .../chastity/common/LockGameRepository.class | Bin 0 -> 577 bytes .../chastity/common/LockGameService.class | Bin 419 -> 10521 bytes .../xxx/games/common/aufgaben/Sperre.class | Bin 4674 -> 5504 bytes .../games/common/entity/SperreEntity.class | Bin 7534 -> 8547 bytes .../repository/FinisherRepository.class | Bin 374 -> 649 bytes bin/main/static/games/aufgaben/aufgaben.html | 106 ++- .../static/games/chastity/activelock.html | 8 + .../static/games/chastity/meine-locks.html | 662 +------------ bin/main/static/games/chastity/taskgame.html | 433 +++++++++ bin/main/static/img/card_game.png | Bin 0 -> 378808 bytes bin/main/static/img/card_slowmo.png | Bin 0 -> 392774 bytes bin/main/static/img/card_speedup.png | Bin 0 -> 389940 bytes .../de/oaa/xxx/games/bdsm/AufgabeAnzeige.java | 3 +- .../controller/AufgabenGruppeController.java | 10 + .../bdsm/controller/FinisherController.java | 4 +- .../bdsm/controller/SperreController.java | 3 + .../xxx/games/chastity/common/GameState.java | 15 + .../chastity/common/LockGameController.java | 205 ++++ .../games/chastity/common/LockGameEntity.java | 12 +- .../chastity/common/LockGameLockEntity.java | 5 +- .../common/LockGameLockRepository.java | 11 + .../chastity/common/LockGameRepository.java | 11 + .../chastity/common/LockGameService.java | 191 +++- .../oaa/xxx/games/common/aufgaben/Sperre.java | 3 + .../xxx/games/common/entity/SperreEntity.java | 12 + .../repository/AufgabenGruppeRepository.java | 4 + .../common/repository/FinisherRepository.java | 4 + .../V3__migrate_chastity_game_set.sql | 215 +++++ .../static/games/aufgaben/aufgaben.html | 126 ++- .../static/games/chastity/activelock.html | 8 + .../static/games/chastity/meine-locks.html | 876 ++++-------------- .../static/games/chastity/taskgame.html | 433 +++++++++ src/main/resources/static/img/card_game.png | Bin 0 -> 378808 bytes src/main/resources/static/img/card_slowmo.png | Bin 0 -> 392774 bytes .../resources/static/img/card_speedup.png | Bin 0 -> 389940 bytes 44 files changed, 2156 insertions(+), 1419 deletions(-) create mode 100644 bin/main/db/migration/V3__migrate_chastity_game_set.sql create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/GameState.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/LockGameController.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/LockGameLockRepository.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/LockGameRepository.class create mode 100644 bin/main/static/games/chastity/taskgame.html create mode 100644 bin/main/static/img/card_game.png create mode 100644 bin/main/static/img/card_slowmo.png create mode 100644 bin/main/static/img/card_speedup.png create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/GameState.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/LockGameController.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/LockGameLockRepository.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/LockGameRepository.java create mode 100644 src/main/resources/db/migration/V3__migrate_chastity_game_set.sql create mode 100644 src/main/resources/static/games/chastity/taskgame.html create mode 100644 src/main/resources/static/img/card_game.png create mode 100644 src/main/resources/static/img/card_slowmo.png create mode 100644 src/main/resources/static/img/card_speedup.png diff --git a/bin/main/db/migration/V3__migrate_chastity_game_set.sql b/bin/main/db/migration/V3__migrate_chastity_game_set.sql new file mode 100644 index 0000000..81f4c42 --- /dev/null +++ b/bin/main/db/migration/V3__migrate_chastity_game_set.sql @@ -0,0 +1,215 @@ +-- Migration: Inhalte aus chastity_game_set in die normalen Aufgabengruppen-Tabellen übernehmen. +-- +-- Jedes chastity_game_set eines Users wird zu einer privaten CHASTITY_ONLY-Aufgabengruppe: +-- aufgaben (JSON) → aufgabe + aufgabe_benoetigt_passiv +-- zeitstrafen (JSON) → sperre + sperre_sperre_fuer +-- finisher (JSON) → finisher +-- +-- Die Prozedur prüft zuerst, ob chastity_game_set existiert – auf leeren Datenbanken +-- ist sie dadurch ein No-op. + +DROP PROCEDURE IF EXISTS proc_migrate_chastity_game_set; + +CREATE PROCEDURE proc_migrate_chastity_game_set() +BEGIN + DECLARE v_set_id VARCHAR(36); + DECLARE v_owner_id VARCHAR(36); + DECLARE v_set_name VARCHAR(255); + DECLARE v_user_name VARCHAR(255); + DECLARE v_aufgaben_json TEXT; + DECLARE v_zeitstr_json TEXT; + DECLARE v_finisher_json TEXT; + + DECLARE v_gruppe_id VARCHAR(36); + DECLARE v_aufgabe_id VARCHAR(36); + DECLARE v_sperre_id VARCHAR(36); + DECLARE v_finisher_id VARCHAR(36); + + DECLARE v_outer_count INT; + DECLARE v_inner_count INT; + DECLARE i INT; + DECLARE j INT; + + DECLARE tbl_exists INT DEFAULT 0; + DECLARE done INT DEFAULT FALSE; + + DECLARE cur CURSOR FOR + SELECT id, owner_id, name, aufgaben, zeitstrafen, finisher + FROM chastity_game_set; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; + + -- Add columns that may not yet exist (Hibernate ddl-auto runs after Flyway) + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'aufgabe' AND COLUMN_NAME = 'level') THEN + ALTER TABLE aufgabe ADD COLUMN level INT NULL; + END IF; + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sperre' AND COLUMN_NAME = 'level') THEN + ALTER TABLE sperre ADD COLUMN level INT NULL; + END IF; + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sperre' AND COLUMN_NAME = 'temp_unlock_before_required') THEN + ALTER TABLE sperre ADD COLUMN temp_unlock_before_required TINYINT(1) NULL; + END IF; + IF NOT EXISTS (SELECT 1 FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sperre' AND COLUMN_NAME = 'temp_unlock_after_required') THEN + ALTER TABLE sperre ADD COLUMN temp_unlock_after_required TINYINT(1) NULL; + END IF; + + SELECT COUNT(*) INTO tbl_exists + FROM information_schema.TABLES + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'chastity_game_set'; + + IF tbl_exists > 0 THEN + + OPEN cur; + + set_loop: LOOP + FETCH cur INTO v_set_id, v_owner_id, v_set_name, + v_aufgaben_json, v_zeitstr_json, v_finisher_json; + IF done THEN LEAVE set_loop; END IF; + + SELECT name INTO v_user_name + FROM user + WHERE user_id = v_owner_id + LIMIT 1; + + SET v_gruppe_id = UUID(); + + -- ── Aufgabengruppe anlegen ─────────────────────────────────────── + INSERT INTO aufgaben_gruppe + (gruppen_id, name, beschreibung, user_id, private_gruppe, bild, von, available_in) + VALUES + (v_gruppe_id, + v_set_name, + 'Importiert aus Chastity Game Set', + v_owner_id, + TRUE, + NULL, + v_user_name, + 'CHASTITY_ONLY'); + + -- ── Aufgaben ──────────────────────────────────────────────────── + -- GameSetAufgabe.minutes → sekunden_von / sekunden_bis (× 60) + -- GameSetAufgabe.benoetigt → aufgabe_benoetigt_passiv + SET v_outer_count = IFNULL(JSON_LENGTH(v_aufgaben_json), 0); + SET i = 0; + WHILE i < v_outer_count DO + SET v_aufgabe_id = UUID(); + + INSERT INTO aufgabe + (aufgabe_id, kurz_text, text, level, sekunden_von, sekunden_bis, gruppe_id) + VALUES ( + v_aufgabe_id, + JSON_UNQUOTE(JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].title'))), + JSON_UNQUOTE(JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].description'))), + CAST(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].level'))), 'null') AS SIGNED), + CASE + WHEN JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].minutes')) IS NOT NULL + THEN CAST(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].minutes'))), 'null') AS SIGNED) * 60 + ELSE NULL + END, + CASE + WHEN JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].minutes')) IS NOT NULL + THEN CAST(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].minutes'))), 'null') AS SIGNED) * 60 + ELSE NULL + END, + v_gruppe_id + ); + + SET v_inner_count = IFNULL( + JSON_LENGTH(JSON_EXTRACT(v_aufgaben_json, CONCAT('$[', i, '].benoetigt'))), + 0); + SET j = 0; + WHILE j < v_inner_count DO + SET @wz = NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_aufgaben_json, + CONCAT('$[', i, '].benoetigt[', j, ']'))), 'null'); + IF @wz IS NOT NULL AND @wz != '' THEN + INSERT IGNORE INTO aufgabe_benoetigt_passiv (aufgabe_id, werkzeug) + VALUES (v_aufgabe_id, @wz); + END IF; + SET j = j + 1; + END WHILE; + + SET i = i + 1; + END WHILE; + + -- ── Zeitstrafen → Sperren ──────────────────────────────────────── + -- GameSetZeitstrafe.minMinutes / maxMinutes → minuten_von / minuten_bis + -- GameSetZeitstrafe.level / tempUnlock* → level / temp_unlock_before/after_required + -- GameSetZeitstrafe.sperrt → sperre_sperre_fuer + SET v_outer_count = IFNULL(JSON_LENGTH(v_zeitstr_json), 0); + SET i = 0; + WHILE i < v_outer_count DO + SET v_sperre_id = UUID(); + + INSERT INTO sperre + (sperre_id, kurz_text, text, release_text, minuten_von, minuten_bis, + level, temp_unlock_before_required, temp_unlock_after_required, gruppe_id) + VALUES ( + v_sperre_id, + JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].title'))), + JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].description'))), + IF(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].releaseText')) IS NOT NULL, + JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].releaseText'))), + NULL), + CAST(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].minMinutes'))), 'null') AS SIGNED), + CAST(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].maxMinutes'))), 'null') AS SIGNED), + CAST(NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].level'))), 'null') AS SIGNED), + CASE JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].tempUnlockBeforeRequired'))) + WHEN 'true' THEN 1 WHEN 'false' THEN 0 ELSE NULL END, + CASE JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].tempUnlockAfterRequired'))) + WHEN 'true' THEN 1 WHEN 'false' THEN 0 ELSE NULL END, + v_gruppe_id + ); + + SET v_inner_count = IFNULL( + JSON_LENGTH(JSON_EXTRACT(v_zeitstr_json, CONCAT('$[', i, '].sperrt'))), + 0); + SET j = 0; + WHILE j < v_inner_count DO + SET @wz = NULLIF(JSON_UNQUOTE(JSON_EXTRACT(v_zeitstr_json, + CONCAT('$[', i, '].sperrt[', j, ']'))), 'null'); + IF @wz IS NOT NULL AND @wz != '' THEN + INSERT IGNORE INTO sperre_sperre_fuer (sperre_id, werkzeug) + VALUES (v_sperre_id, @wz); + END IF; + SET j = j + 1; + END WHILE; + + SET i = i + 1; + END WHILE; + + -- ── Finisher ───────────────────────────────────────────────────── + -- GameSetFinisher hat kein geschlecht und keine benoetigt-Listen + -- tempUnlockBeforeRequired / tempUnlockAfterRequired haben kein Gegenstück in finisher + SET v_outer_count = IFNULL(JSON_LENGTH(v_finisher_json), 0); + SET i = 0; + WHILE i < v_outer_count DO + SET v_finisher_id = UUID(); + + INSERT INTO finisher + (finisher_id, kurz_text, text, geschlecht, gruppe_id) + VALUES ( + v_finisher_id, + JSON_UNQUOTE(JSON_EXTRACT(v_finisher_json, CONCAT('$[', i, '].title'))), + JSON_UNQUOTE(JSON_EXTRACT(v_finisher_json, CONCAT('$[', i, '].description'))), + NULL, + v_gruppe_id + ); + + SET i = i + 1; + END WHILE; + + END LOOP; + + CLOSE cur; + + END IF; + +END; + +CALL proc_migrate_chastity_game_set(); + +DROP PROCEDURE IF EXISTS proc_migrate_chastity_game_set; diff --git a/bin/main/de/oaa/xxx/games/bdsm/AufgabeAnzeige.class b/bin/main/de/oaa/xxx/games/bdsm/AufgabeAnzeige.class index 2c6c444309affc0963c66c15cbdce527e0454a1a..819da9895c70819d9f88528f37061330d34c8835 100644 GIT binary patch literal 3576 zcmb7GT~`xF7=9*v1j6zmh+t8RiW-Bs{r(WOMO35)u!7ivww)wnShLwpcQ+jDujpm} zL2r6d&#AV@i(dAkKdSb9XP11~z;4e;GP67HJoC&m@AFRn{^!-702c6l8YzL9k}_Q> z&Aq)nvn;F1Hwz`dYA)2Dlx0CJI6o+>tkUQf7w+*rEM2vu_7>? z@62#9ilFEoTkR@az^FDjESHFI2we{>+kEg~`6fjU@@^dEFDXwdVj;E!G7+yEmM?HT zoWtbIyh|)@%0O+<6HV^DYB^SLU7#y_aZ{js(JiSAx-em23`Yfq^OmDl>(zqtHe|t8 ztOG-AO3&iw=w)}X!z-OXU|;RZvlf9HYAA3td$C2XNZEb}yltQdz1%x(z(9WnXK^l# znYL34;|-k01%dRgwCif^2@%P*V1_3{`A> zhrQr9ZXg4T$Z{UoZnfZ6%q2=bk20!6=Q>1a(P6VCSk=!Aq|qB{$w^247;n?E>5u`I zyJ3 zCr#}GcJLC~F5BR_)@o}@t&W}3dUoL#q~%+Md9vu?{`;Cj#4 za%F*^S|y93L%=)IDcQ=O$-8c)UYkGEZEX`bp4C)`@a-0a4#g*e;8R++0yRI}i(((1 z3S4R5{&utUUlW(6^@YG4R?_1R)nR?1ToaG!qF8pwhr0SGKaHxux&MgMX}f8-0;diS zrF$aO2B#^@yQq%!A;s01dMUQIZmEpwmWrrusb=ez%%)qily1o))Q%DoT`}}KPERJa zg4&+k?>P2chfUINuYNgzPq8m z_<2nu`c-%16?G`&3b9LJo`!i3SE+5^CNX6ODa|0Q zDbB6j>2ap;;T6LTvB+hS`GM&hW|RA{d7`zE`|+wL&I-jJC6NQQh2Vh4fsI~{|Ju{ zg`awXyGh}>bT{C`hi~xhq41QLYf0hxMrgnvp|!g3owk`of!aPA+@Y_93O!}0XTw1a G$NvQypPmo^ literal 3256 zcmb7G*-{%v6g@2@B*d@;%;Mk>Y-23ISlJhZonQ=Di2%m}oPe{mq(+Q2no-TPR5)Le z$NWKF@{m-;PRb8?%tJmZ&g~wdg$PEelBRpQZ=XK*+(r8PpO=3EScMryh+(!Mk`Cv| zlarHVk(Y&+%oV(HaQBblacR=TELOfmFxA9Gin(9wuA%gS`L#WZb8Q4}uO#`4^xd<4!eTJW4G!r75%!_0(zKF$d+GaRIiS3;g|{hOE{Fv?VCY>jZByQ5=t<1) zGlbWif{3FBV+LNs2*Xguw8eI{oD=RY&sjpb=McYr?waboz8IFrrpGXM4&8P^m5b8x zrD3>~m~T;`E?6HJ-Y^hBubRDSz(8LdS8+XxYi+^s?G4Q021B&Qt*Y2LA|iWx0csq)>NTz1U^_GEmFhz>f z`K(#4SYn%UWrQ;CJp=FK1BQt*FNrnB&U5+Ll*cslB)279^rV$~U5*xK{>MrOhlx^F zQf6)ONlg zHVh14kb-7<>+KamMR1@jJ~J?cVTMWXTye%agh^G<@RpFrPT?VUNmMCZQfiP;T0|i! zXrV5}cq`1Q5(=lEY?@kJPXtM!&M4edF=*N@#%TSfrWTqm*_{y~oH$TB@vKvI^J2qP zML*hJ!M9bqldtz2M|#rb72jzujwkpgim$1&HVeYEYfecd{lxWCeuL+w<33Zh@GZlS zts2y=eZU9YE?B~w%{We}T1j1425kp-pH)N$^TQT|4qc%Rp=8gRQly4@aTr66VY%J? z!)B|!!*0#!2COE!tE&k$NZr8iFp|PZ+f*RBEeJ0PQuD@t#OdU26h(&Vi%qG4``S=% zq#jNUhJM#n+oV}Y)tw%xzv+>>n;xl|>XE8IkCf{)4if_Pe0q-3TardbV`SlXT>4d; zjnlJNFUB!JbHg{lBrek%!|Rx$r#k!t!g_CM;Wu2N@AMy-p<&J+5`STs-V!gc@B+7g zqMz57co+DE4)#D@GN?TnCoU7XNh{6Emg<*%NLGsoy}}$=l&<+)2x6a9OLr8DOYD5 diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/FinisherController.class b/bin/main/de/oaa/xxx/games/bdsm/controller/FinisherController.class index 41de71e678e0d395c54323e5342d740bb4ac0983..fb0681c7a68d24e870dfcbc713c732b943db944c 100644 GIT binary patch delta 1520 zcmZ9Me^69a6vw}Jf4$weZx?p?;jTK22qduV5F$APkp_WmBB2Z6YLPp!!Gf{GK336e zv0ocyiQOno`$1V+q7mqmrPR#|D=jmpX=<8gnwoKHn*QjIrazqOyagJjc{A^vd(V%1 z&gb0sraYsbv9FDMp()RBpM-XF@EViH)QPnMx)@4%B6S&$nk2Is_oGZeH$w&AEjai+ znjC|G9@Rx%UN$chMTF2RAq<&&#k|r8whP$CVD0or{Kb88aBFdWFf2>x#|{QvIJhIg zpv^Dvh^WSc5_aJseoU;(9gwgaGJ~x>AXf#tLjgJ1E(e-I{b3Odk4ShFkMRZOGE)qL z0-j)S&sHGte^RVQ30^$OFv72-E##{OJ6Fv8se2?mjrHoO{z$-xy?mAA%8Oy2glEyl zV4Ci>4)9z#0Z)cSx=c^>ruf z{ZztdxX9zS{KYYRF5wGYWDvpuxhb$+7U9E}60YDYe$`mXV*F2Az2pCcZ|#zU5o(=p zvX?u_XrGV2(H{=aSdZJYD8VIrg<%-KO4!dWX=SW~SEtppeS9eGThcqzE7>qVnqEWt z@9C#lgdfgW$s!ZqXJj)bPyC(P$SB1fj=xyjM4j`5KH38V^Z?Ge6l|P^jYR7-L=yfB zkR}m`gTRaxp2QM$FOIDmFa-?>gw_?!_b5{EKpcGpv26q?Hg;eVJ7;4lFsk6;23L`L z5|5YbC|QWCEltfq7)XVWsCO0&5}`F~L-@EdXFjoIl@E7oHHedz_%^G#?bymu1H76QAGG#^?C zZzndRkLV2G?j*~?nKu4oIfxQ$pf;(sBvlP%+ma+W!%KwLO1!cJ`X8vcOd1M65*hy~ z+via4KNrF0^Vx@C7wqiCJRc8^d<3<6Ixr9@EJf~7iSAhSKQ^yj#BDW`{ Q6V)tiFwu3YX0pNbF9v{jhX4Qo delta 1495 zcmZ8hdr(wW9RAL}?(TATWtYe7CWE|81a{U3lmk&FfxC%_K_N=kHZ02`?h5yUfFfF! z6;$NOipmV7vO*)lD@#dMiaksPr)g@MW}0!P$29)gG>y~rySv~p?H}hm`+I!n{J!tZ z9rjLmN4_)i30sk|77Zc-Xyn(7OAJjSwxRi;$!iECpx&*ym)07b_>|WU~TfX``m4Eu-RQ6lw=Xz*u$Wcf?a+FZT3>H z870^&Vjmvo4Q5Z)ei2WigTWT?%WM3huwM=aWPf$IQ!<0$fQYB@44*L;B^77F~o;k18%9gA-~C89u5Tjts>sQVg8s{U^s$70dMicqDOla z$M|oeFX3$ly?a-%zT1o=cvr-6yvOS-Ri+PcLclP?a=usR;8!gRwI}f*zhS8{eS}c~ zrxoy7*Aiovds0r=)boI!6CZu4F{9 z!SOe19Q8O)>U(y=06l=ITm_q^;2_vK1sj2H3T6WTMTp}FMzEb>Bxek1YAk{s8ZZSF z=OC@mn_rQqpe=$xO6(LGMF$71YY;LZQuaZ5+&=V_q6uYarO+ODa18h3EW9{}b+|z2B#Qi)KFA^p z^*4nHd`u6%5PkTBsx`z=he>=2E%8)S?`L#{+Rs#xv|%AKc39CRthn@ATRIdMA$ z()5hzK!q2GSdXQ&*We;@39S_UlJ})8>2XlIjw1b}E}3K_Ad}1lzWLg#g62lBV$Pc0 z3Rg7!RRkU~&!u)NxTNA%1y@z{DY&NM_X>Vg@n;3UxN>NtI;G&cO6ej4=Pde__4Q?1-nVJ0~Ape&WR0o zOW}Sj#{)Dx4II@vTSIh@Mum;ZXofb4WK0$4!=S2Y(ohF5!DrIz*mmyDNT#(cV@+Pn zsca-O3$v22ss{$JfWS1-##!|>(NEV{#_)ZrjSK}yVJm2-iQ1S<2pVgWt(?oT{8=)( riAA`HWdge92q*baX0euD0l%KArRV39~y&vAZ zbQ!=hKJm8qSYX}=zE=1KqeOMqEDf1cX5NdJ@twl=xGu@!|B^Qpe#B4u`9RA3i^8u0 zF9#x>zY~%56K0`cCXXIZX7-gPGx=OGXBJ96yoNs&UdLZVr#>5M()Gcbs(%!2>Qr!@ zL8oFBUHZvjyW3E#rboXO9CiB?6>D@XG=EK;zH!5u{3UJ`qEgw6FGy3i1e93s@<*qB)u$Y+X0 zvuN-b(XQ(fjkU$Lq4Dv3lM@C{5KUHU`g+4vr)L$MsFLS6t{}Ha%KF` zlM?W38PApRbLt&5^;B@$flcQT3H;Vw!5>as#NQPhB+f~{6EXQNhhOKK=k`C1t#}37 za0c7)CU&4+xYUde+R!d1QN&!V18sB#@56xsOz4lByP~(S0WQoI#(|CKmgtu0p=(=O zcaRm#bHFk*Ql?|mCAxt!y%$+K<7HS3rpvq|U13BlGJe~lCDegV25wu8hy<`3O~|4X zd(ed(`mk5O)Y6=8WRpmLG$Wifq^Co$i?|}effw+iTw?p~XZik?`781J^_7TJB3icDP!uKv`8f1zV@wv!hudvEqVGF87WE^2kAb|t2tO9yb z!~!|@p@fx~wAYyw3&2`?o%%?tf7X4tD&DS1G9uBUKHw7BZyy?XAD8MkT9a{kc#^3T zcAi9QCDo}i2QG4zzTVmqmDhEfw#qEJM(81(Y>S;dV5_Q`EZ1_Ku-1lLaQK!IRa`Fz z2RGRND*-1rN@-7#k8qO(wtz)G$`OE@rBEINGg7pZCU@It5BGE2Mh95pq>ZL{kcW9h a>f>=KKFZ@fDK-vafRDR97?gO*?fDn!ofY%| delta 1284 zcmZ8fOH7{Qo>I4lu(o3cA83;< zjYiw*O*BRmjV@fM35uCAH8IvjP3+2*#+YbaxKOM0ZPm7(e_-Y2p6}lCopZi(&V6Fr zrvtuEZeRWYz-FF($9J~a^Blfc_yO1TQgNc`9b*Fu#=I}RSTCNkYkV?OlZPldnqXmG^DErr{-qu&nJ8&q`AsXq@M zGTe#=P2C$>UFKEv;S}LXPE1&{8S9Wwcz2mB(C0&uXaIW&-=vipveN0~q~*t}EK)3H zP=6R&=PFSQ>sz5q@p2+~G<4Rr-sPW}`;2 zmUY@6ZZYC)G})kg!ZBwP6M9d0&=Y5?!Y1CM7s5TUI9DmQW128BDLbE^tJ!IC4Y5j7 zMf65Sq?LQQc5y?gNn?ZJMsCvEBRxj1On`m*d}Q8xKL<=cK-A?!F2s~maoghBvOyYS ze8l7~{baPkInGD*V)W~horM_of!wFq&Gi9;dkeW*!#docVmMosi;+ZUdOuUE6)*PO9VAs0{7ysOx!>>*(;g1|n6AKdOL`2RF2142igwEd4Dx7K%KER^-{dI2x!{WQL^# zV4)I+(SS)b;s`o1r9ZBzK3B?!l)ff@DLiRPOkA*=xFW`Z3%Dpr^7>eYfV_PsuTHVU z%~zphFvp1(;eVge@k@*?H0M}BTxKuZw6i=WHb66wyPNdO~jDDrInqB%zZP33?Cf11d;p7gXwx;K_hzj>4Pjg;moIxKSGrSlO`?%r#5AG`dkN^Mx diff --git a/bin/main/de/oaa/xxx/games/chastity/common/GameState.class b/bin/main/de/oaa/xxx/games/chastity/common/GameState.class new file mode 100644 index 0000000000000000000000000000000000000000..4b3c8ba2607ff97f3173ab8c34466ec28f39dc5d GIT binary patch literal 2245 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 AjsO4v literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/common/LockGameEntity.class b/bin/main/de/oaa/xxx/games/chastity/common/LockGameEntity.class index 7ffadf82e0ed4cd18c946c3c5073f3221b09aaf8..56bf323248e790c57f45aa4498a4b5c7a6ff469f 100644 GIT binary patch literal 4750 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 delta 960 zcma)**-FDu5QhJ()wF6wtjm>aYg4r@b>H_bTJX-xq9QIJXcYt@&mh5f5cEPp5fpp? z^$Emh5&x681V!7MGc!4pZBt;}I2d63=QNsjI9Wsa=P{j7l)qJ@xhsC5do2~}J1Il^4>u!l8hv@p`F{7}A diff --git a/bin/main/de/oaa/xxx/games/chastity/common/LockGameLockRepository.class b/bin/main/de/oaa/xxx/games/chastity/common/LockGameLockRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..384c216765bc3976fe7669377cc40c0880df9199 GIT binary patch literal 585 zcmbV~y-ve05XaAfHnbGT&c*}_Hz9_gN+3Q|6a=E`z<4BX>NJfb$0^BM@H`AW01t(* z1A+`lhz|DYe7cYS@BH@u@(KW_;JM&1IF2|O z(@#MLgQ>`(v)c9=MGW@#gQk3`MT(Qj=-fYOJp`iAK7-y^#2M*QaRv{6CY%KSQhSkE z4*t;e=~^~+D({BtnT+npD$`sQ4EkePs*qob)C{rvJFY`3g~9Wuf)+79Sc%qZN?QCH ophMrRi@};X9rGucS*Z&f;6TrK4)kGQY=^;S<8C$g_E&J{1L}CV7ytkO literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/common/LockGameRepository.class b/bin/main/de/oaa/xxx/games/chastity/common/LockGameRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..1d57c2ab952d3aef22e1a077c558ac079b0aeb3c GIT binary patch literal 577 zcmbV~O-{ow5QWEuHnbGTjvFA@Fbl*gs1k@D6$KShb-{8-+|+4eM~+jHJ8&Wv9DqY1 zoKQg}Hid<4jYso5?;F2=yuJazIk*nA7@UM06%m$Yi4mnd$6!Xe5vIaGrKytWt6+X( zGY>pdxiCss4s0@TV_Fa#XK+$bQqi}9buknA)~3bMbAplF(gA6XN3A&0&g?= z5oFMx3K?Ehlbq{e$l&16Z{!Oj5}Ztim)_CJ#V9jENlH8h-LZ%ynL=|0k82g3`D;7A zk~If!VBhH!%g)?8Ze}XHr`nz2I%m)ut3n6-S|qlK{olBbYby+1z8tI&^Zb9&`n!V_ qb`8vdXGg_g!>+dd3(Stwfh}l3*G4VqLEoNj2HQ=z)9ky;a$wk?>qNS<|Y|pc>mSV6ZrkC;vVv)rI_qRz!D(%i=DIGado>BF68=6L-Jw(_ zo=v593C@~4qaqoZ%_%Tb;fphZ^Cr)5G%1-HC)d~SY;%)s@eCD?mSE)}R#+Ep4iJ#R z)D`h$JiAKpR80xmBf#zhG|Dpg%D zRIeLBIp!G5z+6FjO>NgS2<971!Bl-a!61wZeLK-$8X{qwB&aXF*@%>$yQ-XSI)Vk5 z6Tu=Z4&xLW^eCOy;8ZLTOz(HI1w#vF)zr2XgQGK>rdmy5)Cd~Kv!B3SRJJ;UdNeS! z(yr6n$W+3l&`4NjVwgC0XZhB(=Yzsb^LK9TrKSb@DFEyz0jZ; zs|6Kg(B=-i3Bl|Fy-j|t$*kM&rY(!L2J6%xW~e{JvhiW!m>Ezu7a3fPR)R8WW?hov zoKRqwjSsq-YMsPdrqE6NWtm=L(56g}A*r%!Ou`5k6(aP+%MH3Ts3WoMZfw9p z8^IOm31hS1xMKYH_!?Y^t7wLJGV6x{vq5VZR~IUgRcND=>`e_uutkG<3mk)OhzY_; zZcIjkDK)LFwXM3pYtU!0>tp8XapT!cHtqBgR>5|IxK2&iDL<|&Fu>h6IJu0wY}qme zf6yR_6z!53Wf%32@u1Xpg>kK*X1w>7P5==MsR~2L8sv1Buz7kzRFA2awkKH-Vk=?>(Qy>7BAl~kI5m<5X3F5UD-gHMj7Ssl-4Lb}=D z7JQ09bX_{0b*(9yGoGCVOM)!@tP_;W_lN1Y6}N|R8w<*KJjR5-y0xZ&Vo5W&19!4I zWSn89t&iH$mx7fy?PhWbxH9gpC#FdpS<8$vcJbjILu ze4fJ6%Ux$Mkag?|Z!}6cIN4Oi=I{xFC-D>mhRP-AYbO=5lwIGKOESH&^tbpg-1r%M zDU2@)<`y>|#n#|ie3>ZsC7djk7MvSQP2)NGj#END-Rr9c&nYNVvnf?Cf~9!D;6)vZ zFj020wx``>6{C5t!Atl$9VY8)&$c|ctHmt1(TEru(r#}&#yo5_d)Z(g^4zU2o?t0s z6B*=Ef+)yy6bjZtuNWM_L1GcltQ#E45?&^=9<|*!4Zfv$E|iI1&s?+x-_{iN8V4BR zt-9j72H(T?NkJ_&*Nh5$-`m4@U9fa~Y>n|@4#f_Q7^P_f>QOrq>yAjhk^wflwCuGCS~Oq zK~{Wp^me=Hf$QB|f72>5ZaR8;4>?j-p$t!`^Zl{5f_tjit?tzf`WB0YpH7%+R~-Eg ze%Y}CR@xXGQ~Uqi;4joMoKpBjpkj%p;BVDt*oXPshcs zg+4a=)Uh^|V;A2Pk*QJ{VECJ~yZ*RCw~RBP$JVvNjCNwnt-Gz~g+tdYvG zQ@)f{MrP_%HK}|*O7ht}kj=S?ggfXrd5dJWkvY0>W?&(YfFtwsjLg^mqk;}FGI)ZK zY8|XrukcURpE6j-)x) z$azXLjWoJm4^@Yy$;b+=)EWX_;I-s<7U%j^MlO&GxwXGXONzyI6mzd+Gu98wY9niG z3r{v1-Gu98To2)TS!blB0Df=^A{QI{FWzH%lJ!O|8A(rGC}vcMb|W2X9_{Q4#Ekyw zvVm=@T*edlI7f&bp>0)simfXvA6<`^T}O4TRkWJg#5*pLE&XL$XS_e@WOHezt0kiv zG)2j;I)QGI)g&xe5YS?a)|^f|yL5F#x-o|;%9Td0k}W*3>FH1PhsgWK5L<~KQNsko6H zT5vS51C~~Q#GTo$&1z$*EXT8oUhNjLWwfxI6?m!KWaI|y3Ck^%V!W>(fs#f~ zID^}IoyE*38%h<*34+AG;|%INx^GsS+-BtVLWi%K+U!u+^fdNaK_9h=Vtg7Mt9POB z_f#Q-y*ygTXN=q}_b|GWsifQPWMkU}CkHu~>i2t!+MiK;JyWnUNI6NF{BqGmPh`b? zz{uxR>*HwD)owE7X5;-?7S;H074Jd!7I!;c!2YBdOq1Mgq#3qH5P8JNqw4b&Y}c|* zJjvG(gPCW>`j19)gjZ3jvzW9xQ@M1^ZHene<1DqDW)=UcaG46s24!_BW$$2yyn91t z;-}?{VR?qB$EsxWSUfqL8sIIN^)oJX`ka`4Cou9Qd6s_9o5sSB;B6m_Af?CrVivZ9 zn_1kJN)6l#GUMM z@{+S+{v-89bLcMQz>8f+2)PhYuWBAvOQ$vKDnQ4d0K5O z71CpJLD6$7>&>xW0y^W$A}NrQn>H=Ox`f^dCTN=jxpc0CX;U3UUj>f zu)Hleb)1uwGIdyfELbq{Ql@dwFK{vs6y>}O3GtN2FAjVw)9(%T$*&Fe$?J4JXL02W z9K+Se^4CkeVT=KWY$pU25nOY^9G z4NLc-@g*)VLzI7yx0@bM2G#t$aUwTZfSFi`I-c2=bH2`Fjni;Ce{mBlCQlK3Q$fq@ zn~GYFGx$EEoD0AykR2%VnK+AoRn8Pgl<>SmID2#5%b1tPx!z-i_qf1&tnnT#-ebM@ zXy1#@oP`R?vyLq)@;@oUw386D3s<@2bmVleBs4 zFUX_2;%V$Uge`>YnownL9$QydSI&P5)48sY(x{T;z%D>66aOCkZs1DSYtss(^J<6 zWh!>#E_|ABEW&o){CtK0wQ=3uxQ8;N=wtWdKJI@%<)}pH11t~Yvl99(THfPanOb%ml22O?XvoV_?oW!hQF?(@c{M< zuc4YokZbg`dD5|JN^v6M?3sJdCcJ|kMa*l>8<}mu2;lo zq5K0Z4dan8u6Q3?`0^g3rcA#Uj6;1}Y1IE{V$^?LK>bhtpQsOwK|P_U|6)SaSJ@Ek zrq)*wsm(;ahp1mkG_NA^J;Y!OF~6FKT|?xz5_yNn$B6u9BJUmr^1m#Byn6PLkpCrq zH6ikXKgDVv`9RKWCB@6yxDtT)qh-^Ye97M#uj9*Ox^3&9|v)1p`J$2Ak_ zZ;1gPzvIIu-rFn=B6*oIaJR3Km--`Q0>&M$Z>)3+JyyPSnmaYpcuPZle`B+omZd4e zVXYp#w>+X0GTllc$4pj=o4Cu(N036ju7nhKQ;HBBeJ&>zi!V@oRjAcd__#Kr&>h-J zl{dHPn>Rd*uUntQ0yVC6H9HKgT6S$-=ITg&UXCx;60fx1O55MY@_0K-`5m~Bx&LBj zf6Zl@hq&>GU7O`Z+EA?JDj@IULM9p43VmcM-i?C9Oj9wC^UZhoqjnHMTdrBFpk} zMuVsPxp_IKff}EmmzDZ#&dXX>-(T19{UQRhJ1?zyTi>f24#=f`nf1h4M1dH*{QD47 z(;jv~53?LTLWmw^0ey@RJsvP?0U`xUotq~Q{%g}l>7<~(bG=J;BAdvnOfFaLrOWE@ zb1u<5(RE0=sl#S9UbQd(0qJ4Q6MkRrcovO~2V|S@J4`*RmTadUc^P;ZbL#mkm6xGz zC8QqNGH~Ti7RV3Zu{e8mZGr8$o}ge)G6J4rXYe#TfM-~Xp2Q}87E^nBkZC1H1@ppP@^QX-HL2`FHmad8c+K05u*85`YWsjyON&jc?ZTqA z6DatrfP$VgKS$A?r@$|;4SJE~<9U|xy#eJ4mZE(|l$$wDIh~tGxoRqRgWO2<)eSc= zLbYvOLJKtJ<&%EW@_&tPN#y3D>rb^*FI(xnzI2HPePu)sS3dVM`Bd(ay1d+KOY>L` zEddS@yi2bGIq)dvbGU$@Yf#SCSg;)G4$56D?(*p}0#t}ZPn`7uX0yFaNoG8hOdBc^pd5W85U^ zgZumRC>Qpv4B#i^Nj}-|$(K3y6?tA>ux~HQOY#l-_Ok4kSM1vX`KG*T-@Yy1mG9fP W!}0_9p}a{RdU}3Kek4D^{QmX?_8Uy@jonV(n8$e`hqUzDz2Tu_vmm!4LX zn44OjUzDw1T#{OpnqN{`kg6Y?T2z*qoNCRW$N;nlXg33pW(1iJB-w#HeK4PafmLfe q1II?7022cjkOWCH09o7&stgP~U=Ayg<^?O@1C#s=0#Jp53=9B}W-6@! diff --git a/bin/main/de/oaa/xxx/games/common/aufgaben/Sperre.class b/bin/main/de/oaa/xxx/games/common/aufgaben/Sperre.class index 0d02203e82476e5041011001958598058559b63c..b92ef149342a68945db8aad98e3b545751d714f6 100644 GIT binary patch literal 5504 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 literal 7534 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 diff --git a/bin/main/de/oaa/xxx/games/common/repository/FinisherRepository.class b/bin/main/de/oaa/xxx/games/common/repository/FinisherRepository.class index b2a20d8f1d9385852ed9f8b68c2bcae7aa424d50..fcc61d55702ae47c0e5efa3f5753aaf1635a2edd 100644 GIT binary patch delta 246 zcmeyy)XBff$?3=9m83<49m`lLkCGV@ZLDjiGH(i4+X^W2L{3kp&h8Qe8|CJIPQ z)?;KhN0oBTE6FUWwAS>=N-Rs%FD=Q;(f7$LF0p20;0(@8&r2*REdpwl7Dfhk1`Y-$22P+)m>9Si Tcz`r3BLg>>%L^v?ppyIm7?(p$ delta 57 zcmeBV{l>&~>ff$?3=9m84BQjB`XlsEGaEYoqUjSmM{YY69YR?1rq}Y J11Ff~0sseO4U7N) diff --git a/bin/main/static/games/aufgaben/aufgaben.html b/bin/main/static/games/aufgaben/aufgaben.html index 5085716..d7e7641 100644 --- a/bin/main/static/games/aufgaben/aufgaben.html +++ b/bin/main/static/games/aufgaben/aufgaben.html @@ -416,7 +416,7 @@