Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 6) 50% shared storage would be good.
- * m should be shared away as fast as possible
- * if team.m then give(player, team.m*player.storageLevel*(player.creditsM or 0)/max(allPlayers.creditsM, 1), M)
- * if team.m then give(player, team.m*player.storageLevel*(1- (player.liabilitiesM or 0)/max(allPlayers.liabilitiesM, 1) ), M)
- * give and take update credits and liabilities for E/M - important later when it comes to overdrive.
- 7) If a player e-stalls, it is worse as If you don't get m from overdrive asap.
- * Share, but keep track of the bank balance between the players
- * If a player with liabilities dies, use his team share m-gain to pay it back.
- * E has to be payed from team.creditsE.
- * Max E-share to player: % dependent on team size and allPlayers.liabilitiesE compared to allPlayers.creditsE and stallingPlayer.liabilitiesE.
- * If this player starts excessing, first pay back the liabilities, then give credits for the E.
- 8) Use team storage to:
- * Let each player have a full metal bar, even if team storage is emty!
- * To let players use it and get free storage for the unexpected eco boosts!
- * Use it to decide how much to overdrive (fill e up if no m is needed, don't dance too much with the overdrive percentage - dancing percentages are inefficient)
- * Use it to keep the bank balance script simple (free storage somewhere every times to avoid excess).
- 9) If one excesses:
- * First share to the creditors, even if creditors may share to team storage
- * Team storage never excess: see 6), and 10)
- 10) team.eForOD = team.incomeE *team.storageE.level
- * the bank balance tells, which player owns how much: team.IncomeE*(player.creditE or 0)/min(allPlayers.credits-allPlayers.liabilities, 1) tells the weight of this player
- * player.eForOD = team.eForOD*player.weight/allPlayers.weight for this player
- * only players with credits can get OD
- 11) global optimisation and capping:
- * balance all mexes with usedForOD energy units as if they where in one grid.
- * if sum(grid.mexes.eUsage) > grid.maxE, balance grid with grid.maxE, push the difference back ot the rest (notUsed = (notUsed or 0) + diff)
- * after checking each grid for "cheating :P", rebalance the rest with notUsed.
- * cut all new cheaters to grid.maxE, repeat
- * perfectly overdriven only one step left 12)
- 12) Everybody get base income of his own mexes until they payed back (The -75e is penalty enough).
- * all the other base belongs to the team - evenly
- * players get player.eForOD/allPlayers.eForOD/playercount <-- eForOD was initially calculated from credits, players with liabilities get excluded until they paid back.
Advertisement
Add Comment
Please, Sign In to add comment