Re-trying JITPack

This commit is contained in:
Anuken
2021-09-15 22:30:53 -04:00
parent c4fe53955b
commit e3cceea1af
9 changed files with 19 additions and 9 deletions

View File

@@ -1878,7 +1878,7 @@ public class Fx{
color(e.color);
stroke(3f * e.fout());
Lines.poly(e.x, e.y, 6, e.rotation + e.fin());
}),
}).followParent(true),
coreLandDust = new Effect(100f, e -> {
color(e.color, e.fout(0.1f));

View File

@@ -76,6 +76,10 @@ public class Effect{
create(this, pos.getX(), pos.getY(), 0, Color.white, null);
}
public void at(Position pos, boolean parentize){
create(this, pos.getX(), pos.getY(), 0, Color.white, parentize ? pos : null);
}
public void at(Position pos, float rotation){
create(this, pos.getX(), pos.getY(), rotation, Color.white, null);
}

View File

@@ -38,7 +38,7 @@ public class ForceFieldAbility extends Ability{
if(paramUnit.shield <= trait.damage()){
paramUnit.shield -= paramField.cooldown * paramField.regen;
Fx.shieldBreak.at(paramUnit.x, paramUnit.y, paramField.radius, paramUnit.team.color);
Fx.shieldBreak.at(paramUnit.x, paramUnit.y, paramField.radius, paramUnit.team.color, paramUnit);
}
paramUnit.shield -= trait.damage();

View File

@@ -34,6 +34,7 @@ public class MoveLightningAbility extends Ability{
public float bulletAngle = 0f, bulletSpread = 0f;
public Effect shootEffect = Fx.sparkShoot;
public boolean parentizeEffects;
public Sound shootSound = Sounds.spark;
protected float side = 1f;
@@ -67,7 +68,7 @@ public class MoveLightningAbility extends Ability{
if(Mathf.chance(Time.delta * chance * scl)){
float x = unit.x + Angles.trnsx(unit.rotation, offset, width * side), y = unit.y + Angles.trnsy(unit.rotation, offset, width * side);
shootEffect.at(x, y, unit.rotation, color);
shootEffect.at(x, y, unit.rotation, color, parentizeEffects ? unit : null);
shootSound.at(unit);
if(length > 0){

View File

@@ -9,6 +9,7 @@ public class RepairFieldAbility extends Ability{
public float amount = 1, reload = 100, range = 60;
public Effect healEffect = Fx.heal;
public Effect activeEffect = Fx.healWaveDynamic;
public boolean parentizeEffects = false;
protected float timer;
protected boolean wasHealed = false;
@@ -30,7 +31,7 @@ public class RepairFieldAbility extends Ability{
Units.nearby(unit.team, unit.x, unit.y, range, other -> {
if(other.damaged()){
healEffect.at(other);
healEffect.at(other, parentizeEffects);
wasHealed = true;
}
other.heal(amount);

View File

@@ -9,6 +9,7 @@ public class ShieldRegenFieldAbility extends Ability{
public float amount = 1, max = 100f, reload = 100, range = 60;
public Effect applyEffect = Fx.shieldApply;
public Effect activeEffect = Fx.shieldWave;
public boolean parentizeEffects;
protected float timer;
protected boolean applied = false;
@@ -33,7 +34,7 @@ public class ShieldRegenFieldAbility extends Ability{
if(other.shield < max){
other.shield = Math.max(other.shield + amount, max);
other.shieldAlpha = 1f; //TODO may not be necessary
applyEffect.at(unit.x, unit.y, unit.team.color);
applyEffect.at(unit.x, unit.y, 0f, unit.team.color, parentizeEffects ? other : null);
applied = true;
}
});

View File

@@ -10,8 +10,9 @@ import mindustry.type.*;
public class StatusFieldAbility extends Ability{
public StatusEffect effect;
public float duration = 60, reload = 100, range = 20;
public Effect applyEffect = Fx.heal;
public Effect applyEffect = Fx.none;
public Effect activeEffect = Fx.overdriveWave;
public boolean parentizeEffects;
protected float timer;
@@ -36,9 +37,10 @@ public class StatusFieldAbility extends Ability{
if(timer >= reload){
Units.nearby(unit.team, unit.x, unit.y, range, other -> {
other.apply(effect, duration);
applyEffect.at(other, parentizeEffects);
});
activeEffect.at(unit);
activeEffect.at(unit, parentizeEffects);
timer = 0f;
}

View File

@@ -18,6 +18,7 @@ public class UnitSpawnAbility extends Ability{
public UnitType unit;
public float spawnTime = 60f, spawnX, spawnY;
public Effect spawnEffect = Fx.spawn;
public boolean parentizeEffects;
protected float timer;
@@ -37,7 +38,7 @@ public class UnitSpawnAbility extends Ability{
if(timer >= spawnTime && Units.canCreate(unit.team, this.unit)){
float x = unit.x + Angles.trnsx(unit.rotation, spawnY, spawnX), y = unit.y + Angles.trnsy(unit.rotation, spawnY, spawnX);
spawnEffect.at(x, y);
spawnEffect.at(x, y, 0f, parentizeEffects ? unit : null);
Unit u = this.unit.create(unit.team);
u.set(x, y);
u.rotation = unit.rotation;