arnaucube
arnaucube/gogame-old-frontendPublic Self-hosted repository
gogame-old-frontend/calc.js
calc.jsRaw
  1const universespeed = 1;
  2
  3function metalmineCost(lvl) {
  4  const base = {
  5		Metal:     60,
  6		Crystal:   15,
  7		Deuterium: 0,
  8		Energy:    0,
  9	};
 10  // cost = base * 1.5^(lvl-1)
 11  let cost = {};
 12  cost.Metal = Math.floor(base.Metal * 1.5**(lvl-1));
 13  cost.Crystal = Math.floor(base.Crystal * 1.5**(lvl-1));
 14  cost.Deuterium = Math.floor(base.Deuterium * 1.5**(lvl-1));
 15  cost.Energy = Math.floor(base.Energy * 1.5**(lvl-1));
 16  return cost;
 17}
 18function crystalmineCost(lvl) {
 19  const base = {
 20		Metal:     48,
 21		Crystal:   24,
 22		Deuterium: 0,
 23		Energy:    0,
 24	};
 25	// cost = base * 1.6^(lvl-1)
 26  let cost = {};
 27  cost.Metal = Math.floor(base.Metal * 1.6**(lvl-1));
 28  cost.Crystal = Math.floor(base.Crystal * 1.6**(lvl-1));
 29  cost.Deuterium = Math.floor(base.Deuterium * 1.6**(lvl-1));
 30  cost.Energy = Math.floor(base.Energy * 1.6**(lvl-1));
 31  return cost;
 32}
 33function deuteriummineCost(lvl) {
 34  const base = {
 35		Metal:     225,
 36		Crystal:   75,
 37		Deuterium: 0,
 38		Energy:    0,
 39	};
 40  // cost = base * 1.5^(lvl-1)
 41  let cost = {};
 42  cost.Metal = Math.floor(base.Metal * 1.5**(lvl-1));
 43  cost.Crystal = Math.floor(base.Crystal * 1.5**(lvl-1));
 44  cost.Deuterium = Math.floor(base.Deuterium * 1.5**(lvl-1));
 45  cost.Energy = Math.floor(base.Energy * 1.5**(lvl-1));
 46  return cost;
 47}
 48function energymineCost(lvl) {
 49  const base = {
 50		Metal:     75,
 51		Crystal:   30,
 52		Deuterium: 0,
 53		Energy:    0,
 54	};
 55  // cost = base * 1.5^(lvl-1)
 56  let cost = {};
 57  cost.Metal = Math.floor(base.Metal * 1.5**(lvl-1));
 58  cost.Crystal = Math.floor(base.Crystal * 1.5**(lvl-1));
 59  cost.Deuterium = Math.floor(base.Deuterium * 1.5**(lvl-1));
 60  cost.Energy = Math.floor(base.Energy * 1.5**(lvl-1));
 61  return cost;
 62}
 63function fusionreactorCost(lvl) {
 64  const base = {
 65		Metal:     900,
 66		Crystal:   360,
 67		Deuterium: 180,
 68		Energy:    0,
 69	};
 70  // cost = base * 1.8^(lvl-1)
 71  let cost = {};
 72  cost.Metal = Math.floor(base.Metal * 1.8**(lvl-1));
 73  cost.Crystal = Math.floor(base.Crystal * 1.8**(lvl-1));
 74  cost.Deuterium = Math.floor(base.Deuterium * 1.8**(lvl-1));
 75  cost.Energy = Math.floor(base.Energy * 1.8**(lvl-1));
 76  return cost;
 77}
 78function roboticsfactoryCost(lvl) {
 79  const base = {
 80		Metal:     400,
 81		Crystal:   120,
 82		Deuterium: 200,
 83		Energy:    0,
 84	};
 85  // cost = base * 2^(lvl-1)
 86  let cost = {};
 87  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
 88  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
 89  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
 90  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
 91  return cost;
 92}
 93function shipyardCost(lvl) {
 94  const base = {
 95		Metal:     400,
 96		Crystal:   200,
 97		Deuterium: 100,
 98		Energy:    0,
 99	};
100  // cost = base * 2^(lvl-1)
101  let cost = {};
102  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
103  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
104  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
105  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
106  return cost;
107}
108function metalstorageCost(lvl) {
109  const base = {
110		Metal:     1000,
111		Crystal:   0,
112		Deuterium: 0,
113		Energy:    0,
114	};
115  // cost = base * 2^(lvl-1)
116  let cost = {};
117  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
118  cost.Crystal = 0;
119  cost.Deuterium = 0;
120  cost.Energy = 0;
121  return cost;
122}
123function crystalstorageCost(lvl) {
124  const base = {
125		Metal:     1000,
126		Crystal:   500,
127		Deuterium: 0,
128		Energy:    0,
129	};
130  // cost = base * 2^(lvl-1)
131  let cost = {};
132  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
133  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
134  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
135  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
136  return cost;
137}
138function deuteriumstorageCost(lvl) {
139  const base = {
140		Metal:     1000,
141		Crystal:   1000,
142		Deuterium: 0,
143		Energy:    0,
144	};
145  // cost = base * 2^(lvl-1)
146  let cost = {};
147  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
148  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
149  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
150  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
151  return cost;
152}
153function ressearchlabCost(lvl) {
154  const base = {
155		Metal:     200,
156		Crystal:   400,
157		Deuterium: 200,
158		Energy:    0,
159	};
160  // cost = base * 1.5^(lvl-1)
161  let cost = {};
162  cost.Metal = Math.floor(base.Metal * 1.5**(lvl-1));
163  cost.Crystal = Math.floor(base.Crystal * 1.5**(lvl-1));
164  cost.Deuterium = Math.floor(base.Deuterium * 1.5**(lvl-1));
165  cost.Energy = Math.floor(base.Energy * 1.5**(lvl-1));
166  return cost;
167}
168
169function alliancedepotCost(lvl) {
170  const base = {
171		Metal:     20000,
172		Crystal:   40000,
173		Deuterium: 0,
174		Energy:    0,
175	};
176  // cost = base * 2^(lvl-1)
177  let cost = {};
178  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
179  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
180  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
181  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
182  return cost;
183}
184function missilesiloCost(lvl) {
185  const base = {
186		Metal:     20000,
187		Crystal:   20000,
188		Deuterium: 1000,
189		Energy:    0,
190	};
191  // cost = base * 2^(lvl-1)
192  let cost = {};
193  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
194  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
195  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
196  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
197  return cost;
198}
199function spacedockCost(lvl) {
200  const base = {
201		Metal:     20000,
202		Crystal:   20000,
203		Deuterium: 1000,
204		Energy:    0,
205	};
206  // cost = base * 2^(lvl-1)
207  let cost = {};
208  cost.Metal = Math.floor(base.Metal * 2**(lvl-1));
209  cost.Crystal = Math.floor(base.Crystal * 2**(lvl-1));
210  cost.Deuterium = Math.floor(base.Deuterium * 2**(lvl-1));
211  cost.Energy = Math.floor(base.Energy * 2**(lvl-1));
212  return cost;
213}
214
215function constructionTime(r, roboticsLvl) {
216  const naniteLvl = 1;
217  // T(h) = (metal + crystal) / (2500 * (1+roboticsLvl) * 2^naniteLvl * universespeed)
218  tHours = (r.Metal + r.Crystal) / (2500 * (1 + roboticsLvl) * 2**naniteLvl * universespeed);
219  return Math.floor(tHours * 3600);
220}