Added teleport spell code

Spells may require encapsulation to allow easier management
This commit is contained in:
Collin Smith
2020-08-23 02:27:03 -07:00
parent 7a1c32105e
commit 55cae9cc8b

View File

@ -12,9 +12,11 @@ import com.badlogic.gdx.math.Vector2;
import com.riiablo.Riiablo; import com.riiablo.Riiablo;
import com.riiablo.codec.excel.Skills; import com.riiablo.codec.excel.Skills;
import com.riiablo.engine.Engine; import com.riiablo.engine.Engine;
import com.riiablo.engine.server.component.Box2DBody;
import com.riiablo.engine.server.component.Casting; import com.riiablo.engine.server.component.Casting;
import com.riiablo.engine.server.component.Class; import com.riiablo.engine.server.component.Class;
import com.riiablo.engine.server.component.MovementModes; import com.riiablo.engine.server.component.MovementModes;
import com.riiablo.engine.server.component.Position;
import com.riiablo.engine.server.component.Sequence; import com.riiablo.engine.server.component.Sequence;
import com.riiablo.engine.server.event.AnimDataFinishedEvent; import com.riiablo.engine.server.event.AnimDataFinishedEvent;
import com.riiablo.engine.server.event.AnimDataKeyframeEvent; import com.riiablo.engine.server.event.AnimDataKeyframeEvent;
@ -29,6 +31,10 @@ public class Actioneer extends PassiveSystem {
protected ComponentMapper<MovementModes> mMovementModes; protected ComponentMapper<MovementModes> mMovementModes;
protected ComponentMapper<Casting> mCasting; protected ComponentMapper<Casting> mCasting;
// teleport-specific components
protected ComponentMapper<Position> mPosition;
protected ComponentMapper<Box2DBody> mBox2DBody;
protected EventSystem events; protected EventSystem events;
public void cast(int entityId, int skillId, Vector2 target) { public void cast(int entityId, int skillId, Vector2 target) {
@ -92,6 +98,11 @@ public class Actioneer extends PassiveSystem {
break; break;
case 1: // attack case 1: // attack
break; break;
case 27: // teleport
mPosition.get(entityId).position.set(target);
Box2DBody box2dWrapper = mBox2DBody.get(entityId);
if (box2dWrapper != null) box2dWrapper.body.setTransform(target, 0);
break;
default: default:
log.warn("Unsupported srvdofunc({}) for {}", srvdofunc, entityId); log.warn("Unsupported srvdofunc({}) for {}", srvdofunc, entityId);
// TODO: default case will log an error when all valid cases are enumerated // TODO: default case will log an error when all valid cases are enumerated