wave
base wave gun rework
damage per hit 1.55 -> 0.33, -15% range, +20% ammo
no pause between wave packets
wave bullets can hit about once every 10 game cycles (1/6 of a second)
time between hits is reduced by fire rate
wave tech frequency has -25% damage no longer reduces fire rate
+10% phonon damage and ammo
JUNK tech: universal healthcare - your damage heals mobs
bug fixes
This commit is contained in:
64
js/tech.js
64
js/tech.js
@@ -235,7 +235,7 @@ const tech = {
|
||||
if (m.coupling && (m.fieldMode === 0 || m.fieldMode === 5)) dmg *= 1 + 0.15 * m.coupling
|
||||
if (m.isSneakAttack && m.sneakAttackCycle + Math.min(120, 0.5 * (m.cycle - m.enterCloakCycle)) > m.cycle) dmg *= 4.33 * (1 + 0.33 * m.coupling)
|
||||
if (tech.deathSkipTime) dmg *= 1 + 0.6 * tech.deathSkipTime
|
||||
if (tech.isTechDebt) dmg *= Math.min(Math.pow(0.85, tech.totalCount - 20), 4 - 0.15 * tech.totalCount)
|
||||
if (tech.isTechDebt) dmg *= tech.totalCount > 2 ? Math.pow(0.85, tech.totalCount - 20) : 4 - 0.15 * tech.totalCount // if (tech.isTechDebt) dmg *= Math.min(Math.pow(0.85, tech.totalCount - 20), 4 - 0.15 * tech.totalCount)
|
||||
if (tech.isFlipFlopDamage && tech.isFlipFlopOn) dmg *= 1.555
|
||||
if (tech.isAnthropicDamage && tech.isDeathAvoidedThisLevel) dmg *= 2.3703599
|
||||
if (tech.isDupDamage) dmg *= 1 + Math.min(1, tech.duplicationChance())
|
||||
@@ -4969,16 +4969,16 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "phase velocity",
|
||||
description: "wave particles <strong>propagate</strong> faster as <strong>solids</strong><br><strong>+35%</strong> wave <strong class='color-d'>damage</strong>",
|
||||
description: "wave particles <strong>propagate</strong> faster as <strong>solids</strong><br><strong>+40%</strong> wave <strong class='color-d'>damage</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 2,
|
||||
frequencyDefault: 2,
|
||||
allowed() {
|
||||
return tech.haveGunCheck("wave")
|
||||
return tech.haveGunCheck("wave") && !tech.isLongitudinal
|
||||
},
|
||||
requires: "wave",
|
||||
requires: "wave, not phonon",
|
||||
effect() {
|
||||
tech.isPhaseVelocity = true;
|
||||
},
|
||||
@@ -5009,7 +5009,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "propagation",
|
||||
description: "<strong>–25%</strong> wave packet propagation <strong>speed</strong><br><strong>+37%</strong> wave <strong class='color-d'>damage</strong>",
|
||||
description: "<strong>–25%</strong> wave packet propagation <strong>speed</strong><br><strong>+41%</strong> wave <strong class='color-d'>damage</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 9,
|
||||
count: 0,
|
||||
@@ -5020,17 +5020,17 @@ const tech = {
|
||||
},
|
||||
requires: "wave",
|
||||
effect() {
|
||||
tech.waveBeamSpeed *= 0.8;
|
||||
tech.waveBeamDamage += 1.55 * 0.37 //this sets base wave damage
|
||||
tech.waveBeamSpeed *= 0.75;
|
||||
tech.waveBeamDamage += 0.33 * 0.41 //this sets base wave damage
|
||||
},
|
||||
remove() {
|
||||
tech.waveBeamSpeed = 12;
|
||||
tech.waveBeamDamage = 1.55 //this sets base wave damage
|
||||
tech.waveBeamSpeed = 11;
|
||||
tech.waveBeamDamage = 0.33 //this sets base wave damage
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "bound state",
|
||||
description: "wave packets <strong>reflect</strong> backwards <strong>2</strong> times<br><strong>–20%</strong> <strong>range</strong>",
|
||||
description: "wave packets <strong>reflect</strong> backwards <strong>2</strong> times<br><strong>–33%</strong> <strong>range</strong>",
|
||||
isGunTech: true,
|
||||
maxCount: 9,
|
||||
count: 0,
|
||||
@@ -5049,7 +5049,7 @@ const tech = {
|
||||
},
|
||||
{
|
||||
name: "frequency",
|
||||
description: `<strong>wave</strong> has unlimited <strong class='color-ammo'>ammo</strong><br><strong>-50%</strong> wave <strong><em>fire rate</em></strong>`,
|
||||
description: `<strong>wave</strong> has unlimited <strong class='color-ammo'>ammo</strong><br><strong>-25%</strong> wave <strong class='color-d'>damage</strong>`,
|
||||
isGunTech: true,
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
@@ -5058,13 +5058,13 @@ const tech = {
|
||||
allowed: () => tech.haveGunCheck("wave"),
|
||||
requires: "wave",
|
||||
effect() {
|
||||
tech.infiniteWaveAmmo = 2
|
||||
tech.isInfiniteWaveAmmo = true
|
||||
b.guns[3].savedAmmo = b.guns[3].ammo
|
||||
b.guns[3].ammo = Infinity
|
||||
simulation.updateGunHUD();
|
||||
},
|
||||
remove() {
|
||||
tech.infiniteWaveAmmo = 1
|
||||
tech.isInfiniteWaveAmmo = false
|
||||
if (this.count > 0 && b.guns[3].savedAmmo !== undefined) {
|
||||
b.guns[3].ammo = b.guns[3].savedAmmo
|
||||
simulation.updateGunHUD();
|
||||
@@ -5082,18 +5082,18 @@ const tech = {
|
||||
frequency: 3,
|
||||
frequencyDefault: 3,
|
||||
allowed() {
|
||||
return tech.haveGunCheck("wave")
|
||||
return tech.haveGunCheck("wave") && !tech.isPhaseVelocity
|
||||
},
|
||||
requires: "wave",
|
||||
ammoScale: 11,
|
||||
requires: "wave, not phase velocity",
|
||||
ammoScale: 10,
|
||||
effect() {
|
||||
tech.isLongitudinal = true;
|
||||
b.guns[3].chooseFireMethod()
|
||||
b.guns[3].ammoPack = b.guns[3].defaultAmmoPack / this.ammoScale
|
||||
if (tech.infiniteWaveAmmo === 1) {
|
||||
b.guns[3].ammo = Math.ceil(b.guns[3].ammo / this.ammoScale);
|
||||
} else {
|
||||
if (tech.isInfiniteWaveAmmo) {
|
||||
b.guns[3].savedAmmo = Math.ceil(b.guns[3].savedAmmo / this.ammoScale); //used with low frequency
|
||||
} else {
|
||||
b.guns[3].ammo = Math.ceil(b.guns[3].ammo / this.ammoScale);
|
||||
}
|
||||
simulation.updateGunHUD();
|
||||
},
|
||||
@@ -5102,10 +5102,10 @@ const tech = {
|
||||
tech.isLongitudinal = false;
|
||||
b.guns[3].chooseFireMethod()
|
||||
b.guns[3].ammoPack = b.guns[3].defaultAmmoPack
|
||||
if (tech.infiniteWaveAmmo === 1) {
|
||||
b.guns[3].ammo = Math.ceil(b.guns[3].ammo * this.ammoScale);
|
||||
} else {
|
||||
if (tech.isInfiniteWaveAmmo) {
|
||||
b.guns[3].savedAmmo = Math.ceil(b.guns[3].savedAmmo * this.ammoScale); //used with low frequency
|
||||
} else {
|
||||
b.guns[3].ammo = Math.ceil(b.guns[3].ammo * this.ammoScale);
|
||||
}
|
||||
simulation.updateGunHUD();
|
||||
}
|
||||
@@ -6348,7 +6348,7 @@ const tech = {
|
||||
isBot: true,
|
||||
isBotTech: true,
|
||||
isNonRefundable: true,
|
||||
requires: "foam gun, bot upgrades, fractionation, pressure vessel",
|
||||
requires: "foam gun, not bot upgrades, fractionation, pressure vessel",
|
||||
allowed() {
|
||||
return tech.haveGunCheck("foam", false) && !b.hasBotUpgrade() && !tech.isAmmoFoamSize && !tech.isFoamPressure && (build.isExperimentSelection || powerUps.research.count > 1)
|
||||
},
|
||||
@@ -6776,7 +6776,7 @@ const tech = {
|
||||
frequency: 1,
|
||||
frequencyDefault: 1,
|
||||
allowed() {
|
||||
return ((tech.haveGunCheck("wave") && tech.infiniteWaveAmmo !== 1) || tech.haveGunCheck("laser") || (tech.haveGunCheck("harpoon") && !tech.isRailGun)) && !tech.isEnergyNoAmmo
|
||||
return ((tech.haveGunCheck("wave") && !tech.isInfiniteWaveAmmo) || tech.haveGunCheck("laser") || (tech.haveGunCheck("harpoon") && !tech.isRailGun)) && !tech.isEnergyNoAmmo
|
||||
},
|
||||
requires: "harpoon, laser, wave, frequency, not railgun, non-renewables",
|
||||
effect() {
|
||||
@@ -8724,6 +8724,20 @@ const tech = {
|
||||
},
|
||||
remove() {}
|
||||
},
|
||||
{
|
||||
name: "universal healthcare",
|
||||
description: "make your <strong class='color-d'>damage</strong> negative",
|
||||
maxCount: 1,
|
||||
count: 0,
|
||||
frequency: 0,
|
||||
isJunk: true,
|
||||
allowed: () => true,
|
||||
requires: "",
|
||||
effect() {
|
||||
tech.damage *= -1
|
||||
},
|
||||
remove() {}
|
||||
},
|
||||
// {
|
||||
// name: "synchrotron",
|
||||
// descriptionFunction() {
|
||||
@@ -11377,7 +11391,7 @@ const tech = {
|
||||
isBoostPowerUps: null,
|
||||
isBoostReplaceAmmo: null,
|
||||
isFlipFlopCoupling: null,
|
||||
infiniteWaveAmmo: null,
|
||||
isInfiniteWaveAmmo: null,
|
||||
isJunkDNA: null,
|
||||
buffedGun: 0,
|
||||
isGunChoice: null,
|
||||
|
||||
Reference in New Issue
Block a user