First implementation of stasis field
This commit is contained in:
@ -0,0 +1,47 @@
|
||||
package de.frajul.endlessroll.entities.tools;
|
||||
|
||||
import de.frajul.endlessroll.data.Vector;
|
||||
import de.frajul.endlessroll.entities.DestroyEffect;
|
||||
import de.frajul.endlessroll.entities.Player;
|
||||
import de.frajul.endlessroll.entities.collision.geometry.Circle;
|
||||
import de.frajul.endlessroll.entities.collision.geometry.Geometry;
|
||||
import de.frajul.endlessroll.entities.particles.ParticleSource;
|
||||
import de.frajul.endlessroll.entities.particles.ParticleSystem;
|
||||
import de.frajul.endlessroll.main.game.Timer;
|
||||
|
||||
/**
|
||||
* Created by Julian on 11.02.2016.
|
||||
*/
|
||||
public class Stasis extends Tool {
|
||||
|
||||
private ParticleSource particleSource;
|
||||
|
||||
public Stasis(Vector position, ParticleSystem particleSystem) {
|
||||
super(ToolType.STASIS, position, .6f * ToolType.STASIS.getCurrentUpgradeValue(ToolUpgradeType.SIZE) / 100, .6f * ToolType.STASIS.getCurrentUpgradeValue(ToolUpgradeType.SIZE) / 100, false, false);
|
||||
animation.disable();
|
||||
super.setFloating(true);
|
||||
particleSource = new ParticleSource(new Vector(position), particleSystem.magnet);
|
||||
particleSource.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy(DestroyEffect destroyEffect) {
|
||||
super.destroy(destroyEffect);
|
||||
particleSource.kill();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerCollision(Player player, Timer timer) {
|
||||
player.getMovement().setY(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Geometry createWorldCollisionBounds() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Geometry createPlayerCollisionBounds() {
|
||||
return this;
|
||||
}
|
||||
}
|
@ -6,6 +6,6 @@ package de.frajul.endlessroll.entities.tools;
|
||||
|
||||
public enum ToolUpgradeType {
|
||||
|
||||
COOLDOWN, DURATION, FORCE, RANGE;
|
||||
COOLDOWN, DURATION, FORCE, RANGE, SIZE;
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user