{"id":26908,"date":"2025-11-20T17:05:59","date_gmt":"2025-11-20T22:05:59","guid":{"rendered":"https:\/\/lecochonsavant.com\/?page_id=26908"},"modified":"2025-12-25T20:13:15","modified_gmt":"2025-12-26T01:13:15","slug":"joe","status":"publish","type":"page","link":"https:\/\/lecochonsavant.com\/en\/joe\/","title":{"rendered":"Joe"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"26908\" class=\"elementor elementor-26908\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eb5d9a7 e-flex e-con-boxed e-con e-parent\" data-id=\"eb5d9a7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-12f0a24 elementor-widget elementor-widget-html\" data-id=\"12f0a24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n\r\n\/* ===== STYLE DESKTOP ===== *\/\r\n#joe-card {\r\n    max-width: 380px;\r\n    width: 100%;\r\n    margin: 0 auto;\r\n    padding: 20px;\r\n    border-radius: 20px;\r\n    background: #15151c;\r\n    box-shadow: 0 15px 40px rgba(0,0,0,0.5);\r\n    color: #fff;\r\n    font-family: sans-serif;\r\n}\r\n\r\n\/* Vid\u00e9o 9:16 fluide *\/\r\n#joe-card video {\r\n    width: 100%;\r\n    aspect-ratio: 9 \/ 16;\r\n    height: auto;\r\n    object-fit: cover;\r\n    background: #000;\r\n    border-radius: 14px;\r\n    margin-bottom: 12px;\r\n}\r\n\r\n\/* Boutons + layout desktop *\/\r\n.joe-actions {\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n    gap: 10px;\r\n}\r\n\r\n.joe-actions button,\r\n#joe-restart button {\r\n    flex: 1 1 calc(50% - 10px);\r\n    padding: 12px;\r\n    border-radius: 8px;\r\n    border: 1px solid #3a3a42;\r\n    background: #1e1e24;\r\n    color: #d0d0d0;\r\n    cursor: pointer;\r\n    transition: 0.2s;\r\n}\r\n.joe-actions button:hover,\r\n#joe-restart button:hover {\r\n    background: #2a2a30;\r\n    border-color: #50505a;\r\n    color: #fff;\r\n}\r\n\r\n\/* ===== STYLE MOBILE ===== *\/\r\n@media (max-width: 480px) {\r\n\r\n    #joe-card {\r\n        padding: 15px;\r\n        border-radius: 12px;\r\n    }\r\n\r\n    #joe-card video {\r\n        border-radius: 10px;\r\n    }\r\n\r\n    \/* On passe les boutons EN 1 COLONNE sur mobile *\/\r\n    .joe-actions button {\r\n        flex: 1 1 50%;\r\n        padding: 5px;\r\n        font-size: 1rem;\r\n    }\r\n\r\n    #joe-restart button {\r\n        flex: 1 1 50%;\r\n        padding: 8px;\r\n    }\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<div id=\"joe-card\">\r\n\r\n  <video id=\"joeVideo\" autoplay muted playsinline><\/video>\r\n\r\n  <div id=\"bar-bg\"><div id=\"bar\"><\/div><\/div>\r\n\r\n  <div id=\"joe-status\"><center>Joe pr\u00e9tend dormir.<\/div><\/center>\r\n<p>\r\n  <div class=\"joe-actions\">\r\n    <button onclick=\"doAction('douce')\">La main sur la cuisse<\/button>\r\n    <button onclick=\"doAction('moyenne')\">Prends les couilles<\/button>\r\n    <button onclick=\"doAction('moyenne')\">Suce le<\/button>\r\n    <button onclick=\"doAction('moyenne')\">mange le cul<\/button>\r\n    <button onclick=\"doAction('douce')\">un bisoux sur le front<\/button>\r\n    <button onclick=\"doAction('forte')\">Masturbe<\/button>\r\n    <button onclick=\"doAction('risque')\">Encule<\/button>\r\n    <button onclick=\"doAction('risque')\">Un doigt dans le cul<\/button>\r\n    <button onclick=\"doAction('risque')\">Le poing dans le cul<\/button>\r\n  <\/div>\r\n\r\n  <div id=\"joe-msg\"><\/div>\r\n\r\n  <div id=\"joe-restart\"><p>\r\n    <center><button onclick=\"restartGame()\">Rejouer<\/button><\/center>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\nlet niveau = 0;\r\nconst MIN = -2;\r\nconst MAX = 10;\r\n\r\nconst bar = document.getElementById('bar');\r\nconst video = document.getElementById('joeVideo');\r\nconst statusTxt = document.getElementById('joe-status');\r\nconst msg = document.getElementById('joe-msg');\r\n\r\n\/* === VID\u00c9OS \u00c0 REMPLACER PAR TES FICHIERS === *\/\r\nfunction clip(n) {\r\n  if (n <= -2) return \"https:\/\/vod.api.video\/vod\/vi66jx2aW0lKOkhKnKKOPJjP\/mp4\/source.mp4\";\r\n  if (n < 2) return \"https:\/\/vod.api.video\/vod\/viYlDsxCim2OWYdnmJ98aUZ\/mp4\/source.mp4\";\r\n  if (n < 5) return \"https:\/\/vod.api.video\/vod\/vi7TIibnRux854rgrgCDDOv\/mp4\/source.mp4\";\r\n  if (n < 8) return \"https:\/\/vod.api.video\/vod\/vi3mdmgxfB2A4nvaGcePdYmN\/mp4\/source.mp4\";\r\n  if (n < 10) return \"https:\/\/vod.api.video\/vod\/vi1d5zOwtmpGQ7FaAMXk0Xch\/mp4\/source.mp4\";\r\n  return \"https:\/\/vod.api.video\/vod\/vi4BAi4KZYq9ZYcXWg4ViVpB\/mp4\/source.mp4\";\r\n}\r\n\r\n\/* === EFFET DES ACTIONS SELON NIVEAU === *\/\r\nfunction effet(action, n) {\r\n  if (action === \"douce\") {\r\n    if (n <= 2) return 2;\r\n    if (n <= 5) return 1;\r\n    if (n <= 8) return 0;\r\n    return -1;\r\n  }\r\n  if (action === \"moyenne\") {\r\n    if (n <= 1) return -1;\r\n    if (n <= 6) return 2;\r\n    if (n <= 9) return 1;\r\n    return -2;\r\n  }\r\n  if (action === \"forte\") {\r\n    if (n <= 3) return -2;\r\n    if (n <= 6) return 1;\r\n    if (n <= 9) return 3;\r\n    return -3;\r\n  }\r\n  if (action === \"risque\") {\r\n    let r = Math.random();\r\n    if (r < .33) return -3;\r\n    if (r < .66) return 1;\r\n    return 3;\r\n  }\r\n  return 0;\r\n}\r\n\r\n\/* === UPDATE BARRE + TEXTE + VID\u00c9O === *\/\r\nfunction update() {\r\n  let pct = ((niveau - MIN) \/ (MAX - MIN)) * 100;\r\n  bar.style.width = pct + \"%\";\r\n\r\n  statusTxt.textContent =\r\n    niveau >= MAX ? \"Succ\u00e8s final.\" :\r\n    niveau <= MIN ? \"Il t\u2019\u00e9chappe.\" :\r\n    niveau > 7 ? \"Tr\u00e8s r\u00e9ceptif\u2026\" :\r\n    niveau > 4 ? \"Il embarque\u2026\" :\r\n    niveau > 1 ? \"Il commence \u00e0 r\u00e9agir.\" :\r\n    \"Joe est calme.\";\r\n\r\n  video.src = clip(niveau);\r\n}\r\n\r\n\/* === ACTION === *\/\r\nfunction doAction(a) {\r\n  if (niveau <= MIN || niveau >= MAX) return;\r\n\r\n  let delta = effet(a, niveau);\r\n  niveau += delta;\r\n\r\n  if (niveau > MAX) niveau = MAX;\r\n  if (niveau < MIN) niveau = MIN;\r\n\r\n  msg.textContent = delta > 0 ? \"Bonne action.\" :\r\n                    delta < 0 ? \"Mauvais moment pour \u00e7a.\" :\r\n                    \"Aucun effet.\";\r\n\r\n  update();\r\n}\r\n\r\n\/* === DESCENTE AUTOMATIQUE === *\/\r\nsetInterval(() => {\r\n  if (niveau <= MIN || niveau >= MAX) return;\r\n  niveau -= 0.15;\r\n  if (niveau < MIN) niveau = MIN;\r\n  update();\r\n}, 600);\r\n\r\n\/* === RESTART === *\/\r\nfunction restartGame() {\r\n  niveau = 0;\r\n  msg.textContent = \"\";\r\n  update();\r\n}\r\n\r\nupdate();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-47b0128 e-flex e-con-boxed e-con e-child\" data-id=\"47b0128\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62f39b0 elementor-widget elementor-widget-text-editor\" data-id=\"62f39b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p data-start=\"1901\" data-end=\"1991\"><strong data-start=\"1901\" data-end=\"1991\">Le but est simple : faire venir Joe.<br data-start=\"1939\" data-end=\"1942\">Mais la route\u2026 d\u00e9pend enti\u00e8rement de tes choix.<\/strong>Tu disposes de plusieurs actions de diff\u00e9rentes intensit\u00e9s.<\/p><p data-start=\"1993\" data-end=\"2086\">Selon son \u00e9tat, elles peuvent :<br><img decoding=\"async\" draggable=\"false\" role=\"img\" class=\"emoji\" alt=\"\u2b06\ufe0f\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/2b06.svg\" style=\"background-color: rgb(255, 255, 255);\"> augmenter son excitation<br><img decoding=\"async\" draggable=\"false\" role=\"img\" class=\"emoji\" alt=\"\u2b07\ufe0f\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/2b07.svg\" style=\"background-color: rgb(255, 255, 255);\"> la faire retomber<\/p><p data-start=\"2088\" data-end=\"2171\"><img decoding=\"async\" draggable=\"false\" role=\"img\" class=\"emoji\" alt=\"\ud83c\udfb2\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/1f3b2.svg\"> avoir un effet impr\u00e9visible<\/p>\n<p data-start=\"2173\" data-end=\"2269\">Surveille la jauge : si elle atteint le sommet \u2192 <strong data-start=\"2224\" data-end=\"2236\">victoire<\/strong><br data-start=\"2236\" data-end=\"2239\">si elle chute trop \u2192 <strong data-start=\"2260\" data-end=\"2269\">\u00e9chec<\/strong><\/p>\n<p data-start=\"2271\" data-end=\"2392\">Certaines actions ne fonctionnent que lorsque Joe est d\u00e9j\u00e0 tr\u00e8s chaud. D\u2019autres sont id\u00e9ales quand il est encore calme.<\/p>\n<p data-start=\"2394\" data-end=\"2489\">\u00c0 toi d\u2019apprendre son rythme.<br data-start=\"2423\" data-end=\"2426\">\u00c0 toi de le garder dans le moment.<br data-start=\"2460\" data-end=\"2463\">\u00c0 toi de le mener au bout.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Joe pr\u00e9tend dormir. La main sur la cuisse Prends les couilles Suce le mange le cul un bisoux sur le front Masturbe Encule Un doigt dans le cul Le poing dans le cul Rejouer Le but est simple : faire venir Joe.Mais la route\u2026 d\u00e9pend enti\u00e8rement de tes choix.Tu disposes de plusieurs actions de diff\u00e9rentes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":33124,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-26908","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/pages\/26908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/comments?post=26908"}],"version-history":[{"count":19,"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/pages\/26908\/revisions"}],"predecessor-version":[{"id":33127,"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/pages\/26908\/revisions\/33127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/media\/33124"}],"wp:attachment":[{"href":"https:\/\/lecochonsavant.com\/en\/wp-json\/wp\/v2\/media?parent=26908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}