90 lines
3.1 KiB
Java
90 lines
3.1 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* com.jme3.light.Light
|
|
* com.jme3.math.Vector3f
|
|
* com.jme3.post.SceneProcessor
|
|
* com.jme3.renderer.RenderManager
|
|
* com.jme3.renderer.ViewPort
|
|
* com.jme3.scene.control.AbstractControl
|
|
* com.jme3.scene.control.Control
|
|
*/
|
|
package mygame;
|
|
|
|
import com.jme3.light.Light;
|
|
import com.jme3.math.Vector3f;
|
|
import com.jme3.post.SceneProcessor;
|
|
import com.jme3.renderer.RenderManager;
|
|
import com.jme3.renderer.ViewPort;
|
|
import com.jme3.scene.control.AbstractControl;
|
|
import com.jme3.scene.control.Control;
|
|
import mygame.Exchange;
|
|
import mygame.Fireball;
|
|
import mygame.WalkingEnemy;
|
|
|
|
public class FireballControl
|
|
extends AbstractControl {
|
|
protected void controlUpdate(float tpf) {
|
|
WalkingEnemy enemy;
|
|
Fireball fireball = (Fireball)this.spatial;
|
|
if (!fireball.explode) {
|
|
fireball.bodyControl.setWalkDirection(fireball.direction);
|
|
} else {
|
|
fireball.bodyControl.setWalkDirection(Vector3f.ZERO);
|
|
}
|
|
Vector3f lightpos = fireball.collisionGhost.getPhysicsLocation();
|
|
lightpos.setY(0.5f);
|
|
fireball.light.setPosition(lightpos);
|
|
int i = 0;
|
|
while (true) {
|
|
Exchange cfr_ignored_0 = fireball.exchange;
|
|
if (i >= Exchange.enemies.size()) break;
|
|
Exchange cfr_ignored_1 = fireball.exchange;
|
|
enemy = Exchange.enemies.get(i);
|
|
if (fireball.collisionGhost.getOverlappingObjects().contains(enemy.ghost)) {
|
|
fireball.explode = true;
|
|
}
|
|
++i;
|
|
}
|
|
if (fireball.explode) {
|
|
i = 0;
|
|
while (true) {
|
|
Exchange cfr_ignored_2 = fireball.exchange;
|
|
if (i >= Exchange.enemies.size()) break;
|
|
Exchange cfr_ignored_3 = fireball.exchange;
|
|
enemy = Exchange.enemies.get(i);
|
|
if (fireball.damageAreaGhost.getOverlappingObjects().contains(enemy.ghost)) {
|
|
enemy.doDamage(100.0f);
|
|
fireball.explode();
|
|
}
|
|
++i;
|
|
}
|
|
}
|
|
fireball.lifetime -= tpf;
|
|
if (fireball.lifetime <= 0.0f && !fireball.explode) {
|
|
fireball.explode();
|
|
}
|
|
if (fireball.timer > 0.0f) {
|
|
fireball.timer += tpf;
|
|
if ((double)fireball.timer > 0.2) {
|
|
fireball.bodyControl.setEnabled(false);
|
|
fireball.removeControl((Control)fireball.bodyControl);
|
|
fireball.removeControl((Control)fireball.collisionGhost);
|
|
fireball.collisionGhost.setEnabled(false);
|
|
fireball.removeControl((Control)fireball.damageAreaGhost);
|
|
fireball.damageAreaGhost.setEnabled(false);
|
|
fireball.fire.setEnabled(false);
|
|
}
|
|
if (fireball.timer > 2.0f) {
|
|
fireball.removeFromParent();
|
|
Exchange.viewPort.removeProcessor((SceneProcessor)fireball.dlsr);
|
|
Exchange.rootNode.removeLight((Light)fireball.light);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void controlRender(RenderManager rm, ViewPort vp) {
|
|
}
|
|
}
|