-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
101 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package core.event.game.damage; | ||
|
||
import core.server.game.Damage; | ||
|
||
public class SourceHeroOnDamageEvent extends AbstractDamageEvent { | ||
|
||
public SourceHeroOnDamageEvent(Damage damage) { | ||
super(damage); | ||
} | ||
|
||
} |
47 changes: 47 additions & 0 deletions
47
src/core/event/handlers/hero/WeiYanRampageOnDamageEventHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
package core.event.handlers.hero; | ||
|
||
import core.event.game.damage.SourceHeroOnDamageEvent; | ||
import core.event.handlers.AbstractEventHandler; | ||
import core.player.PlayerCompleteServer; | ||
import core.server.game.GameDriver; | ||
import core.server.game.GameInternal; | ||
import core.server.game.controllers.AbstractSingleStageGameController; | ||
import core.server.game.controllers.mechanics.HealGameController; | ||
import exceptions.server.game.GameFlowInterruptedException; | ||
|
||
public class WeiYanRampageOnDamageEventHandler extends AbstractEventHandler<SourceHeroOnDamageEvent> { | ||
|
||
public WeiYanRampageOnDamageEventHandler(PlayerCompleteServer player) { | ||
super(player); | ||
} | ||
|
||
@Override | ||
public Class<SourceHeroOnDamageEvent> getEventClass() { | ||
return SourceHeroOnDamageEvent.class; | ||
} | ||
|
||
@Override | ||
protected void handleIfActivated(SourceHeroOnDamageEvent event, GameDriver game) throws GameFlowInterruptedException { | ||
if (this.player != event.getDamage().getSource()) { | ||
return; | ||
} | ||
|
||
game.pushGameController(new AbstractSingleStageGameController() { | ||
@Override | ||
protected void handleOnce(GameInternal game) throws GameFlowInterruptedException { | ||
if (!player.isDamaged()) { | ||
// can't heal if source player at full health | ||
return; | ||
} | ||
|
||
if (player.isPlayerInDistance(event.getDamage().getTarget(), game.getNumberOfPlayersAlive())) { | ||
// heal up to the same as damage | ||
int healAmount = Math.min(player.getHealthLimit() - player.getHealthCurrent(), event.getDamage().getAmount()); | ||
game.pushGameController(new HealGameController(player, player, healAmount)); | ||
} | ||
} | ||
}); | ||
|
||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package core.heroes.original; | ||
|
||
import core.heroes.skills.WeiYanRampageHeroSkill; | ||
|
||
public class WeiYan extends AbstractHero { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
public WeiYan() { | ||
super(4, Faction.SHU, Gender.MALE, "Wei Yan", new WeiYanRampageHeroSkill()); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
package core.heroes.skills; | ||
|
||
import core.event.handlers.hero.WeiYanRampageOnDamageEventHandler; | ||
import core.player.PlayerCompleteServer; | ||
import core.server.game.GameInternal; | ||
|
||
public class WeiYanRampageHeroSkill extends AbstractPassiveSkill { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
public String getName() { | ||
return "Rampage"; | ||
} | ||
|
||
@Override | ||
public String getDescription() { | ||
return "You heal 1HP for each 1 damage you deal to a player within 1 distance of you"; | ||
} | ||
|
||
@Override | ||
public void onGameReady(GameInternal game, PlayerCompleteServer owner) { | ||
game.registerEventHandler(new WeiYanRampageOnDamageEventHandler(owner)); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters