mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-07-04 15:27:30 +07:00
Increased damage and added death event with subscriber to play death sequence
This commit is contained in:
23
core/src/com/riiablo/engine/client/DeathHandler.java
Normal file
23
core/src/com/riiablo/engine/client/DeathHandler.java
Normal 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);
|
||||
}
|
||||
}
|
@ -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
|
||||
|
@ -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());
|
||||
|
Reference in New Issue
Block a user