// MODIBU data: board, questions, cards
// All content from "Komponen Permainan monopoli.docx"
// Updated to 32 tiles (9x9 grid) for larger, more readable tiles

const PLAYER_COLORS = ['red', 'blue', 'green', 'yellow'];
const PLAYER_NAMES_ID = ['Merah', 'Biru', 'Hijau', 'Kuning'];
const PLAYER_ICONS = ['/car.png', '/cruise.png', '/motorbike.png', '/train.png'];

// 32 tiles, clockwise starting from bottom-right corner (START)
const BOARD_TILES = [
  { i: 0, type: 'start', label: 'START', sub: 'Mulai', price: null },
  { i: 1, type: 'edukasi', label: 'Cyberbullying', sub: 'Edukasi 1', price: '+10' },
  { i: 2, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 1', price: '?' },
  { i: 3, type: 'fakta', label: 'Info Benar?', sub: 'Fakta 1', price: '+10' },
  { i: 4, type: 'tantangan', label: 'Slogan Positif', sub: 'Tantangan 1', price: '+20' },
  { i: 5, type: 'refleksi', label: 'Privasi Orang', sub: 'Refleksi 1', price: '+20' },
  { i: 6, type: 'edukasi', label: 'Bahasa Sopan', sub: 'Edukasi 2', price: '+10' },
  { i: 7, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 2', price: '?' },

  { i: 8, type: 'hukuman', label: 'HUKUMAN', sub: 'Kotak Hukuman', price: null },
  { i: 9, type: 'fakta', label: 'Balas Hinaan', sub: 'Fakta 2', price: '+10' },
  { i: 10, type: 'tantangan', label: 'Tolak Ejekan', sub: 'Tantangan 2', price: '+20' },
  { i: 11, type: 'refleksi', label: 'Komentar Kasar', sub: 'Refleksi 2', price: '+20' },
  { i: 12, type: 'edukasi', label: 'Jaga Privasi', sub: 'Edukasi 3', price: '+10' },
  { i: 13, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 3', price: '?' },
  { i: 14, type: 'fakta', label: 'Hanya Teman?', sub: 'Fakta 3', price: '+10' },

  { i: 15, type: 'hukuman', label: 'HUKUMAN', sub: 'Kotak Hukuman', price: null },
  { i: 16, type: 'penjara', label: 'PENJARA', sub: 'Masuk Penjara', price: null },
  { i: 17, type: 'refleksi', label: 'Efek Perasaan', sub: 'Refleksi 3', price: '+20' },
  { i: 18, type: 'edukasi', label: 'Lapor Guru', sub: 'Edukasi 4', price: '+10' },
  { i: 19, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 4', price: '?' },
  { i: 20, type: 'fakta', label: 'Lapor Berani', sub: 'Fakta 4', price: '+10' },
  { i: 21, type: 'tantangan', label: 'Cara Bijak', sub: 'Tantangan 4', price: '+20' },
  { i: 22, type: 'refleksi', label: 'Sopan Santun', sub: 'Refleksi 4', price: '+20' },

  { i: 23, type: 'bonus', label: 'ZONA NYAMAN', sub: 'Rehat Sejenak', price: '+20' },
  { i: 24, type: 'edukasi', label: 'Dampak Bully', sub: 'Edukasi 5', price: '+10' },
  { i: 25, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu 5', price: '?' },
  { i: 26, type: 'fakta', label: 'Hapus Post', sub: 'Fakta 5', price: '+10' },
  { i: 27, type: 'tantangan', label: 'Minta Maaf', sub: 'Tantangan 5', price: '+20' },
  { i: 28, type: 'refleksi', label: 'Sikap Berubah', sub: 'Refleksi 5', price: '+20' },
  { i: 29, type: 'bonus', label: 'BONUS', sub: 'Hero Digital', price: '+15' },
  { i: 30, type: 'kesempatan', label: 'Kesempatan', sub: 'Kartu Extra', price: '?' },
  { i: 31, type: 'bonus', label: 'BONUS', sub: 'Aksi Positif', price: '+10' },
];

// ============ EDUKASI (5 soal pilihan ganda dari DOCX revisi) ============
const ALL_EDUKASI = [
  {
    type: 'edukasi', category: 'Edukasi',
    question: 'Di kolom komentar TikTok, ada yang menulis: "Jelek banget sih gaya lo, mending hapus deh videonya!" secara berulang-ulang sampai pembuat video merasa sedih. Tindakan ini disebut...',
    options: [
      { key: 'A', text: 'Kritik yang membangun demi konten yang bagus' },
      { key: 'B', text: 'Cyberbullying dalam bentuk body shaming dan intimidasi' },
      { key: 'C', text: 'Hal biasa karena media sosial adalah ruang bebas berpendapat' },
      { key: 'D', text: 'Candaan kreatif antar-pengguna media sosial' },
    ],
    correct: 'B',
    explanation: 'Komentar menyakitkan yang dilakukan berulang-ulang dengan tujuan merendahkan termasuk cyberbullying dalam bentuk body shaming dan intimidasi.',
  },
  {
    type: 'edukasi', category: 'Edukasi',
    question: 'Kamu melihat foto aib teman sekelasmu disebarkan di grup WhatsApp oleh teman lain hingga menjadi bahan tertawaan. Tindakan pertama yang paling benar kamu lakukan adalah...',
    options: [
      { key: 'A', text: 'Ikut tertawa dan mengirimkan stiker lucu agar grup makin ramai' },
      { key: 'B', text: 'Mengunduh foto tersebut dan membagikannya ke grup luar sekolah' },
      { key: 'C', text: 'Diam saja karena tidak mau ikut campur urusan orang lain' },
      { key: 'D', text: 'Menegur pengirim secara sopan dan melaporkan kejadian ini ke Guru BK' },
    ],
    correct: 'D',
    explanation: 'Menjadi upstander berarti berani menegur dan melaporkan tindakan bullying kepada pihak berwenang seperti Guru BK.',
  },
  {
    type: 'edukasi', category: 'Edukasi',
    question: 'Mengapa membuat akun palsu (fake account) dengan nama samaran untuk menghujat atau menjelek-jelekkan orang lain di Instagram tetap dilarang?',
    options: [
      { key: 'A', text: 'Karena jejak digital dan alamat perangkat tetap bisa dilacak pihak berwajib' },
      { key: 'B', text: 'Karena membuat akun palsu membutuhkan kuota internet yang sangat besar' },
      { key: 'C', text: 'Karena pihak Instagram akan otomatis menghapus semua akun palsu dalam satu hari' },
      { key: 'D', text: 'Karena akun palsu tidak bisa digunakan untuk melihat postingan orang lain' },
    ],
    correct: 'A',
    explanation: 'Meskipun menggunakan nama samaran, jejak digital dan alamat perangkat (IP address) tetap bisa dilacak oleh pihak berwajib.',
  },
  {
    type: 'edukasi', category: 'Edukasi',
    question: 'Ketika seseorang terus-menerus dikirimi pesan penuh makian, ancaman, atau diteror lewat Personal Chat (PC) WhatsApp, dampak psikologis yang paling mungkin dialami korban adalah...',
    options: [
      { key: 'A', text: 'Merasa tertantang untuk membalas dengan kata-kata yang lebih kasar' },
      { key: 'B', text: 'Menjadi makin populer dan mendapatkan banyak pengikut baru' },
      { key: 'C', text: 'Mengalami kecemasan tinggi, stres, hingga takut datang ke sekolah' },
      { key: 'D', text: 'Merasa biasa saja karena menganggap pesan tersebut dikirim secara tidak sengaja' },
    ],
    correct: 'C',
    explanation: 'Teror berulang melalui pesan pribadi dapat menyebabkan kecemasan tinggi, stres, dan trauma sehingga korban takut beraktivitas termasuk ke sekolah.',
  },
  {
    type: 'edukasi', category: 'Edukasi',
    question: 'Apa perbedaan utama yang paling mendasar antara bercanda (joking) dengan tindakan perundungan siber (cyberbullying)?',
    options: [
      { key: 'A', text: 'Bercanda dilakukan di malam hari, sedangkan cyberbullying dilakukan siang hari' },
      { key: 'B', text: 'Bercanda membuat semua pihak tertawa, sedangkan cyberbullying menyakiti salah satu pihak secara berulang' },
      { key: 'C', text: 'Bercanda hanya boleh di WhatsApp, sedangkan cyberbullying terjadi di Instagram dan TikTok' },
      { key: 'D', text: 'Bercanda menggunakan bahasa baku, sedangkan cyberbullying menggunakan bahasa gaul' },
    ],
    correct: 'B',
    explanation: 'Perbedaan utama: bercanda membuat semua pihak merasa senang, sedangkan cyberbullying secara sengaja menyakiti dan merendahkan korban secara berulang.',
  },
];

// ============ FAKTA/HOAKS (5 soal dari DOCX revisi) ============
const ALL_FAKTA = [
  {
    type: 'fakta_hoax', category: 'Fakta / Hoaks',
    question: '"Menghapus komentar jahat atau postingan yang merundung orang lain berarti masalah sudah selesai dan tidak bisa dilacak lagi." FAKTA atau HOAKS?',
    options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }],
    correct: 'B',
    explanation: 'HOAKS! Jejak digital tetap tersimpan di server dan masih bisa dilacak oleh pihak berwajib meskipun sudah dihapus.',
  },
  {
    type: 'fakta_hoax', category: 'Fakta / Hoaks',
    question: '"Pelaku cyberbullying di bawah umur tidak bisa mendapatkan sanksi hukum." FAKTA atau HOAKS?',
    options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }],
    correct: 'B',
    explanation: 'HOAKS! Pelaku di bawah umur tetap bisa dikenai sanksi melalui sistem peradilan anak, selain sanksi sosial dan akademik.',
  },
  {
    type: 'fakta_hoax', category: 'Fakta / Hoaks',
    question: '"Menyebarkan rumor atau gosip yang belum tentu benar tentang teman di grup kelas termasuk dalam bentuk cyberbullying." FAKTA atau HOAKS?',
    options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }],
    correct: 'A',
    explanation: 'FAKTA! Menyebarkan rumor atau gosip yang menyakitkan melalui platform digital termasuk bentuk cyberbullying.',
  },
  {
    type: 'fakta_hoax', category: 'Fakta / Hoaks',
    question: '"Korban cyberbullying biasanya adalah orang yang lemah, sedangkan pelakunya selalu orang yang populer dan berkuasa." FAKTA atau HOAKS?',
    options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }],
    correct: 'B',
    explanation: 'HOAKS! Siapa pun bisa menjadi korban atau pelaku cyberbullying tanpa memandang status sosial atau popularitas.',
  },
  {
    type: 'fakta_hoax', category: 'Fakta / Hoaks',
    question: '"Ikut menyukai (like) atau membagikan (share) postingan yang mengejek orang lain berarti kita juga ikut mendukung aksi cyberbullying." FAKTA atau HOAKS?',
    options: [{ key: 'A', text: 'FAKTA' }, { key: 'B', text: 'HOAKS' }],
    correct: 'A',
    explanation: 'FAKTA! Memberikan like atau share pada konten bullying berarti mendukung dan memperluas jangkauan perundungan tersebut.',
  },
];

