Only provide one of each hex member for upgrades
This commit is contained in:
parent
5f22614078
commit
747c155fc6
@ -588,49 +588,74 @@ const getCalendarSeason = (week: number): ICalendarSeason => {
|
||||
eventDays.push({ day, events });
|
||||
}
|
||||
|
||||
const upgrades = [
|
||||
"/Lotus/Upgrades/Calendar/MeleeCritChance",
|
||||
"/Lotus/Upgrades/Calendar/MeleeAttackSpeed",
|
||||
"/Lotus/Upgrades/Calendar/EnergyOrbToAbilityRange",
|
||||
"/Lotus/Upgrades/Calendar/AbilityStrength",
|
||||
"/Lotus/Upgrades/Calendar/Armor",
|
||||
"/Lotus/Upgrades/Calendar/RadiationProcOnTakeDamage",
|
||||
"/Lotus/Upgrades/Calendar/CompanionDamage",
|
||||
"/Lotus/Upgrades/Calendar/GasChanceToPrimaryAndSecondary",
|
||||
"/Lotus/Upgrades/Calendar/MagazineCapacity",
|
||||
"/Lotus/Upgrades/Calendar/PunchToPrimary",
|
||||
"/Lotus/Upgrades/Calendar/HealingEffects",
|
||||
"/Lotus/Upgrades/Calendar/EnergyRestoration",
|
||||
"/Lotus/Upgrades/Calendar/OvershieldCap",
|
||||
"/Lotus/Upgrades/Calendar/ElectricStatusDamageAndChance",
|
||||
"/Lotus/Upgrades/Calendar/FinisherChancePerComboMultiplier",
|
||||
"/Lotus/Upgrades/Calendar/MagnetStatusPull",
|
||||
"/Lotus/Upgrades/Calendar/CompanionsBuffNearbyPlayer",
|
||||
"/Lotus/Upgrades/Calendar/StatusChancePerAmmoSpent",
|
||||
"/Lotus/Upgrades/Calendar/OrbsDuplicateOnPickup",
|
||||
"/Lotus/Upgrades/Calendar/AttackAndMovementSpeedOnCritMelee",
|
||||
"/Lotus/Upgrades/Calendar/RadialJavelinOnHeavy",
|
||||
"/Lotus/Upgrades/Calendar/MagnitizeWithinRangeEveryXCasts",
|
||||
"/Lotus/Upgrades/Calendar/CompanionsRadiationChance",
|
||||
"/Lotus/Upgrades/Calendar/BlastEveryXShots",
|
||||
"/Lotus/Upgrades/Calendar/GenerateOmniOrbsOnWeakKill",
|
||||
"/Lotus/Upgrades/Calendar/ElectricDamagePerDistance",
|
||||
"/Lotus/Upgrades/Calendar/MeleeSlideFowardMomentumOnEnemyHit",
|
||||
"/Lotus/Upgrades/Calendar/SharedFreeAbilityEveryXCasts",
|
||||
"/Lotus/Upgrades/Calendar/ReviveEnemyAsSpectreOnKill",
|
||||
"/Lotus/Upgrades/Calendar/RefundBulletOnStatusProc",
|
||||
"/Lotus/Upgrades/Calendar/ExplodingHealthOrbs",
|
||||
"/Lotus/Upgrades/Calendar/SpeedBuffsWhenAirborne",
|
||||
"/Lotus/Upgrades/Calendar/EnergyWavesOnCombo",
|
||||
"/Lotus/Upgrades/Calendar/PowerStrengthAndEfficiencyPerEnergySpent",
|
||||
"/Lotus/Upgrades/Calendar/CloneActiveCompanionForEnergySpent",
|
||||
"/Lotus/Upgrades/Calendar/GuidingMissilesChance",
|
||||
"/Lotus/Upgrades/Calendar/EnergyOrbsGrantShield",
|
||||
"/Lotus/Upgrades/Calendar/ElectricalDamageOnBulletJump"
|
||||
const upgradesByHexMember = [
|
||||
[
|
||||
"/Lotus/Upgrades/Calendar/AttackAndMovementSpeedOnCritMelee",
|
||||
"/Lotus/Upgrades/Calendar/ElectricalDamageOnBulletJump",
|
||||
"/Lotus/Upgrades/Calendar/ElectricDamagePerDistance",
|
||||
"/Lotus/Upgrades/Calendar/ElectricStatusDamageAndChance",
|
||||
"/Lotus/Upgrades/Calendar/OvershieldCap",
|
||||
"/Lotus/Upgrades/Calendar/SpeedBuffsWhenAirborne"
|
||||
],
|
||||
[
|
||||
"/Lotus/Upgrades/Calendar/AbilityStrength",
|
||||
"/Lotus/Upgrades/Calendar/EnergyOrbToAbilityRange",
|
||||
"/Lotus/Upgrades/Calendar/MagnetStatusPull",
|
||||
"/Lotus/Upgrades/Calendar/MagnitizeWithinRangeEveryXCasts",
|
||||
"/Lotus/Upgrades/Calendar/PowerStrengthAndEfficiencyPerEnergySpent",
|
||||
"/Lotus/Upgrades/Calendar/SharedFreeAbilityEveryXCasts"
|
||||
],
|
||||
[
|
||||
"/Lotus/Upgrades/Calendar/EnergyWavesOnCombo",
|
||||
"/Lotus/Upgrades/Calendar/FinisherChancePerComboMultiplier",
|
||||
"/Lotus/Upgrades/Calendar/MeleeAttackSpeed",
|
||||
"/Lotus/Upgrades/Calendar/MeleeCritChance",
|
||||
"/Lotus/Upgrades/Calendar/MeleeSlideFowardMomentumOnEnemyHit",
|
||||
"/Lotus/Upgrades/Calendar/RadialJavelinOnHeavy"
|
||||
],
|
||||
[
|
||||
"/Lotus/Upgrades/Calendar/Armor",
|
||||
"/Lotus/Upgrades/Calendar/CloneActiveCompanionForEnergySpent",
|
||||
"/Lotus/Upgrades/Calendar/CompanionDamage",
|
||||
"/Lotus/Upgrades/Calendar/CompanionsBuffNearbyPlayer",
|
||||
"/Lotus/Upgrades/Calendar/CompanionsRadiationChance",
|
||||
"/Lotus/Upgrades/Calendar/RadiationProcOnTakeDamage",
|
||||
"/Lotus/Upgrades/Calendar/ReviveEnemyAsSpectreOnKill"
|
||||
],
|
||||
[
|
||||
"/Lotus/Upgrades/Calendar/EnergyOrbsGrantShield",
|
||||
"/Lotus/Upgrades/Calendar/EnergyRestoration",
|
||||
"/Lotus/Upgrades/Calendar/ExplodingHealthOrbs",
|
||||
"/Lotus/Upgrades/Calendar/GenerateOmniOrbsOnWeakKill",
|
||||
"/Lotus/Upgrades/Calendar/HealingEffects",
|
||||
"/Lotus/Upgrades/Calendar/OrbsDuplicateOnPickup"
|
||||
],
|
||||
[
|
||||
"/Lotus/Upgrades/Calendar/BlastEveryXShots",
|
||||
"/Lotus/Upgrades/Calendar/GasChanceToPrimaryAndSecondary",
|
||||
"/Lotus/Upgrades/Calendar/GuidingMissilesChance",
|
||||
"/Lotus/Upgrades/Calendar/MagazineCapacity",
|
||||
"/Lotus/Upgrades/Calendar/PunchToPrimary",
|
||||
"/Lotus/Upgrades/Calendar/RefundBulletOnStatusProc",
|
||||
"/Lotus/Upgrades/Calendar/StatusChancePerAmmoSpent"
|
||||
]
|
||||
];
|
||||
for (let i = 0; i != upgradeRanges.length - 1; ++i) {
|
||||
const events: ICalendarEvent[] = [];
|
||||
// Pick 3 unique hex members
|
||||
const hexMembersPickedForThisDay: number[] = [];
|
||||
for (let j = 0; j != 3; ++j) {
|
||||
let hexMemberIndex: number;
|
||||
do {
|
||||
hexMemberIndex = rng.randomInt(0, upgradesByHexMember.length - 1);
|
||||
} while (hexMembersPickedForThisDay.indexOf(hexMemberIndex) != -1);
|
||||
hexMembersPickedForThisDay.push(hexMemberIndex);
|
||||
}
|
||||
hexMembersPickedForThisDay.sort(); // Always present them in the same order
|
||||
|
||||
// For each hex member, pick an upgrade that was not yet picked this season.
|
||||
const events: ICalendarEvent[] = [];
|
||||
for (const hexMemberIndex of hexMembersPickedForThisDay) {
|
||||
const upgrades = upgradesByHexMember[hexMemberIndex];
|
||||
const upgradeIndex = rng.randomInt(0, upgrades.length - 1);
|
||||
events.push({ type: "CET_UPGRADE", upgrade: upgrades[upgradeIndex] });
|
||||
upgrades.splice(upgradeIndex, 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user