Increased damage and added death event with subscriber to play death sequence

This commit is contained in:
Collin Smith
2020-09-10 17:31:41 -07:00
parent f3c9ff82aa
commit bfcee599bf
3 changed files with 28 additions and 1 deletions

View File

@ -0,0 +1,23 @@
package com.riiablo.engine.client;
import com.artemis.ComponentMapper;
import net.mostlyoriginal.api.event.common.Subscribe;
import net.mostlyoriginal.api.system.core.PassiveSystem;
import com.riiablo.engine.Engine;
import com.riiablo.engine.server.component.Sequence;
import com.riiablo.engine.server.event.DeathEvent;
import com.riiablo.logger.LogManager;
import com.riiablo.logger.Logger;
public class DeathHandler extends PassiveSystem {
private static final Logger log = LogManager.getLogger(DeathHandler.class);
protected ComponentMapper<Sequence> mSequence;
@Subscribe
public void onDeathEvent(DeathEvent event) {
log.traceEntry("onDeathEvent(killer: {}, victim: {})", event.killer, event.victim);
mSequence.create(event.victim).sequence(Engine.Monster.MODE_DT, Engine.Monster.MODE_DD);
}
}

View File

@ -23,6 +23,7 @@ import com.riiablo.engine.server.component.Position;
import com.riiablo.engine.server.component.Sequence;
import com.riiablo.engine.server.event.AnimDataFinishedEvent;
import com.riiablo.engine.server.event.AnimDataKeyframeEvent;
import com.riiablo.engine.server.event.DeathEvent;
import com.riiablo.engine.server.event.SkillCastEvent;
import com.riiablo.engine.server.event.SkillDoEvent;
import com.riiablo.engine.server.event.SkillStartEvent;
@ -128,7 +129,7 @@ public class Actioneer extends PassiveSystem {
StatRef hitpoints = attrs.get(Stat.hitpoints);
log.debug("{} {}", targetId, hitpoints.asFixed());
hitpoints.sub(10f);
hitpoints.sub(50f);
log.debug("{} {}", targetId, hitpoints.asFixed());
if (Fixed.isNegative(hitpoints.encodedValues())) {
@ -137,6 +138,7 @@ public class Actioneer extends PassiveSystem {
if (hitpoints.asFixed() <= 0f) {
log.debug("{} is dead!", targetId);
events.dispatch(DeathEvent.obtain(entityId, targetId));
}
break;
case 27: // teleport

View File

@ -57,6 +57,7 @@ import com.riiablo.engine.client.CofResolver;
import com.riiablo.engine.client.CofTransformHandler;
import com.riiablo.engine.client.CofUnloader;
import com.riiablo.engine.client.CursorMovementSystem;
import com.riiablo.engine.client.DeathHandler;
import com.riiablo.engine.client.DialogManager;
import com.riiablo.engine.client.DirectionResolver;
import com.riiablo.engine.client.FootstepEmitter;
@ -577,6 +578,7 @@ public class GameScreen extends ScreenAdapter implements GameLoadingScreen.Loada
.with(new SkillCastHandler()) // TODO: move to more appropriate spot in list
.with(new OverlayManager()) // TODO: move to more appropriate spot in list
.with(new OverlayStepper()) // TODO: move to more appropriate spot in list
.with(new DeathHandler()) // TODO: move to more appropriate spot in list
;
if (socket == null) {
builder.with(new ItemGenerator());