{"id":3786,"date":"2026-05-25T08:38:51","date_gmt":"2026-05-25T12:38:51","guid":{"rendered":"https:\/\/zero-cooldown.com\/?page_id=3786"},"modified":"2026-08-02T10:46:50","modified_gmt":"2026-08-02T14:46:50","slug":"character-sheet","status":"publish","type":"page","link":"https:\/\/zero-cooldown.com\/fr\/character-sheet\/","title":{"rendered":"Character Sheet \u2014 Sol Fracta"},"content":{"rendered":"\n<script>(function(){[['en','https:\/\/zero-cooldown.com\/character-sheet\/'],['fr','https:\/\/zero-cooldown.com\/fiche-personnage\/'],['x-default','https:\/\/zero-cooldown.com\/character-sheet\/']].forEach(function(l){var t=document.createElement('link');t.rel='alternate';t.hreflang=l[0];t.href=l[1];document.head.appendChild(t);});})();<\/script>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Chakra+Petch:wght@300;400;500;600;700&#038;family=Courier+Prime&#038;display=swap\" rel=\"stylesheet\">\n<style>\n#sf-sheet{all:initial;display:block;font-family:'Chakra Petch',sans-serif!important;}\n#sf-sheet *,#sf-sheet *::before,#sf-sheet *::after{box-sizing:border-box!important;margin:0!important;padding:0!important;}\n#sf-sheet{--bg:#08080D;--surface:#0D1020;--surface2:#131728;--b1:#3A4268;--b2:#505890;--text:#EAE6DC;--muted:#8A94BB;--dim:#5C6590;--accent:#C07A3A;--accent-lo:#7A4D25;--dot:#C07A3A;--dot-e:#151828;--sans:'Chakra Petch',sans-serif;--mono:'Courier Prime',monospace;}\n#sf-sheet{max-width:1040px;margin:0 auto!important;padding:36px 20px 60px!important;color:var(--text)!important;font-family:var(--sans)!important;background:var(--bg)!important;min-height:100vh!important;line-height:1.5!important;}\n#sf-sheet .toolbar{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-bottom:24px!important;padding-bottom:16px!important;border-bottom:1px solid var(--b1)!important;}\n#sf-sheet .brand{font-size:32px!important;font-weight:700!important;letter-spacing:-0.05em!important;color:var(--muted)!important;opacity:.5!important;line-height:1!important;user-select:none!important;}\n#sf-sheet .tb-btns{display:flex!important;gap:8px!important;}\n#sf-sheet .tb-btn{background:transparent!important;border:1px solid var(--b1)!important;color:var(--muted)!important;padding:6px 16px!important;font-size:9px!important;letter-spacing:.2em!important;font-family:var(--sans)!important;cursor:pointer!important;text-transform:uppercase!important;}\n#sf-sheet .tb-btn:hover{border-color:var(--accent)!important;color:var(--accent)!important;}\n#sf-sheet .card{background:var(--surface)!important;border:1px solid var(--b1)!important;padding:30px 34px!important;}\n#sf-sheet .dvd{height:1px!important;background:var(--b1)!important;margin:24px 0!important;}\n#sf-sheet .mdvd{height:1px!important;background:var(--b1)!important;margin:10px 0!important;}\n#sf-sheet .hdr-grid{display:grid!important;grid-template-columns:1fr auto!important;gap:18px!important;align-items:start!important;margin-bottom:20px!important;}\n#sf-sheet .name-row{display:flex!important;align-items:baseline!important;gap:18px!important;margin-bottom:14px!important;}\n#sf-sheet .name-inp{flex:1 1 0!important;min-width:0!important;font-size:18px!important;font-weight:600!important;font-family:var(--sans)!important;letter-spacing:.05em!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--b1)!important;color:var(--text)!important;outline:none!important;padding:2px 0!important;box-shadow:none!important;}\n#sf-sheet .name-inp::placeholder{color:var(--dim)!important;font-style:italic!important;opacity:1!important;}\n#sf-sheet .name-inp:focus{border-bottom-color:var(--accent)!important;}\n#sf-sheet .gen-wrap{display:flex!important;align-items:center!important;gap:6px!important;flex-shrink:0!important;}\n#sf-sheet .gen-lbl{font-size:8px!important;font-weight:600!important;letter-spacing:.25em!important;color:var(--muted)!important;text-transform:uppercase!important;}\n#sf-sheet .gen-inp{flex:0 0 38px!important;width:38px!important;text-align:center!important;font-size:15px!important;font-weight:600!important;color:var(--accent)!important;font-family:var(--sans)!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--b1)!important;outline:none!important;padding:2px 0!important;box-shadow:none!important;}\n#sf-sheet .fields-row{display:flex!important;gap:24px!important;}\n#sf-sheet .sfield{flex:1 1 0!important;min-width:0!important;}\n#sf-sheet .fl{font-size:8px!important;font-weight:600!important;letter-spacing:.2em!important;color:var(--muted)!important;text-transform:uppercase!important;margin-bottom:4px!important;display:block!important;}\n#sf-sheet .fi{font-family:var(--mono)!important;font-size:11px!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--b1)!important;color:var(--text)!important;outline:none!important;padding:3px 0!important;display:block!important;width:100%!important;box-shadow:none!important;}\n#sf-sheet .fi::placeholder{color:var(--dim)!important;font-style:italic!important;opacity:1!important;}\n#sf-sheet .fi:focus{border-bottom-color:var(--accent)!important;}\n#sf-sheet .faction-logo{width:76px!important;height:76px!important;border:1px solid var(--b1)!important;flex-shrink:0!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:28px!important;font-weight:700!important;color:var(--muted)!important;opacity:.4!important;letter-spacing:-0.04em!important;overflow:hidden!important;cursor:pointer!important;}\n#sf-sheet .faction-logo img{width:100%!important;height:100%!important;object-fit:contain!important;opacity:1!important;display:block!important;}\n#sf-sheet .sl-row{display:flex!important;align-items:center!important;justify-content:space-between!important;padding-bottom:8px!important;border-bottom:1px solid var(--b1)!important;margin-bottom:13px!important;}\n#sf-sheet .sl-txt{font-size:8px!important;font-weight:700!important;letter-spacing:.28em!important;color:var(--muted)!important;text-transform:uppercase!important;}\n#sf-sheet .sl{font-size:8px!important;font-weight:700!important;letter-spacing:.28em!important;color:var(--muted)!important;text-transform:uppercase!important;padding-bottom:8px!important;border-bottom:1px solid var(--b1)!important;margin-bottom:13px!important;display:block!important;}\n#sf-sheet .sub{font-size:8px!important;font-weight:600!important;letter-spacing:.2em!important;color:var(--accent)!important;text-transform:uppercase!important;margin-bottom:8px!important;display:block!important;}\n#sf-sheet .main-grid{display:grid!important;grid-template-columns:5fr 7fr!important;gap:38px!important;}\n#sf-sheet .col{display:flex!important;flex-direction:column!important;gap:24px!important;}\n#sf-sheet .xp-row{display:flex!important;gap:3px!important;align-items:center!important;}\n#sf-sheet .xp-box{width:10px!important;height:10px!important;border:1.5px solid var(--b2)!important;border-radius:2px!important;background:transparent!important;cursor:pointer!important;flex-shrink:0!important;transition:background .1s!important;}\n#sf-sheet .xp-box.on{background:var(--accent)!important;border-color:var(--accent)!important;}\n#sf-sheet .ess-row{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:9px!important;}\n#sf-sheet .ess-nm{font-size:11px!important;letter-spacing:.06em!important;width:115px!important;flex-shrink:0!important;color:var(--text)!important;font-family:var(--sans)!important;}\n#sf-sheet .ess-nm.dim{color:var(--muted)!important;}\n#sf-sheet .dot-row{display:flex!important;gap:5px!important;align-items:center!important;}\n#sf-sheet .dot{width:13px!important;height:13px!important;border-radius:50%!important;cursor:pointer!important;flex-shrink:0!important;border:1.5px solid var(--b2)!important;background:var(--dot-e)!important;transition:background .1s!important;}\n#sf-sheet .dot.on{background:var(--dot)!important;border-color:var(--dot)!important;}\n#sf-sheet .dot.lg{width:14px!important;height:14px!important;}\n#sf-sheet .ev-hdr{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:10px!important;}\n#sf-sheet .ev-lbl{font-size:8px!important;font-weight:700!important;letter-spacing:.28em!important;color:var(--muted)!important;text-transform:uppercase!important;}\n#sf-sheet .max-ctrl{display:flex!important;align-items:center!important;gap:7px!important;}\n#sf-sheet .max-lbl{font-size:8px!important;letter-spacing:.2em!important;color:var(--muted)!important;text-transform:uppercase!important;}\n#sf-sheet .max-val{font-size:16px!important;font-weight:700!important;min-width:20px!important;text-align:center!important;color:var(--accent)!important;}\n#sf-sheet .cb{background:transparent!important;border:1px solid var(--b1)!important;color:var(--muted)!important;width:22px!important;height:22px!important;font-size:14px!important;cursor:pointer!important;display:flex!important;align-items:center!important;justify-content:center!important;font-family:var(--sans)!important;padding:0!important;line-height:1!important;box-shadow:none!important;}\n#sf-sheet .cb:hover{border-color:var(--accent)!important;color:var(--accent)!important;}\n#sf-sheet .comp-row{display:flex!important;align-items:center!important;gap:10px!important;margin-bottom:10px!important;}\n#sf-sheet .comp-row .fi{flex:1 1 0!important;width:0!important;min-width:0!important;}\n#sf-sheet .add-btn{background:transparent!important;border:1px solid var(--b1)!important;color:var(--muted)!important;padding:5px 12px!important;font-size:8px!important;letter-spacing:.15em!important;font-family:var(--sans)!important;cursor:pointer!important;margin-top:4px!important;text-transform:uppercase!important;box-shadow:none!important;}\n#sf-sheet .add-btn:hover{border-color:var(--accent)!important;color:var(--accent)!important;}\n#sf-sheet .gear-row{display:flex!important;align-items:center!important;gap:7px!important;margin-bottom:8px!important;}\n#sf-sheet .nom-fi{flex:1 1 0!important;width:0!important;min-width:0!important;}\n#sf-sheet .nd-fi{flex:0 0 66px!important;width:66px!important;text-align:center!important;}\n#sf-sheet .rep-box{width:14px!important;height:14px!important;flex-shrink:0!important;cursor:pointer!important;border:1.5px solid var(--b2)!important;border-radius:2px!important;background:transparent!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;color:var(--bg)!important;font-weight:700!important;}\n#sf-sheet .rep-box.on{background:var(--accent)!important;border-color:var(--accent)!important;}\n#sf-sheet .th-row{display:grid!important;grid-template-columns:1fr 1.5fr!important;gap:18px!important;}\n#sf-sheet .aug-row{display:flex!important;align-items:center!important;gap:8px!important;margin-bottom:9px!important;}\n#sf-sheet .aug-nom{flex:1 1 0!important;width:0!important;min-width:0!important;font-family:var(--mono)!important;font-size:11px!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--b1)!important;color:var(--text)!important;outline:none!important;padding:3px 0!important;box-shadow:none!important;}\n#sf-sheet .aug-nom::placeholder{color:var(--dim)!important;font-style:italic!important;opacity:1!important;}\n#sf-sheet .ess-sel{font-family:var(--sans)!important;font-size:9px!important;font-weight:500!important;background:var(--surface2)!important;border:1px solid var(--b1)!important;color:var(--text)!important;padding:3px 5px!important;outline:none!important;cursor:pointer!important;flex:0 0 68px!important;width:68px!important;min-width:68px!important;box-shadow:none!important;}\n#sf-sheet .spec-hdr{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:10px!important;}\n#sf-sheet .spec-nm{width:100%!important;font-family:var(--sans)!important;font-size:15px!important;font-weight:600!important;letter-spacing:.04em!important;background:transparent!important;border:none!important;border-bottom:1px solid var(--b1)!important;color:var(--text)!important;outline:none!important;padding:2px 0!important;margin-bottom:11px!important;box-shadow:none!important;display:block!important;}\n#sf-sheet .spec-nm::placeholder{color:var(--dim)!important;font-style:italic!important;opacity:1!important;}\n#sf-sheet .spec-desc{width:100%!important;font-family:var(--mono)!important;font-size:11px!important;line-height:1.8!important;background:var(--surface2)!important;border:1px solid var(--b1)!important;color:var(--text)!important;outline:none!important;resize:vertical!important;padding:12px 14px!important;display:block!important;box-shadow:none!important;}\n#sf-sheet .spec-desc::placeholder{color:var(--dim)!important;font-style:italic!important;opacity:1!important;}\n#sf-sheet .footer{display:flex!important;justify-content:space-between!important;align-items:center!important;margin-top:18px!important;padding-top:14px!important;border-top:1px solid var(--b1)!important;}\n#sf-sheet .autosave-msg{font-size:8px!important;letter-spacing:.2em!important;color:var(--accent)!important;opacity:0!important;text-transform:uppercase!important;transition:opacity .4s!important;}\n#sf-sheet .autosave-msg.show{opacity:.7!important;}\n#sf-sheet .footer-brand{font-size:8px!important;letter-spacing:.3em!important;color:var(--muted)!important;opacity:.4!important;text-transform:uppercase!important;}\n@media(max-width:700px){#sf-sheet .main-grid{grid-template-columns:1fr!important;}#sf-sheet .card{padding:20px 18px!important;}#sf-sheet .hdr-grid{grid-template-columns:1fr!important;}#sf-sheet .faction-logo{display:none!important;}}\n<\/style>\n<div id=\"sf-sheet\">\n  <div class=\"toolbar\">\n    <div class=\"brand\">\u00d8<\/div>\n    <div class=\"tb-btns\">\n      <button class=\"tb-btn\" id=\"btn-save\">\u2193 Save<\/button>\n      <button class=\"tb-btn\" id=\"btn-load\">\u2191 Load<\/button>\n      <button class=\"tb-btn\" id=\"btn-new\">\u2715 New<\/button>\n      <input id=\"file-in\" type=\"file\" accept=\".json\" style=\"display:none\">\n    <\/div>\n  <\/div>\n  <div class=\"card\">\n    <div class=\"hdr-grid\">\n      <div>\n        <div class=\"name-row\">\n          <input type=\"text\" id=\"f-nom\" class=\"name-inp\" placeholder=\"Character Name\">\n          <div class=\"gen-wrap\"><span class=\"gen-lbl\">Gen.<\/span><input type=\"text\" id=\"f-gen\" class=\"gen-inp\" placeholder=\"1\" maxlength=\"2\"><\/div>\n        <\/div>\n        <div class=\"fields-row\">\n          <div class=\"sfield\"><div class=\"fl\">Faction<\/div><input type=\"text\" id=\"f-fac\" class=\"fi\" placeholder=\"\u2014\"><\/div>\n          <div class=\"sfield\"><div class=\"fl\">Role<\/div><input type=\"text\" id=\"f-hier\" class=\"fi\" placeholder=\"\u2014\"><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"faction-logo\" id=\"faction-logo\">\u00d8<\/div>\n    <\/div>\n    <div class=\"dvd\"><\/div>\n    <div class=\"main-grid\">\n      <div class=\"col\">\n        <div>\n          <div class=\"sl-row\"><span class=\"sl-txt\">Essences<\/span><div class=\"xp-row\" id=\"xp-ess\"><\/div><\/div>\n          <div id=\"ess-main\"><\/div>\n          <div class=\"mdvd\"><\/div>\n          <div class=\"ess-row\"><span class=\"ess-nm dim\">Astral<\/span><div class=\"dot-row\" id=\"dt-ess-astrale\"><\/div><\/div>\n        <\/div>\n        <div>\n          <div class=\"ev-hdr\">\n            <span class=\"ev-lbl\">Vital Energy<\/span>\n            <div class=\"max-ctrl\"><span class=\"max-lbl\">Max<\/span><button class=\"cb\" id=\"ev-dn\">\u2212<\/button><span class=\"max-val\" id=\"ev-max-disp\">10<\/span><button class=\"cb\" id=\"ev-up\">+<\/button><\/div>\n          <\/div>\n          <div class=\"mdvd\" style=\"margin:0 0 13px\"><\/div>\n          <div class=\"dot-row\" id=\"dt-ev\"><\/div>\n        <\/div>\n        <div>\n          <div class=\"sl-row\"><span class=\"sl-txt\">Skills<\/span><div class=\"xp-row\" id=\"xp-comp\"><\/div><\/div>\n          <div id=\"comp-sect\"><\/div>\n          <button class=\"add-btn\" id=\"add-comp\">+ Skill<\/button>\n        <\/div>\n      <\/div>\n      <div class=\"col\">\n        <div>\n          <div class=\"sl\">Background<\/div>\n          <div style=\"display:flex!important;flex-direction:column!important;gap:10px!important\">\n            <input type=\"text\" id=\"p0\" class=\"fi\" placeholder=\"Origin...\">\n            <input type=\"text\" id=\"p1\" class=\"fi\" placeholder=\"Upbringing...\">\n            <input type=\"text\" id=\"p2\" class=\"fi\" placeholder=\"Belonging...\">\n          <\/div>\n        <\/div>\n        <div>\n          <div class=\"sl\">Gear<\/div>\n          <div class=\"sub\">Weapons<\/div><div id=\"g-armes\"><\/div>\n          <div class=\"mdvd\"><\/div>\n          <div class=\"sub\">Armor<\/div><div id=\"g-armures\"><\/div>\n          <div class=\"mdvd\"><\/div>\n          <div class=\"sub\">Tools<\/div><div id=\"g-equip\"><\/div>\n          <div class=\"mdvd\"><\/div>\n          <div class=\"sub\">Loads &amp; Ammunition<\/div><div id=\"g-charges\"><\/div>\n        <\/div>\n        <div class=\"th-row\">\n          <div><div class=\"fl\">TH<\/div><input type=\"text\" id=\"f-th\" class=\"fi\" placeholder=\"0\"><\/div>\n          <div><div class=\"fl\">Code<\/div><input type=\"text\" id=\"f-code\" class=\"fi\" placeholder=\"\u2014\"><\/div>\n        <\/div>\n        <div>\n          <div class=\"sl\">Augmentation<\/div>\n          <div id=\"aug-sect\"><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"dvd\"><\/div>\n    <div>\n      <div class=\"spec-hdr\"><span class=\"sl\" style=\"margin:0!important;padding:0!important;border:none!important\">Specificity<\/span><div class=\"dot-row\" id=\"dt-spec\"><\/div><\/div>\n      <div class=\"mdvd\"><\/div>\n      <input type=\"text\" id=\"f-spec-nm\" class=\"spec-nm\" placeholder=\"Name of specificity...\">\n      <textarea id=\"f-spec-desc\" class=\"spec-desc\" rows=\"3\" placeholder=\"Description and effects\"><\/textarea>\n    <\/div>\n    <div class=\"footer\"><span class=\"autosave-msg\" id=\"autosave-msg\">Saved<\/span><span class=\"footer-brand\">Sol Fracta \u00b7 Zero Cooldown<\/span><\/div>\n  <\/div>\n<\/div>\n<script>\nconst ESS=['biological','psychological','social','cultural','existential'];\nconst ELBL={biological:'Biological',psychological:'Psychological',social:'Social',cultural:'Cultural',existential:'Existential'};\nconst EOPTS=['','EB','EP','ES','EC','EE'];\nconst FACTION_LOGOS={'horizon syndicate':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-horizon-syndicate.png','deep society':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-deep-society.png','ordo crucis':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-ordo-crucis.png','merco prime':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-merco-prime.png','holy german empire':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-holy-german-empire.png','assaxhin guild':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-assaxhin-guild.png','nouvelle r\\u00e9publique':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-nouvelle-republique.png','nouvelle republique':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-nouvelle-republique.png','aurum collective':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-aurum-collective.png','code cartel':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-code-cartel.png','pharmacopolia universalis':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-pharmacopolia-universalis.png','ind\\u00e9pendants':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-independants.png','independants':'https:\/\/zero-cooldown.com\/wp-content\/uploads\/2026\/05\/faction-independants.png'};\nfunction updateFactionLogo(val){const div=document.getElementById('faction-logo');if(!div)return;const url=FACTION_LOGOS[val.trim().toLowerCase()];if(url){div.style.opacity='1';div.innerHTML='<img decoding=\"async\" src=\"'+url+'\" alt=\"\" style=\"width:100%;height:100%;object-fit:contain;display:block;\">';}else{div.style.opacity='.4';div.innerHTML='\\u00d8';}}\nconst ST={ess:{biological:0,psychological:0,social:0,cultural:0,existential:0,astrale:0},essXp:Array(5).fill(false),evMax:10,evCur:10,comp:Array(5).fill(null).map(()=>({dots:0})),compXp:Array(10).fill(false),armes:Array(3).fill(null).map(()=>({rep:false})),armures:Array(1).fill(null).map(()=>({rep:false})),equip:Array(5).fill(null).map(()=>({rep:false})),augEss:['','',''],specTier:0};\nfunction mkDots(id,n,val,big){const el=document.getElementById(id);if(!el)return;el.innerHTML=Array(n).fill(0).map((_,i)=>`<div class=\"dot${big?' lg':''} ${i<val?'on':''}\" data-id=\"${id}\" data-i=\"${i}\" tabindex=\"0\" role=\"button\"><\/div>`).join('');}\nfunction rfrDots(id,val){document.querySelectorAll('#sf-sheet .dot[data-id=\"'+id+'\"]').forEach((d,i)=>d.classList.toggle('on',i<val));}\nfunction getV(id){if(id.indexOf('dt-')===0)id=id.slice(3);if(id.startsWith('ess-'))return ST.ess[id.slice(4)];if(id==='ev')return ST.evCur;if(id.startsWith('comp-')){const c=ST.comp[+id.slice(5)];return c?c.dots:0;}if(id==='spec')return ST.specTier;return 0;}\nfunction setV(id,v){if(id.indexOf('dt-')===0)id=id.slice(3);if(id.startsWith('ess-'))ST.ess[id.slice(4)]=v;else if(id==='ev')ST.evCur=v;else if(id.startsWith('comp-')){const c=ST.comp[+id.slice(5)];if(c)c.dots=v;}else if(id==='spec')ST.specTier=v;}\nfunction mkXP(id,n,arr){const el=document.getElementById(id);if(!el)return;el.innerHTML=Array(n).fill(0).map((_,i)=>`<div class=\"xp-box ${arr[i]?'on':''}\" data-xp=\"${id}\" data-i=\"${i}\" tabindex=\"0\" role=\"checkbox\"><\/div>`).join('');}\nfunction buildEss(){document.getElementById('ess-main').innerHTML=ESS.map(e=>`<div class=\"ess-row\"><span class=\"ess-nm\">${ELBL[e]}<\/span><div class=\"dot-row\" id=\"dt-ess-${e}\"><\/div><\/div>`).join('');[...ESS,'astrale'].forEach(e=>mkDots('dt-ess-'+e,5,ST.ess[e]));}\nfunction buildComp(){const sect=document.getElementById('comp-sect');sect.innerHTML='';ST.comp.forEach((c,i)=>{const row=document.createElement('div');row.className='comp-row';row.innerHTML='<input type=\"text\" id=\"ci'+i+'\" class=\"fi\" style=\"flex:1 1 0!important;width:0!important;min-width:0!important\" placeholder=\"\\u2014 skill\"><div class=\"dot-row\" id=\"dt-comp-'+i+'\"><\/div>';sect.appendChild(row);mkDots('dt-comp-'+i,5,c.dots);});}\nfunction addCompRow(){ST.comp.push({dots:0});const i=ST.comp.length-1;const row=document.createElement('div');row.className='comp-row';row.innerHTML='<input type=\"text\" id=\"ci'+i+'\" class=\"fi\" style=\"flex:1 1 0!important;width:0!important;min-width:0!important\" placeholder=\"\\u2014 skill\"><div class=\"dot-row\" id=\"dt-comp-'+i+'\"><\/div>';document.getElementById('comp-sect').appendChild(row);mkDots('dt-comp-'+i,5,0);}\nfunction gRow(pfx,i,hasRep){const rep=hasRep?ST[pfx][i].rep:false;return '<div class=\"gear-row\"><input type=\"text\" id=\"'+pfx+'n'+i+'\" class=\"fi nom-fi\" placeholder=\"\\u2014\"><input type=\"text\" id=\"'+pfx+'nd'+i+'\" class=\"fi nd-fi\" placeholder=\"ND\">'+(hasRep?'<div class=\"rep-box'+(rep?' on':'')+'\" data-pfx=\"'+pfx+'\" data-i=\"'+i+'\" role=\"checkbox\" tabindex=\"0\">'+(rep?'\\u2713':'')+'<\/div>':'')+'<\/div>';}\nfunction buildGear(){document.getElementById('g-armes').innerHTML=Array(3).fill(0).map((_,i)=>gRow('armes',i,true)).join('');document.getElementById('g-armures').innerHTML=gRow('armures',0,true);document.getElementById('g-equip').innerHTML=Array(5).fill(0).map((_,i)=>gRow('equip',i,true)).join('');document.getElementById('g-charges').innerHTML=Array(3).fill(0).map((_,i)=>gRow('charges',i,false)).join('');}\nfunction buildAug(){document.getElementById('aug-sect').innerHTML=Array(3).fill(0).map((_,i)=>'<div class=\"aug-row\"><input type=\"text\" id=\"an'+i+'\" class=\"aug-nom\" placeholder=\"\\u2014\"><select class=\"ess-sel\" id=\"ae'+i+'\">'+EOPTS.map(o=>'<option value=\"'+o+'\">'+(o||'\\u2014')+'<\/option>').join('')+'<\/select><\/div>').join('');Array(3).fill(0).forEach((_,i)=>document.getElementById('ae'+i).addEventListener('change',e=>{ST.augEss[i]=e.target.value;autoSave();}));}\nbuildEss();mkXP('xp-ess',5,ST.essXp);mkDots('dt-ev',10,ST.evCur,true);buildComp();mkXP('xp-comp',10,ST.compXp);buildGear();buildAug();mkDots('dt-spec',3,ST.specTier);\ndocument.getElementById('f-fac').addEventListener('input',e=>updateFactionLogo(e.target.value));\nlet saveTimer,debTimer;\nfunction showSaved(){const m=document.getElementById('autosave-msg');m.classList.add('show');clearTimeout(saveTimer);saveTimer=setTimeout(()=>m.classList.remove('show'),2200);}\nfunction autoSave(){try{localStorage.setItem('sf-char-v1',JSON.stringify(collect()));showSaved();}catch(e){}}\ndocument.addEventListener('input',()=>{clearTimeout(debTimer);debTimer=setTimeout(autoSave,700);});\ndocument.addEventListener('click',e=>{const dot=e.target.closest('#sf-sheet .dot[data-id]');if(dot){const id=dot.dataset.id,i=+dot.dataset.i,cur=getV(id),nv=cur===i+1?i:i+1;setV(id,nv);rfrDots(id,nv);autoSave();return;}const xb=e.target.closest('#sf-sheet .xp-box');if(xb){const id=xb.dataset.xp,i=+xb.dataset.i,arr=id==='xp-ess'?ST.essXp:ST.compXp;arr[i]=!arr[i];xb.classList.toggle('on',arr[i]);autoSave();return;}const rb=e.target.closest('#sf-sheet .rep-box');if(rb){const pfx=rb.dataset.pfx,i=+rb.dataset.i;if(ST[pfx][i]){ST[pfx][i].rep=!ST[pfx][i].rep;rb.classList.toggle('on',ST[pfx][i].rep);rb.textContent=ST[pfx][i].rep?'\\u2713':'';}autoSave();return;}if(e.target.id==='ev-dn'){ST.evMax=Math.max(1,ST.evMax-1);document.getElementById('ev-max-disp').textContent=ST.evMax;autoSave();return;}if(e.target.id==='ev-up'){ST.evMax=Math.min(10,ST.evMax+1);document.getElementById('ev-max-disp').textContent=ST.evMax;autoSave();return;}if(e.target.id==='add-comp'){addCompRow();autoSave();return;}});\ndocument.addEventListener('keydown',e=>{if(e.key!=='Enter'&&e.key!==' ')return;const t=e.target;const dot=t.closest('#sf-sheet .dot[data-id]');if(dot){e.preventDefault();dot.click();return;}const xb=t.closest('#sf-sheet .xp-box');if(xb){e.preventDefault();xb.click();return;}const rb=t.closest('#sf-sheet .rep-box');if(rb){e.preventDefault();rb.click();}});\nfunction collect(){return{nom:document.getElementById('f-nom').value,generation:document.getElementById('f-gen').value||'1',faction:document.getElementById('f-fac').value,hierarchie:document.getElementById('f-hier').value,parcours:[0,1,2].map(i=>document.getElementById('p'+i).value),essences:{...ST.ess},essXp:[...ST.essXp],ev:{max:ST.evMax,current:ST.evCur},competences:ST.comp.map((c,i)=>({nom:document.getElementById('ci'+i)?.value||'',dots:c.dots})),compXp:[...ST.compXp],armes:Array(3).fill(0).map((_,i)=>({nom:document.getElementById('armesn'+i).value,nd:document.getElementById('armesnd'+i).value,repare:ST.armes[i]?.rep||false})),armures:[{nom:document.getElementById('armuresn0').value,nd:document.getElementById('armuresnd0').value,repare:ST.armures[0]?.rep||false}],equip:Array(5).fill(0).map((_,i)=>({nom:document.getElementById('equipn'+i).value,nd:document.getElementById('equipnd'+i).value,repare:ST.equip[i]?.rep||false})),charges:Array(3).fill(0).map((_,i)=>({nom:document.getElementById('chargesn'+i).value,nd:document.getElementById('chargesnd'+i).value})),th:document.getElementById('f-th').value,code:document.getElementById('f-code').value,augmentations:Array(3).fill(0).map((_,i)=>({nom:document.getElementById('an'+i).value,essence:ST.augEss[i]})),specificite:{nom:document.getElementById('f-spec-nm').value,description:document.getElementById('f-spec-desc').value,tier:ST.specTier}};}\nfunction applyData(d){if(!d)return;if(d.nom!=null)document.getElementById('f-nom').value=d.nom;if(d.generation!=null)document.getElementById('f-gen').value=d.generation;if(d.faction!=null){document.getElementById('f-fac').value=d.faction;updateFactionLogo(d.faction);}if(d.hierarchie!=null)document.getElementById('f-hier').value=d.hierarchie;if(d.parcours)d.parcours.forEach((p,i)=>{const el=document.getElementById('p'+i);if(el)el.value=p||'';});if(d.essences){Object.assign(ST.ess,d.essences);[...ESS,'astrale'].forEach(e=>rfrDots('dt-ess-'+e,ST.ess[e]));}if(d.essXp){ST.essXp=d.essXp.slice(0,5);while(ST.essXp.length<5)ST.essXp.push(false);mkXP('xp-ess',5,ST.essXp);}if(d.ev){ST.evMax=d.ev.max||10;document.getElementById('ev-max-disp').textContent=ST.evMax;ST.evCur=d.ev.current??10;rfrDots('dt-ev',ST.evCur);}if(d.competences){ST.comp=d.competences.map(c=>({dots:c.dots||0}));buildComp();d.competences.forEach((c,i)=>{const el=document.getElementById('ci'+i);if(el)el.value=c.nom||'';});}if(d.compXp){ST.compXp=d.compXp.slice(0,10);while(ST.compXp.length<10)ST.compXp.push(false);mkXP('xp-comp',10,ST.compXp);}[{pfx:'armes',arr:ST.armes},{pfx:'armures',arr:ST.armures},{pfx:'equip',arr:ST.equip}].forEach(({pfx,arr})=>{if(!d[pfx])return;d[pfx].forEach((item,i)=>{const nEl=document.getElementById(pfx+'n'+i);if(nEl)nEl.value=item.nom||'';const ndEl=document.getElementById(pfx+'nd'+i);if(ndEl)ndEl.value=item.nd||'';if(arr[i])arr[i].rep=item.repare||false;const rb=document.querySelector('#sf-sheet .rep-box[data-pfx=\"'+pfx+'\"][data-i=\"'+i+'\"]');if(rb){rb.classList.toggle('on',arr[i]?.rep||false);rb.textContent=arr[i]?.rep?'\\u2713':'';}});});if(d.charges)d.charges.forEach((c,i)=>{const nEl=document.getElementById('chargesn'+i);if(nEl)nEl.value=c.nom||'';const ndEl=document.getElementById('chargesnd'+i);if(ndEl)ndEl.value=c.nd||'';});if(d.th!=null)document.getElementById('f-th').value=d.th;if(d.code!=null)document.getElementById('f-code').value=d.code;if(d.augmentations)d.augmentations.forEach((a,i)=>{const nEl=document.getElementById('an'+i);if(nEl)nEl.value=a.nom||'';ST.augEss[i]=a.essence||'';const sel=document.getElementById('ae'+i);if(sel)sel.value=a.essence||'';});if(d.specificite){document.getElementById('f-spec-nm').value=d.specificite.nom||'';document.getElementById('f-spec-desc').value=d.specificite.description||'';ST.specTier=d.specificite.tier||0;rfrDots('dt-spec',ST.specTier);}}\nwindow.addEventListener('load',()=>{try{const s=localStorage.getItem('sf-char-v1');if(s)applyData(JSON.parse(s));}catch(e){}});\ndocument.getElementById('btn-save').addEventListener('click',()=>{autoSave();const data=JSON.stringify(collect(),null,2);try{const a=document.createElement('a');const nom=document.getElementById('f-nom').value||'character';const gen=document.getElementById('f-gen').value||'1';a.href=URL.createObjectURL(new Blob([data],{type:'application\/json'}));a.download=nom+'-gen'+gen+'.json';a.click();URL.revokeObjectURL(a.href);}catch(err){prompt('Copy this data:',data);}});\ndocument.getElementById('btn-load').addEventListener('click',()=>document.getElementById('file-in').click());\ndocument.getElementById('btn-new').addEventListener('click',function(){if(confirm('Reset character sheet? All unsaved data will be lost.')){localStorage.removeItem('sf-char-v1');location.reload();}});\ndocument.getElementById('file-in').addEventListener('change',e=>{const f=e.target.files[0];if(!f)return;const r=new FileReader();r.onload=ev=>{try{applyData(JSON.parse(ev.target.result));}catch(err){}};r.readAsText(f);e.target.value='';});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>\u00d8 \u2193 Save \u2191 Load \u2715 New Gen. Faction Role \u00d8 Essences Astral Vital Energy Max\u221210+ Skills + Skill Background Gear Weapons Armor Tools Loads &amp; Ammunition TH Code Augmentation Specificity SavedSol Fracta \u00b7 Zero Cooldown<\/p>","protected":false},"author":248584093,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","_swt_meta_header_display":false,"_swt_meta_footer_display":false,"_swt_meta_site_title_display":false,"_swt_meta_sticky_header":false,"_swt_meta_transparent_header":false,"_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"footnotes":""},"class_list":["post-3786","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"newspack-article-block-landscape-large":false,"newspack-article-block-portrait-large":false,"newspack-article-block-square-large":false,"newspack-article-block-landscape-medium":false,"newspack-article-block-portrait-medium":false,"newspack-article-block-square-medium":false,"newspack-article-block-landscape-intermediate":false,"newspack-article-block-portrait-intermediate":false,"newspack-article-block-square-intermediate":false,"newspack-article-block-landscape-small":false,"newspack-article-block-portrait-small":false,"newspack-article-block-square-small":false,"newspack-article-block-landscape-tiny":false,"newspack-article-block-portrait-tiny":false,"newspack-article-block-square-tiny":false,"newspack-article-block-uncropped":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false},"uagb_author_info":{"display_name":"Gary","author_link":"https:\/\/zero-cooldown.com\/fr\/author\/gary\/"},"uagb_comment_info":0,"uagb_excerpt":"\u00d8 \u2193 Save \u2191 Load \u2715 New Gen. Faction Role \u00d8 Essences Astral Vital Energy Max\u221210+ Skills + Skill Background Gear Weapons Armor Tools Loads &amp; Ammunition TH Code Augmentation Specificity SavedSol Fracta \u00b7 Zero Cooldown","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PfEyfE-Z4","_links":{"self":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/pages\/3786","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/users\/248584093"}],"replies":[{"embeddable":true,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/comments?post=3786"}],"version-history":[{"count":12,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/pages\/3786\/revisions"}],"predecessor-version":[{"id":4052,"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/pages\/3786\/revisions\/4052"}],"wp:attachment":[{"href":"https:\/\/zero-cooldown.com\/fr\/wp-json\/wp\/v2\/media?parent=3786"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}