From 43d1f363e56cd64026f17bc21ee2a43255f767b2 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 19:12:24 -0700 Subject: [PATCH 1/9] Lightning Ability --- .../abilities/MovementLightningAbility.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 core/src/mindustry/entities/abilities/MovementLightningAbility.java diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java new file mode 100644 index 0000000000..cab7d0b472 --- /dev/null +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -0,0 +1,32 @@ +package mindustry.entities.abilities; + +import arc.util.*; +import arc.math.*; +import mindustry.content.*; +import mindustry.entities.*; +import mindustry.gen.*; + +public class MovementLightningAbility extends Ability{ + public float damage = 35f, length = 10f, reload = 0.15; + public float minSpeed = 0.8f, maxSpeed = 1.2f; + public Effect shootEffect = Fx.lightningShoot; + + MovementLightningAbility(){} + + public MovementLightningAbility(float damage, float length, float reload, float minSpeed, float maxSpeed){ + this.damage = damage; + this.length = length; + this.reload = reload; + this.minSpeed = minSpeed; + this.maxSpeed = maxSpeed; + } + + @Override + public void update(Unit unit){ + scl = Mathf.clamp((unit.velocity().len() - minSpeed) / (maxSpeed - minSpeed)); + if(Mathf.chance(Time.delta() * (reload * scl))){ + shootEffect.at(unit.x, unit.y, unit.rotation, unit.team.color()); + Lightning.create(unit.team, unit.team.color(), damage, unit.x + unit.velocity().x, unit.y + unit.velocity().y, unit.rotation, length); + } + } +} \ No newline at end of file From 2dd234d96029f871fa5130b1024a61608b901d34 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 19:32:29 -0700 Subject: [PATCH 2/9] oopeth --- .../abilities/MovementLightningAbility.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index cab7d0b472..633ad1e369 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -5,15 +5,17 @@ import arc.math.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; +import static mindustry.Vars.*; public class MovementLightningAbility extends Ability{ - public float damage = 35f, length = 10f, reload = 0.15; + public float damage = 35f, reload = 0.15f; + public int length = 12f; public float minSpeed = 0.8f, maxSpeed = 1.2f; public Effect shootEffect = Fx.lightningShoot; MovementLightningAbility(){} - public MovementLightningAbility(float damage, float length, float reload, float minSpeed, float maxSpeed){ + public MovementLightningAbility(float damage, int length, float reload, float minSpeed, float maxSpeed){ this.damage = damage; this.length = length; this.reload = reload; @@ -23,10 +25,10 @@ public class MovementLightningAbility extends Ability{ @Override public void update(Unit unit){ - scl = Mathf.clamp((unit.velocity().len() - minSpeed) / (maxSpeed - minSpeed)); - if(Mathf.chance(Time.delta() * (reload * scl))){ - shootEffect.at(unit.x, unit.y, unit.rotation, unit.team.color()); - Lightning.create(unit.team, unit.team.color(), damage, unit.x + unit.velocity().x, unit.y + unit.velocity().y, unit.rotation, length); + float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed)); + if(Mathf.chance(Time.delta * (reload * scl))){ + shootEffect.at(unit.x, unit.y, unit.rotation, unit.team.color); + Lightning.create(unit.team, unit.team.color, damage * Vars.state.rules.playerDamageMultiplie, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); } } } \ No newline at end of file From 0bd07866d8bdcd427fdd684f502d7b49914506c8 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 19:51:32 -0700 Subject: [PATCH 3/9] m hm --- .../entities/abilities/MovementLightningAbility.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index 633ad1e369..38ab8ca3f0 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -1,17 +1,18 @@ package mindustry.entities.abilities; import arc.util.*; +import arc.audio.*; import arc.math.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; -import static mindustry.Vars.*; public class MovementLightningAbility extends Ability{ public float damage = 35f, reload = 0.15f; - public int length = 12f; + public int length = 12; public float minSpeed = 0.8f, maxSpeed = 1.2f; - public Effect shootEffect = Fx.lightningShoot; + public Effect shootEffect = Fx.sparkShoot; + public Sound shootSound = Sounds.spark; MovementLightningAbility(){} @@ -28,7 +29,8 @@ public class MovementLightningAbility extends Ability{ float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed)); if(Mathf.chance(Time.delta * (reload * scl))){ shootEffect.at(unit.x, unit.y, unit.rotation, unit.team.color); - Lightning.create(unit.team, unit.team.color, damage * Vars.state.rules.playerDamageMultiplie, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); + Lightning.create(unit.team, unit.team.color, damage, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); + shootSound.at(unit.x, unit.y); } } } \ No newline at end of file From 50410be90a971b0089b7ba07b503ab33f731b6a0 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 21:33:57 -0700 Subject: [PATCH 4/9] Define color instead of based on team --- .../entities/abilities/MovementLightningAbility.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index 38ab8ca3f0..0868a7256f 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -13,23 +13,25 @@ public class MovementLightningAbility extends Ability{ public float minSpeed = 0.8f, maxSpeed = 1.2f; public Effect shootEffect = Fx.sparkShoot; public Sound shootSound = Sounds.spark; + public Color color = Pal.lancerLaser; MovementLightningAbility(){} - public MovementLightningAbility(float damage, int length, float reload, float minSpeed, float maxSpeed){ + public MovementLightningAbility(float damage, int length, float reload, float minSpeed, float maxSpeed, Color color){ this.damage = damage; this.length = length; this.reload = reload; this.minSpeed = minSpeed; this.maxSpeed = maxSpeed; + this.color = color; } @Override public void update(Unit unit){ float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed)); if(Mathf.chance(Time.delta * (reload * scl))){ - shootEffect.at(unit.x, unit.y, unit.rotation, unit.team.color); - Lightning.create(unit.team, unit.team.color, damage, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); + shootEffect.at(unit.x, unit.y, unit.rotation, color); + Lightning.create(unit.team, color, damage, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); shootSound.at(unit.x, unit.y); } } From ed2825b0d9c49d023b73b0f1ccd0506a9f25a30f Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 21:37:52 -0700 Subject: [PATCH 5/9] doot --- .../mindustry/entities/abilities/MovementLightningAbility.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index 0868a7256f..de9964836a 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -1,8 +1,9 @@ package mindustry.entities.abilities; +import arc.graphics.*; +import arc.math.*; import arc.util.*; import arc.audio.*; -import arc.math.*; import mindustry.content.*; import mindustry.entities.*; import mindustry.gen.*; From e7b6013d8d704337fcfef2c819801827726e38f8 Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 21:39:55 -0700 Subject: [PATCH 6/9] doot --- .../mindustry/entities/abilities/MovementLightningAbility.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index de9964836a..3ef2890aec 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -14,7 +14,7 @@ public class MovementLightningAbility extends Ability{ public float minSpeed = 0.8f, maxSpeed = 1.2f; public Effect shootEffect = Fx.sparkShoot; public Sound shootSound = Sounds.spark; - public Color color = Pal.lancerLaser; + public Color color = Color.valueOf("a9d8ff"); MovementLightningAbility(){} From da3c11a20120982be081072b31089c70e4fc13da Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Wed, 21 Oct 2020 23:14:54 -0700 Subject: [PATCH 7/9] Comments --- .../entities/abilities/MovementLightningAbility.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index 3ef2890aec..9ce306d5c7 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -9,11 +9,19 @@ import mindustry.entities.*; import mindustry.gen.*; public class MovementLightningAbility extends Ability{ - public float damage = 35f, reload = 0.15f; + //Lightning damage + public float damage = 35f; + //Ticks between firing + public float reload = 15f; + //Length of lightning public int length = 12; + //Speeds for when to start lightninging and when to stop getting faster public float minSpeed = 0.8f, maxSpeed = 1.2f; + //Shoot effect public Effect shootEffect = Fx.sparkShoot; + //Shoot sound public Sound shootSound = Sounds.spark; + //Lightning Color public Color color = Color.valueOf("a9d8ff"); MovementLightningAbility(){} @@ -30,7 +38,7 @@ public class MovementLightningAbility extends Ability{ @Override public void update(Unit unit){ float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed)); - if(Mathf.chance(Time.delta * (reload * scl))){ + if(Mathf.chance(Time.delta * (reload/10 * scl))){ shootEffect.at(unit.x, unit.y, unit.rotation, color); Lightning.create(unit.team, color, damage, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); shootSound.at(unit.x, unit.y); From 5203d17910840c911eb9ae10b2793fcac41b10bf Mon Sep 17 00:00:00 2001 From: MEEP of Faith Date: Thu, 22 Oct 2020 15:18:12 -0700 Subject: [PATCH 8/9] Comment stuff --- .../entities/abilities/MovementLightningAbility.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index 9ce306d5c7..24bc2a55aa 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -13,17 +13,16 @@ public class MovementLightningAbility extends Ability{ public float damage = 35f; //Ticks between firing public float reload = 15f; - //Length of lightning + //Length of the lightning public int length = 12; //Speeds for when to start lightninging and when to stop getting faster public float minSpeed = 0.8f, maxSpeed = 1.2f; - //Shoot effect - public Effect shootEffect = Fx.sparkShoot; - //Shoot sound - public Sound shootSound = Sounds.spark; //Lightning Color public Color color = Color.valueOf("a9d8ff"); + public Effect shootEffect = Fx.sparkShoot; + public Sound shootSound = Sounds.spark; + MovementLightningAbility(){} public MovementLightningAbility(float damage, int length, float reload, float minSpeed, float maxSpeed, Color color){ From a14ae1bdf8d167621840586c1c52ced177d3c8b5 Mon Sep 17 00:00:00 2001 From: MEEP of Faith <54301439+MEEPofFaith@users.noreply.github.com> Date: Wed, 28 Oct 2020 21:00:24 -0700 Subject: [PATCH 9/9] Lightning chance fix. --- .../entities/abilities/MovementLightningAbility.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/entities/abilities/MovementLightningAbility.java b/core/src/mindustry/entities/abilities/MovementLightningAbility.java index 24bc2a55aa..b482afb8dc 100644 --- a/core/src/mindustry/entities/abilities/MovementLightningAbility.java +++ b/core/src/mindustry/entities/abilities/MovementLightningAbility.java @@ -11,8 +11,8 @@ import mindustry.gen.*; public class MovementLightningAbility extends Ability{ //Lightning damage public float damage = 35f; - //Ticks between firing - public float reload = 15f; + //Chance of firing every tick. Set >= 1 to always fire lightning every tick at max speed. + public float chance = 0.15f; //Length of the lightning public int length = 12; //Speeds for when to start lightninging and when to stop getting faster @@ -25,10 +25,10 @@ public class MovementLightningAbility extends Ability{ MovementLightningAbility(){} - public MovementLightningAbility(float damage, int length, float reload, float minSpeed, float maxSpeed, Color color){ + public MovementLightningAbility(float damage, int length, float chance, float minSpeed, float maxSpeed, Color color){ this.damage = damage; this.length = length; - this.reload = reload; + this.chance = chance; this.minSpeed = minSpeed; this.maxSpeed = maxSpeed; this.color = color; @@ -37,10 +37,10 @@ public class MovementLightningAbility extends Ability{ @Override public void update(Unit unit){ float scl = Mathf.clamp((unit.vel().len() - minSpeed) / (maxSpeed - minSpeed)); - if(Mathf.chance(Time.delta * (reload/10 * scl))){ + if(Mathf.chance(Time.delta * (chance * scl))){ shootEffect.at(unit.x, unit.y, unit.rotation, color); Lightning.create(unit.team, color, damage, unit.x + unit.vel().x, unit.y + unit.vel().y, unit.rotation, length); shootSound.at(unit.x, unit.y); } } -} \ No newline at end of file +}