// ============ TANTANGAN (5 soal dari DOCX revisi) ============
const ALL_TANTANGAN = [
  {
    type: 'tantangan', category: 'Tantangan',
    question: 'Peragakan cara menegur teman sekelompokmu yang sedang asyik mengetik komentar jahat di ponselnya dengan kalimat yang sopan!',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
    example: 'Contoh: "Hei, sepertinya komentar itu bisa menyakiti perasaan orang lain. Gimana kalau kita bahas hal lain yang lebih positif?"',
  },
  {
    type: 'tantangan', category: 'Tantangan',
    question: 'Tuliskan atau ucapkan 1 kalimat penyemangat (kalimat empati) yang akan kamu kirimkan lewat personal chat (PC) jika ada temanmu yang sedang menjadi korban cyberbullying!',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
    example: 'Contoh: "Aku di sini buat kamu ya. Kamu nggak sendirian, kita hadapi bareng-bareng."',
  },
  {
    type: 'tantangan', category: 'Tantangan',
    question: 'Bayangkan kamu sedang emosi karena kalah main game online. Tunjukkan cara mengontrol diri agar tidak melontarkan kata-kata kasar di kolom chat game!',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
    example: 'Contoh: Tarik napas dalam-dalam, tutup chat, dan ingat bahwa ini hanya permainan. Ketik "GG, kita coba lagi!" daripada kata kasar.',
  },
  {
    type: 'tantangan', category: 'Tantangan',
    question: 'Peragakan cara meminta maaf dengan sopan setelah melakukan kesalahan di media sosial!',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
    example: 'Contoh: "Aku minta maaf atas komentar yang aku tulis tadi. Itu tidak pantas dan aku tidak bermaksud menyakiti perasaanmu."',
  },
  {
    type: 'tantangan', category: 'Tantangan',
    question: 'Tuliskan slogan singkat tentang penggunaan media sosial yang bijak!',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
    example: 'Contoh: "Medsos Sehat, Mental Kuat!" atau "Pikir Dulu Sebelum Komentar!"',
  },
];

