From 1097ca5a429173718fac547d5479afbffefd1e2b Mon Sep 17 00:00:00 2001 From: Colin McLeod Date: Fri, 10 Apr 2015 12:25:47 -0700 Subject: [PATCH] Initial commit --- .gitignore | 8 + README.md | 3 + app/fonts/orbitron-bold-webfont.eot | Bin 0 -> 15526 bytes app/fonts/orbitron-bold-webfont.svg | 448 +++++++++++++ app/fonts/orbitron-bold-webfont.ttf | Bin 0 -> 40228 bytes app/fonts/orbitron-bold-webfont.woff | Bin 0 -> 18000 bytes app/fonts/orbitron-bold-webfont.woff2 | Bin 0 -> 13548 bytes app/fonts/orbitron-medium-webfont.eot | Bin 0 -> 15411 bytes app/fonts/orbitron-medium-webfont.svg | 417 ++++++++++++ app/fonts/orbitron-medium-webfont.ttf | Bin 0 -> 41520 bytes app/fonts/orbitron-medium-webfont.woff | Bin 0 -> 17800 bytes app/fonts/orbitron-medium-webfont.woff2 | Bin 0 -> 13620 bytes app/fonts/orbitron-regular-webfont.eot | Bin 0 -> 15566 bytes app/fonts/orbitron-regular-webfont.svg | 397 +++++++++++ app/fonts/orbitron-regular-webfont.ttf | Bin 0 -> 41632 bytes app/fonts/orbitron-regular-webfont.woff | Bin 0 -> 18064 bytes app/fonts/orbitron-regular-webfont.woff2 | Bin 0 -> 13724 bytes app/images/crosshairs.svg | 148 ++++ app/images/ed-logo-sm.png | Bin 0 -> 61588 bytes app/images/github-mark.svg | 3 + app/images/reddit.svg | 225 +++++++ app/index.html | 26 + app/js/app.js | 36 + app/js/controllers/controller-ship.js | 11 + app/js/controllers/controller-shipyard.js | 4 + app/js/directives/directive--list-cost.js | 26 + .../directives/directive-component-details.js | 11 + .../directives/directive-component-select.js | 17 + app/js/directives/directive-list-power.js | 18 + app/js/directives/directive-menu.js | 13 + app/js/shipyard/factory-components.js | 72 ++ app/js/shipyard/factory-ship.js | 252 +++++++ app/js/shipyard/module-shipyard.js | 101 +++ app/js/template_cache.js | 7 + app/less/app.less | 77 +++ app/less/colors.less | 3 + app/less/components.less | 120 ++++ app/less/fonts.less | 40 ++ app/less/list.less | 53 ++ app/less/logos.less | 23 + app/less/ship.less | 26 + app/less/shipyard.less | 41 ++ app/less/utilities.less | 22 + app/views/component.html | 6 + app/views/component_select.html | 3 + app/views/costs.html | 18 + app/views/menu.html | 12 + app/views/power.html | 17 + app/views/ship.html | 55 ++ app/views/ships.html | 9 + bower.json | 40 ++ data/DATA_README.md | 6 + data/components/bulkheads.json | 631 ++++++++++++++++++ data/components/common/frame_shift_drive.json | 277 ++++++++ data/components/common/fuel_tank.json | 38 ++ data/components/common/life_support.json | 242 +++++++ data/components/common/power_distributor.json | 522 +++++++++++++++ data/components/common/power_plant.json | 282 ++++++++ data/components/common/sensors.json | 282 ++++++++ data/components/common/thrusters.json | 272 ++++++++ data/components/hardpoints/beam_laser.json | 146 ++++ data/components/hardpoints/burst_laser.json | 98 +++ data/components/hardpoints/cannon.json | 200 ++++++ data/components/hardpoints/cargo_scanner.json | 57 ++ .../components/hardpoints/chaff_launcher.json | 16 + .../hardpoints/electronic_countermeasure.json | 15 + .../hardpoints/fragment_cannon.json | 128 ++++ .../hardpoints/frame_shift_wake_scanner.json | 57 ++ .../hardpoints/heat_sink_launcher.json | 16 + .../hardpoints/kill_warrant_scanner.json | 57 ++ data/components/hardpoints/mine_launcher.json | 32 + data/components/hardpoints/mining_laser.json | 30 + data/components/hardpoints/missile_rack.json | 78 +++ data/components/hardpoints/multi_cannon.json | 110 +++ .../hardpoints/plasma_accelerator.json | 56 ++ data/components/hardpoints/point_defence.json | 16 + data/components/hardpoints/pulse_laser.json | 146 ++++ data/components/hardpoints/rail_gun.json | 38 ++ .../components/hardpoints/shield_booster.json | 57 ++ data/components/hardpoints/torpedo_pylon.json | 32 + .../internal/auto_field_maintenance_unit.json | 364 ++++++++++ data/components/internal/cargo_rack.json | 68 ++ .../components/internal/docking_computer.json | 12 + .../frame_shift_drive_interdictor.json | 184 +++++ data/components/internal/fuel_scoops.json | 364 ++++++++++ .../hatch_breaker_limpet_controller.json | 204 ++++++ .../internal/hull_reinforcement_package.json | 84 +++ data/components/internal/refinery.json | 164 +++++ data/components/internal/scanners.json | 44 ++ .../components/internal/shield_cell_bank.json | 404 +++++++++++ .../components/internal/shield_generator.json | 494 ++++++++++++++ data/ships/adder.json | 66 ++ data/ships/anaconda.json | 100 +++ data/ships/asp.json | 80 +++ data/ships/cobra_mk_iii.json | 70 ++ data/ships/eagle.json | 60 ++ data/ships/federal_dropship.json | 78 +++ data/ships/fer_de_lance.json | 78 +++ data/ships/hauler.json | 60 ++ data/ships/imperial_clipper.json | 78 +++ data/ships/orca.json | 76 +++ data/ships/python.json | 82 +++ data/ships/sidewinder.json | 59 ++ data/ships/type_6_transporter.json | 70 ++ data/ships/type_7_transport.json | 78 +++ data/ships/type_9_heavy.json | 81 +++ data/ships/viper.json | 66 ++ data/ships/vulture.json | 68 ++ gulpfile.js | 129 ++++ nginx.conf | 46 ++ package.json | 28 + scripts/json-to-db.js | 54 ++ 112 files changed, 10638 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 app/fonts/orbitron-bold-webfont.eot create mode 100755 app/fonts/orbitron-bold-webfont.svg create mode 100755 app/fonts/orbitron-bold-webfont.ttf create mode 100755 app/fonts/orbitron-bold-webfont.woff create mode 100755 app/fonts/orbitron-bold-webfont.woff2 create mode 100755 app/fonts/orbitron-medium-webfont.eot create mode 100755 app/fonts/orbitron-medium-webfont.svg create mode 100755 app/fonts/orbitron-medium-webfont.ttf create mode 100755 app/fonts/orbitron-medium-webfont.woff create mode 100755 app/fonts/orbitron-medium-webfont.woff2 create mode 100755 app/fonts/orbitron-regular-webfont.eot create mode 100755 app/fonts/orbitron-regular-webfont.svg create mode 100755 app/fonts/orbitron-regular-webfont.ttf create mode 100755 app/fonts/orbitron-regular-webfont.woff create mode 100755 app/fonts/orbitron-regular-webfont.woff2 create mode 100644 app/images/crosshairs.svg create mode 100644 app/images/ed-logo-sm.png create mode 100644 app/images/github-mark.svg create mode 100644 app/images/reddit.svg create mode 100644 app/index.html create mode 100644 app/js/app.js create mode 100644 app/js/controllers/controller-ship.js create mode 100644 app/js/controllers/controller-shipyard.js create mode 100644 app/js/directives/directive--list-cost.js create mode 100644 app/js/directives/directive-component-details.js create mode 100644 app/js/directives/directive-component-select.js create mode 100644 app/js/directives/directive-list-power.js create mode 100644 app/js/directives/directive-menu.js create mode 100644 app/js/shipyard/factory-components.js create mode 100644 app/js/shipyard/factory-ship.js create mode 100644 app/js/shipyard/module-shipyard.js create mode 100644 app/js/template_cache.js create mode 100644 app/less/app.less create mode 100644 app/less/colors.less create mode 100644 app/less/components.less create mode 100644 app/less/fonts.less create mode 100644 app/less/list.less create mode 100644 app/less/logos.less create mode 100644 app/less/ship.less create mode 100644 app/less/shipyard.less create mode 100644 app/less/utilities.less create mode 100644 app/views/component.html create mode 100644 app/views/component_select.html create mode 100644 app/views/costs.html create mode 100644 app/views/menu.html create mode 100644 app/views/power.html create mode 100644 app/views/ship.html create mode 100644 app/views/ships.html create mode 100644 bower.json create mode 100644 data/DATA_README.md create mode 100644 data/components/bulkheads.json create mode 100644 data/components/common/frame_shift_drive.json create mode 100644 data/components/common/fuel_tank.json create mode 100644 data/components/common/life_support.json create mode 100644 data/components/common/power_distributor.json create mode 100644 data/components/common/power_plant.json create mode 100644 data/components/common/sensors.json create mode 100644 data/components/common/thrusters.json create mode 100644 data/components/hardpoints/beam_laser.json create mode 100644 data/components/hardpoints/burst_laser.json create mode 100644 data/components/hardpoints/cannon.json create mode 100644 data/components/hardpoints/cargo_scanner.json create mode 100644 data/components/hardpoints/chaff_launcher.json create mode 100644 data/components/hardpoints/electronic_countermeasure.json create mode 100644 data/components/hardpoints/fragment_cannon.json create mode 100644 data/components/hardpoints/frame_shift_wake_scanner.json create mode 100644 data/components/hardpoints/heat_sink_launcher.json create mode 100644 data/components/hardpoints/kill_warrant_scanner.json create mode 100644 data/components/hardpoints/mine_launcher.json create mode 100644 data/components/hardpoints/mining_laser.json create mode 100644 data/components/hardpoints/missile_rack.json create mode 100644 data/components/hardpoints/multi_cannon.json create mode 100644 data/components/hardpoints/plasma_accelerator.json create mode 100644 data/components/hardpoints/point_defence.json create mode 100644 data/components/hardpoints/pulse_laser.json create mode 100644 data/components/hardpoints/rail_gun.json create mode 100644 data/components/hardpoints/shield_booster.json create mode 100644 data/components/hardpoints/torpedo_pylon.json create mode 100644 data/components/internal/auto_field_maintenance_unit.json create mode 100644 data/components/internal/cargo_rack.json create mode 100644 data/components/internal/docking_computer.json create mode 100644 data/components/internal/frame_shift_drive_interdictor.json create mode 100644 data/components/internal/fuel_scoops.json create mode 100644 data/components/internal/hatch_breaker_limpet_controller.json create mode 100644 data/components/internal/hull_reinforcement_package.json create mode 100644 data/components/internal/refinery.json create mode 100644 data/components/internal/scanners.json create mode 100644 data/components/internal/shield_cell_bank.json create mode 100644 data/components/internal/shield_generator.json create mode 100644 data/ships/adder.json create mode 100644 data/ships/anaconda.json create mode 100644 data/ships/asp.json create mode 100644 data/ships/cobra_mk_iii.json create mode 100644 data/ships/eagle.json create mode 100644 data/ships/federal_dropship.json create mode 100644 data/ships/fer_de_lance.json create mode 100644 data/ships/hauler.json create mode 100644 data/ships/imperial_clipper.json create mode 100644 data/ships/orca.json create mode 100644 data/ships/python.json create mode 100644 data/ships/sidewinder.json create mode 100644 data/ships/type_6_transporter.json create mode 100644 data/ships/type_7_transport.json create mode 100644 data/ships/type_9_heavy.json create mode 100644 data/ships/viper.json create mode 100644 data/ships/vulture.json create mode 100644 gulpfile.js create mode 100644 nginx.conf create mode 100644 package.json create mode 100644 scripts/json-to-db.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..bb7a34b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules +bower_components +bower_components/* +build +.DS_Store +*.log +app/js/db.js +nginx.pid \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..2ca4843a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ + + +To do \ No newline at end of file diff --git a/app/fonts/orbitron-bold-webfont.eot b/app/fonts/orbitron-bold-webfont.eot new file mode 100755 index 0000000000000000000000000000000000000000..e82acadf6f81ce61b628514745c5aac5641a9a24 GIT binary patch literal 15526 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%0AU|t2j@!!2HOl1buF? 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 H2gCjs7YH#{ literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-bold-webfont.svg b/app/fonts/orbitron-bold-webfont.svg new file mode 100755 index 00000000..277bf551 --- /dev/null +++ b/app/fonts/orbitron-bold-webfont.svg @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/fonts/orbitron-bold-webfont.ttf b/app/fonts/orbitron-bold-webfont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..c99d57682bfb44f6a9d2eb8610eb9cc8d19577c8 GIT binary patch literal 40228 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%0D)eCH!?nB+W_nLBd~N_z6i1B9?4(Mr(WaEuO|RQ- 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 Bb=&{| literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-bold-webfont.woff b/app/fonts/orbitron-bold-webfont.woff new file mode 100755 index 0000000000000000000000000000000000000000..48f955535870712592e395af1e5fb8a4d97c69e7 GIT binary patch literal 18000 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 C8@T8I literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-bold-webfont.woff2 b/app/fonts/orbitron-bold-webfont.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..8914794614b62a940a12fb7da9995c68919e8c47 GIT binary patch literal 13548 zcmVT~hsYIn%O&qUD?TQ_h;nDn> zTZ00jL>}UK&U2vP5t=JBiMhv{JEM&1xV>=G0!M?KK|INO@H=c;pL=TZq|r$b@85q_AKm-q5#G$o zAr&!#90AO%Y{IqU4MO4_(VYJaUa~hAq|g_j4We$dmJN?ewy zS!OMhzH~0Fv>jvF)&~$l*uMMwxrItaQr0@D>Hr1ZZ$2^tCddnzhwLVQ7J zF-&9ko9mk-#Ys}w9?28({7DdQyYS}YF%@E3+jYnOqy_4Kfck(5;Q#MuYwy4K5^iBO zQ@*)=TR@mCQaq4vCaLo8gs)IUN`8}Wce?4eaUKMi*pmh#AFYe{w@LeVcS$#pO>SvG z63=t3szXTmaUNmjC!MdW&awi;D#G4Qz{}iW@;!llclNhsg(Ur-#NQ$LhfW_A0GbLs z(S+br2<-siuykyPxzjk+-j-kDf9HT#1}H=VGX<^EyHF~(3|FmjN~3Wa=S$tMd%h>^ zF22Yuqri+8oerK%pplWWF|nBqp#M)@+5Q<3Mt9krOIIDR!7fW{MjD+Wi$;KvHe5&> z-#gZ6!9hr~_dtL*IL9*NR5o_)=dw4*h%II%TpdgKymmQBd->e@wUAko zgAr$bzV7;25CNjPqse1Ho}$bv&oySM;t-yq&Wo;PVRbF}9K!Y-#FM~pKc zBls>S8tPG}c}K`<=I_H5CI*|xFy@+z=tiHAQoL`_O72w}wmuD@5lXB(&YQ9(R==Pp zF0407MufzcDD0>yKCJRH=vgTU_1AJ>^biyX$cW&55sSD%ckKo2q1OPcq9<)oiV-hO=ng|?76{1_%NZ1Fk5;D6Hbx${0!s{H=27VLYe~^ zmTYs5GS|9W6pZ(J8!&aj+r#eBOH#OgP?LTBG*RIpm0A?s)8b|9R^_!_{a@ zm(zFafIH9qitEUA=DKrv+;Z;jP5*Y~n*cx0- z22(_1J)nA{;C~2&j7?0<%%@neFaadn(#qOqs;%9$uQ>J&j?-swot#}<-P}Dqy}W&V z{rq|SfWV;OkkGK10%3SWWK?vF5V{{1QfY(M`4CgSN^O12wY64UQd%Z1uRxlMmDKF6 zo4Ym3dseJmy>`vI^&2;A>h0Uyzhz+S_H9F2bmplwsCD)-oOL?V`IvT(b5D6WsW(sd z^7+q>96xdT%*j)O=$YryJ3#dpT+yUfwRd#3&7Fq~H{P@mz3?K!IezS;xNBzs0wq+d zbHZ6hug(>msKMeupkx|HEGQ1U48Z-BXtDN&`_p>}^adztuS^g^Kae;N!nxq?|WexM| z9*^5{KqJ-d%7ga%ME6o$M4j0LBSH@x$a7K^AvaDkp)^gwg4*eJG94RtIPZhAtN0Rd zOOFaxD0GFMS#eD0MV8b!$B{)BZz<6@kL_QO($N7vpwNj%@#9Rgb>nubfo+{_3VVxM-X! zJ>dNI2gO9pesKn0Z}F<_0WyEg0)iu#OBGkgWk35zDX`Y}u}>*HK)B*hjXO|r1GLob zr|Qb-4$U|V+v`dk7oA;%A2JZbq4PoC16JIg?c@k(@=<8+0m=db~=A(IE%mo-uKGZRjy*Ga`=qej*5Pr%~Xh8|e_EM${*S z=s0SR7TH(CH!=$Am6luru)~{qF-ey(FrNWudgt-OHE$eL*+EY*d4MceAm`CxoT&vG z2_z*20w>->k{RLCQwSea?eaRH!8Gp}N0@#ZIv{k5J`~#pWIf2`NtsHJ^E=-E|bImM=^N2tk#0|R3A{hNn zQFao3T#W}BB!Idpm1Ggn{Ih~OJ$#P9Y=WCmn#PM0s7^nD%VB_T`eI@LPk4)n{Gx%3 zu^*>%dQav*C?w!PYIHGcKz`Xar5-m|7sG zy!3j|6de_+>5k+lK>)*-uP{(kxNw6ly?IT8YlSveOv#xtuIYzO+u}3}24QndpC&47 zx?1#Rave3}I7e;K3so4mW1KarjJ37KPIy66AJH#ojT2ByQq{4t4Ly_6+JoT=Ypk%r zb2e(HW{kRE(4$j@%1AFlHjV072Z^iboEZl23tyRQRvV#D)V+P@2+Od8ny zMutTud5~&Z>2TYNroBICr_|_LGIZ}jAIY45Xy+aFk;F{4BEw$(n}I%IG~xk06Q`bZ zV8hXLFM(>9t0EH#+?le30-cn1pm_2c?B*-uxrzlLwhKF&a;Aio)PQX2XD<&(asYll zRgwdo_oM_09oc#)3UT{vf&?;J1rcut3O1%7UXv8NlyI(@ZIH9-b0X7$gazK6rU^e# z_wZ2@!2n;xr`8|jiPky92UHBD0pTy#Cq=C$)>?5!?59Aj-fb`V1Cs^SwkW#b@C zHuSVh6xmncWh=XYJ6-A=MKI6ViKg6Zt0>h3)9##Anqxp4WV+T9^5n69uiO4zf{>|Z zxJG}0$tr5FukjSN8?^$7QtJUV3GnfRzHdm@rG(;b>VGOAy zYI2{bA!hJMiSRixQc4NGb}{2PuqfEtqm%>JRJK9DB^oF&#G@Lrd&AQ(Xl_EXi)B(w z5?(gfG$0*xnJ<#9qr)H#%)yX{xNgGmf%#Xr@ZdgZyH$7ho|DZwENfzClu%)_02eW% z*i^IO!-q%HODrs?E7M347LdP$YC-13CH*@SOQw{ICQ+5HJqehEJ!ezMFlzojWD%o2 zq8f1{ZStYZY2Qyk*%J+uUb4y#8juED4H@-RI`1Kh|G+lruK*Nic>);Tktb;pCx6tX z>=ZO8OIF?BHXEdF4T$ss9eD_(nI-+U_j1mfIbl(^PA_53oB>Q1PA}%1WMbO@we)h6 zEX8~3i*(c8?YJi0_>6f-8^f65*2$ffw^&nRZfhGun4!k8_;%AavRL)=FyA@te&;Ft zVm`o4^Bf~Nn7iJ16nxO(HhEWOc~MDkb?BJOH)BNL{JJS7Hb^2nsgz6Tl^LQ zKo9|f0aKUHTee6?R418fV-c@$E3g@e4^8moF2c>+Ml~~pCX<0WZm|~Wc6O$33w9VbMRL?pAqSAR|99jId)N6 z=Db!#sYu8VR*aH>d-QQMnBp~XdMGVJDF_9I9ug}IUk(gX;^v7!G;`+45r*oaMi^zB zQ83Ojc$;GeCU3KH4BlmIzV~Fy)_a@wm!t0<*ZC2iW>462F?R+rBU|S=nnFqvl81KhLjhsSU2;*Itj0QYFR0H+^ zNCKFJXCc$1UC<+3D9VyYcbarvA73Y{< z7)0~~IAP#N6L+9at3ai^@5C@F9igkSSSsR}KG>6mYK{;(P<9lL0_m&bBxZZYnw{m; zB}+2Yb6=O8zhXrJChiuqKC_^1M^x6c1~BP?aTgwqL8V=CXoI-lF3Diuhg;*gCk=2H zhX1KOf;~1282svA5(9GgTWrn(0j^ViezC_B6QK)%Q-j0MRkoOijv8XrlNfiC-Kv%*cToor5PSraxU&0Nw|Of^iXKuccLS)U zl-3(n__dh!^vr4WQ#2#`5y0Xnj6VaGsfX1xqh6*SW?UKe1U>PY9tBt?R!n=J-(e{= z!l<1hg&8?W7O5U#S_PGkpkF!;kr+l5fTp$I#PS<|)}q45Gmf0%@C0irtuz zWgI#dP$ek2QUZCg_)2l~4bJxAWacnRj>5P`2g8=bsFb2c!$1Y>lG3-uUMaqPzP%}4 zZ;MKc6HE9@aP$!PDyvE!c5`j#8vO#60{>oquOP0VVdf#BkbU$Y2n2Dmw$;;&TBD$} zhVnjXhG->0gFyp?27pgM&dW|mTsJjB14>!%?bdRSiQjRl`fkpBod^A;bhN)3Nm_6K)ee;YLj|seLI=zBB1tE!JFV|l$G~G7m zmTmkk^FwHc(}uB!cCYNdD*47+oZ{c>-z6uh+9VHs$CPcf*je*#BDo zX^HpNZt(yQzQiM5+au(hSa9oB3cypYQK5#IvvUp>pr@a7O7TyL5VDov&Yhh^cexcO zw|#=MW8fHjoM)G{vfUdvXLjmfd<*vDRI}e7R>AnHvs+{3$kYojUR6eAyWC0+JM7Yf z4D?+kTMdm#|HUtoi&RwCfWMr6Dq(9YZFXbhyjCkZI*7*!GT-Pm|-cl z37LRv=FWpzgfxKF_6l;)$-<&YDv{DMs>kpc6Q@MtSSo;pnDT7hLV!e3A;fzctP!w6 zO{A12X!b*UAi#g_egqiRR3d{-0dar*u8f6|w8^|ba@{HETbAXLoR;DHH$)8_RDsM6 z0J;f0K`~6AoGwL3Lm`$1CeC2ctQORr2T~I)r#BaxJlEk#nLL3~S(m2pzBOO=2=UI% zmG55l_=Re_gnE*#@3r{x8YL>{O6MR{s(IMqdb}P;jc+9N*B{SxkSx|;<-w~`rF^&^u5_|?EGc=hAu^ax9V;Ya#MfKM9+=z*+wVHw4i zL%6$h>L`Yx-U4d_-f-gTK>rK=W$gsou;tmP%2?!Dk71kNsN6a`d~Iu14$OSA_NwTB z`<LF8L*8VmMqa>D$Y~%YrNV0Df+A-PcCE37^7bHVLHEnC+5LXn0g@ zMi?_}L;mgK3^oe%yJXxdD2=?0jxcGNT!woqrl#Q}kcsj1DVQGV)cusr6YV+cgV?e? zQ>G(D!u8^I?-ryO%#=cCyTNp3$eFSPPaIya>09-4a~k(0*emRt6I`{=>~lO49GV>z z2_D-2%Xl_lN_P7=vz);ZJz);g6Qk@Uh`{DBD`Mw6Pr9Q*{rQ{2|josux zfC(c{2>x#v{NbaQcQz7! z9qsn+gLQE!#>IoEJ$@pw3RUG;TJO#{S~7|$C=vEXmTkmNu|MjQjDKA^jt7M=hd;mG z{#E(mWYOzCSzE5NvHqhoeB?(P_2F=D1OP6`jo|SmZC4nnF#65oqf~kh`y-6XrUc)~ zGp=v9#J1q>ucXIo?gaeD=-Qt@IR1_Q#a^2}AC#NiR)cEL)8-~)fG@~1Nzmc>!VUZK z-H`=#x{plNj}bHSaaP*tW1%(a;AVs+e|(tF!&;SW8h)YmpMH&-{2L66^kQbXeOol- zLnNMmehYb+-zgM$Mw-^czdeWE3h}i*ah>;)xNZ#G{?4`CaP{;3mwtZG-#QOP9t_@Y zq|Wi@&!Zm(x7`D4M`DL1SUK&2-dXMs>FHe$ zQF>BO+a&GuzC-K1*00TyTvvpPJioo-Y7Xp6D$@?B!!-L0hOd1(kE#>C5%%$GgT&IjxsynA`aDU5VEX&h{kWtc9J3y3TrW+M?bA{5ar>7+wP-KJTX;FGpW z6=*LTAyG~5ih;%i#cyh3CGRIlCuY>eC3oO@lqo$$Hd!4r{sIt3RQdrJLg=LQOr_uVy1d)=1S*r9vtQJbq;O<3pQ_M4Oiz*@R|nVYF6QK4FKpRO;^G`TRfT@ zw(O6zC$$}JwE5>Dw#sXFaBL-862vz(in~2T{2h;YWTTlJ(%}3gY(7%HzEWd<5$*0X zfG_@waI|h5HG)tIC?flr$QDJ(H&L$DQIs9EYwBUrgyZ&Vpq^t{*H^j97i_`zR+qoe zXY9J790e>#YkUtH_==7)vURhza5p?UQE%b>*4~WB2A`O!FDPU%VKHzE{{k0^L3qyX zC7`&LnlE}ikPw3b0X&LmQX(`(6TrPcyW>y4P3rNyb3EgNH9klo7}|a228^(+^MuI| zI)0>t>gXIDOeWBcA0{7911v;F9TD7+BW{Y*or~!&oQow|Bnh$pk6qPqz^E-B@xvLfyg3tcm-)K6mKfc%?*V54^2;XiNDu5Gyx6@Uy znl^4s%DZChH6J2rAKfrIuoO~Kxsc8wQ4RB-#%+>yg%qWk0!JxXz2l8-`Ya&Xa+7TR1l zmkV7|2#(6cCLRYtsLB+e1jvhM!~*`Jhv#hkS!g3I8nm@corESz!*HY-JzvBANl&zg zWa(A_=YpA2&@go&k$glZd7!SI7}B<=%h@FzYlQM{5u+DsU_#GZ0iaMFGN&b>vcc({ zu-Im^Q0FMrLTqJz?eV79L;KKeDp+h4ccdu|{WjKy#bXb2jvT0L-F)!qps~2Cw@!pA zn9yoYl#E-EAAl;kmV$`oefk3mUEP|mb+QWIFHYrJiH#xEfTKJTGbr1<+1;vki)_o- zzfj`F{EEEm!+@ng{xY6WKB{M`Zj>TWBQ2m88%86EIYfsK4;^w5g?DB=^~n*96jU6w z8kI15z*%1fY&h{h>Q;`Uw$gev!XRSp_5ws01poK5pU+)8y%zoYC@FtoOA4|iWl@)M z86O{RgdG13pa#_3u--<2_cCku-cFHA;*-Y^k7?`a6$<~~$46Na_D)!i!qYe5OmA)) zF$F8AYP=O%Q5YASyjc`35MFs(5D>^BJttK<=bYY8hE|jG%!)0gnTL zuqf|Wqk@~OChL1EHAUVoMcSlo8j+U5&@ert!N#HpkFjc4vc-yBqtqc{h9&0JXKH|j zMX%Z%${J!}A-NzO{8c+iYZ<_Lr!eb`+D~D@{SZV|OguU#9+)jZ4(dN`09~sKNc`AW z6@R4L7_chnKAcrYb6avLxy4~|B9VNDp+*DJuu949j?UVfK*X(wM4$vrKnQPIDJ(zn zV49K9L15JSmB~x+A0bpo=d?69YPqhrtKy zGfJhwjcYtI#R^m4rZ);3Gw#G<6lFJy3lk`jFrPj&G|>s9N4Y;Hv?#hBewxvM_Uv57#Tf<#K!8v(G0&43zl47%JQ>QT&th6k0ywuPjo z<6wC3!V^@5`r2%Z)iT7*RW-s4&I=7pRE+(J5N_m191I{}1D&v`ab^){YOMa$aWd9m znk(1T*(k!6DokLmG(*WC6d@v7NW|zqzM zw9!f+ka&-hR7R5g;E>V&(ueIKQ7)Mp!YvAzdkVUoo`fMzz#MT~;^w*#NI!eSJ`Cjv4<0De@E+B4#+p`&55j`8BI*u6&6 zypI$umhp5|8zm|>P^}C2!MO*8ta@(9($5;PKic&ZY@x zAZ2{YDr9NeXIT^n1yWjAR&gV`Xu${U1Cd#gYVq@%LTY&igfNzzZA2*kd zp55K?_|JlluiAuw)@@J`QXTBL3}xi2*Gcg~c`>*Kutio!Mina{s}Q#uo(F?2@2`tV zE^}HXEzp`3R*DAeD9iB&Y$#&4`l$If%B@l)2nd*mRU$Ba6nD=-+vkWxo-c?Ym+}l1 zmPCLy=)8Q+ak|*8q8&TYLd6+I@b(d;M5|+2Pt-J3tvxiez>BJOw86T@YAngpJNKB~ zrC&DDq|w8!m-MM(sodsg8+*mF;1<|Ls5xKr;`EOV?p~)fJpFvUDQ;t5b1T0=FOjDY z(@EYXmKOL`_UbZe9w?{c+-PQO+XR~_jMtnq&LSqeqC!=f?hEZ2t&tK8MTkM_mrcy* z0q8kZq{?nyy0H^p<6j^UFZRZ-Am=(oXN_{Imq=*qpZP8{^ z>Ki*9#=E43YK@u3Pm(U0enOm5Ic8cv*OyJWkyx;Qj>+bpyt}{ZI|j}v1HWC^K@w8R zk7LJYPwaZNh~y<2AC)O7hcQJGBKyaZ_oF!Km9cM8!$@9=C&<@CVOlznHoAgHpD;I-cOl7;E3Ttg> zB};K8W#ANpG)W&$zax;T9INJ=W1a9qYQpuS+Un{~mo>t8E^T{B&Q@(xrmeI-``OoH zBrW;nY`I3$TBl9!sb+;CX!K&jlu1CVnk6itEaNA6k|1b3Bno3^eyD<~V_6D1do_r| z4Mwl-Mhm)B9um&omtjbi9-P$rVvG=9&Ra4}SuS)aMjh)a`DT63+lmwf#xau!waVJe;M^qbl3l=5r&%9 zS9jlyh7EW0Yi!Zz$Oi19;}RDR$amt5($_bRz@X%&;JXHuca5=bfbY16{n?9hY*nY7 ztO`jtMmGjF+i3VgKQD-3mtwCnl+_bUF+>@4+*_+|tL&w54ais)3bLVo?O5}Ec?|ol zb`Wr!*~!!nlw7y3ps67c#44CsFEhEFGlQ`WUgg2cl6-6}z&M1H22jQ1VpWSDS|-Mo z<#EU|yl%8hS!3%NO>Q`QAJH?h0Ox?@=$V*3vuzIIlj=6%aK_)GIEtdWffosnp0 zZDLi@y47q6B4Wa$ToQI}qPjU22c=tzwTD}CIh3t{F~Z`6>~wl&N2u3(u5L6c72rCM zgfTSFknwBbBW0MLd*doH;x}u1)Yg8fyfND4|MUMNkay=9=zr^HxuARNe_+g+4#VZk z|IL-6_tM`IAkquHD}4nNZ&Rmtu5K0Lnn+T2LRHtLDXwczVWdewng0=#Te-X?*Y%JW zXDg1(<$d6`85_f%F&*0YOjr=8-qwk z-A1&xb(HYx#-*-TXQJJ9Zlm7kQ!SGDxA9a9M|F+I$cPUQlD8bn&T4l0DDEvunia2y zqwG!5AtN#=Z7y+Z;nLQSq#)snCyNwv4L-lmI3%w2kk)+ix{74(!K)fUo~x<0%B_Vw z^?TCz%BZ4`n{9%5EMTWhdo64lei0V0ff$Mz-_m6eyc7iPLSs? zr8$H=z4cRhguEXpnzYlT6z$CH!h52az<-x*z6ga_+nhOnvS^ekh)bZW6Q)bOsY&m8 zH9J7JTC8wet=9QnZB~T2+FKRQXhexp#~cvF>bUJ=K%Lldtig44((VJUI*UEXRX=1q zs8K({A9Sc6gTaeqK7j{YuF%trRtzr2`&}bxmbvW;{&s(GdC_*XW$@0H6Li=3DpLO0 ze1^N>gHp1&mX4k1xuyFaW}GUPtpY8aLelW(K1U0${C*k^&e*9;|9h{JA5Xk z*$sV-=Mev@g7-EM;=_5cpMULG`}qQ=FQerZo?hzNQDnNb#y-}pLd0P(UEOjq^%bPc z+u@rVbVhJRXoV<;(}d6g7mHv8D#=JlE6KWO5mNqsI9N{1@;N@x%1lR34?kA6!2?O1 z!Q)hPUh)N>oG!UtcsRdB`u~H;*Eyhn{PFDm!b8f}maa|?F1*Ah@Chfb<@(rZROQ}g zkHXFW)eUubgU9Eyqr2nVC7kkQ!d9#%Iym#>L@##u+q~ERpzrTh1hsJJeWUU`mh5Z) z^fkdx4L(dM(8eNTaN?bpB$JSPU<!y;7F{-g^Ha$P;%ZX;to+2NJMA-<$LAC}Im?t)JBJ~llz=m*)a01Bmf!sZg z9q+u;cBNvlvuPhtJCm06%*P-ChoEEXQwd!v`7*_*1Sj)s&%sr2MR=AEnYqHR#9|>A zSnxspsf?q#z7DW(lY%^}`IzB?KG<<>=Bh6|fJ+ZWHZUm`+DnL>&s@!@G<-zXCaliT z#UPO$-k|dcVGgQfpmxq{Fg8XKCO_{V%*9UZHI&XI_odB$oY05|3$ zR84Txm(4)LT4b@|_`Gn%rI|i^{+k6KqNh3!=#iaGw@Nf*e^(1;Q$-tygP#Fq=DtI5 zWHPdFH04n}yH$|SrPz?K4e${Z-#$G%zq!r_3MUx4G z@RD^;QN4XF8oz1l^uO>`wCD3!!OTzstQnv)a!)7Xvkg;Q#Y#>!-j2RY5Nu*n(wA$(z!%-@v zzK`r6eI3Tkb13W;ktI366uj_ zx}J3@Lv%u_$Ta9yl(aM@+g1$}W3`L61KCkLNL5l8KKKMIhL!8rM$H*Z>{om%xtdiH z(4p+kNnBR+oFW|h8Vg^sf}pS-)z@fbUF9U(CLB$bzAzvjY*};Np(c7?mvO@2E7faM zxKeiwJuLmnBT-RxHY?2&spx7aUc~b*=0dGiA0O4wkxAz*j2nEIHs=p_`J-O4B(Ga z;iY8RO6Ha|)~)cS)gBcNPHcmt5XYJ>0Y$Cbbqw8cvf<3Oa_Vj@BVL#6%1pl!%(4W#S<~l{c{uE9!XT;w^#da5$?kYP`5qbLiS0YZYQu zd2Y_G-08hc$=;vAl=U}O>4%|MEC43F9%!0;M`pBS4zFX(q=xi!^3KIEILWJdOyPtRLVtOEc9Q4Hj!6#q06F=^*^+siTz4 z7i`K8X&NJc*}A(@{6JMjaWa6o2;jz#%bX;|-eJ<@yfDBs&t02P-73Whf~uwIWXuB8 z8wd`_{LqxJm<4Q+Fm01J6m#=BV<{ZixVBE(fi-32$>PrI-vzH;PJCgQw8lLA`uhFR z!qR-7E>-j#gJ|`kU~u|{G!s=`hmrdMS&1L|(5;jE*288$^j9xxfpY^b~_ssoC7b z*BB)Vzvc_i1zL_9#C6Cl2fN;7>24!mdLfiiey0>2lhM4Lgc2SJI`Qf@+N@ zzzke($OgoE{fs;?=3uX)eI|uE>sAB8Ic;YpUsk9BAaRirSero5+my?2V3b5TXl+ug zXL2}z#(0;+yaY)^5Em*fo_#oPckir@ zmHcV7(@N>bd#=rY3rT+jQK2hL_l1{Ne*ZT5tHbuI+Wx|Ok>W3b|1o2UR3_&!p$es{ zSSnYlwR+>@^XvQP_pjM%ce=g)U^p62rnC7X+-bdu&B6ZgTTbW8^>%+eF}$kgKr@$G zju*r`eRus?s-_#JWqa`G$+H))-n<9+&d$LZHQCS&dMxvQL-x4lioL2-Tdl?owXVAE zj+<_|tqYmf96IF*R(%uGOE{-Yf|) zqb_LRYdT@nHI}a}lEAfwrvxa0N{|w)geaj(m@-ol#ACY#@OK(uQFnGd)lyqisg!(m z2~27nl4P8Cd5e6m+K{C9W7U_NhC=jon?}E|(uh{>^q~KifX8&0#{AN_{I#JLE#A@$ zM5F!y@dyfy!h3=kB_wUPD6?+GImY{$Br+!Yn#RgH16|K0rh1we@4_27>57+_ewX<* m!^xfDOP5VEsP^0FeHFF{J-r1OOne zA*1>~dHyd00=~xsXt@Ejf&i9b^r_R>Q6GJsFL)0P&`tb7 zJE`w}f$|`&1en=owO}VpPX@F~CVM2MSga@z2S+F~zd5_pjixPo9s+&a>-o`C*R?GN zf>=z>&hOhPsZnVUj%a%LoBCzto?JM5}EmGx>qnLwP-i`5K^K(Nx9CNFfA- z#8O--#!mla>8QyP8|&;M?<=8BvN-e%xuf&!KONz89IsWc(GZFXA~tFq@eALTncn2G z`F0!4O#jHP=m2j#*yIn<3c?JqN>tt%hY9y>c)G3!+rsb+ayj#?N}m;|iHWrIvtgI( zUz9*(R||ub(P@F4J>)_IjU6xDU%p{nR=Tc9YNyt;@9QBzR}Nc;d|~ZW5N3T{1gf;O z!6PBEKbp!$dE%AQ!VgCAzD*WH%Dz(Yv8C|4sm!iE?x7T_7xP-~5I?%<#P6$B(PU6V zHXM;2CEXIBjD77lnYbSu4%*q1#(c4goA(dy@Ns7hd|G_z%U_f4EuiPvC7P5dWmdw_ zpl;9(*py+Z6+F)y2X+L6a+l63vSl-1>s6_`y9G^QPADSZI$>qr4)LJNvw$-sw z4fGf3D+}OI%P)tkvL@QipT{DwlgNBfArhk&`z?&lW zV(SIyUGrTl8%Qa}Bz_S`rcQjkf)7!?9PL<@+n?qS3S#uca9JfkuhP>`u9RP z`S8~vxivf+81KS*-5(u#XWV(hrtJs9TM?Xh!gEcR0|EAs2I{v2+I{e%eb0MS`CPwA zmAgw6QR=m>mjFRX?mm@Juu{Y5!K4wLM>3kBiCR+>^TgpywRkd{vspi(o>61Lfc+%$ zXpf%YK38H`-Mh+zP%r55QSoE~MBvG@D7@F=OOBkZU80-Tt;9$`Fytcewfn&;OHt-R z!-J4$>J2WUSc!3O8AO<+G%JWsc9Ig5u&T6_l80^sqqO&?mAp>qI!iWb^Bd1&5XJn)2tv~) zK?t^uNmc1b7U=l1C+rrnPP;1&rAD13SAEosXHs^ghGf}XVrdqM|IO}P`I6DX?*rXw zaQu?RKBWlNZR4Rx+^76Lk?x!-11S-jXtN~MOrvm5i*AT&v@n)*VwMH9`WAo={ zAT-YLskmb#{cZM*P?eC7M8*smR8M?;FY!AT_pd~xpvi09ShrkLx_k8rk1|DfnSd@B z1BWoz--aPPYZg)z1sjWJVD^N!m&PWC z6WaNvBE?NqoUYnv@Qmq&gU3&VcL5K%oEthjWN|wWz9_DOruL7eg5Q6?hbp`AfcA)e`yz zzD-sW^YuhmtlGc-S?39dM}|?f6Z&K`WgYh}3HCAPPeivK4)5!m8sYxm4lL9%<=QFqbGvplo13A+g$`Cly~Cn} zgRLmh<`cf~W~U2Zh_-hZ0lGF#@{B(%fqKyEtd9!175yehSm+t16XbnwcHQ|#Zq=Fp zY=Nm&-Mn*obwu9T*%U*qHDdD~q4Ins=9#Of^&gu7@DM^&$Dr`|kn1;0`R1IDhJ8 zr)Hg=NeVaEau)#>UWsd6ET&2 z?;6aY2p?v3Sn4PiNW_D0tAQO=fj`s1W{5v&=I%=QWhQC0d|DA+sKly>REx+M6$wkE z!bs#nhBu6BX4nOqIK39EA*3*kyIr5qvS-1};BxrKI8@fUX{A)Qhk;M$_Q0<11rGqQ z{Iz`34Y_;~+(mDxVN=fP!kw!_>qw_8+t}4-LBjdsMrpud^aN_9GOIH)xWP94uxfOp z)Tfy$Isydu`;cPJ3v%F|m#-wG#rDu1Dv@CEdzOx1n1arzG?|v$ER((_x@Y#~0~MPN zbfzhw>RBj_&-|*8x+A63rqevgjAf2U{iUWGA~cVVzW_zx7@__!22UJ&z~Y#dKNoJ? z|G+?*hpnWx6;pyOr^RUsDcc+m5#9EIdNNHbiw{Z6W1*JrsF4t!S2&XHn@yt@1=U$KhmF`D zZk2K8(r12=Q}xa*qCvDm_Ct#c7Av%D0S&~eV4J|zZ=SpUIH+2c^O}l z0W{i_Q82%SN+p_-UuPM_WUD(7%IcQ5@52i7sA-fo-@u0&DL6F%&lomi!H`-n$Jr50 zS}V>1+VvGqIN*5bJwCnpmjbar2t95+IqD6l9wxAP4SB`AEd@@cAS|X6gH~2KSY$jH zCkcXGW;H1yII<~Q65+JwTS&*IkNI3Tv8C!$YW4QgV|DaMD+WmS-=y%w$>V3-m?Bo{mq#1;j$N0=V3DPCM9sU0o7s*;y}oX>rHqR)vzNz|M+4#ExB{O`biV%KY!`}q(|%OfqElw_{)G~wgo(4vWwc*qtD{|hWK zQMYw7w;8FkY;HIVo%79E6uDv&f-1_J9NY#;7Sr&LS3hwzlwwwM(jviHR(hRZt1+rS zdgNrhhGQnOf=O|kI!vxF%znW)R@1ph3@e?r#T`O`$<}vltNxj#R~t~0qBWqJz%><- z4=W;xae6tKR{erb6h>HG@xaWy6R~2P#)DdPusl{EMHL|ec_N-~PB?44@Z5W&u` zDZU~si&Q zT9-zacC^OcP1u{Zt5>`7JL!>{r(}R25im zX?F*fOMZ;*63I2tpAj;--807LFTvc7c78ajgh#j);TzpsB#>49^{DbhR@bsf+xNnb zv>&7|hc2KKez4bYaBlxwhcP5)N7ND-HE3n3V^#=H{I;F1ba5eqO-qSe4Vx|$*=I4I|o`NRPiH2``a-ER=;O0{sN$W$ttr&{dK_PHQvM*S9(u2Ag zA4(_JD61w*6i73r7$hM2YEwxFQLYyKcoZ?GE%I2p&O+dMn_r8f7Fl2` zt~8<(e%;d#t%D?Z6q0a~t>5bYI{V3Lj8Y)M|8+fKsh(_zSkboGJKWiZ>LCOw2{a-s zVgo{Y29K1m`7G^BOGiVE9r3hJ#PnZ^idmFRI?8h#NlG$H6FX9O5+ z12>=!Q;aYgZl3mq_FB)B-!A?ImahouLWLQq6SSuALd4_SgVHD>$tb9;uKlwmF(fO;3~Z|A(PhihwK`NORU+K;|m>QSXce_1r}{Bx8qCEsE+Ju+@t7T>>D zi{KGk(Nqh`7mk!dOO_r^1VeU)Pdn&N3n#>8GlOp(W7aUlNrKP}>|>VGvcFPo39)6NE?eoz7#<2%t5Rqlox~HU-7%(MV`M9VubB4c@6Y zWRiOmS1Ltt=XZ>rY(_7M^+;-nLg7&&8yhynBToAOJ1BPU`%oQTe@scIykBMOmT%p) z`0gBPc~V83AbEUF^h;<+*WtMFF&Xh6j*k{?Iv7|QPZBW zm2HB_-Gs=wq;MGsy>k$%An@RPt=pYsBeoRw;|I1kb5`ytusUS>#s?iil{mDTPw^H8 zx$<{*k_{lmNFAJJy*kT}`iESmFPq!26k=lgw+15|l|9xoI?7c*oboMxj(M;E4e+8O z=%NI*l2*1%8)X}sLw-_!rwOuH+UC0|V}5!iAAZvUAx4kGg_$0%i$g3?dsbYUsGa(- z1A~ntfmH}C4}6_8tEz>LwBB!tLMH zgO})P7u5P`D=D5T=GlfeCGc!}be+*D2?O19Y+@g78S!s?(9z;iu=_>xRT69H zV=J`8FW3jCPwwsnHVi?4R6rkOB@AUjllvb8gG%!9_&imtLWNR-;`EMko`mk_*iK0! zCKewoy#i*sK+i&@vrL$_t$ZpW>LT){xaOgOeKhUv)vcC)cav;Va5K$A_|zqXw*_EC@Fz_V7>yWa&*Q9_~g%j73m(*OozXBr8Mk=xn@$&{sBA000}k= zb;)AxFE?IKP%+%|1DXpC=UZo18Yj(rhb~y<124kNDoLz;P94~31TJEA;6Y2{A#6O{ z_=pmzU)=phuh!8C26R;oo&#jNeP|HoY^Pr7)bHpx5C#Z!AW?qdZ>iGouLX!MPppZ* z#6|?AJ`?n4Qg@<5sML}Gy=CD7fyyS*$cx~95FdO#u5VYlKXCpN1biBwjdK#I37JgOBpeJ0VWZ z_$9ZPiYjEUZapnR?Rm{J5-+}m*MA97iixEzx3jRk8uSmyCbKZw*PNzL8`vX5ta6y$ zIQ>8ke;!xwWCx~NAIKG-Jncp)cp6o#jHhB|k@Fob26M*dVG(XNXAKdhz$zk;llgPR zCVd3;(xSY7Cc#ItGJnCY4lMPfh@%Z6NT_YKiLWDT+kS7Uz*rs;@B!h|jiJ2CgIlym z;rqnYscwzOTpNZpV{6+Y)f1($KFX!7ZyUl3*H&o1OVnXjtU*Q|9xx_(NGLAcSBp|x z7W=bOM17$(ZCe}Zt3Xv&Qd zJTm+1j8UJQ6Z(4~|H{haYX4W(Hv(r!Xr-tRM8#p47gr&4V&!O4@3WaTf<5kqY@jjwI?Q%&^Al7;a37Zo zGifDMCWax_iCKoM<9oi0R0u*Je;X8xIiAkpaF&GI4OY3!Nr5;600Y>F)KEEaf zM2|9K{l(2{#M(T929mjrUn$jnda~wzH2^p3i>bmd92APz5q<=vjmSShsBdB*b7;v1 z8(=nD^g-j+mzD+$j_|swFNfSlKdp)4VAN%{0mOS!VorJ~#qjSp6QpJ_(c)3f$S}mS zSuW9#*dzLmW{A)Wu^0i9{$a955+Bj0pdu7pLM==Eo; zQYzU>mCcXxP1D50-$jZknq1^_IUm2tJ$g>=R|P7PEVpuBVJ^viZ^90mcVa1pIYB9h zWE1!cXycD{{dcL8-zj7Iyf;oe2He2!?Qx9$_3886t-*24z_m+*nalhp6}@D{DvrL3 z;Iqe3561`g8)x#6=(fSm?`GM=JuF52neT1>^IW=AB@;N^%iRLKlh9 z-|tXzGS-or9u`Lj&e(1_p%5zhiX1FLF=Inn99l5Ma+fl^&-Yua)p*-$XIHMAdF-e# zX4zeHgy>>gs^2o>6jZRl>IY|;qtbBB;@Q6QlZE@->G8d(S)JJ&Sju) zqYv;5`vBeff)6_cD?D;PWQi6eFdD2P$t2v^ys6YI)k;g6ZbGzVmYBnvT&dXPIO#ma zzCl&hz!60Hm5Wuo>32h_hR4kLUqn=a%gM+^G)^`3({@>|b;p`ZH%Ypf!v;;Z*2Cc; zZQOAqN;{6rkmH$>nYBxZ?K-V&Bn#+kQ*=RknBV z8JWm9_()2#G}#KdGIM*OwgQ5Yj%yVF2(d(tlxG|*m?c>GUU(T1Le7ElK6kJ9^29Xk zuIl_+q*}iLBJI4S|GS+Nj}#1f>E2&27UbWV-OxZa4uVZc*q4^`@g}(a8x~4rJ;$;Q z72La+=F5{1S{ULoP5WUf!ni#NOsEgmUIIS9v2?JG48oN&nXTTBOIco0v~OcPJWv~AHjaJdo(kM9=jJdJ(SAgi+u zJhI^wQd|u47$*0id;-<)KrztC6}+C_BcdoHs)(S)A1bKI^*|GSpVW>B8Yt zQ=RlOvk_7h6d`2uStYm5cQfF}?yHf}L$*gfcVz^YVLVfVF}IkQ!@M%fpm)JsnA!$S zva3?f?g%HYT1~+}Jz4@%*ohhETP{2s$?s@8W6RQVaPP%8Rqt;f`wLU!YCi#P-7Obj zHbM0!rmck-S*}oXu}N9Nj>QcS%l@J%TVQRKuFs@v^;n0n`bVW!|5UJSxqB2vXm12GO#DA9q zgX2fw>^LD8H(7yr>I7%_LuK4vWTw>f+H1GB*8bMW^Cq+%80KGT3Lp$?epE+zkyQ{B z`p`F0%-%q~ zqeytol7=pIj?x;Xa)kSNU0|KBJx*rn%T;77ECAq#9qpIUihScUY#3H5+eS$_7jA)* ziYsMb6R2ZT9ITM3#f|)jFDO{-*RCGU0K?8pW`wU|`Vg|cxE|kFpqVU-AeLahq{cs0 zVtv*$rf_o|R6gP^&&?*=*j!4lKqRIPwG;@HGnTK?MGsWExz^gb7h( z`cS=q*ncznF211b;mr-GenCX0;*HLy#6+43CM*z9U9T?3Vs&b({TGQ;-v zK=CY{P!h?^Kc0y^NrKFrPLha^fOTDxyRXfbuz)74(nUkR^ga z5@gWCTXiIU(5PyGd9vPDgE4G#Q!1H|6dM0(A^}lJq-LZE>nKS&EuFnZvRr`1I&)6V zkGim%3Rp61Nr6KzPw@VH8%>3*E;_ua6+rRk%T38R#C8c-?V&0ZbtPjP{DhTNEPxRp z-rS@@040?W0;g$0la6K+0y?G#E#_T_K>`@4JXIFarnWQ|?99qw)8Ku{DBtVY&>-Q> zn6;2o;I3?Mwv){8PE8S#_Xx>7-uubEm`?_KOtE*wRGV?&!F%GK{*1WMt#N7Gh3)!i z`K5u^oP6a;8Rhfv3+Vk)=TnplSjwBEyH99FDnHsbeEFa%g0a9EwLSu6_vDH5y4mr; zr^#`(_^y%+K*{!8%;-HV^Ihc&SUie~IKrBua4n}Nx!6ZBlX-|M#JJTzIv99(l5Px! zOK3X3T?lSsE~cD@=-V!dL-z`Fp2zD4CoHmhqru@}m)?CD!RJScfW9~yaM z`Xt|D1JR%P7TLI6zZHyyU_{2k-Sk2C7f!^oXi-vEA|QTKk$8od%Z(K^i!b0z!~?bS zk|oQTg43x?sr7u5se;8q7IRjwz7#u{AHS{dOMNcx4WzG`1Y>3$i*#7`uc zm4C9|>ziz03Gy`!LQW84Ee$W^R?9dLlJh%ZE7SCR%AS;6SmHOle;iGZ1#t(vYBJ}{ zYwgTH2TuX$sGnW5Y8qXCH;}tSB-eDj+W1_yse9+2J<7x<6muiB+RF|h_mc9aD_i*y zXS+9BksbbutW{>nJsC^ir2>xw^^obp!TI+szD`i~()!gbp@Bb^P34F=%{wwOg+1;i zs#8rBx~EX?Qz!W< zS1EQE)v234wr1H2%n)ncOfjh=AXTZZ=udHJ#)eqD>Ayeo^C%x9Z;=F(_)mpsA!6wv>u{ei7*z2B7x*+JeQL zhEVe#$(o}d^LJsMxPDQ5X*ZI$-;ihA&>{_^ompRjnbj4lJn$r_D6qN` zJG%s;7_L8%0Kl|g18E}EuoqTSQkQhe^zhcEu;RiVBrs|lyhLZ@EXZC9c0 z_Q@~=hJ&D1AT-9T(;CMr1@2z&(#0=7w5TEua${I->HP6vW46U3gnSyd zec<#lba{018|@Y`!xtS_?Q1hH`Jr2Dp>3H?U7D|ikcU%Bho?}&29ts!{g&Ws>rnxo zlIO4&{W0H1K2=Uvhcc^$W;0=P3Loa!ceUZ~k`AXxQ=$^|&G2?g4a)XDzunh%NO`?L z=vG5oH9W0~#Azh;ra7?l<*x8%%h!9FPUw@cqYd`Oy=Cdnst|dkP?WuO?nt^B@Ubxt zC_Y3#d2$Hb)ytI-(l9y|#t79%oUmS)(RagsfqlJ*ByYIovu`5_2`Crf^l+tZa11+# zypZkd%WttGcS>a?*&_HXHcO2y}DCK1hWqWllCr_u`3LLt0ai7vV4hLom&{E8QvK0D8jKP?Wa&vHwlX$J_dZF4b&JD zoZ4je|IB|rxfkgfsK7(H#PEJ&P;gU+1oUb{aOrl{ud^lrI30L$!jDddEjeG>H0uj# zR%V007+52tm|(*_`dSg1z{=m*g*vbkY|{QV&oIK)%1a35V5;HGF8Bg`?WTXWPX#Ic zqFI^wF!cTz&*|yOq)DsNc-dhh$@*kZ*FmYZ46WOJut;@NXRUQnne=$6N4%$LHygbM zTD8^n2abie8Blx2V^S6J&i%6&#SDouw_|n6FlFI#crlIld}GX7;Q<^?f@Ow)s} zm(TY!PI6TE<4Ti*L7*zs1wC@E=Tdc*OD9PX@6XpL#-$x_i%M7Bt#jqjA^c zcG_Hvd6IFm_b}|odML@-_b}5Q@hk()3?!$|qaSaI9fD^XJEM5iCOr+0ix>}~f8o36 z4s~dq4M@@Ga=kmigCcdBSi7Nunhws5_ zKcm*AKB8JVayXyJiK{DCwiwlDg zwog>feN{LV=v4PD*=$Eu_5o?4@Xku3niA;ltl%_Ic-lz1<Eb9cAnW8Cj)O2M0n0(MZ z!^&dL+@uhXkmL|)34K*$k|V{w?8<){Gagy-Bc(-gL21DXf0S28 ze8eT&#IKyER35s0U-~(oP@N4YSZM#Aej=$LWk8TYFwZ`S%hT$d}kV2yZ5>j6gv+5dszypHDF2`!^K% z4^7DC?<=kFd>Y@L;T(L9chU1c_wBL$-3QcLAB#2^zl5S1WBXP7mX^bOtX zTjwfv?)!=Kg6h>tcCjZ@k0(D%Amx+3JY_nX#1L!Ob~JJF zu!b^hJddW-T^UV17_wO*Q8qel?FwU1mMbRClmFlg6KlA)7*P^K5xyOU%^PKyy007& zP0x*auV9?ioM=#8HEa9mn<4^7L73w;S5BW5Fx=)i~&V zjzq{%YA+b7-*DaEf^Iu9;kBn;s^Ec+ek$$^m&?Xqpc0eB zCN|=b_Ay=#EG!mWnMn8tHw%YSzD%GhIX11GP4`?Ct=R8ky}Dn{vouST^GC7DtDP8? zkO1UF<5BjhxyRU!@SCn3K8z?FPpZGp2GvzQWs^D@RMA2Jo@Q5b)lcp!YWa6)I>Q~F zlsmc5d^+bp13%Axw2}Q%N>zK6;|qGU9z~)N_Oy~-x8;IQOze3B^0a_bs<{;$yVVf0-N9K+SC2D??x*pWmAsKEZhtXKEQBr71KNB)yZ#TQvt*kF_J z_UD25u2vEeF&`#d1)nFf=C(X9mlgQOS-VQ#npKlu3B22pJ=XvrhEn6ZJ~> z_mL-DD{^iG!mABOBrMeHC$;$P0ESQgKiggI!(jPs@!}AsQ3yDANNgtr>nnVuKJGP} zNXC<{P;yZkpHo<8XK0gSV81MG#Nl0Vp^9*!q_VqF$89SaGR7TwN)yN)h8H(b5*4_M zKne?I(H&7BPM)n1=k0env6h@7fe%0mao9Dd)m_5)^{cu9f=o_E;+n}7o6!*B_;)ZR zfwS?1>7+86#||!(y3l|3hss|H(>A}u0IZlkC?v8<5pG0TKTF{5_9g6-lH*PV1$cL+ zPT^6n_SB83 z)BIscCV9YbSH!mqOH{V3lerYa;ohc$OEWEy7lo4kmP{ne5~ap3Wv(FsCjwT-rDW-o z0~K$|LWI%8c{qs`8Q4`wxRGPRa-&UUyHG!LJjg6iV#H*vd}eo(qF~Hxp{`eZFUjfh zJU9T5z_;(ZDVD13V?KQ8>bz+DXZOaIr7-%Csf=qjKSwBRv3;PP+0n&!*vds8dLN9@ z5y#$ta{X0M@l&aI(qHNKq^Dj&+omIx?+YmgSj&i}PDl&w!&QmJ)7-!U7ZK?M z5#QpVP9q5Fa#FtrY|ilJNJARyO!`mC-6f31q-r1X77@Xhb?g32XH2P zj6Ca3-@Ou{f~9+9e}f>B^XmpGVD1V2u&mCgaxQCR&}5%SwR0Y*>C5O-(NG9a$J3M7( z(T&DJ=&B$0XIZMH)PBtLcaOG4XW6Th6Gz54+v$Is*^etF<*Kk&4w9aFoq`}$+eh@>` zF3K;v{S^?TdK@{4SbW*2fspZ+aaYHL!g}5~L@oU~#4pBqd_K&Wd~ejfhJM0b$Pn`4 zs2Xq7jnLuFQeRURnc}b`T0Z<~S$M-54 z^hT7IrXsr`fbZudROPfL!9mpll@Kso;uoZ`sY7=^V>j*{L#69pML+5sI9iKBH`iAZ z;&+!2(~ExOcSMf#YTLb>a4A{j%II)uVdTErul+xhxBWEfZ2y%_)mlmgX37{|HjV?J ze9Q<|4&_1|Ow18{eM*%Y4^_x5*`fM7yc9d$JQGVBt_cd%cmId7Whj_RD5`&`aU|iR; zImNC8B+TTDqP-Dd?fI43HI^1|+{^^iGC=2(_tlC&0`2r+`xo3El}_IOMyoSTkMZCF z)0={pGo)^D#KQG4$3$>XT0~=rtoBl{g2Abtj1^QC;^Lrh41y|or zKEFxlNiWSRR{W=4D_s@jpe(R1y}4r1^Xhvzo1QqYv8DH4+MzbLjlaq7=Y z#M#mDZksYPHZ+Rryvi@U9CVbZH5bZ0MNZP>&&Ty-LO%05QZzB?w8+&q5zNAkW)t*V_{a3k2Av9YZ_i6ka%ahIed$T}PhE-sRu zGVQ>)&E_r-&5L+x=)!W=IX+&b87E~P+N2t=@=UtxyI*15)}}^>)Rq1sOW{Gum8D*P z_ttd7Mu~`I##EM;!C@<8VHp{O6Ko3HMR$Z{viAZ^(wv+7TPZ{|DM6|gvK|<)&?o#} z3M9+ot|i&yr=1jg1)^Hg2K+-Eqr%)zs~W)_6E-IGbRas`Ka$<%7d{C0so5V{uad%L zgt4zBPQnqUS1r|jt&$4J3b{?uN;}iOzne^VObT493N=0|@vwwNKZP(rEW}eB+Kw?GX(sNQu+#W;hS;~~GXA2S? zh=uVor-)V)FXH1ny<(hTDIJr15x6Qx^?sGrO$w5799o@Tn%otI zzSH#B1ru)@ZbMFSi#eIIfy+}aX=2Eh8W?^1aunzx98wh!E7^O2;1J@Dw0ymExMT9E%vrx$Db_QG7q()p1Ui0o2FmfU2H% z|C9YQc#-{;Xcjp~GyOAHLRhh@szD_<8)1CQBioTCI5_nkHAUo@sC!KVsev^XUk0A} z9o7W+$9m;EAJv&LFKeR>QF`5dQUSLoDo*0NSe4Mk_BmA08~_!8SGv9^G{tw*K$zT~ zGR4aq{v6!AGxh4RXHq3BT(y{Rb$p>$+xs0vd@pF%0N+rte}2%9Wf~!ye2tZzF&P8r zW$>yhb|DZt?&hS_?^;JrO}OM<9f_W{a7<29MnC?iAzqJ>L{u_CQ;Rod0^=btUAwr0 zfvYi9YN?m72dO6#5qH!E@^?|cTKGzshTJSJVsdOQ@1mF2e{BpkE0XygPZQF+m3Sgc x7ntA$M=A2blisFsNli-#6_TY7tit3`=@3HKWh%k+-ET1bTg*_VBYUst{{nSpPy7G? literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-medium-webfont.svg b/app/fonts/orbitron-medium-webfont.svg new file mode 100755 index 00000000..3188e702 --- /dev/null +++ b/app/fonts/orbitron-medium-webfont.svg @@ -0,0 +1,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/fonts/orbitron-medium-webfont.ttf b/app/fonts/orbitron-medium-webfont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..fba9a0d347d2f431a756e2683c8282b8d3d76ef2 GIT binary patch literal 41520 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 literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-medium-webfont.woff b/app/fonts/orbitron-medium-webfont.woff new file mode 100755 index 0000000000000000000000000000000000000000..5c968ae0ff0ec3629a1209fe29a61591ab934acd GIT binary patch literal 17800 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 R03$gd*8l(kRWL1X008eqUqS!? literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-medium-webfont.woff2 b/app/fonts/orbitron-medium-webfont.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..b564f91cc531fccd3f12046fa7750831b3d97f3e GIT binary patch literal 13620 zcmV-4HOtC(Pew8T0RR9105voK6951J0HQDe05r(}0RR9100000000000000000000 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 w>cRs0nFI?!E}Ycq+<0=10KV!Z literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-regular-webfont.svg b/app/fonts/orbitron-regular-webfont.svg new file mode 100755 index 00000000..af25415b --- /dev/null +++ b/app/fonts/orbitron-regular-webfont.svg @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/fonts/orbitron-regular-webfont.ttf b/app/fonts/orbitron-regular-webfont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..6b6daaad0aadfc3980d6b3fe08a071cfa02bc9a8 GIT binary patch literal 41632 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 G@qYm%Fa^2* literal 0 HcmV?d00001 diff --git a/app/fonts/orbitron-regular-webfont.woff b/app/fonts/orbitron-regular-webfont.woff new file mode 100755 index 0000000000000000000000000000000000000000..03ac680974635145da3381f3ca5cc67bf3c71e96 GIT binary patch literal 18064 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≦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 + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/images/ed-logo-sm.png b/app/images/ed-logo-sm.png new file mode 100644 index 0000000000000000000000000000000000000000..7e7068a7d4b7b0769e0e0288cbebf9c44ad38860 GIT binary patch literal 61588 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 LNkvXXu0mjfKThWO literal 0 HcmV?d00001 diff --git a/app/images/github-mark.svg b/app/images/github-mark.svg new file mode 100644 index 00000000..e6a247f9 --- /dev/null +++ b/app/images/github-mark.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/images/reddit.svg b/app/images/reddit.svg new file mode 100644 index 00000000..ae97cd78 --- /dev/null +++ b/app/images/reddit.svg @@ -0,0 +1,225 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/index.html b/app/index.html new file mode 100644 index 00000000..aa5d8db2 --- /dev/null +++ b/app/index.html @@ -0,0 +1,26 @@ + + + + + Shipyard + + + + + + + +

+ +
+
Version <%= version %> - <%= date %>
+
+ E:D Shipyard was created using assets and imagery from Elite: Dangerous, with the permission of Frontier Developments plc, for non-commercial purposes.
+ It is not endorsed by nor reflects the views or opinions of Frontier Developments and no employee of Frontier Developments was involved in the making of it. +
+
+ + + + + \ No newline at end of file diff --git a/app/js/app.js b/app/js/app.js new file mode 100644 index 00000000..e3c9f7b8 --- /dev/null +++ b/app/js/app.js @@ -0,0 +1,36 @@ +angular.module('app', ['ngRoute','shipyard','ngLodash','app.templates']) +.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { + //$locationProvider.html5Mode(true); + $routeProvider + .when('/:ship', { templateUrl: 'views/ship.html', controller: 'ShipController' }) + .when('/', { templateUrl: 'views/ships.html', controller: 'ShipyardController' }) + +}]) +.run(['$rootScope','commonArray','shipPurpose', 'shipSize', 'hardPointClass', 'internalGroupMap', function ($rootScope, CArr, shipPurpose, sz, hpc, igMap) { + + // Global Reference variables + $rootScope.CArr = CArr; + $rootScope.SP = shipPurpose; + $rootScope.SZ = sz; + $rootScope.HPC = hpc; + $rootScope.igMap = igMap; + $rootScope.ships = DB.ships; + + // Formatters + $rootScope.credits = d3.format(',.0f'); + $rootScope.power = d3.format(',.2f'); + $rootScope.percent = d3.format(',.2%'); + + $rootScope.calcJumpRange = function(mass, fsd, fuel) { + return Math.pow( (fuel || fsd.maxfuel) / fds.fuelmul, 1 / fsd.fuelpower ) * fsd.optmass / mass; + }; + + // TODO: Load Saved Ships List from Local Storage + + // TODO: Save Ship + + // TODO: Load Ship + + // TODO: Generate Link for Ship + +}]); diff --git a/app/js/controllers/controller-ship.js b/app/js/controllers/controller-ship.js new file mode 100644 index 00000000..5a8b1a40 --- /dev/null +++ b/app/js/controllers/controller-ship.js @@ -0,0 +1,11 @@ +angular.module('app') +.controller('ShipController', ['$scope', '$routeParams','ShipFactory', 'components', function ($scope, $p, ShipFactory, Components) { + $scope.shipId = $p.ship; + $scope.ship = ShipFactory($scope.shipId, DB.ships[$scope.shipId]); + $scope.availCS = Components.forShip($scope.shipId); + + + // for debugging + window.ship = $scope.ship; + window.availcs = $scope.availCS; +}]); \ No newline at end of file diff --git a/app/js/controllers/controller-shipyard.js b/app/js/controllers/controller-shipyard.js new file mode 100644 index 00000000..056015ab --- /dev/null +++ b/app/js/controllers/controller-shipyard.js @@ -0,0 +1,4 @@ +angular.module('app') +.controller('ShipyardController', ['$rootScope', '$scope', function ($rootScope, $scope) { + +}]); \ No newline at end of file diff --git a/app/js/directives/directive--list-cost.js b/app/js/directives/directive--list-cost.js new file mode 100644 index 00000000..769e8b60 --- /dev/null +++ b/app/js/directives/directive--list-cost.js @@ -0,0 +1,26 @@ +angular.module('app').directive('costList', ['$rootScope', 'lodash', function ($r, _) { + return { + restrict: 'A', + scope: { + ship: '=' + }, + templateUrl: 'views/costs.html', + link: function (scope, element, attributes) { + scope.hps = ship.hardpoints; + scope.ints = ship.internal; + scope.com = ship.common; + scope.$r = $r; + scope.insuranceOptions = { + Alpha: 0.975, + Beta: 0.965, + Standard: 0.95 + }; + scope.insurance = scope.insuranceOptions.Standard; + + scope.toggle = function(item) { + item.incCost = !item.incCost; + scope.ship.updateTotals(); + } + } + }; +}]); \ No newline at end of file diff --git a/app/js/directives/directive-component-details.js b/app/js/directives/directive-component-details.js new file mode 100644 index 00000000..72a4f7a6 --- /dev/null +++ b/app/js/directives/directive-component-details.js @@ -0,0 +1,11 @@ +angular.module('app').directive('componentDetails', [function () { + return { + restrict: 'E', + scope:{ + c: '=', + lbl: '=', + opts: '=' + }, + templateUrl: 'views/component.html' + }; +}]); \ No newline at end of file diff --git a/app/js/directives/directive-component-select.js b/app/js/directives/directive-component-select.js new file mode 100644 index 00000000..fcb2e0af --- /dev/null +++ b/app/js/directives/directive-component-select.js @@ -0,0 +1,17 @@ +angular.module('app').directive('componentSelect', [ function() { + return { + restrict: 'A', + scope:{ + opts: '=', + c: '=', + ship: '=' + }, + templateUrl: 'views/component_select.html', + link: function (scope) { + scope.use = function(id, componentData) { + scope.ship.use(scope.c, id, componentData); + // hide this shit; + }; + } + }; +}]); \ No newline at end of file diff --git a/app/js/directives/directive-list-power.js b/app/js/directives/directive-list-power.js new file mode 100644 index 00000000..02fa42ea --- /dev/null +++ b/app/js/directives/directive-list-power.js @@ -0,0 +1,18 @@ +angular.module('app') + .directive('powerList', ['$rootScope', 'lodash', function ($r, _) { + return { + restrict: 'A', + scope: { + ship: '=ship' + }, + templateUrl: 'views/power.html', + link: function (scope, element, attributes) { + scope.$r = $r; + + scope.toggle = function(component) { + component.enabled = !component.enabled; + scope.ship.updateTotals(); + } + } + }; + }]); \ No newline at end of file diff --git a/app/js/directives/directive-menu.js b/app/js/directives/directive-menu.js new file mode 100644 index 00000000..b75a4a81 --- /dev/null +++ b/app/js/directives/directive-menu.js @@ -0,0 +1,13 @@ +angular.module('app').directive('shipyardMenu', ['$rootScope', 'lodash', function ($rootScope, _) { + + return { + restrict: 'E', + templateUrl: 'views/menu.html', + link: function (scope, element, attributes) { + + // TODO: Saved Ships: load, save, save as, delete, export + // TODO: Links: github, forum, etc + + } + }; +}]); \ No newline at end of file diff --git a/app/js/shipyard/factory-components.js b/app/js/shipyard/factory-components.js new file mode 100644 index 00000000..52d8e529 --- /dev/null +++ b/app/js/shipyard/factory-components.js @@ -0,0 +1,72 @@ +angular.module('shipyard').factory('components', ['lodash', 'commonMap','commonArray', function (_, CMap) { + var C = DB.components; + + function ComponentSet(shipId) { + var ship = DB.ships[shipId]; + var maxInternal = ship.componentCapacity.internal[0]; + + this.mass = ship.mass; + this.common = {}; + this.internal = {}; + this.hardpoints = filter(C.hardpoints, ship.componentCapacity.hardpoints[0], 0, ship.mass); + this.bulkheads = C.bulkheads[shipId]; + this.hpClass = {}; + this.intClass = {}; + + for (var i = 0; i < C.common.length; i ++) { + var max = ship.componentCapacity.common[i]; + switch (i) { + case 3: // Life Support + case 5: // Sensors + this.common[i] = filter(C.common[i], max, max, ship.mass); + break; + default: + this.common[i] = filter(C.common[i], max, 0, ship.mass); + } + + } + + for(var g in C.internal) { + this.internal[g] = filter(C.internal[g], maxInternal, 0, ship.mass); + } + } + + ComponentSet.prototype.getHps = function(c) { + if(!this.hpClass[c]) { + this.hpClass[c] = filter(this.hardpoints, c, c? 1 : 0, this.mass); + } + return this.hpClass[c]; + }; + + ComponentSet.prototype.getInts = function(c) { + if(!this.intClass[c]) { + var o = this.intClass[c] = {}; + for(var key in this.internal) { + var data = filter(this.internal[key], c, 0, this.mass); + if(Object.keys(data).length) { + o[key] = data; + } + } + } + return this.intClass[c]; + }; + + function filter (data, maxClass, minClass, mass) { + var set = {}; + _.forEach(data, function (c,id) { + if (c.class <= maxClass && c.class >= minClass + && (c.maxmass === undefined || mass <= c.maxmass) ) { + //&& (c.minmass === undefined || mass >= c.minmass) ) { // Min mass needs fixed + set[id] = c; + } + }); + return set; + } + + return { + forShip: function (shipId) { + return new ComponentSet(shipId); + } + }; + +}]); diff --git a/app/js/shipyard/factory-ship.js b/app/js/shipyard/factory-ship.js new file mode 100644 index 00000000..6365aa7b --- /dev/null +++ b/app/js/shipyard/factory-ship.js @@ -0,0 +1,252 @@ +angular.module('shipyard').factory('ShipFactory', ['components', 'lodash', function (Components, _) { + + /** + * Ship model used to track all ship components and properties. + * + * @param {string} id Unique ship Id / Key + * @param {object} shipData Data/defaults from the Ship database. + */ + function Ship(id, shipData) { + this.id = id; + this.defaults = shipData.defaultComponents; + this.incCost = true; + this.cargoScoop = { enabled: true, c: { name: 'Cargo Scoop', class: 1, rating: 'H', power: .6} }; + + angular.forEach(shipData,function(o,k){ + if(typeof o != 'object') { + this[k] = o; + } else if (k == 'componentCapacity') { + angular.forEach(o,function(arr,g){ + this[g] = []; + for(var i = 0; i < arr.length; i++){ + this[g].push({ + enabled: true, + incCost: true, + maxClass: arr[i] + }); + } + }.bind(this)) + } + }.bind(this)); + } + + /** + * Reset the ship to the original purchase defaults. + */ + Ship.prototype.clear = function() { + this.buildWith(DB.ships[this.id].defaultComponents); + }; + + /** + * Reset the current build to the previously used default + */ + Ship.prototype.reset = function() { + this.buildWith(this.defaults); + }; + + /** + * Builds/Updates the ship instance with the components[comps] passed in. + * @param {object} comps Collection of components used to build the ship + */ + Ship.prototype.buildWith = function(comps) { + var internal = this.internal; + var common = this.common; + var hps = this.hardpoints; + var availCommon = DB.components.common; + var availHardPoints = DB.components.hardpoints; + var availInternal = DB.components.internal; + + this.bulkheads = { incCost: true, id: comps.bulkheads || 0, c: DB.components.bulkheads[this.id][comps.bulkheads || 0] }; + + for(var i = 0, l = comps.common.length; i < l; i++) { + common[i].id = comps.common[i]; + common[i].c = availCommon[i][comps.common[i]]; + } + + for(var i = 0, l = comps.hardpoints.length; i < l; i++) { + if(comps.hardpoints[i] !== 0) { + hps[i].id = comps.hardpoints[i]; + hps[i].c = availHardPoints[comps.hardpoints[i]]; + } + } + + for(var i = 0, l = comps.internal.length; i < l; i++) { + if(comps.internal[i] !== 0) { + internal[i].id = comps.internal[i]; + internal[i].c = availInternal[comps.internal[i]]; + } + } + this.updateTotals(); + } + + /** + * Serializes the selected components for all slots to a URL friendly string. + * @return {string} Encoded string of components + */ + Ship.prototype.toCode = function() { + var data = [ + this.bulkheads.id, + _.map(this.common, idToStr), + _.map(this.hardpoints, idToStr), + _.map(this.internal, idToStr), + ]; + + return _.flatten(data).join(''); + }; + + /** + * Utility function to retrieve a safe string for selected component for a slot. + * Used for serialization to code only. + * + * @private + * @param {object} slot The slot object. + * @return {string} The id of the selected component or '-' if none selected + */ + function idToStr(slot) { + return o.id === undefined? '-' : o.id; + } + + /** + * Updates the current ship instance's slots with components determined by the + * code. + * + * @param {string} code [description] + */ + Ship.prototype.buildFromCode = function (code) { + var commonCount = this.common.length; + var hpCount = commonCount + this.hardpoints.length; + var comps = { + bulkheads: code.charAt(0) * 1, + common: new Array(this.common.length), + hardpoints: new Array(this.hardpoints.length), + internal: new Array(this.internal.length) + }; + + // TODO: improve... + for (var i = 1, c = 0, l = code.length; i < l; i++) { + if(code.charAt(i) != '-') { + if (c < commonCount) { + comps.common[c] = code.substring(i, i + 2); + } else if (c < hpCount) { + comps.hardpoints[c - commonCount] = code.substring(i, i + 2) + } else { + comps.internal[c - hpCount] = code.substring(i, i + 2) + } + i++; + } + c++; + } + + this.defaults = comps; + this.buildWidth(data); + }; + + /** + * Updates the ship totals based on currently selected component in each slot. + */ + Ship.prototype.updateTotals = function() { + var c = _.reduce(this.common, optsSum, {cost: 0, power: 0, mass: 0, capacity: 0}); + var i = _.reduce(this.internal, optsSum, {cost: 0, power: 0, mass: 0, capacity: 0}); + var h = _.reduce(this.hardpoints, optsSum, {cost: 0, power: 0, mass: 0, capacity: 0}); + + this.totalCost = c.cost + i.cost + h.cost + (this.incCost? this.cost : 0) + (this.bulkheads.incCost? this.bulkheads.c.cost : 0); + this.unladenMass = c.mass + i.mass + h.mass + this.mass + this.bulkheads.c.mass; + this.powerAvailable = this.common[0].c.pGen; + this.fuelCapacity = this.common[6].c.capacity; + this.cargoCapacity = i.capacity; + this.ladenMass = this.unladenMass + this.cargoCapacity + this.fuelCapacity; + this.powerRetracted = c.power + i.power + (this.cargoScoop.enabled? this.cargoScoop.c.power : 0); + this.powerDeployed = this.powerRetracted + h.power; + + // TODO: range + this.armourAdded = 0; // internal.armoradd TODO: Armour (reinforcement, bulkheads) + this.armorTotal = this.armourAdded + this.armour; + + } + + /** + * Update a slot with a the component if the id is different from the current id for this slot. + * Frees the slot of the current component if the id matches the current id for the slot. + * + * @param {object} slot The component slot + * @param {string} id Unique ID for the selected component + * @param {object} componentData Properties for the selected component + */ + Ship.prototype.use = function(slot, id, componentData) { + if (slot.id != id) { // Selecting a different option + slot.id = id; + slot.c = componentData; + + // New componnent is a Shield Generator + if(componentData.group == 'sg') { + // You can only have one shield Generator + // TODO: find shield generator that is not this one + // set c.id = null, c.c = null; + } + // Deselecting current option + } else { + slot.id = null; + slot.c = null; + } + this.updateTotals(); + }; + + /** + * Calculate the a ships shield strength based on mass, shield generator and shield boosters used. + * + * @private + * @param {number} mass Current mass of the ship + * @param {number} shields Base Shield strength MJ for ship + * @param {object} sg The shield generator used + * @param {number} multiplier Shield multiplier for ship (1 + shield boosters if any) + * @return {number} Approximate shield strengh in MJ + */ + function calcShieldStrength (mass, shields, sg, multiplier) { + if (mass <= sg.minmass) { + return shields * multiplier * sg.minmul; + } + if (mass < sg.optmass) { + return shields * multiplier * (sg.minmul + (mass - sg.minmass) / (sg.optmass - sg.minmass) * (sg.optmul - sg.minmul)); + } + if (mass < sg.maxmass) { + return shields * multiplier * (sg.optmul + (mass - sg.optmass) / (sg.maxmass - sg.optmass) * (sg.maxmul - sg.optmul)); + } + return shields * multiplier * sg.maxmul; + }; + + /** + * Utilify function for summing the components properties + * + * @private + * @param {object} sum Sum of cost, power, mass, capacity + * @param {object} slot Slot object + * @return {object} The mutated sum object + */ + function optsSum(sum, slot) { + if (slot.c) { // The slot has a component selected + sum.cost += (slot.incCost && slot.c.cost)? slot.c.cost : 0; + sum.power += (slot.enabled && slot.c.power)? slot.c.power : 0; + sum.mass += slot.c.mass || 0; + sum.capacity += slot.c.capacity || 0; + } + return sum; + } + + /** + * Ship Factory function. Created a new instance of a ship based on the ship type. + * + * @param {string} id Id/Key for the Ship type + * @param {object} shipData [description] + * @param {string} code [optional] Code to build the ship with + * @return {Ship} A new Ship instance + */ + return function (id, shipData, code) { + var s = new Ship(id, shipData); + if (code) { + s.buildFromCode(code); + } else { + s.clear(); + } + return s; + }; +}]); diff --git a/app/js/shipyard/module-shipyard.js b/app/js/shipyard/module-shipyard.js new file mode 100644 index 00000000..add3d626 --- /dev/null +++ b/app/js/shipyard/module-shipyard.js @@ -0,0 +1,101 @@ +angular.module('shipyard', []) + .value('commonArray', [ + 'Power Plant', + 'Thrusters', + 'Frame Shift Drive', + 'Life Support', + 'Power Distributor', + 'Sensors', + 'Fuel Tank' + ]) + .value('internalGroupMap', { + fs:'Fuel Scoop', + sc:'Scanners', + am:'Auto Field-Maintenance Unit', + cr:'Cargo Racks', + fi:'Frame Shift Drive Interdictor', + hb:'Hatch Breaker Limpet Controller', + hr:'Hull Reinforcement Package', + rf:'Refinery', + sb:'Shield Cell Bank', + sg:'Shield Generator', + dc:'Docking Computer' + }) + .value('shipPurpose', { + mp: 'Multi Purpose', + fr: 'Freighter', + ex: 'Explorer', + co: 'Combat', + pa: 'Passenger Transport' + }) + .value('shipSize', [ + 'N/A', + 'Small', + 'Medium', + 'Large', + 'Capital', + ]) + .factory('commonMap', ['commonArray', function (commonArray) { + var commonMap = {}; + for(var i = 0; i < commonArray.length; i++) { + commonMap[commonArray[i]] = i; + } + return commonMap; + }]) + .value('hardPointClass', [ + 'Utility', + 'Small', + 'Medium', + 'Large', + 'Huge' + ]) + .factory('hardpointGroup', function () { + function groupToLabel (grp) { + var a = grp.toLowerCase().split(''); + var l = []; + switch(a[0]) { + case 's': + l.push('Small'); + break; + case 'm': + l.push('Medium'); + break; + case 'l': + l.push('Large'); + break; + case 'h': + l.push('Huge'); + break; + case 'u': + l.push('Utility'); + break; + default: + console.error('Invalid group size', grp); + } + switch(a[1]) { + case 'o': + l.push('Other'); + break; + case 'k': + l.push('Kinetic'); + break; + case 't': + l.push('Thermal'); + break; + case 's': + l.push('Scanner'); + break; + case 'b': + l.push('Booster'); + break; + case 'm': + l.push('Mount'); + break; + default: + console.error('Invalid group category', grp); + } + return l.join(' '); + } + + return groupToLabel; + }); \ No newline at end of file diff --git a/app/js/template_cache.js b/app/js/template_cache.js new file mode 100644 index 00000000..30982d52 --- /dev/null +++ b/app/js/template_cache.js @@ -0,0 +1,7 @@ +angular.module("app.templates", []).run(["$templateCache", function($templateCache) {$templateCache.put("views/component.html","
{{lbl}}
{{c.maxClass}}
{{c.c.class}}{{c.c.rating}}
{{c.c.mass || c.c.capacity}}T
"); +$templateCache.put("views/component_select.html","
  • {{o.class}}{{o.rating}}
"); +$templateCache.put("views/costs.html","
{{ship.name}}
{{$r.credits(ship.cost)}}
{{ship.bulkheads.c.name}}
{{$r.credits(ship.bulkheads.c.cost)}}
{{c.c.class}}{{c.c.rating}} {{$r.CArr[$index]}}
{{$r.credits(c.c.cost)}}
{{c.c.class}}{{c.c.rating}} {{c.c.name}}
{{$r.credits(c.c.cost)}}
{{c.c.class}}{{c.c.rating}} {{c.c.name || $r.igMap[c.c.group]}}
{{$r.credits(c.c.cost)}}
Total
{{$r.credits(ship.totalCost)}}
"); +$templateCache.put("views/menu.html","
"); +$templateCache.put("views/power.html","
{{c.c.class}}{{c.c.rating}} {{$r.CArr[$index]}}
{{$r.power(c.c.power || c.c.pGen)}}
1H Cargo Scoop
{{$r.power(ship.cargoScoop.c.power)}}
{{c.c.class}}{{c.c.rating}} {{c.c.name}}
{{$r.power(c.c.power)}}
{{c.c.class}}{{c.c.rating}} {{c.c.name || $r.igMap[c.c.group]}}
{{$r.power(c.c.power)}}
Retracted: {{$r.power(ship.powerRetracted)}} ({{$r.percent(ship.powerRetracted/ship.powerAvailable)}})
Deployed: {{$r.power(ship.powerDeployed)}} ({{$r.percent(ship.powerDeployed/ship.powerAvailable)}})
"); +$templateCache.put("views/ship.html","
{{ship.name}}
Class: {{ship.class}}
Mass: {{ship.unladenMass}} - {{ship.ladenMass}} [{{ship.mass}}]T
Speed: {{ship.speed}} [{{ship.boost}}] M/s
Agility: {{ship.agility}}
Shields: {{ship.shields}}
Armour: {{ship.armour}}
Fuel: {{ship.fuelCapacity}}T
Cargo: {{ship.cargoCapacity}}T
Armour: {{ship.armour}}
Pad Size: {{[\'\',\'Small\',\'Medium\',\'Large\'][ship.class]}}
Standard
Bulkheads
{{ship.bulkheads.c.name}}
{{ship.bulkheads.c.mass}}T
{{b.name}}
HardPoints
Internal Compartments
{{grp}}
"); +$templateCache.put("views/ships.html","

{{s.name}}{{s.manufacturer}}

Class {{s.class}} / {{SZ[s.class]}}
{{SP[s.group]}}
{{credits(s.cost)}} Credits
");}]); \ No newline at end of file diff --git a/app/less/app.less b/app/less/app.less new file mode 100644 index 00000000..9b2dd712 --- /dev/null +++ b/app/less/app.less @@ -0,0 +1,77 @@ +@import 'colors'; +@import 'fonts'; +@import 'utilities'; +@import 'logos'; + +@import 'shipyard'; +@import 'list'; +@import 'components'; +@import 'ship'; + +html, body { + min-height: 100%; +} + +body { + color: #FFF; + background-color: #000; + margin: 0; + padding: 0; + font-family: @standardFamily; + overflow-x: hidden; +} + +#main { + min-height: 90%; + clear: both; +} + +header { + background-color: @fg; + margin: 0; + height: 40px; + line-height: 40px; + font-family: @titleFamily; + vertical-align: middle; + + a { + vertical-align: middle; + color: @border; + + &:visited { + color: @border; + } + &:hover { + color: teal; + } + } + + .title { + font-size: 1.3em; + display: inline-block; + margin:0px; + text-transform: uppercase; + } +} + + +footer { + font-size: 0.3em; + color: #999; + padding: 10px 0; + width: 100%; + overflow: hidden; +} + +header, footer { + .right { + float: right; + text-align: right; + margin-right: 10px; + } + .left { + float: left; + text-align: left; + margin-left: 10px; + } +} \ No newline at end of file diff --git a/app/less/colors.less b/app/less/colors.less new file mode 100644 index 00000000..ba286f8e --- /dev/null +++ b/app/less/colors.less @@ -0,0 +1,3 @@ +@fg: #FF8C0D; // Light Orange +@warning: #FF3B00; // Dark Orange +@border: rgba(201,34,2,0.50); // Dark Red \ No newline at end of file diff --git a/app/less/components.less b/app/less/components.less new file mode 100644 index 00000000..b5888c8d --- /dev/null +++ b/app/less/components.less @@ -0,0 +1,120 @@ + +.component-group { + border: 2px solid @border; + .border-radius(5px); + margin: 5px; + float: left; + padding: 0 5px 5px; + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + + legend { + text-transform: uppercase; + padding: 0 5px; + color: @warning; + } + + .component { + text-transform: uppercase; + float: left; + margin: 1%; + border: 1px solid orange; + .border-radius(2px); + width: 250px; + position: relative; + padding-top: 3px; + + color: #BBB; + font-size: 0.8em; + + .lbl,.cla { + color: #666; + } + + .lbl { + float: left; + margin-left: 5px; + } + + .cla { + float: right; + margin-right: 5px; + } + + .clear { + clear: both; + } + + .select { + z-index: 1; + top: 100%; + padding-top: 10px; + display: none; + position: absolute; + width: 100%; + margin: 0; + padding: 0; + background-color: black; + border-left: 1px solid teal; + border-bottom: 1px solid teal; + border-right: 1px solid teal; + .border-bottom-radius(5px); + left: -1px; + max-height: 600px; + overflow-y: scroll; + } + + .select-group { + clear: both; + border-top: 1px solid grey; + border-bottom: 1px solid grey; + padding-left: 5px; + } + + .c { + cursor: pointer; + .border-radius(3px); + display: block; + float:left; + margin: 5px; + padding: 0; + height: 20px; + line-height: 20px; + background-color: #666; + color: #BBB; + + &:hover { + background-color: teal; + color: #FFF; + } + } + + li.c { + width: 25px; + text-align: center; + + &:nth-child(5n +1) { + clear: left; + } + } + + ul { + margin: 0; + list-style: none; + } + + &:hover { + border: 1px solid teal; + color: #FFF; + .lbl,.cla { + color: #999; + } + .select { + display: block; + } + } + + } +} \ No newline at end of file diff --git a/app/less/fonts.less b/app/less/fonts.less new file mode 100644 index 00000000..af9f8fda --- /dev/null +++ b/app/less/fonts.less @@ -0,0 +1,40 @@ +@font-face { + font-family: 'Orbitron-Bold'; + src: url('fonts/orbitron-bold-webfont.eot'); + src: url('fonts/orbitron-bold-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/orbitron-bold-webfont.woff2') format('woff2'), + url('fonts/orbitron-bold-webfont.woff') format('woff'), + url('fonts/orbitron-bold-webfont.ttf') format('truetype'), + url('fonts/orbitron-bold-webfont.svg#orbitronbold') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Orbitron-Medium'; + src: url('fonts/orbitron-medium-webfont.eot'); + src: url('fonts/orbitron-medium-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/orbitron-medium-webfont.woff2') format('woff2'), + url('fonts/orbitron-medium-webfont.woff') format('woff'), + url('fonts/orbitron-medium-webfont.ttf') format('truetype'), + url('fonts/orbitron-medium-webfont.svg#orbitronmedium') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Orbitron-Regular'; + src: url('fonts/orbitron-regular-webfont.eot'); + src: url('fonts/orbitron-regular-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/orbitron-regular-webfont.woff2') format('woff2'), + url('fonts/orbitron-regular-webfont.woff') format('woff'), + url('fonts/orbitron-regular-webfont.ttf') format('truetype'), + url('fonts/orbitron-regular-webfont.svg#orbitronregular') format('svg'); + font-weight: normal; + font-style: normal; +} + + +@standardFamily: Helvetica, sans-serif; +@titleFamily: 'Orbitron-Medium', Arial, sans-serif; +@itemFamily: 'Orbitron-Regular', Arial, sans-serif; \ No newline at end of file diff --git a/app/less/list.less b/app/less/list.less new file mode 100644 index 00000000..4a090b68 --- /dev/null +++ b/app/less/list.less @@ -0,0 +1,53 @@ +.list { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + float: left; + + .list-item { + cursor: pointer; + clear: both; + overflow: hidden; + margin: 3px 0px; + } + + .val { + float:right; + text-align: right; + } + + .lbl { + float: left; + } + +} + + +#cost-list { + color: grey; + width: 300px; + + .enabled { + color: #FFF; + } +} + + +#power-list { + color: grey; + width: 300px; + + .enabled { + color: #FFF; + } + + .consumer.enabled { + color: @fg; + } + + .common, .internal, .hardpoints { + + } + +} \ No newline at end of file diff --git a/app/less/logos.less b/app/less/logos.less new file mode 100644 index 00000000..91ebcfe2 --- /dev/null +++ b/app/less/logos.less @@ -0,0 +1,23 @@ + +.logo { + background-repeat: no-repeat; + background-position: center; + display: inline-block; + width: 30px; + height: 30px; +} + +.github { + background-image: url(images/github-mark.svg); + background-size: contain; +} + +.reddit { + background-image: url(images/reddit.svg); + background-size: contain; +} + +.elite-dangerous { + background-image: url(images/ed-logo-sm.png); + background-size: contain; +} \ No newline at end of file diff --git a/app/less/ship.less b/app/less/ship.less new file mode 100644 index 00000000..fa75592d --- /dev/null +++ b/app/less/ship.less @@ -0,0 +1,26 @@ + +#overview { + margin: 0px auto; + text-align: center; + + h1 { + margin: 5px 0; + } + + div { + display: inline-block; + margin: 0 5px; + } +} + +#hardpoints { + width: 525px; +} + +#standard { + width: 260px; +} + +#internal { + width: 525px; +} \ No newline at end of file diff --git a/app/less/shipyard.less b/app/less/shipyard.less new file mode 100644 index 00000000..4fc9006f --- /dev/null +++ b/app/less/shipyard.less @@ -0,0 +1,41 @@ + +a.ship { + display: block; + float: left; + width: 30%; + height: 30%; + margin: 1% 1%; + background-color: #222; + padding: 0.5%; + text-decoration: none; + color: #FFF; + + &:hover { + background-color: orange; + } + + h2 { + width: 100%; + text-transform: uppercase; + margin: 0; + + small { + float: right; + font-size: 0.5em; + } + } + + .subtitle { + overflow: hidden; + } + + .size { + float: left; + font-size: 0.8em; + } + .category { + text-transform: uppercase; + font-size: 0.7em; + float: right; + } +} \ No newline at end of file diff --git a/app/less/utilities.less b/app/less/utilities.less new file mode 100644 index 00000000..d74c5e44 --- /dev/null +++ b/app/less/utilities.less @@ -0,0 +1,22 @@ +.border-radius (@radius: 5px) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; + + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} + +.border-bottom-radius (@radius: 5px) { + -webkit-border-bottom-left-radius: @radius; + -moz-border-bottom-left-radius: @radius; + border-bottom-left-radius: @radius; + -webkit-border-bottom-right-radius: @radius; + -moz-border-bottom-right-radius: @radius; + border-bottom-right-radius: @radius; + + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} \ No newline at end of file diff --git a/app/views/component.html b/app/views/component.html new file mode 100644 index 00000000..f7e2f524 --- /dev/null +++ b/app/views/component.html @@ -0,0 +1,6 @@ +
{{lbl}}
+
{{c.maxClass}}
+
+ {{c.c.class}}{{c.c.rating}} +
{{c.c.mass || c.c.capacity}}T
+
\ No newline at end of file diff --git a/app/views/component_select.html b/app/views/component_select.html new file mode 100644 index 00000000..65a1e0d1 --- /dev/null +++ b/app/views/component_select.html @@ -0,0 +1,3 @@ +
    +
  • {{o.class}}{{o.rating}}
  • +
diff --git a/app/views/costs.html b/app/views/costs.html new file mode 100644 index 00000000..c1d25e54 --- /dev/null +++ b/app/views/costs.html @@ -0,0 +1,18 @@ +
+
{{ship.name}}
{{$r.credits(ship.cost)}}
+
+
+
{{ship.bulkheads.c.name}}
{{$r.credits(ship.bulkheads.c.cost)}}
+
+
+
{{c.c.class}}{{c.c.rating}} {{$r.CArr[$index]}}
{{$r.credits(c.c.cost)}}
+
+
+
{{c.c.class}}{{c.c.rating}} {{c.c.name}}
{{$r.credits(c.c.cost)}}
+
+
+
{{c.c.class}}{{c.c.rating}} {{c.c.name || $r.igMap[c.c.group]}}
{{$r.credits(c.c.cost)}}
+
+
+
Total
{{$r.credits(ship.totalCost)}}
+
diff --git a/app/views/menu.html b/app/views/menu.html new file mode 100644 index 00000000..0be50c47 --- /dev/null +++ b/app/views/menu.html @@ -0,0 +1,12 @@ +
+
+

Shipyard

+
+ +
+ + + +
+ +
\ No newline at end of file diff --git a/app/views/power.html b/app/views/power.html new file mode 100644 index 00000000..6b7c9945 --- /dev/null +++ b/app/views/power.html @@ -0,0 +1,17 @@ +
+
{{c.c.class}}{{c.c.rating}} {{$r.CArr[$index]}}
{{$r.power(c.c.power || c.c.pGen)}}
+
+
+
1H Cargo Scoop
{{$r.power(ship.cargoScoop.c.power)}}
+
+ +
+
{{c.c.class}}{{c.c.rating}} {{c.c.name}}
{{$r.power(c.c.power)}}
+
+ +
+
{{c.c.class}}{{c.c.rating}} {{c.c.name || $r.igMap[c.c.group]}}
{{$r.power(c.c.power)}}
+
+ +
Retracted: {{$r.power(ship.powerRetracted)}} ({{$r.percent(ship.powerRetracted/ship.powerAvailable)}})
+
Deployed: {{$r.power(ship.powerDeployed)}} ({{$r.percent(ship.powerDeployed/ship.powerAvailable)}})
diff --git a/app/views/ship.html b/app/views/ship.html new file mode 100644 index 00000000..6a7c09e5 --- /dev/null +++ b/app/views/ship.html @@ -0,0 +1,55 @@ + +
+ {{ship.name}} +
Class: {{ship.class}}
+
Mass: {{ship.unladenMass}} - {{ship.ladenMass}} [{{ship.mass}}]T
+
Speed: {{ship.speed}} [{{ship.boost}}] M/s
+
Agility: {{ship.agility}}
+
Shields: {{ship.shields}}
+
Armour: {{ship.armour}}
+
Fuel: {{ship.fuelCapacity}}T
+
Cargo: {{ship.cargoCapacity}}T
+
Armour: {{ship.armour}}
+
Pad Size: {{['','Small','Medium','Large'][ship.class]}}
+
+ +
+ Standard +
+
Bulkheads
+
{{ship.bulkheads.c.name}} +
{{ship.bulkheads.c.mass}}T
+
+
+
{{b.name}}
+
+
+
+ +
+
+
+ +
+ HardPoints +
+ +
+
+
+ +
+ Internal Compartments +
+ +
+
+
{{grp}}
+
+
+
+
+
+ +
+
\ No newline at end of file diff --git a/app/views/ships.html b/app/views/ships.html new file mode 100644 index 00000000..e8c3584b --- /dev/null +++ b/app/views/ships.html @@ -0,0 +1,9 @@ + + +

{{s.name}}{{s.manufacturer}}

+
+
Class {{s.class}} / {{SZ[s.class]}}
+
{{SP[s.group]}}
+
+ {{credits(s.cost)}} Credits +
\ No newline at end of file diff --git a/bower.json b/bower.json new file mode 100644 index 00000000..8313cb72 --- /dev/null +++ b/bower.json @@ -0,0 +1,40 @@ +{ + "name": "shipyard", + "version": "0.0.0", + "authors": [ + "Colin McLeod " + ], + "description": "Elite Dangerous Shipyard", + "main": "app/app.js", + "moduleType": [ + "amd" + ], + "keywords": [ + "elite", + "shipyard" + ], + "license": "MIT", + "private": true, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ], + "dependencies": { + "d3": "~3.5.5", + "ng-lodash": "~0.2.0", + "nvd3": "~1.7.1", + "angularjs-nvd3-directives": "~0.0.7", + "angular-route": "~1.3.15" + }, + "overrides": { + "nvd3": { + "ignore": true, + "main": [ + "**/*css" + ] + } + } +} diff --git a/data/DATA_README.md b/data/DATA_README.md new file mode 100644 index 00000000..5ac60a97 --- /dev/null +++ b/data/DATA_README.md @@ -0,0 +1,6 @@ + +Explain WTF is going on here.... + + +#TODO + - Fix ALL Ship internal component defaults \ No newline at end of file diff --git a/data/components/bulkheads.json b/data/components/bulkheads.json new file mode 100644 index 00000000..0bcd2cb2 --- /dev/null +++ b/data/components/bulkheads.json @@ -0,0 +1,631 @@ +{ + "sidewinder": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 25600, + "mass": 2 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 80320, + "mass": 4 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 132064, + "mass": 4 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 139424, + "mass": 4 + } + ], + "cobra_mk_iii": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 151887, + "mass": 14 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 341746, + "mass": 27 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 797407, + "mass": 27 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 894995, + "mass": 27 + } + ], + "imperial_clipper": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 8918344, + "mass": 30 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 20066274, + "mass": 60 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 47423294, + "mass": 60 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 52551342, + "mass": 60 + } + ], + "federal_dropship": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 7925682, + "mass": 44 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 17832784, + "mass": 87 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 42144814, + "mass": 87 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 46702081, + "mass": 87 + } + ], + "python": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 22791271, + "mass": 26 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 51280361, + "mass": 53 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 121192586, + "mass": 53 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 134297567, + "mass": 53 + } + ], + "anaconda": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 58787780, + "mass": 30 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 132272505, + "mass": 60 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 312604021, + "mass": 60 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 346406995, + "mass": 60 + } + ], + "eagle": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 26880, + "mass": 4 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 90048, + "mass": 8 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 140089, + "mass": 8 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 150393, + "mass": 8 + } + ], + "viper": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 57172, + "mass": 5 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 128637, + "mass": 9 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 304014, + "mass": 9 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 336888, + "mass": 9 + } + ], + "vulture": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 1970246, + "mass": 17 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 4433054, + "mass": 35 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 10476783, + "mass": 35 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 11609675, + "mass": 35 + } + ], + "fer_de_lance": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 20626816, + "mass": 19 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 46410336, + "mass": 38 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 109683094, + "mass": 38 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 121543513, + "mass": 38 + } + ], + "hauler": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 42176, + "mass": 1 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 185047, + "mass": 2 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 270295, + "mass": 2 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 282421, + "mass": 2 + } + ], + "type_6_transporter": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 418378, + "mass": 12 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 941350, + "mass": 23 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 2224725, + "mass": 23 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 2465292, + "mass": 23 + } + ], + "type_7_transport": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 6988901, + "mass": 32 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 15725027, + "mass": 63 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 37163481, + "mass": 63 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 41182099, + "mass": 63 + } + ], + "type_9_heavy": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 30622336, + "mass": 75 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 68900257, + "mass": 150 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 162834275, + "mass": 150 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 180442119, + "mass": 150 + } + ], + "adder": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 35123, + "mass": 3 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 79027, + "mass": 5 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 186767, + "mass": 5 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 206963, + "mass": 5 + } + ], + "asp": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 2664461, + "mass": 21 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 5995038, + "mass": 42 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 14168273, + "mass": 42 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 15700338, + "mass": 42 + } + ], + "orca": [ + { + "name": "Lightweight Alloy", + "class": 1, + "rating": "I", + "cost": 0, + "mass": 0 + }, + { + "name": "Reinforced Alloy", + "class": 1, + "rating": "I", + "cost": 19415954, + "mass": 21 + }, + { + "name": "Military Grade Composite", + "class": 1, + "rating": "I", + "cost": 43685898, + "mass": 87 + }, + { + "name": "Mirrored Surface Composite", + "class": 1, + "rating": "I", + "cost": 103244339, + "mass": 87 + }, + { + "name": "Reactive Surface Composite", + "class": 1, + "rating": "I", + "cost": 114408513, + "mass": 87 + } + ] +} \ No newline at end of file diff --git a/data/components/common/frame_shift_drive.json b/data/components/common/frame_shift_drive.json new file mode 100644 index 00000000..895a6eb2 --- /dev/null +++ b/data/components/common/frame_shift_drive.json @@ -0,0 +1,277 @@ +{ + "2A": { + "class": 2, + "rating": "A", + "cost": 160224, + "mass": 2.5, + "power": 0.3, + "optmass": 90, + "maxfuel": 0.9, + "fuelmul": 0.012, + "fuelpower": 2 + }, + "2B": { + "class": 2, + "rating": "B", + "cost": 53408, + "mass": 4, + "power": 0.25, + "optmass": 75, + "maxfuel": 0.8, + "fuelmul": 0.01, + "fuelpower": 2 + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 17803, + "mass": 2.5, + "power": 0.2, + "optmass": 60, + "maxfuel": 0.6, + "fuelmul": 0.008, + "fuelpower": 2 + }, + "2D": { + "class": 2, + "rating": "D", + "cost": 5934, + "mass": 1, + "power": 0.18, + "optmass": 54, + "maxfuel": 0.6, + "fuelmul": 0.01, + "fuelpower": 2 + }, + "2E": { + "class": 2, + "rating": "E", + "cost": 1978, + "mass": 2.5, + "power": 0.16, + "optmass": 48, + "maxfuel": 0.6, + "fuelmul": 0.011, + "fuelpower": 2 + }, + "3A": { + "class": 3, + "rating": "A", + "cost": 507912, + "mass": 5, + "power": 0.45, + "optmass": 150, + "maxfuel": 1.8, + "fuelmul": 0.012, + "fuelpower": 2.15 + }, + "3B": { + "class": 3, + "rating": "B", + "cost": 169304, + "mass": 8, + "power": 0.38, + "optmass": 125, + "maxfuel": 1.5, + "fuelmul": 0.01, + "fuelpower": 2.15 + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 56435, + "mass": 5, + "power": 0.3, + "optmass": 100, + "maxfuel": 1.2, + "fuelmul": 0.008, + "fuelpower": 2.15 + }, + "3D": { + "class": 3, + "rating": "D", + "cost": 18812, + "mass": 2, + "power": 0.27, + "optmass": 90, + "maxfuel": 1.2, + "fuelmul": 0.01, + "fuelpower": 2.15 + }, + "3E": { + "class": 3, + "rating": "E", + "cost": 6271, + "mass": 5, + "power": 0.24, + "optmass": 80, + "maxfuel": 1.2, + "fuelmul": 0.011, + "fuelpower": 2.15 + }, + "4A": { + "class": 4, + "rating": "A", + "cost": 1610080, + "mass": 10, + "power": 0.45, + "optmass": 525, + "maxfuel": 3, + "fuelmul": 0.012, + "fuelpower": 2.3 + }, + "4B": { + "class": 4, + "rating": "B", + "cost": 536693, + "mass": 16, + "power": 0.38, + "optmass": 438, + "maxfuel": 2.5, + "fuelmul": 0.01, + "fuelpower": 2.3 + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 178898, + "mass": 10, + "power": 0.3, + "optmass": 350, + "maxfuel": 2, + "fuelmul": 0.008, + "fuelpower": 2.3 + }, + "4D": { + "class": 4, + "rating": "D", + "cost": 59633, + "mass": 4, + "power": 0.27, + "optmass": 315, + "maxfuel": 2, + "fuelmul": 0.01, + "fuelpower": 2.3 + }, + "4E": { + "class": 4, + "rating": "E", + "cost": 19878, + "mass": 10, + "power": 0.24, + "optmass": 280, + "maxfuel": 2, + "fuelmul": 0.011, + "fuelpower": 2.3 + }, + "5A": { + "class": 5, + "rating": "A", + "cost": 5103953, + "mass": 20, + "power": 0.6, + "optmass": 1050, + "maxfuel": 5, + "fuelmul": 0.012, + "fuelpower": 2.45 + }, + "5B": { + "class": 5, + "rating": "B", + "cost": 1701318, + "mass": 32, + "power": 0.5, + "optmass": 875, + "maxfuel": 4.1, + "fuelmul": 0.01, + "fuelpower": 2.45 + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 567106, + "mass": 20, + "power": 0.4, + "optmass": 700, + "maxfuel": 3.3, + "fuelmul": 0.008, + "fuelpower": 2.45 + }, + "5D": { + "class": 5, + "rating": "D", + "cost": 189036, + "mass": 8, + "power": 0.36, + "optmass": 630, + "maxfuel": 3.3, + "fuelmul": 0.01, + "fuelpower": 2.45 + }, + "5E": { + "class": 5, + "rating": "E", + "cost": 63013, + "mass": 20, + "power": 0.32, + "optmass": 560, + "maxfuel": 3.3, + "fuelmul": 0.011, + "fuelpower": 2.45 + }, + "6A": { + "class": 6, + "rating": "A", + "cost": 16179531, + "mass": 40, + "power": 0.75, + "optmass": 1800, + "maxfuel": 8, + "fuelmul": 0.012, + "fuelpower": 2.6 + }, + "6B": { + "class": 6, + "rating": "B", + "cost": 5393177, + "mass": 64, + "power": 0.63, + "optmass": 1500, + "maxfuel": 6.6, + "fuelmul": 0.01, + "fuelpower": 2.6 + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 1797726, + "mass": 40, + "power": 0.5, + "optmass": 1200, + "maxfuel": 5.3, + "fuelmul": 0.008, + "fuelpower": 2.6 + }, + "6D": { + "class": 6, + "rating": "D", + "cost": 599242, + "mass": 16, + "power": 0.45, + "optmass": 1080, + "maxfuel": 5.3, + "fuelmul": 0.01, + "fuelpower": 2.6 + }, + "6E": { + "class": 6, + "rating": "E", + "cost": 199747, + "mass": 40, + "power": 0.4, + "optmass": 960, + "maxfuel": 5.3, + "fuelmul": 0.011, + "fuelpower": 2.6 + } +} diff --git a/data/components/common/fuel_tank.json b/data/components/common/fuel_tank.json new file mode 100644 index 00000000..da096ba0 --- /dev/null +++ b/data/components/common/fuel_tank.json @@ -0,0 +1,38 @@ +{ + "1C": { + "class": 1, + "rating": "C", + "cost": 1000, + "capacity": 2 + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 3750, + "capacity": 4 + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 7063, + "capacity": 8 + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 24734, + "capacity": 16 + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 97754, + "capacity": 32 + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 341577, + "capacity": 64 + } +} \ No newline at end of file diff --git a/data/components/common/life_support.json b/data/components/common/life_support.json new file mode 100644 index 00000000..0c93edf2 --- /dev/null +++ b/data/components/common/life_support.json @@ -0,0 +1,242 @@ +{ + "1A": { + "class": 1, + "rating": "A", + "cost": 20195, + "mass": 1.3, + "power": 0.48, + "time": 1500 + }, + "1B": { + "class": 1, + "rating": "B", + "cost": 8078, + "mass": 2, + "power": 0.44, + "time": 900 + }, + "1C": { + "class": 1, + "rating": "C", + "cost": 3231, + "mass": 1.3, + "power": 0.4, + "time": 600 + }, + "1D": { + "class": 1, + "rating": "D", + "cost": 1293, + "mass": 0.5, + "power": 0.36, + "time": 450 + }, + "1E": { + "class": 1, + "rating": "E", + "cost": 517, + "mass": 1.3, + "power": 0.32, + "time": 300 + }, + "2A": { + "class": 2, + "rating": "A", + "cost": 56547, + "mass": 2.5, + "power": 0.55, + "time": 1500 + }, + "2B": { + "class": 2, + "rating": "B", + "cost": 22619, + "mass": 4, + "power": 0.51, + "time": 900 + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 9048, + "mass": 2.5, + "power": 0.46, + "time": 600 + }, + "2D": { + "class": 2, + "rating": "D", + "cost": 3619, + "mass": 1, + "power": 0.41, + "time": 450 + }, + "2E": { + "class": 2, + "rating": "E", + "cost": 1448, + "mass": 2.5, + "power": 0.37, + "time": 300 + }, + "3A": { + "class": 3, + "rating": "A", + "cost": 158331, + "mass": 5, + "power": 0.64, + "time": 1500 + }, + "3B": { + "class": 3, + "rating": "B", + "cost": 63333, + "mass": 8, + "power": 0.58, + "time": 900 + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 25333, + "mass": 5, + "power": 0.53, + "time": 600 + }, + "3D": { + "class": 3, + "rating": "D", + "cost": 10133, + "mass": 2, + "power": 0.48, + "time": 450 + }, + "3E": { + "class": 3, + "rating": "E", + "cost": 4053, + "mass": 5, + "power": 0.42, + "time": 300 + }, + "4A": { + "class": 4, + "rating": "A", + "cost": 443328, + "mass": 10, + "power": 0.74, + "time": 1500 + }, + "4B": { + "class": 4, + "rating": "B", + "cost": 177331, + "mass": 16, + "power": 0.68, + "time": 900 + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 70932, + "mass": 10, + "power": 0.62, + "time": 600 + }, + "4D": { + "class": 4, + "rating": "D", + "cost": 28373, + "mass": 4, + "power": 0.56, + "time": 450 + }, + "4E": { + "class": 4, + "rating": "E", + "cost": 11349, + "mass": 10, + "power": 0.5, + "time": 300 + }, + "5A": { + "class": 5, + "rating": "A", + "cost": 1241317, + "mass": 20, + "power": 0.85, + "time": 1500 + }, + "5B": { + "class": 5, + "rating": "B", + "cost": 496527, + "mass": 32, + "power": 0.78, + "time": 900 + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 198611, + "mass": 20, + "power": 0.71, + "time": 600 + }, + "5D": { + "class": 5, + "rating": "D", + "cost": 79444, + "mass": 8, + "power": 0.64, + "time": 450 + }, + "5E": { + "class": 5, + "rating": "E", + "cost": 31778, + "mass": 20, + "power": 0.57, + "time": 300 + }, + "6A": { + "class": 6, + "rating": "A", + "cost": 3475688, + "mass": 40, + "power": 0.96, + "time": 1500 + }, + "6B": { + "class": 6, + "rating": "B", + "cost": 1390275, + "mass": 64, + "power": 0.88, + "time": 900 + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 556110, + "mass": 40, + "power": 0.8, + "time": 600 + }, + "6D": { + "class": 6, + "rating": "D", + "cost": 222444, + "mass": 16, + "power": 0.72, + "time": 450 + }, + "6E": { + "class": 6, + "rating": "E", + "cost": 88978, + "mass": 40, + "power": 0.64, + "time": 300 + } +} diff --git a/data/components/common/power_distributor.json b/data/components/common/power_distributor.json new file mode 100644 index 00000000..66a54e06 --- /dev/null +++ b/data/components/common/power_distributor.json @@ -0,0 +1,522 @@ +{ + "1A": { + "class": 1, + "rating": "A", + "cost": 20195, + "mass": 1.3, + "power": 0.48, + "weaponcapacity": 14, + "weaponrecharge": 1.8, + "enginecapacity": 12, + "enginerecharge": 0.6, + "systemcapacity": 12, + "systemrecharge": 0.6 + }, + "1B": { + "class": 1, + "rating": "B", + "cost": 8078, + "mass": 2, + "power": 0.44, + "weaponcapacity": 13, + "weaponrecharge": 1.7, + "enginecapacity": 11, + "enginerecharge": 0.6, + "systemcapacity": 11, + "systemrecharge": 0.6 + }, + "1C": { + "class": 1, + "rating": "C", + "cost": 3231, + "mass": 1.3, + "power": 0.4, + "weaponcapacity": 12, + "weaponrecharge": 1.5, + "enginecapacity": 10, + "enginerecharge": 0.5, + "systemcapacity": 10, + "systemrecharge": 0.5 + }, + "1D": { + "class": 1, + "rating": "D", + "cost": 1293, + "mass": 0.5, + "power": 0.36, + "weaponcapacity": 11, + "weaponrecharge": 1.4, + "enginecapacity": 9, + "enginerecharge": 0.5, + "systemcapacity": 9, + "systemrecharge": 0.5 + }, + "1E": { + "class": 1, + "rating": "E", + "cost": 517, + "mass": 1.3, + "power": 0.32, + "weaponcapacity": 10, + "weaponrecharge": 1.2, + "enginecapacity": 8, + "enginerecharge": 0.4, + "systemcapacity": 8, + "systemrecharge": 0.4 + }, + "2A": { + "class": 2, + "rating": "A", + "cost": 56547, + "mass": 2.5, + "power": 0.54, + "weaponcapacity": 18, + "weaponrecharge": 2.2, + "enginecapacity": 14, + "enginerecharge": 0.8, + "systemcapacity": 14, + "systemrecharge": 0.8 + }, + "2B": { + "class": 2, + "rating": "B", + "cost": 22619, + "mass": 4, + "power": 0.5, + "weaponcapacity": 17, + "weaponrecharge": 2, + "enginecapacity": 13, + "enginerecharge": 0.8, + "systemcapacity": 13, + "systemrecharge": 0.8 + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 9048, + "mass": 2.5, + "power": 0.45, + "weaponcapacity": 15, + "weaponrecharge": 1.8, + "enginecapacity": 12, + "enginerecharge": 0.7, + "systemcapacity": 12, + "systemrecharge": 0.7 + }, + "2D": { + "class": 2, + "rating": "D", + "cost": 3619, + "mass": 1, + "power": 0.41, + "weaponcapacity": 14, + "weaponrecharge": 1.6, + "enginecapacity": 11, + "enginerecharge": 0.6, + "systemcapacity": 11, + "systemrecharge": 0.6 + }, + "2E": { + "class": 2, + "rating": "E", + "cost": 1448, + "mass": 2.5, + "power": 0.36, + "weaponcapacity": 12, + "weaponrecharge": 1.4, + "enginecapacity": 10, + "enginerecharge": 0.6, + "systemcapacity": 10, + "systemrecharge": 0.6 + }, + "3A": { + "class": 3, + "rating": "A", + "cost": 158331, + "mass": 5, + "power": 0.6, + "weaponcapacity": 24, + "weaponrecharge": 2.8, + "enginecapacity": 18, + "enginerecharge": 1.3, + "systemcapacity": 18, + "systemrecharge": 1.3 + }, + "3B": { + "class": 3, + "rating": "B", + "cost": 63333, + "mass": 8, + "power": 0.55, + "weaponcapacity": 22, + "weaponrecharge": 2.5, + "enginecapacity": 17, + "enginerecharge": 1.2, + "systemcapacity": 17, + "systemrecharge": 1.2 + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 25333, + "mass": 5, + "power": 0.5, + "weaponcapacity": 20, + "weaponrecharge": 2.3, + "enginecapacity": 15, + "enginerecharge": 1.1, + "systemcapacity": 15, + "systemrecharge": 1.1 + }, + "3D": { + "class": 3, + "rating": "D", + "cost": 10133, + "mass": 2, + "power": 0.45, + "weaponcapacity": 18, + "weaponrecharge": 2.1, + "enginecapacity": 14, + "enginerecharge": 1, + "systemcapacity": 14, + "systemrecharge": 1 + }, + "3E": { + "class": 3, + "rating": "E", + "cost": 4053, + "mass": 5, + "power": 0.4, + "weaponcapacity": 16, + "weaponrecharge": 1.8, + "enginecapacity": 12, + "enginerecharge": 0.9, + "systemcapacity": 12, + "systemrecharge": 0.9 + }, + "4A": { + "class": 4, + "rating": "A", + "cost": 443328, + "mass": 10, + "power": 0.67, + "weaponcapacity": 32, + "weaponrecharge": 3.5, + "enginecapacity": 23, + "enginerecharge": 1.9, + "systemcapacity": 23, + "systemrecharge": 1.9 + }, + "4B": { + "class": 4, + "rating": "B", + "cost": 177331, + "mass": 16, + "power": 0.62, + "weaponcapacity": 30, + "weaponrecharge": 3.2, + "enginecapacity": 21, + "enginerecharge": 1.8, + "systemcapacity": 21, + "systemrecharge": 1.8 + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 70932, + "mass": 10, + "power": 0.56, + "weaponcapacity": 27, + "weaponrecharge": 2.9, + "enginecapacity": 19, + "enginerecharge": 1.6, + "systemcapacity": 19, + "systemrecharge": 1.6 + }, + "4D": { + "class": 4, + "rating": "D", + "cost": 28373, + "mass": 4, + "power": 0.5, + "weaponcapacity": 24, + "weaponrecharge": 2.6, + "enginecapacity": 17, + "enginerecharge": 1.4, + "systemcapacity": 17, + "systemrecharge": 1.4 + }, + "4E": { + "class": 4, + "rating": "E", + "cost": 11349, + "mass": 10, + "power": 0.45, + "weaponcapacity": 22, + "weaponrecharge": 2.3, + "enginecapacity": 15, + "enginerecharge": 1.3, + "systemcapacity": 15, + "systemrecharge": 1.3 + }, + "5A": { + "class": 5, + "rating": "A", + "cost": 1241317, + "mass": 20, + "power": 0.74, + "weaponcapacity": 41, + "weaponrecharge": 4.3, + "enginecapacity": 29, + "enginerecharge": 2.5, + "systemcapacity": 29, + "systemrecharge": 2.5 + }, + "5B": { + "class": 5, + "rating": "B", + "cost": 496527, + "mass": 32, + "power": 0.68, + "weaponcapacity": 37, + "weaponrecharge": 4, + "enginecapacity": 26, + "enginerecharge": 2.3, + "systemcapacity": 26, + "systemrecharge": 2.3 + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 198611, + "mass": 20, + "power": 0.62, + "weaponcapacity": 34, + "weaponrecharge": 3.6, + "enginecapacity": 24, + "enginerecharge": 2.1, + "systemcapacity": 24, + "systemrecharge": 2.1 + }, + "5D": { + "class": 5, + "rating": "D", + "cost": 79444, + "mass": 8, + "power": 0.56, + "weaponcapacity": 31, + "weaponrecharge": 3.2, + "enginecapacity": 22, + "enginerecharge": 1.9, + "systemcapacity": 22, + "systemrecharge": 1.9 + }, + "5E": { + "class": 5, + "rating": "E", + "cost": 31778, + "mass": 20, + "power": 0.5, + "weaponcapacity": 27, + "weaponrecharge": 2.9, + "enginecapacity": 19, + "enginerecharge": 1.7, + "systemcapacity": 19, + "systemrecharge": 1.7 + }, + "6A": { + "class": 6, + "rating": "A", + "cost": 3475688, + "mass": 40, + "power": 0.82, + "weaponcapacity": 50, + "weaponrecharge": 5.2, + "enginecapacity": 35, + "enginerecharge": 3.2, + "systemcapacity": 35, + "systemrecharge": 3.2 + }, + "6B": { + "class": 6, + "rating": "B", + "cost": 1390275, + "mass": 64, + "power": 0.75, + "weaponcapacity": 46, + "weaponrecharge": 4.7, + "enginecapacity": 32, + "enginerecharge": 3, + "systemcapacity": 32, + "systemrecharge": 3 + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 556110, + "mass": 40, + "power": 0.68, + "weaponcapacity": 42, + "weaponrecharge": 4.3, + "enginecapacity": 29, + "enginerecharge": 2.7, + "systemcapacity": 29, + "systemrecharge": 2.7 + }, + "6D": { + "class": 6, + "rating": "D", + "cost": 222444, + "mass": 16, + "power": 0.61, + "weaponcapacity": 38, + "weaponrecharge": 3.9, + "enginecapacity": 26, + "enginerecharge": 2.4, + "systemcapacity": 26, + "systemrecharge": 2.4 + }, + "6E": { + "class": 6, + "rating": "E", + "cost": 88978, + "mass": 40, + "power": 0.54, + "weaponcapacity": 34, + "weaponrecharge": 3.4, + "enginecapacity": 23, + "enginerecharge": 2.2, + "systemcapacity": 23, + "systemrecharge": 2.2 + }, + "7A": { + "class": 7, + "rating": "A", + "cost": 9731925, + "mass": 80, + "power": 0.89, + "weaponcapacity": 61, + "weaponrecharge": 6.1, + "enginecapacity": 41, + "enginerecharge": 4, + "systemcapacity": 41, + "systemrecharge": 4 + }, + "7B": { + "class": 7, + "rating": "B", + "cost": 3892770, + "mass": 128, + "power": 0.81, + "weaponcapacity": 56, + "weaponrecharge": 5.6, + "enginecapacity": 37, + "enginerecharge": 3.6, + "systemcapacity": 37, + "systemrecharge": 3.6 + }, + "7C": { + "class": 7, + "rating": "C", + "cost": 1557108, + "mass": 80, + "power": 0.74, + "weaponcapacity": 51, + "weaponrecharge": 5.1, + "enginecapacity": 34, + "enginerecharge": 3.3, + "systemcapacity": 34, + "systemrecharge": 3.3 + }, + "7D": { + "class": 7, + "rating": "D", + "cost": 622843, + "mass": 32, + "power": 0.67, + "weaponcapacity": 46, + "weaponrecharge": 4.6, + "enginecapacity": 31, + "enginerecharge": 3, + "systemcapacity": 31, + "systemrecharge": 3 + }, + "7E": { + "class": 7, + "rating": "E", + "cost": 249137, + "mass": 80, + "power": 0.59, + "weaponcapacity": 41, + "weaponrecharge": 4.1, + "enginecapacity": 27, + "enginerecharge": 2.6, + "systemcapacity": 27, + "systemrecharge": 2.6 + }, + "8A": { + "class": 8, + "rating": "A", + "cost": 27249391, + "mass": 160, + "power": 0.96, + "weaponcapacity": 72, + "weaponrecharge": 7.2, + "enginecapacity": 48, + "enginerecharge": 4.8, + "systemcapacity": 48, + "systemrecharge": 4.8 + }, + "8B": { + "class": 8, + "rating": "B", + "cost": 10899756, + "mass": 256, + "power": 0.88, + "weaponcapacity": 66, + "weaponrecharge": 6.6, + "enginecapacity": 44, + "enginerecharge": 4.4, + "systemcapacity": 44, + "systemrecharge": 4.4 + }, + "8C": { + "class": 8, + "rating": "C", + "cost": 4359903, + "mass": 160, + "power": 0.8, + "weaponcapacity": 60, + "weaponrecharge": 6, + "enginecapacity": 40, + "enginerecharge": 4, + "systemcapacity": 40, + "systemrecharge": 4 + }, + "8D": { + "class": 8, + "rating": "D", + "cost": 1743961, + "mass": 64, + "power": 0.72, + "weaponcapacity": 54, + "weaponrecharge": 5.4, + "enginecapacity": 36, + "enginerecharge": 3.6, + "systemcapacity": 36, + "systemrecharge": 3.6 + }, + "8E": { + "class": 8, + "rating": "E", + "cost": 697584, + "mass": 160, + "power": 0.64, + "weaponcapacity": 48, + "weaponrecharge": 4.8, + "enginecapacity": 32, + "enginerecharge": 3.2, + "systemcapacity": 32, + "systemrecharge": 3.2 + } +} diff --git a/data/components/common/power_plant.json b/data/components/common/power_plant.json new file mode 100644 index 00000000..8be517c4 --- /dev/null +++ b/data/components/common/power_plant.json @@ -0,0 +1,282 @@ +{ + "2A": { + "class": 2, + "rating": "A", + "cost": 160224, + "mass": 1.3, + "pGen": 9.6, + "eff": "B" + }, + "2B": { + "class": 2, + "rating": "B", + "cost": 53408, + "mass": 2, + "pGen": 8.8, + "eff": "C" + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 17803, + "mass": 1.3, + "pGen": 8, + "eff": "C" + }, + "2D": { + "class": 2, + "rating": "D", + "cost": 5934, + "mass": 1, + "pGen": 7.2, + "eff": "D" + }, + "2E": { + "class": 2, + "rating": "E", + "cost": 1978, + "mass": 2.5, + "pGen": 6.4, + "eff": "F" + }, + "3A": { + "class": 3, + "rating": "A", + "cost": 507912, + "mass": 2.5, + "pGen": 12, + "eff": "B" + }, + "3B": { + "class": 3, + "rating": "B", + "cost": 169304, + "mass": 4, + "pGen": 11, + "eff": "C" + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 56435, + "mass": 2.5, + "pGen": 10, + "eff": "C" + }, + "3D": { + "class": 3, + "rating": "D", + "cost": 18812, + "mass": 2, + "pGen": 9, + "eff": "D" + }, + "3E": { + "class": 3, + "rating": "E", + "cost": 6271, + "mass": 5, + "pGen": 8, + "eff": "F" + }, + "4A": { + "class": 4, + "rating": "A", + "cost": 1610080, + "mass": 5, + "pGen": 15.6, + "eff": "B" + }, + "4B": { + "class": 4, + "rating": "B", + "cost": 536693, + "mass": 8, + "pGen": 14.3, + "eff": "C" + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 178898, + "mass": 5, + "pGen": 13, + "eff": "C" + }, + "4D": { + "class": 4, + "rating": "D", + "cost": 59633, + "mass": 4, + "pGen": 11.7, + "eff": "D" + }, + "4E": { + "class": 4, + "rating": "E", + "cost": 19878, + "mass": 10, + "pGen": 10.4, + "eff": "F" + }, + "5A": { + "class": 5, + "rating": "A", + "cost": 5103953, + "mass": 10, + "pGen": 20.4, + "eff": "B" + }, + "5B": { + "class": 5, + "rating": "B", + "cost": 1701318, + "mass": 16, + "pGen": 18.7, + "eff": "C" + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 567106, + "mass": 10, + "pGen": 17, + "eff": "C" + }, + "5D": { + "class": 5, + "rating": "D", + "cost": 189035, + "mass": 8, + "pGen": 15.3, + "eff": "D" + }, + "5E": { + "class": 5, + "rating": "E", + "cost": 63012, + "mass": 20, + "pGen": 13.6, + "eff": "F" + }, + "6A": { + "class": 6, + "rating": "A", + "cost": 16179531, + "mass": 20, + "pGen": 25.2, + "eff": "B" + }, + "6B": { + "class": 6, + "rating": "B", + "cost": 5393177, + "mass": 32, + "pGen": 23.1, + "eff": "C" + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 1797726, + "mass": 20, + "pGen": 21, + "eff": "C" + }, + "6D": { + "class": 6, + "rating": "D", + "cost": 599242, + "mass": 16, + "pGen": 18.9, + "eff": "D" + }, + "6E": { + "class": 6, + "rating": "E", + "cost": 199747, + "mass": 40, + "pGen": 16.8, + "eff": "F" + }, + "7A": { + "class": 7, + "rating": "A", + "cost": 51289112, + "mass": 40, + "pGen": 30, + "eff": "B" + }, + "7B": { + "class": 7, + "rating": "B", + "cost": 17096371, + "mass": 64, + "pGen": 27.5, + "eff": "C" + }, + "7C": { + "class": 7, + "rating": "C", + "cost": 5698790, + "mass": 40, + "pGen": 25, + "eff": "C" + }, + "7D": { + "class": 7, + "rating": "D", + "cost": 1899597, + "mass": 32, + "pGen": 22.5, + "eff": "D" + }, + "7E": { + "class": 7, + "rating": "E", + "cost": 633199, + "mass": 80, + "pGen": 20, + "eff": "F" + }, + "8A": { + "class": 8, + "rating": "A", + "cost": 162586486, + "mass": 80, + "pGen": 36, + "eff": "B" + }, + "8B": { + "class": 8, + "rating": "B", + "cost": 54195495, + "mass": 128, + "pGen": 33, + "eff": "C" + }, + "8C": { + "class": 8, + "rating": "C", + "cost": 18065165, + "mass": 80, + "pGen": 30, + "eff": "C" + }, + "8D": { + "class": 8, + "rating": "D", + "cost": 6021722, + "mass": 64, + "pGen": 27, + "eff": "D" + }, + "8E": { + "class": 8, + "rating": "E", + "cost": 2007241, + "mass": 160, + "pGen": 24, + "eff": "F" + } +} diff --git a/data/components/common/sensors.json b/data/components/common/sensors.json new file mode 100644 index 00000000..1d39a689 --- /dev/null +++ b/data/components/common/sensors.json @@ -0,0 +1,282 @@ +{ + "1A": { + "class": 1, + "rating": "A", + "cost": 20195, + "mass": 1.3, + "power": 0.6, + "range": 6 + }, + "1B": { + "class": 1, + "rating": "B", + "cost": 8078, + "mass": 2, + "power": 0.33, + "range": 5.5 + }, + "1C": { + "class": 1, + "rating": "C", + "cost": 3231, + "mass": 1.3, + "power": 0.2, + "range": 5 + }, + "1D": { + "class": 1, + "rating": "D", + "cost": 1293, + "mass": 0.5, + "power": 0.18, + "range": 4.5 + }, + "1E": { + "class": 1, + "rating": "E", + "cost": 517, + "mass": 1.3, + "power": 0.16, + "range": 4 + }, + "2A": { + "class": 2, + "rating": "A", + "cost": 56547, + "mass": 2.5, + "power": 0.69, + "range": 6 + }, + "2B": { + "class": 2, + "rating": "B", + "cost": 22619, + "mass": 4, + "power": 0.38, + "range": 5.5 + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 9048, + "mass": 2.5, + "power": 0.23, + "range": 5 + }, + "2D": { + "class": 2, + "rating": "D", + "cost": 3619, + "mass": 1, + "power": 0.21, + "range": 4.5 + }, + "2E": { + "class": 2, + "rating": "E", + "cost": 1448, + "mass": 2.5, + "power": 0.18, + "range": 4 + }, + "3A": { + "class": 3, + "rating": "A", + "cost": 158331, + "mass": 5, + "power": 0.84, + "range": 6 + }, + "3B": { + "class": 3, + "rating": "B", + "cost": 63333, + "mass": 8, + "power": 0.46, + "range": 5.5 + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 25333, + "mass": 5, + "power": 0.28, + "range": 5 + }, + "3D": { + "class": 3, + "rating": "D", + "cost": 10133, + "mass": 2, + "power": 0.25, + "range": 4.5 + }, + "3E": { + "class": 3, + "rating": "E", + "cost": 4053, + "mass": 5, + "power": 0.22, + "range": 4 + }, + "4A": { + "class": 4, + "rating": "A", + "cost": 443328, + "mass": 10, + "power": 1.02, + "range": 7 + }, + "4B": { + "class": 4, + "rating": "B", + "cost": 177331, + "mass": 16, + "power": 0.56, + "range": 6 + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 70932, + "mass": 10, + "power": 0.34, + "range": 6 + }, + "4D": { + "class": 4, + "rating": "D", + "cost": 28373, + "mass": 4, + "power": 0.31, + "range": 5 + }, + "4E": { + "class": 4, + "rating": "E", + "cost": 11349, + "mass": 10, + "power": 0.27, + "range": 4 + }, + "5A": { + "class": 5, + "rating": "A", + "cost": 1241317, + "mass": 20, + "power": 1.23, + "range": 6.5 + }, + "5B": { + "class": 5, + "rating": "B", + "cost": 496527, + "mass": 32, + "power": 0.68, + "range": 6 + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 198611, + "mass": 20, + "power": 0.41, + "range": 5.5 + }, + "5D": { + "class": 5, + "rating": "D", + "cost": 79444, + "mass": 8, + "power": 0.37, + "range": 5 + }, + "5E": { + "class": 5, + "rating": "E", + "cost": 31778, + "mass": 20, + "power": 0.33, + "range": 4.5 + }, + "6A": { + "class": 6, + "rating": "A", + "cost": 3475688, + "mass": 40, + "power": 1.5, + "range": 7 + }, + "6B": { + "class": 6, + "rating": "B", + "cost": 1390275, + "mass": 64, + "power": 0.83, + "range": 7 + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 556110, + "mass": 40, + "power": 0.5, + "range": 6 + }, + "6D": { + "class": 6, + "rating": "D", + "cost": 222444, + "mass": 16, + "power": 0.45, + "range": 5 + }, + "6E": { + "class": 6, + "rating": "E", + "cost": 88978, + "mass": 40, + "power": 0.4, + "range": 5 + }, + "8A": { + "class": 8, + "rating": "A", + "cost": 27249391, + "mass": 160, + "power": 2.07, + "range": 8 + }, + "8B": { + "class": 8, + "rating": "B", + "cost": 10899756, + "mass": 256, + "power": 1.14, + "range": 7 + }, + "8C": { + "class": 8, + "rating": "C", + "cost": 4359903, + "mass": 160, + "power": 0.69, + "range": 6 + }, + "8D": { + "class": 8, + "rating": "D", + "cost": 1743961, + "mass": 64, + "power": 0.62, + "range": 6 + }, + "8E": { + "class": 8, + "rating": "E", + "cost": 697584, + "mass": 160, + "power": 0.55, + "range": 5 + } +} diff --git a/data/components/common/thrusters.json b/data/components/common/thrusters.json new file mode 100644 index 00000000..c6bbef40 --- /dev/null +++ b/data/components/common/thrusters.json @@ -0,0 +1,272 @@ +{ + "2A": { + "class": 2, + "rating": "A", + "cost": 160224, + "mass": 2.5, + "power": 3, + "optmass": 72, + "maxmass": 108 + }, + "2B": { + "class": 2, + "rating": "B", + "cost": 53408, + "mass": 4, + "power": 2.75, + "optmass": 66, + "maxmass": 99 + }, + "2C": { + "class": 2, + "rating": "C", + "cost": 17803, + "mass": 2.5, + "power": 2.5, + "optmass": 60, + "maxmass": 90 + }, + "2D": { + "class": 2, + "rating": "D", + "cost": 5934, + "mass": 1, + "power": 2.25, + "optmass": 54, + "maxmass": 81 + }, + "2E": { + "class": 2, + "rating": "E", + "cost": 1978, + "mass": 2.5, + "power": 2, + "optmass": 48, + "maxmass": 72 + }, + "3A": { + "class": 3, + "rating": "A", + "cost": 507912, + "mass": 5, + "power": 3.72, + "optmass": 120, + "maxmass": 180 + }, + "3B": { + "class": 3, + "rating": "B", + "cost": 169304, + "mass": 8, + "power": 3.41, + "optmass": 110, + "maxmass": 165 + }, + "3C": { + "class": 3, + "rating": "C", + "cost": 56435, + "mass": 5, + "power": 3.1, + "optmass": 100, + "maxmass": 150 + }, + "3D": { + "class": 3, + "rating": "D", + "cost": 18812, + "mass": 2, + "power": 2.79, + "optmass": 90, + "maxmass": 135 + }, + "3E": { + "class": 3, + "rating": "E", + "cost": 6271, + "mass": 5, + "power": 2.48, + "optmass": 80, + "maxmass": 120 + }, + "4A": { + "class": 4, + "rating": "A", + "cost": 1610080, + "mass": 10, + "power": 4.92, + "optmass": 420, + "maxmass": 630 + }, + "4B": { + "class": 4, + "rating": "B", + "cost": 536693, + "mass": 16, + "power": 4.51, + "optmass": 385, + "maxmass": 578 + }, + "4C": { + "class": 4, + "rating": "C", + "cost": 178898, + "mass": 10, + "power": 4.1, + "optmass": 350, + "maxmass": 525 + }, + "4D": { + "class": 4, + "rating": "D", + "cost": 59633, + "mass": 4, + "power": 3.69, + "optmass": 315, + "maxmass": 473 + }, + "4E": { + "class": 4, + "rating": "E", + "cost": 19878, + "mass": 10, + "power": 3.82, + "optmass": 280, + "maxmass": 420 + }, + "5A": { + "class": 5, + "rating": "A", + "cost": 5103953, + "mass": 20, + "power": 6.12, + "optmass": 840, + "maxmass": 1260 + }, + "5B": { + "class": 5, + "rating": "B", + "cost": 1701318, + "mass": 32, + "power": 5.61, + "optmass": 770, + "maxmass": 1155 + }, + "5C": { + "class": 5, + "rating": "C", + "cost": 567106, + "mass": 20, + "power": 5.1, + "optmass": 700, + "maxmass": 1050 + }, + "5D": { + "class": 5, + "rating": "D", + "cost": 189035, + "mass": 8, + "power": 4.59, + "optmass": 630, + "maxmass": 945 + }, + "5E": { + "class": 5, + "rating": "E", + "cost": 63012, + "mass": 20, + "power": 4.08, + "optmass": 560, + "maxmass": 840 + }, + "6A": { + "class": 6, + "rating": "A", + "cost": 16179531, + "mass": 40, + "power": 7.56, + "optmass": 1440, + "maxmass": 2160 + }, + "6B": { + "class": 6, + "rating": "B", + "cost": 5393177, + "mass": 64, + "power": 6.93, + "optmass": 1320, + "maxmass": 1980 + }, + "6C": { + "class": 6, + "rating": "C", + "cost": 1797726, + "mass": 40, + "power": 6.3, + "optmass": 1200, + "maxmass": 1800 + }, + "6D": { + "class": 6, + "rating": "D", + "cost": 599242, + "mass": 16, + "power": 5.67, + "optmass": 1080, + "maxmass": 1620 + }, + "6E": { + "class": 6, + "rating": "E", + "cost": 199747, + "mass": 40, + "power": 5.04, + "optmass": 960, + "maxmass": 1440 + }, + "7A": { + "class": 7, + "rating": "A", + "cost": 51289112, + "mass": 80, + "power": 9.12, + "optmass": 2160, + "maxmass": 3240 + }, + "7B": { + "class": 7, + "rating": "B", + "cost": 17096371, + "mass": 128, + "power": 8.36, + "optmass": 1980, + "maxmass": 2970 + }, + "7C": { + "class": 7, + "rating": "C", + "cost": 5698790, + "mass": 80, + "power": 7.6, + "optmass": 1800, + "maxmass": 2700 + }, + "7D": { + "class": 7, + "rating": "D", + "cost": 1899597, + "mass": 32, + "power": 6.84, + "optmass": 1620, + "maxmass": 2430 + }, + "7E": { + "class": 7, + "rating": "E", + "cost": 633199, + "mass": 80, + "power": 6.08, + "optmass": 1440, + "maxmass": 2160 + } +} diff --git a/data/components/hardpoints/beam_laser.json b/data/components/hardpoints/beam_laser.json new file mode 100644 index 00000000..542a41ff --- /dev/null +++ b/data/components/hardpoints/beam_laser.json @@ -0,0 +1,146 @@ +{ + "10": { + "group": "lt", + "name": "Beam Laser", + "class": 3, + "rating": "D", + "cost": 19399600, + "mass": 8, + "power": 1.68, + "mode": "T", + "type": "T", + "damage": 5, + "armourpen": "A", + "rof": null, + "dps": 4, + "thermload": 4 + }, + "0o": { + "group": "st", + "name": "Beam Laser", + "class": 1, + "rating": "E", + "cost": 37430, + "mass": 2, + "power": 0.69, + "mode": "F", + "type": "T", + "damage": 4, + "armourpen": "A", + "rof": null, + "dps": 3, + "thermload": 3 + }, + "0p": { + "group": "st", + "name": "Beam Laser", + "class": 1, + "rating": "E", + "cost": 74650, + "mass": 2, + "power": 0.67, + "mode": "G", + "type": "T", + "damage": 4, + "armourpen": "A", + "rof": null, + "dps": 3, + "thermload": 3 + }, + "0q": { + "group": "st", + "name": "Beam Laser", + "class": 1, + "rating": "F", + "cost": 500000, + "mass": 2, + "power": 0.63, + "mode": "T", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": null, + "dps": 3, + "thermload": 2 + }, + "0r": { + "group": "mt", + "name": "Beam Laser", + "class": 2, + "rating": "D", + "cost": 299520, + "mass": 4, + "power": 1.12, + "mode": "F", + "type": "T", + "damage": 5, + "armourpen": "A", + "rof": null, + "dps": 4, + "thermload": 4 + }, + "0s": { + "group": "mt", + "name": "Beam Laser", + "class": 2, + "rating": "D", + "cost": 500600, + "mass": 4, + "power": 1.1, + "mode": "G", + "type": "T", + "damage": 5, + "armourpen": "A", + "rof": null, + "dps": 4, + "thermload": 4 + }, + "0t": { + "group": "mt", + "name": "Beam Laser", + "class": 2, + "rating": "E", + "cost": 2099900, + "mass": 4, + "power": 1.03, + "mode": "T", + "type": "T", + "damage": 4, + "armourpen": "A", + "rof": null, + "dps": 3, + "thermload": 3 + }, + "0u": { + "group": "lt", + "name": "Beam Laser", + "class": 3, + "rating": "C", + "cost": 1177600, + "mass": 8, + "power": 1.8, + "mode": "F", + "type": "T", + "damage": 6, + "armourpen": "A", + "rof": null, + "dps": 5, + "thermload": 5 + }, + "0v": { + "group": "lt", + "name": "Beam Laser", + "class": 3, + "rating": "C", + "cost": 2396160, + "mass": 8, + "power": 1.78, + "mode": "G", + "type": "T", + "damage": 6, + "armourpen": "A", + "rof": null, + "dps": 4, + "thermload": 6 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/burst_laser.json b/data/components/hardpoints/burst_laser.json new file mode 100644 index 00000000..a05761f7 --- /dev/null +++ b/data/components/hardpoints/burst_laser.json @@ -0,0 +1,98 @@ +{ + "11": { + "group": "st", + "name": "Burst Laser", + "class": 1, + "rating": "F", + "cost": 4400, + "mass": 2, + "power": 0.65, + "mode": "F", + "type": "T", + "damage": 2, + "armourpen": "A", + "rof": 1.6, + "dps": 3, + "thermload": 1 + }, + "12": { + "group": "st", + "name": "Burst Laser", + "class": 1, + "rating": "G", + "cost": 8600, + "mass": 2, + "power": 0.64, + "mode": "G", + "type": "T", + "damage": 2, + "armourpen": "A", + "rof": 1.7, + "dps": 3, + "thermload": 1 + }, + "13": { + "group": "st", + "name": "Burst Laser", + "class": 1, + "rating": "G", + "cost": 52800, + "mass": 2, + "power": 0.6, + "mode": "T", + "type": "T", + "damage": 1, + "armourpen": "B", + "rof": 1.3, + "dps": 2, + "thermload": 1 + }, + "14": { + "group": "lt", + "name": "Burst Laser", + "class": 3, + "rating": "D", + "cost": 140400, + "mass": 8, + "power": 1.66, + "mode": "F", + "type": "T", + "damage": 4, + "armourpen": "B", + "rof": 1, + "dps": 4, + "thermload": 1 + }, + "15": { + "group": "lt", + "name": "Burst Laser", + "class": 3, + "rating": "E", + "cost": 281600, + "mass": 8, + "power": 1.65, + "mode": "G", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": 1.2, + "dps": 4, + "thermload": 1 + }, + "16": { + "group": "lt", + "name": "Burst Laser", + "class": 3, + "rating": "E", + "cost": 800400, + "mass": 8, + "power": 1.57, + "mode": "T", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": 0.9, + "dps": 4, + "thermload": 1 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/cannon.json b/data/components/hardpoints/cannon.json new file mode 100644 index 00000000..c96908a8 --- /dev/null +++ b/data/components/hardpoints/cannon.json @@ -0,0 +1,200 @@ +{ + "1h": { + "group": "sk", + "name": "Cannon", + "class": 1, + "rating": "D", + "cost": 21100, + "mass": 2, + "power": 0.34, + "mode": "F", + "type": "K", + "damage": 5, + "armourpen": "A", + "rof": 0.5, + "dps": 3, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1i": { + "group": "sk", + "name": "Cannon", + "class": 1, + "rating": "E", + "cost": 42200, + "mass": 2, + "power": 0.38, + "mode": "G", + "type": "K", + "damage": 5, + "armourpen": "A", + "rof": 0.5, + "dps": 3, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1j": { + "group": "sk", + "name": "Cannon", + "class": 1, + "rating": "F", + "cost": 506400, + "mass": 2, + "power": 0.32, + "mode": "T", + "type": "K", + "damage": 4, + "armourpen": "A", + "rof": 0.4, + "dps": 3, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1k": { + "group": "mk", + "name": "Cannon", + "class": 2, + "rating": "D", + "cost": 168430, + "mass": 4, + "power": 0.49, + "mode": "F", + "type": "K", + "damage": 6, + "armourpen": "A", + "rof": 0.5, + "dps": 4, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1l": { + "group": "mk", + "name": "Cannon", + "class": 2, + "rating": "D", + "cost": 337600, + "mass": 4, + "power": 0.54, + "mode": "G", + "type": "K", + "damage": 6, + "armourpen": "A", + "rof": 0.5, + "dps": 3, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1m": { + "group": "mk", + "name": "Cannon", + "class": 2, + "rating": "E", + "cost": 4051200, + "mass": 4, + "power": 0.45, + "mode": "T", + "type": "K", + "damage": 5, + "armourpen": "A", + "rof": 0.3, + "dps": 3, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1n": { + "group": "lk", + "name": "Cannon", + "class": 3, + "rating": "C", + "cost": 675200, + "mass": 8, + "power": 0.67, + "mode": "F", + "type": "K", + "damage": 7, + "armourpen": "A", + "rof": 0.4, + "dps": 4, + "thermload": 2, + "clip": 5, + "ammo": 100 + }, + "1o": { + "group": "lk", + "name": "Cannon", + "class": 3, + "rating": "C", + "cost": 1350400, + "mass": 8, + "power": 0.75, + "mode": "G", + "type": "K", + "damage": 7, + "armourpen": "A", + "rof": 0.4, + "dps": 4, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1p": { + "group": "lk", + "name": "Cannon", + "class": 3, + "rating": "D", + "cost": 16204800, + "mass": 8, + "power": 0.64, + "mode": "T", + "type": "K", + "damage": 6, + "armourpen": "A", + "rof": 0.3, + "dps": 4, + "thermload": 1, + "clip": 5, + "ammo": 100 + }, + "1q": { + "group": "hk", + "name": "Cannon", + "class": 4, + "rating": "B", + "cost": 2700800, + "mass": 16, + "power": 0.92, + "mode": "F", + "type": "K", + "damage": 9, + "armourpen": "A", + "rof": 0.4, + "dps": 5, + "thermload": 2, + "clip": 5, + "ammo": 100 + }, + "1r": { + "group": "hk", + "name": "Cannon", + "class": 4, + "rating": "B", + "cost": 5401600, + "mass": 16, + "power": 1.03, + "mode": "G", + "type": "K", + "damage": 8, + "armourpen": "A", + "rof": 0.4, + "dps": 4, + "thermload": 2, + "clip": 5, + "ammo": 100 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/cargo_scanner.json b/data/components/hardpoints/cargo_scanner.json new file mode 100644 index 00000000..fe173e2a --- /dev/null +++ b/data/components/hardpoints/cargo_scanner.json @@ -0,0 +1,57 @@ +{ + "09": { + "group": "us", + "name": "Cargo Scanner", + "class": 0, + "rating": "A", + "cost": 1097095, + "mass": 1.3, + "power": 3.2, + "range": 4, + "time": 10 + }, + "0a": { + "group": "us", + "name": "Cargo Scanner", + "class": 0, + "rating": "B", + "cost": 365698, + "mass": 1.3, + "power": 1.6, + "range": 3.5, + "time": 10 + }, + "0b": { + "group": "us", + "name": "Cargo Scanner", + "class": 0, + "rating": "C", + "cost": 121899, + "mass": 1.3, + "power": 0.8, + "range": 3, + "time": 10 + }, + "0c": { + "group": "us", + "name": "Cargo Scanner", + "class": 0, + "rating": "D", + "cost": 40633, + "mass": 1.3, + "power": 0.4, + "range": 2.5, + "time": 10 + }, + "0d": { + "group": "us", + "name": "Cargo Scanner", + "class": 0, + "rating": "E", + "cost": 13544, + "mass": 1.3, + "power": 0.2, + "range": 2, + "time": 10 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/chaff_launcher.json b/data/components/hardpoints/chaff_launcher.json new file mode 100644 index 00000000..81c45c59 --- /dev/null +++ b/data/components/hardpoints/chaff_launcher.json @@ -0,0 +1,16 @@ +{ + "00": { + "group": "um", + "name": "Chaff Launcher", + "class": 0, + "rating": "I", + "cost": 8500, + "mass": 1.3, + "power": 0.2, + "passive": 1, + "armourpen": "F", + "thermload": 2, + "clip": 1, + "ammo": 10 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/electronic_countermeasure.json b/data/components/hardpoints/electronic_countermeasure.json new file mode 100644 index 00000000..47457990 --- /dev/null +++ b/data/components/hardpoints/electronic_countermeasure.json @@ -0,0 +1,15 @@ +{ + "01": { + "group": "um", + "name": "Electronic Countermeasure", + "class": 0, + "rating": "F", + "cost": 12500, + "mass": 1.3, + "power": 0.2, + "range": 3, + "chargeup": 4, + "activepower": 4, + "cooldown": 10 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/fragment_cannon.json b/data/components/hardpoints/fragment_cannon.json new file mode 100644 index 00000000..8769d86f --- /dev/null +++ b/data/components/hardpoints/fragment_cannon.json @@ -0,0 +1,128 @@ +{ + "20": { + "group": "lk", + "name": "Fragment Cannon", + "class": 3, + "rating": "C", + "cost": 1167360, + "mass": 8, + "power": 1.02, + "mode": "F", + "type": "K", + "damage": 3, + "armourpen": "A", + "rof": 4.5, + "dps": 10, + "thermload": 1, + "clip": 3, + "ammo": 30 + }, + "21": { + "group": "lk", + "name": "Fragment Cannon", + "class": 3, + "rating": "C", + "cost": 1751040, + "mass": 8, + "power": 1.55, + "mode": "G", + "type": "K", + "damage": 3, + "armourpen": "A", + "rof": 4.8, + "dps": 10, + "thermload": 1, + "clip": 3, + "ammo": 30 + }, + "22": { + "group": "lk", + "name": "Fragment Cannon", + "class": 3, + "rating": "C", + "cost": 5836800, + "mass": 8, + "power": 1.29, + "mode": "T", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 3.3, + "dps": 9, + "thermload": 1, + "clip": 3, + "ammo": 30 + }, + "1s": { + "group": "sk", + "name": "Fragment Cannon", + "class": 1, + "rating": "E", + "cost": 36000, + "mass": 2, + "power": 0.45, + "mode": "F", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 5.5, + "dps": 8, + "thermload": 1, + "clip": 3, + "ammo": 30 + }, + "1t": { + "group": "sk", + "name": "Fragment Cannon", + "class": 1, + "rating": "E", + "cost": 54720, + "mass": 2, + "power": 0.59, + "mode": "G", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 5.8, + "dps": 7, + "thermload": 1, + "clip": 3, + "ammo": 30 + }, + "1u": { + "group": "sk", + "name": "Fragment Cannon", + "class": 1, + "rating": "E", + "cost": 182400, + "mass": 2, + "power": 0.42, + "mode": "T", + "type": "K", + "damage": 1, + "armourpen": "A", + "rof": 4, + "dps": 6, + "thermload": 1, + "clip": 3, + "ammo": 30 + }, + "1v": { + "group": "mk", + "name": "Fragment Cannon", + "class": 2, + "rating": "A", + "cost": 291840, + "mass": 4, + "power": 0.74, + "mode": "F", + "type": "K", + "damage": 3, + "armourpen": "A", + "rof": 5, + "dps": 9, + "thermload": 1, + "clip": 3, + "ammo": 30 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/frame_shift_wake_scanner.json b/data/components/hardpoints/frame_shift_wake_scanner.json new file mode 100644 index 00000000..41171d75 --- /dev/null +++ b/data/components/hardpoints/frame_shift_wake_scanner.json @@ -0,0 +1,57 @@ +{ + "0e": { + "group": "us", + "name": "Frame Shift Wake Scanner", + "class": 0, + "rating": "A", + "cost": 1097095, + "mass": 1.3, + "power": 3.2, + "range": 4, + "time": 10 + }, + "0f": { + "group": "us", + "name": "Frame Shift Wake Scanner", + "class": 0, + "rating": "B", + "cost": 365698, + "mass": 1.3, + "power": 1.6, + "range": 3.5, + "time": 10 + }, + "0g": { + "group": "us", + "name": "Frame Shift Wake Scanner", + "class": 0, + "rating": "C", + "cost": 121899, + "mass": 1.3, + "power": 0.8, + "range": 3, + "time": 10 + }, + "0h": { + "group": "us", + "name": "Frame Shift Wake Scanner", + "class": 0, + "rating": "D", + "cost": 40633, + "mass": 1.3, + "power": 0.4, + "range": 2.5, + "time": 10 + }, + "0i": { + "group": "us", + "name": "Frame Shift Wake Scanner", + "class": 0, + "rating": "E", + "cost": 13544, + "mass": 1.3, + "power": 0.2, + "range": 2, + "time": 10 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/heat_sink_launcher.json b/data/components/hardpoints/heat_sink_launcher.json new file mode 100644 index 00000000..faf504f3 --- /dev/null +++ b/data/components/hardpoints/heat_sink_launcher.json @@ -0,0 +1,16 @@ +{ + "02": { + "group": "um", + "name": "Heat Sink Launcher", + "class": 0, + "rating": "I", + "cost": 3500, + "mass": 1.3, + "power": 0.2, + "passive": 1, + "armourpen": "F", + "thermload": 0, + "clip": 1, + "ammo": 3 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/kill_warrant_scanner.json b/data/components/hardpoints/kill_warrant_scanner.json new file mode 100644 index 00000000..8a7ad207 --- /dev/null +++ b/data/components/hardpoints/kill_warrant_scanner.json @@ -0,0 +1,57 @@ +{ + "0j": { + "group": "us", + "name": "Kill Warrant Scanner", + "class": 0, + "rating": "A", + "cost": 1097095, + "mass": 1.3, + "power": 3.2, + "range": 4, + "time": 10 + }, + "0k": { + "group": "us", + "name": "Kill Warrant Scanner", + "class": 0, + "rating": "B", + "cost": 365698, + "mass": 1.3, + "power": 1.6, + "range": 3.5, + "time": 10 + }, + "0l": { + "group": "us", + "name": "Kill Warrant Scanner", + "class": 0, + "rating": "C", + "cost": 121899, + "mass": 1.3, + "power": 0.8, + "range": 3, + "time": 10 + }, + "0m": { + "group": "us", + "name": "Kill Warrant Scanner", + "class": 0, + "rating": "D", + "cost": 40633, + "mass": 1.3, + "power": 0.4, + "range": 2.5, + "time": 10 + }, + "0n": { + "group": "us", + "name": "Kill Warrant Scanner", + "class": 0, + "rating": "E", + "cost": 13544, + "mass": 1.3, + "power": 0.2, + "range": 2, + "time": 10 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/mine_launcher.json b/data/components/hardpoints/mine_launcher.json new file mode 100644 index 00000000..f888b700 --- /dev/null +++ b/data/components/hardpoints/mine_launcher.json @@ -0,0 +1,32 @@ +{ + "2j": { + "group": "so", + "name": "Mine Launcher", + "class": 1, + "rating": "I", + "cost": 24260, + "mass": 2, + "power": 0.4, + "mode": "F", + "type": "T", + "armourpen": "C", + "thermload": 2, + "clip": 1, + "ammo": 24 + }, + "2k": { + "group": "mo", + "name": "Mine Launcher", + "class": 2, + "rating": "I", + "cost": 294080, + "mass": 4, + "power": 0.4, + "mode": "F", + "type": "T", + "armourpen": "C", + "thermload": 3, + "clip": 3, + "ammo": 24 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/mining_laser.json b/data/components/hardpoints/mining_laser.json new file mode 100644 index 00000000..4e1b1bcc --- /dev/null +++ b/data/components/hardpoints/mining_laser.json @@ -0,0 +1,30 @@ +{ + "2l": { + "group": "so", + "name": "Mining Laser", + "class": 1, + "rating": "D", + "cost": 6800, + "mass": 2, + "power": 0.5, + "mode": "F", + "armourpen": "D", + "thermload": 3, + "clip": 1, + "ammo": 1 + }, + "2m": { + "group": "mo", + "name": "Mining Laser", + "class": 2, + "rating": "D", + "cost": 22576, + "mass": 2, + "power": 0.75, + "mode": "F", + "armourpen": "D", + "thermload": 5, + "clip": 1, + "ammo": 1 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/missile_rack.json b/data/components/hardpoints/missile_rack.json new file mode 100644 index 00000000..270e66c6 --- /dev/null +++ b/data/components/hardpoints/missile_rack.json @@ -0,0 +1,78 @@ +{ + "2d": { + "group": "so", + "name": "Missile Rack", + "class": 1, + "rating": "B", + "cost": 32175, + "mass": 2, + "power": 0.4, + "mode": "F", + "type": "E", + "damage": 7, + "armourpen": "F", + "rof": 2.5, + "dps": 8, + "thermload": 3, + "clip": 8, + "ammo": 16, + "missile": "D" + }, + "2e": { + "group": "so", + "name": "Missile Rack", + "class": 1, + "rating": "B", + "cost": 72600, + "mass": 2, + "power": 0.6, + "mode": "F", + "type": "E", + "damage": 6, + "armourpen": "F", + "rof": 0.3, + "dps": 3, + "thermload": 3, + "clip": 6, + "ammo": 6, + "missile": "S" + }, + "2f": { + "group": "mo", + "name": "Missile Rack", + "class": 2, + "rating": "B", + "cost": 240400, + "mass": 4, + "power": 1.2, + "mode": "F", + "type": "E", + "damage": 7, + "armourpen": "F", + "rof": 2.5, + "dps": 8, + "thermload": 3, + "clip": 12, + "ammo": 24, + "missile": "D" + }, + "2g": { + "group": "mo", + "name": "Missile Rack", + "class": 2, + "rating": "B", + "cost": 512400, + "mass": 4, + "power": 1.2, + "mode": "F", + "type": "E", + "damage": 6, + "armourpen": "F", + "rof": 0.3, + "dps": 3, + "thermload": 3, + "clip": 6, + "ammo": 18, + "missile": "S" + } +} \ No newline at end of file diff --git a/data/components/hardpoints/multi_cannon.json b/data/components/hardpoints/multi_cannon.json new file mode 100644 index 00000000..430a6c56 --- /dev/null +++ b/data/components/hardpoints/multi_cannon.json @@ -0,0 +1,110 @@ +{ + "23": { + "group": "sk", + "name": "Multi-cannon", + "class": 1, + "rating": "F", + "cost": 9500, + "mass": 2, + "power": 0.28, + "mode": "F", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 8, + "dps": 3, + "thermload": 1, + "clip": 90, + "ammo": 2100 + }, + "24": { + "group": "sk", + "name": "Multi-cannon", + "class": 1, + "rating": "G", + "cost": 14250, + "mass": 2, + "power": 0.37, + "mode": "G", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 8.5, + "dps": 3, + "thermload": 1, + "clip": 90, + "ammo": 2100 + }, + "25": { + "group": "sk", + "name": "Multi-cannon", + "class": 1, + "rating": "G", + "cost": 81600, + "mass": 2, + "power": 0.26, + "mode": "T", + "type": "K", + "damage": 0, + "armourpen": "A", + "rof": 6, + "dps": 2, + "thermload": 1, + "clip": 90, + "ammo": 2100 + }, + "26": { + "group": "mk", + "name": "Multi-cannon", + "class": 2, + "rating": "E", + "cost": 38000, + "mass": 4, + "power": 0.46, + "mode": "F", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 7, + "dps": 4, + "thermload": 1, + "clip": 90, + "ammo": 2100 + }, + "27": { + "group": "mk", + "name": "Multi-cannon", + "class": 2, + "rating": "F", + "cost": 57000, + "mass": 4, + "power": 0.64, + "mode": "G", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 7.5, + "dps": 4, + "thermload": 1, + "clip": 90, + "ammo": 2100 + }, + "28": { + "group": "mk", + "name": "Multi-cannon", + "class": 2, + "rating": "F", + "cost": 1292800, + "mass": 4, + "power": 0.5, + "mode": "T", + "type": "K", + "damage": 2, + "armourpen": "A", + "rof": 5.3, + "dps": 3, + "thermload": 1, + "clip": 90, + "ammo": 2100 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/plasma_accelerator.json b/data/components/hardpoints/plasma_accelerator.json new file mode 100644 index 00000000..5af197a6 --- /dev/null +++ b/data/components/hardpoints/plasma_accelerator.json @@ -0,0 +1,56 @@ +{ + "1g": { + "group": "mt", + "name": "Plasma Accelerator", + "class": 2, + "rating": "C", + "cost": 834200, + "mass": 4, + "power": 1.43, + "mode": "F", + "type": "T", + "damage": 7, + "armourpen": "A", + "rof": 0.3, + "dps": 4, + "thermload": 10, + "clip": 5, + "ammo": 100 + }, + "2b": { + "group": "lo", + "name": "Plasma Accelerator", + "class": 3, + "rating": "B", + "cost": 3051200, + "mass": 8, + "power": 1.97, + "mode": "F", + "type": "TK", + "damage": 9, + "armourpen": "A", + "rof": 0.3, + "dps": 4, + "thermload": 8, + "clip": 5, + "ammo": 100 + }, + "2c": { + "group": "ho", + "name": "Plasma Accelerator", + "class": 4, + "rating": "A", + "cost": 13793600, + "mass": 16, + "power": 2.63, + "mode": "F", + "type": "TK", + "damage": 10, + "armourpen": "A", + "rof": 0.3, + "dps": 5, + "thermload": 10, + "clip": 5, + "ammo": 100 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/point_defence.json b/data/components/hardpoints/point_defence.json new file mode 100644 index 00000000..f40e2bf2 --- /dev/null +++ b/data/components/hardpoints/point_defence.json @@ -0,0 +1,16 @@ +{ + "03": { + "group": "um", + "name": "Point Defence", + "class": 0, + "rating": "I", + "cost": 18546, + "mass": 0.5, + "power": 0.2, + "passive": 1, + "armourpen": "F", + "thermload": 1, + "clip": 50, + "ammo": 10000 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/pulse_laser.json b/data/components/hardpoints/pulse_laser.json new file mode 100644 index 00000000..d8b17855 --- /dev/null +++ b/data/components/hardpoints/pulse_laser.json @@ -0,0 +1,146 @@ +{ + "17": { + "group": "st", + "name": "Pulse Laser", + "class": 1, + "rating": "F", + "cost": 2200, + "mass": 2, + "power": 0.39, + "mode": "F", + "type": "T", + "damage": 2, + "armourpen": "A", + "rof": 3.8, + "dps": 3, + "thermload": 1 + }, + "18": { + "group": "st", + "name": "Pulse Laser", + "class": 1, + "rating": "F", + "cost": 6600, + "mass": 2, + "power": 0.39, + "mode": "G", + "type": "T", + "damage": 2, + "armourpen": "A", + "rof": 4, + "dps": 3, + "thermload": 1 + }, + "19": { + "group": "st", + "name": "Pulse Laser", + "class": 1, + "rating": "G", + "cost": 26000, + "mass": 2, + "power": 0.38, + "mode": "T", + "type": "T", + "damage": 2, + "armourpen": "A", + "rof": 2.8, + "dps": 2, + "thermload": 1 + }, + "1a": { + "group": "mt", + "name": "Pulse Laser", + "class": 2, + "rating": "E", + "cost": 17600, + "mass": 4, + "power": 0.6, + "mode": "F", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": 3.4, + "dps": 3, + "thermload": 1 + }, + "1b": { + "group": "mt", + "name": "Pulse Laser", + "class": 2, + "rating": "F", + "cost": 35400, + "mass": 4, + "power": 0.6, + "mode": "G", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": 3.6, + "dps": 3, + "thermload": 1 + }, + "1c": { + "group": "mt", + "name": "Pulse Laser", + "class": 2, + "rating": "F", + "cost": 132800, + "mass": 4, + "power": 0.58, + "mode": "T", + "type": "T", + "damage": 2, + "armourpen": "A", + "rof": 2.5, + "dps": 3, + "thermload": 1 + }, + "1d": { + "group": "lt", + "name": "Pulse Laser", + "class": 3, + "rating": "D", + "cost": 70400, + "mass": 8, + "power": 0.9, + "mode": "F", + "type": "T", + "damage": 4, + "armourpen": "A", + "rof": 3, + "dps": 4, + "thermload": 1 + }, + "1e": { + "group": "lt", + "name": "Pulse Laser", + "class": 3, + "rating": "E", + "cost": 140600, + "mass": 8, + "power": 0.92, + "mode": "G", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": 3.2, + "dps": 4, + "thermload": 1 + }, + "1f": { + "group": "lt", + "name": "Pulse Laser", + "class": 3, + "rating": "F", + "cost": 400400, + "mass": 8, + "power": 0.89, + "mode": "T", + "type": "T", + "damage": 3, + "armourpen": "A", + "rof": 2.3, + "dps": 3, + "thermload": 1 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/rail_gun.json b/data/components/hardpoints/rail_gun.json new file mode 100644 index 00000000..d6bef1d5 --- /dev/null +++ b/data/components/hardpoints/rail_gun.json @@ -0,0 +1,38 @@ +{ + "29": { + "group": "so", + "name": "Rail Gun", + "class": 1, + "rating": "D", + "cost": 51600, + "mass": 2, + "power": 1.15, + "mode": "F", + "type": "TK", + "damage": 6, + "armourpen": "A", + "rof": 0.6, + "dps": 4, + "thermload": 7, + "clip": 1, + "ammo": 30 + }, + "2a": { + "group": "mo", + "name": "Rail Gun", + "class": 2, + "rating": "B", + "cost": 412800, + "mass": 4, + "power": 1.63, + "mode": "F", + "type": "TK", + "damage": 7, + "armourpen": "A", + "rof": 0.5, + "dps": 4, + "thermload": 10, + "clip": 1, + "ammo": 30 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/shield_booster.json b/data/components/hardpoints/shield_booster.json new file mode 100644 index 00000000..be344109 --- /dev/null +++ b/data/components/hardpoints/shield_booster.json @@ -0,0 +1,57 @@ +{ + "04": { + "group": "ub", + "name": "Shield Booster", + "class": 0, + "rating": "A", + "cost": 281000, + "mass": 3.5, + "power": 1.2, + "passive": 1, + "shieldmul": 1.2 + }, + "05": { + "group": "ub", + "name": "Shield Booster", + "class": 0, + "rating": "B", + "cost": 122000, + "mass": 3, + "power": 1, + "passive": 1, + "shieldmul": 1.16 + }, + "06": { + "group": "ub", + "name": "Shield Booster", + "class": 0, + "rating": "C", + "cost": 53000, + "mass": 2, + "power": 0.7, + "passive": 1, + "shieldmul": 1.12 + }, + "07": { + "group": "ub", + "name": "Shield Booster", + "class": 0, + "rating": "D", + "cost": 23000, + "mass": 1, + "power": 0.5, + "passive": 1, + "shieldmul": 1.08 + }, + "08": { + "group": "ub", + "name": "Shield Booster", + "class": 0, + "rating": "E", + "cost": 10000, + "mass": 0.5, + "power": 0.2, + "passive": 1, + "shieldmul": 1.04 + } +} \ No newline at end of file diff --git a/data/components/hardpoints/torpedo_pylon.json b/data/components/hardpoints/torpedo_pylon.json new file mode 100644 index 00000000..60e61431 --- /dev/null +++ b/data/components/hardpoints/torpedo_pylon.json @@ -0,0 +1,32 @@ +{ + "2h": { + "group": "so", + "name": "Torpedo Pylon", + "class": 1, + "rating": "I", + "cost": 11200, + "mass": 2, + "power": 0.4, + "mode": "F", + "armourpen": "C", + "thermload": 10, + "clip": 1, + "ammo": 1, + "missile": "S" + }, + "2i": { + "group": "mo", + "name": "Torpedo Pylon", + "class": 2, + "rating": "I", + "cost": 44800, + "mass": 4, + "power": 0.4, + "mode": "F", + "armourpen": "C", + "thermload": 10, + "clip": 2, + "ammo": 1, + "missile": "S" + } +} \ No newline at end of file diff --git a/data/components/internal/auto_field_maintenance_unit.json b/data/components/internal/auto_field_maintenance_unit.json new file mode 100644 index 00000000..d7e82802 --- /dev/null +++ b/data/components/internal/auto_field_maintenance_unit.json @@ -0,0 +1,364 @@ +{ + "Auto Field-Maintenance Unit": { + "10": { + "group": "am", + "class": 5, + "rating": "E", + "cost": 104976, + "power": 1.17, + "ammo": 6100, + "repair": 73.2 + }, + "11": { + "group": "am", + "class": 6, + "rating": "A", + "cost": 15305501, + "power": 3.26, + "ammo": 8100, + "repair": 226.8 + }, + "12": { + "group": "am", + "class": 6, + "rating": "B", + "cost": 5101834, + "power": 2.67, + "ammo": 8900, + "repair": 204.7 + }, + "13": { + "group": "am", + "class": 6, + "rating": "C", + "cost": 1700611, + "power": 2.33, + "ammo": 7400, + "repair": 148 + }, + "14": { + "group": "am", + "class": 6, + "rating": "D", + "cost": 566870, + "power": 1.86, + "ammo": 6700, + "repair": 107.2 + }, + "15": { + "group": "am", + "class": 6, + "rating": "E", + "cost": 188957, + "power": 1.4, + "ammo": 7400, + "repair": 88.8 + }, + "16": { + "group": "am", + "class": 7, + "rating": "A", + "cost": 27549901, + "power": 3.68, + "ammo": 9600, + "repair": 268.8 + }, + "17": { + "group": "am", + "class": 7, + "rating": "B", + "cost": 9183300, + "power": 3.02, + "ammo": 10400, + "repair": 239.2 + }, + "18": { + "group": "am", + "class": 7, + "rating": "C", + "cost": 3061100, + "power": 2.63, + "ammo": 8700, + "repair": 174 + }, + "19": { + "group": "am", + "class": 7, + "rating": "D", + "cost": 1020367, + "power": 2.1, + "ammo": 7800, + "repair": 124.8 + }, + "08": { + "group": "am", + "class": 1, + "rating": "A", + "cost": 810000, + "power": 1.26, + "ammo": 1100, + "repair": 30.8 + }, + "09": { + "group": "am", + "class": 1, + "rating": "B", + "cost": 270000, + "power": 1.04, + "ammo": 1200, + "repair": 27.6 + }, + "0a": { + "group": "am", + "class": 1, + "rating": "C", + "cost": 90000, + "power": 0.9, + "ammo": 1000, + "repair": 20 + }, + "0b": { + "group": "am", + "class": 1, + "rating": "D", + "cost": 30000, + "power": 0.72, + "ammo": 900, + "repair": 14.4 + }, + "0c": { + "group": "am", + "class": 1, + "rating": "E", + "cost": 10000, + "power": 0.54, + "ammo": 1000, + "repair": 12 + }, + "0d": { + "group": "am", + "class": 2, + "rating": "A", + "cost": 1458000, + "power": 1.58, + "ammo": 2500, + "repair": 70 + }, + "0e": { + "group": "am", + "class": 2, + "rating": "B", + "cost": 486000, + "power": 1.29, + "ammo": 2800, + "repair": 64.4 + }, + "0f": { + "group": "am", + "class": 2, + "rating": "C", + "cost": 162000, + "power": 1.13, + "ammo": 2300, + "repair": 46 + }, + "0g": { + "group": "am", + "class": 2, + "rating": "D", + "cost": 54000, + "power": 0.9, + "ammo": 2100, + "repair": 33.6 + }, + "0h": { + "group": "am", + "class": 2, + "rating": "E", + "cost": 18000, + "power": 0.68, + "ammo": 2300, + "repair": 27.6 + }, + "0i": { + "group": "am", + "class": 3, + "rating": "A", + "cost": 2624400, + "power": 1.89, + "ammo": 4000, + "repair": 112 + }, + "0j": { + "group": "am", + "class": 3, + "rating": "B", + "cost": 874800, + "power": 1.55, + "ammo": 4300, + "repair": 98.9 + }, + "0k": { + "group": "am", + "class": 3, + "rating": "C", + "cost": 291600, + "power": 1.35, + "ammo": 3600, + "repair": 72 + }, + "0l": { + "group": "am", + "class": 3, + "rating": "D", + "cost": 97200, + "power": 1.08, + "ammo": 3200, + "repair": 51.2 + }, + "0m": { + "group": "am", + "class": 3, + "rating": "E", + "cost": 32400, + "power": 0.81, + "ammo": 3600, + "repair": 43.2 + }, + "0n": { + "group": "am", + "class": 4, + "rating": "A", + "cost": 4723920, + "power": 2.31, + "ammo": 5400, + "repair": 151.2 + }, + "0o": { + "group": "am", + "class": 4, + "rating": "B", + "cost": 1574640, + "power": 1.9, + "ammo": 5900, + "repair": 135.7 + }, + "0p": { + "group": "am", + "class": 4, + "rating": "C", + "cost": 524880, + "power": 1.65, + "ammo": 4900, + "repair": 98 + }, + "0q": { + "group": "am", + "class": 4, + "rating": "D", + "cost": 174960, + "power": 1.32, + "ammo": 4400, + "repair": 70.4 + }, + "0r": { + "group": "am", + "class": 4, + "rating": "E", + "cost": 58320, + "power": 0.99, + "ammo": 4900, + "repair": 58.8 + }, + "0s": { + "group": "am", + "class": 5, + "rating": "A", + "cost": 8503056, + "power": 2.73, + "ammo": 6700, + "repair": 187.6 + }, + "0t": { + "group": "am", + "class": 5, + "rating": "B", + "cost": 2834352, + "power": 2.24, + "ammo": 7300, + "repair": 167.9 + }, + "0u": { + "group": "am", + "class": 5, + "rating": "C", + "cost": 944784, + "power": 1.95, + "ammo": 6100, + "repair": 122 + }, + "0v": { + "group": "am", + "class": 5, + "rating": "D", + "cost": 314928, + "power": 1.56, + "ammo": 5500, + "repair": 88 + }, + "1a": { + "group": "am", + "class": 7, + "rating": "E", + "cost": 340122, + "power": 1.58, + "ammo": 8700, + "repair": 104.4 + }, + "1b": { + "group": "am", + "class": 8, + "rating": "A", + "cost": 49589823, + "power": 4.2, + "ammo": 11000, + "repair": 308 + }, + "1c": { + "group": "am", + "class": 8, + "rating": "B", + "cost": 16529941, + "power": 3.45, + "ammo": 12000, + "repair": 276 + }, + "1d": { + "group": "am", + "class": 8, + "rating": "C", + "cost": 5509980, + "power": 3, + "ammo": 10000, + "repair": 200 + }, + "1e": { + "group": "am", + "class": 8, + "rating": "D", + "cost": 1836660, + "power": 2.4, + "ammo": 9000, + "repair": 144 + }, + "1f": { + "group": "am", + "class": 8, + "rating": "E", + "cost": 612220, + "power": 1.8, + "ammo": 10000, + "repair": 120 + } + } +} \ No newline at end of file diff --git a/data/components/internal/cargo_rack.json b/data/components/internal/cargo_rack.json new file mode 100644 index 00000000..994f3d42 --- /dev/null +++ b/data/components/internal/cargo_rack.json @@ -0,0 +1,68 @@ +{ + "Cargo Rack": { + "00": { + "group": "cr", + "name": "Cargo Rack (Capacity: 2)", + "class": 1, + "rating": "E", + "cost": 1000, + "capacity": 2 + }, + "01": { + "group": "cr", + "name": "Cargo Rack (Capacity: 4)", + "class": 2, + "rating": "E", + "cost": 3250, + "capacity": 4 + }, + "02": { + "group": "cr", + "name": "Cargo Rack (Capacity: 8)", + "class": 3, + "rating": "E", + "cost": 10563, + "capacity": 8 + }, + "03": { + "group": "cr", + "name": "Cargo Rack (Capacity: 16)", + "class": 4, + "rating": "E", + "cost": 34328, + "capacity": 16 + }, + "04": { + "group": "cr", + "name": "Cargo Rack (Capacity: 32)", + "class": 5, + "rating": "E", + "cost": 111566, + "capacity": 32 + }, + "05": { + "group": "cr", + "name": "Cargo Rack (Capacity: 64)", + "class": 6, + "rating": "E", + "cost": 362591, + "capacity": 64 + }, + "06": { + "group": "cr", + "name": "Cargo Rack (Capacity: 128)", + "class": 7, + "rating": "E", + "cost": 1178420, + "capacity": 128 + }, + "07": { + "group": "cr", + "name": "Cargo Rack (Capacity: 256)", + "class": 8, + "rating": "E", + "cost": 3829866, + "capacity": 256 + } + } +} \ No newline at end of file diff --git a/data/components/internal/docking_computer.json b/data/components/internal/docking_computer.json new file mode 100644 index 00000000..4e7a4e99 --- /dev/null +++ b/data/components/internal/docking_computer.json @@ -0,0 +1,12 @@ +{ + "Docking Computer": { + "24": { + "group": "dc", + "name": "Standard Docking Computer", + "class": 1, + "rating": "E", + "cost": 4500, + "power": 0.39 + } + } +} \ No newline at end of file diff --git a/data/components/internal/frame_shift_drive_interdictor.json b/data/components/internal/frame_shift_drive_interdictor.json new file mode 100644 index 00000000..2c34f5d0 --- /dev/null +++ b/data/components/internal/frame_shift_drive_interdictor.json @@ -0,0 +1,184 @@ +{ + "Frame Shift Drive Interdictor": { + "66": { + "group": "fi", + "class": 1, + "rating": "A", + "cost": 972000, + "mass": 1.3, + "power": 0.32, + "range": "C" + }, + "67": { + "group": "fi", + "class": 1, + "rating": "B", + "cost": 324000, + "mass": 2, + "power": 0.28, + "range": "D" + }, + "68": { + "group": "fi", + "class": 1, + "rating": "C", + "cost": 108000, + "mass": 1.3, + "power": 0.23, + "range": "D" + }, + "69": { + "group": "fi", + "class": 1, + "rating": "D", + "cost": 36000, + "mass": 0.5, + "power": 0.18, + "range": "D" + }, + "6a": { + "group": "fi", + "class": 1, + "rating": "E", + "cost": 12000, + "mass": 1.3, + "power": 0.14, + "range": "E" + }, + "6b": { + "group": "fi", + "class": 2, + "rating": "A", + "cost": 2721600, + "mass": 2.5, + "power": 0.39, + "range": "B" + }, + "6c": { + "group": "fi", + "class": 2, + "rating": "B", + "cost": 907200, + "mass": 4, + "power": 0.34, + "range": "C" + }, + "6d": { + "group": "fi", + "class": 2, + "rating": "C", + "cost": 302400, + "mass": 2.5, + "power": 0.28, + "range": "C" + }, + "6e": { + "group": "fi", + "class": 2, + "rating": "D", + "cost": 100800, + "mass": 1, + "power": 0.22, + "range": "C" + }, + "6f": { + "group": "fi", + "class": 2, + "rating": "E", + "cost": 33600, + "mass": 2.5, + "power": 0.17, + "range": "D" + }, + "6g": { + "group": "fi", + "class": 3, + "rating": "A", + "cost": 7620480, + "mass": 5, + "power": 0.48, + "range": "A" + }, + "6h": { + "group": "fi", + "class": 3, + "rating": "B", + "cost": 2540160, + "mass": 8, + "power": 0.41, + "range": "B" + }, + "6i": { + "group": "fi", + "class": 3, + "rating": "C", + "cost": 846720, + "mass": 5, + "power": 0.34, + "range": "B" + }, + "6j": { + "group": "fi", + "class": 3, + "rating": "D", + "cost": 282240, + "mass": 2, + "power": 0.27, + "range": "B" + }, + "6k": { + "group": "fi", + "class": 3, + "rating": "E", + "cost": 94080, + "mass": 5, + "power": 0.2, + "range": "C" + }, + "6l": { + "group": "fi", + "class": 4, + "rating": "A", + "cost": 21337344, + "mass": 10, + "power": 0.57, + "range": "A" + }, + "6m": { + "group": "fi", + "class": 4, + "rating": "B", + "cost": 7112448, + "mass": 16, + "power": 0.49, + "range": "A" + }, + "6n": { + "group": "fi", + "class": 4, + "rating": "C", + "cost": 2370816, + "mass": 10, + "power": 0.41, + "range": "A" + }, + "6o": { + "group": "fi", + "class": 4, + "rating": "D", + "cost": 790272, + "mass": 4, + "power": 0.33, + "range": "A" + }, + "6p": { + "group": "fi", + "class": 4, + "rating": "E", + "cost": 263424, + "mass": 10, + "power": 0.25, + "range": "B" + } + } +} \ No newline at end of file diff --git a/data/components/internal/fuel_scoops.json b/data/components/internal/fuel_scoops.json new file mode 100644 index 00000000..b957dc4d --- /dev/null +++ b/data/components/internal/fuel_scoops.json @@ -0,0 +1,364 @@ +{ + "Fuel Scoops": { + "30": { + "group": "fs", + "name": "Fuel Scoop", + "class": 3, + "rating": "D", + "cost": 14109, + "power": 0.27, + "rate": 100 + }, + "31": { + "group": "fs", + "name": "Fuel Scoop", + "class": 3, + "rating": "E", + "cost": 3386, + "power": 0.2, + "rate": 75 + }, + "32": { + "group": "fs", + "name": "Fuel Scoop", + "class": 4, + "rating": "A", + "cost": 2862364, + "power": 0.57, + "rate": 342 + }, + "33": { + "group": "fs", + "name": "Fuel Scoop", + "class": 4, + "rating": "B", + "cost": 715591, + "power": 0.49, + "rate": 294 + }, + "34": { + "group": "fs", + "name": "Fuel Scoop", + "class": 4, + "rating": "C", + "cost": 178898, + "power": 0.41, + "rate": 245 + }, + "35": { + "group": "fs", + "name": "Fuel Scoop", + "class": 4, + "rating": "D", + "cost": 44724, + "power": 0.33, + "rate": 196 + }, + "36": { + "group": "fs", + "name": "Fuel Scoop", + "class": 4, + "rating": "E", + "cost": 10734, + "power": 0.25, + "rate": 147 + }, + "37": { + "group": "fs", + "name": "Fuel Scoop", + "class": 5, + "rating": "A", + "cost": 9073694, + "power": 0.7, + "rate": 577 + }, + "38": { + "group": "fs", + "name": "Fuel Scoop", + "class": 5, + "rating": "B", + "cost": 2268424, + "power": 0.6, + "rate": 494 + }, + "39": { + "group": "fs", + "name": "Fuel Scoop", + "class": 5, + "rating": "C", + "cost": 567106, + "power": 0.5, + "rate": 412 + }, + "2j": { + "group": "fs", + "name": "Fuel Scoop", + "class": 1, + "rating": "A", + "cost": 82270, + "power": 0.32, + "rate": 42 + }, + "2k": { + "group": "fs", + "name": "Fuel Scoop", + "class": 1, + "rating": "B", + "cost": 20568, + "power": 0.28, + "rate": 36 + }, + "2l": { + "group": "fs", + "name": "Fuel Scoop", + "class": 1, + "rating": "C", + "cost": 5142, + "power": 0.23, + "rate": 30 + }, + "2m": { + "group": "fs", + "name": "Fuel Scoop", + "class": 1, + "rating": "D", + "cost": 1285, + "power": 0.18, + "rate": 24 + }, + "2n": { + "group": "fs", + "name": "Fuel Scoop", + "class": 1, + "rating": "E", + "cost": 309, + "power": 0.14, + "rate": 18 + }, + "2o": { + "group": "fs", + "name": "Fuel Scoop", + "class": 2, + "rating": "A", + "cost": 284844, + "power": 0.39, + "rate": 75 + }, + "2p": { + "group": "fs", + "name": "Fuel Scoop", + "class": 2, + "rating": "B", + "cost": 71211, + "power": 0.34, + "rate": 65 + }, + "2q": { + "group": "fs", + "name": "Fuel Scoop", + "class": 2, + "rating": "C", + "cost": 17803, + "power": 0.28, + "rate": 54 + }, + "2r": { + "group": "fs", + "name": "Fuel Scoop", + "class": 2, + "rating": "D", + "cost": 4451, + "power": 0.22, + "rate": 43 + }, + "2s": { + "group": "fs", + "name": "Fuel Scoop", + "class": 2, + "rating": "E", + "cost": 1068, + "power": 0.17, + "rate": 32 + }, + "2t": { + "group": "fs", + "name": "Fuel Scoop", + "class": 3, + "rating": "A", + "cost": 902954, + "power": 0.48, + "rate": 176 + }, + "2u": { + "group": "fs", + "name": "Fuel Scoop", + "class": 3, + "rating": "B", + "cost": 225738, + "power": 0.41, + "rate": 151 + }, + "2v": { + "group": "fs", + "name": "Fuel Scoop", + "class": 3, + "rating": "C", + "cost": 56435, + "power": 0.34, + "rate": 126 + }, + "3a": { + "group": "fs", + "name": "Fuel Scoop", + "class": 5, + "rating": "D", + "cost": 141776, + "power": 0.4, + "rate": 330 + }, + "3b": { + "group": "fs", + "name": "Fuel Scoop", + "class": 5, + "rating": "E", + "cost": 34026, + "power": 0.3, + "rate": 247 + }, + "3c": { + "group": "fs", + "name": "Fuel Scoop", + "class": 6, + "rating": "A", + "cost": 28763610, + "power": 0.83, + "rate": 878 + }, + "3d": { + "group": "fs", + "name": "Fuel Scoop", + "class": 6, + "rating": "B", + "cost": 7190903, + "power": 0.71, + "rate": 752 + }, + "3e": { + "group": "fs", + "name": "Fuel Scoop", + "class": 6, + "rating": "C", + "cost": 1797726, + "power": 0.59, + "rate": 627 + }, + "3f": { + "group": "fs", + "name": "Fuel Scoop", + "class": 6, + "rating": "D", + "cost": 449431, + "power": 0.47, + "rate": 502 + }, + "3g": { + "group": "fs", + "name": "Fuel Scoop", + "class": 6, + "rating": "E", + "cost": 107864, + "power": 0.35, + "rate": 376 + }, + "3h": { + "group": "fs", + "name": "Fuel Scoop", + "class": 7, + "rating": "A", + "cost": 91180644, + "power": 0.97, + "rate": 1245 + }, + "3i": { + "group": "fs", + "name": "Fuel Scoop", + "class": 7, + "rating": "B", + "cost": 22795161, + "power": 0.83, + "rate": 1068 + }, + "3j": { + "group": "fs", + "name": "Fuel Scoop", + "class": 7, + "rating": "C", + "cost": 5698790, + "power": 0.69, + "rate": 890 + }, + "3k": { + "group": "fs", + "name": "Fuel Scoop", + "class": 7, + "rating": "D", + "cost": 1424698, + "power": 0.55, + "rate": 712 + }, + "3l": { + "group": "fs", + "name": "Fuel Scoop", + "class": 7, + "rating": "E", + "cost": 341927, + "power": 0.41, + "rate": 534 + }, + "3m": { + "group": "fs", + "name": "Fuel Scoop", + "class": 8, + "rating": "A", + "cost": 289042541, + "power": 1.12, + "rate": 1680 + }, + "3n": { + "group": "fs", + "name": "Fuel Scoop", + "class": 8, + "rating": "B", + "cost": 72260660, + "power": 0.96, + "rate": 1440 + }, + "3o": { + "group": "fs", + "name": "Fuel Scoop", + "class": 8, + "rating": "C", + "cost": 18065165, + "power": 0.8, + "rate": 1200 + }, + "3p": { + "group": "fs", + "name": "Fuel Scoop", + "class": 8, + "rating": "D", + "cost": 4516291, + "power": 0.64, + "rate": 960 + }, + "3q": { + "group": "fs", + "name": "Fuel Scoop", + "class": 8, + "rating": "E", + "cost": 1083910, + "power": 0.48, + "rate": 720 + } + } +} \ No newline at end of file diff --git a/data/components/internal/hatch_breaker_limpet_controller.json b/data/components/internal/hatch_breaker_limpet_controller.json new file mode 100644 index 00000000..f0545787 --- /dev/null +++ b/data/components/internal/hatch_breaker_limpet_controller.json @@ -0,0 +1,204 @@ +{ + "Hatch Breaker Limpet Controller": { + "70": { + "group": "hb", + "class": 3, + "rating": "B", + "cost": 43200, + "power": 0.36, + "range": 3.24, + "maximum": 4, + "time": 21 + }, + "71": { + "group": "hb", + "class": 3, + "rating": "C", + "cost": 21600, + "power": 0.3, + "range": 2.7, + "maximum": 3, + "time": 26 + }, + "72": { + "group": "hb", + "class": 3, + "rating": "D", + "cost": 10800, + "power": 0.24, + "range": 2.16, + "maximum": 3, + "time": 31 + }, + "73": { + "group": "hb", + "class": 3, + "rating": "E", + "cost": 5400, + "power": 0.18, + "range": 1.62, + "maximum": 4, + "time": 36 + }, + "74": { + "group": "hb", + "class": 5, + "rating": "A", + "cost": 777600, + "power": 0.7, + "range": 4.62, + "maximum": 6, + "time": 13 + }, + "75": { + "group": "hb", + "class": 5, + "rating": "B", + "cost": 388800, + "power": 0.6, + "range": 3.96, + "maximum": 9, + "time": 18 + }, + "76": { + "group": "hb", + "class": 5, + "rating": "C", + "cost": 194400, + "power": 0.5, + "range": 3.3, + "maximum": 7, + "time": 22 + }, + "77": { + "group": "hb", + "class": 5, + "rating": "D", + "cost": 97200, + "power": 0.4, + "range": 2.64, + "maximum": 6, + "time": 26 + }, + "78": { + "group": "hb", + "class": 5, + "rating": "E", + "cost": 48600, + "power": 0.3, + "range": 1.98, + "maximum": 9, + "time": 31 + }, + "79": { + "group": "hb", + "class": 7, + "rating": "A", + "cost": 6998400, + "power": 0.98, + "range": 6.02, + "maximum": 12, + "time": 11 + }, + "6q": { + "group": "hb", + "class": 1, + "rating": "A", + "cost": 9600, + "power": 0.28, + "range": 3.5, + "maximum": 1, + "time": 18 + }, + "6r": { + "group": "hb", + "class": 1, + "rating": "B", + "cost": 4800, + "power": 0.24, + "range": 3, + "maximum": 2, + "time": 24 + }, + "6s": { + "group": "hb", + "class": 1, + "rating": "C", + "cost": 2400, + "power": 0.2, + "range": 2.5, + "maximum": 1, + "time": 30 + }, + "6t": { + "group": "hb", + "class": 1, + "rating": "D", + "cost": 1200, + "power": 0.16, + "range": 2, + "maximum": 1, + "time": 36 + }, + "6u": { + "group": "hb", + "class": 1, + "rating": "E", + "cost": 600, + "power": 0.12, + "range": 1.5, + "maximum": 2, + "time": 42 + }, + "6v": { + "group": "hb", + "class": 3, + "rating": "A", + "cost": 86400, + "power": 0.42, + "range": 3.78, + "maximum": 3, + "time": 16 + }, + "7a": { + "group": "hb", + "class": 7, + "rating": "B", + "cost": 3499200, + "power": 0.84, + "range": 5.16, + "maximum": 18, + "time": 14 + }, + "7b": { + "group": "hb", + "class": 7, + "rating": "C", + "cost": 1749600, + "power": 0.7, + "range": 4.3, + "maximum": 15, + "time": 18 + }, + "7c": { + "group": "hb", + "class": 7, + "rating": "D", + "cost": 874800, + "power": 0.56, + "range": 3.44, + "maximum": 12, + "time": 22 + }, + "7d": { + "group": "hb", + "class": 7, + "rating": "E", + "cost": 437400, + "power": 0.42, + "range": 2.58, + "maximum": 18, + "time": 25 + } + } +} \ No newline at end of file diff --git a/data/components/internal/hull_reinforcement_package.json b/data/components/internal/hull_reinforcement_package.json new file mode 100644 index 00000000..da8676b1 --- /dev/null +++ b/data/components/internal/hull_reinforcement_package.json @@ -0,0 +1,84 @@ +{ + "Hull Reinforcement Package": { + "25": { + "group": "hr", + "class": 1, + "rating": "D", + "cost": 15000, + "mass": 2, + "armouradd": 15 + }, + "26": { + "group": "hr", + "class": 1, + "rating": "E", + "cost": 5000, + "mass": 4, + "armouradd": 10 + }, + "27": { + "group": "hr", + "class": 2, + "rating": "D", + "cost": 36000, + "mass": 4, + "armouradd": 30 + }, + "28": { + "group": "hr", + "class": 2, + "rating": "E", + "cost": 12000, + "mass": 8, + "armouradd": 20 + }, + "29": { + "group": "hr", + "class": 3, + "rating": "D", + "cost": 84000, + "mass": 8, + "armouradd": 60 + }, + "2a": { + "group": "hr", + "class": 3, + "rating": "E", + "cost": 28000, + "mass": 16, + "armouradd": 40 + }, + "2b": { + "group": "hr", + "class": 4, + "rating": "D", + "cost": 195000, + "mass": 16, + "armouradd": 120 + }, + "2c": { + "group": "hr", + "class": 4, + "rating": "E", + "cost": 65000, + "mass": 32, + "armouradd": 80 + }, + "2d": { + "group": "hr", + "class": 5, + "rating": "D", + "cost": 450000, + "mass": 32, + "armouradd": 240 + }, + "2e": { + "group": "hr", + "class": 5, + "rating": "E", + "cost": 150000, + "mass": 64, + "armouradd": 160 + } + } +} \ No newline at end of file diff --git a/data/components/internal/refinery.json b/data/components/internal/refinery.json new file mode 100644 index 00000000..538ac8d3 --- /dev/null +++ b/data/components/internal/refinery.json @@ -0,0 +1,164 @@ +{ + "Refinery": { + "20": { + "group": "rf", + "class": 4, + "rating": "B", + "cost": 1500282, + "power": 0.49, + "capacity": 9 + }, + "21": { + "group": "rf", + "class": 4, + "rating": "C", + "cost": 500094, + "power": 0.41, + "capacity": 7 + }, + "22": { + "group": "rf", + "class": 4, + "rating": "D", + "cost": 166698, + "power": 0.33, + "capacity": 5 + }, + "23": { + "group": "rf", + "class": 4, + "rating": "E", + "cost": 55566, + "power": 0.25, + "capacity": 4 + }, + "1g": { + "group": "rf", + "class": 1, + "rating": "A", + "cost": 486000, + "power": 0.32, + "capacity": 4 + }, + "1h": { + "group": "rf", + "class": 1, + "rating": "B", + "cost": 162000, + "power": 0.28, + "capacity": 3 + }, + "1i": { + "group": "rf", + "class": 1, + "rating": "C", + "cost": 54000, + "power": 0.23, + "capacity": 2 + }, + "1j": { + "group": "rf", + "class": 1, + "rating": "D", + "cost": 18000, + "power": 0.18, + "capacity": 1 + }, + "1k": { + "group": "rf", + "class": 1, + "rating": "E", + "cost": 6000, + "power": 0.14, + "capacity": 1 + }, + "1l": { + "group": "rf", + "class": 2, + "rating": "A", + "cost": 1020600, + "power": 0.39, + "capacity": 6 + }, + "1m": { + "group": "rf", + "class": 2, + "rating": "B", + "cost": 340200, + "power": 0.34, + "capacity": 5 + }, + "1n": { + "group": "rf", + "class": 2, + "rating": "C", + "cost": 113400, + "power": 0.28, + "capacity": 4 + }, + "1o": { + "group": "rf", + "class": 2, + "rating": "D", + "cost": 37800, + "power": 0.22, + "capacity": 3 + }, + "1p": { + "group": "rf", + "class": 2, + "rating": "E", + "cost": 12600, + "power": 0.17, + "capacity": 2 + }, + "1q": { + "group": "rf", + "class": 3, + "rating": "A", + "cost": 2143260, + "power": 0.48, + "capacity": 8 + }, + "1r": { + "group": "rf", + "class": 3, + "rating": "B", + "cost": 714420, + "power": 0.41, + "capacity": 7 + }, + "1s": { + "group": "rf", + "class": 3, + "rating": "C", + "cost": 238140, + "power": 0.34, + "capacity": 6 + }, + "1t": { + "group": "rf", + "class": 3, + "rating": "D", + "cost": 79380, + "power": 0.27, + "capacity": 4 + }, + "1u": { + "group": "rf", + "class": 3, + "rating": "E", + "cost": 26460, + "power": 0.2, + "capacity": 3 + }, + "1v": { + "group": "rf", + "class": 4, + "rating": "A", + "cost": 4500846, + "power": 0.57, + "capacity": 10 + } + } +} \ No newline at end of file diff --git a/data/components/internal/scanners.json b/data/components/internal/scanners.json new file mode 100644 index 00000000..a0c6dbd8 --- /dev/null +++ b/data/components/internal/scanners.json @@ -0,0 +1,44 @@ +{ + "Scanners": { + "2f": { + "group": "sc", + "name": "Advanced Discovery Scanner", + "class": 1, + "rating": "C", + "cost": 1545000, + "mass": 2, + "power": 0, + "range": null + }, + "2g": { + "group": "sc", + "name": "Intermediate Discovery Scanner", + "class": 1, + "rating": "D", + "cost": 505000, + "mass": 2, + "power": 0, + "range": 1000 + }, + "2h": { + "group": "sc", + "name": "Basic Discovery Scanner", + "class": 1, + "rating": "E", + "cost": 1000, + "mass": 2, + "power": 0, + "range": 500 + }, + "2i": { + "group": "sc", + "name": "Detailed Surface Scanner", + "class": 1, + "rating": "C", + "cost": 250000, + "mass": 1.3, + "power": 0.6, + "range": 0.33 + } + } +} \ No newline at end of file diff --git a/data/components/internal/shield_cell_bank.json b/data/components/internal/shield_cell_bank.json new file mode 100644 index 00000000..955b0032 --- /dev/null +++ b/data/components/internal/shield_cell_bank.json @@ -0,0 +1,404 @@ +{ + "Shield Cell Bank": { + "50": { + "group": "sb", + "class": 1, + "rating": "C", + "cost": 3231, + "mass": 1.3, + "power": 0.69, + "capacity": 3, + "rate": "D" + }, + "51": { + "group": "sb", + "class": 1, + "rating": "D", + "cost": 1293, + "mass": 0.5, + "power": 0.55, + "capacity": 2, + "rate": "E" + }, + "52": { + "group": "sb", + "class": 1, + "rating": "E", + "cost": 517, + "mass": 1.3, + "power": 0.41, + "capacity": 4, + "rate": "E" + }, + "53": { + "group": "sb", + "class": 2, + "rating": "A", + "cost": 56547, + "mass": 2.5, + "power": 1.18, + "capacity": 4, + "rate": "C" + }, + "54": { + "group": "sb", + "class": 2, + "rating": "B", + "cost": 22619, + "mass": 4, + "power": 1.01, + "capacity": 5, + "rate": "D" + }, + "55": { + "group": "sb", + "class": 2, + "rating": "C", + "cost": 9048, + "mass": 2.5, + "power": 0.84, + "capacity": 4, + "rate": "D" + }, + "56": { + "group": "sb", + "class": 2, + "rating": "D", + "cost": 3619, + "mass": 1, + "power": 0.67, + "capacity": 3, + "rate": "D" + }, + "57": { + "group": "sb", + "class": 2, + "rating": "E", + "cost": 1448, + "mass": 2.5, + "power": 0.5, + "capacity": 5, + "rate": "E" + }, + "58": { + "group": "sb", + "class": 3, + "rating": "A", + "cost": 158331, + "mass": 5, + "power": 1.43, + "capacity": 4, + "rate": "C" + }, + "59": { + "group": "sb", + "class": 3, + "rating": "B", + "cost": 63333, + "mass": 8, + "power": 1.22, + "capacity": 5, + "rate": "C" + }, + "60": { + "group": "sb", + "class": 7, + "rating": "E", + "cost": 249137, + "mass": 80, + "power": 1.24, + "capacity": 6, + "rate": "D" + }, + "61": { + "group": "sb", + "class": 8, + "rating": "A", + "cost": 27249391, + "mass": 160, + "power": 3.36, + "capacity": 5, + "rate": "A" + }, + "62": { + "group": "sb", + "class": 8, + "rating": "B", + "cost": 10899756, + "mass": 256, + "power": 2.88, + "capacity": 6, + "rate": "A" + }, + "63": { + "group": "sb", + "class": 8, + "rating": "C", + "cost": 4359903, + "mass": 160, + "power": 2.4, + "capacity": 5, + "rate": "B" + }, + "64": { + "group": "sb", + "class": 8, + "rating": "D", + "cost": 1743961, + "mass": 64, + "power": 1.92, + "capacity": 4, + "rate": "C" + }, + "65": { + "group": "sb", + "class": 8, + "rating": "E", + "cost": 697584, + "mass": 160, + "power": 1.44, + "capacity": 6, + "rate": "C" + }, + "4u": { + "group": "sb", + "class": 1, + "rating": "A", + "cost": 20195, + "mass": 1.3, + "power": 0.97, + "capacity": 3, + "rate": "D" + }, + "4v": { + "group": "sb", + "class": 1, + "rating": "B", + "cost": 8078, + "mass": 2, + "power": 0.83, + "capacity": 4, + "rate": "D" + }, + "5a": { + "group": "sb", + "class": 3, + "rating": "C", + "cost": 25333, + "mass": 5, + "power": 1.02, + "capacity": 4, + "rate": "D" + }, + "5b": { + "group": "sb", + "class": 3, + "rating": "D", + "cost": 10133, + "mass": 2, + "power": 0.82, + "capacity": 3, + "rate": "D" + }, + "5c": { + "group": "sb", + "class": 3, + "rating": "E", + "cost": 4053, + "mass": 5, + "power": 0.61, + "capacity": 5, + "rate": "D" + }, + "5d": { + "group": "sb", + "class": 4, + "rating": "A", + "cost": 443328, + "mass": 10, + "power": 1.72, + "capacity": 4, + "rate": "B" + }, + "5e": { + "group": "sb", + "class": 4, + "rating": "B", + "cost": 177331, + "mass": 16, + "power": 1.48, + "capacity": 5, + "rate": "C" + }, + "5f": { + "group": "sb", + "class": 4, + "rating": "C", + "cost": 70932, + "mass": 10, + "power": 1.23, + "capacity": 4, + "rate": "C" + }, + "5g": { + "group": "sb", + "class": 4, + "rating": "D", + "cost": 28373, + "mass": 4, + "power": 0.98, + "capacity": 3, + "rate": "D" + }, + "5h": { + "group": "sb", + "class": 4, + "rating": "E", + "cost": 11349, + "mass": 10, + "power": 0.74, + "capacity": 5, + "rate": "D" + }, + "5i": { + "group": "sb", + "class": 5, + "rating": "A", + "cost": 1241317, + "mass": 20, + "power": 2.1, + "capacity": 4, + "rate": "B" + }, + "5j": { + "group": "sb", + "class": 5, + "rating": "B", + "cost": 496527, + "mass": 32, + "power": 1.8, + "capacity": 5, + "rate": "B" + }, + "5k": { + "group": "sb", + "class": 5, + "rating": "C", + "cost": 198611, + "mass": 20, + "power": 1.5, + "capacity": 4, + "rate": "C" + }, + "5l": { + "group": "sb", + "class": 5, + "rating": "D", + "cost": 79444, + "mass": 8, + "power": 1.2, + "capacity": 3, + "rate": "C" + }, + "5m": { + "group": "sb", + "class": 5, + "rating": "E", + "cost": 31778, + "mass": 20, + "power": 0.9, + "capacity": 5, + "rate": "D" + }, + "5n": { + "group": "sb", + "class": 6, + "rating": "A", + "cost": 3475688, + "mass": 40, + "power": 2.48, + "capacity": 5, + "rate": "A" + }, + "5o": { + "group": "sb", + "class": 6, + "rating": "B", + "cost": 1390275, + "mass": 64, + "power": 2.12, + "capacity": 6, + "rate": "B" + }, + "5p": { + "group": "sb", + "class": 6, + "rating": "C", + "cost": 556110, + "mass": 40, + "power": 1.77, + "capacity": 5, + "rate": "C" + }, + "5q": { + "group": "sb", + "class": 6, + "rating": "D", + "cost": 222444, + "mass": 16, + "power": 1.42, + "capacity": 4, + "rate": "C" + }, + "5r": { + "group": "sb", + "class": 6, + "rating": "E", + "cost": 88978, + "mass": 40, + "power": 1.06, + "capacity": 6, + "rate": "D" + }, + "5s": { + "group": "sb", + "class": 7, + "rating": "A", + "cost": 9731925, + "mass": 80, + "power": 2.9, + "capacity": 5, + "rate": "A" + }, + "5t": { + "group": "sb", + "class": 7, + "rating": "B", + "cost": 3892770, + "mass": 128, + "power": 2.48, + "capacity": 6, + "rate": "B" + }, + "5u": { + "group": "sb", + "class": 7, + "rating": "C", + "cost": 1557108, + "mass": 80, + "power": 2.07, + "capacity": 5, + "rate": "B" + }, + "5v": { + "group": "sb", + "class": 7, + "rating": "D", + "cost": 622843, + "mass": 32, + "power": 1.66, + "capacity": 4, + "rate": "?" + } + } +} \ No newline at end of file diff --git a/data/components/internal/shield_generator.json b/data/components/internal/shield_generator.json new file mode 100644 index 00000000..a5c1e735 --- /dev/null +++ b/data/components/internal/shield_generator.json @@ -0,0 +1,494 @@ +{ + "Shield Generator": { + "40": { + "group": "sg", + "class": 3, + "rating": "A", + "cost": 507912, + "mass": 5, + "power": 2.52, + "minmass": 83, + "optmass": 165, + "maxmass": 413, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "41": { + "group": "sg", + "class": 3, + "rating": "B", + "cost": 169304, + "mass": 8, + "power": 2.16, + "minmass": 83, + "optmass": 165, + "maxmass": 413, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "42": { + "group": "sg", + "class": 3, + "rating": "C", + "cost": 56435, + "mass": 5, + "power": 1.8, + "minmass": 83, + "optmass": 165, + "maxmass": 413, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "43": { + "group": "sg", + "class": 3, + "rating": "D", + "cost": 18812, + "mass": 2, + "power": 1.44, + "minmass": 83, + "optmass": 165, + "maxmass": 413, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "44": { + "group": "sg", + "class": 3, + "rating": "E", + "cost": 6271, + "mass": 5, + "power": 1.08, + "minmass": 83, + "optmass": 165, + "maxmass": 413, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + }, + "45": { + "group": "sg", + "class": 4, + "rating": "A", + "cost": 1610080, + "mass": 10, + "power": 3.08, + "minmass": 143, + "optmass": 285, + "maxmass": 713, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "46": { + "group": "sg", + "class": 4, + "rating": "B", + "cost": 536693, + "mass": 16, + "power": 2.64, + "minmass": 143, + "optmass": 285, + "maxmass": 713, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "47": { + "group": "sg", + "class": 4, + "rating": "C", + "cost": 178898, + "mass": 10, + "power": 2.2, + "minmass": 143, + "optmass": 285, + "maxmass": 713, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "48": { + "group": "sg", + "class": 4, + "rating": "D", + "cost": 59633, + "mass": 4, + "power": 1.76, + "minmass": 143, + "optmass": 285, + "maxmass": 713, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "49": { + "group": "sg", + "class": 4, + "rating": "E", + "cost": 19878, + "mass": 10, + "power": 1.32, + "minmass": 143, + "optmass": 285, + "maxmass": 713, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + }, + "3r": { + "group": "sg", + "class": 2, + "rating": "A", + "cost": 160224, + "mass": 2.5, + "power": 2.1, + "minmass": 28, + "optmass": 55, + "maxmass": 138, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "3s": { + "group": "sg", + "class": 2, + "rating": "B", + "cost": 53408, + "mass": 4, + "power": 1.8, + "minmass": 28, + "optmass": 55, + "maxmass": 138, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "3t": { + "group": "sg", + "class": 2, + "rating": "C", + "cost": 17803, + "mass": 2.5, + "power": 1.5, + "minmass": 28, + "optmass": 55, + "maxmass": 138, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "3u": { + "group": "sg", + "class": 2, + "rating": "D", + "cost": 5934, + "mass": 1, + "power": 1.2, + "minmass": 28, + "optmass": 55, + "maxmass": 138, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "3v": { + "group": "sg", + "class": 2, + "rating": "E", + "cost": 1978, + "mass": 2.5, + "power": 0.9, + "minmass": 28, + "optmass": 55, + "maxmass": 138, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + }, + "4a": { + "group": "sg", + "class": 5, + "rating": "A", + "cost": 5103953, + "mass": 20, + "power": 3.64, + "minmass": 203, + "optmass": 405, + "maxmass": 1013, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "4b": { + "group": "sg", + "class": 5, + "rating": "B", + "cost": 1701318, + "mass": 32, + "power": 3.12, + "minmass": 203, + "optmass": 405, + "maxmass": 1013, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "4c": { + "group": "sg", + "class": 5, + "rating": "C", + "cost": 567106, + "mass": 20, + "power": 2.6, + "minmass": 203, + "optmass": 405, + "maxmass": 1013, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "4d": { + "group": "sg", + "class": 5, + "rating": "D", + "cost": 189035, + "mass": 8, + "power": 2.08, + "minmass": 203, + "optmass": 405, + "maxmass": 1013, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "4e": { + "group": "sg", + "class": 5, + "rating": "E", + "cost": 63012, + "mass": 20, + "power": 1.56, + "minmass": 203, + "optmass": 405, + "maxmass": 1013, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + }, + "4f": { + "group": "sg", + "class": 6, + "rating": "A", + "cost": 16179531, + "mass": 40, + "power": 4.34, + "minmass": 270, + "optmass": 540, + "maxmass": 1350, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "4g": { + "group": "sg", + "class": 6, + "rating": "B", + "cost": 5393177, + "mass": 64, + "power": 3.72, + "minmass": 270, + "optmass": 540, + "maxmass": 1350, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "4h": { + "group": "sg", + "class": 6, + "rating": "C", + "cost": 1797726, + "mass": 40, + "power": 3.1, + "minmass": 270, + "optmass": 540, + "maxmass": 1350, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "4i": { + "group": "sg", + "class": 6, + "rating": "D", + "cost": 599242, + "mass": 16, + "power": 2.48, + "minmass": 270, + "optmass": 540, + "maxmass": 1350, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "4j": { + "group": "sg", + "class": 6, + "rating": "E", + "cost": 199747, + "mass": 40, + "power": 1.86, + "minmass": 270, + "optmass": 540, + "maxmass": 1350, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + }, + "4k": { + "group": "sg", + "class": 7, + "rating": "A", + "cost": 51289112, + "mass": 80, + "power": 4.9, + "minmass": 530, + "optmass": 1060, + "maxmass": 2650, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "4l": { + "group": "sg", + "class": 7, + "rating": "B", + "cost": 17096371, + "mass": 128, + "power": 4.2, + "minmass": 530, + "optmass": 1060, + "maxmass": 2650, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "4m": { + "group": "sg", + "class": 7, + "rating": "C", + "cost": 5698790, + "mass": 80, + "power": 3.5, + "minmass": 530, + "optmass": 1060, + "maxmass": 2650, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "4n": { + "group": "sg", + "class": 7, + "rating": "D", + "cost": 1899597, + "mass": 32, + "power": 2.8, + "minmass": 530, + "optmass": 1060, + "maxmass": 2650, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "4o": { + "group": "sg", + "class": 7, + "rating": "E", + "cost": 633199, + "mass": 80, + "power": 2.1, + "minmass": 530, + "optmass": 1060, + "maxmass": 2650, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + }, + "4p": { + "group": "sg", + "class": 8, + "rating": "A", + "cost": 162586486, + "mass": 160, + "power": 5.6, + "minmass": 900, + "optmass": 1800, + "maxmass": 4500, + "minmul": 1.7, + "optmul": 1.2, + "maxmul": 0.7 + }, + "4q": { + "group": "sg", + "class": 8, + "rating": "B", + "cost": 54195495, + "mass": 256, + "power": 4.8, + "minmass": 900, + "optmass": 1800, + "maxmass": 4500, + "minmul": 1.6, + "optmul": 1.1, + "maxmul": 0.6 + }, + "4r": { + "group": "sg", + "class": 8, + "rating": "C", + "cost": 18065165, + "mass": 160, + "power": 4, + "minmass": 900, + "optmass": 1800, + "maxmass": 4500, + "minmul": 1.5, + "optmul": 1, + "maxmul": 0.5 + }, + "4s": { + "group": "sg", + "class": 8, + "rating": "D", + "cost": 6021722, + "mass": 64, + "power": 3.2, + "minmass": 900, + "optmass": 1800, + "maxmass": 4500, + "minmul": 1.4, + "optmul": 0.9, + "maxmul": 0.4 + }, + "4t": { + "group": "sg", + "class": 8, + "rating": "E", + "cost": 2007241, + "mass": 160, + "power": 2.4, + "minmass": 900, + "optmass": 1800, + "maxmass": 4500, + "minmul": 1.3, + "optmul": 0.8, + "maxmul": 0.3 + } + } +} \ No newline at end of file diff --git a/data/ships/adder.json b/data/ships/adder.json new file mode 100644 index 00000000..95d4852e --- /dev/null +++ b/data/ships/adder.json @@ -0,0 +1,66 @@ +{ + "adder": { + "group": "ex", + "name": "Adder", + "manufacturer": "Zorgon Peterson", + "class": 1, + "cost": 39993, + "speed": 220, + "boost": 320, + "agility": 8, + "shields": 60, + "armour": 90, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 3, + 3, + 3, + 1, + 2, + 3, + 3 + ], + "hardpoints": [ + 2, + 1, + 1, + 0, + 0 + ], + "internal": [ + 3, + 3, + 2, + 2, + 1 + ] + }, + "defaultComponents": { + "common": [ + "3E", + "3E", + "3E", + "1E", + "2E", + "3E", + "3C" + ], + "hardpoints": [ + 0, + 17, + 17, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 35 + } +} \ No newline at end of file diff --git a/data/ships/anaconda.json b/data/ships/anaconda.json new file mode 100644 index 00000000..cc8c99ee --- /dev/null +++ b/data/ships/anaconda.json @@ -0,0 +1,100 @@ +{ + "anaconda": { + "group": "mp", + "name": "Anaconda", + "manufacturer": "Faulcon DeLacy", + "class": 3, + "cost": 141889932, + "speed": 180, + "boost": 240, + "agility": 2, + "shields": 350, + "armour": 525, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 8, + 7, + 6, + 5, + 8, + 8, + 5 + ], + "hardpoints": [ + 4, + 3, + 3, + 3, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "internal": [ + 7, + 6, + 6, + 6, + 5, + 5, + 5, + 4, + 4, + 4, + 2 + ] + }, + "defaultComponents": { + "common": [ + "8E", + "7E", + "6E", + "5E", + "8E", + "8E", + "5C" + ], + "hardpoints": [ + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 400 + } +} \ No newline at end of file diff --git a/data/ships/asp.json b/data/ships/asp.json new file mode 100644 index 00000000..f8049067 --- /dev/null +++ b/data/ships/asp.json @@ -0,0 +1,80 @@ +{ + "asp": { + "group": "ex", + "name": "Asp", + "manufacturer": "Lakon", + "class": 2, + "cost": 6135658, + "speed": 250, + "boost": 340, + "agility": 6, + "shields": 140, + "armour": 210, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 5, + 5, + 5, + 4, + 4, + 5, + 5 + ], + "hardpoints": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2 + ], + "internal": [ + 6, + 5, + 3, + 3, + 3, + 2, + 2 + ] + }, + "defaultComponents": { + "common": [ + "5E", + "5E", + "5E", + "4E", + "4E", + "5E", + "5C" + ], + "hardpoints": [ + 0, + 0, + 0, + 0, + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 280 + } +} \ No newline at end of file diff --git a/data/ships/cobra_mk_iii.json b/data/ships/cobra_mk_iii.json new file mode 100644 index 00000000..d03c1d5a --- /dev/null +++ b/data/ships/cobra_mk_iii.json @@ -0,0 +1,70 @@ +{ + "cobra_mk_iii": { + "group": "mp", + "name": "Cobra Mk III", + "manufacturer": "Faulcon DeLacy", + "class": 1, + "cost": 235787, + "speed": 280, + "boost": 400, + "agility": 6, + "shields": 80, + "armour": 120, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 4, + 4, + 4, + 3, + 3, + 3, + 4 + ], + "hardpoints": [ + 2, + 2, + 1, + 1, + 0, + 0 + ], + "internal": [ + 4, + 4, + 4, + 2, + 2, + 2 + ] + }, + "defaultComponents": { + "common": [ + "4E", + "4E", + "4E", + "3E", + "3E", + "3E", + "4C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 180 + } +} \ No newline at end of file diff --git a/data/ships/eagle.json b/data/ships/eagle.json new file mode 100644 index 00000000..465ffa8d --- /dev/null +++ b/data/ships/eagle.json @@ -0,0 +1,60 @@ +{ + "eagle": { + "group": "co", + "name": "Eagle", + "manufacturer": "Core Dynamics", + "class": 1, + "cost": 10446, + "speed": 240, + "boost": 350, + "agility": 10, + "shields": 60, + "armour": 40, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 2, + 3, + 3, + 1, + 2, + 2, + 2 + ], + "hardpoints": [ + 1, + 1, + 1, + 0 + ], + "internal": [ + 3, + 2, + 1 + ] + }, + "defaultComponents": { + "common": [ + "2E", + "3E", + "3E", + "1E", + "2E", + "2E", + "2C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0 + ] + }, + "mass": 50 + } +} \ No newline at end of file diff --git a/data/ships/federal_dropship.json b/data/ships/federal_dropship.json new file mode 100644 index 00000000..287daa5c --- /dev/null +++ b/data/ships/federal_dropship.json @@ -0,0 +1,78 @@ +{ + "federal_dropship": { + "group": "mp", + "name": "Federal Dropship", + "manufacturer": "Core Dynamics", + "class": 2, + "cost": 18969990, + "speed": 180, + "boost": 300, + "agility": 0, + "shields": 200, + "armour": 300, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 6, + 6, + 5, + 5, + 6, + 4, + 4 + ], + "hardpoints": [ + 0, + 0, + 0, + 0, + 2, + 2, + 3, + 2, + 2 + ], + "internal": [ + 6, + 5, + 5, + 4, + 3, + 3, + 2 + ] + }, + "defaultComponents": { + "common": [ + "6E", + "6E", + "5E", + "5E", + "6E", + "4E", + "4C" + ], + "hardpoints": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 17 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 580 + } +} \ No newline at end of file diff --git a/data/ships/fer_de_lance.json b/data/ships/fer_de_lance.json new file mode 100644 index 00000000..6f2828b0 --- /dev/null +++ b/data/ships/fer_de_lance.json @@ -0,0 +1,78 @@ +{ + "fer_de_lance": { + "group": "co", + "name": "Fer-de-Lance", + "manufacturer": "Zorgon Peterson", + "class": 2, + "cost": 51232230, + "speed": 260, + "boost": 350, + "agility": 6, + "shields": 300, + "armour": 225, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 5, + 5, + 4, + 4, + 6, + 4, + 3 + ], + "hardpoints": [ + 4, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "internal": [ + 5, + 4, + 4, + 2, + 1 + ] + }, + "defaultComponents": { + "common": [ + "5E", + "5E", + "4E", + "4E", + "6E", + "4E", + "3C" + ], + "hardpoints": [ + 0, + 17, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 250 + } +} \ No newline at end of file diff --git a/data/ships/hauler.json b/data/ships/hauler.json new file mode 100644 index 00000000..c7bc45cc --- /dev/null +++ b/data/ships/hauler.json @@ -0,0 +1,60 @@ +{ + "hauler": { + "group": "fr", + "name": "Hauler", + "manufacturer": "Zorgon Peterson", + "class": 1, + "cost": 29807, + "speed": 200, + "boost": 300, + "agility": 6, + "shields": 50, + "armour": 50, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 2, + 2, + 2, + 1, + 1, + 1, + 2 + ], + "hardpoints": [ + 1, + 0, + 0 + ], + "internal": [ + 3, + 3, + 2, + 1 + ] + }, + "defaultComponents": { + "common": [ + "2E", + "2E", + "2E", + "1E", + "1E", + "1E", + "2C" + ], + "hardpoints": [ + 17, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0 + ] + }, + "mass": 14 + } +} \ No newline at end of file diff --git a/data/ships/imperial_clipper.json b/data/ships/imperial_clipper.json new file mode 100644 index 00000000..d3fd3f7a --- /dev/null +++ b/data/ships/imperial_clipper.json @@ -0,0 +1,78 @@ +{ + "imperial_clipper": { + "group": "mp", + "name": "Imperial Clipper", + "manufacturer": "Gutamaya", + "class": 3, + "cost": 21077784, + "speed": 300, + "boost": 380, + "agility": 2, + "shields": 180, + "armour": 270, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 6, + 6, + 5, + 5, + 6, + 5, + 4 + ], + "hardpoints": [ + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "internal": [ + 7, + 6, + 4, + 4, + 3, + 3, + 2, + 2 + ] + }, + "defaultComponents": { + "common": [ + "6E", + "6E", + "5E", + "5E", + "6E", + "5E", + "4C" + ], + "hardpoints": [ + 0, + 0, + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 400 + } +} \ No newline at end of file diff --git a/data/ships/orca.json b/data/ships/orca.json new file mode 100644 index 00000000..1606e61b --- /dev/null +++ b/data/ships/orca.json @@ -0,0 +1,76 @@ +{ + "orca": { + "group": "pa", + "name": "Orca", + "manufacturer": "Saud Kruger", + "class": 3, + "cost": 47798079, + "speed": 300, + "boost": 380, + "agility": 2, + "shields": 220, + "armour": 220, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 5, + 6, + 5, + 6, + 5, + 4, + 4 + ], + "hardpoints": [ + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "internal": [ + 6, + 5, + 5, + 5, + 4, + 3, + 2, + 2 + ] + }, + "defaultComponents": { + "common": [ + "5E", + "6E", + "5E", + "6E", + "5E", + "4E", + "4C" + ], + "hardpoints": [ + 0, + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 580 + } +} \ No newline at end of file diff --git a/data/ships/python.json b/data/ships/python.json new file mode 100644 index 00000000..9fb78c0d --- /dev/null +++ b/data/ships/python.json @@ -0,0 +1,82 @@ +{ + "python": { + "group": "mp", + "name": "Python", + "manufacturer": "Faulcon DeLacy", + "class": 2, + "cost": 55171395, + "speed": 230, + "boost": 280, + "agility": 6, + "shields": 260, + "armour": 260, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 7, + 6, + 5, + 4, + 7, + 6, + 5 + ], + "hardpoints": [ + 3, + 3, + 3, + 2, + 2, + 0, + 0, + 0, + 0 + ], + "internal": [ + 6, + 6, + 6, + 5, + 5, + 4, + 3, + 3, + 2 + ] + }, + "defaultComponents": { + "common": [ + "7E", + "6E", + "5E", + "4E", + "7E", + "6E", + "5C" + ], + "hardpoints": [ + 0, + 0, + 0, + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 350 + } +} \ No newline at end of file diff --git a/data/ships/sidewinder.json b/data/ships/sidewinder.json new file mode 100644 index 00000000..bd3e18af --- /dev/null +++ b/data/ships/sidewinder.json @@ -0,0 +1,59 @@ +{ + "sidewinder": { + "group": "mp", + "name": "Sidewinder", + "class": 1, + "cost": 12887, + "speed": 220, + "boost": 320, + "agility": 8, + "shields": 40, + "armour": 60, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 2, + 2, + 2, + 1, + 1, + 1, + 1 + ], + "hardpoints": [ + 1, + 1, + 0, + 0 + ], + "internal": [ + 2, + 2, + 1 + ] + }, + "defaultComponents": { + "common": [ + "2E", + "2E", + "2E", + "1E", + "1E", + "1E", + "1C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0 + ] + }, + "mass": 25 + } +} \ No newline at end of file diff --git a/data/ships/type_6_transporter.json b/data/ships/type_6_transporter.json new file mode 100644 index 00000000..b94793c1 --- /dev/null +++ b/data/ships/type_6_transporter.json @@ -0,0 +1,70 @@ +{ + "type_6_transporter": { + "group": "fr", + "name": "Type-6 Transporter", + "manufacturer": "Lakon", + "class": 2, + "cost": 865782, + "speed": 220, + "boost": 350, + "agility": 3, + "shields": 90, + "armour": 90, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 3, + 4, + 4, + 2, + 3, + 2, + 4 + ], + "hardpoints": [ + 1, + 1, + 0, + 0, + 0 + ], + "internal": [ + 5, + 5, + 4, + 4, + 3, + 2, + 2 + ] + }, + "defaultComponents": { + "common": [ + "3E", + "4E", + "4E", + "2E", + "3E", + "2E", + "4C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 155 + } +} \ No newline at end of file diff --git a/data/ships/type_7_transport.json b/data/ships/type_7_transport.json new file mode 100644 index 00000000..5fe03f1a --- /dev/null +++ b/data/ships/type_7_transport.json @@ -0,0 +1,78 @@ +{ + "type_7_transport": { + "group": "fr", + "name": "Type-7 Transport", + "manufacturer": "Lakon", + "class": 3, + "cost": 16881511, + "speed": 180, + "boost": 300, + "agility": 2, + "shields": 120, + "armour": 120, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 4, + 5, + 5, + 4, + 3, + 3, + 5 + ], + "hardpoints": [ + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + "internal": [ + 6, + 6, + 5, + 5, + 4, + 4, + 2, + 2 + ] + }, + "defaultComponents": { + "common": [ + "4E", + "5E", + "5E", + "4E", + "3E", + "3E", + "5C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 420 + } +} \ No newline at end of file diff --git a/data/ships/type_9_heavy.json b/data/ships/type_9_heavy.json new file mode 100644 index 00000000..5585a20c --- /dev/null +++ b/data/ships/type_9_heavy.json @@ -0,0 +1,81 @@ +{ + "type_9_heavy": { + "group": "fr", + "name": "Type-9 Heavy", + "manufacturer": "Lakon", + "class": 3, + "cost": 73255168, + "speed": 130, + "boost": 200, + "agility": 0, + "shields": 240, + "armour": 240, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 6, + 7, + 6, + 5, + 6, + 4, + 6 + ], + "hardpoints": [ + 2, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0 + ], + "internal": [ + 7, + 6, + 5, + 4, + 4, + 3, + 3, + 2 + ] + }, + "defaultComponents": { + "common": [ + "6E", + "7E", + "6E", + "5E", + "6E", + "4E", + "6C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 1000 + } +} \ No newline at end of file diff --git a/data/ships/viper.json b/data/ships/viper.json new file mode 100644 index 00000000..ffa5eda3 --- /dev/null +++ b/data/ships/viper.json @@ -0,0 +1,66 @@ +{ + "viper": { + "group": "co", + "name": "Viper", + "manufacturer": "Faulcon DeLacy", + "class": 1, + "cost": 95893, + "speed": 320, + "boost": 400, + "agility": 6, + "shields": 105, + "armour": 70, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 3, + 3, + 3, + 2, + 3, + 3, + 2 + ], + "hardpoints": [ + 2, + 2, + 1, + 1, + 0, + 0 + ], + "internal": [ + 3, + 3, + 2, + 1 + ] + }, + "defaultComponents": { + "common": [ + "3E", + "3E", + "3E", + "2E", + "3E", + "3E", + "2C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0 + ] + }, + "mass": 60 + } +} \ No newline at end of file diff --git a/data/ships/vulture.json b/data/ships/vulture.json new file mode 100644 index 00000000..10b59c4a --- /dev/null +++ b/data/ships/vulture.json @@ -0,0 +1,68 @@ +{ + "vulture": { + "group": "co", + "name": "Vulture", + "manufacturer": "Core Dynamics", + "class": 1, + "cost": 4689629, + "speed": 210, + "boost": 340, + "agility": 9, + "shields": 240, + "armour": 160, + "fuelcost": 50, + "componentCapacity": { + "common": [ + 4, + 5, + 4, + 3, + 5, + 4, + 3 + ], + "hardpoints": [ + 3, + 3, + 0, + 0, + 0, + 0 + ], + "internal": [ + 5, + 4, + 2, + 1, + 1 + ] + }, + "defaultComponents": { + "common": [ + "4E", + "5E", + "4E", + "3E", + "5E", + "4E", + "3C" + ], + "hardpoints": [ + 17, + 17, + 0, + 0, + 0, + 0 + ], + "internal": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "mass": 230 + } +} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 00000000..4ccdf3ee --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,129 @@ +var gulp = require('gulp'), + less = require('gulp-less'), + jshint = require('gulp-jshint'), + minifyCSS = require('gulp-minify-css'), + concat = require('gulp-concat'), + uglify = require('gulp-uglify'), + sourcemaps = require('gulp-sourcemaps'), + templateCache = require('gulp-angular-templatecache'), + htmlmin = require('gulp-htmlmin'), + template = require('gulp-template'), + mainBowerFiles = require('main-bower-files'), + del = require('del'), + runSequence = require('run-sequence'), + exec = require('child_process').exec + pkg = require('./package.json'); + +gulp.task('less', function() { + return gulp.src('app/less/app.less') + .pipe(less({paths: ['less/app.less']})) + .pipe(minifyCSS()) + .pipe(gulp.dest('build')); +}); + +gulp.task('lint', function() { + return gulp.src('app/js/**/*.js') + .pipe(jshint()) + .pipe(jshint.reporter('default')); +}); + +gulp.task('bower', function(){ + return gulp.src(mainBowerFiles()) + .pipe(uglify({mangle: false}).on('error',function(e){ + console.log('Bower File:', e.fileName); + console.log('Line:', e.lineNumber); + console.log('Message:', e.message); + })) + .pipe(concat('lib.js')) + .pipe(gulp.dest('build')); +}); + +gulp.task('html2js', function() { + return gulp.src('app/views/**/*.html') + .pipe(htmlmin({ + 'collapseBooleanAttributes': true, + 'collapseWhitespace': true, + 'removeAttributeQuotes': true, + 'removeComments': true, + 'removeEmptyAttributes': true, + 'removeRedundantAttributes': true, + 'removeScriptTypeAttributes': true, + 'removeStyleLinkTypeAttributes': true + }).on('error',function(e){ + console.log('File:', e.fileName); + console.log('Message:',e.message); + })) + .pipe(templateCache({ + 'module': 'app.templates', + 'standalone': true, + 'root': 'views', + 'filename': 'template_cache.js' + })) + .pipe(gulp.dest('app/js')) +}); + +gulp.task('jsonToDB', function(cb) { + exec('node scripts/json-to-db.js', cb); +}); + +gulp.task('js', function() { + return gulp.src([ + 'app/js/db.js', + 'app/js/**/module-*.js', + 'app/js/template_cache.js', + 'app/js/app.js', + 'app/js/**/*.js' + ]) + .pipe(sourcemaps.init()) + .pipe(uglify({mangle: false}).on('error',function(e){ + console.log('File:', e.fileName); + console.log('Line:', e.lineNumber); + console.log('Message:', e.message); + })) + .pipe(concat('app.js')) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('build')); +}); + +gulp.task('copy', function() { + return gulp.src(['app/images/**','app/fonts/**'], {base: 'app/'}) + .pipe(gulp.dest('build')); +}); + +gulp.task('generateIndexHTML', function() { + return gulp.src('app/index.html') + .pipe(template({ + version: pkg.version, + date : (new Date()).toLocaleDateString() + })) + .pipe(gulp.dest('build')); +}); + +gulp.task('serve', function(cb) { + exec('nginx -p $(pwd) -c nginx.conf', function (err, stdout, stderr) { + if (stderr) { + console.warn(stderr); + console.warn('Is NGINX already running?\n'); + } + cb(); + }); +}); + +gulp.task('serve-stop', function(cb) { + exec('kill -QUIT $(cat nginx.pid)', function (err, stdout, stderr) { + if (stderr) console.log(stderr); else cb(err); + }); +}); + +gulp.task('watch', function() { + gulp.watch('app/index.html', ['generateIndexHTML']); + gulp.watch(['app/images/**','app/fonts/**'], ['copy']); + gulp.watch('app/less/*.less', ['less']); + gulp.watch('app/views/**/*', ['html2js']); + gulp.watch('app/js/**/*.js', ['js']); +}); + +gulp.task('clean', function (done) { del(['build'], done); }); +gulp.task('build', function (done) { runSequence('clean', ['html2js','jsonToDB'], ['generateIndexHTML','bower','js','less','copy'], done); }); +gulp.task('dev', function (done) { runSequence('build', 'serve','watch', done); }); + diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 00000000..6a035bb1 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,46 @@ +worker_processes 2; +error_log ./nginx.error.log; +worker_rlimit_nofile 8192; +pid nginx.pid; + +events { + worker_connections 1024; + multi_accept on; +} + +http { + + access_log off; + + types { + text/html html htm shtml; + text/css css; + text/xml xml rss; + image/gif gif; + image/jpeg jpeg jpg; + application/x-javascript js; + text/plain txt; + image/png png; + image/svg+xml svg; + image/x-icon ico; + application/pdf pdf; + } + + gzip on; + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_buffers 16 8k; + gzip_http_version 1.1; + gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; + + server { + listen 3300; + server_name localhost; + + location / { + root ./build/; + index index.html index.htm; + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..5646e464 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "ed_shipyard", + "version": "0.0.1", + "repository": { + "type": "git", + "url": "https://github.com/cmmcleod/ed-shipyard" + }, + "private": true, + "dependencies": {}, + "devDependencies": { + "async": "^0.9.0", + "del": "^1.1.1", + "gulp": "^3.8.11", + "gulp-angular-templatecache": "^1.6.0", + "gulp-concat": "^2.5.2", + "gulp-htmlmin": "^1.1.1", + "gulp-jshint": "^1.10.0", + "gulp-less": "^3.0.2", + "gulp-minify-css": "^1.0.0", + "gulp-sourcemaps": "^1.5.1", + "gulp-template": "^3.0.0", + "gulp-uglify": "^1.2.0", + "json-concat": "0.0.0", + "main-bower-files": "^2.6.2", + "run-sequence": "^1.0.2", + "uglify-js": "^2.4.19" + } +} diff --git a/scripts/json-to-db.js b/scripts/json-to-db.js new file mode 100644 index 00000000..fddb0e5e --- /dev/null +++ b/scripts/json-to-db.js @@ -0,0 +1,54 @@ +var fs = require('fs'); +var UglifyJS = require('uglify-js'); +var jsonConcat = require('json-concat'); +var async = require('async'); + +var db_filename = './app/js/db.js'; + +async.parallel([ + function(cb) { jsonConcat({ dest: null, src: './data/ships' }, done.bind(cb)); }, + function(cb) { + var common = [ + JSON.parse(fs.readFileSync('./data/components/common/power_plant.json', 'utf8')), + JSON.parse(fs.readFileSync('./data/components/common/thrusters.json', 'utf8')), + JSON.parse(fs.readFileSync('./data/components/common/frame_shift_drive.json', 'utf8')), + JSON.parse(fs.readFileSync('./data/components/common/life_support.json', 'utf8')), + JSON.parse(fs.readFileSync('./data/components/common/power_distributor.json', 'utf8')), + JSON.parse(fs.readFileSync('./data/components/common/sensors.json', 'utf8')), + JSON.parse(fs.readFileSync('./data/components/common/fuel_tank.json', 'utf8')) + ]; + cb(null, common); + }, + function(cb) { jsonConcat({ dest: null, src: './data/components/hardpoints' }, done.bind(cb)); }, + function(cb) { jsonConcat({ dest: null, src: './data/components/internal' }, done.bind(cb)); }, + function(cb) { jsonConcat({ dest: null, src: ['./data/components/bulkheads.json'] }, done.bind(cb)); } + ], writeDB); + +function done(err, json) { this(err,json); } + +function writeDB(err, arr) { + var db = { + ships: arr[0], + components: { + common: arr[1], + hardpoints: arr[2], + internal: arr[3], + bulkheads: arr[4] + } + }; + + var ast = UglifyJS.parse('var DB = ' + JSON.stringify(db)); + var code = ast.print_to_string({beautify: true, indent_level: 2}); + + fs.open(db_filename, 'w', function() { + fs.writeFile(db_filename, code, function(err) { + }); + }); + + fs.open('./build/db.json', 'w', function() { + fs.writeFile('./build/db.json', JSON.stringify(db), function(err) { + }); + }); + +} +