LifePlay-Revival/Docs/Migration/etat/ST/STE/fiches/STE-ORG5-I1.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

5.7 KiB
Raw Blame History

Fiche STE-ORG5-I1 — Niveau N3 — Modèle prévu (modèle de l'agent lp-impl) | utilisé <modèle déclaré> — Agent lp-impl — Skills sk-protocol, sk-change-safety, ue-cpp-build (lecture)

1 Objectif : écrire en C++ la version minimale (V-min) du bonus d'orgasme v5.26 dans deux fichiers neufs Source\LifePlay\LPBonusRewardSubsystem.h et .cpp, selon STE-ORG5-SPEC.md (§ 2-3 conception B, table des 20 clés, formule, tirage, H1, application automatique de la première récompense retenue, 3 au plus) — lot STE, registre D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-TACHES.md ligne STE-ORG 2 Complexité : a1 b2 c1 d1 e1 f1 = 7 → N3 (aucun) ; barème § 2 : C3 = 1 (conception et pseudo-code écrits dans la SPEC) ; S = 2 < 3 → pas de scission ; C9a : relu le 2026-10-14 par l'orchestrateur (GO de Big Boss ; SPEC livrée et décisions en fin de fichier ; règle commune ORG4 / ORG5 écrite) 2b Agent : lp-impl (modèle surchargé : aucun) — préchargés : ceux de l'agent — à invoquer : sk-change-safety — outils retirés : aucun 3 Contexte : GO de Big Boss (2026-10-14) pour l'IMPL C++ uniquement dans les deux fichiers neufs, sans UE ni compilation (la compilation se fera dans un build COMMUN ; VAL statique par un agent distinct). SPEC : D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-ORG5-SPEC.md (lire en entier, y compris « Décisions de l'utilisateur » et « Règle commune ORG4 / ORG5 » en fin de fichier). Décisions : V-min, option B, 3 récompenses, toute personne qui jouit (PNJ compris, attractiontoplayer réservé aux PNJ intéressés par le joueur), bDisabled faux par défaut, accroche H1 (sondage de Sex_OrgasmCounts), licence MIT. Précédents de style : sous-systèmes existants de Source\LifePlay\ (en lecture ; ne pas les modifier ; certains sont modifiés non commités par d'autres lots : LPDebugSubsystem.*, LPOutdoorRoomSubsystem.*, LPCameraModeSubsystem.*). Consignes de Big Boss : (1) accroche documentée : H1 lit l'état des personnes par réflexion depuis le C++ ; si le déclenchement exige un nœud Blueprint (GI, Person, SexAction), ne pas l'écrire : le dire dans le livrable (ce sera une écriture d'asset sous UE-GO, fiche ORG4) ; aucune accroche cachée (pas de lecture du journal, pas de hook de texte) ; (2) réglage : lu depuis Config\ du projet (par exemple UCLASS(config = Game) → [/Script/LifePlay.LPBonusRewardSettings] de DefaultGame.ini, valeur par défaut dans le code si la section est absente) ; rien dans Saved\ : la SPEC proposait config = GameUserSettings (écrit sous Saved\Config) → remplacer ; ne pas modifier DefaultGame.ini dans cette fiche (fichier existant : section à ajouter plus tard sur décision, la valeur par défaut du code suffit) ; (3) en-tête : origine (« comportement reconstruit d'après LifePlay 2023.04 de Vinfamy »), licence MIT (texte court + renvoi à Licenses\Vinfamy_License.txt). Points amont à reprendre : la règle commune ORG4 / ORG5 (un même orgasme : ORG5 au plus une fois par personne ; Endsex sans Cum ne déclenche pas ORG5) ; le Build.cs n'a pas à changer si aucun module nouveau n'est requis (le vérifier en lecture et le dire ; s'il faut le changer : arrêt et compte rendu, c'est un fichier existant). 4 Entrées et questions :

  • Code : classe de réglages, sous-système (UGameInstanceSubsystem ou UWorldSubsystem + tick ou minuterie : justifier ; coût du sondage par seconde), table des 20 clés (stat, signe, tags), tirage (10 clés au hasard, filtre Overlaps(..., IfEmptyThenTrue=true), condition attractiontoplayer, 3 au plus), formule signe × ceil((2,0 − MapRangeClamped(|stat|, 0, 100, 0, 1,9)) × 10) / 10, application automatique de la première retenue par ModifyStat (réflexion, signature relue dans les dumps), mémoire du dernier compte par personne (pas de double déclenchement, remise à zéro en fin de scène), journal UE_LOG(LogLifePlay, Log, …) une ligne par récompense appliquée (marqueur pour V6).
  • Pour chaque appel par réflexion : nom de la fonction / propriété Blueprint et preuve (dump fichier:ligne).
  • Liste des écarts à la SPEC (et pourquoi). 5 Pièges : pas de compilation possible : relire les signatures UE 5.8 dans D:\Game\Launcher\Engine\UE_5.8\Engine\Source\ (lecture) ; FProperty / UFunction::ProcessEvent avec structure de paramètres exacte ; pas d'en-têtes privés ; le crochet ecriture-gardien refuse tout caractère > dans une commande Bash (même 2>/dev/null, même dans un motif), python -c, heredocs : au premier refus du crochet, arrêt et compte rendu (écrire les fichiers par l'outil Write) ; aucun nom d'utilisateur ni C:\Users\<nom> dans le code ni le livrable. 6 Interdits : aucun fichier existant modifié (ni .Build.cs, ni .ini, ni autre source) ; aucun asset ; pas d'éditeur, de MCP, de commandlet, de build ni de jeu ; aucun commit (+ sk-protocol § 2). 7 Livrable : les deux fichiers neufs + D:\Game\LifePlay-master 5.8\Docs\Migration\etat\ST\STE\STE-ORG5-I1-IMPL.md (fichiers créés, accroche documentée, appels par réflexion et preuves, réglage, en-tête, écarts à la SPEC, points à vérifier à la compilation) + compte rendu sk-protocol § 3 8 Critère d'acceptation : V-min écrite dans les deux seuls fichiers neufs, accroche sans nœud Blueprint (ou besoin de nœud déclaré), réglage dans Config\, en-tête MIT, aucune autre modification (git status avant / après) 9 Budget et arrêt : 45 tours, pic ≤ 180 k, ≈ 45 min — tentative 1/4 ; arrêt au premier refus de permission ou du crochet, ou s'il faut modifier un fichier existant ; au budget : livrable partiel + état de reprise