// ============ REFLEKSI (5 soal dari DOCX revisi) ============
const ALL_REFLEKSI = [
  {
    type: 'refleksi', category: 'Refleksi',
    question: 'Pernahkah kamu merasa sakit hati karena ketikan seseorang di media sosial? Bagaimana perasaanmu saat itu dan apa yang kamu lakukan?',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
  },
  {
    type: 'refleksi', category: 'Refleksi',
    question: 'Jika posisimu dibalik menjadi korban yang fotonya diedit menjadi bahan tertawaan satu sekolah, apa yang paling kamu butuhkan dari teman-teman sekelasmu?',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
  },
  {
    type: 'refleksi', category: 'Refleksi',
    question: 'Mengapa terkadang kita merasa lebih berani berkomentar kasar di media sosial daripada berbicara langsung secara tatap muka dengan orangnya?',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
  },
  {
    type: 'refleksi', category: 'Refleksi',
    question: 'Menurutmu, kenapa kita harus menjaga sopan santun saat berkomentar di internet?',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
  },
  {
    type: 'refleksi', category: 'Refleksi',
    question: 'Setelah mengikuti permainan ini, sikap apa yang ingin kamu ubah saat menggunakan media sosial?',
    scoring: 'Dinilai oleh Guru BK (0–20 poin)',
  },
];

