From 187fcd3d85c16b9f28c26b35470aefa926f9d44f Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Wed, 2 Aug 2023 12:11:07 +0200 Subject: [PATCH 1/4] Moved unit databases outside of source and started adding country flags --- client/demo.js | 11 + client/public/databases/aircraftdatabase.json | 3846 ++++++++++++++++ .../public/databases/groundunitdatabase.json | 1454 ++++++ .../public/databases/helicopterdatabase.json | 565 +++ client/public/databases/navyunitdatabase.json | 452 ++ client/public/images/countries/ac.svg | 76 + client/public/images/countries/ad.svg | 150 + client/public/images/countries/ae.svg | 6 + client/public/images/countries/af.svg | 81 + client/public/images/countries/ag.svg | 14 + client/public/images/countries/ai.svg | 758 ++++ client/public/images/countries/al.svg | 5 + client/public/images/countries/am.svg | 5 + client/public/images/countries/ao.svg | 13 + client/public/images/countries/aq.svg | 5 + client/public/images/countries/ar.svg | 32 + client/public/images/countries/arab.svg | 109 + client/public/images/countries/as.svg | 72 + client/public/images/countries/at.svg | 6 + client/public/images/countries/au.svg | 8 + client/public/images/countries/aw.svg | 186 + client/public/images/countries/ax.svg | 18 + client/public/images/countries/az.svg | 8 + client/public/images/countries/ba.svg | 12 + client/public/images/countries/bb.svg | 6 + client/public/images/countries/bd.svg | 4 + client/public/images/countries/be.svg | 7 + client/public/images/countries/bf.svg | 7 + client/public/images/countries/bg.svg | 7 + client/public/images/countries/bh.svg | 4 + client/public/images/countries/bi.svg | 15 + client/public/images/countries/bj.svg | 14 + client/public/images/countries/bl.svg | 5 + client/public/images/countries/bm.svg | 97 + client/public/images/countries/bn.svg | 36 + client/public/images/countries/bo.svg | 676 +++ client/public/images/countries/bq.svg | 5 + client/public/images/countries/br.svg | 45 + client/public/images/countries/bs.svg | 13 + client/public/images/countries/bt.svg | 89 + client/public/images/countries/bv.svg | 13 + client/public/images/countries/bw.svg | 7 + client/public/images/countries/by.svg | 20 + client/public/images/countries/bz.svg | 145 + client/public/images/countries/ca.svg | 4 + client/public/images/countries/cc.svg | 19 + client/public/images/countries/cd.svg | 5 + client/public/images/countries/cefta.svg | 13 + client/public/images/countries/cf.svg | 15 + client/public/images/countries/cg.svg | 12 + client/public/images/countries/ch.svg | 9 + client/public/images/countries/ci.svg | 7 + client/public/images/countries/ck.svg | 9 + client/public/images/countries/cl.svg | 13 + client/public/images/countries/cm.svg | 15 + client/public/images/countries/cn.svg | 11 + client/public/images/countries/co.svg | 7 + client/public/images/countries/codes.json | 84 + client/public/images/countries/cp.svg | 7 + client/public/images/countries/cr.svg | 7 + client/public/images/countries/cu.svg | 13 + client/public/images/countries/cv.svg | 13 + client/public/images/countries/cw.svg | 14 + client/public/images/countries/cx.svg | 15 + client/public/images/countries/cy.svg | 6 + client/public/images/countries/cz.svg | 5 + client/public/images/countries/de.svg | 5 + client/public/images/countries/dg.svg | 130 + client/public/images/countries/dj.svg | 13 + client/public/images/countries/dk.svg | 5 + client/public/images/countries/dm.svg | 152 + client/public/images/countries/do.svg | 123 + client/public/images/countries/dz.svg | 5 + client/public/images/countries/eac.svg | 50 + client/public/images/countries/ec.svg | 138 + client/public/images/countries/ee.svg | 7 + client/public/images/countries/eg.svg | 38 + client/public/images/countries/eh.svg | 16 + client/public/images/countries/er.svg | 8 + client/public/images/countries/es-ct.svg | 4 + client/public/images/countries/es-ga.svg | 187 + client/public/images/countries/es-pv.svg | 5 + client/public/images/countries/es.svg | 544 +++ client/public/images/countries/et.svg | 14 + client/public/images/countries/eu.svg | 28 + client/public/images/countries/fi.svg | 5 + client/public/images/countries/fj.svg | 120 + client/public/images/countries/fk.svg | 90 + client/public/images/countries/fm.svg | 11 + client/public/images/countries/fo.svg | 12 + client/public/images/countries/fr.svg | 5 + client/public/images/countries/ga.svg | 7 + client/public/images/countries/gb-eng.svg | 5 + client/public/images/countries/gb-nir.svg | 132 + client/public/images/countries/gb-sct.svg | 4 + client/public/images/countries/gb-wls.svg | 9 + client/public/images/countries/gb.svg | 7 + client/public/images/countries/gd.svg | 27 + client/public/images/countries/ge.svg | 6 + client/public/images/countries/gf.svg | 5 + client/public/images/countries/gg.svg | 9 + client/public/images/countries/gh.svg | 6 + client/public/images/countries/gi.svg | 32 + client/public/images/countries/gl.svg | 4 + client/public/images/countries/gm.svg | 14 + client/public/images/countries/gn.svg | 7 + client/public/images/countries/gp.svg | 5 + client/public/images/countries/gq.svg | 23 + client/public/images/countries/gr.svg | 16 + client/public/images/countries/gs.svg | 133 + client/public/images/countries/gt.svg | 204 + client/public/images/countries/gu.svg | 23 + client/public/images/countries/gw.svg | 13 + client/public/images/countries/gy.svg | 9 + client/public/images/countries/hk.svg | 8 + client/public/images/countries/hm.svg | 8 + client/public/images/countries/hn.svg | 18 + client/public/images/countries/hr.svg | 58 + client/public/images/countries/ht.svg | 116 + client/public/images/countries/hu.svg | 7 + client/public/images/countries/ic.svg | 7 + client/public/images/countries/id.svg | 4 + client/public/images/countries/ie.svg | 7 + client/public/images/countries/il.svg | 14 + client/public/images/countries/im.svg | 36 + client/public/images/countries/in.svg | 25 + client/public/images/countries/io.svg | 130 + client/public/images/countries/iq.svg | 10 + client/public/images/countries/ir.svg | 219 + client/public/images/countries/is.svg | 12 + client/public/images/countries/it.svg | 7 + client/public/images/countries/je.svg | 45 + client/public/images/countries/jm.svg | 8 + client/public/images/countries/jo.svg | 16 + client/public/images/countries/jp.svg | 11 + client/public/images/countries/ke.svg | 23 + client/public/images/countries/kg.svg | 15 + client/public/images/countries/kh.svg | 61 + client/public/images/countries/ki.svg | 36 + client/public/images/countries/km.svg | 16 + client/public/images/countries/kn.svg | 14 + client/public/images/countries/kp.svg | 15 + client/public/images/countries/kr.svg | 24 + client/public/images/countries/kw.svg | 13 + client/public/images/countries/ky.svg | 103 + client/public/images/countries/kz.svg | 36 + client/public/images/countries/la.svg | 12 + client/public/images/countries/lb.svg | 15 + client/public/images/countries/lc.svg | 8 + client/public/images/countries/li.svg | 43 + client/public/images/countries/lk.svg | 22 + client/public/images/countries/lr.svg | 14 + client/public/images/countries/ls.svg | 8 + client/public/images/countries/lt.svg | 7 + client/public/images/countries/lu.svg | 5 + client/public/images/countries/lv.svg | 6 + client/public/images/countries/ly.svg | 13 + client/public/images/countries/ma.svg | 4 + client/public/images/countries/mc.svg | 6 + client/public/images/countries/md.svg | 70 + client/public/images/countries/me.svg | 116 + client/public/images/countries/mf.svg | 5 + client/public/images/countries/mg.svg | 7 + client/public/images/countries/mh.svg | 7 + client/public/images/countries/mk.svg | 5 + client/public/images/countries/ml.svg | 7 + client/public/images/countries/mm.svg | 12 + client/public/images/countries/mn.svg | 14 + client/public/images/countries/mo.svg | 9 + client/public/images/countries/mp.svg | 86 + client/public/images/countries/mq.svg | 5 + client/public/images/countries/mr.svg | 6 + client/public/images/countries/ms.svg | 29 + client/public/images/countries/mt.svg | 49 + client/public/images/countries/mu.svg | 8 + client/public/images/countries/mv.svg | 6 + client/public/images/countries/mw.svg | 10 + client/public/images/countries/mx.svg | 382 ++ client/public/images/countries/my.svg | 26 + client/public/images/countries/mz.svg | 21 + client/public/images/countries/na.svg | 16 + client/public/images/countries/nc.svg | 13 + client/public/images/countries/ne.svg | 6 + client/public/images/countries/nf.svg | 9 + client/public/images/countries/ng.svg | 6 + client/public/images/countries/ni.svg | 129 + client/public/images/countries/nl.svg | 5 + client/public/images/countries/no.svg | 7 + client/public/images/countries/np.svg | 13 + client/public/images/countries/nr.svg | 12 + client/public/images/countries/nu.svg | 10 + client/public/images/countries/nz.svg | 36 + client/public/images/countries/om.svg | 115 + client/public/images/countries/pa.svg | 14 + client/public/images/countries/pe.svg | 244 + client/public/images/countries/pf.svg | 19 + client/public/images/countries/pg.svg | 9 + client/public/images/countries/ph.svg | 6 + client/public/images/countries/pk.svg | 15 + client/public/images/countries/pl.svg | 6 + client/public/images/countries/pm.svg | 5 + client/public/images/countries/pn.svg | 53 + client/public/images/countries/pr.svg | 13 + client/public/images/countries/ps.svg | 15 + client/public/images/countries/pt.svg | 57 + client/public/images/countries/pw.svg | 11 + client/public/images/countries/py.svg | 157 + client/public/images/countries/qa.svg | 4 + client/public/images/countries/re.svg | 5 + client/public/images/countries/ro.svg | 7 + client/public/images/countries/rs.svg | 292 ++ client/public/images/countries/ru.svg | 7 + client/public/images/countries/rw.svg | 13 + client/public/images/countries/sa.svg | 25 + client/public/images/countries/sb.svg | 13 + client/public/images/countries/sc.svg | 7 + client/public/images/countries/sd.svg | 13 + client/public/images/countries/se.svg | 4 + client/public/images/countries/sg.svg | 13 + client/public/images/countries/sh.svg | 76 + client/public/images/countries/si.svg | 18 + client/public/images/countries/sj.svg | 7 + client/public/images/countries/sk.svg | 9 + client/public/images/countries/sl.svg | 7 + client/public/images/countries/sm.svg | 75 + client/public/images/countries/sn.svg | 8 + client/public/images/countries/so.svg | 11 + client/public/images/countries/sr.svg | 6 + client/public/images/countries/ss.svg | 8 + client/public/images/countries/st.svg | 16 + client/public/images/countries/sv.svg | 594 +++ client/public/images/countries/sx.svg | 56 + client/public/images/countries/sy.svg | 6 + client/public/images/countries/sz.svg | 34 + client/public/images/countries/ta.svg | 76 + client/public/images/countries/tc.svg | 50 + client/public/images/countries/td.svg | 7 + client/public/images/countries/tf.svg | 15 + client/public/images/countries/tg.svg | 14 + client/public/images/countries/th.svg | 7 + client/public/images/countries/tj.svg | 22 + client/public/images/countries/tk.svg | 5 + client/public/images/countries/tl.svg | 13 + client/public/images/countries/tm.svg | 205 + client/public/images/countries/tn.svg | 4 + client/public/images/countries/to.svg | 10 + client/public/images/countries/tr.svg | 8 + client/public/images/countries/tt.svg | 5 + client/public/images/countries/tv.svg | 9 + client/public/images/countries/tw.svg | 34 + client/public/images/countries/tz.svg | 13 + client/public/images/countries/ua.svg | 6 + client/public/images/countries/ug.svg | 30 + client/public/images/countries/um.svg | 15 + client/public/images/countries/un.svg | 16 + client/public/images/countries/us.svg | 9 + client/public/images/countries/uy.svg | 28 + client/public/images/countries/uz.svg | 30 + client/public/images/countries/va.svg | 190 + client/public/images/countries/vc.svg | 8 + client/public/images/countries/ve.svg | 26 + client/public/images/countries/vg.svg | 59 + client/public/images/countries/vi.svg | 28 + client/public/images/countries/vn.svg | 11 + client/public/images/countries/vu.svg | 21 + client/public/images/countries/wf.svg | 5 + client/public/images/countries/ws.svg | 7 + client/public/images/countries/xk.svg | 5 + client/public/images/countries/xx.svg | 4 + client/public/images/countries/ye.svg | 7 + client/public/images/countries/yt.svg | 5 + client/public/images/countries/za.svg | 17 + client/public/images/countries/zm.svg | 27 + client/public/images/countries/zw.svg | 21 + client/src/@types/server.d.ts | 1 + client/src/mission/missionhandler.ts | 8 + client/src/unit/aircraftdatabase.ts | 3972 +---------------- client/src/unit/groundunitdatabase.ts | 1457 +----- client/src/unit/helicopterdatabase.ts | 589 +-- client/src/unit/navyunitdatabase.ts | 455 +- client/src/unit/unitdatabase.ts | 17 +- 281 files changed, 17425 insertions(+), 6471 deletions(-) create mode 100644 client/public/databases/aircraftdatabase.json create mode 100644 client/public/databases/groundunitdatabase.json create mode 100644 client/public/databases/helicopterdatabase.json create mode 100644 client/public/databases/navyunitdatabase.json create mode 100644 client/public/images/countries/ac.svg create mode 100644 client/public/images/countries/ad.svg create mode 100644 client/public/images/countries/ae.svg create mode 100644 client/public/images/countries/af.svg create mode 100644 client/public/images/countries/ag.svg create mode 100644 client/public/images/countries/ai.svg create mode 100644 client/public/images/countries/al.svg create mode 100644 client/public/images/countries/am.svg create mode 100644 client/public/images/countries/ao.svg create mode 100644 client/public/images/countries/aq.svg create mode 100644 client/public/images/countries/ar.svg create mode 100644 client/public/images/countries/arab.svg create mode 100644 client/public/images/countries/as.svg create mode 100644 client/public/images/countries/at.svg create mode 100644 client/public/images/countries/au.svg create mode 100644 client/public/images/countries/aw.svg create mode 100644 client/public/images/countries/ax.svg create mode 100644 client/public/images/countries/az.svg create mode 100644 client/public/images/countries/ba.svg create mode 100644 client/public/images/countries/bb.svg create mode 100644 client/public/images/countries/bd.svg create mode 100644 client/public/images/countries/be.svg create mode 100644 client/public/images/countries/bf.svg create mode 100644 client/public/images/countries/bg.svg create mode 100644 client/public/images/countries/bh.svg create mode 100644 client/public/images/countries/bi.svg create mode 100644 client/public/images/countries/bj.svg create mode 100644 client/public/images/countries/bl.svg create mode 100644 client/public/images/countries/bm.svg create mode 100644 client/public/images/countries/bn.svg create mode 100644 client/public/images/countries/bo.svg create mode 100644 client/public/images/countries/bq.svg create mode 100644 client/public/images/countries/br.svg create mode 100644 client/public/images/countries/bs.svg create mode 100644 client/public/images/countries/bt.svg create mode 100644 client/public/images/countries/bv.svg create mode 100644 client/public/images/countries/bw.svg create mode 100644 client/public/images/countries/by.svg create mode 100644 client/public/images/countries/bz.svg create mode 100644 client/public/images/countries/ca.svg create mode 100644 client/public/images/countries/cc.svg create mode 100644 client/public/images/countries/cd.svg create mode 100644 client/public/images/countries/cefta.svg create mode 100644 client/public/images/countries/cf.svg create mode 100644 client/public/images/countries/cg.svg create mode 100644 client/public/images/countries/ch.svg create mode 100644 client/public/images/countries/ci.svg create mode 100644 client/public/images/countries/ck.svg create mode 100644 client/public/images/countries/cl.svg create mode 100644 client/public/images/countries/cm.svg create mode 100644 client/public/images/countries/cn.svg create mode 100644 client/public/images/countries/co.svg create mode 100644 client/public/images/countries/codes.json create mode 100644 client/public/images/countries/cp.svg create mode 100644 client/public/images/countries/cr.svg create mode 100644 client/public/images/countries/cu.svg create mode 100644 client/public/images/countries/cv.svg create mode 100644 client/public/images/countries/cw.svg create mode 100644 client/public/images/countries/cx.svg create mode 100644 client/public/images/countries/cy.svg create mode 100644 client/public/images/countries/cz.svg create mode 100644 client/public/images/countries/de.svg create mode 100644 client/public/images/countries/dg.svg create mode 100644 client/public/images/countries/dj.svg create mode 100644 client/public/images/countries/dk.svg create mode 100644 client/public/images/countries/dm.svg create mode 100644 client/public/images/countries/do.svg create mode 100644 client/public/images/countries/dz.svg create mode 100644 client/public/images/countries/eac.svg create mode 100644 client/public/images/countries/ec.svg create mode 100644 client/public/images/countries/ee.svg create mode 100644 client/public/images/countries/eg.svg create mode 100644 client/public/images/countries/eh.svg create mode 100644 client/public/images/countries/er.svg create mode 100644 client/public/images/countries/es-ct.svg create mode 100644 client/public/images/countries/es-ga.svg create mode 100644 client/public/images/countries/es-pv.svg create mode 100644 client/public/images/countries/es.svg create mode 100644 client/public/images/countries/et.svg create mode 100644 client/public/images/countries/eu.svg create mode 100644 client/public/images/countries/fi.svg create mode 100644 client/public/images/countries/fj.svg create mode 100644 client/public/images/countries/fk.svg create mode 100644 client/public/images/countries/fm.svg create mode 100644 client/public/images/countries/fo.svg create mode 100644 client/public/images/countries/fr.svg create mode 100644 client/public/images/countries/ga.svg create mode 100644 client/public/images/countries/gb-eng.svg create mode 100644 client/public/images/countries/gb-nir.svg create mode 100644 client/public/images/countries/gb-sct.svg create mode 100644 client/public/images/countries/gb-wls.svg create mode 100644 client/public/images/countries/gb.svg create mode 100644 client/public/images/countries/gd.svg create mode 100644 client/public/images/countries/ge.svg create mode 100644 client/public/images/countries/gf.svg create mode 100644 client/public/images/countries/gg.svg create mode 100644 client/public/images/countries/gh.svg create mode 100644 client/public/images/countries/gi.svg create mode 100644 client/public/images/countries/gl.svg create mode 100644 client/public/images/countries/gm.svg create mode 100644 client/public/images/countries/gn.svg create mode 100644 client/public/images/countries/gp.svg create mode 100644 client/public/images/countries/gq.svg create mode 100644 client/public/images/countries/gr.svg create mode 100644 client/public/images/countries/gs.svg create mode 100644 client/public/images/countries/gt.svg create mode 100644 client/public/images/countries/gu.svg create mode 100644 client/public/images/countries/gw.svg create mode 100644 client/public/images/countries/gy.svg create mode 100644 client/public/images/countries/hk.svg create mode 100644 client/public/images/countries/hm.svg create mode 100644 client/public/images/countries/hn.svg create mode 100644 client/public/images/countries/hr.svg create mode 100644 client/public/images/countries/ht.svg create mode 100644 client/public/images/countries/hu.svg create mode 100644 client/public/images/countries/ic.svg create mode 100644 client/public/images/countries/id.svg create mode 100644 client/public/images/countries/ie.svg create mode 100644 client/public/images/countries/il.svg create mode 100644 client/public/images/countries/im.svg create mode 100644 client/public/images/countries/in.svg create mode 100644 client/public/images/countries/io.svg create mode 100644 client/public/images/countries/iq.svg create mode 100644 client/public/images/countries/ir.svg create mode 100644 client/public/images/countries/is.svg create mode 100644 client/public/images/countries/it.svg create mode 100644 client/public/images/countries/je.svg create mode 100644 client/public/images/countries/jm.svg create mode 100644 client/public/images/countries/jo.svg create mode 100644 client/public/images/countries/jp.svg create mode 100644 client/public/images/countries/ke.svg create mode 100644 client/public/images/countries/kg.svg create mode 100644 client/public/images/countries/kh.svg create mode 100644 client/public/images/countries/ki.svg create mode 100644 client/public/images/countries/km.svg create mode 100644 client/public/images/countries/kn.svg create mode 100644 client/public/images/countries/kp.svg create mode 100644 client/public/images/countries/kr.svg create mode 100644 client/public/images/countries/kw.svg create mode 100644 client/public/images/countries/ky.svg create mode 100644 client/public/images/countries/kz.svg create mode 100644 client/public/images/countries/la.svg create mode 100644 client/public/images/countries/lb.svg create mode 100644 client/public/images/countries/lc.svg create mode 100644 client/public/images/countries/li.svg create mode 100644 client/public/images/countries/lk.svg create mode 100644 client/public/images/countries/lr.svg create mode 100644 client/public/images/countries/ls.svg create mode 100644 client/public/images/countries/lt.svg create mode 100644 client/public/images/countries/lu.svg create mode 100644 client/public/images/countries/lv.svg create mode 100644 client/public/images/countries/ly.svg create mode 100644 client/public/images/countries/ma.svg create mode 100644 client/public/images/countries/mc.svg create mode 100644 client/public/images/countries/md.svg create mode 100644 client/public/images/countries/me.svg create mode 100644 client/public/images/countries/mf.svg create mode 100644 client/public/images/countries/mg.svg create mode 100644 client/public/images/countries/mh.svg create mode 100644 client/public/images/countries/mk.svg create mode 100644 client/public/images/countries/ml.svg create mode 100644 client/public/images/countries/mm.svg create mode 100644 client/public/images/countries/mn.svg create mode 100644 client/public/images/countries/mo.svg create mode 100644 client/public/images/countries/mp.svg create mode 100644 client/public/images/countries/mq.svg create mode 100644 client/public/images/countries/mr.svg create mode 100644 client/public/images/countries/ms.svg create mode 100644 client/public/images/countries/mt.svg create mode 100644 client/public/images/countries/mu.svg create mode 100644 client/public/images/countries/mv.svg create mode 100644 client/public/images/countries/mw.svg create mode 100644 client/public/images/countries/mx.svg create mode 100644 client/public/images/countries/my.svg create mode 100644 client/public/images/countries/mz.svg create mode 100644 client/public/images/countries/na.svg create mode 100644 client/public/images/countries/nc.svg create mode 100644 client/public/images/countries/ne.svg create mode 100644 client/public/images/countries/nf.svg create mode 100644 client/public/images/countries/ng.svg create mode 100644 client/public/images/countries/ni.svg create mode 100644 client/public/images/countries/nl.svg create mode 100644 client/public/images/countries/no.svg create mode 100644 client/public/images/countries/np.svg create mode 100644 client/public/images/countries/nr.svg create mode 100644 client/public/images/countries/nu.svg create mode 100644 client/public/images/countries/nz.svg create mode 100644 client/public/images/countries/om.svg create mode 100644 client/public/images/countries/pa.svg create mode 100644 client/public/images/countries/pe.svg create mode 100644 client/public/images/countries/pf.svg create mode 100644 client/public/images/countries/pg.svg create mode 100644 client/public/images/countries/ph.svg create mode 100644 client/public/images/countries/pk.svg create mode 100644 client/public/images/countries/pl.svg create mode 100644 client/public/images/countries/pm.svg create mode 100644 client/public/images/countries/pn.svg create mode 100644 client/public/images/countries/pr.svg create mode 100644 client/public/images/countries/ps.svg create mode 100644 client/public/images/countries/pt.svg create mode 100644 client/public/images/countries/pw.svg create mode 100644 client/public/images/countries/py.svg create mode 100644 client/public/images/countries/qa.svg create mode 100644 client/public/images/countries/re.svg create mode 100644 client/public/images/countries/ro.svg create mode 100644 client/public/images/countries/rs.svg create mode 100644 client/public/images/countries/ru.svg create mode 100644 client/public/images/countries/rw.svg create mode 100644 client/public/images/countries/sa.svg create mode 100644 client/public/images/countries/sb.svg create mode 100644 client/public/images/countries/sc.svg create mode 100644 client/public/images/countries/sd.svg create mode 100644 client/public/images/countries/se.svg create mode 100644 client/public/images/countries/sg.svg create mode 100644 client/public/images/countries/sh.svg create mode 100644 client/public/images/countries/si.svg create mode 100644 client/public/images/countries/sj.svg create mode 100644 client/public/images/countries/sk.svg create mode 100644 client/public/images/countries/sl.svg create mode 100644 client/public/images/countries/sm.svg create mode 100644 client/public/images/countries/sn.svg create mode 100644 client/public/images/countries/so.svg create mode 100644 client/public/images/countries/sr.svg create mode 100644 client/public/images/countries/ss.svg create mode 100644 client/public/images/countries/st.svg create mode 100644 client/public/images/countries/sv.svg create mode 100644 client/public/images/countries/sx.svg create mode 100644 client/public/images/countries/sy.svg create mode 100644 client/public/images/countries/sz.svg create mode 100644 client/public/images/countries/ta.svg create mode 100644 client/public/images/countries/tc.svg create mode 100644 client/public/images/countries/td.svg create mode 100644 client/public/images/countries/tf.svg create mode 100644 client/public/images/countries/tg.svg create mode 100644 client/public/images/countries/th.svg create mode 100644 client/public/images/countries/tj.svg create mode 100644 client/public/images/countries/tk.svg create mode 100644 client/public/images/countries/tl.svg create mode 100644 client/public/images/countries/tm.svg create mode 100644 client/public/images/countries/tn.svg create mode 100644 client/public/images/countries/to.svg create mode 100644 client/public/images/countries/tr.svg create mode 100644 client/public/images/countries/tt.svg create mode 100644 client/public/images/countries/tv.svg create mode 100644 client/public/images/countries/tw.svg create mode 100644 client/public/images/countries/tz.svg create mode 100644 client/public/images/countries/ua.svg create mode 100644 client/public/images/countries/ug.svg create mode 100644 client/public/images/countries/um.svg create mode 100644 client/public/images/countries/un.svg create mode 100644 client/public/images/countries/us.svg create mode 100644 client/public/images/countries/uy.svg create mode 100644 client/public/images/countries/uz.svg create mode 100644 client/public/images/countries/va.svg create mode 100644 client/public/images/countries/vc.svg create mode 100644 client/public/images/countries/ve.svg create mode 100644 client/public/images/countries/vg.svg create mode 100644 client/public/images/countries/vi.svg create mode 100644 client/public/images/countries/vn.svg create mode 100644 client/public/images/countries/vu.svg create mode 100644 client/public/images/countries/wf.svg create mode 100644 client/public/images/countries/ws.svg create mode 100644 client/public/images/countries/xk.svg create mode 100644 client/public/images/countries/xx.svg create mode 100644 client/public/images/countries/ye.svg create mode 100644 client/public/images/countries/yt.svg create mode 100644 client/public/images/countries/za.svg create mode 100644 client/public/images/countries/zm.svg create mode 100644 client/public/images/countries/zw.svg diff --git a/client/demo.js b/client/demo.js index 11cd10a4..7b227f14 100644 --- a/client/demo.js +++ b/client/demo.js @@ -399,6 +399,17 @@ class DemoDataGenerator { startTime: 0 } + ret.mission.coalitions = { + red: [ + 'Russia', + 'China' + ], + blue: [ + 'United States', + 'Great Britain' + ] + } + ret.mission.commandModeOptions = { restrictSpawns: false, restrictToCoalition: true, diff --git a/client/public/databases/aircraftdatabase.json b/client/public/databases/aircraftdatabase.json new file mode 100644 index 00000000..caab8031 --- /dev/null +++ b/client/public/databases/aircraftdatabase.json @@ -0,0 +1,3846 @@ +{ + "A-10C_2": { + "name": "A-10C_2", + "coalition": "blue", + "era": "Late Cold War", + "label": "A-10C Warthog", + "shortLabel": "10", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Mk-84", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "Mk-82", + "quantity": 6 + } + ], + "roles": [ + "CAS" + ], + "code": "Mk-82*6,Mk-84*2,AIM-9*2,ECM", + "name": "Heavy / Mk-84 / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AGM-65D", + "quantity": 4 + }, + { + "name": "CBU-97", + "quantity": 4 + }, + { + "name": "TGP", + "quantity": 1 + }, + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "AIM-9", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "AGM-65D*4, CBU-97*4,TGP, ECM, AIM-9*2", + "name": "Heavy / AGM-65D / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "GBU-12", + "quantity": 6 + }, + { + "name": "GBU-10", + "quantity": 2 + }, + { + "name": "TGP", + "quantity": 1 + }, + { + "name": "AIM-9", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "GBU-12*6,GBU-10*2,TGP, AIM-9*2", + "name": "Heavy / GBU-12 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "a-10.png" + }, + "A-20G": { + "name": "A-20G", + "coalition": "", + "label": "A-20G Havoc", + "era": "WW2", + "shortLabel": "A20", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "12.7mm M2 HMG", + "quantity": 6 + }, + { + "name": "500lb Bomb LD", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "500 lb GP bomb LD*4", + "name": "Medium / Bombs / Medium Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "a-20.png" + }, + "A-50": { + "name": "A-50", + "coalition": "red", + "label": "A-50 Mainstay", + "era": "Late Cold War", + "shortLabel": "A50", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "AWACS" + ], + "code": "", + "name": "Default AWACS" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "a-50.png" + }, + "AJS37": { + "name": "AJS37", + "coalition": "blue", + "label": "AJS37 Viggen", + "era": "Mid Cold War", + "shortLabel": "37", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "BK90", + "quantity": 2 + }, + { + "name": "RB-74", + "quantity": 2 + }, + { + "name": "XT", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "Strike: BK90 (MJ1)*2, RB-74*2, XT", + "name": "Heavy / BK90 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "ARAK M70 HE", + "quantity": 4 + }, + { + "name": "XT", + "quantity": 1 + } + ], + "roles": [ + "CAS" + ], + "code": "CAS: ARAK M70 HE*4, XT", + "name": "Heavy / ARAK M79 HE / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "RB05", + "quantity": 2 + }, + { + "name": "RB74", + "quantity": 2 + }, + { + "name": "XT", + "quantity": 1 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "Anti-ship (RB05): RB-05A*2, RB-74*2, XT", + "name": "Heavy / RB05 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "viggen.png" + }, + "AV8BNA": { + "name": "AV8BNA", + "coalition": "blue", + "label": "AV8BNA Harrier", + "era": "Late Cold War", + "shortLabel": "8", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "GBU-38", + "quantity": 2 + }, + { + "name": "AIM-9M", + "quantity": 1 + }, + { + "name": "AGM-122 Sidearm", + "quantity": 1 + }, + { + "name": "Fuel 300", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "H-M-H 3", + "name": "Heavy / GBU-38 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AGM-65F", + "quantity": 4 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "GAU-12", + "quantity": 1 + } + ], + "roles": [ + "CAS" + ], + "code": "Anti Armor", + "name": "Heavy / AGM-65F / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "av8bna.png" + }, + "An-26B": { + "name": "An-26B", + "coalition": "red", + "label": "An-26B Curl", + "era": "Mid Cold War", + "shortLabel": "26", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Default Transport" + } + ], + "filename": "an-26.png" + }, + "An-30M": { + "name": "An-30M", + "coalition": "red", + "label": "An-30M Clank", + "era": "Mid Cold War", + "shortLabel": "30", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Reconnaissance" + ], + "code": "", + "name": "Default Reconnaissance" + } + ], + "filename": "a-50.png" + }, + "B-1B": { + "name": "B-1B", + "coalition": "blue", + "label": "B-1B Lancer", + "era": "Late Cold War", + "shortLabel": "1", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Mk-84", + "quantity": 24 + } + ], + "roles": [ + "Strike" + ], + "code": "Mk-84*24", + "name": "Heavy / Mk-84 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "b-1.png" + }, + "B-52H": { + "name": "B-52H", + "coalition": "blue", + "label": "B-52H Stratofortress", + "era": "Early Cold War", + "shortLabel": "52", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Mk-84", + "quantity": 18 + } + ], + "roles": [ + "Strike" + ], + "code": "Mk-84*18", + "name": "Heavy / Mk-84 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "b-52.png" + }, + "Bf-109K-4": { + "name": "Bf-109K-4", + "coalition": "", + "label": "Bf-109K-4 Fritz", + "era": "WW2", + "shortLabel": "109", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "30mm MK108 Gun", + "quantity": 1 + }, + { + "name": "13mm MG131 Gun", + "quantity": 2 + }, + { + "name": "SC500", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "500 lb GP bomb LD*4", + "name": "Medium / Bombs / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "30mm MK108 Gun", + "quantity": 1 + }, + { + "name": "13mm MG131 Gun", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "bf109.png" + }, + "C-101CC": { + "name": "C-101CC", + "coalition": "blue", + "label": "C-101CC", + "era": "Late Cold War", + "shortLabel": "101", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "DEFA 553 CANNON (I)", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "2*AIM-9M, DEFA 553 CANNON (I)", + "name": "Light / Fox 2 / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "BELOUGA", + "quantity": 2 + }, + { + "name": "BIN-200", + "quantity": 2 + }, + { + "name": "AN-M3 CANNON", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "2*AIM-9M ,2*BELOUGA,2*BIN-200, AN-M3 CANNON", + "name": "Heavy / BELOUGA, BIN-200 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "c-101.png" + }, + "C-130": { + "name": "C-130", + "coalition": "blue", + "label": "C-130 Hercules", + "era": "Early Cold War", + "shortLabel": "130", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "C-130", + "name": "Default Transport" + } + ], + "filename": "c-130.png" + }, + "C-17A": { + "name": "C-17A", + "coalition": "blue", + "label": "C-17A Globemaster", + "era": "Modern", + "shortLabel": "C17", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Default Transport" + } + ], + "filename": "c-17.png" + }, + "E-2C": { + "name": "E-2C", + "coalition": "blue", + "label": "E-2C Hawkeye", + "era": "Mid Cold War", + "shortLabel": "2C", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "AWACS" + ], + "code": "", + "name": "Blue Navy AWACS" + } + ], + "filename": "e-2.png" + }, + "E-3A": { + "name": "E-3A", + "coalition": "blue", + "label": "E-3A Sentry", + "era": "Mid Cold War", + "shortLabel": "E3", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "AWACS" + ], + "code": "", + "name": "Blue Air Force AWACS" + } + ], + "filename": "e-3.png" + }, + "F-117A": { + "name": "F-117A", + "coalition": "blue", + "label": "F-117A Nighthawk", + "era": "Late Cold War", + "shortLabel": "117", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "GBU-10", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "GBU-10*2", + "name": "Heavy / GBU-10 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-117.png" + }, + "F-14A-135-GR": { + "name": "F-14A-135-GR", + "coalition": "blue", + "label": "F-14A-135-GR Tomcat", + "era": "Mid Cold War", + "shortLabel": "14A", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-54A", + "quantity": 2 + }, + { + "name": "AIM-7F", + "quantity": 1 + }, + { + "name": "AIM-9L", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-54A-MK47*2, AIM-7F*1, AIM-9L*4, XT*2", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7F", + "quantity": 4 + }, + { + "name": "AIM-9L", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-7F*4, AIM-9L*4, XT*2", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 1 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "GBU-12", + "quantity": 2 + }, + { + "name": "LANTIRN", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "AIM-7M*1, AIM-9M*2, XT*2, GBU-12*2, LANTIRN", + "name": "Heavy / Fox 3, GBU-12 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-14.png" + }, + "F-14B": { + "name": "F-14B", + "coalition": "blue", + "label": "F-14B Tomcat", + "era": "Late Cold War", + "shortLabel": "14B", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-54C", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 3 + }, + { + "name": "AIM-9M", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-54C-MK47*2, AIM-7M*3, AIM-9M*2, XT*2", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 6 + }, + { + "name": "AIM-9M", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-7M*6, AIM-9M*2, XT*2", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 1 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "GBU-12", + "quantity": 2 + }, + { + "name": "LANTIRN", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "AIM-7M*1, AIM-9M*2, XT*2, GBU-12*2, LANTIRN", + "name": "Heavy / Fox 3, GBU-12 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-14.png" + }, + "F-15C": { + "name": "F-15C", + "coalition": "blue", + "label": "F-15C Eagle", + "era": "Late Cold War", + "shortLabel": "15", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 3 + }, + { + "name": "AIM-120B", + "quantity": 6 + }, + { + "name": "AIM-9M", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9*2,AIM-120*6,Fuel*3", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 3 + }, + { + "name": "AIM-7", + "quantity": 4 + }, + { + "name": "AIM-9M", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9*4,AIM-7*4,Fuel", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-15.png" + }, + "F-15E": { + "name": "F-15E", + "coalition": "blue", + "label": "F-15E Strike Eagle", + "era": "Late Cold War", + "shortLabel": "15", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 3 + }, + { + "name": "AIM-120B", + "quantity": 2 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "Mk-84", + "quantity": 8 + } + ], + "roles": [ + "CAS" + ], + "code": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-84*8", + "name": "Heavy / Fox 3, Mk-84 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 1 + }, + { + "name": "AIM-120B", + "quantity": 2 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "GBU-12", + "quantity": 4 + }, + { + "name": "GBU-38", + "quantity": 4 + }, + { + "name": "AGM-154C", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-154C*2", + "name": "Heavy / Fox 3, GBU-12, GBU-38, AGM-154C / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-15.png" + }, + "F-16C_50": { + "name": "F-16C_50", + "coalition": "blue", + "label": "F-16C Viper", + "era": "Late Cold War", + "shortLabel": "16", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 3 + }, + { + "name": "AIM-120C", + "quantity": 2 + }, + { + "name": "AIM-9X", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-120C*2, AIM-9X*4, FUEL*2", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-120C", + "quantity": 2 + }, + { + "name": "AIM-9X", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "TGP", + "quantity": 1 + }, + { + "name": "AGM-65D", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "AIM-120C*2, AIM-9X*2, AGM-65D*4, FUEL*2, ECM, TGP", + "name": "Heavy / Fox 3, AGM-65D / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-120C", + "quantity": 2 + }, + { + "name": "AIM-9X", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "TGP", + "quantity": 1 + }, + { + "name": "GBU-10", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "AIM-120C*2, AIM-9X*2, GBU-10*2, FUEL*2, ECM, TGP", + "name": "Heavy / Fox 3, GBU-10 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-16c.png" + }, + "F-4E": { + "name": "F-4E", + "coalition": "blue", + "label": "F-4E Phantom II", + "era": "Mid Cold War", + "shortLabel": "4", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 4 + }, + { + "name": "AIM-9M", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9*4,AIM-7*4,Fuel*2", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "AIM-7M", + "quantity": 2 + }, + { + "name": "Mk-82", + "quantity": 18 + } + ], + "roles": [ + "Strike" + ], + "code": "Mk-82*18,AIM-7*2,ECM", + "name": "Heavy / Fox 1, Mk-82 / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "AIM-7M", + "quantity": 2 + }, + { + "name": "AGM-65K", + "quantity": 4 + }, + { + "name": "Fuel", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "AGM-65K*4,AIM-7*2,Fuel*2,ECM", + "name": "Heavy / Fox 1, AGM-65K / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-4.png" + }, + "F-5E-3": { + "name": "F-5E-3", + "coalition": "blue", + "label": "F-5E Tiger", + "era": "Mid Cold War", + "shortLabel": "5", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Fuel 275", + "quantity": 3 + }, + { + "name": "AIM-9P5", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9P5*2, Fuel 275*3", + "name": "Heavy / Fox 2 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Mk-82", + "quantity": 4 + }, + { + "name": "AIM-9P5", + "quantity": 2 + }, + { + "name": "Fuel 275", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "Mk-82LD*4,AIM-9P*2,Fuel 275", + "name": "Heavy / Fox 2 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-5.png" + }, + "F-86F Sabre": { + "name": "F-86F Sabre", + "coalition": "blue", + "label": "F-86F Sabre", + "era": "Early Cold War", + "shortLabel": "86", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "120gal Fuel", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "120gal Fuel*2", + "name": "Light / Guns / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "HVAR", + "quantity": 16 + } + ], + "roles": [ + "CAS" + ], + "code": "HVAR*16", + "name": "Light / HVAR / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AN-M64", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "AN-M64*2", + "name": "Light / AN-M64 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "f-5.png" + }, + "FA-18C_hornet": { + "name": "FA-18C_hornet", + "coalition": "blue", + "era": "Late Cold War", + "label": "F/A-18C", + "shortLabel": "18", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 3 + }, + { + "name": "AIM-120C-5", + "quantity": 6 + }, + { + "name": "AIM-9X", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9X*2, AIM-120C-5*6, FUEL*3", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 3 + }, + { + "name": "AIM-7M", + "quantity": 4 + }, + { + "name": "AIM-9M", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9M*2, AIM-7M*4, FUEL*3", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 1 + }, + { + "name": "AIM-120C-5", + "quantity": 1 + }, + { + "name": "AIM-9X", + "quantity": 2 + }, + { + "name": "AGM-88C", + "quantity": 2 + } + ], + "roles": [ + "SEAD" + ], + "code": "AIM-9X*2, AIM-120C-5*2, AGM-88C*2, FUEL", + "name": "Heavy / Fox 3, AGM-88C / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 1 + }, + { + "name": "AIM-120C-5", + "quantity": 1 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "AGM-84D", + "quantity": 4 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "AIM-9M*2, AIM-120C-5*1, AGM-84D*4, ATFLIR, FUEL", + "name": "Heavy / Fox 3, AGM-84D / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 1 + }, + { + "name": "AIM-120C-5", + "quantity": 1 + }, + { + "name": "AIM-9X", + "quantity": 2 + }, + { + "name": "GBU-12", + "quantity": 4 + }, + { + "name": "GBU-38", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "AIM-9X*2, AIM-120C-5*1, GBU-38*4, GBU-12*4, ATFLIR, FUEL", + "name": "Heavy / Fox 3, GBU-12, GBU-38 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "fa-18c.png" + }, + "FW-190A8": { + "name": "FW-190A8", + "coalition": "", + "label": "FW-190A8 Bosch", + "era": "WW2", + "shortLabel": "190A8", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "20mm MG151 Gun", + "quantity": 4 + }, + { + "name": "13mm MG131 Gun", + "quantity": 2 + }, + { + "name": "SD500", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "SD 500 A", + "name": "Medium / Bombs / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "20mm MG151 Gun", + "quantity": 4 + }, + { + "name": "13mm MG131 Gun", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "fw190.png" + }, + "FW-190D9": { + "name": "FW-190D9", + "coalition": "", + "label": "FW-190D9 Jerry", + "era": "WW2", + "shortLabel": "190D9", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "20mm MG151 Gun", + "quantity": 4 + }, + { + "name": "13mm MG131 Gun", + "quantity": 2 + }, + { + "name": "SC500", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "SD 500 A", + "name": "Medium / Bombs / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "20mm MG151 Gun", + "quantity": 4 + }, + { + "name": "13mm MG131 Gun", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "fw190.png" + }, + "H-6J": { + "name": "H-6J", + "coalition": "red", + "label": "H-6J Badger", + "era": "Mid Cold War", + "shortLabel": "H6", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "250-3 LD Bomb", + "quantity": 36 + } + ], + "roles": [ + "Strike" + ], + "code": "250-3 LD Bomb x 36", + "name": "Heavy / Bombs / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "KD-20", + "quantity": 4 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "KD-20 x 4", + "name": "Heavy / KD-20 / Long Range" + } + ], + "filename": "h-6.png" + }, + "I-16": { + "name": "I-16", + "coalition": "", + "label": "I-16", + "era": "WW2", + "shortLabel": "I16", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "CAP" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "i-16.png" + }, + "IL-76MD": { + "name": "IL-76MD", + "coalition": "red", + "label": "IL-76MD Candid", + "era": "Mid Cold War", + "shortLabel": "76", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Default Transport" + } + ], + "filename": "il-76.png" + }, + "IL-78M": { + "name": "IL-78M", + "coalition": "red", + "label": "IL-78M Midas", + "era": "Late Cold War", + "shortLabel": "78", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Tanker" + ], + "code": "", + "name": "Default Tanker" + } + ], + "filename": "il-76.png" + }, + "J-11A": { + "name": "J-11A", + "coalition": "red", + "label": "J-11A Flaming Dragon", + "era": "Modern", + "shortLabel": "11", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "FAB-500", + "quantity": 8 + }, + { + "name": "R-73", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500x8,R-73x2,ECM", + "name": "Heavy / Fox 2 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-77", + "quantity": 2 + }, + { + "name": "R-73", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-77x2, R-73x2", + "name": "Light / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-27ER", + "quantity": 2 + }, + { + "name": "R-73", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-27ERx2, R-73x2", + "name": "Light / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-27.png" + }, + "JF-17": { + "name": "JF-17", + "coalition": "red", + "label": "JF-17 Thunder", + "era": "Modern", + "shortLabel": "17", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "PL-5E2", + "quantity": 2 + }, + { + "name": "C802AK", + "quantity": 2 + }, + { + "name": "800L Tank", + "quantity": 1 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "PL-5Ex2, C802AKx2, 800L Tank", + "name": "Heavy / C802AK ASM / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "PL-5E2", + "quantity": 2 + }, + { + "name": "GBU-12", + "quantity": 2 + }, + { + "name": "800L Tank", + "quantity": 1 + }, + { + "name": "WMD7", + "quantity": 1 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "PL-5Ex2, 2*GBU-12x2, 800L Tank, WMD7", + "name": "Heavy / C802AK ASM / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "PL-5E2", + "quantity": 2 + }, + { + "name": "SD-10", + "quantity": 2 + }, + { + "name": "1100L Tank", + "quantity": 2 + }, + { + "name": "WMD7", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "PL-5Ex2, SD-10x2, 1100L Tankx2, WMD7", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "jf-17.png" + }, + "KC-135": { + "name": "KC-135", + "coalition": "blue", + "label": "KC-135 Stratotanker", + "era": "Early Cold War", + "shortLabel": "135", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Tanker" + ], + "code": "", + "name": "Default Tanker" + } + ], + "filename": "kc-135.png" + }, + "KC135MPRS": { + "name": "KC135MPRS", + "coalition": "blue", + "label": "KC-135 MPRS Stratotanker", + "era": "Early Cold War", + "shortLabel": "135M", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Tanker" + ], + "code": "", + "name": "Default Tanker" + } + ], + "filename": "kc-135.png" + }, + "L-39ZA": { + "name": "L-39ZA", + "coalition": "red", + "label": "L-39ZA", + "era": "Mid Cold War", + "shortLabel": "39", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "S-5KO", + "quantity": 32 + } + ], + "roles": [ + "CAS" + ], + "code": "S-5KOx32", + "name": "Heavy / S-5KO / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-100", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-100x4", + "name": "Heavy / FAB-100 / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-60Mx2", + "name": "Light / Fox 2 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "l-39.png" + }, + "M-2000C": { + "name": "M-2000C", + "coalition": "blue", + "label": "M-2000C Mirage", + "era": "Late Cold War", + "shortLabel": "M2KC", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Matra Magic II", + "quantity": 2 + }, + { + "name": "Super 530D", + "quantity": 2 + }, + { + "name": "Eclair", + "quantity": 1 + }, + { + "name": "fuel", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Fox / S530D / Magic / Eclair", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Matra Magic II", + "quantity": 2 + }, + { + "name": "Mk82", + "quantity": 4 + }, + { + "name": "fuel", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "Kilo / 4xMk-82 / Magic", + "name": "Heavy / Mk 82 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Matra Magic II", + "quantity": 2 + }, + { + "name": "BAP-100", + "quantity": 18 + }, + { + "name": "fuel", + "quantity": 2 + } + ], + "roles": [ + "Runway Strike" + ], + "code": "Bravo / BAP-100 / Magic", + "name": "Heavy / BAP-100 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "m2000.png" + }, + "MB-339A": { + "name": "MB-339A", + "coalition": "blue", + "label": "MB-339A", + "era": "Mid Cold War", + "shortLabel": "339A", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "320L TipTanks", + "quantity": 2 + }, + { + "name": "DEFA 553 GunPods", + "quantity": 2 + }, + { + "name": "Mk83", + "quantity": 2 + }, + { + "name": "Mk81", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "A - 2*320L TipTanks + 2*DEFA-553 GunPods + 2*Mk.83 + 2*Mk.81 ", + "name": "Heavy / Mk81, Mk83 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "320L TipTanks", + "quantity": 2 + }, + { + "name": "DEFA GunPods", + "quantity": 2 + }, + { + "name": "LAU-10(Zuni Rockets)", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "AA - 2*320L TipTanks + 2*DEFA-553 GunPods + 2*LAU-10(Zuni Rockets) [ARMADA]", + "name": "Heavy / Mk 82 / Medium Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "c-101.png" + }, + "MQ-9 Reaper": { + "name": "MQ-9 Reaper", + "coalition": "blue", + "label": "MQ-9 Reaper", + "era": "Modern", + "shortLabel": "9", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AGM-114K", + "quantity": 12 + } + ], + "roles": [ + "Drone" + ], + "code": "AGM-114K*12", + "name": "Default Drone" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "i-16.png" + }, + "MiG-15bis": { + "name": "MiG-15bis", + "coalition": "red", + "label": "MiG-15 Fagot", + "era": "Early Cold War", + "shortLabel": "M15", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "300L Fuel Tanks", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "2*300L", + "name": "Medium / Guns / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-100M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "2*FAB-100M", + "name": "Medium / FAB-100M / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "mig-15.png" + }, + "MiG-19P": { + "name": "MiG-19P", + "coalition": "red", + "label": "MiG-19 Farmer", + "era": "Early Cold War", + "shortLabel": "19", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "K-13A Atoll", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "K-13A x 2", + "name": "Light / Fox-2 / Short range" + }, + { + "fuel": 1, + "items": [ + { + "name": "K-13A Atoll", + "quantity": 2 + }, + { + "name": "167 gal tanks", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "K-13A x 2, PTB-760 x 2", + "name": "Medium / Fox-2 / Medium range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-250", + "quantity": 2 + }, + { + "name": "ORO-57K", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-250 x 2, ORO-57K x 2", + "name": "Medium / FAB250, ORO57K / Short range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Short range" + } + ], + "filename": "mig-19.png" + }, + "MiG-21Bis": { + "name": "MiG-21Bis", + "coalition": "red", + "label": "MiG-21 Fishbed", + "era": "Mid Cold War", + "shortLabel": "21", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-3 Atoll", + "quantity": 2 + }, + { + "name": "R-60 Aphid", + "quantity": 2 + }, + { + "name": "130 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Patrol, short range", + "name": "Light / Fox-2 / Short range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-3 Atoll", + "quantity": 2 + }, + { + "name": "R-60 Aphid", + "quantity": 2 + }, + { + "name": "210 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Patrol, medium range", + "name": "Medium / Fox-2 / Medium range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-3R Atoll", + "quantity": 2 + }, + { + "name": "210 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Patrol, R-3R Only", + "name": "Medium / Fox-1 / Medium range" + }, + { + "fuel": 1, + "items": [ + { + "name": "GROM", + "quantity": 2 + }, + { + "name": "FAB-250", + "quantity": 2 + }, + { + "name": "210 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "Few big targets, GROM + BOMBS", + "name": "Heavy / GROM, FAB250 / Medium range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "CAP" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-21.png" + }, + "MiG-23MLD": { + "name": "MiG-23MLD", + "coalition": "red", + "label": "MiG-23 Flogger", + "era": "Mid Cold War", + "shortLabel": "23", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Fuel-800", + "quantity": 1 + }, + { + "name": "R-60M", + "quantity": 4 + }, + { + "name": "R-24R", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-24R*2,R-60M*4,Fuel-800", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Fuel-800", + "quantity": 1 + }, + { + "name": "FAB-500", + "quantity": 2 + }, + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500*2,R-60M*2,Fuel-800", + "name": "Heavy / FAB-500 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-23.png" + }, + "MiG-25PD": { + "name": "MiG-25PD", + "coalition": "red", + "label": "MiG-25PD Foxbat", + "era": "Mid Cold War", + "shortLabel": "25", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-40R", + "quantity": 2 + }, + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-40R*2,R-60M*2", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-25.png" + }, + "MiG-25RBT": { + "name": "MiG-25RBT", + "coalition": "red", + "label": "MiG-25RBT Foxbat", + "era": "Mid Cold War", + "shortLabel": "25", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "Reconnaissance" + ], + "code": "R-60M*2", + "name": "Heavy / Fox 2 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-500", + "quantity": 2 + }, + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500x2_60x2", + "name": "Heavy / FAB-500 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-25.png" + }, + "MiG-27K": { + "name": "MiG-27K", + "coalition": "red", + "label": "MiG-27K Flogger-D", + "era": "Mid Cold War", + "shortLabel": "27", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "B-8", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "B-8*4", + "name": "Heavy / B-8 / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Kh-29L", + "quantity": 2 + }, + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "Kh-29L*2,R-60M*2,Fuel", + "name": "Heavy / Fox 2, Kh-29L / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-250", + "quantity": 6 + }, + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-250*6,R-60M*2,Fuel", + "name": "Heavy / Fox 2, FAB250 / Medium Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-23.png" + }, + "MiG-29A": { + "name": "MiG-29A", + "coalition": "red", + "label": "MiG-29A Fulcrum", + "era": "Late Cold War", + "shortLabel": "29A", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 4 + }, + { + "name": "R-27R", + "quantity": 2 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-27R*2,Fuel-1500", + "name": "Heavy / Fox 1, HOBS Fox 2 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 4 + }, + { + "name": "R-27R", + "quantity": 2 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "R-60M*4,R-27R*2,Fuel-1500", + "name": "Heavy / Fox 1 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "FAB-500", + "quantity": 4 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500*4,R-73*2,Fuel", + "name": "Heavy / Fox 2, FAB500 / Medium Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-29.png" + }, + "MiG-29S": { + "name": "MiG-29S", + "coalition": "red", + "label": "MiG-29S Fulcrum", + "era": "Late Cold War", + "shortLabel": "29", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 4 + }, + { + "name": "R-27R", + "quantity": 2 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-27R*2,Fuel-1500", + "name": "Heavy / Fox 1 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 4 + }, + { + "name": "R-27R", + "quantity": 2 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "R-60M*4,R-27R*2", + "name": "Heavy / Fox 1 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "S-24", + "quantity": 4 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "CAS" + ], + "code": "S-24*4,R-73*2,Fuel", + "name": "Heavy / Fox 2, S-24 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "FAB-500", + "quantity": 4 + }, + { + "name": "Fuel-1500", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500*4,R-73*2,Fuel", + "name": "Heavy / Fox 2, FAB500 / Medium Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-29.png" + }, + "MiG-31": { + "name": "MiG-31", + "coalition": "red", + "label": "MiG-31 Foxhound", + "era": "Late Cold War", + "shortLabel": "31", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-33", + "quantity": 4 + }, + { + "name": "R-40T", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-40T*2,R-33*4", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-23.png" + }, + "Mirage-F1EE": { + "name": "Mirage-F1EE", + "coalition": "blue", + "label": "Mirage-F1EE", + "era": "Mid Cold War", + "shortLabel": "F1EE", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AIM-9JULI", + "quantity": 2 + }, + { + "name": "R530EM", + "quantity": 2 + }, + { + "name": "1137L Fuel Tank", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "2*AIM9-JULI, 2*R530EM, 1*Fuel Tank", + "name": "Medium / Fox 1 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AIM-9JULI", + "quantity": 2 + }, + { + "name": "SAMP 400 LD", + "quantity": 8 + } + ], + "roles": [ + "Strike" + ], + "code": "2*AIM-9JULI, 8*SAMP 400 LD", + "name": "Heavy / SAMP400 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-5.png" + }, + "MosquitoFBMkVI": { + "name": "MosquitoFBMkVI", + "coalition": "", + "label": "Mosquito FB MkVI", + "era": "WW2", + "shortLabel": "Mosquito", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "20mm Hispano Gun", + "quantity": 4 + }, + { + "name": "7.7mm MG", + "quantity": 4 + }, + { + "name": "500 lb GP Mk.V", + "quantity": 2 + }, + { + "name": "500 lb GP Short tail", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "500 lb GP Mk.V*2, 500 lb GP Short tail*2", + "name": "Medium / Bombs / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "20mm Hispano Gun", + "quantity": 4 + }, + { + "name": "7.7mm MG", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Medium Range" + } + ], + "filename": "mosquito.png" + }, + "P-47D-40": { + "name": "P-47D-40", + "coalition": "", + "label": "P-47D Thunderbolt", + "era": "WW2", + "shortLabel": "P47", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "12.7mm HMG", + "quantity": 8 + }, + { + "name": "AN-M65", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "AN-M65*2", + "name": "Medium / Bombs / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "12.7mm HMG", + "quantity": 8 + } + ], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Medium Range" + } + ], + "filename": "p-47.png" + }, + "P-51D-30-NA": { + "name": "P-51D-30-NA", + "coalition": "", + "label": "P-51D Mustang", + "era": "WW2", + "shortLabel": "P51", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "12.7mm HMG", + "quantity": 6 + }, + { + "name": "HVAR", + "quantity": 10 + } + ], + "roles": [ + "Strike" + ], + "code": "HVAR*10", + "name": "Medium / Rockets / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "12.7mm HMG", + "quantity": 6 + } + ], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Medium Range" + } + ], + "filename": "p-51.png" + }, + "S-3B Tanker": { + "name": "S-3B Tanker", + "coalition": "blue", + "label": "S-3B Tanker", + "era": "Early Cold War", + "shortLabel": "S3B", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Tanker" + ], + "code": "", + "name": "Default Tanker" + } + ], + "filename": "s-3.png" + }, + "Su-17M4": { + "name": "Su-17M4", + "coalition": "red", + "label": "Su-17M4 Fitter", + "era": "Mid Cold War", + "shortLabel": "17M4", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + }, + { + "name": "B-8", + "quantity": 4 + }, + { + "name": "fuel", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "B-8*4,R-60M*2,Fuel*2", + "name": "Heavy / B-8 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-17.png" + }, + "Su-24M": { + "name": "Su-24M", + "coalition": "red", + "label": "Su-24M Fencer", + "era": "Mid Cold War", + "shortLabel": "24", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + }, + { + "name": "FAB-1500", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-1500*2,R-60M*2", + "name": "Heavy / FAB-500 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-24.png" + }, + "Su-25": { + "name": "Su-25", + "coalition": "red", + "label": "Su-25A Frogfoot", + "era": "Late Cold War", + "shortLabel": "S25", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + }, + { + "name": "UB-13", + "quantity": 6 + }, + { + "name": "fuel", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "UB-13*6,R-60M*2,Fuel*2", + "name": "Heavy / Rockets / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + }, + { + "name": "B-8MI", + "quantity": 2 + }, + { + "name": "RBK-500", + "quantity": 2 + }, + { + "name": "Kh-25ML", + "quantity": 2 + }, + { + "name": "2-25L", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "2-25L*2, KH-25ML*2, RBK-500*2, B-8MI*2, R-60M*2", + "name": "Heavy / Everything A-G / Medium Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-25.png" + }, + "Su-25T": { + "name": "Su-25", + "coalition": "red", + "label": "Su-25T Frogfoot", + "era": "Late Cold War", + "shortLabel": "S25T", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Kh-29L", + "quantity": 2 + }, + { + "name": "Kh-25ML", + "quantity": 4 + }, + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "Mercury LLTV Pod", + "quantity": 1 + }, + { + "name": "MPS-410", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "Kh-29L*2,Kh-25ML*4,R-73*2,Mercury LLTV Pod,MPS-410", + "name": "Heavy / Everything A-G / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "APU-8 Vikhr-M", + "quantity": 2 + }, + { + "name": "Kh-25ML", + "quantity": 2 + }, + { + "name": "SPPU-22*2", + "quantity": 2 + }, + { + "name": "Mercury LLTV Pod", + "quantity": 1 + }, + { + "name": "MPS-410", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "APU-8 Vikhr-M*2,Kh-25ML,R-73*2,SPPU-22*2,Mercury LLTV Pod,MPS-410", + "name": "Heavy / Everything A-G / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-500", + "quantity": 6 + }, + { + "name": "R-60M", + "quantity": 2 + }, + { + "name": "Fuel", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500*6,R-60M*2,Fuel*2", + "name": "Medium / FAB-500 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-25.png" + }, + "Su-27": { + "name": "Su-27", + "coalition": "red", + "label": "Su-27 Flanker", + "era": "Late Cold War", + "shortLabel": "27", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-27ER", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-27ER*2,ECM", + "name": "Light / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-27ER", + "quantity": 2 + }, + { + "name": "R-27ET", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-27ER*2,R-27ET*2,ECM", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-27ET", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-27ET*2,ECM", + "name": "Heavy / Fox 2 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "S-25", + "quantity": 4 + }, + { + "name": "FAB-500", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "S-25*4, FAB-500*4, R-73*2, ECM", + "name": "Heavy / Fox 2, Bombs, Rockets / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-27.png" + }, + "Su-30": { + "name": "Su-30", + "coalition": "red", + "label": "Su-30 Super Flanker", + "era": "Late Cold War", + "shortLabel": "30", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-77", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-77*2", + "name": "Light / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-77", + "quantity": 2 + }, + { + "name": "R-27ER", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-77*2,R-27ER*2,ECM", + "name": "Heavy / Fox 3, Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-77", + "quantity": 2 + }, + { + "name": "FAB-1500", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-1500*2,R-73*2,R-77*2,ECM", + "name": "Heavy / Fox 3, Bombs / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-34.png" + }, + "Su-33": { + "name": "Su-33", + "coalition": "red", + "label": "Su-33 Navy Flanker", + "era": "Late Cold War", + "shortLabel": "33", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-27ER", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2, R-27ER*2", + "name": "Light / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "R-27ER", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-73*2,R-27ET*2,R-27ER*2,ECM", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "S-25", + "quantity": 4 + }, + { + "name": "FAB-250", + "quantity": 4 + }, + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "S-25*4,FAB-250*4,R-73*2,ECM", + "name": "Heavy / Rockets, Bombs / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-34.png" + }, + "Su-34": { + "name": "Su-34", + "coalition": "red", + "label": "Su-34 Hellduck", + "era": "Modern", + "shortLabel": "34", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-73", + "quantity": 2 + }, + { + "name": "FAB-250", + "quantity": 4 + }, + { + "name": "UB-13", + "quantity": 4 + }, + { + "name": "ECM", + "quantity": 1 + } + ], + "roles": [ + "CAS" + ], + "code": "UB-13*4,FAB-250*4,R-73*2,ECM", + "name": "Heavy / Mixed Ground Ordinance / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-34.png" + }, + "Tornado GR4": { + "name": "Tornado GR4", + "coalition": "blue", + "label": "Tornado GR4", + "era": "Late Cold War", + "shortLabel": "GR4", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "ALARM", + "quantity": 4 + }, + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 1 + } + ], + "roles": [ + "SEAD" + ], + "code": "ALARM*4, Fuel*2, ECM", + "name": "Heavy / ALARM / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "GBU-16", + "quantity": 2 + }, + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "GBU-16*2, AIM-9M*2, Fuel*2, ECM", + "name": "Heavy / GBU-16 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "Sea Eagle", + "quantity": 2 + }, + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "ECM", + "quantity": 1 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "Sea Eagle*2, AIM-9M*2, Fuel*2, ECM", + "name": "Heavy / Sea Eagle / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "tornado.png" + }, + "Tornado IDS": { + "name": "Tornado IDS", + "coalition": "blue", + "label": "Tornado IDS", + "era": "Late Cold War", + "shortLabel": "IDS", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "Mk-82", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "Mk-82*4,AIM-9*2,Fuel*2", + "name": "Heavy / Mk-84 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "tornado.png" + }, + "Tu-142": { + "name": "Tu-142", + "coalition": "red", + "label": "Tu-142 Bear", + "era": "Mid Cold War", + "shortLabel": "142", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Kh-35", + "quantity": 6 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "Kh-35*6", + "name": "Heavy / Kh-35 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "tu-95.png" + }, + "Tu-160": { + "name": "Tu-160", + "coalition": "red", + "label": "Tu-160 Blackjack", + "era": "Late Cold War", + "shortLabel": "160", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Kh-65", + "quantity": 12 + } + ], + "roles": [ + "Strike" + ], + "code": "Kh-65*12", + "name": "Heavy / Kh-65 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "tu-160.png" + }, + "Tu-22M3": { + "name": "Tu-22M3", + "coalition": "red", + "label": "Tu-22M3 Backfire", + "era": "Late Cold War", + "shortLabel": "T22", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Kh-22n", + "quantity": 2 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "Kh-22N*2", + "name": "Heavy / Kh-22N / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-250", + "quantity": 69 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-250*69", + "name": "Heavy / Kh-22n / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "tu-22.png" + }, + "Tu-95MS": { + "name": "Tu-95MS", + "coalition": "red", + "label": "Tu-95MS Bear", + "era": "Mid Cold War", + "shortLabel": "95", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Kh-65", + "quantity": 6 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "Kh-65*6", + "name": "Heavy / Kh-65 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "tu-95.png" + } +} \ No newline at end of file diff --git a/client/public/databases/groundunitdatabase.json b/client/public/databases/groundunitdatabase.json new file mode 100644 index 00000000..51362195 --- /dev/null +++ b/client/public/databases/groundunitdatabase.json @@ -0,0 +1,1454 @@ +{ + "1L13 EWR": { + "name": "1L13 EWR", + "coalition": "red", + "era": "Late Cold War", + "label": "Box Spring", + "shortLabel": "1L13 EWR", + "filename": "", + "type": "Radar" + }, + "2B11 mortar": { + "name": "2B11 mortar", + "coalition": "red", + "era": "Late Cold War", + "label": "2B11 mortar", + "shortLabel": "2B11 mortar", + "filename": "", + "type": "Gun Artillery" + }, + "2S6 Tunguska": { + "name": "2S6 Tunguska", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-19 Tunguska", + "shortLabel": "SA-19", + "range": "Short", + "filename": "", + "type": "AAA/SAM" + }, + "55G6 EWR": { + "name": "55G6 EWR", + "coalition": "red", + "era": "Early Cold War", + "label": "Tall Rack", + "shortLabel": "55G6 EWR", + "filename": "", + "type": "Radar" + }, + "5p73 s-125 ln": { + "name": "5p73 s-125 ln", + "coalition": "red", + "era": "Early Cold War", + "label": "SA-3 Launcher", + "shortLabel": "5p73 s-125 ln", + "range": "Medium", + "filename": "", + "type": "SAM Launcher" + }, + "AAV7": { + "name": "AAV7", + "coalition": "blue", + "era": "Mid Cold War", + "label": "AAV7", + "shortLabel": "AAV7", + "filename": "", + "type": "APC" + }, + "ATMZ-5": { + "name": "ATMZ-5", + "coalition": "red", + "era": "Early Cold War", + "label": "ATMZ-5", + "shortLabel": "ATMZ-5", + "filename": "", + "type": "Unarmed" + }, + "ATZ-10": { + "name": "ATZ-10", + "coalition": "red", + "era": "Early Cold War", + "label": "ATZ-10", + "shortLabel": "ATZ-10", + "filename": "", + "type": "Unarmed" + }, + "BMD-1": { + "name": "BMD-1", + "coalition": "red", + "era": "Mid Cold War", + "label": "BMD-1", + "shortLabel": "BMD-1", + "filename": "", + "type": "IFV" + }, + "BMP-1": { + "name": "BMP-1", + "coalition": "red", + "era": "Mid Cold War", + "label": "BMP-1", + "shortLabel": "BMP-1", + "filename": "", + "type": "IFV" + }, + "BMP-2": { + "name": "BMP-2", + "coalition": "red", + "era": "Mid Cold War", + "label": "BMP-2", + "shortLabel": "BMP-2", + "filename": "", + "type": "IFV" + }, + "BMP-3": { + "name": "BMP-3", + "coalition": "red", + "era": "Late Cold War", + "label": "BMP-3", + "shortLabel": "BMP-3", + "filename": "", + "type": "IFV" + }, + "BRDM-2": { + "name": "BRDM-2", + "coalition": "red", + "era": "Early Cold War", + "label": "BRDM-2", + "shortLabel": "BRDM-2", + "filename": "", + "type": "Reconnaissance" + }, + "BTR-80": { + "name": "BTR-80", + "coalition": "red", + "era": "Late Cold War", + "label": "BTR-80", + "shortLabel": "BTR-80", + "filename": "", + "type": "APC" + }, + "BTR_D": { + "name": "BTR_D", + "coalition": "red", + "era": "Mid Cold War", + "label": "BTR_D", + "shortLabel": "BTR_D", + "filename": "", + "type": "APC" + }, + "Boman": { + "name": "Boman", + "coalition": "blue", + "era": "Late Cold War", + "label": "Grad Fire Direction Manager", + "shortLabel": "Boman", + "filename": "", + "type": "Reconnaissance" + }, + "Bunker": { + "name": "Bunker", + "coalition": "", + "era": "", + "label": "Bunker", + "shortLabel": "Bunker", + "filename": "", + "type": "Static" + }, + "Challenger2": { + "name": "Challenger2", + "coalition": "blue", + "era": "Modern", + "label": "Challenger2", + "shortLabel": "Challenger2", + "filename": "", + "type": "Tank" + }, + "Cobra": { + "name": "Cobra", + "coalition": "blue", + "era": "Modern", + "label": "Otokar Cobra", + "shortLabel": "Cobra", + "filename": "", + "type": "Reconnaissance" + }, + "Dog Ear radar": { + "name": "Dog Ear radar", + "coalition": "red", + "era": "Mid Cold War", + "label": "Dog Ear", + "shortLabel": "Dog Ear radar", + "filename": "", + "type": "SAM Search radar" + }, + "GAZ-3307": { + "name": "GAZ-3307", + "coalition": "red", + "era": "Early Cold War", + "label": "GAZ-3307", + "shortLabel": "GAZ-3307", + "filename": "", + "type": "Unarmed" + }, + "GAZ-3308": { + "name": "GAZ-3308", + "coalition": "red", + "era": "Early Cold War", + "label": "GAZ-3308", + "shortLabel": "GAZ-3308", + "filename": "", + "type": "Unarmed" + }, + "GAZ-66": { + "name": "GAZ-66", + "coalition": "red", + "era": "Early Cold War", + "label": "GAZ-66", + "shortLabel": "GAZ-66", + "filename": "", + "type": "Unarmed" + }, + "Gepard": { + "name": "Gepard", + "coalition": "blue", + "era": "Late Cold War", + "label": "Gepard", + "shortLabel": "Gepard", + "filename": "", + "type": "AAA" + }, + "Grad-URAL": { + "name": "Grad-URAL", + "coalition": "red", + "era": "Mid Cold War", + "label": "Grad", + "shortLabel": "Grad", + "filename": "", + "type": "Rocket Artillery" + }, + "HEMTT TFFT": { + "name": "HEMTT TFFT", + "coalition": "blue", + "era": "Late Cold War", + "label": "HEMTT TFFT", + "shortLabel": "HEMTT TFFT", + "filename": "", + "type": "Unarmed" + }, + "Hawk SAM Battery": { + "name": "Hawk SAM Battery", + "coalition": "blue", + "era": "Early Cold War", + "label": "Hawk SAM Battery", + "shortLabel": "Hawk SAM Battery", + "range": "Medium", + "filename": "", + "type": "SAM Site" + }, + "Hawk cwar": { + "name": "Hawk cwar", + "coalition": "blue", + "era": "Early Cold War", + "label": "Hawk Continous Wave Acquisition Radar", + "shortLabel": "Hawk cwar", + "range": "Long", + "filename": "", + "type": "SAM Track radar" + }, + "Hawk ln": { + "name": "Hawk ln", + "coalition": "blue", + "era": "Late Cold War", + "label": "Hawk Launcher", + "shortLabel": "Hawk ln", + "filename": "", + "type": "SAM Launcher" + }, + "Hawk pcp": { + "name": "Hawk pcp", + "coalition": "blue", + "era": "Late Cold War", + "label": "Hawk Platoon Command Post", + "shortLabel": "Hawk pcp", + "range": "Medium", + "filename": "", + "type": "SAM Support vehicle" + }, + "Hawk sr": { + "name": "Hawk sr", + "coalition": "blue", + "era": "Early Cold War", + "label": "Hawk Search radar", + "shortLabel": "Hawk sr", + "range": "Long", + "filename": "", + "type": "SAM Search radar" + }, + "Hawk tr": { + "name": "Hawk tr", + "coalition": "blue", + "era": "Early Cold War", + "label": "Hawk Track radar", + "shortLabel": "Hawk tr", + "range": "Medium", + "filename": "", + "type": "SAM Track radar" + }, + "Hummer": { + "name": "Hummer", + "coalition": "blue", + "era": "Mid Cold War", + "label": "Hummer", + "shortLabel": "Hummer", + "filename": "", + "type": "Unarmed" + }, + "IKARUS Bus": { + "name": "IKARUS Bus", + "coalition": "red", + "era": "Mid Cold War", + "label": "IKARUS Bus", + "shortLabel": "IKARUS Bus", + "filename": "", + "type": "Unarmed" + }, + "Igla manpad INS": { + "name": "Igla manpad INS", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-18 Igla manpad INS", + "shortLabel": "Igla manpad INS", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "Infantry AK": { + "name": "Infantry AK", + "coalition": "red", + "era": "Mid Cold War", + "label": "Infantry AK", + "shortLabel": "Infantry AK", + "filename": "", + "type": "Infantry" + }, + "KAMAZ Truck": { + "name": "KAMAZ Truck", + "coalition": "red", + "era": "Mid Cold War", + "label": "KAMAZ Truck", + "shortLabel": "KAMAZ Truck", + "filename": "", + "type": "Unarmed" + }, + "Kub 1S91 str": { + "name": "Kub 1S91 str", + "coalition": "red", + "era": "Mid Cold War", + "label": "SA-6 Straight flush", + "shortLabel": "Kub 1S91 str", + "range": "Medium", + "filename": "", + "type": "SAM Search/Track radar" + }, + "Kub 2P25 ln": { + "name": "Kub 2P25 ln", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-6 Launcher", + "shortLabel": "Kub 2P25 ln", + "range": "Medium", + "filename": "", + "type": "SAM Launcher" + }, + "LAV-25": { + "name": "LAV-25", + "coalition": "blue", + "era": "Late Cold War", + "label": "LAV-25", + "shortLabel": "LAV-25", + "filename": "", + "type": "IFV" + }, + "LAZ Bus": { + "name": "LAZ Bus", + "coalition": "red", + "era": "Early Cold War", + "label": "LAZ Bus", + "shortLabel": "LAZ Bus", + "filename": "", + "type": "Unarmed" + }, + "Leclerc": { + "name": "Leclerc", + "coalition": "blue", + "era": "Modern", + "label": "Leclerc", + "shortLabel": "Leclerc", + "filename": "", + "type": "Tank" + }, + "Leopard-2": { + "name": "Leopard-2", + "coalition": "blue", + "era": "Late Cold War", + "label": "Leopard-2", + "shortLabel": "Leopard-2", + "filename": "", + "type": "Tank" + }, + "Leopard1A3": { + "name": "Leopard1A3", + "coalition": "blue", + "era": "Mid Cold War", + "label": "Leopard1A3", + "shortLabel": "Leopard1A3", + "filename": "", + "type": "Tank" + }, + "M 818": { + "name": "M 818", + "coalition": "blue", + "era": "Early Cold War", + "label": "M 818", + "shortLabel": "M 818", + "filename": "", + "type": "Unarmed" + }, + "M-1 Abrams": { + "name": "M-1 Abrams", + "coalition": "blue", + "era": "Late Cold War", + "label": "M-1 Abrams", + "shortLabel": "M-1 Abrams", + "filename": "", + "type": "Tank" + }, + "M-109": { + "name": "M-109", + "coalition": "blue", + "era": "Early Cold War", + "label": "M-109 Paladin", + "shortLabel": "M-109", + "filename": "", + "type": "Gun Artillery" + }, + "M-113": { + "name": "M-113", + "coalition": "blue", + "era": "Early Cold War", + "label": "M-113", + "shortLabel": "M-113", + "filename": "", + "type": "APC" + }, + "M-2 Bradley": { + "name": "M-2 Bradley", + "coalition": "blue", + "era": "Late Cold War", + "label": "M-2A2 Bradley", + "shortLabel": "M-2 Bradley", + "filename": "", + "type": "IFV" + }, + "M-60": { + "name": "M-60", + "coalition": "blue", + "era": "Early Cold War", + "label": "M-60", + "shortLabel": "M-60", + "filename": "", + "type": "Tank" + }, + "M1043 HMMWV Armament": { + "name": "M1043 HMMWV Armament", + "coalition": "blue", + "era": "Late Cold War", + "label": "HMMWV M2 Browning", + "shortLabel": "HMMWV M2", + "filename": "", + "type": "Reconnaissance" + }, + "M1045 HMMWV TOW": { + "name": "M1045 HMMWV TOW", + "coalition": "red", + "era": "Late Cold War", + "label": "HMMWV TOW", + "shortLabel": "HMMWV TOW", + "filename": "", + "type": "Reconnaissance" + }, + "M1097 Avenger": { + "name": "M1097 Avenger", + "coalition": "blue", + "era": "Modern", + "label": "M1097 Avenger", + "shortLabel": "M1097 Avenger", + "filename": "", + "type": "SAM" + }, + "M1126 Stryker ICV": { + "name": "M1126 Stryker ICV", + "coalition": "blue", + "era": "Modern", + "label": "Stryker MG", + "shortLabel": "Stryker MG", + "filename": "", + "type": "APC" + }, + "M1128 Stryker MGS": { + "name": "M1128 Stryker MGS", + "coalition": "blue", + "era": "Modern", + "label": "M1128 Stryker MGS", + "shortLabel": "M1128 Stryker MGS", + "filename": "", + "type": "SPG" + }, + "M1134 Stryker ATGM": { + "name": "M1134 Stryker ATGM", + "coalition": "blue", + "era": "Modern", + "label": "Stryker ATGM", + "shortLabel": "Stryker ATGM", + "filename": "", + "type": "IFV" + }, + "M48 Chaparral": { + "name": "M48 Chaparral", + "coalition": "blue", + "era": "Late Cold War", + "label": "M48 Chaparral", + "shortLabel": "M48 Chaparral", + "filename": "", + "type": "SAM" + }, + "M6 Linebacker": { + "name": "M6 Linebacker", + "coalition": "blue", + "era": "Late Cold War", + "label": "M6 Linebacker", + "shortLabel": "M6 Linebacker", + "filename": "", + "type": "SAM" + }, + "M978 HEMTT Tanker": { + "name": "M978 HEMTT Tanker", + "coalition": "blue", + "era": "Mid Cold War", + "label": "M978 HEMTT Tanker", + "shortLabel": "M978 HEMTT Tanker", + "filename": "", + "type": "Unarmed" + }, + "MAZ-6303": { + "name": "MAZ-6303", + "coalition": "red", + "era": "Mid Cold War", + "label": "MAZ-6303", + "shortLabel": "MAZ-6303", + "filename": "", + "type": "Unarmed" + }, + "MCV-80": { + "name": "MCV-80", + "coalition": "blue", + "era": "Late Cold War", + "label": "Warrior IFV", + "shortLabel": "Warrior", + "filename": "", + "type": "IFV" + }, + "MLRS": { + "name": "MLRS", + "coalition": "blue", + "era": "Late Cold War", + "label": "M270", + "shortLabel": "M270", + "filename": "", + "type": "Rocket Artillery" + }, + "MTLB": { + "name": "MTLB", + "coalition": "red", + "era": "Mid Cold War", + "label": "MT-LB", + "shortLabel": "MT-LB", + "filename": "", + "type": "APC" + }, + "Marder": { + "name": "Marder", + "coalition": "blue", + "era": "Late Cold War", + "label": "Marder", + "shortLabel": "Marder", + "filename": "", + "type": "IFV" + }, + "Osa 9A33 ln": { + "name": "Osa 9A33 ln", + "coalition": "red", + "era": "Mid Cold War", + "label": "SA-8 Launcher", + "shortLabel": "Osa 9A33 ln", + "range": "Short", + "filename": "", + "type": "SAM Launcher" + }, + "Paratrooper AKS-74": { + "name": "Paratrooper AKS-74", + "coalition": "red", + "era": "Modern", + "label": "Paratrooper AKS-74", + "shortLabel": "Paratrooper AKS-74", + "filename": "", + "type": "Infantry" + }, + "Paratrooper RPG-16": { + "name": "Paratrooper RPG-16", + "coalition": "red", + "era": "Modern", + "label": "Paratrooper RPG-16", + "shortLabel": "Paratrooper RPG-16", + "filename": "", + "type": "Infantry" + }, + "Patriot AMG": { + "name": "Patriot AMG", + "coalition": "blue", + "era": "Modern", + "label": "Patriot Antenna Mast Group", + "shortLabel": "Patriot AMG", + "range": "Long", + "filename": "", + "type": "SAM Support vehicle" + }, + "Patriot ECS": { + "name": "Patriot ECS", + "coalition": "blue", + "era": "Modern", + "label": "Patriot Engagement Control Station", + "shortLabel": "Patriot ECS", + "range": "Long", + "filename": "", + "type": "SAM Support vehicle" + }, + "Patriot EPP": { + "name": "Patriot EPP", + "coalition": "blue", + "era": "Late Cold War", + "label": "Patriot Electric Power Plant", + "shortLabel": "Patriot EPP", + "range": "Long", + "filename": "", + "type": "SAM Support vehicle" + }, + "Patriot cp": { + "name": "Patriot cp", + "coalition": "blue", + "era": "Late Cold War", + "label": "Patriot Command Post", + "shortLabel": "Patriot cp", + "range": "Long", + "filename": "", + "type": "SAM Support vehicle" + }, + "Patriot ln": { + "name": "Patriot ln", + "coalition": "blue", + "era": "Late Cold War", + "label": "Patriot Launcher", + "shortLabel": "Patriot ln", + "range": "Long", + "filename": "", + "type": "SAM Launcher" + }, + "Patriot site": { + "name": "Patriot site", + "coalition": "blue", + "era": "Late Cold War", + "label": "Patriot site", + "shortLabel": "Patriot site", + "range": "Long", + "filename": "", + "type": "SAM Site" + }, + "Patriot str": { + "name": "Patriot str", + "coalition": "blue", + "era": "Late Cold War", + "label": "Patriot Search/Track radar", + "shortLabel": "Patriot str", + "range": "Medium", + "filename": "", + "type": "SAM Search/Track radar" + }, + "Predator GCS": { + "name": "Predator GCS", + "coalition": "blue", + "era": "Late Cold War", + "label": "Predator GCS", + "shortLabel": "Predator GCS", + "filename": "", + "type": "Unarmed" + }, + "Predator TrojanSpirit": { + "name": "Predator TrojanSpirit", + "coalition": "blue", + "era": "Late Cold War", + "label": "Predator TrojanSpirit", + "shortLabel": "Predator TrojanSpirit", + "filename": "", + "type": "Unarmed" + }, + "RLS_19J6": { + "name": "RLS_19J6", + "coalition": "Red", + "era": "Mid Cold War", + "label": "SA-5 Thin Shield", + "shortLabel": "RLS 19J6", + "range": "Long", + "filename": "", + "type": "SAM Search radar" + }, + "RPC_5N62V": { + "name": "RPC_5N62V", + "coalition": "Red", + "era": "Mid Cold War", + "label": "SA-5 Square Pair", + "shortLabel": "RPC 5N62V", + "range": "Long", + "filename": "", + "type": "SAM Track radar" + }, + "Roland ADS": { + "name": "Roland ADS", + "coalition": "blue", + "era": "Late Cold War", + "label": "Roland ADS", + "shortLabel": "Roland ADS", + "filename": "", + "type": "SAM" + }, + "Roland Radar": { + "name": "Roland Radar", + "coalition": "blue", + "era": "Mid Cold War", + "label": "Roland Search radar", + "shortLabel": "Roland Radar", + "filename": "", + "type": "SAM Search radar" + }, + "S-200_Launcher": { + "name": "S-200_Launcher", + "coalition": "Red", + "era": "Mid Cold War", + "label": "SA-5 Launcher", + "shortLabel": "S-200 Launcher", + "range": "Long", + "filename": "", + "type": "SAM Launcher" + }, + "S-300PS 40B6M tr": { + "name": "S-300PS 40B6M tr", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 Tin Shield", + "shortLabel": "S-300PS 40B6M tr", + "range": "Long", + "filename": "", + "type": "SAM Track radar" + }, + "S-300PS 40B6MD sr": { + "name": "S-300PS 40B6MD sr", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 Clam Shell", + "shortLabel": "S-300PS 40B6MD sr", + "range": "Long", + "filename": "", + "type": "SAM Search radar" + }, + "S-300PS 54K6 cp": { + "name": "S-300PS 54K6 cp", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 Command Post", + "shortLabel": "S-300PS 54K6 cp", + "range": "Long", + "filename": "", + "type": "SAM Support vehicle" + }, + "S-300PS 5P85C ln": { + "name": "S-300PS 5P85C ln", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 Launcher (5P85C)", + "shortLabel": "S-300PS 5P85C ln", + "range": "Long", + "filename": "", + "type": "SAM Launcher" + }, + "S-300PS 5P85D ln": { + "name": "S-300PS 5P85D ln", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 Launcher (5P85D)", + "shortLabel": "S-300PS 5P85D ln", + "range": "Long", + "filename": "", + "type": "SAM Launcher" + }, + "S-300PS 64H6E sr": { + "name": "S-300PS 64H6E sr", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 Big Bird", + "shortLabel": "S-300PS 64H6E sr", + "range": "Long", + "filename": "", + "type": "SAM Search radar" + }, + "SA-10 SAM Battery": { + "name": "SA-10 SAM Battery", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-10 SAM Battery", + "shortLabel": "SA-10 SAM Battery", + "range": "Long", + "filename": "", + "type": "SAM Site" + }, + "SA-11 Buk CC 9S470M1": { + "name": "SA-11 Buk CC 9S470M1", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-11 Command Post", + "shortLabel": "SA-11 Buk CC 9S470M1", + "range": "Medium", + "filename": "", + "type": "SAM Support vehicle" + }, + "SA-11 Buk LN 9A310M1": { + "name": "SA-11 Buk LN 9A310M1", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-11 Launcher", + "shortLabel": "SA-11 Buk LN 9A310M1", + "range": "Medium", + "filename": "", + "type": "SAM Launcher" + }, + "SA-11 Buk SR 9S18M1": { + "name": "SA-11 Buk SR 9S18M1", + "coalition": "red", + "era": "Mid Cold War", + "label": "SA-11 Snown Drift", + "shortLabel": "SA-11 Buk SR 9S18M1", + "range": "Long", + "filename": "", + "type": "SAM Search radar" + }, + "SA-11 SAM Battery": { + "name": "SA-11 SAM Battery", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-11 SAM Battery", + "shortLabel": "SA-11 SAM Battery", + "range": "Medium", + "filename": "", + "type": "SAM Site" + }, + "SA-18 Igla manpad": { + "name": "SA-18 Igla manpad", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-18 Igla manpad", + "shortLabel": "SA-18 Igla manpad", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "SA-18 Igla-S manpad": { + "name": "SA-18 Igla-S manpad", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-18 Igla-S manpad", + "shortLabel": "SA-18 Igla-S manpad", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "SA-2 SAM Battery": { + "name": "SA-2 SAM Battery", + "coalition": "red", + "era": "Early Cold War", + "label": "SA-2 SAM Battery", + "shortLabel": "SA-2 SAM Battery", + "range": "Long", + "filename": "", + "type": "SAM Site" + }, + "SA-3 SAM Battery": { + "name": "SA-3 SAM Battery", + "coalition": "red", + "era": "Early Cold War", + "label": "SA-3 SAM Battery", + "shortLabel": "SA-3 SAM Battery", + "range": "Medium", + "filename": "", + "type": "SAM Site" + }, + "SA-5 SAM Battery": { + "name": "SA-5 SAM Battery", + "coalition": "Red", + "era": "Mid Cold War", + "label": "SA-5 SAM Battery", + "shortLabel": "SA-5 SAM Battery", + "range": "Long", + "filename": "", + "type": "SAM Site" + }, + "SA-6 SAM Battery": { + "name": "SA-6 SAM Battery", + "coalition": "red", + "era": "Mid Cold War", + "label": "SA-6 SAM Battery", + "shortLabel": "SA-6 SAM Battery", + "range": "Medium", + "filename": "", + "type": "SAM Site" + }, + "SA-8 Osa LD 9T217": { + "name": "SA-8 Osa LD 9T217", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-8 Osa LD 9T217", + "shortLabel": "SA-8 Osa LD 9T217", + "range": "Short", + "filename": "", + "type": "SAM" + }, + "SAU 2-C9": { + "name": "SAU 2-C9", + "coalition": "red", + "era": "Mid Cold War", + "label": "SAU Nona", + "shortLabel": "SAU Nona", + "filename": "", + "type": "Gun Artillery" + }, + "SAU Akatsia": { + "name": "SAU Akatsia", + "coalition": "red", + "era": "Mid Cold War", + "label": "SAU Akatsia", + "shortLabel": "SAU Akatsia", + "filename": "", + "type": "Gun Artillery" + }, + "SAU Gvozdika": { + "name": "SAU Gvozdika", + "coalition": "red", + "era": "Mid Cold War", + "label": "SAU Gvozdika", + "shortLabel": "SAU Gvozdika", + "filename": "", + "type": "Gun Artillery" + }, + "SAU Msta": { + "name": "SAU Msta", + "coalition": "red", + "era": "Late Cold War", + "label": "SAU Msta", + "shortLabel": "SAU Msta", + "filename": "", + "type": "Gun Artillery" + }, + "SKP-11": { + "name": "SKP-11", + "coalition": "red", + "era": "Early Cold War", + "label": "SKP-11", + "shortLabel": "SKP-11", + "filename": "", + "type": "Unarmed" + }, + "SNR_75V": { + "name": "SNR_75V", + "coalition": "Red", + "era": "Early Cold War", + "label": "SA-2 Fan Song", + "shortLabel": "SNR 75V", + "filename": "", + "type": "SAM Track radar" + }, + "S_75M_Volhov": { + "name": "S_75M_Volhov", + "coalition": "Red", + "era": "Early Cold War", + "label": "SA-2 Launcher", + "shortLabel": "S75M Volhov", + "filename": "", + "type": "SAM Launcher" + }, + "Sandbox": { + "name": "Sandbox", + "coalition": "", + "era": "", + "label": "Sandbox", + "shortLabel": "Sandbox", + "filename": "", + "type": "Static" + }, + "Smerch": { + "name": "Smerch", + "coalition": "red", + "era": "Late Cold War", + "label": "Smerch", + "shortLabel": "Smerch", + "filename": "", + "type": "Rocket Artillery" + }, + "Soldier AK": { + "name": "Soldier AK", + "coalition": "red", + "era": "Early Cold War", + "label": "Soldier AK", + "shortLabel": "Soldier AK", + "filename": "", + "type": "Infantry" + }, + "Soldier M249": { + "name": "Soldier M249", + "coalition": "blue", + "era": "Late Cold War", + "label": "Soldier M249", + "shortLabel": "Soldier M249", + "filename": "", + "type": "Infantry" + }, + "Soldier M4 GRG": { + "name": "Soldier M4 GRG", + "coalition": "blue", + "era": "Mid Cold War", + "label": "Soldier M4 GRG", + "shortLabel": "Soldier M4 GRG", + "filename": "", + "type": "Infantry" + }, + "Soldier M4": { + "name": "Soldier M4", + "coalition": "blue", + "era": "Mid Cold War", + "label": "Soldier M4", + "shortLabel": "Soldier M4", + "filename": "", + "type": "Infantry" + }, + "Soldier RPG": { + "name": "Soldier RPG", + "coalition": "red", + "era": "Mid Cold War", + "label": "Soldier RPG", + "shortLabel": "Soldier RPG", + "filename": "", + "type": "Infantry" + }, + "Stinger comm dsr": { + "name": "Stinger comm dsr", + "coalition": "red", + "era": "Late Cold War", + "label": "Stinger comm dsr", + "shortLabel": "Stinger comm dsr", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "Stinger comm": { + "name": "Stinger comm", + "coalition": "blue", + "era": "Late Cold War", + "label": "Stinger comm", + "shortLabel": "Stinger comm", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "Stinger manpad GRG": { + "name": "Stinger manpad GRG", + "coalition": "blue", + "era": "Late Cold War", + "label": "Stinger manpad GRG", + "shortLabel": "Stinger manpad GRG", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "Stinger manpad dsr": { + "name": "Stinger manpad dsr", + "coalition": "blue", + "era": "Late Cold War", + "label": "Stinger manpad dsr", + "shortLabel": "Stinger manpad dsr", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "Stinger manpad": { + "name": "Stinger manpad", + "coalition": "blue", + "era": "Late Cold War", + "label": "Stinger manpad", + "shortLabel": "Stinger manpad", + "range": "Short", + "filename": "", + "type": "MANPADS" + }, + "Strela-1 9P31": { + "name": "Strela-1 9P31", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-9 Strela-1 9P31", + "shortLabel": "Strela-1 9P31", + "range": "Short", + "filename": "", + "type": "SAM" + }, + "Strela-10M3": { + "name": "Strela-10M3", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-13 Strela-10M3", + "shortLabel": "Strela-10M3", + "range": "Short", + "filename": "", + "type": "SAM" + }, + "Suidae": { + "name": "Suidae", + "coalition": "", + "era": "Modern", + "label": "Suidae", + "shortLabel": "Suidae", + "filename": "", + "type": "Unarmed" + }, + "T-55": { + "name": "T-55", + "coalition": "red", + "era": "Early Cold War", + "label": "T-55", + "shortLabel": "T-55", + "filename": "", + "type": "Tank" + }, + "T-72B": { + "name": "T-72B", + "coalition": "red", + "era": "Mid Cold War", + "label": "T-72B", + "shortLabel": "T-72B", + "filename": "", + "type": "Tank" + }, + "T-80UD": { + "name": "T-80UD", + "coalition": "red", + "era": "Mid Cold War", + "label": "T-80UD", + "shortLabel": "T-80UD", + "filename": "", + "type": "Tank" + }, + "T-90": { + "name": "T-90", + "coalition": "red", + "era": "Late Cold War", + "label": "T-90", + "shortLabel": "T-90", + "filename": "", + "type": "Tank" + }, + "TPZ": { + "name": "TPZ", + "coalition": "blue", + "era": "Late Cold War", + "label": "TPz Fuchs", + "shortLabel": "TPz Fuchs", + "filename": "", + "type": "APC" + }, + "Tigr_233036": { + "name": "Tigr_233036", + "coalition": "red", + "era": "Late Cold War", + "label": "Tigr_233036", + "shortLabel": "Tigr_233036", + "filename": "", + "type": "Unarmed" + }, + "Tor 9A331": { + "name": "Tor 9A331", + "coalition": "red", + "era": "Late Cold War", + "label": "SA-15 Tor 9A331", + "shortLabel": "Tor 9A331", + "range": "Medium", + "filename": "", + "type": "SAM" + }, + "Trolley bus": { + "name": "Trolley bus", + "coalition": "blue", + "era": "Late Cold War", + "label": "Trolley bus", + "shortLabel": "Trolley bus", + "filename": "", + "type": "Unarmed" + }, + "UAZ-469": { + "name": "UAZ-469", + "coalition": "red", + "era": "Mid Cold War", + "label": "UAZ-469", + "shortLabel": "UAZ-469", + "filename": "", + "type": "Unarmed" + }, + "Uragan_BM-27": { + "name": "Uragan_BM-27", + "coalition": "red", + "era": "Late Cold War", + "label": "Uragan", + "shortLabel": "Uragan", + "filename": "", + "type": "Rocket Artillery" + }, + "Ural ATsP-6": { + "name": "Ural ATsP-6", + "coalition": "red", + "era": "Mid Cold War", + "label": "Ural ATsP-6", + "shortLabel": "Ural ATsP-6", + "filename": "", + "type": "Unarmed" + }, + "Ural-375 PBU": { + "name": "Ural-375 PBU", + "coalition": "red", + "era": "Mid Cold War", + "label": "Ural-375 PBU", + "shortLabel": "Ural-375 PBU", + "filename": "", + "type": "Unarmed" + }, + "Ural-375 ZU-23 Insurgent": { + "name": "Ural-375 ZU-23 Insurgent", + "coalition": "red", + "era": "Early Cold War", + "label": "Ural-375 ZU-23 Insurgent", + "shortLabel": "Ural-375 ZU-23 Insurgent", + "filename": "", + "type": "AAA" + }, + "Ural-375 ZU-23": { + "name": "Ural-375 ZU-23", + "coalition": "red", + "era": "Early Cold War", + "label": "Ural-375 ZU-23", + "shortLabel": "Ural-375 ZU-23", + "filename": "", + "type": "AAA" + }, + "Ural-375": { + "name": "Ural-375", + "coalition": "red", + "era": "Mid Cold War", + "label": "Ural-375", + "shortLabel": "Ural-375", + "filename": "", + "type": "Unarmed" + }, + "Ural-4320 APA-5D": { + "name": "Ural-4320 APA-5D", + "coalition": "red", + "era": "Early Cold War", + "label": "Ural-4320 APA-5D", + "shortLabel": "Ural-4320 APA-5D", + "filename": "", + "type": "Unarmed" + }, + "Ural-4320-31": { + "name": "Ural-4320-31", + "coalition": "red", + "era": "Late Cold War", + "label": "Ural-4320-31", + "shortLabel": "Ural-4320-31", + "filename": "", + "type": "Unarmed" + }, + "Ural-4320T": { + "name": "Ural-4320T", + "coalition": "red", + "era": "Late Cold War", + "label": "Ural-4320T", + "shortLabel": "Ural-4320T", + "filename": "", + "type": "Unarmed" + }, + "VAZ Car": { + "name": "VAZ Car", + "coalition": "red", + "era": "Early Cold War", + "label": "VAZ Car", + "shortLabel": "VAZ Car", + "filename": "", + "type": "Unarmed" + }, + "Vulcan": { + "name": "Vulcan", + "coalition": "blue", + "era": "Late Cold War", + "label": "Vulcan", + "shortLabel": "Vulcan", + "filename": "", + "type": "AAA" + }, + "ZIL-131 KUNG": { + "name": "ZIL-131 KUNG", + "coalition": "red", + "era": "Early Cold War", + "label": "ZIL-131 KUNG", + "shortLabel": "ZIL-131 KUNG", + "filename": "", + "type": "Unarmed" + }, + "ZIL-4331": { + "name": "ZIL-4331", + "coalition": "red", + "era": "Early Cold War", + "label": "ZIL-4331", + "shortLabel": "ZIL-4331", + "filename": "", + "type": "Unarmed" + }, + "ZSU-23-4 Shilka": { + "name": "ZSU-23-4 Shilka", + "coalition": "red", + "era": "Late Cold War", + "label": "ZSU-23-4 Shilka", + "shortLabel": "ZSU-23-4 Shilka", + "filename": "", + "type": "AAA" + }, + "ZU-23 Closed Insurgent": { + "name": "ZU-23 Closed Insurgent", + "coalition": "red", + "era": "Early Cold War", + "label": "ZU-23 Closed Insurgent", + "shortLabel": "ZU-23 Closed Insurgent", + "filename": "", + "type": "AAA" + }, + "ZU-23 Emplacement Closed": { + "name": "ZU-23 Emplacement Closed", + "coalition": "red", + "era": "Early Cold War", + "label": "ZU-23 Emplacement Closed", + "shortLabel": "ZU-23 Emplacement Closed", + "filename": "", + "type": "AAA" + }, + "ZU-23 Emplacement": { + "name": "ZU-23 Emplacement", + "coalition": "red", + "era": "Early Cold War", + "label": "ZU-23 Emplacement", + "shortLabel": "ZU-23 Emplacement", + "filename": "", + "type": "AAA" + }, + "ZU-23 Insurgent": { + "name": "ZU-23 Insurgent", + "coalition": "red", + "era": "Early Cold War", + "label": "ZU-23 Insurgent", + "shortLabel": "ZU-23 Insurgent", + "filename": "", + "type": "AAA" + }, + "ZiL-131 APA-80": { + "name": "ZiL-131 APA-80", + "coalition": "red", + "era": "Early Cold War", + "label": "ZiL-131 APA-80", + "shortLabel": "ZiL-131 APA-80", + "filename": "", + "type": "Unarmed" + }, + "house1arm": { + "name": "house1arm", + "coalition": "", + "era": "", + "label": "house1arm", + "shortLabel": "house1arm", + "filename": "", + "type": "Structure" + }, + "house2arm": { + "name": "house2arm", + "coalition": "", + "era": "", + "label": "house2arm", + "shortLabel": "house2arm", + "filename": "", + "type": "Structure" + }, + "houseA_arm": { + "name": "houseA_arm", + "coalition": "", + "era": "", + "label": "houseA_arm", + "shortLabel": "houseA_arm", + "filename": "", + "type": "Structure" + }, + "outpost": { + "name": "outpost", + "coalition": "", + "era": "", + "label": "outpost", + "shortLabel": "outpost", + "filename": "", + "type": "Structure" + }, + "outpost_road": { + "name": "outpost_road", + "coalition": "", + "era": "", + "label": "outpost_road", + "shortLabel": "outpost_road", + "filename": "", + "type": "Structure" + }, + "p-19 s-125 sr": { + "name": "p-19 s-125 sr", + "coalition": "red", + "era": "Mid Cold War", + "label": "SA-3 Flat Face B", + "shortLabel": "Flat Face B", + "filename": "", + "type": "SAM Search radar" + }, + "snr s-125 tr": { + "name": "snr s-125 tr", + "coalition": "red", + "era": "Early Cold War", + "label": "SA-3 Low Blow", + "shortLabel": "snr s-125 tr", + "range": "Medium", + "filename": "", + "type": "SAM Track radar" + } +} \ No newline at end of file diff --git a/client/public/databases/helicopterdatabase.json b/client/public/databases/helicopterdatabase.json new file mode 100644 index 00000000..33d832f3 --- /dev/null +++ b/client/public/databases/helicopterdatabase.json @@ -0,0 +1,565 @@ +{ + "AH-1W": { + "name": "AH-1W", + "coalition": "blue", + "era": "Mid Cold War", + "label": "AH-1W Cobra", + "shortLabel": "AH1", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "BGM-71 TOW", + "quantity": 8 + }, + { + "name": "Hydra-70 WP", + "quantity": 38 + } + ], + "roles": [ + "CAS" + ], + "code": "8xBGM-71, 38xHYDRA-70 WP", + "name": "TOW / Hydra" + }, + { + "fuel": 1, + "items": [ + { + "name": "Hydra-70", + "quantity": 76 + } + ], + "roles": [ + "CAS" + ], + "code": "76xHYDRA-70", + "name": "Hydra" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "ah-1.png" + }, + "AH-64D_BLK_II": { + "name": "AH-64D_BLK_II", + "coalition": "blue", + "era": "Modern", + "label": "AH-64D Apache", + "shortLabel": "AH64", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AGM-114k Hellfire", + "quantity": 8 + }, + { + "name": "M151 Rocket Pod", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "2 * M261: M151 (6PD), 2 * Hellfire station: 4*AGM-114K", + "name": "Gun / ATGM / Rocket" + }, + { + "fuel": 1, + "items": [ + { + "name": "AGM-114K Hellfire", + "quantity": 16 + } + ], + "roles": [ + "CAS" + ], + "code": "4 * Hellfire station: 4*AGM-114K", + "name": "Gun / ATGM" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "ah-64.png" + }, + "Ka-50_3": { + "name": "Ka-50_3", + "coalition": "red", + "era": "Late Cold War", + "label": "Ka-50 Hokum A", + "shortLabel": "K50", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Igla", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "4xIgla", + "name": "Gun / Fox 2" + }, + { + "fuel": 1, + "items": [ + { + "name": "Igla", + "quantity": 4 + }, + { + "name": "S-13", + "quantity": 10 + }, + { + "name": "Kh-25ML", + "quantity": 2 + } + ], + "roles": [ + "Anti-Ship" + ], + "code": "2xKh-25ML, 10xS-13, 4xIgla", + "name": "Gun / ASM / Rockets / Fox 2" + }, + { + "fuel": 1, + "items": [ + { + "name": "Igla", + "quantity": 4 + }, + { + "name": "S-80FP", + "quantity": 40 + }, + { + "name": "Vikhr-M", + "quantity": 12 + } + ], + "roles": [ + "CAS" + ], + "code": "12x9A4172, 40xS-8OFP, 4xIgla", + "name": "Gun / ATGM / Rockets / Fox 2" + }, + { + "fuel": 1, + "items": [ + { + "name": "Igla", + "quantity": 4 + }, + { + "name": "S-80FP", + "quantity": 40 + }, + { + "name": "Vikhr-M", + "quantity": 12 + } + ], + "roles": [ + "CAS" + ], + "code": "12x9A4172, 40xS-8OFP, 4xIgla", + "name": "Gun / ATGM" + }, + { + "fuel": 1, + "items": [ + { + "name": "Igla", + "quantity": 4 + }, + { + "name": "FAB-500", + "quantity": 2 + }, + { + "name": "S-13", + "quantity": 10 + } + ], + "roles": [ + "Strike" + ], + "code": "10xS-13, 2xFAB-500, 4xIgla", + "name": "Gun / Bombs / Rockets / Fox 2" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "ka-50.png" + }, + "Mi-24P": { + "name": "Mi-24P", + "coalition": "red", + "era": "Mid Cold War", + "label": "Mi-24P Hind", + "shortLabel": "Mi24", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "S-8KOM", + "quantity": 40 + }, + { + "name": "9M114 ATGM", + "quantity": 8 + } + ], + "roles": [ + "CAS" + ], + "code": "2xB8V20 (S-8KOM)+8xATGM 9M114", + "name": "Gun / ATGM / Rockets" + }, + { + "fuel": 1, + "items": [ + { + "name": "S-24B", + "quantity": 4 + }, + { + "name": "9M114 ATGM", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "4xS-24B+4xATGM 9M114", + "name": "Gun / ATGM / Rockets" + }, + { + "fuel": 1, + "items": [ + { + "name": "GUV-1 Grenade Launcher", + "quantity": 4 + }, + { + "name": "9M114 ATGM", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "4xGUV-1 AP30+4xATGM 9M114", + "name": "Gun / ATGM / Grenade Launcher" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mi-24.png" + }, + "Mi-26": { + "name": "Mi-26", + "coalition": "red", + "era": "Late Cold War", + "label": "Mi-26 Halo", + "shortLabel": "M26", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mi-26.png" + }, + "Mi-28N": { + "name": "Mi-28N", + "coalition": "red", + "era": "Modern", + "label": "Mi-28N Havoc", + "shortLabel": "M28", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "9M114 Shturm", + "quantity": 16 + }, + { + "name": "S-8", + "quantity": 40 + } + ], + "roles": [ + "CAS" + ], + "code": "16x9M114, 40xS-8", + "name": "ATGM / S-8" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mi-28.png" + }, + "Mi-8MT": { + "name": "Mi-8MT", + "coalition": "red", + "era": "Mid Cold War", + "label": "Mi-8MT Hip", + "shortLabel": "Mi8", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "UPK", + "quantity": 2 + }, + { + "name": "B8", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "2 x UPK +2 x B8", + "name": "Rockets / Gunpods" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mi-8.png" + }, + "SA342L": { + "name": "SA342L", + "coalition": "blue", + "era": "Mid Cold War", + "label": "SA342L Gazelle", + "shortLabel": "342", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "20mm Cannon", + "quantity": 1 + }, + { + "name": "SNEB68", + "quantity": 8 + } + ], + "roles": [ + "Recon" + ], + "code": "M621, 8xSNEB68 EAP", + "name": "Gun / ATGM / Rockets" + } + ], + "filename": "sa-342.png" + }, + "SA342M": { + "name": "SA342M", + "coalition": "blue", + "era": "Mid Cold War", + "label": "SA342M Gazelle", + "shortLabel": "342", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "HOT3", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "HOT3x4", + "name": "ATGM" + } + ], + "filename": "sa-342.png" + }, + "SA342Mistral": { + "name": "SA342Mistral", + "coalition": "blue", + "era": "Mid Cold War", + "label": "SA342Mistral Gazelle", + "shortLabel": "342", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Mistral", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "Mistral x 4", + "name": "Fox 2" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "sa-342.png" + }, + "SH-60B": { + "name": "SH-60B", + "coalition": "blue", + "era": "Mid Cold War", + "label": "SH-60B Seahawk", + "shortLabel": "S60", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AGM-119 ASM", + "quantity": 1 + } + ], + "roles": [ + "CAS" + ], + "code": "AGM-119", + "name": "ASM" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "uh-60.png" + }, + "UH-1H": { + "name": "UH-1H", + "coalition": "blue", + "era": "Early Cold War", + "label": "UH-1H Huey", + "shortLabel": "UH1", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "M134 Minigun", + "quantity": 2 + }, + { + "name": "XM-158", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "M134 Minigun*2, XM158*2", + "name": "Miniguns / XM158" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "uh-1.png" + }, + "UH-60A": { + "name": "UH-60A", + "coalition": "blue", + "era": "Mid Cold War", + "label": "UH-60A Blackhawk", + "shortLabel": "U60", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "uh-60.png" + } +} \ No newline at end of file diff --git a/client/public/databases/navyunitdatabase.json b/client/public/databases/navyunitdatabase.json new file mode 100644 index 00000000..754ed08b --- /dev/null +++ b/client/public/databases/navyunitdatabase.json @@ -0,0 +1,452 @@ +{ + "BDK-775": { + "name": "BDK-775", + "coalition": "blue", + "type": "Landing Craft", + "era": "Mid Cold War", + "label": "LS Ropucha", + "shortLabel": "LS Ropucha", + "range": "", + "filename": "" + }, + "Boat Armed Hi-Speed": { + "name": "Boat Armed Hi-Speed", + "coalition": "", + "type": "Fast Attack Craft", + "era": "Mid Cold War", + "label": "Boat Armed Hi-Speed", + "shortLabel": "Boat Armed Hi-Speed", + "range": "", + "filename": "" + }, + "CVN_71": { + "name": "CVN_71", + "coalition": "blue", + "type": "Super Aircraft Carrier", + "era": "Late Cold War", + "label": "CVN-71 Theodore Roosevelt", + "shortLabel": "CVN-71", + "range": "Short", + "filename": "" + }, + "CVN_72": { + "name": "CVN_72", + "coalition": "blue", + "type": "Super Aircraft Carrier", + "era": "Late Cold War", + "label": "CVN-72 Abraham Lincoln", + "shortLabel": "CVN-72", + "range": "Short", + "filename": "" + }, + "CVN_73": { + "name": "CVN_73", + "coalition": "blue", + "type": "Super Aircraft Carrier", + "era": "Late Cold War", + "label": "CVN-73 George Washington", + "shortLabel": "CVN-73", + "range": "Medium", + "filename": "" + }, + "CVN_75": { + "name": "CVN_75", + "coalition": "blue", + "type": "Aircraft Carrier", + "era": "Late Cold War", + "label": "CVN-75 Harry S. Truman", + "shortLabel": "CVN-75", + "range": "Medium", + "filename": "" + }, + "CV_1143_5": { + "name": "CV_1143_5", + "coalition": "red", + "type": "Aircraft Carrier", + "era": "Modern", + "label": "CV Admiral Kuznetsov(2017)", + "shortLabel": "Admiral Kuznetsov(2017)", + "range": "Medium", + "filename": "" + }, + "CV_59": { + "name": "CV_59", + "coalition": "blue", + "type": "Aircraft Carrier", + "era": "Early Cold War", + "label": "CV-59 Forrestal", + "shortLabel": "CV-59", + "range": "Short", + "filename": "" + }, + "CastleClass_01": { + "name": "CastleClass_01", + "coalition": "blue", + "type": "Patrol", + "era": "Mid Cold War", + "label": "HMS Leeds Castle (P-258)", + "shortLabel": "HMS Leeds Castle (P-258)", + "range": "", + "filename": "" + }, + "HandyWind": { + "name": "HandyWind", + "coalition": "blue", + "type": "Cargoship", + "era": "Late Cold War", + "label": "Bulker Handy Wind", + "shortLabel": "Bulker Handy Wind", + "range": "", + "filename": "" + }, + "HarborTug": { + "name": "HarborTug", + "coalition": "", + "type": "Tug", + "era": "Mid Cold War", + "label": "Harbor Tug", + "shortLabel": "Harbor Tug", + "range": "", + "filename": "" + }, + "LHA_Tarawa": { + "name": "LHA_Tarawa", + "coalition": "blue", + "type": "Aircraft Carrier", + "era": "Mid Cold War", + "label": "LHA-1 Tarawa", + "shortLabel": "LHA-1 Tarawa", + "range": "Short", + "filename": "" + }, + "La_Combattante_II": { + "name": "La_Combattante_II", + "coalition": "blue", + "type": "Fast Attack Craft", + "era": "Mid Cold War", + "label": "FAC La Combattante lla", + "shortLabel": "FAC La Combattante", + "range": "", + "filename": "" + }, + "Seawise_Giant": { + "name": "Seawise_Giant", + "coalition": "blue", + "type": "Tanker", + "era": "Late Cold War", + "label": "Tanker Seawise Giant", + "shortLabel": "Seawise Giant", + "range": "", + "filename": "" + }, + "Ship_Tilde_Supply": { + "name": "Ship_Tilde_Supply", + "coalition": "blue", + "type": "Transport", + "era": "Late Cold War", + "label": "Supply Ship MV Tilde", + "shortLabel": "Supply Ship Tilde", + "range": "", + "filename": "" + }, + "Stennis": { + "name": "Stennis", + "coalition": "blue", + "type": "Aircraft Carrier", + "era": "Late Cold War", + "label": "CVN-74 John C. Stennis", + "shortLabel": "CVN-74", + "range": "Medium", + "filename": "" + }, + "TICONDEROG": { + "name": "TICONDEROG", + "coalition": "blue", + "type": "Cruiser", + "era": "Late Cold War", + "label": "Ticonderoga", + "shortLabel": "Ticonderoga", + "range": "Medium", + "filename": "" + }, + "Type_052B": { + "name": "Type_052B", + "coalition": "red", + "type": "Destroyer", + "era": "Modern", + "label": "052B DDG-168 Guangzhou", + "shortLabel": "Type 52B", + "range": "Short", + "filename": "" + }, + "Type_052C": { + "name": "Type_052C", + "coalition": "red", + "type": "Destroyer", + "era": "Modern", + "label": "052C DDG-171 Haikou", + "shortLabel": "Type 52C", + "range": "Short", + "filename": "" + }, + "Type_054A": { + "name": "", + "coalition": "red", + "type": "Frigate", + "era": "Modern", + "label": "054A FFG-538 Yantai", + "shortLabel": "Type 54A", + "range": "Medium", + "filename": "" + }, + "Type_071": { + "name": "Type_071", + "coalition": "red", + "type": "Transport", + "era": "Modern", + "label": "Type 071", + "shortLabel": "Type 071", + "range": "", + "filename": "" + }, + "Type_093": { + "name": "Type_093", + "coalition": "red", + "type": "Submarine", + "era": "Modern", + "label": "Type 093", + "shortLabel": "Type 093", + "range": "", + "filename": "" + }, + "USS_Arleigh_Burke_IIa": { + "name": "USS_Arleigh_Burke_IIa", + "coalition": "blue", + "type": "Destroyer", + "era": "Late Cold War", + "label": "DDG Arleigh Burke lla", + "shortLabel": "DDG Arleigh Burke", + "range": "Medium", + "filename": "" + }, + "albatros": { + "name": "albatros", + "coalition": "red", + "type": "Aircraft Carrier", + "era": "Early Cold War", + "label": "Albatros (Grisha-5)", + "shortLabel": "Albatros", + "range": "", + "filename": "" + }, + "ara_vdm": { + "name": "ara_vdm", + "coalition": "", + "type": "Aircraft Carrier", + "era": "Mid Cold War", + "label": "ARA Vienticinco de Mayo", + "shortLabel": "ARA Vienticinco de Mayo", + "range": "", + "filename": "" + }, + "barge-1": { + "name": "barge-1", + "coalition": "red", + "type": "Cargoship", + "era": "Late Cold War", + "label": "Dry cargo ship Ivanov", + "shortLabel": "Dry cargo ship Ivanov", + "range": "", + "filename": "" + }, + "barge-2": { + "name": "barge-2", + "coalition": "red", + "type": "Cargoship", + "era": "Late Cold War", + "label": "Dry cargo ship Yakushev", + "shortLabel": "Dry cargo ship Yakushev", + "range": "", + "filename": "" + }, + "elnya": { + "name": "elnya", + "coalition": "red", + "type": "Tanker", + "era": "Late Cold War", + "label": "Elnya tanker", + "shortLabel": "Elnya tanker", + "range": "", + "filename": "" + }, + "hms_invincible": { + "name": "hms_invincible", + "coalition": "blue", + "type": "Aircraft Carrier", + "era": "Mid Cold War", + "label": "HMS Invincible (R05)", + "shortLabel": "HMS Invincible", + "range": "", + "filename": "" + }, + "kilo": { + "name": "kilo", + "coalition": "red", + "type": "Submarine", + "era": "Late Cold War", + "label": "Project 636 Varshavyanka Basic", + "shortLabel": "Varshavyanka Basic", + "range": "Medium", + "filename": "" + }, + "kilo_636": { + "name": "kilo_636", + "coalition": "red", + "type": "Submarine", + "era": "Late Cold War", + "label": "Project 636 Varshavyanka Improved", + "shortLabel": "Varshavyanka Improved", + "range": "Medium", + "filename": "" + }, + "kuznecow": { + "name": "kuznecow", + "coalition": "red", + "type": "Aircraft Carrier", + "era": "Late Cold War", + "label": "Admiral Kuznetsov", + "shortLabel": "Admiral Kuznetsov", + "range": "Medium", + "filename": "" + }, + "leander-gun-achilles": { + "name": "leander-gun-achilles", + "coalition": "blue", + "type": "Frigate", + "era": "Mid Cold War", + "label": "HMS Achilles (F12)", + "shortLabel": "HMS Achilles", + "range": "", + "filename": "" + }, + "leander-gun-andromeda": { + "name": "leander-gun-andromeda", + "coalition": "blue", + "type": "Frigate", + "era": "Mid Cold War", + "label": "HMS Andromeda (F57)", + "shortLabel": "HMS Andromeda", + "range": "", + "filename": "" + }, + "leander-gun-ariadne": { + "name": "leander-gun-ariadne", + "coalition": "blue", + "type": "Frigate", + "era": "Mid Cold War", + "label": "HMS Ariadne (F72)", + "shortLabel": "HMS Ariadne", + "range": "", + "filename": "" + }, + "leander-gun-condell": { + "name": "leander-gun-condell", + "coalition": "", + "type": "Frigate", + "era": "Mid Cold War", + "label": "Almirante Condell PFG-06", + "shortLabel": "Almirante Condell", + "range": "", + "filename": "" + }, + "leander-gun-lynch": { + "name": "leander-gun-lynch", + "coalition": "", + "type": "Frigate", + "era": "Mid Cold War", + "label": "CNS Almirante Lynch (PFG-07)", + "shortLabel": "CNS Almirante Lynch", + "range": "", + "filename": "" + }, + "molniya": { + "name": "molniya", + "coalition": "", + "type": "Fast Attack Craft", + "era": "Late Cold War", + "label": "Molniya (Tarantul-3)", + "shortLabel": "Molniya", + "range": "Short", + "filename": "" + }, + "moscow": { + "name": "moscow", + "coalition": "red", + "type": "Cruiser", + "era": "Late Cold War", + "label": "Moscow", + "shortLabel": "Moscow", + "range": "Medium", + "filename": "" + }, + "neustrash": { + "name": "neustrash", + "coalition": "red", + "type": "Frigate", + "era": "Late Cold War", + "label": "Neustrashimy", + "shortLabel": "Neustrashimy", + "range": "Short", + "filename": "" + }, + "perry": { + "name": "perry", + "coalition": "blue", + "type": "Frigate", + "era": "Mid Cold War", + "label": "Oliver H. Perry", + "shortLabel": "Oliver H. Perry", + "range": "Medium", + "filename": "" + }, + "piotr_velikiy": { + "name": "piotr_velikiy", + "coalition": "red", + "type": "Cruiser", + "era": "Late Cold War", + "label": "Pyotr Velikiy", + "shortLabel": "Pyotr Velikiy", + "range": "Medium", + "filename": "" + }, + "rezky": { + "name": "Rezky (Krivak-2)", + "coalition": "red", + "type": "Frigate", + "era": "Early Cold War", + "label": "Rezky (Krivak-2)", + "shortLabel": "Rezky", + "range": "Short", + "filename": "" + }, + "santafe": { + "name": "santafe", + "coalition": "", + "type": "Submarine", + "era": "Early Cold War", + "label": "ARA Santa Fe S-21", + "shortLabel": "ARA Santa", + "range": "", + "filename": "" + }, + "zwezdny": { + "name": "zwezdny", + "coalition": "", + "type": "Civilian Boat", + "era": "Modern", + "label": "Zwezdny", + "shortLabel": "Zwezdny", + "range": "", + "filename": "" + } +} \ No newline at end of file diff --git a/client/public/images/countries/ac.svg b/client/public/images/countries/ac.svg new file mode 100644 index 00000000..1a6d5080 --- /dev/null +++ b/client/public/images/countries/ac.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ad.svg b/client/public/images/countries/ad.svg new file mode 100644 index 00000000..3793d99a --- /dev/null +++ b/client/public/images/countries/ad.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ae.svg b/client/public/images/countries/ae.svg new file mode 100644 index 00000000..b7acdbdb --- /dev/null +++ b/client/public/images/countries/ae.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/af.svg b/client/public/images/countries/af.svg new file mode 100644 index 00000000..417dd047 --- /dev/null +++ b/client/public/images/countries/af.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ag.svg b/client/public/images/countries/ag.svg new file mode 100644 index 00000000..250b5012 --- /dev/null +++ b/client/public/images/countries/ag.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ai.svg b/client/public/images/countries/ai.svg new file mode 100644 index 00000000..cf91b39b --- /dev/null +++ b/client/public/images/countries/ai.svg @@ -0,0 +1,758 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/al.svg b/client/public/images/countries/al.svg new file mode 100644 index 00000000..b69ae195 --- /dev/null +++ b/client/public/images/countries/al.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/am.svg b/client/public/images/countries/am.svg new file mode 100644 index 00000000..99fa4dc5 --- /dev/null +++ b/client/public/images/countries/am.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/ao.svg b/client/public/images/countries/ao.svg new file mode 100644 index 00000000..4dc39f6a --- /dev/null +++ b/client/public/images/countries/ao.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/aq.svg b/client/public/images/countries/aq.svg new file mode 100644 index 00000000..53840ccc --- /dev/null +++ b/client/public/images/countries/aq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/ar.svg b/client/public/images/countries/ar.svg new file mode 100644 index 00000000..364fca8f --- /dev/null +++ b/client/public/images/countries/ar.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/arab.svg b/client/public/images/countries/arab.svg new file mode 100644 index 00000000..c45e3d20 --- /dev/null +++ b/client/public/images/countries/arab.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/as.svg b/client/public/images/countries/as.svg new file mode 100644 index 00000000..b974013a --- /dev/null +++ b/client/public/images/countries/as.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/at.svg b/client/public/images/countries/at.svg new file mode 100644 index 00000000..c2825088 --- /dev/null +++ b/client/public/images/countries/at.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/au.svg b/client/public/images/countries/au.svg new file mode 100644 index 00000000..407fef43 --- /dev/null +++ b/client/public/images/countries/au.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/aw.svg b/client/public/images/countries/aw.svg new file mode 100644 index 00000000..32cabd54 --- /dev/null +++ b/client/public/images/countries/aw.svg @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ax.svg b/client/public/images/countries/ax.svg new file mode 100644 index 00000000..0584d713 --- /dev/null +++ b/client/public/images/countries/ax.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/az.svg b/client/public/images/countries/az.svg new file mode 100644 index 00000000..8e56ef53 --- /dev/null +++ b/client/public/images/countries/az.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/ba.svg b/client/public/images/countries/ba.svg new file mode 100644 index 00000000..fcd18914 --- /dev/null +++ b/client/public/images/countries/ba.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/bb.svg b/client/public/images/countries/bb.svg new file mode 100644 index 00000000..263bdec0 --- /dev/null +++ b/client/public/images/countries/bb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/bd.svg b/client/public/images/countries/bd.svg new file mode 100644 index 00000000..16b794de --- /dev/null +++ b/client/public/images/countries/bd.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/be.svg b/client/public/images/countries/be.svg new file mode 100644 index 00000000..327f28fa --- /dev/null +++ b/client/public/images/countries/be.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/bf.svg b/client/public/images/countries/bf.svg new file mode 100644 index 00000000..47138225 --- /dev/null +++ b/client/public/images/countries/bf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/bg.svg b/client/public/images/countries/bg.svg new file mode 100644 index 00000000..b100dd0d --- /dev/null +++ b/client/public/images/countries/bg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/bh.svg b/client/public/images/countries/bh.svg new file mode 100644 index 00000000..7a2ea549 --- /dev/null +++ b/client/public/images/countries/bh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/bi.svg b/client/public/images/countries/bi.svg new file mode 100644 index 00000000..1050838b --- /dev/null +++ b/client/public/images/countries/bi.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bj.svg b/client/public/images/countries/bj.svg new file mode 100644 index 00000000..0846724d --- /dev/null +++ b/client/public/images/countries/bj.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bl.svg b/client/public/images/countries/bl.svg new file mode 100644 index 00000000..819afc11 --- /dev/null +++ b/client/public/images/countries/bl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/bm.svg b/client/public/images/countries/bm.svg new file mode 100644 index 00000000..a4dbc728 --- /dev/null +++ b/client/public/images/countries/bm.svg @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bn.svg b/client/public/images/countries/bn.svg new file mode 100644 index 00000000..f906abfe --- /dev/null +++ b/client/public/images/countries/bn.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bo.svg b/client/public/images/countries/bo.svg new file mode 100644 index 00000000..17a0a0c1 --- /dev/null +++ b/client/public/images/countries/bo.svg @@ -0,0 +1,676 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bq.svg b/client/public/images/countries/bq.svg new file mode 100644 index 00000000..0e6bc76e --- /dev/null +++ b/client/public/images/countries/bq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/br.svg b/client/public/images/countries/br.svg new file mode 100644 index 00000000..354a7013 --- /dev/null +++ b/client/public/images/countries/br.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bs.svg b/client/public/images/countries/bs.svg new file mode 100644 index 00000000..513be43a --- /dev/null +++ b/client/public/images/countries/bs.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/bt.svg b/client/public/images/countries/bt.svg new file mode 100644 index 00000000..cea6006c --- /dev/null +++ b/client/public/images/countries/bt.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bv.svg b/client/public/images/countries/bv.svg new file mode 100644 index 00000000..40e16d94 --- /dev/null +++ b/client/public/images/countries/bv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/bw.svg b/client/public/images/countries/bw.svg new file mode 100644 index 00000000..a1c8db0a --- /dev/null +++ b/client/public/images/countries/bw.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/by.svg b/client/public/images/countries/by.svg new file mode 100644 index 00000000..8d25ee3c --- /dev/null +++ b/client/public/images/countries/by.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/bz.svg b/client/public/images/countries/bz.svg new file mode 100644 index 00000000..08d3579d --- /dev/null +++ b/client/public/images/countries/bz.svg @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ca.svg b/client/public/images/countries/ca.svg new file mode 100644 index 00000000..f1b2c968 --- /dev/null +++ b/client/public/images/countries/ca.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/cc.svg b/client/public/images/countries/cc.svg new file mode 100644 index 00000000..93025bd2 --- /dev/null +++ b/client/public/images/countries/cc.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/cd.svg b/client/public/images/countries/cd.svg new file mode 100644 index 00000000..e106ddd5 --- /dev/null +++ b/client/public/images/countries/cd.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/cefta.svg b/client/public/images/countries/cefta.svg new file mode 100644 index 00000000..f748d08a --- /dev/null +++ b/client/public/images/countries/cefta.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/cf.svg b/client/public/images/countries/cf.svg new file mode 100644 index 00000000..a6cd3670 --- /dev/null +++ b/client/public/images/countries/cf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/cg.svg b/client/public/images/countries/cg.svg new file mode 100644 index 00000000..9128715f --- /dev/null +++ b/client/public/images/countries/cg.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/ch.svg b/client/public/images/countries/ch.svg new file mode 100644 index 00000000..b42d6709 --- /dev/null +++ b/client/public/images/countries/ch.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/ci.svg b/client/public/images/countries/ci.svg new file mode 100644 index 00000000..e400f0c1 --- /dev/null +++ b/client/public/images/countries/ci.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/ck.svg b/client/public/images/countries/ck.svg new file mode 100644 index 00000000..18e547b1 --- /dev/null +++ b/client/public/images/countries/ck.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/cl.svg b/client/public/images/countries/cl.svg new file mode 100644 index 00000000..01766fef --- /dev/null +++ b/client/public/images/countries/cl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/cm.svg b/client/public/images/countries/cm.svg new file mode 100644 index 00000000..389b6627 --- /dev/null +++ b/client/public/images/countries/cm.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/cn.svg b/client/public/images/countries/cn.svg new file mode 100644 index 00000000..10d3489a --- /dev/null +++ b/client/public/images/countries/cn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/client/public/images/countries/co.svg b/client/public/images/countries/co.svg new file mode 100644 index 00000000..ebd0a0fb --- /dev/null +++ b/client/public/images/countries/co.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/codes.json b/client/public/images/countries/codes.json new file mode 100644 index 00000000..0f4a99a4 --- /dev/null +++ b/client/public/images/countries/codes.json @@ -0,0 +1,84 @@ +{ + "RED": "AGGRESSORS", + "INS": "INSURGENTS", + "DZ" : "ALGERIA", + "AR" : "ARGENTINA", + "AU" : "AUSTRALIA", + "AT" : "AUSTRIA", + "BH" : "BAHRAIN", + "BY" : "BELARUS", + "BE" : "BELGIUM", + "BO" : "BOLIVIA", + "BR" : "BRAZIL", + "BG" : "BULGARIA", + "CA" : "CANADA", + "CL" : "CHILE", + "CN" : "CHINA", + "HR" : "CROATIA", + "CU" : "CUBA", + "CY" : "CYPRUS", + "CZ" : "CHEZH_REPUBLIC", + "DK" : "DENMARK", + "EG" : "EGYPT", + "ET" : "ETHIOPIA", + "FI" : "FINLAND", + "FR" : "FRANCE", + "GE" : "GEORGIA", + "DE" : "GERMANY", + "GH" : "GHANA", + "GI" : "Gibraltar", + "GR" : "GREECE", + "HN" : "HONDURAS", + "HU" : "HUNGARY", + "IS" : "Iceland", + "IN" : "INDIA", + "ID" : "INDONESIA", + "IR" : "IRAN", + "IQ" : "IRAQ", + "IE" : "Ireland", + "IM" : "Isle Of Man", + "IL" : "ISRAEL", + "IT" : "ITALY", + "JP" : "JAPAN", + "JO" : "JORDAN", + "KZ" : "KAZAKHSTAN", + "KR" : "SOUTH_KOREA", + "KW" : "KUWAIT", + "LB" : "LEBANON", + "LY" : "LIBYIA", + "MY" : "MALAYSIA", + "MX" : "MEXICO", + "MA" : "MOROCCO", + "NL" : "THE_NETHERLANDS", + "NG" : "NIGERIA", + "NO" : "NORWAY", + "OM" : "OMAN", + "PK" : "PAKISTAN", + "PE" : "PERU", + "PH" : "PHILIPPINES", + "PL" : "POLAND", + "PT" : "PORTUGAL", + "QA" : "QATAR", + "RO" : "ROMANIA", + "RU" : "RUSSIA", + "SA" : "SAUDI ARABIA", + "RS" : "SERBIA", + "SK" : "SLOVAKIA", + "SI" : "SLOVENIA", + "ZA" : "SOUTH AFRICA", + "ES" : "SPAIN", + "SD" : "SUDAN", + "SE" : "SWEDEN", + "CH" : "SWITZERLAND", + "SY" : "SYRIA", + "TH" : "THAILAND", + "TN" : "TUNISIA", + "TR" : "TURKEY", + "UA" : "UKRAINE", + "AE" : "UNITED ARAB EMIRATES", + "GB" : "UK", + "US" : "USA", + "VE" : "VENEZUELA", + "VN" : "VIETNAM", + "YE" : "YEMEN" +} \ No newline at end of file diff --git a/client/public/images/countries/cp.svg b/client/public/images/countries/cp.svg new file mode 100644 index 00000000..b3efb074 --- /dev/null +++ b/client/public/images/countries/cp.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/cr.svg b/client/public/images/countries/cr.svg new file mode 100644 index 00000000..5a409eeb --- /dev/null +++ b/client/public/images/countries/cr.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/cu.svg b/client/public/images/countries/cu.svg new file mode 100644 index 00000000..6464f8eb --- /dev/null +++ b/client/public/images/countries/cu.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/cv.svg b/client/public/images/countries/cv.svg new file mode 100644 index 00000000..5c251da2 --- /dev/null +++ b/client/public/images/countries/cv.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/cw.svg b/client/public/images/countries/cw.svg new file mode 100644 index 00000000..bb0ece22 --- /dev/null +++ b/client/public/images/countries/cw.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/cx.svg b/client/public/images/countries/cx.svg new file mode 100644 index 00000000..6803b3b6 --- /dev/null +++ b/client/public/images/countries/cx.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/cy.svg b/client/public/images/countries/cy.svg new file mode 100644 index 00000000..2f69bf79 --- /dev/null +++ b/client/public/images/countries/cy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/cz.svg b/client/public/images/countries/cz.svg new file mode 100644 index 00000000..7913de38 --- /dev/null +++ b/client/public/images/countries/cz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/de.svg b/client/public/images/countries/de.svg new file mode 100644 index 00000000..b08334b6 --- /dev/null +++ b/client/public/images/countries/de.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/dg.svg b/client/public/images/countries/dg.svg new file mode 100644 index 00000000..b9f99a99 --- /dev/null +++ b/client/public/images/countries/dg.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/dj.svg b/client/public/images/countries/dj.svg new file mode 100644 index 00000000..ebf2fc66 --- /dev/null +++ b/client/public/images/countries/dj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/dk.svg b/client/public/images/countries/dk.svg new file mode 100644 index 00000000..563277f8 --- /dev/null +++ b/client/public/images/countries/dk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/dm.svg b/client/public/images/countries/dm.svg new file mode 100644 index 00000000..60457b79 --- /dev/null +++ b/client/public/images/countries/dm.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/do.svg b/client/public/images/countries/do.svg new file mode 100644 index 00000000..9c1becc6 --- /dev/null +++ b/client/public/images/countries/do.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/dz.svg b/client/public/images/countries/dz.svg new file mode 100644 index 00000000..5ff29a74 --- /dev/null +++ b/client/public/images/countries/dz.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/eac.svg b/client/public/images/countries/eac.svg new file mode 100644 index 00000000..613099cc --- /dev/null +++ b/client/public/images/countries/eac.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ec.svg b/client/public/images/countries/ec.svg new file mode 100644 index 00000000..65b78858 --- /dev/null +++ b/client/public/images/countries/ec.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ee.svg b/client/public/images/countries/ee.svg new file mode 100644 index 00000000..36ea288c --- /dev/null +++ b/client/public/images/countries/ee.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/eg.svg b/client/public/images/countries/eg.svg new file mode 100644 index 00000000..58c943c2 --- /dev/null +++ b/client/public/images/countries/eg.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/eh.svg b/client/public/images/countries/eh.svg new file mode 100644 index 00000000..2c9525bd --- /dev/null +++ b/client/public/images/countries/eh.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/er.svg b/client/public/images/countries/er.svg new file mode 100644 index 00000000..2705295f --- /dev/null +++ b/client/public/images/countries/er.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/es-ct.svg b/client/public/images/countries/es-ct.svg new file mode 100644 index 00000000..4d859114 --- /dev/null +++ b/client/public/images/countries/es-ct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/es-ga.svg b/client/public/images/countries/es-ga.svg new file mode 100644 index 00000000..a91ffed0 --- /dev/null +++ b/client/public/images/countries/es-ga.svg @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/es-pv.svg b/client/public/images/countries/es-pv.svg new file mode 100644 index 00000000..21c8759e --- /dev/null +++ b/client/public/images/countries/es-pv.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/es.svg b/client/public/images/countries/es.svg new file mode 100644 index 00000000..815e0f84 --- /dev/null +++ b/client/public/images/countries/es.svg @@ -0,0 +1,544 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/et.svg b/client/public/images/countries/et.svg new file mode 100644 index 00000000..a3378fd9 --- /dev/null +++ b/client/public/images/countries/et.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/eu.svg b/client/public/images/countries/eu.svg new file mode 100644 index 00000000..bbfefd6b --- /dev/null +++ b/client/public/images/countries/eu.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/fi.svg b/client/public/images/countries/fi.svg new file mode 100644 index 00000000..470be2d0 --- /dev/null +++ b/client/public/images/countries/fi.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/fj.svg b/client/public/images/countries/fj.svg new file mode 100644 index 00000000..2d7cd980 --- /dev/null +++ b/client/public/images/countries/fj.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/fk.svg b/client/public/images/countries/fk.svg new file mode 100644 index 00000000..b4935a55 --- /dev/null +++ b/client/public/images/countries/fk.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/fm.svg b/client/public/images/countries/fm.svg new file mode 100644 index 00000000..85f4f47e --- /dev/null +++ b/client/public/images/countries/fm.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/client/public/images/countries/fo.svg b/client/public/images/countries/fo.svg new file mode 100644 index 00000000..717ee20b --- /dev/null +++ b/client/public/images/countries/fo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/fr.svg b/client/public/images/countries/fr.svg new file mode 100644 index 00000000..79689fe9 --- /dev/null +++ b/client/public/images/countries/fr.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/ga.svg b/client/public/images/countries/ga.svg new file mode 100644 index 00000000..76edab42 --- /dev/null +++ b/client/public/images/countries/ga.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/gb-eng.svg b/client/public/images/countries/gb-eng.svg new file mode 100644 index 00000000..12e3b67d --- /dev/null +++ b/client/public/images/countries/gb-eng.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/gb-nir.svg b/client/public/images/countries/gb-nir.svg new file mode 100644 index 00000000..c9510f30 --- /dev/null +++ b/client/public/images/countries/gb-nir.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gb-sct.svg b/client/public/images/countries/gb-sct.svg new file mode 100644 index 00000000..f50cd322 --- /dev/null +++ b/client/public/images/countries/gb-sct.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/gb-wls.svg b/client/public/images/countries/gb-wls.svg new file mode 100644 index 00000000..6e15fd01 --- /dev/null +++ b/client/public/images/countries/gb-wls.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/gb.svg b/client/public/images/countries/gb.svg new file mode 100644 index 00000000..dbac25ea --- /dev/null +++ b/client/public/images/countries/gb.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/gd.svg b/client/public/images/countries/gd.svg new file mode 100644 index 00000000..f44e8391 --- /dev/null +++ b/client/public/images/countries/gd.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ge.svg b/client/public/images/countries/ge.svg new file mode 100644 index 00000000..d8126ec8 --- /dev/null +++ b/client/public/images/countries/ge.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/gf.svg b/client/public/images/countries/gf.svg new file mode 100644 index 00000000..73493426 --- /dev/null +++ b/client/public/images/countries/gf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/gg.svg b/client/public/images/countries/gg.svg new file mode 100644 index 00000000..f8216c8b --- /dev/null +++ b/client/public/images/countries/gg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/gh.svg b/client/public/images/countries/gh.svg new file mode 100644 index 00000000..a6497de8 --- /dev/null +++ b/client/public/images/countries/gh.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/gi.svg b/client/public/images/countries/gi.svg new file mode 100644 index 00000000..92496be6 --- /dev/null +++ b/client/public/images/countries/gi.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gl.svg b/client/public/images/countries/gl.svg new file mode 100644 index 00000000..eb5a52e9 --- /dev/null +++ b/client/public/images/countries/gl.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/gm.svg b/client/public/images/countries/gm.svg new file mode 100644 index 00000000..8fe9d669 --- /dev/null +++ b/client/public/images/countries/gm.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gn.svg b/client/public/images/countries/gn.svg new file mode 100644 index 00000000..40d6ad4f --- /dev/null +++ b/client/public/images/countries/gn.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/gp.svg b/client/public/images/countries/gp.svg new file mode 100644 index 00000000..528e554f --- /dev/null +++ b/client/public/images/countries/gp.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/gq.svg b/client/public/images/countries/gq.svg new file mode 100644 index 00000000..ba2acf28 --- /dev/null +++ b/client/public/images/countries/gq.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gr.svg b/client/public/images/countries/gr.svg new file mode 100644 index 00000000..599741ee --- /dev/null +++ b/client/public/images/countries/gr.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gs.svg b/client/public/images/countries/gs.svg new file mode 100644 index 00000000..2e045dfd --- /dev/null +++ b/client/public/images/countries/gs.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gt.svg b/client/public/images/countries/gt.svg new file mode 100644 index 00000000..9b347124 --- /dev/null +++ b/client/public/images/countries/gt.svg @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/gu.svg b/client/public/images/countries/gu.svg new file mode 100644 index 00000000..a5584ffd --- /dev/null +++ b/client/public/images/countries/gu.svg @@ -0,0 +1,23 @@ + + + + + + + + + + G + U + A + M + + + + + + + + + + diff --git a/client/public/images/countries/gw.svg b/client/public/images/countries/gw.svg new file mode 100644 index 00000000..b8d566a2 --- /dev/null +++ b/client/public/images/countries/gw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/gy.svg b/client/public/images/countries/gy.svg new file mode 100644 index 00000000..f4d9b8ab --- /dev/null +++ b/client/public/images/countries/gy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/hk.svg b/client/public/images/countries/hk.svg new file mode 100644 index 00000000..ec40b5fe --- /dev/null +++ b/client/public/images/countries/hk.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/hm.svg b/client/public/images/countries/hm.svg new file mode 100644 index 00000000..c0748d3b --- /dev/null +++ b/client/public/images/countries/hm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/hn.svg b/client/public/images/countries/hn.svg new file mode 100644 index 00000000..1c166dc4 --- /dev/null +++ b/client/public/images/countries/hn.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/hr.svg b/client/public/images/countries/hr.svg new file mode 100644 index 00000000..febbc240 --- /dev/null +++ b/client/public/images/countries/hr.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ht.svg b/client/public/images/countries/ht.svg new file mode 100644 index 00000000..4cd4470f --- /dev/null +++ b/client/public/images/countries/ht.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/hu.svg b/client/public/images/countries/hu.svg new file mode 100644 index 00000000..baddf7f5 --- /dev/null +++ b/client/public/images/countries/hu.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/ic.svg b/client/public/images/countries/ic.svg new file mode 100644 index 00000000..81e6ee2e --- /dev/null +++ b/client/public/images/countries/ic.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/id.svg b/client/public/images/countries/id.svg new file mode 100644 index 00000000..3b7c8fcf --- /dev/null +++ b/client/public/images/countries/id.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/ie.svg b/client/public/images/countries/ie.svg new file mode 100644 index 00000000..049be14d --- /dev/null +++ b/client/public/images/countries/ie.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/il.svg b/client/public/images/countries/il.svg new file mode 100644 index 00000000..724cf8bf --- /dev/null +++ b/client/public/images/countries/il.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/im.svg b/client/public/images/countries/im.svg new file mode 100644 index 00000000..3d597a14 --- /dev/null +++ b/client/public/images/countries/im.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/in.svg b/client/public/images/countries/in.svg new file mode 100644 index 00000000..c634f68a --- /dev/null +++ b/client/public/images/countries/in.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/io.svg b/client/public/images/countries/io.svg new file mode 100644 index 00000000..b04c46f5 --- /dev/null +++ b/client/public/images/countries/io.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/iq.svg b/client/public/images/countries/iq.svg new file mode 100644 index 00000000..68917853 --- /dev/null +++ b/client/public/images/countries/iq.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/client/public/images/countries/ir.svg b/client/public/images/countries/ir.svg new file mode 100644 index 00000000..5c9609ef --- /dev/null +++ b/client/public/images/countries/ir.svg @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/is.svg b/client/public/images/countries/is.svg new file mode 100644 index 00000000..56cc9778 --- /dev/null +++ b/client/public/images/countries/is.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/it.svg b/client/public/images/countries/it.svg new file mode 100644 index 00000000..20a8bfdc --- /dev/null +++ b/client/public/images/countries/it.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/je.svg b/client/public/images/countries/je.svg new file mode 100644 index 00000000..e69e4f46 --- /dev/null +++ b/client/public/images/countries/je.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/jm.svg b/client/public/images/countries/jm.svg new file mode 100644 index 00000000..e03a3422 --- /dev/null +++ b/client/public/images/countries/jm.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/jo.svg b/client/public/images/countries/jo.svg new file mode 100644 index 00000000..50802915 --- /dev/null +++ b/client/public/images/countries/jo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/jp.svg b/client/public/images/countries/jp.svg new file mode 100644 index 00000000..cd03a339 --- /dev/null +++ b/client/public/images/countries/jp.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/client/public/images/countries/ke.svg b/client/public/images/countries/ke.svg new file mode 100644 index 00000000..5b377937 --- /dev/null +++ b/client/public/images/countries/ke.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kg.svg b/client/public/images/countries/kg.svg new file mode 100644 index 00000000..626af14d --- /dev/null +++ b/client/public/images/countries/kg.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kh.svg b/client/public/images/countries/kh.svg new file mode 100644 index 00000000..c658838f --- /dev/null +++ b/client/public/images/countries/kh.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ki.svg b/client/public/images/countries/ki.svg new file mode 100644 index 00000000..1697ffe8 --- /dev/null +++ b/client/public/images/countries/ki.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/km.svg b/client/public/images/countries/km.svg new file mode 100644 index 00000000..56d62c32 --- /dev/null +++ b/client/public/images/countries/km.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kn.svg b/client/public/images/countries/kn.svg new file mode 100644 index 00000000..01a3a0a2 --- /dev/null +++ b/client/public/images/countries/kn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kp.svg b/client/public/images/countries/kp.svg new file mode 100644 index 00000000..94bc8e1e --- /dev/null +++ b/client/public/images/countries/kp.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kr.svg b/client/public/images/countries/kr.svg new file mode 100644 index 00000000..44b51e25 --- /dev/null +++ b/client/public/images/countries/kr.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kw.svg b/client/public/images/countries/kw.svg new file mode 100644 index 00000000..7ff91a84 --- /dev/null +++ b/client/public/images/countries/kw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/ky.svg b/client/public/images/countries/ky.svg new file mode 100644 index 00000000..d6e567b5 --- /dev/null +++ b/client/public/images/countries/ky.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/kz.svg b/client/public/images/countries/kz.svg new file mode 100644 index 00000000..a69ba7a3 --- /dev/null +++ b/client/public/images/countries/kz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/la.svg b/client/public/images/countries/la.svg new file mode 100644 index 00000000..9723a781 --- /dev/null +++ b/client/public/images/countries/la.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/lb.svg b/client/public/images/countries/lb.svg new file mode 100644 index 00000000..49650ad8 --- /dev/null +++ b/client/public/images/countries/lb.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/lc.svg b/client/public/images/countries/lc.svg new file mode 100644 index 00000000..46bbc6cc --- /dev/null +++ b/client/public/images/countries/lc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/li.svg b/client/public/images/countries/li.svg new file mode 100644 index 00000000..a08a05ac --- /dev/null +++ b/client/public/images/countries/li.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/lk.svg b/client/public/images/countries/lk.svg new file mode 100644 index 00000000..24c6559b --- /dev/null +++ b/client/public/images/countries/lk.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/lr.svg b/client/public/images/countries/lr.svg new file mode 100644 index 00000000..a31377f9 --- /dev/null +++ b/client/public/images/countries/lr.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ls.svg b/client/public/images/countries/ls.svg new file mode 100644 index 00000000..e7016502 --- /dev/null +++ b/client/public/images/countries/ls.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/lt.svg b/client/public/images/countries/lt.svg new file mode 100644 index 00000000..90ec5d24 --- /dev/null +++ b/client/public/images/countries/lt.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/lu.svg b/client/public/images/countries/lu.svg new file mode 100644 index 00000000..c31d2bfa --- /dev/null +++ b/client/public/images/countries/lu.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/lv.svg b/client/public/images/countries/lv.svg new file mode 100644 index 00000000..6a9e75ec --- /dev/null +++ b/client/public/images/countries/lv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/ly.svg b/client/public/images/countries/ly.svg new file mode 100644 index 00000000..14abcb24 --- /dev/null +++ b/client/public/images/countries/ly.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/ma.svg b/client/public/images/countries/ma.svg new file mode 100644 index 00000000..7ce56eff --- /dev/null +++ b/client/public/images/countries/ma.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/mc.svg b/client/public/images/countries/mc.svg new file mode 100644 index 00000000..9cb6c9e8 --- /dev/null +++ b/client/public/images/countries/mc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/md.svg b/client/public/images/countries/md.svg new file mode 100644 index 00000000..a806572c --- /dev/null +++ b/client/public/images/countries/md.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/me.svg b/client/public/images/countries/me.svg new file mode 100644 index 00000000..b56cce09 --- /dev/null +++ b/client/public/images/countries/me.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/mf.svg b/client/public/images/countries/mf.svg new file mode 100644 index 00000000..a53ce501 --- /dev/null +++ b/client/public/images/countries/mf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/mg.svg b/client/public/images/countries/mg.svg new file mode 100644 index 00000000..5fa2d244 --- /dev/null +++ b/client/public/images/countries/mg.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/mh.svg b/client/public/images/countries/mh.svg new file mode 100644 index 00000000..46351e54 --- /dev/null +++ b/client/public/images/countries/mh.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/mk.svg b/client/public/images/countries/mk.svg new file mode 100644 index 00000000..4f5cae77 --- /dev/null +++ b/client/public/images/countries/mk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/ml.svg b/client/public/images/countries/ml.svg new file mode 100644 index 00000000..6f6b7169 --- /dev/null +++ b/client/public/images/countries/ml.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/mm.svg b/client/public/images/countries/mm.svg new file mode 100644 index 00000000..8ed5e6ac --- /dev/null +++ b/client/public/images/countries/mm.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/mn.svg b/client/public/images/countries/mn.svg new file mode 100644 index 00000000..56cb0729 --- /dev/null +++ b/client/public/images/countries/mn.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/mo.svg b/client/public/images/countries/mo.svg new file mode 100644 index 00000000..257faed6 --- /dev/null +++ b/client/public/images/countries/mo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/mp.svg b/client/public/images/countries/mp.svg new file mode 100644 index 00000000..6696fdb8 --- /dev/null +++ b/client/public/images/countries/mp.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/mq.svg b/client/public/images/countries/mq.svg new file mode 100644 index 00000000..9be3452e --- /dev/null +++ b/client/public/images/countries/mq.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/mr.svg b/client/public/images/countries/mr.svg new file mode 100644 index 00000000..3f0a6264 --- /dev/null +++ b/client/public/images/countries/mr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/ms.svg b/client/public/images/countries/ms.svg new file mode 100644 index 00000000..2e6d4c5c --- /dev/null +++ b/client/public/images/countries/ms.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/mt.svg b/client/public/images/countries/mt.svg new file mode 100644 index 00000000..676e801c --- /dev/null +++ b/client/public/images/countries/mt.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/mu.svg b/client/public/images/countries/mu.svg new file mode 100644 index 00000000..82d7a3be --- /dev/null +++ b/client/public/images/countries/mu.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/mv.svg b/client/public/images/countries/mv.svg new file mode 100644 index 00000000..10450f98 --- /dev/null +++ b/client/public/images/countries/mv.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/mw.svg b/client/public/images/countries/mw.svg new file mode 100644 index 00000000..113aae54 --- /dev/null +++ b/client/public/images/countries/mw.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/client/public/images/countries/mx.svg b/client/public/images/countries/mx.svg new file mode 100644 index 00000000..bb305b8d --- /dev/null +++ b/client/public/images/countries/mx.svg @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/my.svg b/client/public/images/countries/my.svg new file mode 100644 index 00000000..264f48ae --- /dev/null +++ b/client/public/images/countries/my.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/mz.svg b/client/public/images/countries/mz.svg new file mode 100644 index 00000000..eb020058 --- /dev/null +++ b/client/public/images/countries/mz.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/na.svg b/client/public/images/countries/na.svg new file mode 100644 index 00000000..799702e8 --- /dev/null +++ b/client/public/images/countries/na.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/nc.svg b/client/public/images/countries/nc.svg new file mode 100644 index 00000000..96795408 --- /dev/null +++ b/client/public/images/countries/nc.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/ne.svg b/client/public/images/countries/ne.svg new file mode 100644 index 00000000..39a82b82 --- /dev/null +++ b/client/public/images/countries/ne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/nf.svg b/client/public/images/countries/nf.svg new file mode 100644 index 00000000..ecdb4a3b --- /dev/null +++ b/client/public/images/countries/nf.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/ng.svg b/client/public/images/countries/ng.svg new file mode 100644 index 00000000..81eb35f7 --- /dev/null +++ b/client/public/images/countries/ng.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/ni.svg b/client/public/images/countries/ni.svg new file mode 100644 index 00000000..e16e77ae --- /dev/null +++ b/client/public/images/countries/ni.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/nl.svg b/client/public/images/countries/nl.svg new file mode 100644 index 00000000..4faaf498 --- /dev/null +++ b/client/public/images/countries/nl.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/no.svg b/client/public/images/countries/no.svg new file mode 100644 index 00000000..a5f2a152 --- /dev/null +++ b/client/public/images/countries/no.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/np.svg b/client/public/images/countries/np.svg new file mode 100644 index 00000000..fead9402 --- /dev/null +++ b/client/public/images/countries/np.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/nr.svg b/client/public/images/countries/nr.svg new file mode 100644 index 00000000..e71ddcd8 --- /dev/null +++ b/client/public/images/countries/nr.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/client/public/images/countries/nu.svg b/client/public/images/countries/nu.svg new file mode 100644 index 00000000..4067baff --- /dev/null +++ b/client/public/images/countries/nu.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/client/public/images/countries/nz.svg b/client/public/images/countries/nz.svg new file mode 100644 index 00000000..04d08dcc --- /dev/null +++ b/client/public/images/countries/nz.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/om.svg b/client/public/images/countries/om.svg new file mode 100644 index 00000000..1c762179 --- /dev/null +++ b/client/public/images/countries/om.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pa.svg b/client/public/images/countries/pa.svg new file mode 100644 index 00000000..8dc03bc6 --- /dev/null +++ b/client/public/images/countries/pa.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pe.svg b/client/public/images/countries/pe.svg new file mode 100644 index 00000000..8a90ad17 --- /dev/null +++ b/client/public/images/countries/pe.svg @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pf.svg b/client/public/images/countries/pf.svg new file mode 100644 index 00000000..16374f36 --- /dev/null +++ b/client/public/images/countries/pf.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pg.svg b/client/public/images/countries/pg.svg new file mode 100644 index 00000000..1080add5 --- /dev/null +++ b/client/public/images/countries/pg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/ph.svg b/client/public/images/countries/ph.svg new file mode 100644 index 00000000..65489e1c --- /dev/null +++ b/client/public/images/countries/ph.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/pk.svg b/client/public/images/countries/pk.svg new file mode 100644 index 00000000..fa02f6a8 --- /dev/null +++ b/client/public/images/countries/pk.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pl.svg b/client/public/images/countries/pl.svg new file mode 100644 index 00000000..0fa51452 --- /dev/null +++ b/client/public/images/countries/pl.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/pm.svg b/client/public/images/countries/pm.svg new file mode 100644 index 00000000..401139f7 --- /dev/null +++ b/client/public/images/countries/pm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/pn.svg b/client/public/images/countries/pn.svg new file mode 100644 index 00000000..9788c9cc --- /dev/null +++ b/client/public/images/countries/pn.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pr.svg b/client/public/images/countries/pr.svg new file mode 100644 index 00000000..3cb403b5 --- /dev/null +++ b/client/public/images/countries/pr.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/ps.svg b/client/public/images/countries/ps.svg new file mode 100644 index 00000000..82031486 --- /dev/null +++ b/client/public/images/countries/ps.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pt.svg b/client/public/images/countries/pt.svg new file mode 100644 index 00000000..2f36b7ee --- /dev/null +++ b/client/public/images/countries/pt.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/pw.svg b/client/public/images/countries/pw.svg new file mode 100644 index 00000000..089cbcee --- /dev/null +++ b/client/public/images/countries/pw.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/client/public/images/countries/py.svg b/client/public/images/countries/py.svg new file mode 100644 index 00000000..bfbf01f1 --- /dev/null +++ b/client/public/images/countries/py.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/qa.svg b/client/public/images/countries/qa.svg new file mode 100644 index 00000000..bd493c38 --- /dev/null +++ b/client/public/images/countries/qa.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/re.svg b/client/public/images/countries/re.svg new file mode 100644 index 00000000..3225dddf --- /dev/null +++ b/client/public/images/countries/re.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/ro.svg b/client/public/images/countries/ro.svg new file mode 100644 index 00000000..fda0f7be --- /dev/null +++ b/client/public/images/countries/ro.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/rs.svg b/client/public/images/countries/rs.svg new file mode 100644 index 00000000..120293ab --- /dev/null +++ b/client/public/images/countries/rs.svg @@ -0,0 +1,292 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ru.svg b/client/public/images/countries/ru.svg new file mode 100644 index 00000000..f4d27efc --- /dev/null +++ b/client/public/images/countries/ru.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/rw.svg b/client/public/images/countries/rw.svg new file mode 100644 index 00000000..6cc669ed --- /dev/null +++ b/client/public/images/countries/rw.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/sa.svg b/client/public/images/countries/sa.svg new file mode 100644 index 00000000..660396a7 --- /dev/null +++ b/client/public/images/countries/sa.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/sb.svg b/client/public/images/countries/sb.svg new file mode 100644 index 00000000..a011360d --- /dev/null +++ b/client/public/images/countries/sb.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/sc.svg b/client/public/images/countries/sc.svg new file mode 100644 index 00000000..9a46b369 --- /dev/null +++ b/client/public/images/countries/sc.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/sd.svg b/client/public/images/countries/sd.svg new file mode 100644 index 00000000..b8e4b973 --- /dev/null +++ b/client/public/images/countries/sd.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/se.svg b/client/public/images/countries/se.svg new file mode 100644 index 00000000..0e41780e --- /dev/null +++ b/client/public/images/countries/se.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/sg.svg b/client/public/images/countries/sg.svg new file mode 100644 index 00000000..c4dd4ac9 --- /dev/null +++ b/client/public/images/countries/sg.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/sh.svg b/client/public/images/countries/sh.svg new file mode 100644 index 00000000..131b069a --- /dev/null +++ b/client/public/images/countries/sh.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/si.svg b/client/public/images/countries/si.svg new file mode 100644 index 00000000..f2aea016 --- /dev/null +++ b/client/public/images/countries/si.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/sj.svg b/client/public/images/countries/sj.svg new file mode 100644 index 00000000..bb2799ce --- /dev/null +++ b/client/public/images/countries/sj.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/sk.svg b/client/public/images/countries/sk.svg new file mode 100644 index 00000000..a1953fa6 --- /dev/null +++ b/client/public/images/countries/sk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/sl.svg b/client/public/images/countries/sl.svg new file mode 100644 index 00000000..a07baf75 --- /dev/null +++ b/client/public/images/countries/sl.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/sm.svg b/client/public/images/countries/sm.svg new file mode 100644 index 00000000..0892990b --- /dev/null +++ b/client/public/images/countries/sm.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/sn.svg b/client/public/images/countries/sn.svg new file mode 100644 index 00000000..7c0673d6 --- /dev/null +++ b/client/public/images/countries/sn.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/so.svg b/client/public/images/countries/so.svg new file mode 100644 index 00000000..ae582f19 --- /dev/null +++ b/client/public/images/countries/so.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/client/public/images/countries/sr.svg b/client/public/images/countries/sr.svg new file mode 100644 index 00000000..5e71c400 --- /dev/null +++ b/client/public/images/countries/sr.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/ss.svg b/client/public/images/countries/ss.svg new file mode 100644 index 00000000..73804d80 --- /dev/null +++ b/client/public/images/countries/ss.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/st.svg b/client/public/images/countries/st.svg new file mode 100644 index 00000000..f2e75c14 --- /dev/null +++ b/client/public/images/countries/st.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/sv.svg b/client/public/images/countries/sv.svg new file mode 100644 index 00000000..3a63913d --- /dev/null +++ b/client/public/images/countries/sv.svg @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/sx.svg b/client/public/images/countries/sx.svg new file mode 100644 index 00000000..84844e0f --- /dev/null +++ b/client/public/images/countries/sx.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/sy.svg b/client/public/images/countries/sy.svg new file mode 100644 index 00000000..29636ae0 --- /dev/null +++ b/client/public/images/countries/sy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/sz.svg b/client/public/images/countries/sz.svg new file mode 100644 index 00000000..5eef6914 --- /dev/null +++ b/client/public/images/countries/sz.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/ta.svg b/client/public/images/countries/ta.svg new file mode 100644 index 00000000..b68ad23c --- /dev/null +++ b/client/public/images/countries/ta.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/tc.svg b/client/public/images/countries/tc.svg new file mode 100644 index 00000000..89d29bbf --- /dev/null +++ b/client/public/images/countries/tc.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/td.svg b/client/public/images/countries/td.svg new file mode 100644 index 00000000..9fadf85a --- /dev/null +++ b/client/public/images/countries/td.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/tf.svg b/client/public/images/countries/tf.svg new file mode 100644 index 00000000..88323d2c --- /dev/null +++ b/client/public/images/countries/tf.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/tg.svg b/client/public/images/countries/tg.svg new file mode 100644 index 00000000..e20f40d8 --- /dev/null +++ b/client/public/images/countries/tg.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/client/public/images/countries/th.svg b/client/public/images/countries/th.svg new file mode 100644 index 00000000..1e93a61e --- /dev/null +++ b/client/public/images/countries/th.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/tj.svg b/client/public/images/countries/tj.svg new file mode 100644 index 00000000..d2ba7333 --- /dev/null +++ b/client/public/images/countries/tj.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/tk.svg b/client/public/images/countries/tk.svg new file mode 100644 index 00000000..65bab137 --- /dev/null +++ b/client/public/images/countries/tk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/tl.svg b/client/public/images/countries/tl.svg new file mode 100644 index 00000000..bcfc1612 --- /dev/null +++ b/client/public/images/countries/tl.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/tm.svg b/client/public/images/countries/tm.svg new file mode 100644 index 00000000..08792a77 --- /dev/null +++ b/client/public/images/countries/tm.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/tn.svg b/client/public/images/countries/tn.svg new file mode 100644 index 00000000..6a1989b4 --- /dev/null +++ b/client/public/images/countries/tn.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/to.svg b/client/public/images/countries/to.svg new file mode 100644 index 00000000..d0723370 --- /dev/null +++ b/client/public/images/countries/to.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/client/public/images/countries/tr.svg b/client/public/images/countries/tr.svg new file mode 100644 index 00000000..a92804f8 --- /dev/null +++ b/client/public/images/countries/tr.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/tt.svg b/client/public/images/countries/tt.svg new file mode 100644 index 00000000..14adbe04 --- /dev/null +++ b/client/public/images/countries/tt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/tv.svg b/client/public/images/countries/tv.svg new file mode 100644 index 00000000..675210ec --- /dev/null +++ b/client/public/images/countries/tv.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/tw.svg b/client/public/images/countries/tw.svg new file mode 100644 index 00000000..57fd98b4 --- /dev/null +++ b/client/public/images/countries/tw.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/tz.svg b/client/public/images/countries/tz.svg new file mode 100644 index 00000000..751c1672 --- /dev/null +++ b/client/public/images/countries/tz.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/client/public/images/countries/ua.svg b/client/public/images/countries/ua.svg new file mode 100644 index 00000000..a339eb1b --- /dev/null +++ b/client/public/images/countries/ua.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/client/public/images/countries/ug.svg b/client/public/images/countries/ug.svg new file mode 100644 index 00000000..78252a42 --- /dev/null +++ b/client/public/images/countries/ug.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/um.svg b/client/public/images/countries/um.svg new file mode 100644 index 00000000..5f2822d5 --- /dev/null +++ b/client/public/images/countries/um.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/un.svg b/client/public/images/countries/un.svg new file mode 100644 index 00000000..e4753370 --- /dev/null +++ b/client/public/images/countries/un.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/us.svg b/client/public/images/countries/us.svg new file mode 100644 index 00000000..615946d4 --- /dev/null +++ b/client/public/images/countries/us.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/client/public/images/countries/uy.svg b/client/public/images/countries/uy.svg new file mode 100644 index 00000000..4a54b857 --- /dev/null +++ b/client/public/images/countries/uy.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/uz.svg b/client/public/images/countries/uz.svg new file mode 100644 index 00000000..aaf9382a --- /dev/null +++ b/client/public/images/countries/uz.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/va.svg b/client/public/images/countries/va.svg new file mode 100644 index 00000000..c7d87916 --- /dev/null +++ b/client/public/images/countries/va.svg @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/vc.svg b/client/public/images/countries/vc.svg new file mode 100644 index 00000000..450f6f0a --- /dev/null +++ b/client/public/images/countries/vc.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/client/public/images/countries/ve.svg b/client/public/images/countries/ve.svg new file mode 100644 index 00000000..314e7f5f --- /dev/null +++ b/client/public/images/countries/ve.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/vg.svg b/client/public/images/countries/vg.svg new file mode 100644 index 00000000..4d2c3976 --- /dev/null +++ b/client/public/images/countries/vg.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/vi.svg b/client/public/images/countries/vi.svg new file mode 100644 index 00000000..3a64338e --- /dev/null +++ b/client/public/images/countries/vi.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/vn.svg b/client/public/images/countries/vn.svg new file mode 100644 index 00000000..24bedc50 --- /dev/null +++ b/client/public/images/countries/vn.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/client/public/images/countries/vu.svg b/client/public/images/countries/vu.svg new file mode 100644 index 00000000..efcff895 --- /dev/null +++ b/client/public/images/countries/vu.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/wf.svg b/client/public/images/countries/wf.svg new file mode 100644 index 00000000..57feb3a5 --- /dev/null +++ b/client/public/images/countries/wf.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/ws.svg b/client/public/images/countries/ws.svg new file mode 100644 index 00000000..0e758a7a --- /dev/null +++ b/client/public/images/countries/ws.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/xk.svg b/client/public/images/countries/xk.svg new file mode 100644 index 00000000..de6ef4da --- /dev/null +++ b/client/public/images/countries/xk.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/xx.svg b/client/public/images/countries/xx.svg new file mode 100644 index 00000000..9333be36 --- /dev/null +++ b/client/public/images/countries/xx.svg @@ -0,0 +1,4 @@ + + + + diff --git a/client/public/images/countries/ye.svg b/client/public/images/countries/ye.svg new file mode 100644 index 00000000..61f0ed61 --- /dev/null +++ b/client/public/images/countries/ye.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/client/public/images/countries/yt.svg b/client/public/images/countries/yt.svg new file mode 100644 index 00000000..5ea2f648 --- /dev/null +++ b/client/public/images/countries/yt.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/client/public/images/countries/za.svg b/client/public/images/countries/za.svg new file mode 100644 index 00000000..aa54beb8 --- /dev/null +++ b/client/public/images/countries/za.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/zm.svg b/client/public/images/countries/zm.svg new file mode 100644 index 00000000..b8fdd63c --- /dev/null +++ b/client/public/images/countries/zm.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/public/images/countries/zw.svg b/client/public/images/countries/zw.svg new file mode 100644 index 00000000..5c197469 --- /dev/null +++ b/client/public/images/countries/zw.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/client/src/@types/server.d.ts b/client/src/@types/server.d.ts index d023d211..96701f8f 100644 --- a/client/src/@types/server.d.ts +++ b/client/src/@types/server.d.ts @@ -15,6 +15,7 @@ interface MissionData { theatre: string, dateAndTime: DateAndTime; commandModeOptions: CommandModeOptions; + coalitions: {red: string[], blue: string[]} = {}; } time: number; sessionHash: string; diff --git a/client/src/mission/missionhandler.ts b/client/src/mission/missionhandler.ts index 4ce104b6..52436620 100644 --- a/client/src/mission/missionhandler.ts +++ b/client/src/mission/missionhandler.ts @@ -21,6 +21,7 @@ export class MissionHandler { #spentSpawnPoint: number = 0; #commandModeDialog: HTMLElement; #commandModeErasDropdown: Dropdown; + #coalitions: {red: string[], blue: string[]} = {red: [], blue: []}; constructor() { document.addEventListener("showCommandModeDialog", () => this.showCommandModeDialog()); @@ -75,6 +76,9 @@ export class MissionHandler { /* Set the date and time data */ this.#dateAndTime = data.mission.dateAndTime; + /* Set the coalition countries */ + this.#coalitions = data.mission.coalitions; + /* Set the command mode options */ this.#setcommandModeOptions(data.mission.commandModeOptions); this.#remainingSetupTime = this.getCommandModeOptions().setupTime - this.getDateAndTime().elapsedTime; @@ -112,6 +116,10 @@ export class MissionHandler { return this.#remainingSetupTime; } + getCoalitions() { + return this.#coalitions; + } + getAvailableSpawnPoints() { if (this.getCommandModeOptions().commandMode === GAME_MASTER) return Infinity; diff --git a/client/src/unit/aircraftdatabase.ts b/client/src/unit/aircraftdatabase.ts index e9293f92..30866e14 100644 --- a/client/src/unit/aircraftdatabase.ts +++ b/client/src/unit/aircraftdatabase.ts @@ -4,3977 +4,7 @@ import { UnitDatabase } from "./unitdatabase" export class AircraftDatabase extends UnitDatabase { constructor() { - super(); - - this.blueprints = { - "A-10C_2": { - "name": "A-10C_2", - "coalition": "blue", - "era": "Late Cold War", - "label": "A-10C Warthog", - "shortLabel": "10", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Mk-84", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 1 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "Mk-82", - "quantity": 6 - } - ], - "roles": [ - "CAS" - ], - "code": "Mk-82*6,Mk-84*2,AIM-9*2,ECM", - "name": "Heavy / Mk-84 / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AGM-65D", - "quantity": 4 - }, - { - "name": "CBU-97", - "quantity": 4 - }, - { - "name": "TGP", - "quantity": 1 - }, - { - "name": "ECM", - "quantity": 1 - }, - { - "name": "AIM-9", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "AGM-65D*4, CBU-97*4,TGP, ECM, AIM-9*2", - "name": "Heavy / AGM-65D / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "GBU-12", - "quantity": 6 - }, - { - "name": "GBU-10", - "quantity": 2 - }, - { - "name": "TGP", - "quantity": 1 - }, - { - "name": "AIM-9", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "GBU-12*6,GBU-10*2,TGP, AIM-9*2", - "name": "Heavy / GBU-12 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "a-10.png" - }, - "AJS37": { - "name": "AJS37", - "coalition": "blue", - "label": "AJS37 Viggen", - "era": "Mid Cold War", - "shortLabel": "37", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "BK90", - "quantity": 2 - }, - { - "name": "RB-74", - "quantity": 2 - }, - { - "name": "XT", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "Strike: BK90 (MJ1)*2, RB-74*2, XT", - "name": "Heavy / BK90 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "ARAK M70 HE", - "quantity": 4 - }, - { - "name": "XT", - "quantity": 1 - } - ], - "roles": [ - "CAS" - ], - "code": "CAS: ARAK M70 HE*4, XT", - "name": "Heavy / ARAK M79 HE / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "RB05", - "quantity": 2 - }, - { - "name": "RB74", - "quantity": 2 - }, - { - "name": "XT", - "quantity": 1 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "Anti-ship (RB05): RB-05A*2, RB-74*2, XT", - "name": "Heavy / RB05 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "viggen.png" - }, - "AV8BNA": { - "name": "AV8BNA", - "coalition": "blue", - "label": "AV8BNA Harrier", - "era": "Late Cold War", - "shortLabel": "8", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "GBU-38", - "quantity": 2 - }, - { - "name": "AIM-9M", - "quantity": 1 - }, - { - "name": "AGM-122 Sidearm", - "quantity": 1 - }, - { - "name": "Fuel 300", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "H-M-H 3", - "name": "Heavy / GBU-38 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AGM-65F", - "quantity": 4 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "GAU-12", - "quantity": 1 - } - ], - "roles": [ - "CAS" - ], - "code": "Anti Armor", - "name": "Heavy / AGM-65F / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "av8bna.png" - }, - "C-101CC": { - "name": "C-101CC", - "coalition": "blue", - "label": "C-101CC", - "era": "Late Cold War", - "shortLabel": "101", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "DEFA 553 CANNON (I)", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "2*AIM-9M, DEFA 553 CANNON (I)", - "name": "Light / Fox 2 / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "BELOUGA", - "quantity": 2 - }, - { - "name": "BIN-200", - "quantity": 2 - }, - { - "name": "AN-M3 CANNON", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "2*AIM-9M ,2*BELOUGA,2*BIN-200, AN-M3 CANNON", - "name": "Heavy / BELOUGA, BIN-200 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "c-101.png" - }, - "H-6J": { - "name": "H-6J", - "coalition": "red", - "label": "H-6J Badger", - "era": "Mid Cold War", - "shortLabel": "H6", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "250-3 LD Bomb", - "quantity": 36 - } - ], - "roles": [ - "Strike" - ], - "code": "250-3 LD Bomb x 36", - "name": "Heavy / Bombs / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "KD-20", - "quantity": 4 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "KD-20 x 4", - "name": "Heavy / KD-20 / Long Range" - } - ], - "filename": "h-6.png" - }, - "J-11A": { - "name": "J-11A", - "coalition": "red", - "label": "J-11A Flaming Dragon", - "era": "Modern", - "shortLabel": "11", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "FAB-500", - "quantity": 8 - }, - { - "name": "R-73", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-500x8,R-73x2,ECM", - "name": "Heavy / Fox 2 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-77", - "quantity": 2 - }, - { - "name": "R-73", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-77x2, R-73x2", - "name": "Light / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-27ER", - "quantity": 2 - }, - { - "name": "R-73", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-27ERx2, R-73x2", - "name": "Light / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-27.png" - }, - "JF-17": { - "name": "JF-17", - "coalition": "red", - "label": "JF-17 Thunder", - "era": "Modern", - "shortLabel": "17", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "PL-5E2", - "quantity": 2 - }, - { - "name": "C802AK", - "quantity": 2 - }, - { - "name": "800L Tank", - "quantity": 1 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "PL-5Ex2, C802AKx2, 800L Tank", - "name": "Heavy / C802AK ASM / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "PL-5E2", - "quantity": 2 - }, - { - "name": "GBU-12", - "quantity": 2 - }, - { - "name": "800L Tank", - "quantity": 1 - }, - { - "name": "WMD7", - "quantity": 1 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "PL-5Ex2, 2*GBU-12x2, 800L Tank, WMD7", - "name": "Heavy / C802AK ASM / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "PL-5E2", - "quantity": 2 - }, - { - "name": "SD-10", - "quantity": 2 - }, - { - "name": "1100L Tank", - "quantity": 2 - }, - { - "name": "WMD7", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "PL-5Ex2, SD-10x2, 1100L Tankx2, WMD7", - "name": "Heavy / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "jf-17.png" - }, - "F-16C_50": { - "name": "F-16C_50", - "coalition": "blue", - "label": "F-16C Viper", - "era": "Late Cold War", - "shortLabel": "16", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 3 - }, - { - "name": "AIM-120C", - "quantity": 2 - }, - { - "name": "AIM-9X", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-120C*2, AIM-9X*4, FUEL*2", - "name": "Heavy / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-120C", - "quantity": 2 - }, - { - "name": "AIM-9X", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 1 - }, - { - "name": "TGP", - "quantity": 1 - }, - { - "name": "AGM-65D", - "quantity": 4 - } - ], - "roles": [ - "CAS" - ], - "code": "AIM-120C*2, AIM-9X*2, AGM-65D*4, FUEL*2, ECM, TGP", - "name": "Heavy / Fox 3, AGM-65D / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-120C", - "quantity": 2 - }, - { - "name": "AIM-9X", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 1 - }, - { - "name": "TGP", - "quantity": 1 - }, - { - "name": "GBU-10", - "quantity": 4 - } - ], - "roles": [ - "Strike" - ], - "code": "AIM-120C*2, AIM-9X*2, GBU-10*2, FUEL*2, ECM, TGP", - "name": "Heavy / Fox 3, GBU-10 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-16c.png" - }, - "F-5E-3": { - "name": "F-5E-3", - "coalition": "blue", - "label": "F-5E Tiger", - "era": "Mid Cold War", - "shortLabel": "5", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Fuel 275", - "quantity": 3 - }, - { - "name": "AIM-9P5", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-9P5*2, Fuel 275*3", - "name": "Heavy / Fox 2 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "Mk-82", - "quantity": 4 - }, - { - "name": "AIM-9P5", - "quantity": 2 - }, - { - "name": "Fuel 275", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "Mk-82LD*4,AIM-9P*2,Fuel 275", - "name": "Heavy / Fox 2 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-5.png" - }, - "F-86F Sabre": { - "name": "F-86F Sabre", - "coalition": "blue", - "label": "F-86F Sabre", - "era": "Early Cold War", - "shortLabel": "86", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "120gal Fuel", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "120gal Fuel*2", - "name": "Light / Guns / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "HVAR", - "quantity": 16 - } - ], - "roles": [ - "CAS" - ], - "code": "HVAR*16", - "name": "Light / HVAR / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AN-M64", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "AN-M64*2", - "name": "Light / AN-M64 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Light / Guns / Short Range" - } - ], - "filename": "f-5.png" - }, - "F-14A-135-GR": { - "name": "F-14A-135-GR", - "coalition": "blue", - "label": "F-14A-135-GR Tomcat", - "era": "Mid Cold War", - "shortLabel": "14A", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-54A", - "quantity": 2 - }, - { - "name": "AIM-7F", - "quantity": 1 - }, - { - "name": "AIM-9L", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-54A-MK47*2, AIM-7F*1, AIM-9L*4, XT*2", - "name": "Heavy / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-7F", - "quantity": 4 - }, - { - "name": "AIM-9L", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-7F*4, AIM-9L*4, XT*2", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-7M", - "quantity": 1 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "GBU-12", - "quantity": 2 - }, - { - "name": "LANTIRN", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "AIM-7M*1, AIM-9M*2, XT*2, GBU-12*2, LANTIRN", - "name": "Heavy / Fox 3, GBU-12 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-14.png" - }, - "F-14B": { - "name": "F-14B", - "coalition": "blue", - "label": "F-14B Tomcat", - "era": "Late Cold War", - "shortLabel": "14B", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-54C", - "quantity": 2 - }, - { - "name": "AIM-7M", - "quantity": 3 - }, - { - "name": "AIM-9M", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-54C-MK47*2, AIM-7M*3, AIM-9M*2, XT*2", - "name": "Heavy / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-7M", - "quantity": 6 - }, - { - "name": "AIM-9M", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-7M*6, AIM-9M*2, XT*2", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-7M", - "quantity": 1 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "GBU-12", - "quantity": 2 - }, - { - "name": "LANTIRN", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "AIM-7M*1, AIM-9M*2, XT*2, GBU-12*2, LANTIRN", - "name": "Heavy / Fox 3, GBU-12 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-14.png" - }, - "FA-18C_hornet": { - "name": "FA-18C_hornet", - "coalition": "blue", - "era": "Late Cold War", - "label": "F/A-18C", - "shortLabel": "18", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 3 - }, - { - "name": "AIM-120C-5", - "quantity": 6 - }, - { - "name": "AIM-9X", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-9X*2, AIM-120C-5*6, FUEL*3", - "name": "Heavy / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 3 - }, - { - "name": "AIM-7M", - "quantity": 4 - }, - { - "name": "AIM-9M", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-9M*2, AIM-7M*4, FUEL*3", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 1 - }, - { - "name": "AIM-120C-5", - "quantity": 1 - }, - { - "name": "AIM-9X", - "quantity": 2 - }, - { - "name": "AGM-88C", - "quantity": 2 - } - ], - "roles": [ - "SEAD" - ], - "code": "AIM-9X*2, AIM-120C-5*2, AGM-88C*2, FUEL", - "name": "Heavy / Fox 3, AGM-88C / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 1 - }, - { - "name": "AIM-120C-5", - "quantity": 1 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "AGM-84D", - "quantity": 4 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "AIM-9M*2, AIM-120C-5*1, AGM-84D*4, ATFLIR, FUEL", - "name": "Heavy / Fox 3, AGM-84D / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 1 - }, - { - "name": "AIM-120C-5", - "quantity": 1 - }, - { - "name": "AIM-9X", - "quantity": 2 - }, - { - "name": "GBU-12", - "quantity": 4 - }, - { - "name": "GBU-38", - "quantity": 4 - } - ], - "roles": [ - "Strike" - ], - "code": "AIM-9X*2, AIM-120C-5*1, GBU-38*4, GBU-12*4, ATFLIR, FUEL", - "name": "Heavy / Fox 3, GBU-12, GBU-38 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "fa-18c.png" - }, - "I-16": { - "name": "I-16", - "coalition": "", - "label": "I-16", - "era": "WW2", - "shortLabel": "I16", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "i-16.png" - }, - "L-39ZA": { - "name": "L-39ZA", - "coalition": "red", - "label": "L-39ZA", - "era": "Mid Cold War", - "shortLabel": "39", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "S-5KO", - "quantity": 32 - } - ], - "roles": [ - "CAS" - ], - "code": "S-5KOx32", - "name": "Heavy / S-5KO / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-100", - "quantity": 4 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-100x4", - "name": "Heavy / FAB-100 / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-60Mx2", - "name": "Light / Fox 2 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "l-39.png" - }, - "M-2000C": { - "name": "M-2000C", - "coalition": "blue", - "label": "M-2000C Mirage", - "era": "Late Cold War", - "shortLabel": "M2KC", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Matra Magic II", - "quantity": 2 - }, - { - "name": "Super 530D", - "quantity": 2 - }, - { - "name": "Eclair", - "quantity": 1 - }, - { - "name": "fuel", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "Fox / S530D / Magic / Eclair", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "Matra Magic II", - "quantity": 2 - }, - { - "name": "Mk82", - "quantity": 4 - }, - { - "name": "fuel", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "Kilo / 4xMk-82 / Magic", - "name": "Heavy / Mk 82 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "Matra Magic II", - "quantity": 2 - }, - { - "name": "BAP-100", - "quantity": 18 - }, - { - "name": "fuel", - "quantity": 2 - } - ], - "roles": [ - "Runway Strike" - ], - "code": "Bravo / BAP-100 / Magic", - "name": "Heavy / BAP-100 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "m2000.png" - }, - "MB-339A": { - "name": "MB-339A", - "coalition": "blue", - "label": "MB-339A", - "era": "Mid Cold War", - "shortLabel": "339A", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "320L TipTanks", - "quantity": 2 - }, - { - "name": "DEFA 553 GunPods", - "quantity": 2 - }, - { - "name": "Mk83", - "quantity": 2 - }, - { - "name": "Mk81", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "A - 2*320L TipTanks + 2*DEFA-553 GunPods + 2*Mk.83 + 2*Mk.81 ", - "name": "Heavy / Mk81, Mk83 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "320L TipTanks", - "quantity": 2 - }, - { - "name": "DEFA GunPods", - "quantity": 2 - }, - { - "name": "LAU-10(Zuni Rockets)", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "AA - 2*320L TipTanks + 2*DEFA-553 GunPods + 2*LAU-10(Zuni Rockets) [ARMADA]", - "name": "Heavy / Mk 82 / Medium Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "c-101.png" - }, - "MiG-19P": { - "name": "MiG-19P", - "coalition": "red", - "label": "MiG-19 Farmer", - "era": "Early Cold War", - "shortLabel": "19", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "K-13A Atoll", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "K-13A x 2", - "name": "Light / Fox-2 / Short range" - }, - { - "fuel": 1, - "items": [ - { - "name": "K-13A Atoll", - "quantity": 2 - }, - { - "name": "167 gal tanks", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "K-13A x 2, PTB-760 x 2", - "name": "Medium / Fox-2 / Medium range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-250", - "quantity": 2 - }, - { - "name": "ORO-57K", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-250 x 2, ORO-57K x 2", - "name": "Medium / FAB250, ORO57K / Short range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Short range" - } - ], - "filename": "mig-19.png" - }, - "MiG-21Bis": { - "name": "MiG-21Bis", - "coalition": "red", - "label": "MiG-21 Fishbed", - "era": "Mid Cold War", - "shortLabel": "21", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-3 Atoll", - "quantity": 2 - }, - { - "name": "R-60 Aphid", - "quantity": 2 - }, - { - "name": "130 gal tanks", - "quantity": 1 - }, - { - "name": "ASO-2 Countermeasures", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "Patrol, short range", - "name": "Light / Fox-2 / Short range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-3 Atoll", - "quantity": 2 - }, - { - "name": "R-60 Aphid", - "quantity": 2 - }, - { - "name": "210 gal tanks", - "quantity": 1 - }, - { - "name": "ASO-2 Countermeasures", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "Patrol, medium range", - "name": "Medium / Fox-2 / Medium range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-3R Atoll", - "quantity": 2 - }, - { - "name": "210 gal tanks", - "quantity": 1 - }, - { - "name": "ASO-2 Countermeasures", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "Patrol, R-3R Only", - "name": "Medium / Fox-1 / Medium range" - }, - { - "fuel": 1, - "items": [ - { - "name": "GROM", - "quantity": 2 - }, - { - "name": "FAB-250", - "quantity": 2 - }, - { - "name": "210 gal tanks", - "quantity": 1 - }, - { - "name": "ASO-2 Countermeasures", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "Few big targets, GROM + BOMBS", - "name": "Heavy / GROM, FAB250 / Medium range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-21.png" - }, - "Mirage-F1EE": { - "name": "Mirage-F1EE", - "coalition": "blue", - "label": "Mirage-F1EE", - "era": "Mid Cold War", - "shortLabel": "F1EE", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "AIM-9JULI", - "quantity": 2 - }, - { - "name": "R530EM", - "quantity": 2 - }, - { - "name": "1137L Fuel Tank", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "2*AIM9-JULI, 2*R530EM, 1*Fuel Tank", - "name": "Medium / Fox 1 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AIM-9JULI", - "quantity": 2 - }, - { - "name": "SAMP 400 LD", - "quantity": 8 - } - ], - "roles": [ - "Strike" - ], - "code": "2*AIM-9JULI, 8*SAMP 400 LD", - "name": "Heavy / SAMP400 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-5.png" - }, - "A-20G": { - "name": "A-20G", - "coalition": "", - "label": "A-20G Havoc", - "era": "WW2", - "shortLabel": "A20", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "12.7mm M2 HMG", - "quantity": 6 - }, - { - "name": "500lb Bomb LD", - "quantity": 4 - } - ], - "roles": [ - "Strike" - ], - "code": "500 lb GP bomb LD*4", - "name": "Medium / Bombs / Medium Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "a-20.png" - }, - "Bf-109K-4": { - "name": "Bf-109K-4", - "coalition": "", - "label": "Bf-109K-4 Fritz", - "era": "WW2", - "shortLabel": "109", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "30mm MK108 Gun", - "quantity": 1 - }, - { - "name": "13mm MG131 Gun", - "quantity": 2 - }, - { - "name": "SC500", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "500 lb GP bomb LD*4", - "name": "Medium / Bombs / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "30mm MK108 Gun", - "quantity": 1 - }, - { - "name": "13mm MG131 Gun", - "quantity": 2 - }, - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Short Range" - } - ], - "filename": "bf109.png" - }, - "FW-190A8": { - "name": "FW-190A8", - "coalition": "", - "label": "FW-190A8 Bosch", - "era": "WW2", - "shortLabel": "190A8", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "20mm MG151 Gun", - "quantity": 4 - }, - { - "name": "13mm MG131 Gun", - "quantity": 2 - }, - { - "name": "SD500", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "SD 500 A", - "name": "Medium / Bombs / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "20mm MG151 Gun", - "quantity": 4 - }, - { - "name": "13mm MG131 Gun", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Short Range" - } - ], - "filename": "fw190.png" - }, - "FW-190D9": { - "name": "FW-190D9", - "coalition": "", - "label": "FW-190D9 Jerry", - "era": "WW2", - "shortLabel": "190D9", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "20mm MG151 Gun", - "quantity": 4 - }, - { - "name": "13mm MG131 Gun", - "quantity": 2 - }, - { - "name": "SC500", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "SD 500 A", - "name": "Medium / Bombs / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "20mm MG151 Gun", - "quantity": 4 - }, - { - "name": "13mm MG131 Gun", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Short Range" - } - ], - "filename": "fw190.png" - }, - "MosquitoFBMkVI": { - "name": "MosquitoFBMkVI", - "coalition": "", - "label": "Mosquito FB MkVI", - "era": "WW2", - "shortLabel": "Mosquito", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "20mm Hispano Gun", - "quantity": 4 - }, - { - "name": "7.7mm MG", - "quantity": 4 - }, - { - "name": "500 lb GP Mk.V", - "quantity": 2 - }, - { - "name": "500 lb GP Short tail", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "500 lb GP Mk.V*2, 500 lb GP Short tail*2", - "name": "Medium / Bombs / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "20mm Hispano Gun", - "quantity": 4 - }, - { - "name": "7.7mm MG", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Medium Range" - } - ], - "filename": "mosquito.png" - }, - "P-47D-40": { - "name": "P-47D-40", - "coalition": "", - "label": "P-47D Thunderbolt", - "era": "WW2", - "shortLabel": "P47", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "12.7mm HMG", - "quantity": 8 - }, - { - "name": "AN-M65", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "AN-M65*2", - "name": "Medium / Bombs / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "12.7mm HMG", - "quantity": 8 - } - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Medium Range" - } - ], - "filename": "p-47.png" - }, - "P-51D-30-NA": { - "name": "P-51D-30-NA", - "coalition": "", - "label": "P-51D Mustang", - "era": "WW2", - "shortLabel": "P51", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "12.7mm HMG", - "quantity": 6 - }, - { - "name": "HVAR", - "quantity": 10 - } - ], - "roles": [ - "Strike" - ], - "code": "HVAR*10", - "name": "Medium / Rockets / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "12.7mm HMG", - "quantity": 6 - } - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Medium Range" - } - ], - "filename": "p-51.png" - }, - "A-50": { - "name": "A-50", - "coalition": "red", - "label": "A-50 Mainstay", - "era": "Late Cold War", - "shortLabel": "A50", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "AWACS" - ], - "code": "", - "name": "Default AWACS" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "a-50.png" - }, - "An-26B": { - "name": "An-26B", - "coalition": "red", - "label": "An-26B Curl", - "era": "Mid Cold War", - "shortLabel": "26", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Default Transport" - } - ], - "filename": "an-26.png" - }, - "An-30M": { - "name": "An-30M", - "coalition": "red", - "label": "An-30M Clank", - "era": "Mid Cold War", - "shortLabel": "30", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Reconnaissance" - ], - "code": "", - "name": "Default Reconnaissance" - } - ], - "filename": "a-50.png" - }, - "B-1B": { - "name": "B-1B", - "coalition": "blue", - "label": "B-1B Lancer", - "era": "Late Cold War", - "shortLabel": "1", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Mk-84", - "quantity": 24 - } - ], - "roles": [ - "Strike" - ], - "code": "Mk-84*24", - "name": "Heavy / Mk-84 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "b-1.png" - }, - "B-52H": { - "name": "B-52H", - "coalition": "blue", - "label": "B-52H Stratofortress", - "era": "Early Cold War", - "shortLabel": "52", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Mk-84", - "quantity": 18 - } - ], - "roles": [ - "Strike" - ], - "code": "Mk-84*18", - "name": "Heavy / Mk-84 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "b-52.png" - }, - "C-130": { - "name": "C-130", - "coalition": "blue", - "label": "C-130 Hercules", - "era": "Early Cold War", - "shortLabel": "130", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "C-130", - "name": "Default Transport" - } - ], - "filename": "c-130.png" - }, - "C-17A": { - "name": "C-17A", - "coalition": "blue", - "label": "C-17A Globemaster", - "era": "Modern", - "shortLabel": "C17", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Default Transport" - } - ], - "filename": "c-17.png" - }, - "E-3A": { - "name": "E-3A", - "coalition": "blue", - "label": "E-3A Sentry", - "era": "Mid Cold War", - "shortLabel": "E3", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "AWACS" - ], - "code": "", - "name": "Blue Air Force AWACS" - } - ], - "filename": "e-3.png" - }, - "E-2C": { - "name": "E-2C", - "coalition": "blue", - "label": "E-2C Hawkeye", - "era": "Mid Cold War", - "shortLabel": "2C", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "AWACS" - ], - "code": "", - "name": "Blue Navy AWACS" - } - ], - "filename": "e-2.png" - }, - "F-117A": { - "name": "F-117A", - "coalition": "blue", - "label": "F-117A Nighthawk", - "era": "Late Cold War", - "shortLabel": "117", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "GBU-10", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "GBU-10*2", - "name": "Heavy / GBU-10 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-117.png" - }, - "F-15C": { - "name": "F-15C", - "coalition": "blue", - "label": "F-15C Eagle", - "era": "Late Cold War", - "shortLabel": "15", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 3 - }, - { - "name": "AIM-120B", - "quantity": 6 - }, - { - "name": "AIM-9M", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-9*2,AIM-120*6,Fuel*3", - "name": "Heavy / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 3 - }, - { - "name": "AIM-7", - "quantity": 4 - }, - { - "name": "AIM-9M", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-9*4,AIM-7*4,Fuel", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-15.png" - }, - "F-15E": { - "name": "F-15E", - "coalition": "blue", - "label": "F-15E Strike Eagle", - "era": "Late Cold War", - "shortLabel": "15", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 3 - }, - { - "name": "AIM-120B", - "quantity": 2 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "Mk-84", - "quantity": 8 - } - ], - "roles": [ - "CAS" - ], - "code": "AIM-120B*2,AIM-9M*2,FUEL*3,Mk-84*8", - "name": "Heavy / Fox 3, Mk-84 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 1 - }, - { - "name": "AIM-120B", - "quantity": 2 - }, - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "GBU-12", - "quantity": 4 - }, - { - "name": "GBU-38", - "quantity": 4 - }, - { - "name": "AGM-154C", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "AIM-120B*2,AIM-9M*2,FUEL,GBU-12*4,GBU-38*4,AGM-154C*2", - "name": "Heavy / Fox 3, GBU-12, GBU-38, AGM-154C / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-15.png" - }, - "F-4E": { - "name": "F-4E", - "coalition": "blue", - "label": "F-4E Phantom II", - "era": "Mid Cold War", - "shortLabel": "4", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "AIM-7M", - "quantity": 4 - }, - { - "name": "AIM-9M", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "AIM-9*4,AIM-7*4,Fuel*2", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "ECM", - "quantity": 1 - }, - { - "name": "AIM-7M", - "quantity": 2 - }, - { - "name": "Mk-82", - "quantity": 18 - } - ], - "roles": [ - "Strike" - ], - "code": "Mk-82*18,AIM-7*2,ECM", - "name": "Heavy / Fox 1, Mk-82 / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "ECM", - "quantity": 1 - }, - { - "name": "AIM-7M", - "quantity": 2 - }, - { - "name": "AGM-65K", - "quantity": 4 - }, - { - "name": "Fuel", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "AGM-65K*4,AIM-7*2,Fuel*2,ECM", - "name": "Heavy / Fox 1, AGM-65K / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "f-4.png" - }, - "IL-76MD": { - "name": "IL-76MD", - "coalition": "red", - "label": "IL-76MD Candid", - "era": "Mid Cold War", - "shortLabel": "76", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Default Transport" - } - ], - "filename": "il-76.png" - }, - "IL-78M": { - "name": "IL-78M", - "coalition": "red", - "label": "IL-78M Midas", - "era": "Late Cold War", - "shortLabel": "78", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Tanker" - ], - "code": "", - "name": "Default Tanker" - } - ], - "filename": "il-76.png" - }, - "KC-135": { - "name": "KC-135", - "coalition": "blue", - "label": "KC-135 Stratotanker", - "era": "Early Cold War", - "shortLabel": "135", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Tanker" - ], - "code": "", - "name": "Default Tanker" - } - ], - "filename": "kc-135.png" - }, - "KC135MPRS": { - "name": "KC135MPRS", - "coalition": "blue", - "label": "KC-135 MPRS Stratotanker", - "era": "Early Cold War", - "shortLabel": "135M", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Tanker" - ], - "code": "", - "name": "Default Tanker" - } - ], - "filename": "kc-135.png" - }, - "S-3B Tanker": { - "name": "S-3B Tanker", - "coalition": "blue", - "label": "S-3B Tanker", - "era": "Early Cold War", - "shortLabel": "S3B", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Tanker" - ], - "code": "", - "name": "Default Tanker" - } - ], - "filename": "s-3.png" - }, - "MiG-15bis": { - "name": "MiG-15bis", - "coalition": "red", - "label": "MiG-15 Fagot", - "era": "Early Cold War", - "shortLabel": "M15", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "300L Fuel Tanks", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "2*300L", - "name": "Medium / Guns / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-100M", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "2*FAB-100M", - "name": "Medium / FAB-100M / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "CAP" - ], - "code": "", - "name": "Light / Guns / Short Range" - }, - ], - "filename": "mig-15.png" - }, - "MiG-23MLD": { - "name": "MiG-23MLD", - "coalition": "red", - "label": "MiG-23 Flogger", - "era": "Mid Cold War", - "shortLabel": "23", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Fuel-800", - "quantity": 1 - }, - { - "name": "R-60M", - "quantity": 4 - }, - { - "name": "R-24R", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-24R*2,R-60M*4,Fuel-800", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "Fuel-800", - "quantity": 1 - }, - { - "name": "FAB-500", - "quantity": 2 - }, - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-500*2,R-60M*2,Fuel-800", - "name": "Heavy / FAB-500 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-23.png" - }, - "MiG-25RBT": { - "name": "MiG-25RBT", - "coalition": "red", - "label": "MiG-25RBT Foxbat", - "era": "Mid Cold War", - "shortLabel": "25", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "Reconnaissance" - ], - "code": "R-60M*2", - "name": "Heavy / Fox 2 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-500", - "quantity": 2 - }, - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-500x2_60x2", - "name": "Heavy / FAB-500 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-25.png" - }, - "MiG-25PD": { - "name": "MiG-25PD", - "coalition": "red", - "label": "MiG-25PD Foxbat", - "era": "Mid Cold War", - "shortLabel": "25", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-40R", - "quantity": 2 - }, - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-40R*2,R-60M*2", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-25.png" - }, - "MiG-27K": { - "name": "MiG-27K", - "coalition": "red", - "label": "MiG-27K Flogger-D", - "era": "Mid Cold War", - "shortLabel": "27", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "B-8", - "quantity": 4 - } - ], - "roles": [ - "CAS" - ], - "code": "B-8*4", - "name": "Heavy / B-8 / Short Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "Kh-29L", - "quantity": 2 - }, - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "Kh-29L*2,R-60M*2,Fuel", - "name": "Heavy / Fox 2, Kh-29L / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-250", - "quantity": 6 - }, - { - "name": "R-60M", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-250*6,R-60M*2,Fuel", - "name": "Heavy / Fox 2, FAB250 / Medium Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-23.png" - }, - "MiG-29A": { - "name": "MiG-29A", - "coalition": "red", - "label": "MiG-29A Fulcrum", - "era": "Late Cold War", - "shortLabel": "29A", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 4 - }, - { - "name": "R-27R", - "quantity": 2 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-27R*2,Fuel-1500", - "name": "Heavy / Fox 1, HOBS Fox 2 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 4 - }, - { - "name": "R-27R", - "quantity": 2 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "R-60M*4,R-27R*2,Fuel-1500", - "name": "Heavy / Fox 1 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "FAB-500", - "quantity": 4 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-500*4,R-73*2,Fuel", - "name": "Heavy / Fox 2, FAB500 / Medium Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-29.png" - }, - "MiG-29S": { - "name": "MiG-29S", - "coalition": "red", - "label": "MiG-29S Fulcrum", - "era": "Late Cold War", - "shortLabel": "29", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 4 - }, - { - "name": "R-27R", - "quantity": 2 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-27R*2,Fuel-1500", - "name": "Heavy / Fox 1 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 4 - }, - { - "name": "R-27R", - "quantity": 2 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "CAP" - ], - "code": "R-60M*4,R-27R*2", - "name": "Heavy / Fox 1 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "S-24", - "quantity": 4 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "CAS" - ], - "code": "S-24*4,R-73*2,Fuel", - "name": "Heavy / Fox 2, S-24 / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "FAB-500", - "quantity": 4 - }, - { - "name": "Fuel-1500", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-500*4,R-73*2,Fuel", - "name": "Heavy / Fox 2, FAB500 / Medium Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-29.png" - }, - "MiG-31": { - "name": "MiG-31", - "coalition": "red", - "label": "MiG-31 Foxhound", - "era": "Late Cold War", - "shortLabel": "31", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-33", - "quantity": 4 - }, - { - "name": "R-40T", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-40T*2,R-33*4", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mig-23.png" - }, - "MQ-9 Reaper": { - "name": "MQ-9 Reaper", - "coalition": "blue", - "label": "MQ-9 Reaper", - "era": "Modern", - "shortLabel": "9", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "AGM-114K", - "quantity": 12 - } - ], - "roles": [ - "Drone" - ], - "code": "AGM-114K*12", - "name": "Default Drone" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "i-16.png" - }, - "Su-17M4": { - "name": "Su-17M4", - "coalition": "red", - "label": "Su-17M4 Fitter", - "era": "Mid Cold War", - "shortLabel": "17M4", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 2 - }, - { - "name": "B-8", - "quantity": 4 - }, - { - "name": "fuel", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "B-8*4,R-60M*2,Fuel*2", - "name": "Heavy / B-8 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-17.png" - }, - "Su-24M": { - "name": "Su-24M", - "coalition": "red", - "label": "Su-24M Fencer", - "era": "Mid Cold War", - "shortLabel": "24", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 2 - }, - { - "name": "FAB-1500", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-1500*2,R-60M*2", - "name": "Heavy / FAB-500 / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-24.png" - }, - "Su-25": { - "name": "Su-25", - "coalition": "red", - "label": "Su-25A Frogfoot", - "era": "Late Cold War", - "shortLabel": "S25", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 2 - }, - { - "name": "UB-13", - "quantity": 6 - }, - { - "name": "fuel", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "UB-13*6,R-60M*2,Fuel*2", - "name": "Heavy / Rockets / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-60M", - "quantity": 2 - }, - { - "name": "B-8MI", - "quantity": 2 - }, - { - "name": "RBK-500", - "quantity": 2 - }, - { - "name": "Kh-25ML", - "quantity": 2 - }, - { - "name": "2-25L", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "2-25L*2, KH-25ML*2, RBK-500*2, B-8MI*2, R-60M*2", - "name": "Heavy / Everything A-G / Medium Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-25.png" - }, - "Su-25T": { - "name": "Su-25", - "coalition": "red", - "label": "Su-25T Frogfoot", - "era": "Late Cold War", - "shortLabel": "S25T", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Kh-29L", - "quantity": 2 - }, - { - "name": "Kh-25ML", - "quantity": 4 - }, - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "Mercury LLTV Pod", - "quantity": 1 - }, - { - "name": "MPS-410", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "Kh-29L*2,Kh-25ML*4,R-73*2,Mercury LLTV Pod,MPS-410", - "name": "Heavy / Everything A-G / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "APU-8 Vikhr-M", - "quantity": 2 - }, - { - "name": "Kh-25ML", - "quantity": 2 - }, - { - "name": "SPPU-22*2", - "quantity": 2 - }, - { - "name": "Mercury LLTV Pod", - "quantity": 1 - }, - { - "name": "MPS-410", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "APU-8 Vikhr-M*2,Kh-25ML,R-73*2,SPPU-22*2,Mercury LLTV Pod,MPS-410", - "name": "Heavy / Everything A-G / Medium Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-500", - "quantity": 6 - }, - { - "name": "R-60M", - "quantity": 2 - }, - { - "name": "Fuel", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-500*6,R-60M*2,Fuel*2", - "name": "Medium / FAB-500 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-25.png" - }, - "Su-27": { - "name": "Su-27", - "coalition": "red", - "label": "Su-27 Flanker", - "era": "Late Cold War", - "shortLabel": "27", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-27ER", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-27ER*2,ECM", - "name": "Light / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-27ER", - "quantity": 2 - }, - { - "name": "R-27ET", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-27ER*2,R-27ET*2,ECM", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-27ET", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-27ET*2,ECM", - "name": "Heavy / Fox 2 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "S-25", - "quantity": 4 - }, - { - "name": "FAB-500", - "quantity": 4 - } - ], - "roles": [ - "Strike" - ], - "code": "S-25*4, FAB-500*4, R-73*2, ECM", - "name": "Heavy / Fox 2, Bombs, Rockets / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-27.png" - }, - "Su-30": { - "name": "Su-30", - "coalition": "red", - "label": "Su-30 Super Flanker", - "era": "Late Cold War", - "shortLabel": "30", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-77", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-77*2", - "name": "Light / Fox 3 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-77", - "quantity": 2 - }, - { - "name": "R-27ER", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-77*2,R-27ER*2,ECM", - "name": "Heavy / Fox 3, Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-77", - "quantity": 2 - }, - { - "name": "FAB-1500", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-1500*2,R-73*2,R-77*2,ECM", - "name": "Heavy / Fox 3, Bombs / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-34.png" - }, - "Su-33": { - "name": "Su-33", - "coalition": "red", - "label": "Su-33 Navy Flanker", - "era": "Late Cold War", - "shortLabel": "33", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-27ER", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2, R-27ER*2", - "name": "Light / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "R-27ER", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 2 - } - ], - "roles": [ - "CAP" - ], - "code": "R-73*2,R-27ET*2,R-27ER*2,ECM", - "name": "Heavy / Fox 1 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "S-25", - "quantity": 4 - }, - { - "name": "FAB-250", - "quantity": 4 - }, - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 2 - } - ], - "roles": [ - "Strike" - ], - "code": "S-25*4,FAB-250*4,R-73*2,ECM", - "name": "Heavy / Rockets, Bombs / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-34.png" - }, - "Su-34": { - "name": "Su-34", - "coalition": "red", - "label": "Su-34 Hellduck", - "era": "Modern", - "shortLabel": "34", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "R-73", - "quantity": 2 - }, - { - "name": "FAB-250", - "quantity": 4 - }, - { - "name": "UB-13", - "quantity": 4 - }, - { - "name": "ECM", - "quantity": 1 - } - ], - "roles": [ - "CAS" - ], - "code": "UB-13*4,FAB-250*4,R-73*2,ECM", - "name": "Heavy / Mixed Ground Ordinance / Short Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "su-34.png" - }, - "Tornado IDS": { - "name": "Tornado IDS", - "coalition": "blue", - "label": "Tornado IDS", - "era": "Late Cold War", - "shortLabel": "IDS", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "Mk-82", - "quantity": 4 - } - ], - "roles": [ - "CAS" - ], - "code": "Mk-82*4,AIM-9*2,Fuel*2", - "name": "Heavy / Mk-84 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "tornado.png" - }, - "Tornado GR4": { - "name": "Tornado GR4", - "coalition": "blue", - "label": "Tornado GR4", - "era": "Late Cold War", - "shortLabel": "GR4", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "ALARM", - "quantity": 4 - }, - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 1 - } - ], - "roles": [ - "SEAD" - ], - "code": "ALARM*4, Fuel*2, ECM", - "name": "Heavy / ALARM / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "GBU-16", - "quantity": 2 - }, - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 1 - } - ], - "roles": [ - "Strike" - ], - "code": "GBU-16*2, AIM-9M*2, Fuel*2, ECM", - "name": "Heavy / GBU-16 / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "AIM-9M", - "quantity": 2 - }, - { - "name": "Sea Eagle", - "quantity": 2 - }, - { - "name": "fuel", - "quantity": 2 - }, - { - "name": "ECM", - "quantity": 1 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "Sea Eagle*2, AIM-9M*2, Fuel*2, ECM", - "name": "Heavy / Sea Eagle / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "tornado.png" - }, - "Tu-142": { - "name": "Tu-142", - "coalition": "red", - "label": "Tu-142 Bear", - "era": "Mid Cold War", - "shortLabel": "142", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Kh-35", - "quantity": 6 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "Kh-35*6", - "name": "Heavy / Kh-35 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "tu-95.png" - }, - "Tu-160": { - "name": "Tu-160", - "coalition": "red", - "label": "Tu-160 Blackjack", - "era": "Late Cold War", - "shortLabel": "160", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Kh-65", - "quantity": 12 - } - ], - "roles": [ - "Strike" - ], - "code": "Kh-65*12", - "name": "Heavy / Kh-65 / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "tu-160.png" - }, - "Tu-22M3": { - "name": "Tu-22M3", - "coalition": "red", - "label": "Tu-22M3 Backfire", - "era": "Late Cold War", - "shortLabel": "T22", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Kh-22n", - "quantity": 2 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "Kh-22N*2", - "name": "Heavy / Kh-22N / Long Range" - }, - { - "fuel": 1, - "items": [ - { - "name": "FAB-250", - "quantity": 69 - } - ], - "roles": [ - "Strike" - ], - "code": "FAB-250*69", - "name": "Heavy / Kh-22n / Long Range" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "tu-22.png" - }, - "Tu-95MS": { - "name": "Tu-95MS", - "coalition": "red", - "label": "Tu-95MS Bear", - "era": "Mid Cold War", - "shortLabel": "95", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Kh-65", - "quantity": 6 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "Kh-65*6", - "name": "Heavy / Kh-65 / Long Range" - }, - { - "fuel": 1, - "items": [ - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "tu-95.png" - } - } + super('databases/aircraftdatabase.json'); } getCategory() { diff --git a/client/src/unit/groundunitdatabase.ts b/client/src/unit/groundunitdatabase.ts index ea0baf02..b398397a 100644 --- a/client/src/unit/groundunitdatabase.ts +++ b/client/src/unit/groundunitdatabase.ts @@ -4,1462 +4,7 @@ import { UnitDatabase } from "./unitdatabase" export class GroundUnitDatabase extends UnitDatabase { constructor() { - super(); - - this.blueprints = { - "SA-2 SAM Battery": { - "name": "SA-2 SAM Battery", - "coalition": "red", - "era": "Early Cold War", - "label": "SA-2 SAM Battery", - "shortLabel": "SA-2 SAM Battery", - "range": "Long", - "filename": "", - "type": "SAM Site" - }, - "SA-3 SAM Battery": { - "name": "SA-3 SAM Battery", - "coalition": "red", - "era": "Early Cold War", - "label": "SA-3 SAM Battery", - "shortLabel": "SA-3 SAM Battery", - "range": "Medium", - "filename": "", - "type": "SAM Site" - }, - "SA-6 SAM Battery": { - "name": "SA-6 SAM Battery", - "coalition": "red", - "era": "Mid Cold War", - "label": "SA-6 SAM Battery", - "shortLabel": "SA-6 SAM Battery", - "range": "Medium", - "filename": "", - "type": "SAM Site" - }, - "SA-10 SAM Battery": { - "name": "SA-10 SAM Battery", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 SAM Battery", - "shortLabel": "SA-10 SAM Battery", - "range": "Long", - "filename": "", - "type": "SAM Site" - }, - "SA-11 SAM Battery": { - "name": "SA-11 SAM Battery", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-11 SAM Battery", - "shortLabel": "SA-11 SAM Battery", - "range": "Medium", - "filename": "", - "type": "SAM Site" - }, - "SA-5 SAM Battery": { - "name": "SA-5 SAM Battery", - "coalition": "Red", - "era": "Mid Cold War", - "label": "SA-5 SAM Battery", - "shortLabel": "SA-5 SAM Battery", - "range": "Long", - "filename": "", - "type": "SAM Site" - }, - "Patriot site": { - "name": "Patriot site", - "coalition": "blue", - "era": "Late Cold War", - "label": "Patriot site", - "shortLabel": "Patriot site", - "range": "Long", - "filename": "", - "type": "SAM Site" - }, - "Hawk SAM Battery": { - "name": "Hawk SAM Battery", - "coalition": "blue", - "era": "Early Cold War", - "label": "Hawk SAM Battery", - "shortLabel": "Hawk SAM Battery", - "range": "Medium", - "filename": "", - "type": "SAM Site" - }, - "SNR_75V": { - "name": "SNR_75V", - "coalition": "Red", - "era": "Early Cold War", - "label": "SA-2 Fan Song", - "shortLabel": "SNR 75V", - "filename": "", - "type": "SAM Track radar" - }, - "S_75M_Volhov": { - "name": "S_75M_Volhov", - "coalition": "Red", - "era": "Early Cold War", - "label": "SA-2 Launcher", - "shortLabel": "S75M Volhov", - "filename": "", - "type": "SAM Launcher" - }, - "2B11 mortar": { - "name": "2B11 mortar", - "coalition": "red", - "era": "Late Cold War", - "label": "2B11 mortar", - "shortLabel": "2B11 mortar", - "filename": "", - "type": "Gun Artillery" - }, - "SAU Gvozdika": { - "name": "SAU Gvozdika", - "coalition": "red", - "era": "Mid Cold War", - "label": "SAU Gvozdika", - "shortLabel": "SAU Gvozdika", - "filename": "", - "type": "Gun Artillery" - }, - "SAU Msta": { - "name": "SAU Msta", - "coalition": "red", - "era": "Late Cold War", - "label": "SAU Msta", - "shortLabel": "SAU Msta", - "filename": "", - "type": "Gun Artillery" - }, - "SAU Akatsia": { - "name": "SAU Akatsia", - "coalition": "red", - "era": "Mid Cold War", - "label": "SAU Akatsia", - "shortLabel": "SAU Akatsia", - "filename": "", - "type": "Gun Artillery" - }, - "SAU 2-C9": { - "name": "SAU 2-C9", - "coalition": "red", - "era": "Mid Cold War", - "label": "SAU Nona", - "shortLabel": "SAU Nona", - "filename": "", - "type": "Gun Artillery" - }, - "M-109": { - "name": "M-109", - "coalition": "blue", - "era": "Early Cold War", - "label": "M-109 Paladin", - "shortLabel": "M-109", - "filename": "", - "type": "Gun Artillery" - }, - "AAV7": { - "name": "AAV7", - "coalition": "blue", - "era": "Mid Cold War", - "label": "AAV7", - "shortLabel": "AAV7", - "filename": "", - "type": "APC" - }, - "BMD-1": { - "name": "BMD-1", - "coalition": "red", - "era": "Mid Cold War", - "label": "BMD-1", - "shortLabel": "BMD-1", - "filename": "", - "type": "IFV" - }, - "BMP-1": { - "name": "BMP-1", - "coalition": "red", - "era": "Mid Cold War", - "label": "BMP-1", - "shortLabel": "BMP-1", - "filename": "", - "type": "IFV" - }, - "BMP-2": { - "name": "BMP-2", - "coalition": "red", - "era": "Mid Cold War", - "label": "BMP-2", - "shortLabel": "BMP-2", - "filename": "", - "type": "IFV" - }, - "BMP-3": { - "name": "BMP-3", - "coalition": "red", - "era": "Late Cold War", - "label": "BMP-3", - "shortLabel": "BMP-3", - "filename": "", - "type": "IFV" - }, - "Boman": { - "name": "Boman", - "coalition": "blue", - "era": "Late Cold War", - "label": "Grad Fire Direction Manager", - "shortLabel": "Boman", - "filename": "", - "type": "Reconnaissance" - }, - "BRDM-2": { - "name": "BRDM-2", - "coalition": "red", - "era": "Early Cold War", - "label": "BRDM-2", - "shortLabel": "BRDM-2", - "filename": "", - "type": "Reconnaissance" - }, - "BTR-80": { - "name": "BTR-80", - "coalition": "red", - "era": "Late Cold War", - "label": "BTR-80", - "shortLabel": "BTR-80", - "filename": "", - "type": "APC" - }, - "BTR_D": { - "name": "BTR_D", - "coalition": "red", - "era": "Mid Cold War", - "label": "BTR_D", - "shortLabel": "BTR_D", - "filename": "", - "type": "APC" - }, - "Bunker": { - "name": "Bunker", - "coalition": "", - "era": "", - "label": "Bunker", - "shortLabel": "Bunker", - "filename": "", - "type": "Static" - }, - "Cobra": { - "name": "Cobra", - "coalition": "blue", - "era": "Modern", - "label": "Otokar Cobra", - "shortLabel": "Cobra", - "filename": "", - "type": "Reconnaissance" - }, - "LAV-25": { - "name": "LAV-25", - "coalition": "blue", - "era": "Late Cold War", - "label": "LAV-25", - "shortLabel": "LAV-25", - "filename": "", - "type": "IFV" - }, - "M1043 HMMWV Armament": { - "name": "M1043 HMMWV Armament", - "coalition": "blue", - "era": "Late Cold War", - "label": "HMMWV M2 Browning", - "shortLabel": "HMMWV M2", - "filename": "", - "type": "Reconnaissance" - }, - "M1045 HMMWV TOW": { - "name": "M1045 HMMWV TOW", - "coalition": "red", - "era": "Late Cold War", - "label": "HMMWV TOW", - "shortLabel": "HMMWV TOW", - "filename": "", - "type": "Reconnaissance" - }, - "M1126 Stryker ICV": { - "name": "M1126 Stryker ICV", - "coalition": "blue", - "era": "Modern", - "label": "Stryker MG", - "shortLabel": "Stryker MG", - "filename": "", - "type": "APC" - }, - "M-113": { - "name": "M-113", - "coalition": "blue", - "era": "Early Cold War", - "label": "M-113", - "shortLabel": "M-113", - "filename": "", - "type": "APC" - }, - "M1134 Stryker ATGM": { - "name": "M1134 Stryker ATGM", - "coalition": "blue", - "era": "Modern", - "label": "Stryker ATGM", - "shortLabel": "Stryker ATGM", - "filename": "", - "type": "IFV" - }, - "M-2 Bradley": { - "name": "M-2 Bradley", - "coalition": "blue", - "era": "Late Cold War", - "label": "M-2A2 Bradley", - "shortLabel": "M-2 Bradley", - "filename": "", - "type": "IFV" - }, - "Marder": { - "name": "Marder", - "coalition": "blue", - "era": "Late Cold War", - "label": "Marder", - "shortLabel": "Marder", - "filename": "", - "type": "IFV" - }, - "MCV-80": { - "name": "MCV-80", - "coalition": "blue", - "era": "Late Cold War", - "label": "Warrior IFV", - "shortLabel": "Warrior", - "filename": "", - "type": "IFV" - }, - "MTLB": { - "name": "MTLB", - "coalition": "red", - "era": "Mid Cold War", - "label": "MT-LB", - "shortLabel": "MT-LB", - "filename": "", - "type": "APC" - }, - "Paratrooper RPG-16": { - "name": "Paratrooper RPG-16", - "coalition": "red", - "era": "Modern", - "label": "Paratrooper RPG-16", - "shortLabel": "Paratrooper RPG-16", - "filename": "", - "type": "Infantry" - }, - "Paratrooper AKS-74": { - "name": "Paratrooper AKS-74", - "coalition": "red", - "era": "Modern", - "label": "Paratrooper AKS-74", - "shortLabel": "Paratrooper AKS-74", - "filename": "", - "type": "Infantry" - }, - "Sandbox": { - "name": "Sandbox", - "coalition": "", - "era": "", - "label": "Sandbox", - "shortLabel": "Sandbox", - "filename": "", - "type": "Static" - }, - "Soldier AK": { - "name": "Soldier AK", - "coalition": "red", - "era": "Early Cold War", - "label": "Soldier AK", - "shortLabel": "Soldier AK", - "filename": "", - "type": "Infantry" - }, - "Infantry AK": { - "name": "Infantry AK", - "coalition": "red", - "era": "Mid Cold War", - "label": "Infantry AK", - "shortLabel": "Infantry AK", - "filename": "", - "type": "Infantry" - }, - "Soldier M249": { - "name": "Soldier M249", - "coalition": "blue", - "era": "Late Cold War", - "label": "Soldier M249", - "shortLabel": "Soldier M249", - "filename": "", - "type": "Infantry" - }, - "Soldier M4": { - "name": "Soldier M4", - "coalition": "blue", - "era": "Mid Cold War", - "label": "Soldier M4", - "shortLabel": "Soldier M4", - "filename": "", - "type": "Infantry" - }, - "Soldier M4 GRG": { - "name": "Soldier M4 GRG", - "coalition": "blue", - "era": "Mid Cold War", - "label": "Soldier M4 GRG", - "shortLabel": "Soldier M4 GRG", - "filename": "", - "type": "Infantry" - }, - "Soldier RPG": { - "name": "Soldier RPG", - "coalition": "red", - "era": "Mid Cold War", - "label": "Soldier RPG", - "shortLabel": "Soldier RPG", - "filename": "", - "type": "Infantry" - }, - "TPZ": { - "name": "TPZ", - "coalition": "blue", - "era": "Late Cold War", - "label": "TPz Fuchs", - "shortLabel": "TPz Fuchs", - "filename": "", - "type": "APC" - }, - "Grad-URAL": { - "name": "Grad-URAL", - "coalition": "red", - "era": "Mid Cold War", - "label": "Grad", - "shortLabel": "Grad", - "filename": "", - "type": "Rocket Artillery" - }, - "Uragan_BM-27": { - "name": "Uragan_BM-27", - "coalition": "red", - "era": "Late Cold War", - "label": "Uragan", - "shortLabel": "Uragan", - "filename": "", - "type": "Rocket Artillery" - }, - "Smerch": { - "name": "Smerch", - "coalition": "red", - "era": "Late Cold War", - "label": "Smerch", - "shortLabel": "Smerch", - "filename": "", - "type": "Rocket Artillery" - }, - "MLRS": { - "name": "MLRS", - "coalition": "blue", - "era": "Late Cold War", - "label": "M270", - "shortLabel": "M270", - "filename": "", - "type": "Rocket Artillery" - }, - "2S6 Tunguska": { - "name": "2S6 Tunguska", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-19 Tunguska", - "shortLabel": "SA-19", - "range": "Short", - "filename": "", - "type": "AAA/SAM" - }, - "Kub 2P25 ln": { - "name": "Kub 2P25 ln", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-6 Launcher", - "shortLabel": "Kub 2P25 ln", - "range": "Medium", - "filename": "", - "type": "SAM Launcher" - }, - "5p73 s-125 ln": { - "name": "5p73 s-125 ln", - "coalition": "red", - "era": "Early Cold War", - "label": "SA-3 Launcher", - "shortLabel": "5p73 s-125 ln", - "range": "Medium", - "filename": "", - "type": "SAM Launcher" - }, - "S-300PS 5P85C ln": { - "name": "S-300PS 5P85C ln", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 Launcher (5P85C)", - "shortLabel": "S-300PS 5P85C ln", - "range": "Long", - "filename": "", - "type": "SAM Launcher" - }, - "S-300PS 5P85D ln": { - "name": "S-300PS 5P85D ln", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 Launcher (5P85D)", - "shortLabel": "S-300PS 5P85D ln", - "range": "Long", - "filename": "", - "type": "SAM Launcher" - }, - "SA-11 Buk LN 9A310M1": { - "name": "SA-11 Buk LN 9A310M1", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-11 Launcher", - "shortLabel": "SA-11 Buk LN 9A310M1", - "range": "Medium", - "filename": "", - "type": "SAM Launcher" - }, - "Osa 9A33 ln": { - "name": "Osa 9A33 ln", - "coalition": "red", - "era": "Mid Cold War", - "label": "SA-8 Launcher", - "shortLabel": "Osa 9A33 ln", - "range": "Short", - "filename": "", - "type": "SAM Launcher" - }, - "Tor 9A331": { - "name": "Tor 9A331", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-15 Tor 9A331", - "shortLabel": "Tor 9A331", - "range": "Medium", - "filename": "", - "type": "SAM" - }, - "Strela-10M3": { - "name": "Strela-10M3", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-13 Strela-10M3", - "shortLabel": "Strela-10M3", - "range": "Short", - "filename": "", - "type": "SAM" - }, - "Strela-1 9P31": { - "name": "Strela-1 9P31", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-9 Strela-1 9P31", - "shortLabel": "Strela-1 9P31", - "range": "Short", - "filename": "", - "type": "SAM" - }, - "SA-11 Buk CC 9S470M1": { - "name": "SA-11 Buk CC 9S470M1", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-11 Command Post", - "shortLabel": "SA-11 Buk CC 9S470M1", - "range": "Medium", - "filename": "", - "type": "SAM Support vehicle" - }, - "SA-8 Osa LD 9T217": { - "name": "SA-8 Osa LD 9T217", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-8 Osa LD 9T217", - "shortLabel": "SA-8 Osa LD 9T217", - "range": "Short", - "filename": "", - "type": "SAM" - }, - "Patriot AMG": { - "name": "Patriot AMG", - "coalition": "blue", - "era": "Modern", - "label": "Patriot Antenna Mast Group", - "shortLabel": "Patriot AMG", - "range": "Long", - "filename": "", - "type": "SAM Support vehicle" - }, - "Patriot ECS": { - "name": "Patriot ECS", - "coalition": "blue", - "era": "Modern", - "label": "Patriot Engagement Control Station", - "shortLabel": "Patriot ECS", - "range": "Long", - "filename": "", - "type": "SAM Support vehicle" - }, - "Gepard": { - "name": "Gepard", - "coalition": "blue", - "era": "Late Cold War", - "label": "Gepard", - "shortLabel": "Gepard", - "filename": "", - "type": "AAA" - }, - "Hawk pcp": { - "name": "Hawk pcp", - "coalition": "blue", - "era": "Late Cold War", - "label": "Hawk Platoon Command Post", - "shortLabel": "Hawk pcp", - "range": "Medium", - "filename": "", - "type": "SAM Support vehicle" - }, - "SA-18 Igla manpad": { - "name": "SA-18 Igla manpad", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-18 Igla manpad", - "shortLabel": "SA-18 Igla manpad", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "Igla manpad INS": { - "name": "Igla manpad INS", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-18 Igla manpad INS", - "shortLabel": "Igla manpad INS", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "SA-18 Igla-S manpad": { - "name": "SA-18 Igla-S manpad", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-18 Igla-S manpad", - "shortLabel": "SA-18 Igla-S manpad", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "RPC_5N62V": { - "name": "RPC_5N62V", - "coalition": "Red", - "era": "Mid Cold War", - "label": "SA-5 Square Pair", - "shortLabel": "RPC 5N62V", - "range": "Long", - "filename": "", - "type": "SAM Track radar" - }, - "RLS_19J6": { - "name": "RLS_19J6", - "coalition": "Red", - "era": "Mid Cold War", - "label": "SA-5 Thin Shield", - "shortLabel": "RLS 19J6", - "range": "Long", - "filename": "", - "type": "SAM Search radar" - }, - "S-200_Launcher": { - "name": "S-200_Launcher", - "coalition": "Red", - "era": "Mid Cold War", - "label": "SA-5 Launcher", - "shortLabel": "S-200 Launcher", - "range": "Long", - "filename": "", - "type": "SAM Launcher" - }, - "Vulcan": { - "name": "Vulcan", - "coalition": "blue", - "era": "Late Cold War", - "label": "Vulcan", - "shortLabel": "Vulcan", - "filename": "", - "type": "AAA" - }, - "Hawk ln": { - "name": "Hawk ln", - "coalition": "blue", - "era": "Late Cold War", - "label": "Hawk Launcher", - "shortLabel": "Hawk ln", - "filename": "", - "type": "SAM Launcher" - }, - "M48 Chaparral": { - "name": "M48 Chaparral", - "coalition": "blue", - "era": "Late Cold War", - "label": "M48 Chaparral", - "shortLabel": "M48 Chaparral", - "filename": "", - "type": "SAM" - }, - "M6 Linebacker": { - "name": "M6 Linebacker", - "coalition": "blue", - "era": "Late Cold War", - "label": "M6 Linebacker", - "shortLabel": "M6 Linebacker", - "filename": "", - "type": "SAM" - }, - "Patriot ln": { - "name": "Patriot ln", - "coalition": "blue", - "era": "Late Cold War", - "label": "Patriot Launcher", - "shortLabel": "Patriot ln", - "range": "Long", - "filename": "", - "type": "SAM Launcher" - }, - "M1097 Avenger": { - "name": "M1097 Avenger", - "coalition": "blue", - "era": "Modern", - "label": "M1097 Avenger", - "shortLabel": "M1097 Avenger", - "filename": "", - "type": "SAM" - }, - "Patriot EPP": { - "name": "Patriot EPP", - "coalition": "blue", - "era": "Late Cold War", - "label": "Patriot Electric Power Plant", - "shortLabel": "Patriot EPP", - "range": "Long", - "filename": "", - "type": "SAM Support vehicle" - }, - "Patriot cp": { - "name": "Patriot cp", - "coalition": "blue", - "era": "Late Cold War", - "label": "Patriot Command Post", - "shortLabel": "Patriot cp", - "range": "Long", - "filename": "", - "type": "SAM Support vehicle" - }, - "Roland ADS": { - "name": "Roland ADS", - "coalition": "blue", - "era": "Late Cold War", - "label": "Roland ADS", - "shortLabel": "Roland ADS", - "filename": "", - "type": "SAM" - }, - "S-300PS 54K6 cp": { - "name": "S-300PS 54K6 cp", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 Command Post", - "shortLabel": "S-300PS 54K6 cp", - "range": "Long", - "filename": "", - "type": "SAM Support vehicle" - }, - "Stinger manpad GRG": { - "name": "Stinger manpad GRG", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger manpad GRG", - "shortLabel": "Stinger manpad GRG", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "Stinger manpad dsr": { - "name": "Stinger manpad dsr", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger manpad dsr", - "shortLabel": "Stinger manpad dsr", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "Stinger comm dsr": { - "name": "Stinger comm dsr", - "coalition": "red", - "era": "Late Cold War", - "label": "Stinger comm dsr", - "shortLabel": "Stinger comm dsr", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "Stinger manpad": { - "name": "Stinger manpad", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger manpad", - "shortLabel": "Stinger manpad", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "Stinger comm": { - "name": "Stinger comm", - "coalition": "blue", - "era": "Late Cold War", - "label": "Stinger comm", - "shortLabel": "Stinger comm", - "range": "Short", - "filename": "", - "type": "MANPADS" - }, - "ZSU-23-4 Shilka": { - "name": "ZSU-23-4 Shilka", - "coalition": "red", - "era": "Late Cold War", - "label": "ZSU-23-4 Shilka", - "shortLabel": "ZSU-23-4 Shilka", - "filename": "", - "type": "AAA" - }, - "ZU-23 Emplacement Closed": { - "name": "ZU-23 Emplacement Closed", - "coalition": "red", - "era": "Early Cold War", - "label": "ZU-23 Emplacement Closed", - "shortLabel": "ZU-23 Emplacement Closed", - "filename": "", - "type": "AAA" - }, - "ZU-23 Emplacement": { - "name": "ZU-23 Emplacement", - "coalition": "red", - "era": "Early Cold War", - "label": "ZU-23 Emplacement", - "shortLabel": "ZU-23 Emplacement", - "filename": "", - "type": "AAA" - }, - "ZU-23 Closed Insurgent": { - "name": "ZU-23 Closed Insurgent", - "coalition": "red", - "era": "Early Cold War", - "label": "ZU-23 Closed Insurgent", - "shortLabel": "ZU-23 Closed Insurgent", - "filename": "", - "type": "AAA" - }, - "Ural-375 ZU-23 Insurgent": { - "name": "Ural-375 ZU-23 Insurgent", - "coalition": "red", - "era": "Early Cold War", - "label": "Ural-375 ZU-23 Insurgent", - "shortLabel": "Ural-375 ZU-23 Insurgent", - "filename": "", - "type": "AAA" - }, - "ZU-23 Insurgent": { - "name": "ZU-23 Insurgent", - "coalition": "red", - "era": "Early Cold War", - "label": "ZU-23 Insurgent", - "shortLabel": "ZU-23 Insurgent", - "filename": "", - "type": "AAA" - }, - "Ural-375 ZU-23": { - "name": "Ural-375 ZU-23", - "coalition": "red", - "era": "Early Cold War", - "label": "Ural-375 ZU-23", - "shortLabel": "Ural-375 ZU-23", - "filename": "", - "type": "AAA" - }, - "1L13 EWR": { - "name": "1L13 EWR", - "coalition": "red", - "era": "Late Cold War", - "label": "Box Spring", - "shortLabel": "1L13 EWR", - "filename": "", - "type": "Radar" - }, - "Kub 1S91 str": { - "name": "Kub 1S91 str", - "coalition": "red", - "era": "Mid Cold War", - "label": "SA-6 Straight flush", - "shortLabel": "Kub 1S91 str", - "range": "Medium", - "filename": "", - "type": "SAM Search/Track radar" - }, - "S-300PS 40B6M tr": { - "name": "S-300PS 40B6M tr", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 Tin Shield", - "shortLabel": "S-300PS 40B6M tr", - "range": "Long", - "filename": "", - "type": "SAM Track radar" - }, - "S-300PS 40B6MD sr": { - "name": "S-300PS 40B6MD sr", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 Clam Shell", - "shortLabel": "S-300PS 40B6MD sr", - "range": "Long", - "filename": "", - "type": "SAM Search radar" - }, - "55G6 EWR": { - "name": "55G6 EWR", - "coalition": "red", - "era": "Early Cold War", - "label": "Tall Rack", - "shortLabel": "55G6 EWR", - "filename": "", - "type": "Radar" - }, - "S-300PS 64H6E sr": { - "name": "S-300PS 64H6E sr", - "coalition": "red", - "era": "Late Cold War", - "label": "SA-10 Big Bird", - "shortLabel": "S-300PS 64H6E sr", - "range": "Long", - "filename": "", - "type": "SAM Search radar" - }, - "SA-11 Buk SR 9S18M1": { - "name": "SA-11 Buk SR 9S18M1", - "coalition": "red", - "era": "Mid Cold War", - "label": "SA-11 Snown Drift", - "shortLabel": "SA-11 Buk SR 9S18M1", - "range": "Long", - "filename": "", - "type": "SAM Search radar" - }, - "Dog Ear radar": { - "name": "Dog Ear radar", - "coalition": "red", - "era": "Mid Cold War", - "label": "Dog Ear", - "shortLabel": "Dog Ear radar", - "filename": "", - "type": "SAM Search radar" - }, - "Hawk tr": { - "name": "Hawk tr", - "coalition": "blue", - "era": "Early Cold War", - "label": "Hawk Track radar", - "shortLabel": "Hawk tr", - "range": "Medium", - "filename": "", - "type": "SAM Track radar" - }, - "Hawk sr": { - "name": "Hawk sr", - "coalition": "blue", - "era": "Early Cold War", - "label": "Hawk Search radar", - "shortLabel": "Hawk sr", - "range": "Long", - "filename": "", - "type": "SAM Search radar" - }, - "Patriot str": { - "name": "Patriot str", - "coalition": "blue", - "era": "Late Cold War", - "label": "Patriot Search/Track radar", - "shortLabel": "Patriot str", - "range": "Medium", - "filename": "", - "type": "SAM Search/Track radar" - }, - "Hawk cwar": { - "name": "Hawk cwar", - "coalition": "blue", - "era": "Early Cold War", - "label": "Hawk Continous Wave Acquisition Radar", - "shortLabel": "Hawk cwar", - "range": "Long", - "filename": "", - "type": "SAM Track radar" - }, - "p-19 s-125 sr": { - "name": "p-19 s-125 sr", - "coalition": "red", - "era": "Mid Cold War", - "label": "SA-3 Flat Face B", - "shortLabel": "Flat Face B", - "filename": "", - "type": "SAM Search radar" - }, - "Roland Radar": { - "name": "Roland Radar", - "coalition": "blue", - "era": "Mid Cold War", - "label": "Roland Search radar", - "shortLabel": "Roland Radar", - "filename": "", - "type": "SAM Search radar" - }, - "snr s-125 tr": { - "name": "snr s-125 tr", - "coalition": "red", - "era": "Early Cold War", - "label": "SA-3 Low Blow", - "shortLabel": "snr s-125 tr", - "range": "Medium", - "filename": "", - "type": "SAM Track radar" - }, - "house1arm": { - "name": "house1arm", - "coalition": "", - "era": "", - "label": "house1arm", - "shortLabel": "house1arm", - "filename": "", - "type": "Structure" - }, - "house2arm": { - "name": "house2arm", - "coalition": "", - "era": "", - "label": "house2arm", - "shortLabel": "house2arm", - "filename": "", - "type": "Structure" - }, - "outpost_road": { - "name": "outpost_road", - "coalition": "", - "era": "", - "label": "outpost_road", - "shortLabel": "outpost_road", - "filename": "", - "type": "Structure" - }, - "outpost": { - "name": "outpost", - "coalition": "", - "era": "", - "label": "outpost", - "shortLabel": "outpost", - "filename": "", - "type": "Structure" - }, - "houseA_arm": { - "name": "houseA_arm", - "coalition": "", - "era": "", - "label": "houseA_arm", - "shortLabel": "houseA_arm", - "filename": "", - "type": "Structure" - }, - "Challenger2": { - "name": "Challenger2", - "coalition": "blue", - "era": "Modern", - "label": "Challenger2", - "shortLabel": "Challenger2", - "filename": "", - "type": "Tank" - }, - "Leclerc": { - "name": "Leclerc", - "coalition": "blue", - "era": "Modern", - "label": "Leclerc", - "shortLabel": "Leclerc", - "filename": "", - "type": "Tank" - }, - "Leopard1A3": { - "name": "Leopard1A3", - "coalition": "blue", - "era": "Mid Cold War", - "label": "Leopard1A3", - "shortLabel": "Leopard1A3", - "filename": "", - "type": "Tank" - }, - "Leopard-2": { - "name": "Leopard-2", - "coalition": "blue", - "era": "Late Cold War", - "label": "Leopard-2", - "shortLabel": "Leopard-2", - "filename": "", - "type": "Tank" - }, - "M-60": { - "name": "M-60", - "coalition": "blue", - "era": "Early Cold War", - "label": "M-60", - "shortLabel": "M-60", - "filename": "", - "type": "Tank" - }, - "M1128 Stryker MGS": { - "name": "M1128 Stryker MGS", - "coalition": "blue", - "era": "Modern", - "label": "M1128 Stryker MGS", - "shortLabel": "M1128 Stryker MGS", - "filename": "", - "type": "SPG" - }, - "M-1 Abrams": { - "name": "M-1 Abrams", - "coalition": "blue", - "era": "Late Cold War", - "label": "M-1 Abrams", - "shortLabel": "M-1 Abrams", - "filename": "", - "type": "Tank" - }, - "T-55": { - "name": "T-55", - "coalition": "red", - "era": "Early Cold War", - "label": "T-55", - "shortLabel": "T-55", - "filename": "", - "type": "Tank" - }, - "T-72B": { - "name": "T-72B", - "coalition": "red", - "era": "Mid Cold War", - "label": "T-72B", - "shortLabel": "T-72B", - "filename": "", - "type": "Tank" - }, - "T-80UD": { - "name": "T-80UD", - "coalition": "red", - "era": "Mid Cold War", - "label": "T-80UD", - "shortLabel": "T-80UD", - "filename": "", - "type": "Tank" - }, - "T-90": { - "name": "T-90", - "coalition": "red", - "era": "Late Cold War", - "label": "T-90", - "shortLabel": "T-90", - "filename": "", - "type": "Tank" - }, - "Ural-4320 APA-5D": { - "name": "Ural-4320 APA-5D", - "coalition": "red", - "era": "Early Cold War", - "label": "Ural-4320 APA-5D", - "shortLabel": "Ural-4320 APA-5D", - "filename": "", - "type": "Unarmed" - }, - "ATMZ-5": { - "name": "ATMZ-5", - "coalition": "red", - "era": "Early Cold War", - "label": "ATMZ-5", - "shortLabel": "ATMZ-5", - "filename": "", - "type": "Unarmed" - }, - "ATZ-10": { - "name": "ATZ-10", - "coalition": "red", - "era": "Early Cold War", - "label": "ATZ-10", - "shortLabel": "ATZ-10", - "filename": "", - "type": "Unarmed" - }, - "GAZ-3307": { - "name": "GAZ-3307", - "coalition": "red", - "era": "Early Cold War", - "label": "GAZ-3307", - "shortLabel": "GAZ-3307", - "filename": "", - "type": "Unarmed" - }, - "GAZ-3308": { - "name": "GAZ-3308", - "coalition": "red", - "era": "Early Cold War", - "label": "GAZ-3308", - "shortLabel": "GAZ-3308", - "filename": "", - "type": "Unarmed" - }, - "GAZ-66": { - "name": "GAZ-66", - "coalition": "red", - "era": "Early Cold War", - "label": "GAZ-66", - "shortLabel": "GAZ-66", - "filename": "", - "type": "Unarmed" - }, - "M978 HEMTT Tanker": { - "name": "M978 HEMTT Tanker", - "coalition": "blue", - "era": "Mid Cold War", - "label": "M978 HEMTT Tanker", - "shortLabel": "M978 HEMTT Tanker", - "filename": "", - "type": "Unarmed" - }, - "HEMTT TFFT": { - "name": "HEMTT TFFT", - "coalition": "blue", - "era": "Late Cold War", - "label": "HEMTT TFFT", - "shortLabel": "HEMTT TFFT", - "filename": "", - "type": "Unarmed" - }, - "IKARUS Bus": { - "name": "IKARUS Bus", - "coalition": "red", - "era": "Mid Cold War", - "label": "IKARUS Bus", - "shortLabel": "IKARUS Bus", - "filename": "", - "type": "Unarmed" - }, - "KAMAZ Truck": { - "name": "KAMAZ Truck", - "coalition": "red", - "era": "Mid Cold War", - "label": "KAMAZ Truck", - "shortLabel": "KAMAZ Truck", - "filename": "", - "type": "Unarmed" - }, - "LAZ Bus": { - "name": "LAZ Bus", - "coalition": "red", - "era": "Early Cold War", - "label": "LAZ Bus", - "shortLabel": "LAZ Bus", - "filename": "", - "type": "Unarmed" - }, - "Hummer": { - "name": "Hummer", - "coalition": "blue", - "era": "Mid Cold War", - "label": "Hummer", - "shortLabel": "Hummer", - "filename": "", - "type": "Unarmed" - }, - "M 818": { - "name": "M 818", - "coalition": "blue", - "era": "Early Cold War", - "label": "M 818", - "shortLabel": "M 818", - "filename": "", - "type": "Unarmed" - }, - "MAZ-6303": { - "name": "MAZ-6303", - "coalition": "red", - "era": "Mid Cold War", - "label": "MAZ-6303", - "shortLabel": "MAZ-6303", - "filename": "", - "type": "Unarmed" - }, - "Predator GCS": { - "name": "Predator GCS", - "coalition": "blue", - "era": "Late Cold War", - "label": "Predator GCS", - "shortLabel": "Predator GCS", - "filename": "", - "type": "Unarmed" - }, - "Predator TrojanSpirit": { - "name": "Predator TrojanSpirit", - "coalition": "blue", - "era": "Late Cold War", - "label": "Predator TrojanSpirit", - "shortLabel": "Predator TrojanSpirit", - "filename": "", - "type": "Unarmed" - }, - "Suidae": { - "name": "Suidae", - "coalition": "", - "era": "Modern", - "label": "Suidae", - "shortLabel": "Suidae", - "filename": "", - "type": "Unarmed" - }, - "Tigr_233036": { - "name": "Tigr_233036", - "coalition": "red", - "era": "Late Cold War", - "label": "Tigr_233036", - "shortLabel": "Tigr_233036", - "filename": "", - "type": "Unarmed" - }, - "Trolley bus": { - "name": "Trolley bus", - "coalition": "blue", - "era": "Late Cold War", - "label": "Trolley bus", - "shortLabel": "Trolley bus", - "filename": "", - "type": "Unarmed" - }, - "UAZ-469": { - "name": "UAZ-469", - "coalition": "red", - "era": "Mid Cold War", - "label": "UAZ-469", - "shortLabel": "UAZ-469", - "filename": "", - "type": "Unarmed" - }, - "Ural ATsP-6": { - "name": "Ural ATsP-6", - "coalition": "red", - "era": "Mid Cold War", - "label": "Ural ATsP-6", - "shortLabel": "Ural ATsP-6", - "filename": "", - "type": "Unarmed" - }, - "Ural-375 PBU": { - "name": "Ural-375 PBU", - "coalition": "red", - "era": "Mid Cold War", - "label": "Ural-375 PBU", - "shortLabel": "Ural-375 PBU", - "filename": "", - "type": "Unarmed" - }, - "Ural-375": { - "name": "Ural-375", - "coalition": "red", - "era": "Mid Cold War", - "label": "Ural-375", - "shortLabel": "Ural-375", - "filename": "", - "type": "Unarmed" - }, - "Ural-4320-31": { - "name": "Ural-4320-31", - "coalition": "red", - "era": "Late Cold War", - "label": "Ural-4320-31", - "shortLabel": "Ural-4320-31", - "filename": "", - "type": "Unarmed" - }, - "Ural-4320T": { - "name": "Ural-4320T", - "coalition": "red", - "era": "Late Cold War", - "label": "Ural-4320T", - "shortLabel": "Ural-4320T", - "filename": "", - "type": "Unarmed" - }, - "VAZ Car": { - "name": "VAZ Car", - "coalition": "red", - "era": "Early Cold War", - "label": "VAZ Car", - "shortLabel": "VAZ Car", - "filename": "", - "type": "Unarmed" - }, - "ZiL-131 APA-80": { - "name": "ZiL-131 APA-80", - "coalition": "red", - "era": "Early Cold War", - "label": "ZiL-131 APA-80", - "shortLabel": "ZiL-131 APA-80", - "filename": "", - "type": "Unarmed" - }, - "SKP-11": { - "name": "SKP-11", - "coalition": "red", - "era": "Early Cold War", - "label": "SKP-11", - "shortLabel": "SKP-11", - "filename": "", - "type": "Unarmed" - }, - "ZIL-131 KUNG": { - "name": "ZIL-131 KUNG", - "coalition": "red", - "era": "Early Cold War", - "label": "ZIL-131 KUNG", - "shortLabel": "ZIL-131 KUNG", - "filename": "", - "type": "Unarmed" - }, - "ZIL-4331": { - "name": "ZIL-4331", - "coalition": "red", - "era": "Early Cold War", - "label": "ZIL-4331", - "shortLabel": "ZIL-4331", - "filename": "", - "type": "Unarmed" - } - } + super('databases/groundunitdatabase.json'); } getSpawnPointsByName(name: string) { diff --git a/client/src/unit/helicopterdatabase.ts b/client/src/unit/helicopterdatabase.ts index 4b08916f..41d2f8e8 100644 --- a/client/src/unit/helicopterdatabase.ts +++ b/client/src/unit/helicopterdatabase.ts @@ -4,594 +4,7 @@ import { UnitDatabase } from "./unitdatabase" export class HelicopterDatabase extends UnitDatabase { constructor() { - super(); - - this.blueprints = { - "AH-64D_BLK_II": { - "name": "AH-64D_BLK_II", - "coalition": "blue", - "era": "Modern", - "label": "AH-64D Apache", - "shortLabel": "AH64", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "AGM-114k Hellfire", - "quantity": 8 - }, - { - "name": "M151 Rocket Pod", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "2 * M261: M151 (6PD), 2 * Hellfire station: 4*AGM-114K", - "name": "Gun / ATGM / Rocket" - }, - { - "fuel": 1, - "items": [ - { - "name": "AGM-114K Hellfire", - "quantity": 16 - } - ], - "roles": [ - "CAS" - ], - "code": "4 * Hellfire station: 4*AGM-114K", - "name": "Gun / ATGM" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "ah-64.png" - }, - "Ka-50_3": { - "name": "Ka-50_3", - "coalition": "red", - "era": "Late Cold War", - "label": "Ka-50 Hokum A", - "shortLabel": "K50", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Igla", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "4xIgla", - "name": "Gun / Fox 2" - }, - { - "fuel": 1, - "items": [ - { - "name": "Igla", - "quantity": 4 - }, - { - "name": "S-13", - "quantity": 10 - }, - { - "name": "Kh-25ML", - "quantity": 2 - } - ], - "roles": [ - "Anti-Ship" - ], - "code": "2xKh-25ML, 10xS-13, 4xIgla", - "name": "Gun / ASM / Rockets / Fox 2" - }, - { - "fuel": 1, - "items": [ - { - "name": "Igla", - "quantity": 4 - }, - { - "name": "S-80FP", - "quantity": 40 - }, - { - "name": "Vikhr-M", - "quantity": 12 - } - ], - "roles": [ - "CAS" - ], - "code": "12x9A4172, 40xS-8OFP, 4xIgla", - "name": "Gun / ATGM / Rockets / Fox 2" - }, - { - "fuel": 1, - "items": [ - { - "name": "Igla", - "quantity": 4 - }, - { - "name": "S-80FP", - "quantity": 40 - }, - { - "name": "Vikhr-M", - "quantity": 12 - } - ], - "roles": [ - "CAS" - ], - "code": "12x9A4172, 40xS-8OFP, 4xIgla", - "name": "Gun / ATGM" - }, - { - "fuel": 1, - "items": [ - { - "name": "Igla", - "quantity": 4 - }, - { - "name": "FAB-500", - "quantity": 2 - }, - { - "name": "S-13", - "quantity": 10 - } - ], - "roles": [ - "Strike" - ], - "code": "10xS-13, 2xFAB-500, 4xIgla", - "name": "Gun / Bombs / Rockets / Fox 2" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "ka-50.png" - }, - "Mi-24P": { - "name": "Mi-24P", - "coalition": "red", - "era": "Mid Cold War", - "label": "Mi-24P Hind", - "shortLabel": "Mi24", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "S-8KOM", - "quantity": 40 - }, - { - "name": "9M114 ATGM", - "quantity": 8 - } - ], - "roles": [ - "CAS" - ], - "code": "2xB8V20 (S-8KOM)+8xATGM 9M114", - "name": "Gun / ATGM / Rockets" - }, - { - "fuel": 1, - "items": [ - { - "name": "S-24B", - "quantity": 4 - }, - { - "name": "9M114 ATGM", - "quantity": 4 - } - ], - "roles": [ - "Strike" - ], - "code": "4xS-24B+4xATGM 9M114", - "name": "Gun / ATGM / Rockets" - }, - { - "fuel": 1, - "items": [ - { - "name": "GUV-1 Grenade Launcher", - "quantity": 4 - }, - { - "name": "9M114 ATGM", - "quantity": 4 - } - ], - "roles": [ - "CAS" - ], - "code": "4xGUV-1 AP30+4xATGM 9M114", - "name": "Gun / ATGM / Grenade Launcher" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mi-24.png" - }, - "SA342L": { - "name": "SA342L", - "coalition": "blue", - "era": "Mid Cold War", - "label": "SA342L Gazelle", - "shortLabel": "342", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "20mm Cannon", - "quantity": 1 - }, - { - "name": "SNEB68", - "quantity": 8 - } - ], - "roles": [ - "Recon" - ], - "code": "M621, 8xSNEB68 EAP", - "name": "Gun / ATGM / Rockets" - } - ], - "filename": "sa-342.png" - }, - "SA342M": { - "name": "SA342M", - "coalition": "blue", - "era": "Mid Cold War", - "label": "SA342M Gazelle", - "shortLabel": "342", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "HOT3", - "quantity": 4 - } - ], - "roles": [ - "CAS" - ], - "code": "HOT3x4", - "name": "ATGM" - } - ], - "filename": "sa-342.png" - }, - "SA342Mistral": { - "name": "SA342Mistral", - "coalition": "blue", - "era": "Mid Cold War", - "label": "SA342Mistral Gazelle", - "shortLabel": "342", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "Mistral", - "quantity": 4 - } - ], - "roles": [ - "CAP" - ], - "code": "Mistral x 4", - "name": "Fox 2" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "sa-342.png" - }, - "AH-1W": { - "name": "AH-1W", - "coalition": "blue", - "era": "Mid Cold War", - "label": "AH-1W Cobra", - "shortLabel": "AH1", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "BGM-71 TOW", - "quantity": 8 - }, - { - "name": "Hydra-70 WP", - "quantity": 38 - } - ], - "roles": [ - "CAS" - ], - "code": "8xBGM-71, 38xHYDRA-70 WP", - "name": "TOW / Hydra" - }, - { - "fuel": 1, - "items": [ - { - "name": "Hydra-70", - "quantity": 76 - } - ], - "roles": [ - "CAS" - ], - "code": "76xHYDRA-70", - "name": "Hydra" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "ah-1.png" - }, - "Mi-26": { - "name": "Mi-26", - "coalition": "red", - "era": "Late Cold War", - "label": "Mi-26 Halo", - "shortLabel": "M26", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mi-26.png" - }, - "Mi-28N": { - "name": "Mi-28N", - "coalition": "red", - "era": "Modern", - "label": "Mi-28N Havoc", - "shortLabel": "M28", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "9M114 Shturm", - "quantity": 16 - }, - { - "name": "S-8", - "quantity": 40 - } - ], - "roles": [ - "CAS" - ], - "code": "16x9M114, 40xS-8", - "name": "ATGM / S-8" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mi-28.png" - }, - "Mi-8MT": { - "name": "Mi-8MT", - "coalition": "red", - "era": "Mid Cold War", - "label": "Mi-8MT Hip", - "shortLabel": "Mi8", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "UPK", - "quantity": 2 - }, - { - "name": "B8", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "2 x UPK +2 x B8", - "name": "Rockets / Gunpods" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "mi-8.png" - }, - "SH-60B": { - "name": "SH-60B", - "coalition": "blue", - "era": "Mid Cold War", - "label": "SH-60B Seahawk", - "shortLabel": "S60", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "AGM-119 ASM", - "quantity": 1 - } - ], - "roles": [ - "CAS" - ], - "code": "AGM-119", - "name": "ASM" - }, - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "uh-60.png" - }, - "UH-60A": { - "name": "UH-60A", - "coalition": "blue", - "era": "Mid Cold War", - "label": "UH-60A Blackhawk", - "shortLabel": "U60", - "loadouts": [ - { - "fuel": 1, - "items": [ - - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "uh-60.png" - }, - "UH-1H": { - "name": "UH-1H", - "coalition": "blue", - "era": "Early Cold War", - "label": "UH-1H Huey", - "shortLabel": "UH1", - "loadouts": [ - { - "fuel": 1, - "items": [ - { - "name": "M134 Minigun", - "quantity": 2 - }, - { - "name": "XM-158", - "quantity": 2 - } - ], - "roles": [ - "CAS" - ], - "code": "M134 Minigun*2, XM158*2", - "name": "Miniguns / XM158" - }, - { - "fuel": 1, - "items": [ - ], - "roles": [ - "Transport" - ], - "code": "", - "name": "Empty Loadout" - } - ], - "filename": "uh-1.png" - } - } + super('databases/helicopterdatabase.json'); } getSpawnPointsByName(name: string) { diff --git a/client/src/unit/navyunitdatabase.ts b/client/src/unit/navyunitdatabase.ts index e4c72d1f..f556ff35 100644 --- a/client/src/unit/navyunitdatabase.ts +++ b/client/src/unit/navyunitdatabase.ts @@ -4,460 +4,7 @@ import { UnitDatabase } from "./unitdatabase" export class NavyUnitDatabase extends UnitDatabase { constructor() { - super(); - - this.blueprints = { - "Type_052B": { - "name": "Type_052B", - "coalition": "red", - "type": "Destroyer", - "era": "Modern", - "label": "052B DDG-168 Guangzhou", - "shortLabel": "Type 52B", - "range": "Short", - "filename": "" - }, - "Type_052C": { - "name": "Type_052C", - "coalition": "red", - "type": "Destroyer", - "era": "Modern", - "label": "052C DDG-171 Haikou", - "shortLabel": "Type 52C", - "range": "Short", - "filename": "" - }, - "Type_054A": { - "name": "", - "coalition": "red", - "type": "Frigate", - "era": "Modern", - "label": "054A FFG-538 Yantai", - "shortLabel": "Type 54A", - "range": "Medium", - "filename": "" - }, - "Type_071": { - "name": "Type_071", - "coalition": "red", - "type": "Transport", - "era": "Modern", - "label": "Type 071", - "shortLabel": "Type 071", - "range": "", - "filename": "" - }, - "Type_093": { - "name": "Type_093", - "coalition": "red", - "type": "Submarine", - "era": "Modern", - "label": "Type 093", - "shortLabel": "Type 093", - "range": "", - "filename": "" - }, - "santafe": { - "name": "santafe", - "coalition": "", - "type": "Submarine", - "era": "Early Cold War", - "label": "ARA Santa Fe S-21", - "shortLabel": "ARA Santa", - "range": "", - "filename": "" - }, - "ara_vdm": { - "name": "ara_vdm", - "coalition": "", - "type": "Aircraft Carrier", - "era": "Mid Cold War", - "label": "ARA Vienticinco de Mayo", - "shortLabel": "ARA Vienticinco de Mayo", - "range": "", - "filename": "" - }, - "kuznecow": { - "name": "kuznecow", - "coalition": "red", - "type": "Aircraft Carrier", - "era": "Late Cold War", - "label": "Admiral Kuznetsov", - "shortLabel": "Admiral Kuznetsov", - "range": "Medium", - "filename": "" - }, - "albatros": { - "name": "albatros", - "coalition": "red", - "type": "Aircraft Carrier", - "era": "Early Cold War", - "label": "Albatros (Grisha-5)", - "shortLabel": "Albatros", - "range": "", - "filename": "" - }, - "leander-gun-condell": { - "name": "leander-gun-condell", - "coalition": "", - "type": "Frigate", - "era": "Mid Cold War", - "label": "Almirante Condell PFG-06", - "shortLabel": "Almirante Condell", - "range": "", - "filename": "" - }, - "Boat Armed Hi-Speed": { - "name": "Boat Armed Hi-Speed", - "coalition": "", - "type": "Fast Attack Craft", - "era": "Mid Cold War", - "label": "Boat Armed Hi-Speed", - "shortLabel": "Boat Armed Hi-Speed", - "range": "", - "filename": "" - }, - "HandyWind": { - "name": "HandyWind", - "coalition": "blue", - "type": "Cargoship", - "era": "Late Cold War", - "label": "Bulker Handy Wind", - "shortLabel": "Bulker Handy Wind", - "range": "", - "filename": "" - }, - "CV_1143_5": { - "name": "CV_1143_5", - "coalition": "red", - "type": "Aircraft Carrier", - "era": "Modern", - "label": "CV Admiral Kuznetsov(2017)", - "shortLabel": "Admiral Kuznetsov(2017)", - "range": "Medium", - "filename": "" - }, - "CV_59": { - "name": "CV_59", - "coalition": "blue", - "type": "Aircraft Carrier", - "era": "Early Cold War", - "label": "CV-59 Forrestal", - "shortLabel": "CV-59", - "range": "Short", - "filename": "" - }, - "CVN_71": { - "name": "CVN_71", - "coalition": "blue", - "type": "Super Aircraft Carrier", - "era": "Late Cold War", - "label": "CVN-71 Theodore Roosevelt", - "shortLabel": "CVN-71", - "range": "Short", - "filename": "" - }, - "CVN_72": { - "name": "CVN_72", - "coalition": "blue", - "type": "Super Aircraft Carrier", - "era": "Late Cold War", - "label": "CVN-72 Abraham Lincoln", - "shortLabel": "CVN-72", - "range": "Short", - "filename": "" - }, - "CVN_73": { - "name": "CVN_73", - "coalition": "blue", - "type": "Super Aircraft Carrier", - "era": "Late Cold War", - "label": "CVN-73 George Washington", - "shortLabel": "CVN-73", - "range": "Medium", - "filename": "" - }, - "Stennis": { - "name": "Stennis", - "coalition": "blue", - "type": "Aircraft Carrier", - "era": "Late Cold War", - "label": "CVN-74 John C. Stennis", - "shortLabel": "CVN-74", - "range": "Medium", - "filename": "" - }, - "CVN_75": { - "name": "CVN_75", - "coalition": "blue", - "type": "Aircraft Carrier", - "era": "Late Cold War", - "label": "CVN-75 Harry S. Truman", - "shortLabel": "CVN-75", - "range": "Medium", - "filename": "" - }, - "CastleClass_01": { - "name": "CastleClass_01", - "coalition": "blue", - "type": "Patrol", - "era": "Mid Cold War", - "label": "HMS Leeds Castle (P-258)", - "shortLabel": "HMS Leeds Castle (P-258)", - "range": "", - "filename": "" - }, - "USS_Arleigh_Burke_IIa": { - "name": "USS_Arleigh_Burke_IIa", - "coalition": "blue", - "type": "Destroyer", - "era": "Late Cold War", - "label": "DDG Arleigh Burke lla", - "shortLabel": "DDG Arleigh Burke", - "range": "Medium", - "filename": "" - }, - "barge-1": { - "name": "barge-1", - "coalition": "red", - "type": "Cargoship", - "era": "Late Cold War", - "label": "Dry cargo ship Ivanov", - "shortLabel": "Dry cargo ship Ivanov", - "range": "", - "filename": "" - }, - "barge-2": { - "name": "barge-2", - "coalition": "red", - "type": "Cargoship", - "era": "Late Cold War", - "label": "Dry cargo ship Yakushev", - "shortLabel": "Dry cargo ship Yakushev", - "range": "", - "filename": "" - }, - "elnya": { - "name": "elnya", - "coalition": "red", - "type": "Tanker", - "era": "Late Cold War", - "label": "Elnya tanker", - "shortLabel": "Elnya tanker", - "range": "", - "filename": "" - }, - "La_Combattante_II": { - "name": "La_Combattante_II", - "coalition": "blue", - "type": "Fast Attack Craft", - "era": "Mid Cold War", - "label": "FAC La Combattante lla", - "shortLabel": "FAC La Combattante", - "range": "", - "filename": "" - }, - "leander-gun-achilles": { - "name": "leander-gun-achilles", - "coalition": "blue", - "type": "Frigate", - "era": "Mid Cold War", - "label": "HMS Achilles (F12)", - "shortLabel": "HMS Achilles", - "range": "", - "filename": "" - }, - "leander-gun-andromeda": { - "name": "leander-gun-andromeda", - "coalition": "blue", - "type": "Frigate", - "era": "Mid Cold War", - "label": "HMS Andromeda (F57)", - "shortLabel": "HMS Andromeda", - "range": "", - "filename": "" - }, - "leander-gun-ariadne": { - "name": "leander-gun-ariadne", - "coalition": "blue", - "type": "Frigate", - "era": "Mid Cold War", - "label": "HMS Ariadne (F72)", - "shortLabel": "HMS Ariadne", - "range": "", - "filename": "" - }, - "leander-gun-lynch": { - "name": "leander-gun-lynch", - "coalition": "", - "type": "Frigate", - "era": "Mid Cold War", - "label": "CNS Almirante Lynch (PFG-07)", - "shortLabel": "CNS Almirante Lynch", - "range": "", - "filename": "" - }, - "hms_invincible": { - "name": "hms_invincible", - "coalition": "blue", - "type": "Aircraft Carrier", - "era": "Mid Cold War", - "label": "HMS Invincible (R05)", - "shortLabel": "HMS Invincible", - "range": "", - "filename": "" - }, - "HarborTug": { - "name": "HarborTug", - "coalition": "", - "type": "Tug", - "era": "Mid Cold War", - "label": "Harbor Tug", - "shortLabel": "Harbor Tug", - "range": "", - "filename": "" - }, - "kilo_636": { - "name": "kilo_636", - "coalition": "red", - "type": "Submarine", - "era": "Late Cold War", - "label": "Project 636 Varshavyanka Improved", - "shortLabel": "Varshavyanka Improved", - "range": "Medium", - "filename": "" - }, - "kilo": { - "name": "kilo", - "coalition": "red", - "type": "Submarine", - "era": "Late Cold War", - "label": "Project 636 Varshavyanka Basic", - "shortLabel": "Varshavyanka Basic", - "range": "Medium", - "filename": "" - }, - "LHA_Tarawa": { - "name": "LHA_Tarawa", - "coalition": "blue", - "type": "Aircraft Carrier", - "era": "Mid Cold War", - "label": "LHA-1 Tarawa", - "shortLabel": "LHA-1 Tarawa", - "range": "Short", - "filename": "" - }, - "BDK-775": { - "name": "BDK-775", - "coalition": "blue", - "type": "Landing Craft", - "era": "Mid Cold War", - "label": "LS Ropucha", - "shortLabel": "LS Ropucha", - "range": "", - "filename": "" - }, - "molniya": { - "name": "molniya", - "coalition": "", - "type": "Fast Attack Craft", - "era": "Late Cold War", - "label": "Molniya (Tarantul-3)", - "shortLabel": "Molniya", - "range": "Short", - "filename": "" - }, - "moscow": { - "name": "moscow", - "coalition": "red", - "type": "Cruiser", - "era": "Late Cold War", - "label": "Moscow", - "shortLabel": "Moscow", - "range": "Medium", - "filename": "" - }, - "neustrash": { - "name": "neustrash", - "coalition": "red", - "type": "Frigate", - "era": "Late Cold War", - "label": "Neustrashimy", - "shortLabel": "Neustrashimy", - "range": "Short", - "filename": "" - }, - "perry": { - "name": "perry", - "coalition": "blue", - "type": "Frigate", - "era": "Mid Cold War", - "label": "Oliver H. Perry", - "shortLabel": "Oliver H. Perry", - "range": "Medium", - "filename": "" - }, - "piotr_velikiy": { - "name": "piotr_velikiy", - "coalition": "red", - "type": "Cruiser", - "era": "Late Cold War", - "label": "Pyotr Velikiy", - "shortLabel": "Pyotr Velikiy", - "range": "Medium", - "filename": "" - }, - "rezky": { - "name": "Rezky (Krivak-2)", - "coalition": "red", - "type": "Frigate", - "era": "Early Cold War", - "label": "Rezky (Krivak-2)", - "shortLabel": "Rezky", - "range": "Short", - "filename": "" - }, - "Ship_Tilde_Supply": { - "name": "Ship_Tilde_Supply", - "coalition": "blue", - "type": "Transport", - "era": "Late Cold War", - "label": "Supply Ship MV Tilde", - "shortLabel": "Supply Ship Tilde", - "range": "", - "filename": "" - }, - "Seawise_Giant": { - "name": "Seawise_Giant", - "coalition": "blue", - "type": "Tanker", - "era": "Late Cold War", - "label": "Tanker Seawise Giant", - "shortLabel": "Seawise Giant", - "range": "", - "filename": "" - }, - "TICONDEROG": { - "name": "TICONDEROG", - "coalition": "blue", - "type": "Cruiser", - "era": "Late Cold War", - "label": "Ticonderoga", - "shortLabel": "Ticonderoga", - "range": "Medium", - "filename": "" - }, - "zwezdny": { - "name": "zwezdny", - "coalition": "", - "type": "Civilian Boat", - "era": "Modern", - "label": "Zwezdny", - "shortLabel": "Zwezdny", - "range": "", - "filename": "" - } - } + super('databases/navyunitdatabase.json'); } getSpawnPointsByName(name: string) { diff --git a/client/src/unit/unitdatabase.ts b/client/src/unit/unitdatabase.ts index 7f8e61fe..e962284c 100644 --- a/client/src/unit/unitdatabase.ts +++ b/client/src/unit/unitdatabase.ts @@ -5,8 +5,21 @@ import { GAME_MASTER } from "../constants/constants"; export class UnitDatabase { blueprints: { [key: string]: UnitBlueprint } = {}; - constructor() { - + constructor(url: string = "") { + if (url !== "") { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.responseType = 'json'; + xhr.onload = () => { + var status = xhr.status; + if (status === 200) { + this.blueprints = xhr.response; + } else { + console.error(`Error retrieving database from ${url}`) + } + }; + xhr.send(); + } } getCategory() { From 27d77f97db9c068ac1d429a5d51ccb9bfe5142c0 Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Thu, 10 Aug 2023 17:50:10 +0200 Subject: [PATCH 2/4] Added livery ID --- client/public/databases/aircraftdatabase.json | 1 + client/src/@types/unitdatabase.d.ts | 1 + client/src/controls/mapcontextmenu.ts | 12 +++++++---- client/src/mission/missionhandler.ts | 2 +- client/src/unit/unit.ts | 5 +++++ client/src/unit/unitsmanager.ts | 13 ++++++++---- scripts/OlympusCommand.lua | 9 ++++++--- src/core/include/commands.h | 16 +++++++++++---- src/core/src/commands.cpp | 12 +++++++---- src/core/src/scheduler.cpp | 20 +++++++++++++++---- 10 files changed, 67 insertions(+), 24 deletions(-) diff --git a/client/public/databases/aircraftdatabase.json b/client/public/databases/aircraftdatabase.json index caab8031..a6db3432 100644 --- a/client/public/databases/aircraftdatabase.json +++ b/client/public/databases/aircraftdatabase.json @@ -1230,6 +1230,7 @@ "name": "Empty Loadout" } ], + "liveryID": ["ir iriaf 43rd tfs"], "filename": "f-5.png" }, "F-86F Sabre": { diff --git a/client/src/@types/unitdatabase.d.ts b/client/src/@types/unitdatabase.d.ts index 704cf88e..f906f4b8 100644 --- a/client/src/@types/unitdatabase.d.ts +++ b/client/src/@types/unitdatabase.d.ts @@ -22,4 +22,5 @@ interface UnitBlueprint { range?: string; loadouts?: LoadoutBlueprint[]; filename?: string; + liveryID?: string; } diff --git a/client/src/controls/mapcontextmenu.ts b/client/src/controls/mapcontextmenu.ts index 5d472fc9..1d51952c 100644 --- a/client/src/controls/mapcontextmenu.ts +++ b/client/src/controls/mapcontextmenu.ts @@ -92,7 +92,8 @@ export class MapContextMenu extends ContextMenu { document.addEventListener("contextMenuDeployAircrafts", () => { this.#spawnOptions.coalition = getActiveCoalition(); if (this.#spawnOptions) { - var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng, altitude: this.#spawnOptions.altitude, loadout: this.#spawnOptions.loadout}; + const liveryID = aircraftDatabase.getByName(this.#spawnOptions.name)?.liveryID; + var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng, altitude: this.#spawnOptions.altitude, loadout: this.#spawnOptions.loadout, liveryID: liveryID? liveryID: ""}; var units = []; for (let i = 1; i < parseInt(this.#aircraftCountDropdown.getValue()) + 1; i++) { units.push(unitTable); @@ -107,7 +108,8 @@ export class MapContextMenu extends ContextMenu { document.addEventListener("contextMenuDeployHelicopters", () => { this.#spawnOptions.coalition = getActiveCoalition(); if (this.#spawnOptions) { - var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng, altitude: this.#spawnOptions.altitude, loadout: this.#spawnOptions.loadout}; + const liveryID = aircraftDatabase.getByName(this.#spawnOptions.name)?.liveryID; + var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng, altitude: this.#spawnOptions.altitude, loadout: this.#spawnOptions.loadout, liveryID: liveryID? liveryID: ""}; var units = []; for (let i = 1; i < parseInt(this.#helicopterCountDropdown.getValue()) + 1; i++) { units.push(unitTable); @@ -122,7 +124,8 @@ export class MapContextMenu extends ContextMenu { document.addEventListener("contextMenuDeployGroundUnits", () => { this.#spawnOptions.coalition = getActiveCoalition(); if (this.#spawnOptions) { - var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng}; + const liveryID = aircraftDatabase.getByName(this.#spawnOptions.name)?.liveryID; + var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng, liveryID: liveryID? liveryID: ""}; var units = []; for (let i = 1; i < parseInt(this.#groundUnitCountDropdown.getValue()) + 1; i++) { units.push(JSON.parse(JSON.stringify(unitTable))); @@ -138,7 +141,8 @@ export class MapContextMenu extends ContextMenu { document.addEventListener("contextMenuDeployNavyUnits", () => { this.#spawnOptions.coalition = getActiveCoalition(); if (this.#spawnOptions) { - var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng}; + const liveryID = aircraftDatabase.getByName(this.#spawnOptions.name)?.liveryID; + var unitTable = {unitType: this.#spawnOptions.name, location: this.#spawnOptions.latlng, liveryID: liveryID? liveryID: ""}; var units = []; for (let i = 1; i < parseInt(this.#navyUnitCountDropdown.getValue()) + 1; i++) { units.push(JSON.parse(JSON.stringify(unitTable))); diff --git a/client/src/mission/missionhandler.ts b/client/src/mission/missionhandler.ts index 52436620..facf7682 100644 --- a/client/src/mission/missionhandler.ts +++ b/client/src/mission/missionhandler.ts @@ -77,7 +77,7 @@ export class MissionHandler { this.#dateAndTime = data.mission.dateAndTime; /* Set the coalition countries */ - this.#coalitions = data.mission.coalitions; + //this.#coalitions = data.mission.coalitions; /* Set the command mode options */ this.#setcommandModeOptions(data.mission.commandModeOptions); diff --git a/client/src/unit/unit.ts b/client/src/unit/unit.ts index abe147cb..39847911 100644 --- a/client/src/unit/unit.ts +++ b/client/src/unit/unit.ts @@ -311,6 +311,11 @@ export class Unit extends CustomMarker { } } + getLiveryID(): string { + const liveryID = this.getDatabase()?.getByName(this.getName())?.liveryID; + return liveryID? liveryID: ""; + } + setAlive(newAlive: boolean) { if (newAlive != this.#alive) document.dispatchEvent(new CustomEvent("unitDeath", { detail: this })); diff --git a/client/src/unit/unitsmanager.ts b/client/src/unit/unitsmanager.ts index 047c64ec..5356bfb3 100644 --- a/client/src/unit/unitsmanager.ts +++ b/client/src/unit/unitsmanager.ts @@ -555,7 +555,7 @@ export class UnitsManager { var unit = selectedUnits[idx]; coalition = unit.getCoalition(); deleteUnit(unit.ID, false, true); - units.push({unitType: unit.getName(), location: unit.getPosition()}); + units.push({unitType: unit.getName(), location: unit.getPosition(), liveryID: unit.getLiveryID()}); } const category = this.getSelectedUnitsTypes()[0]; this.spawnUnits(category, units, coalition, true); @@ -593,7 +593,8 @@ export class UnitsManager { var units = groups[groupName].map((unit: any) => { var position = new LatLng(getMap().getMouseCoordinates().lat + unit.position.lat - avgLat, getMap().getMouseCoordinates().lng + unit.position.lng - avgLng); getMap().addTemporaryMarker(position, unit.name, unit.coalition); - return {unitType: unit.name, location: position}; + const liveryID = unit.getDatabase()?.getByName(unit.getName())?.liveryID; + return {unitType: unit.name, location: position, liveryID: liveryID? liveryID: ""}; }); this.spawnUnits(groups[groupName][0].category, units, groups[groupName][0].coalition, true); } @@ -629,7 +630,8 @@ export class UnitsManager { if (Math.random() < IADSDensities[type]) { const unitBlueprint = randomUnitBlueprint(groundUnitDatabase, {type: type, eras: activeEras, ranges: activeRanges}); if (unitBlueprint) { - this.spawnUnits("GroundUnit", [{unitType: unitBlueprint.name, location: latlng}], coalitionArea.getCoalition(), true); + const liveryID = unitBlueprint.liveryID; + this.spawnUnits("GroundUnit", [{unitType: unitBlueprint.name, location: latlng, liveryID: liveryID? liveryID: ""}], coalitionArea.getCoalition(), true); getMap().addTemporaryMarker(latlng, unitBlueprint.name, coalitionArea.getCoalition()); } } @@ -673,7 +675,10 @@ export class UnitsManager { for (let groupName in groups) { if (groupName !== "" && groups[groupName].length > 0 && (groups[groupName].every((unit: any) => {return unit.category == "GroundUnit";}) || groups[groupName].every((unit: any) => {return unit.category == "NavyUnit";}))) { var aliveUnits = groups[groupName].filter((unit: any) => {return unit.alive}); - var units = aliveUnits.map((unit: any) => {return {unitType: unit.name, location: unit.position}}); + var units = aliveUnits.map((unit: any) => { + const liveryID = unit.getDatabase()?.getByName(unit.getName())?.liveryID; + return { unitType: unit.name, location: unit.position, liveryID: liveryID? liveryID: "" } + }); getUnitsManager().spawnUnits(groups[groupName][0].category, units, groups[groupName][0].coalition, true); } } diff --git a/scripts/OlympusCommand.lua b/scripts/OlympusCommand.lua index 799497e8..2fc4de58 100644 --- a/scripts/OlympusCommand.lua +++ b/scripts/OlympusCommand.lua @@ -447,7 +447,8 @@ function Olympus.generateAirUnitsTable(units) ["payload"] = { ["pylons"] = payload, ["fuel"] = 999999, ["flare"] = 60, ["ammo_type"] = 1, ["chaff"] = 60, ["gun"] = 100, }, ["heading"] = 0, ["callsign"] = { [1] = 1, [2] = 1, [3] = 1, ["name"] = "Olympus" .. Olympus.unitCounter.. "-" .. #unitTable + 1 }, - ["name"] = "Olympus-" .. Olympus.unitCounter .. "-" .. #unitTable + 1 + ["name"] = "Olympus-" .. Olympus.unitCounter .. "-" .. #unitTable + 1, + ["livery_id"] = unit.liveryID } end return unitTable @@ -534,7 +535,8 @@ function Olympus.generateGroundUnitsTable(units) ["y"] = spawnLocation.z, ["heading"] = 0, ["skill"] = "High", - ["name"] = "Olympus-" .. Olympus.unitCounter .. "-" .. #unitTable + 1 + ["name"] = "Olympus-" .. Olympus.unitCounter .. "-" .. #unitTable + 1, + ["livery_id"] = unit.liveryID } end end @@ -569,7 +571,8 @@ function Olympus.generateNavyUnitsTable(units) ["heading"] = 0, ["skill"] = "High", ["name"] = "Olympus-" .. Olympus.unitCounter .. "-" .. #unitTable + 1, - ["transportable"] = { ["randomTransportable"] = false } + ["transportable"] = { ["randomTransportable"] = false }, + ["livery_id"] = unit.liveryID } end end diff --git a/src/core/include/commands.h b/src/core/include/commands.h index 263de2f0..bd25435d 100644 --- a/src/core/include/commands.h +++ b/src/core/include/commands.h @@ -154,10 +154,11 @@ private: class SpawnGroundUnits : public Command { public: - SpawnGroundUnits(string coalition, vector unitTypes, vector locations, bool immediate) : + SpawnGroundUnits(string coalition, vector unitTypes, vector locations, vector liveryIDs, bool immediate) : coalition(coalition), unitTypes(unitTypes), locations(locations), + liveryIDs(liveryIDs), immediate(immediate) { priority = immediate? CommandPriority::IMMEDIATE: CommandPriority::LOW; @@ -169,6 +170,7 @@ private: const string coalition; const vector unitTypes; const vector locations; + const vector liveryIDs; const bool immediate; }; @@ -176,10 +178,11 @@ private: class SpawnNavyUnits : public Command { public: - SpawnNavyUnits(string coalition, vector unitTypes, vector locations, bool immediate) : + SpawnNavyUnits(string coalition, vector unitTypes, vector locations, vector liveryIDs, bool immediate) : coalition(coalition), unitTypes(unitTypes), locations(locations), + liveryIDs(liveryIDs), immediate(immediate) { priority = immediate ? CommandPriority::IMMEDIATE : CommandPriority::LOW; @@ -191,6 +194,7 @@ private: const string coalition; const vector unitTypes; const vector locations; + const vector liveryIDs; const bool immediate; }; @@ -198,11 +202,12 @@ private: class SpawnAircrafts : public Command { public: - SpawnAircrafts(string coalition, vector unitTypes, vector locations, vector loadouts, string airbaseName, bool immediate) : + SpawnAircrafts(string coalition, vector unitTypes, vector locations, vector loadouts, vector liveryIDs, string airbaseName, bool immediate) : coalition(coalition), unitTypes(unitTypes), locations(locations), loadouts(loadouts), + liveryIDs(liveryIDs), airbaseName(airbaseName), immediate(immediate) { @@ -216,6 +221,7 @@ private: const vector unitTypes; const vector locations; const vector loadouts; + const vector liveryIDs; const string airbaseName; const bool immediate; }; @@ -225,11 +231,12 @@ private: class SpawnHelicopters : public Command { public: - SpawnHelicopters(string coalition, vector unitTypes, vector locations, vector loadouts, string airbaseName, bool immediate) : + SpawnHelicopters(string coalition, vector unitTypes, vector locations, vector loadouts, vector liveryIDs, string airbaseName, bool immediate) : coalition(coalition), unitTypes(unitTypes), locations(locations), loadouts(loadouts), + liveryIDs(liveryIDs), airbaseName(airbaseName), immediate(immediate) { @@ -243,6 +250,7 @@ private: const vector unitTypes; const vector locations; const vector loadouts; + const vector liveryIDs; const string airbaseName; const bool immediate; }; diff --git a/src/core/src/commands.cpp b/src/core/src/commands.cpp index 511abcd4..552b6463 100644 --- a/src/core/src/commands.cpp +++ b/src/core/src/commands.cpp @@ -48,7 +48,8 @@ string SpawnGroundUnits::getString() unitsSS << "[" << i + 1 << "] = {" << "unitType = " << "\"" << unitTypes[i] << "\"" << ", " << "lat = " << locations[i].lat << ", " - << "lng = " << locations[i].lng << "},"; + << "lng = " << locations[i].lng << ", " + << "liveryID = " << "\"" << liveryIDs[i] << "\"" << " }, "; } std::ostringstream commandSS; @@ -72,7 +73,8 @@ string SpawnNavyUnits::getString() unitsSS << "[" << i + 1 << "] = {" << "unitType = " << "\"" << unitTypes[i] << "\"" << ", " << "lat = " << locations[i].lat << ", " - << "lng = " << locations[i].lng << "},"; + << "lng = " << locations[i].lng << ", " + << "liveryID = " << "\"" << liveryIDs[i] << "\"" << " }, "; } std::ostringstream commandSS; @@ -97,7 +99,8 @@ string SpawnAircrafts::getString() << "lat = " << locations[i].lat << ", " << "lng = " << locations[i].lng << ", " << "alt = " << locations[i].alt << ", " - << "loadout = \"" << loadouts[i] << "\"" << "},"; + << "loadout = \"" << loadouts[i] << "\"" << ", " + << "liveryID = " << "\"" << liveryIDs[i] << "\"" << " }, "; } std::ostringstream commandSS; @@ -124,7 +127,8 @@ string SpawnHelicopters::getString() << "lat = " << locations[i].lat << ", " << "lng = " << locations[i].lng << ", " << "alt = " << locations[i].alt << ", " - << "loadout = \"" << loadouts[i] << "\"" << "},"; + << "loadout = \"" << loadouts[i] << "\"" << ", " + << "liveryID = " << "\"" << liveryIDs[i] << "\"" << " }, "; } std::ostringstream commandSS; diff --git a/src/core/src/scheduler.cpp b/src/core/src/scheduler.cpp index d9227ddc..e975f5a0 100644 --- a/src/core/src/scheduler.cpp +++ b/src/core/src/scheduler.cpp @@ -186,6 +186,7 @@ void Scheduler::handleRequest(string key, json::value value, string username) vector unitTypes; vector locations; vector loadouts; + vector liveryIDs; for (auto unit : value[L"units"].as_array()) { string unitType = to_string(unit[L"unitType"]); double lat = unit[L"location"][L"lat"].as_double(); @@ -193,14 +194,16 @@ void Scheduler::handleRequest(string key, json::value value, string username) double alt = unit[L"altitude"].as_double(); Coords location; location.lat = lat; location.lng = lng; location.alt = alt; string loadout = to_string(unit[L"loadout"]); + string liveryID = to_string(unit[L"liveryID"]); unitTypes.push_back(unitType); locations.push_back(location); loadouts.push_back(loadout); + liveryIDs.push_back(liveryID); log(username + " spawned a " + coalition + " " + unitType, true); } - command = dynamic_cast(new SpawnAircrafts(coalition, unitTypes, locations, loadouts, airbaseName, immediate)); + command = dynamic_cast(new SpawnAircrafts(coalition, unitTypes, locations, liveryIDs, loadouts, airbaseName, immediate)); } else if (key.compare("spawnHelicopters") == 0) { @@ -214,6 +217,7 @@ void Scheduler::handleRequest(string key, json::value value, string username) vector unitTypes; vector locations; vector loadouts; + vector liveryIDs; for (auto unit : value[L"units"].as_array()) { string unitType = to_string(unit[L"unitType"]); double lat = unit[L"location"][L"lat"].as_double(); @@ -221,14 +225,16 @@ void Scheduler::handleRequest(string key, json::value value, string username) double alt = unit[L"altitude"].as_double(); Coords location; location.lat = lat; location.lng = lng; location.alt = alt; string loadout = to_string(unit[L"loadout"]); + string liveryID = to_string(unit[L"liveryID"]); unitTypes.push_back(unitType); locations.push_back(location); loadouts.push_back(loadout); + liveryIDs.push_back(liveryID); log(username + " spawned a " + coalition + " " + unitType, true); } - command = dynamic_cast(new SpawnHelicopters(coalition, unitTypes, locations, loadouts, airbaseName, immediate)); + command = dynamic_cast(new SpawnHelicopters(coalition, unitTypes, locations, loadouts, liveryIDs, airbaseName, immediate)); } else if (key.compare("spawnGroundUnits") == 0) { @@ -240,18 +246,21 @@ void Scheduler::handleRequest(string key, json::value value, string username) vector unitTypes; vector locations; + vector liveryIDs; for (auto unit : value[L"units"].as_array()) { string unitType = to_string(unit[L"unitType"]); double lat = unit[L"location"][L"lat"].as_double(); double lng = unit[L"location"][L"lng"].as_double(); Coords location; location.lat = lat; location.lng = lng; + string liveryID = to_string(unit[L"liveryID"]); unitTypes.push_back(unitType); locations.push_back(location); + liveryIDs.push_back(liveryID); log(username + " spawned a " + coalition + " " + unitType, true); } - command = dynamic_cast(new SpawnGroundUnits(coalition, unitTypes, locations, immediate)); + command = dynamic_cast(new SpawnGroundUnits(coalition, unitTypes, locations, liveryIDs, immediate)); } else if (key.compare("spawnNavyUnits") == 0) { @@ -263,18 +272,21 @@ void Scheduler::handleRequest(string key, json::value value, string username) vector unitTypes; vector locations; + vector liveryIDs; for (auto unit : value[L"units"].as_array()) { string unitType = to_string(unit[L"unitType"]); double lat = unit[L"location"][L"lat"].as_double(); double lng = unit[L"location"][L"lng"].as_double(); Coords location; location.lat = lat; location.lng = lng; + string liveryID = to_string(unit[L"liveryID"]); unitTypes.push_back(unitType); locations.push_back(location); + liveryIDs.push_back(liveryID); log(username + " spawned a " + coalition + " " + unitType, true); } - command = dynamic_cast(new SpawnNavyUnits(coalition, unitTypes, locations, immediate)); + command = dynamic_cast(new SpawnNavyUnits(coalition, unitTypes, locations, liveryIDs, immediate)); } else if (key.compare("attackUnit") == 0) { From 6c496e428fe78e9b0b20373d70694d72ecd5922b Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Sat, 12 Aug 2023 12:31:28 +0200 Subject: [PATCH 3/4] Added costs to blueprints --- .../iran-iraq_fictional/aircraftdatabase.json | 767 ++++++++++++++++++ .../groundunitdatabase.json | 153 ++++ .../helicopterdatabase.json | 141 ++++ .../iran-iraq_fictional/navyunitdatabase.json | 3 + client/src/@types/unitdatabase.d.ts | 1 + client/src/unit/aircraftdatabase.ts | 3 + client/src/unit/groundunitdatabase.ts | 3 + client/src/unit/helicopterdatabase.ts | 3 + client/src/unit/navyunitdatabase.ts | 3 + client/src/unit/unitdatabase.ts | 2 +- scripts/OlympusCommand.lua | 4 +- src/core/src/scheduler.cpp | 2 +- 12 files changed, 1082 insertions(+), 3 deletions(-) create mode 100644 client/public/databases/iran-iraq_fictional/aircraftdatabase.json create mode 100644 client/public/databases/iran-iraq_fictional/groundunitdatabase.json create mode 100644 client/public/databases/iran-iraq_fictional/helicopterdatabase.json create mode 100644 client/public/databases/iran-iraq_fictional/navyunitdatabase.json diff --git a/client/public/databases/iran-iraq_fictional/aircraftdatabase.json b/client/public/databases/iran-iraq_fictional/aircraftdatabase.json new file mode 100644 index 00000000..a139020a --- /dev/null +++ b/client/public/databases/iran-iraq_fictional/aircraftdatabase.json @@ -0,0 +1,767 @@ +{ + "An-26B": { + "name": "An-26B", + "coalition": "red", + "label": "An-26B Curl", + "era": "Mid Cold War", + "shortLabel": "26", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "an-26.png", + "cost": 0 + }, + "An-30M": { + "name": "An-30M", + "coalition": "red", + "label": "An-30M Clank", + "era": "Mid Cold War", + "shortLabel": "30", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "a-50.png", + "cost": 0 + }, + "C-130": { + "name": "C-130", + "label": "C-130 Hercules", + "era": "Early Cold War", + "shortLabel": "130", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "c-130.png", + "cost": 0 + }, + "F-14A-135-GR": { + "name": "F-14A-135-GR", + "coalition": "blue", + "label": "F-14A-135-GR Tomcat", + "era": "Mid Cold War", + "shortLabel": "14A", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-54A", + "quantity": 2 + }, + { + "name": "AIM-7F", + "quantity": 1 + }, + { + "name": "AIM-9L", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-54A-MK47*2, AIM-7F*1, AIM-9L*4, XT*2", + "name": "Heavy / Fox 3 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7F", + "quantity": 4 + }, + { + "name": "AIM-9L", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-7F*4, AIM-9L*4, XT*2", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 1 + }, + { + "name": "AIM-9M", + "quantity": 2 + }, + { + "name": "GBU-12", + "quantity": 2 + }, + { + "name": "LANTIRN", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "AIM-7M*1, AIM-9M*2, XT*2, GBU-12*2, LANTIRN", + "name": "Heavy / Fox 3, GBU-12 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-14.png", + "cost": 300, + "liveryID": "IRIAF Asia Minor" + }, + "F-4E": { + "name": "F-4E", + "coalition": "blue", + "label": "F-4E Phantom II", + "era": "Mid Cold War", + "shortLabel": "4", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "fuel", + "quantity": 2 + }, + { + "name": "AIM-7M", + "quantity": 4 + }, + { + "name": "AIM-9M", + "quantity": 4 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9*4,AIM-7*4,Fuel*2", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "ECM", + "quantity": 1 + }, + { + "name": "AIM-7M", + "quantity": 2 + }, + { + "name": "Mk-82", + "quantity": 18 + } + ], + "roles": [ + "Strike" + ], + "code": "Mk-82*18,AIM-7*2,ECM", + "name": "Heavy / Fox 1, Mk-82 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "f-4.png", + "cost": 100, + "liveryID": "IRIAF Asia Minor" + }, + "F-5E-3": { + "name": "F-5E-3", + "coalition": "blue", + "label": "F-5E Tiger", + "era": "Mid Cold War", + "shortLabel": "5", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Fuel 275", + "quantity": 3 + }, + { + "name": "AIM-9P5", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "AIM-9P5*2, Fuel 275*3", + "name": "Heavy / Fox 2 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Mk-82", + "quantity": 4 + }, + { + "name": "AIM-9P5", + "quantity": 2 + }, + { + "name": "Fuel 275", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "Mk-82LD*4,AIM-9P*2,Fuel 275", + "name": "Heavy / Fox 2 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "liveryID": "ir iriaf 43rd tfs", + "filename": "f-5.png", + "cost": 80 + }, + "F-86F Sabre": { + "name": "F-86F Sabre", + "coalition": "blue", + "label": "F-86F Sabre", + "era": "Early Cold War", + "shortLabel": "86", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "120gal Fuel", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "120gal Fuel*2", + "name": "Light / Guns / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "HVAR", + "quantity": 16 + } + ], + "roles": [ + "CAS" + ], + "code": "HVAR*16", + "name": "Light / HVAR / Short Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AN-M64", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "AN-M64*2", + "name": "Light / AN-M64 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "f-86.png", + "cost": 40, + "liveryID": "iiaf bare metall" + }, + "IL-76MD": { + "name": "IL-76MD", + "label": "IL-76MD Candid", + "era": "Mid Cold War", + "shortLabel": "76", + "loadouts": [ + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Default Transport" + } + ], + "filename": "il-76.png", + "cost": 0 + }, + "MiG-15bis": { + "name": "MiG-15bis", + "coalition": "red", + "label": "MiG-15 Fagot", + "era": "Early Cold War", + "shortLabel": "M15", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "300L Fuel Tanks", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "2*300L", + "name": "Medium / Guns / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "FAB-100M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "2*FAB-100M", + "name": "Medium / FAB-100M / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "CAP" + ], + "code": "", + "name": "Light / Guns / Short Range" + } + ], + "filename": "mig-15.png", + "cost": 30, + "liveryID": "Iraqi_Camo" + }, + "MiG-21Bis": { + "name": "MiG-21Bis", + "coalition": "red", + "label": "MiG-21 Fishbed", + "era": "Mid Cold War", + "shortLabel": "21", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-3 Atoll", + "quantity": 2 + }, + { + "name": "R-60 Aphid", + "quantity": 2 + }, + { + "name": "130 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Patrol, short range", + "name": "Light / Fox-2 / Short range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-3 Atoll", + "quantity": 2 + }, + { + "name": "R-60 Aphid", + "quantity": 2 + }, + { + "name": "210 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Patrol, medium range", + "name": "Medium / Fox-2 / Medium range" + }, + { + "fuel": 1, + "items": [ + { + "name": "R-3R Atoll", + "quantity": 2 + }, + { + "name": "R-3S Atoll", + "quantity": 2 + }, + { + "name": "210 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "Patrol, long range", + "name": "Medium / Fox-1, Fox-2 / Medium range" + }, + { + "fuel": 1, + "items": [ + { + "name": "GROM", + "quantity": 2 + }, + { + "name": "FAB-250", + "quantity": 2 + }, + { + "name": "210 gal tanks", + "quantity": 1 + }, + { + "name": "ASO-2 Countermeasures", + "quantity": 1 + } + ], + "roles": [ + "Strike" + ], + "code": "Few big targets, GROM + BOMBS", + "name": "Heavy / GROM, FAB250 / Medium range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "CAP" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-21.png", + "cost": 100, + "liveryID": "iran - standard" + }, + "MiG-23MLD": { + "name": "MiG-23MLD", + "coalition": "red", + "label": "MiG-23 Flogger", + "era": "Mid Cold War", + "shortLabel": "23", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "Fuel-800", + "quantity": 1 + }, + { + "name": "R-60M", + "quantity": 4 + }, + { + "name": "R-24R", + "quantity": 2 + } + ], + "roles": [ + "CAP" + ], + "code": "R-24R*2,R-60M*4,Fuel-800", + "name": "Heavy / Fox 1 / Long Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "Fuel-800", + "quantity": 1 + }, + { + "name": "FAB-500", + "quantity": 2 + }, + { + "name": "R-60M", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-500*2,R-60M*2,Fuel-800", + "name": "Heavy / FAB-500 / Long Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-23.png", + "cost": 200 + }, + "Mirage-F1EE": { + "name": "Mirage-F1EE", + "coalition": "red", + "label": "Mirage-F1EE", + "era": "Mid Cold War", + "shortLabel": "F1EE", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AIM-9JULI", + "quantity": 2 + }, + { + "name": "R530EM", + "quantity": 2 + }, + { + "name": "1137L Fuel Tank", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "2*AIM9-JULI, 2*R530EM, 1*Fuel Tank", + "name": "Medium / Fox 1 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AIM-9JULI", + "quantity": 2 + }, + { + "name": "SAMP 400 LD", + "quantity": 8 + } + ], + "roles": [ + "Strike" + ], + "code": "2*AIM-9JULI, 8*SAMP 400 LD", + "name": "Heavy / SAMP400 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-25.png", + "cost": 150, + "liveryID": "iriaf 3-6215 _ 1990-2010s desert (eq variant)" + }, + "Mirage-F1CE": { + "name": "Mirage-F1CE", + "coalition": "red", + "label": "Mirage-F1CE", + "era": "Mid Cold War", + "shortLabel": "F1CE", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "AIM-9JULI", + "quantity": 2 + }, + { + "name": "R530IR", + "quantity": 2 + }, + { + "name": "1137L Fuel Tank", + "quantity": 1 + } + ], + "roles": [ + "CAP" + ], + "code": "2*AIM9-JULI, 2*R530IR, 1*Fuel Tank", + "name": "Medium / Fox 2 / Medium Range" + }, + { + "fuel": 1, + "items": [ + { + "name": "AIM-9JULI", + "quantity": 2 + }, + { + "name": "SAMP 400 LD", + "quantity": 8 + } + ], + "roles": [ + "Strike" + ], + "code": "2*AIM-9JULI, 8*SAMP 400 LD", + "name": "Heavy / SAMP400 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mig-25.png", + "cost": 150, + "liveryID": "iraq air force (fictional eq version)" + }, + "Su-24M": { + "name": "Su-24M", + "coalition": "red", + "label": "Su-24M Fencer", + "era": "Mid Cold War", + "shortLabel": "24", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "R-60M", + "quantity": 2 + }, + { + "name": "FAB-1500", + "quantity": 2 + } + ], + "roles": [ + "Strike" + ], + "code": "FAB-1500*2,R-60M*2", + "name": "Heavy / FAB-500 / Short Range" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "su-24.png", + "cost": 250, + "liveryID": "iran air force" + } +} \ No newline at end of file diff --git a/client/public/databases/iran-iraq_fictional/groundunitdatabase.json b/client/public/databases/iran-iraq_fictional/groundunitdatabase.json new file mode 100644 index 00000000..03830e81 --- /dev/null +++ b/client/public/databases/iran-iraq_fictional/groundunitdatabase.json @@ -0,0 +1,153 @@ +{ + "BMP-1": { + "name": "BMP-1", + "coalition": "red", + "era": "Mid Cold War", + "label": "BMP-1", + "shortLabel": "BMP-1", + "filename": "", + "type": "IFV", + "cost": 10, + "liveryID": "desert" + }, + "Hawk SAM Battery": { + "name": "Hawk SAM Battery", + "coalition": "blue", + "era": "Early Cold War", + "label": "Hawk SAM Battery", + "shortLabel": "Hawk SAM Battery", + "range": "Medium", + "filename": "", + "type": "SAM Site", + "cost": 500 + }, + "Infantry AK": { + "name": "Infantry AK", + "era": "Mid Cold War", + "label": "Infantry AK", + "shortLabel": "Infantry AK", + "filename": "", + "type": "Infantry", + "cost": 1 + }, + "M-113": { + "name": "M-113", + "coalition": "blue", + "era": "Early Cold War", + "label": "M-113", + "shortLabel": "M-113", + "filename": "", + "type": "APC", + "cost": 5 + }, + "M-60": { + "name": "M-60", + "coalition": "blue", + "era": "Early Cold War", + "label": "M-60", + "shortLabel": "M-60", + "filename": "", + "type": "Tank", + "cost": 10 + }, + "SA-2 SAM Battery": { + "name": "SA-2 SAM Battery", + "coalition": "red", + "era": "Early Cold War", + "label": "SA-2 SAM Battery", + "shortLabel": "SA-2 SAM Battery", + "range": "Long", + "filename": "", + "type": "SAM Site", + "cost": 500 + }, + "T-55": { + "name": "T-55", + "coalition": "red", + "era": "Early Cold War", + "label": "T-55", + "shortLabel": "T-55", + "filename": "", + "type": "Tank", + "cost": 10, + "liveryID": "desert" + }, + "T-72B": { + "name": "T-72B", + "coalition": "red", + "era": "Mid Cold War", + "label": "T-72B", + "shortLabel": "T-72B", + "filename": "", + "type": "Tank", + "cost": 20, + "liveryID": "desert" + }, + "ZSU-23-4 Shilka": { + "name": "ZSU-23-4 Shilka", + "era": "Late Cold War", + "label": "ZSU-23-4 Shilka", + "shortLabel": "ZSU-23-4 Shilka", + "filename": "", + "type": "AAA", + "cost": 100 + }, + "Ural-375 ZU-23": { + "name": "Ural-375 ZU-23", + "era": "Early Cold War", + "label": "Ural-375 ZU-23", + "shortLabel": "Ural-375 ZU-23", + "filename": "", + "type": "AAA", + "cost": 50 + }, + "SAU Gvozdika": { + "name": "SAU Gvozdika", + "coalition": "red", + "era": "Early Cold War", + "label": "SAU Gvozdika", + "shortLabel": "SAU Gvozdika", + "filename": "", + "type": "Gun Artillery", + "cost": 10, + "liveryID": "desert" + }, + "Grad-URAL": { + "name": "Grad-URAL", + "coalition": "blue", + "era": "Early Cold War", + "label": "BM-21", + "shortLabel": "BM-21", + "filename": "", + "type": "Rocket Artillery", + "cost": 10 + }, + "Chieftain_mk3": { + "name": "Chieftain_mk3", + "coalition": "blue", + "era": "Early Cold War", + "label": "Chieftain Mk3", + "shortLabel": "Chieftain Mk3", + "filename": "", + "type": "Tank", + "cost": 20 + }, + "Scud_B": { + "name": "Scud_B", + "era": "Early Cold War", + "label": "SCUD", + "shortLabel": "SCUD", + "filename": "", + "type": "Rocket Artillery", + "cost": 10 + }, + "tt_ZU-23": { + "name": "tt_ZU-23", + "era": "Early Cold War", + "label": "Technical ZSU-23", + "shortLabel": "Technical ZSU-23", + "filename": "", + "type": "AAA", + "cost": 25 + } +} \ No newline at end of file diff --git a/client/public/databases/iran-iraq_fictional/helicopterdatabase.json b/client/public/databases/iran-iraq_fictional/helicopterdatabase.json new file mode 100644 index 00000000..dde602f7 --- /dev/null +++ b/client/public/databases/iran-iraq_fictional/helicopterdatabase.json @@ -0,0 +1,141 @@ +{ + "Mi-24P": { + "name": "Mi-24P", + "coalition": "red", + "era": "Mid Cold War", + "label": "Mi-24P Hind", + "shortLabel": "Mi24", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "S-8KOM", + "quantity": 40 + }, + { + "name": "9M114 ATGM", + "quantity": 8 + } + ], + "roles": [ + "CAS" + ], + "code": "2xB8V20 (S-8KOM)+8xATGM 9M114", + "name": "Gun / ATGM / Rockets" + }, + { + "fuel": 1, + "items": [ + { + "name": "S-24B", + "quantity": 4 + }, + { + "name": "9M114 ATGM", + "quantity": 4 + } + ], + "roles": [ + "Strike" + ], + "code": "4xS-24B+4xATGM 9M114", + "name": "Gun / ATGM / Rockets" + }, + { + "fuel": 1, + "items": [ + { + "name": "GUV-1 Grenade Launcher", + "quantity": 4 + }, + { + "name": "9M114 ATGM", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "4xGUV-1 AP30+4xATGM 9M114", + "name": "Gun / ATGM / Grenade Launcher" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mi-24.png", + "cost": 150, + "liveryID": "IQAF" + }, + "Mi-8MT": { + "name": "Mi-8MT", + "coalition": "blue", + "era": "Mid Cold War", + "label": "Mi-8MT Hip", + "shortLabel": "Mi8", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "UPK", + "quantity": 2 + }, + { + "name": "B8", + "quantity": 2 + } + ], + "roles": [ + "CAS" + ], + "code": "2 x UPK +2 x B8", + "name": "Rockets / Gunpods" + }, + { + "fuel": 1, + "items": [], + "roles": [ + "Transport" + ], + "code": "", + "name": "Empty Loadout" + } + ], + "filename": "mi-8.png", + "cost": 100, + "liveryID": "IR Iranian Special Police Forces" + }, + "SA342M": { + "name": "SA342M", + "coalition": "blue", + "era": "Mid Cold War", + "label": "SA342M Gazelle", + "shortLabel": "342", + "loadouts": [ + { + "fuel": 1, + "items": [ + { + "name": "HOT3", + "quantity": 4 + } + ], + "roles": [ + "CAS" + ], + "code": "4x HOT3, IR Deflector, Sand Filter", + "name": "ATGM" + } + ], + "filename": "sa-342.png", + "cost": 80 + } +} \ No newline at end of file diff --git a/client/public/databases/iran-iraq_fictional/navyunitdatabase.json b/client/public/databases/iran-iraq_fictional/navyunitdatabase.json new file mode 100644 index 00000000..4eb7c3f9 --- /dev/null +++ b/client/public/databases/iran-iraq_fictional/navyunitdatabase.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/client/src/@types/unitdatabase.d.ts b/client/src/@types/unitdatabase.d.ts index f906f4b8..2d49b1e8 100644 --- a/client/src/@types/unitdatabase.d.ts +++ b/client/src/@types/unitdatabase.d.ts @@ -23,4 +23,5 @@ interface UnitBlueprint { loadouts?: LoadoutBlueprint[]; filename?: string; liveryID?: string; + cost?: number; } diff --git a/client/src/unit/aircraftdatabase.ts b/client/src/unit/aircraftdatabase.ts index 30866e14..f7781ef3 100644 --- a/client/src/unit/aircraftdatabase.ts +++ b/client/src/unit/aircraftdatabase.ts @@ -16,6 +16,9 @@ export class AircraftDatabase extends UnitDatabase { return 0; const blueprint = this.getByName(name); + if (blueprint?.cost != undefined) + return blueprint?.cost; + if (blueprint?.era == "WW2") return 20; else if (blueprint?.era == "Early Cold War") diff --git a/client/src/unit/groundunitdatabase.ts b/client/src/unit/groundunitdatabase.ts index b398397a..ea17316d 100644 --- a/client/src/unit/groundunitdatabase.ts +++ b/client/src/unit/groundunitdatabase.ts @@ -12,6 +12,9 @@ export class GroundUnitDatabase extends UnitDatabase { return 0; const blueprint = this.getByName(name); + if (blueprint?.cost != undefined) + return blueprint?.cost; + if (blueprint?.era == "WW2") return 20; else if (blueprint?.era == "Early Cold War") diff --git a/client/src/unit/helicopterdatabase.ts b/client/src/unit/helicopterdatabase.ts index 41d2f8e8..362de71b 100644 --- a/client/src/unit/helicopterdatabase.ts +++ b/client/src/unit/helicopterdatabase.ts @@ -12,6 +12,9 @@ export class HelicopterDatabase extends UnitDatabase { return 0; const blueprint = this.getByName(name); + if (blueprint?.cost != undefined) + return blueprint?.cost; + if (blueprint?.era == "WW2") return 20; else if (blueprint?.era == "Early Cold War") diff --git a/client/src/unit/navyunitdatabase.ts b/client/src/unit/navyunitdatabase.ts index f556ff35..5e5f7cde 100644 --- a/client/src/unit/navyunitdatabase.ts +++ b/client/src/unit/navyunitdatabase.ts @@ -12,6 +12,9 @@ export class NavyUnitDatabase extends UnitDatabase { return 0; const blueprint = this.getByName(name); + if (blueprint?.cost != undefined) + return blueprint?.cost; + if (blueprint?.era == "WW2") return 20; else if (blueprint?.era == "Early Cold War") diff --git a/client/src/unit/unitdatabase.ts b/client/src/unit/unitdatabase.ts index e962284c..14f9499f 100644 --- a/client/src/unit/unitdatabase.ts +++ b/client/src/unit/unitdatabase.ts @@ -51,7 +51,7 @@ export class UnitDatabase { const blueprint = this.blueprints[unit]; if (this.getSpawnPointsByName(blueprint.name) <= getMissionHandler().getAvailableSpawnPoints() && getMissionHandler().getCommandModeOptions().eras.includes(blueprint.era) && - (!getMissionHandler().getCommandModeOptions().restrictToCoalition || blueprint.coalition === getMissionHandler().getCommandedCoalition())) { + (!getMissionHandler().getCommandModeOptions().restrictToCoalition || blueprint.coalition === getMissionHandler().getCommandedCoalition() || blueprint.coalition === undefined)) { filteredBlueprints[unit] = blueprint; } } diff --git a/scripts/OlympusCommand.lua b/scripts/OlympusCommand.lua index 3700fbdb..597090b4 100644 --- a/scripts/OlympusCommand.lua +++ b/scripts/OlympusCommand.lua @@ -1,6 +1,6 @@ local version = "v0.4.2-alpha" -local debug = false +local debug = true Olympus.OlympusDLL = nil Olympus.DLLsloaded = false @@ -455,6 +455,8 @@ function Olympus.generateAirUnitsTable(units) ["livery_id"] = unit.liveryID } + Olympus.debug(unit.liveryID, 5) + -- Add the payload to the registry, used for unit cloning Olympus.payloadRegistry[unitTable[#unitTable].name] = payload end diff --git a/src/core/src/scheduler.cpp b/src/core/src/scheduler.cpp index e975f5a0..98009e15 100644 --- a/src/core/src/scheduler.cpp +++ b/src/core/src/scheduler.cpp @@ -203,7 +203,7 @@ void Scheduler::handleRequest(string key, json::value value, string username) log(username + " spawned a " + coalition + " " + unitType, true); } - command = dynamic_cast(new SpawnAircrafts(coalition, unitTypes, locations, liveryIDs, loadouts, airbaseName, immediate)); + command = dynamic_cast(new SpawnAircrafts(coalition, unitTypes, locations, loadouts, liveryIDs, airbaseName, immediate)); } else if (key.compare("spawnHelicopters") == 0) { From a76ab8e037d61cd3c607b3c7e868a71cd3a42ab8 Mon Sep 17 00:00:00 2001 From: Pax1601 Date: Sat, 12 Aug 2023 12:32:40 +0200 Subject: [PATCH 4/4] Removed debug flag --- scripts/OlympusCommand.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/OlympusCommand.lua b/scripts/OlympusCommand.lua index 597090b4..c6de3fde 100644 --- a/scripts/OlympusCommand.lua +++ b/scripts/OlympusCommand.lua @@ -1,6 +1,6 @@ local version = "v0.4.2-alpha" -local debug = true +local debug = false Olympus.OlympusDLL = nil Olympus.DLLsloaded = false