Group Toolbar Menu

Forums » Infection Epidemic » Debriefing.

"I don't know why he'd keep me distant like that.. All he did was throw salt on the wound." She shrugged, falling silent again for a while and fidgeting with the blanket draped over her. "...I'm not a doctor, or a soldier..I've never been through anything like whaat we just did, but..I don't think shutting me out was the right thing to do. He had no idea howIreally was, justlike I had no idea how he was really doing. If that makes sense."

She sighed in frustration, head falling back against the pillow to stare up at the ceiling. She was out of things to say for the moment, so she just waited for the next painful question.
"Well," Toby said after inhaling shortly. "I think that's enough for today. Tomorrow we're going to try and see if we can't work towards accepting what happened and trying to get back to the present, okay?"

He walked out after saying goodbye, and shut the door- Leaving Addie alone to her thoughts.

~~~~

After the first month, Toby at least felt like they had made tremendous progress towards getting Addie rehabilitated. (She wasn't really in need of it in the first place, but it was mandatory for anyone who had suffered through such a traumatic event.)

Austin's visits to Addie grew less and less frequent in the first week or two before tapering off. He didn't visit her for the next 3 months, with not much of a hint as to why.

Today, they were going to see if they couldn't get an Infection PTSD Support Group going.
"use strict"; (function() { const TYPING_DELAY = 500; const MAX_AGE_HOURS = 48; let typingTimers = {}; function isLocalStorageAvailable() { try { const test = '__localStorage_test__'; localStorage.setItem(test, test); localStorage.removeItem(test); return true; } catch(e) { console.warn('localStorage is not available:', e); return false; } } function saveContentDraft(key, value) { if (!isLocalStorageAvailable()) return; try { const data = { content: value, timestamp: Date.now() }; localStorage.setItem(key, JSON.stringify(data)); } catch(e) { console.error('Failed to save draft:', e); } } function restoreContentDraft(key) { if (!isLocalStorageAvailable()) return null; try { const stored = localStorage.getItem(key); if (!stored) return null; const data = JSON.parse(stored); // Check if draft is too old const age = Date.now() - data.timestamp; if (age > MAX_AGE_HOURS * 60 * 60 * 1000) { localStorage.removeItem(key); return null; } return data.content; } catch(e) { console.error('Failed to restore draft:', e); return null; } } // Clear specific draft function clearContentDraft(key) { if (!isLocalStorageAvailable()) return; try { localStorage.removeItem(key); } catch(e) { console.error('Failed to clear draft:', e); } } // Show notification to user function showContentRecoveryNotification(element) { const notification = document.createElement('div'); notification.style.cssText = 'padding: 10px; margin-bottom: 10px; background-color: #d4edda; border: 1px solid #c3e6cb; color: #155724; border-radius: 4px; font-size: 14px;'; notification.innerHTML = '✓ Your previous draft has been restored. Dismiss'; // Insert before the element element.parentNode.insertBefore(notification, element); // Dismiss on click notification.querySelector('a').addEventListener('click', function(e) { e.preventDefault(); notification.remove(); }); // Auto-dismiss after 10 seconds setTimeout(() => { if (notification.parentNode) { notification.remove(); } }, 10000); } // Initialize auto-save for an element function initAutoSave(element, storageKey) { if (!element || !storageKey) return; // Restore saved content on page load const savedContent = restoreContentDraft(storageKey); if (savedContent && savedContent !== element.value) { element.value = savedContent; showContentRecoveryNotification(element); } // Save on user input (debounced) function handleInput() { clearTimeout(typingTimers[storageKey]); typingTimers[storageKey] = setTimeout(function() { saveContentDraft(storageKey, element.value); }, TYPING_DELAY); } element.addEventListener('input', handleInput); element.addEventListener('change', handleInput); // Clear draft on form submission const form = element.closest('form'); if (form) { form.addEventListener('submit', function() { clearContentDraft(storageKey); }); } } function cleanupOldContentDrafts() { if (!isLocalStorageAvailable()) return; try { const keys = Object.keys(localStorage); const now = Date.now(); keys.forEach(key => { if (key.startsWith('draft_')) { try { const stored = localStorage.getItem(key); const data = JSON.parse(stored); if (data.timestamp && (now - data.timestamp) > MAX_AGE_HOURS * 60 * 60 * 1000) { localStorage.removeItem(key); } } catch(e) { // Invalid data, remove it localStorage.removeItem(key); } } }); } catch(e) { console.error('Failed to cleanup old drafts:', e); } } // Initialize on DOM ready if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } function init() { cleanupOldContentDrafts(); // Auto-initialize elements with data-draft-key attribute document.querySelectorAll('[data-draft-key]').forEach(function(element) { const draftKey = element.getAttribute('data-draft-key'); initAutoSave(element, draftKey); }); } // Expose API for manual initialization window.DraftContentRecovery = { init: initAutoSave, save: saveContentDraft, restore: restoreContentDraft, clear: clearContentDraft }; })();