// ============ KARTU KESEMPATAN (5 kartu dari DOCX revisi) ============
const ALL_KARTU_KESEMPATAN = [
  { type: 'kesempatan', title: 'Upstander Berani', desc: 'Kamu berani melaporkan akun penyebar hoaks di sekolah kepada guru BK. Langkahmu dinilai sangat berani!', effect: 'Maju 3 langkah', effectType: 'move', effectValue: 3, sign: 'positive' },
  { type: 'kesempatan', title: 'Kurang Empati', desc: 'Kamu ikut tertawa dan membagikan video temanmu yang terjatuh di grup WhatsApp. Tindakan ini tidak empati.', effect: 'Mundur 2 langkah', effectType: 'move', effectValue: -2, sign: 'negative' },
  { type: 'kesempatan', title: 'Status Menyindir', desc: 'Kamu meluapkan kekesalan dengan menulis status yang menyindir teman sekelas. Akunmu dilaporkan.', effect: 'Mundur 3 langkah', effectType: 'move', effectValue: -3, sign: 'negative' },
  { type: 'kesempatan', title: 'Lupa Waktu', desc: 'Kamu terlalu lama bermain media sosial hingga kehilangan fokus.', effect: 'Mundur 2 langkah', effectType: 'move', effectValue: -2, sign: 'negative' },
  { type: 'kesempatan', title: 'Inspirasi Digital', desc: 'Akunmu menjadi inspirasi teman-teman!', effect: 'Maju 2 langkah', effectType: 'move', effectValue: 2, sign: 'positive' },
];

// ============ KARTU HUKUMAN (4 kartu dari DOCX) ============
const ALL_KARTU_HUKUMAN = [
  { type: 'hukuman', title: 'Komentar Kasar', desc: 'Kamu membalas komentar kasar di media sosial.', effect: 'Mundur 2 langkah', effectType: 'move', effectValue: -2, sign: 'negative' },
  { type: 'hukuman', title: 'Privasi Dilanggar', desc: 'Kamu menyebarkan foto teman tanpa izin.', effect: '−5 poin', effectType: 'score', effectValue: -5, sign: 'negative' },
  { type: 'hukuman', title: 'Tidak Sopan', desc: 'Kamu menggunakan kata-kata tidak sopan di grup kelas.', effect: 'Kehilangan 1 giliran', effectType: 'skip_turn', effectValue: 0, sign: 'negative' },
  { type: 'hukuman', title: 'Sebar Hoaks', desc: 'Kamu ikut menyebarkan berita hoaks.', effect: 'Mundur 3 langkah', effectType: 'move', effectValue: -3, sign: 'negative' },
];

// ============ MATERI POPUP ============
const ALL_MATERI = [
  {
    title: 'Tips Bijak Medsos', subtitle: 'Pencegahan Cyberbullying',
    body: 'Media sosial adalah alat yang hebat jika digunakan dengan benar. Jadilah pengguna yang cerdas dan berempati.',
    points: [
      { icon: '✓', label: 'Berpikir sebelum mengetik' },
      { icon: '✓', label: 'Jangan membalas hinaan dengan hinaan' },
      { icon: '✓', label: 'Gunakan fitur report jika perlu' },
      { icon: '✓', label: 'Selalu jaga privasi data pribadimu' },
    ],
  },
];

const SAMPLE_PLAYERS = [
  { id: 1, name: 'Pemain 1', color: 'red', score: 0, position: 0, icon: '/car.png' },
  { id: 2, name: 'Pemain 2', color: 'blue', score: 0, position: 0, icon: '/cruise.png' },
  { id: 3, name: 'Pemain 3', color: 'green', score: 0, position: 0, icon: '/motorbike.png' },
  { id: 4, name: 'Pemain 4', color: 'yellow', score: 0, position: 0, icon: '/train.png' },
];

// Expose globally
Object.assign(window, {
  PLAYER_COLORS, PLAYER_NAMES_ID, PLAYER_ICONS, SAMPLE_PLAYERS,
  BOARD_TILES,
  ALL_EDUKASI, ALL_FAKTA, ALL_TANTANGAN, ALL_REFLEKSI,
  ALL_KARTU_KESEMPATAN, ALL_KARTU_HUKUMAN, ALL_MATERI,
});
