Rus Donanması

Rus Donanması

"Kuralım şudur: En zayıf gemiyle karşılaşırsanız saldırın. Size denk bir gemiyle karşılaşırsanız saldırın. Eğer sizden daha güçlüyse, yine saldırın."

Amiral Stepan Makarov

Rusya Federasyonu Donanması (VMF)

Resmî Platform Sınıflandırması ve Güncel Teknik Envanteri

1
Birinci Platform
Seçim bekleniyor...
2
İkinci Platform
Seçim bekleniyor...
Lütfen karşılaştırmak için iki platform seçin.
Teknik Spesifikasyon

Yetkili Personel Girişi

Veritabanını düzenlemek için yönetici parolasını giriniz.

Tür Sınıf / Model İçerdiği Unsurlar İtici Güç Hız İşlem

Yeni Platform Ekle

+
`; const body = document.createElement('div'); body.className = 'rus-card-body'; body.innerHTML = `
Envanterdeki Platformlar
${sinif.gemiler}
Deplasman (Ton) ${sinif.deplasman}
Boyutlar ${sinif.boyut}
İtici Güç ${sinif.guc}
Azami Hız ${sinif.hiz}
Personel / Mürettebat ${sinif.murettebat}
Operasyonel Menzil ${sinif.menzil}
Havacılık Kapasitesi ${sinif.havacilik}
Silah / Sensör Sistemleri ${sinif.silahlar}
`; header.addEventListener('click', () => { card.classList.toggle('active'); }); card.appendChild(header); card.appendChild(body); grid.appendChild(card); }); container.appendChild(grid); }); } function rusPopulateCompareCats(){ const cats = [...new Set(rusData.map(item => item.kategori).filter(Boolean))]; const opts = '' + cats.map(c => ``).join(''); const c1 = document.getElementById('rus-c-cat1'); if(c1) c1.innerHTML = opts; const c2 = document.getElementById('rus-c-cat2'); if(c2) c2.innerHTML = opts; } function rusCatChange(boxNum){ const cat = document.getElementById('rus-c-cat'+boxNum).value; const platSel = document.getElementById('rus-c-plat'+boxNum); if(!cat){ platSel.innerHTML=''; platSel.disabled=true; if(boxNum===1)rusSel1=null;else rusSel2=null; rusUpdateCompareHint(); rusUpdateComparePreview(boxNum, null); return; } const available = rusData.filter(x => x.kategori === cat); platSel.innerHTML = '' + available.map(x => ``).join(''); platSel.disabled = false; if(boxNum===1) rusSel1=null; else rusSel2=null; rusUpdateCompareHint(); rusUpdateComparePreview(boxNum, null); } function rusPlatChange(boxNum){ const id = parseInt(document.getElementById('rus-c-plat'+boxNum).value); if(boxNum===1) rusSel1 = id || null; else rusSel2 = id || null; rusUpdateComparePreview(boxNum, id); rusUpdateCompareHint(); } function rusUpdateComparePreview(boxNum, id){ const p = document.getElementById('rus-c-prev'+boxNum); if(!p) return; if(!id){ p.innerHTML='Seçim bekleniyor...'; return; } const s = rusData.find(x => x.id === id); if(!s) return; p.innerHTML = `
${s.ad}
${s.not}
`; } function rusUpdateCompareHint(){ const btn = document.getElementById('rus-btn-compare'); const hint = document.getElementById('rus-comp-hint'); if(!btn || !hint) return; if(rusSel1 && rusSel2){ btn.disabled=false; hint.textContent='Kapsamlı analiz için hazır.'; } else { btn.disabled=true; hint.textContent='Lütfen karşılaştırmak için iki platform seçin.'; } } function rusRenderComp(){ if(!rusSel1 || !rusSel2) return; const s1 = rusData.find(x=>x.id===rusSel1), s2 = rusData.find(x=>x.id===rusSel2); document.getElementById('rus-hShip1').textContent = s1.ad; document.getElementById('rus-hShip2').textContent = s2.ad; let html=''; const sections = [ { label:'KİMLİK VE SINIFLANDIRMA', fields:[{key:'kategori',label:'Platform Türü'},{key:'ad',label:'Sınıf / Model Adı'},{key:'not',label:'Taktiksel Rol'}] }, { label:'ENVANTER DURUMU', fields:[{key:'gemiler',label:'Envanterdeki Unsurlar'}] }, { label:'TEKNİK BOYUTLAR VE PERFORMANS', fields:[{key:'deplasman',label:'Ağırlık / Deplasman'},{key:'boyut',label:'Uzunluk / Genişlik'},{key:'guc',label:'İtici Güç (Propulsion)'},{key:'hiz',label:'Azami Sürat'},{key:'menzil',label:'Menzil (Range)'}] }, { label:'SİLAH, SENSÖR VE KAPASİTE', fields:[{key:'silahlar',label:'Silahlar ve Sensörler'},{key:'havacilik',label:'Havacılık Kapasitesi'},{key:'murettebat',label:'Mürettebat'}] } ]; sections.forEach(sec=>{ html += `${sec.label}`; sec.fields.forEach(f=>{ const v1 = s1[f.key]||'—', v2 = s2[f.key]||'—'; const c1 = v1==='—'?'empty':'', c2 = v2==='—'?'empty':''; html += `${f.label}${v1}${v2}`; }); }); document.getElementById('rus-compBody').innerHTML = html; document.getElementById('rus-comparisonSection').style.display = 'block'; } function rusResetComp(){ ['rus-c-cat1','rus-c-plat1','rus-c-cat2','rus-c-plat2'].forEach(id => { const el = document.getElementById(id); if(el) { el.value = ''; if(id.includes('plat')) el.disabled = true; } }); rusSel1=null; rusSel2=null; rusUpdateComparePreview(1,null); rusUpdateComparePreview(2,null); rusUpdateCompareHint(); const cSec = document.getElementById('rus-comparisonSection'); if(cSec) cSec.style.display='none'; } /* YÖNETİCİ PANELİ (ADMIN) */ function rusVerifyAdmin(){ if(document.getElementById('rus-pass').value === RUS_ADMIN_PASS){ document.getElementById('rus-gate').style.display = 'none'; document.getElementById('rus-workspace').classList.add('active'); document.getElementById('rus-pass').value = ''; rusRenderAdminTable(); rusShowToast('Yönetici girişi başarılı.'); } else { rusShowToast('Hatalı parola!'); document.getElementById('rus-pass').value = ''; } } function rusLogoutAdmin(){ document.getElementById('rus-workspace').classList.remove('active'); document.getElementById('rus-gate').style.display = 'block'; rusShowToast('Oturum kapatıldı.'); } function rusRenderAdminTable(){ const tbody = document.getElementById('rus-admin-tbody'); if(!tbody) return; if(!rusData.length) { tbody.innerHTML = `Veri bulunamadı.`; return; } tbody.innerHTML = rusData.map(s => `${s.kategori}${s.ad}${s.gemiler.substring(0,40)}${s.gemiler.length>40?'...':''}${(s.guc||'—').substring(0,25)}${s.hiz}`).join(''); } function rusOpenModal(){ document.getElementById('rus-modal-title').textContent='Yeni Platform Ekle'; document.getElementById('rf_id').value=''; ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not'].forEach(id => document.getElementById('rf_'+id).value=''); document.getElementById('rus-modal').classList.add('active'); } function rusCloseModal(){ document.getElementById('rus-modal').classList.remove('active'); } function rusEditPlatform(id){ const s = rusData.find(x=>x.id===id); if(!s) return; document.getElementById('rus-modal-title').textContent='Düzenle: '+s.ad; document.getElementById('rf_id').value=s.id; ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not'].forEach(key => document.getElementById('rf_'+key).value=s[key]||''); document.getElementById('rus-modal').classList.add('active'); } function rusSavePlatform(){ const d = { kategori: document.getElementById('rf_kategori').value.trim(), ad: document.getElementById('rf_ad').value.trim(), gemiler: document.getElementById('rf_gemiler').value.trim(), deplasman: document.getElementById('rf_deplasman').value.trim(), boyut: document.getElementById('rf_boyut').value.trim(), guc: document.getElementById('rf_guc').value.trim(), hiz: document.getElementById('rf_hiz').value.trim(), menzil: document.getElementById('rf_menzil').value.trim(), murettebat: document.getElementById('rf_murettebat').value.trim(), havacilik: document.getElementById('rf_havacilik').value.trim(), silahlar: document.getElementById('rf_silahlar').value.trim(), not: document.getElementById('rf_not').value.trim() }; if(!d.kategori || !d.ad || !d.gemiler) { rusShowToast('Kategori, Sınıf ve Unsurlar zorunludur!'); return; } const editId = document.getElementById('rf_id').value; if(editId){ const idx = rusData.findIndex(x=>x.id==parseInt(editId)); if(idx > -1) rusData[idx]={id:parseInt(editId),...d}; rusShowToast('Güncellendi.'); } else { const nId = rusData.length?Math.max(...rusData.map(x=>x.id))+1:1; rusData.push({id:nId,...d}); rusShowToast('Yeni eklendi.'); } saveRUSDatabase(); rusUpdateAllViews(); rusCloseModal(); } function rusDeletePlatform(id){ if(!confirm('Bu sınıfı silmek istediğinize emin misiniz?')) return; rusData = rusData.filter(x=>x.id!==id); saveRUSDatabase(); rusUpdateAllViews(); rusShowToast('Kayıt silindi.'); } function rusExportData(){ if(!rusData.length) return; const keys = ['kategori','ad','gemiler','deplasman','boyut','guc','hiz','menzil','murettebat','havacilik','silahlar','not']; let csv = keys.join(',')+'\n'; rusData.forEach(s => csv += keys.map(k=>'"'+(s[k]||'').toString().replace(/"/g,'""')+'"').join(',')+'\n'); const a = document.createElement('a'); a.href = URL.createObjectURL(new Blob([csv],{type:'text/csv'})); a.download = 'rus_vmf_envanteri.csv'; a.click(); } function rusShowToast(msg){ const t = document.getElementById('rus-toast'); if(!t) return; t.textContent=msg; t.classList.add('show'); setTimeout(()=>t.classList.remove('show'),3000); } function rusUpdateAllViews(){ rusRenderUserView(); rusPopulateCompareCats(); rusRenderAdminTable(); rusResetComp(); } // Modal dışı tıklama const rusOverlay = document.getElementById('rus-modal'); if(rusOverlay) { rusOverlay.addEventListener('click', function(e){ if(e.target === this) rusCloseModal(); }); } // Başlatıcı loadRUSDatabase(); rusUpdateAllViews(); /* ]]> */

* Tablodaki bilgilerde hata olduğunu düşünüyorsanız, iletişim sayfasındaki form veya mail adreslerimiz üzerinden lütfen bize bildirin.