Files

153 lines
5.2 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* com.jme3.animation.AnimControl
* com.jme3.animation.LoopMode
* com.jme3.app.Application
* com.jme3.asset.AssetManager
* com.jme3.audio.AudioNode
* com.jme3.bullet.collision.shapes.CapsuleCollisionShape
* com.jme3.bullet.collision.shapes.CollisionShape
* com.jme3.bullet.control.BetterCharacterControl
* com.jme3.bullet.control.GhostControl
* com.jme3.effect.ParticleEmitter
* com.jme3.effect.ParticleMesh$Type
* com.jme3.material.Material
* com.jme3.math.ColorRGBA
* com.jme3.math.Vector3f
* com.jme3.scene.Spatial
* com.jme3.scene.control.Control
* tonegod.gui.core.Screen
*/
package mygame;
import com.jme3.animation.AnimControl;
import com.jme3.animation.LoopMode;
import com.jme3.app.Application;
import com.jme3.asset.AssetManager;
import com.jme3.audio.AudioNode;
import com.jme3.bullet.collision.shapes.CapsuleCollisionShape;
import com.jme3.bullet.collision.shapes.CollisionShape;
import com.jme3.bullet.control.BetterCharacterControl;
import com.jme3.bullet.control.GhostControl;
import com.jme3.effect.ParticleEmitter;
import com.jme3.effect.ParticleMesh;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.scene.Spatial;
import com.jme3.scene.control.Control;
import mygame.Character;
import mygame.Exchange;
import mygame.WalkingEnemyControl;
import tonegod.gui.core.Screen;
public class WalkingEnemy
extends Character {
public BetterCharacterControl walkingEnemyControl;
public GhostControl ghost;
private WalkingEnemyControl control = new WalkingEnemyControl();
private float health;
private AssetManager assetManager;
public float reverseWalk;
public ParticleEmitter blood;
public boolean dead = false;
public float deadtimer = 0.0f;
public WalkingEnemy(String name) {
super(name);
this.addControl((Control)this.control);
}
public WalkingEnemy(String name, AssetManager am) {
super(name);
this.addControl((Control)this.control);
this.assetManager = am;
}
public void setupModelControl() {
this.modelAnimControl = (AnimControl)this.model.getControl(AnimControl.class);
this.modelAnimChannel = this.modelAnimControl.createChannel();
this.modelAnimChannel.setAnim("stand");
}
public void setupGUI() {
Screen screen = new Screen((Application)Exchange.app, "tonegod/gui/style/def/style_map.xml");
}
public void setModel(Spatial model) {
this.model = model;
this.setupModel();
this.setupControl();
this.setupModelControl();
this.wholeBody.attachChild(this.model);
this.blood = new ParticleEmitter("Emitter", ParticleMesh.Type.Triangle, 10);
Material mat_red = this.assetManager.loadMaterial("Materials/blood.j3m");
this.blood.setMaterial(mat_red);
this.blood.setImagesX(2);
this.blood.setImagesY(2);
this.blood.setEndColor(new ColorRGBA(1.0f, 0.0f, 0.0f, 0.75f));
this.blood.setStartColor(new ColorRGBA(1.0f, 0.0f, 0.0f, 0.25f));
this.blood.getParticleInfluencer().setInitialVelocity(new Vector3f(1.0f, 2.0f, 1.0f));
this.blood.setParticlesPerSec(0.0f);
this.blood.setStartSize(1.0f);
this.blood.setEndSize(1.0f);
this.blood.setGravity(0.0f, 2.0f, 0.0f);
this.blood.setLowLife(1.0f);
this.blood.setHighLife(0.5f);
this.blood.getParticleInfluencer().setVelocityVariation(0.3f);
this.blood.setRandomAngle(true);
this.blood.setSelectRandomImage(true);
this.attachChild((Spatial)this.blood);
}
void setupModel() {
this.model.setLocalScale(0.5f);
this.wholeBody.attachChild(this.model);
}
private void setupControl() {
this.walkingEnemyControl = new BetterCharacterControl(1.0f, 2.0f, 8.0f);
this.addControl((Control)this.walkingEnemyControl);
this.ghost = new GhostControl((CollisionShape)new CapsuleCollisionShape(1.0f, 0.5f));
this.ghost.addCollideWithGroup(1);
this.addControl((Control)this.ghost);
}
public float getHealth() {
return this.health;
}
public void setHealth(float health) {
this.health = health;
}
public void doDamage(float damage) {
this.health -= damage;
this.reverseWalk = 0.5f;
if (this.health <= 0.0f) {
this.die();
}
AudioNode hit = new AudioNode(this.assetManager, "Sounds/Effects/damage.ogg", false);
hit.setLooping(false);
hit.setVolume(100.0f);
this.getParent().attachChild((Spatial)hit);
hit.play();
this.blood.emitAllParticles();
}
public void die() {
this.modelAnimChannel.setAnim("die");
this.modelAnimChannel.setLoopMode(LoopMode.DontLoop);
this.ghost.setEnabled(false);
this.walkingEnemyControl.setEnabled(false);
AudioNode an = (AudioNode)this.getChild("walkingSound");
an.stop();
Exchange.removeEnemy(this);
Exchange.setKilled(Exchange.killed + 1);
Exchange.spawnItem(this.getLocalTranslation());
this.dead = true;
}
}