Skip to content

Repository files navigation

ToramDB — Toram Online Database

Fan-made database untuk game Toram Online, dihosting lewat GitHub Pages. Developed by No! I'm Failing!

🗂️ Struktur Proyek

/
├── index.html # Homepage — hero, kategori, spotlight, item & monster terbaru
├── css/style.css # Mobile-first stylesheet (soft gray-white light theme)
├── js/
│ ├── main.js # Hamburger menu, filter, search, back-to-top, animasi angka
│ ├── sheets.js # Google Sheets CSV integration + auto icon mapping
│ └── modal.js # Popup detail card (tanpa reload halaman)
├── pages/
│ ├── items.html # Database item (senjata, armor, aksesori, material)
│ ├── monsters.html # Database monster (boss, mini-boss, mob) + tabel drop
│ ├── skills.html # Database skill (aktif, pasif, combo)
│ ├── maps.html # Database map / area
│ ├── quests.html # Database quest (main story, side, daily, event)
│ ├── pets.html # Database pet (tame, raise, evolve companion pets)
│ └── detail.html # Item detail page (legacy — fallback untuk direct link)
└── CHANGELOG.md # Catatan perubahan

📋 Panduan pengisian Google Sheet: Lihat SPREADSHEET_GUIDE.md untuk dokumentasi lengkap semua tab dan kolom.

🎨 Tema & Desain

AspekDetail
Palet warnaSoft gray-white light theme, aksen goldenrod #b8860b
Element colorsFire #d94b1a · Ice #2e8bc0 · Wind #3a9d5e · Earth #8b6914 · Dark #6a0dad · Light #d4a017 · Water #1e7ca8
Rarity tagsEvent (gold/oranye) · Non-Event (default)
TypographySegoe UI / system-ui, sans-serif
LayoutMobile-first CSS Grid & Flexbox
NavigasiSticky navbar + hamburger drawer di mobile
KomponenCard grid, data table, filter bar, pagination, breadcrumb, back-to-top, popup modal

✨ Fitur

  • ✅ Fully responsive (mobile, tablet, desktop)
  • ✅ Search bar tersinkron di navbar, mobile drawer, dan hero
  • Popup modal untuk detail item & monster (tanpa reload halaman)
  • Google Sheets integration — data auto-update dari spreadsheet
  • Smart icon system — Mencari ikon spesifik dari ItemDetails, auto-detect tipe equipment, dan fallback premium (items_ico.png, monsters_ico.png)
  • Search Debouncing — Pencarian responsif tanpa lag (jeda 300ms) untuk database besar
  • Monster Compare — Tabel perbandingan stats (HP/Element) untuk semua tingkat kesulitan di dalam satu popup
  • Linked Drops — Item drop di modal monster bisa diklik untuk langsung melihat detail item tersebut
  • Modernized Featured Showcase — Spotlight item dengan grouping stat kondisional, limit badge otomatis (+X more), dan layout premium.
  • Grouped Modal Stats — Detail item di modal kini terorganisir per kategori (Mastery/Requirement) dengan indentasi rapi.
  • Robust Stat Parsing — Deteksi marker stat pintar yang toleran terhadap kesalahan pengetikan di spreadsheet.
  • Mobile UI Optimization — Menu navigasi dan icon quest/pet yang lebih konsisten di tampilan mobile.
  • ✅ Animated counter stats di hero
  • ✅ Soft gray-white light theme — zero external CSS dependency
  • Detail modal untuk Pets — klik baris pet untuk lihat detail lengkap (Normal Magic, Support, Act 1–5, Color Info)
  • Monster grouping — Monster dengan nama sama dikelompokkan secara otomatis, variant (Hard/Nightmare/Ultimate) di-toggle
  • XSS protection — Semua data dari Google Sheet di-sanitize sebelum render ke HTML
  • Universal Branching Tree — Tampilan pohon peningkatan (Crysta) bercabang yang otomatis menyesuaikan di Web & Mobile dengan dukungan horizontal scroll.
  • ✅ Aksesibilitas: ARIA labels, roles, aria-expanded, semantic HTML

📊 Google Sheets Setup

  1. Buat Google Spreadsheet dengan tab: Items, ItemDetails, Monsters, Skills, Maps, Quests, Pets
  2. File → Share → Publish to web → format CSV
  3. Copy Sheet ID dari URL
  4. Paste ke js/sheets.jsSHEET_ID

Kolom yang diharapkan

SheetKolom
ItemsName, Icon, ImageURL, Type, Level, Stats, Rarity, Source
ItemDetailsName, Icon, Type, Level, ImageURL, SellSpina, SellOther, Stats, Obtain, Recipe
MonstersName, Icon, ImageURL, Level, Difficulty, Type, Element, HP, Location, Drop
SkillsName, Icon, ImageURL, Type, Category, Damage, MP Cost, Description
MapsName, Icon, ImageURL, Zone, LevelRange, Boss, Description
QuestsName, Icon, ImageURL, Type, MinLevel, Reward, Description
PetsName, Icon, ImageURL, Level, SpawnAt, NormalMagic, Support, Act1–Act5, ColorInfo
HomepageSection, Name, Icon, ImageURL, Link, Count, Description, Type, Level, Rarity, Stats, Source

Note:Icon dan ImageURL opsional di semua sheet. Jika kosong, sistem otomatis memilih emoji berdasarkan tipe equipment.

Homepage Sheet — Section Values

SectionFungsiKolom yang dipakai
categoryCard kategori di homepageName, Icon, ImageURL, Link, Count
featuredSpotlight / featured itemName, Icon, ImageURL, Type, Level, Rarity, Stats, Description, Link
popular_monsterCard monster populer + detail popupName, Icon, ImageURL, Type, Level, Stats (=Element), Source (=HP), Description (=Location)
statCounter angka di hero sectionName (label), Count (angka), Icon (suffix, misal "+")

Default Icon per Equipment Type

Note: Sejak v0.7.0, icon weapon dan armor di card menggunakan file PNG dari img/icons/, bukan emoji. Tabel di bawah menampilkan emoji hanya sebagai referensi visual. Lihat js/sheets.jsTYPE_ICONS untuk mapping lengkap.

TypeIcon (visual)FileTypeIcon (visual)File
1-Handed Sword🗡️1h_ico.pngShield🛡️shield_ico.png
2-Handed Sword⚔️2h_ico.pngArmor🛡️armor_ico.png
Bow🏹bow_ico.pngNinjutsu Scroll📜scroll_ico.png
Bowgun🔫bwg_ico.pngAdditional💍add_ico.png
Knuckles🥊knu_ico.pngSpecial / Ringspecial_ico.png
Magic Device🔮md_ico.pngBeast🐾beast_ico.png
Staff🪄stf_ico.pngCloth🎽cloth_ico.png
Halberd🔱hb_ico.pngMana💧mana_ico.png
Katana⚔️ktn_ico.pngWood🪵wood_ico.png
Dagger🔪dagger_ico.pngMetal⚙️metal_ico.png
Arrow🎯arrow_ico.pngMedicine💊medicine_ico.png
Monster (Boss)🐉boss_ico.pngTeleport🪶tele_ico.png
Monster (Normal)👾(emoji)Material (Other)⛏️(emoji)
Skill(emoji)Pet🐾(emoji)
Map🗺️(emoji)

Rekomendasi Ukuran Gambar (ImageURL)

Semua gambar dari Google Sheet otomatis di-resize. Berikut ukuran yang direkomendasikan:

KomponenDisplay SizeUpload (2×)RasioMaks File
Monster / Pet table icon24×24 px48×48 px1:150 KB
Data card icon (Items, Skills, dll)44×44 px88×88 px1:180 KB
Category card (homepage)48×48 px96×96 px1:180 KB
Spotlight / featured item64×64 px128×128 px1:1100 KB
Detail modal imagemax 200px400×400 px1:1 / bebas200 KB

Tips:

  • Upload 2× display size supaya tajam di layar retina (MacBook, iPhone, dll)
  • Format: WebP (terkecil) / PNG (transparansi) / JPEG (foto)
  • Selalu gunakan rasio 1:1 (square) — gambar non-square akan di-crop atau di-shrink otomatis
  • Kolom ImageURL opsional — jika kosong, sistem otomatis pakai emoji

Google Sheets Rate Limit

LimitDetail
Per-menit~300 request per Sheet
CacheGoogle cache CSV ~5 menit (perubahan tidak langsung terlihat)
BandwidthTidak ada hard limit

Untuk traffic normal (~ratusan visitor/hari) tidak akan kena limit. Jika traffic tinggi, pertimbangkan cache ke JSON file.

🚀 GitHub Pages

Aktifkan di Settings → Pages → Deploy from branch main (root /).


Disclaimer: ToramDB adalah proyek fan-made dan tidak berafiliasi dengan Asobimo, Inc.
Toram Online™ adalah merek dagang milik Asobimo, Inc.

About

Modern database for Toram Online items, monsters, and skills.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages