initial commit
This commit is contained in:
parent
3c9ee26b06
commit
22186c33b9
1458 changed files with 282792 additions and 0 deletions
249
java/src/game/entity/DamageSource.java
Executable file
249
java/src/game/entity/DamageSource.java
Executable file
|
@ -0,0 +1,249 @@
|
|||
package game.entity;
|
||||
|
||||
import game.color.TextColor;
|
||||
import game.entity.projectile.EntityProjectile;
|
||||
import game.entity.types.EntityLiving;
|
||||
import game.world.Explosion;
|
||||
|
||||
public class DamageSource
|
||||
{
|
||||
public static final DamageSource inFire =
|
||||
(new DamageSource(TextColor.ORANGE, "%s ging in Flammen auf", "%s lief ins Feuer, während er mit %s kämpfte", "%s ins Feuer gelaufen")).setFireDamage();
|
||||
public static final DamageSource onFire =
|
||||
(new DamageSource(TextColor.ORANGE, "%s wurde zu heiß und verbrannte", "%s wurde während des Kampfes mit %s geröstet", "%s geröstet")).setDamageBypassesArmor().setFireDamage();
|
||||
public static final DamageSource hotLiquid =
|
||||
(new DamageSource(TextColor.ORANGE, "%s versuchte in einer unangenehm brennenden Flüssigkeit zu schwimmen", "%s fiel beim Versuch %s zu entkommen in eine unangenehm brennende Flüssigkeit", "%s in unangenehm brennender Flüssigkeit gelandet")).setFireDamage();
|
||||
public static final DamageSource molten =
|
||||
(new DamageSource(TextColor.ORANGE, "%s versuchte dem Magmaregen zu trotzen", "%s geriet beim Versuch %s zu entkommen in Magmaregen", "%s in Magmaregen geraten")).setFireDamage();
|
||||
public static final DamageSource inWall =
|
||||
(new DamageSource(TextColor.GRAY, "%s wurde lebendig begraben")).setDamageBypassesArmor();
|
||||
public static final DamageSource dry =
|
||||
(new DamageSource(TextColor.GRAY, "%s ist vertrocknet", "%s ist beim Versuch %s zu entkommen vertrocknet", "%s vertrocknet")).setDamageBypassesArmor();
|
||||
public static final DamageSource cactus =
|
||||
new DamageSource(TextColor.ORK, "%s wurde zu Tode gestochen", "%s rannte beim Versuch %s zu entkommen in einen Kaktus", "%s in Kaktus gerannt");
|
||||
public static final DamageSource fall =
|
||||
(new DamageSource(TextColor.NEON, "%s fiel der Schwerkraft zum Opfer")).setDamageBypassesArmor();
|
||||
public static final DamageSource outOfWorld =
|
||||
(new DamageSource(TextColor.DGRAY, "%s fiel aus der Welt")).setDamageBypassesArmor();
|
||||
public static final DamageSource generic =
|
||||
(new DamageSource(TextColor.LGRAY, "%s starb")).setDamageBypassesArmor();
|
||||
public static final DamageSource magic =
|
||||
(new DamageSource(TextColor.DMAGENTA, "%s wurde durch Magie getötet")).setDamageBypassesArmor().setMagicDamage();
|
||||
public static final DamageSource anvil =
|
||||
new DamageSource(TextColor.DRED, "%s wurde von einem fallenden Amboss zerquetscht");
|
||||
public static final DamageSource fallingBlock =
|
||||
new DamageSource(TextColor.GRAY, "%s wurde von einem fallenden Block zerquetscht");
|
||||
public static final DamageSource radiation =
|
||||
(new DamageSource(TextColor.GREEN, "%s hat seine Halbwertszeit nicht rechtzeitig erreicht")).setDamageBypassesArmor();
|
||||
|
||||
protected final String display;
|
||||
protected final String displayExtra;
|
||||
protected final String displayKill;
|
||||
protected final TextColor color;
|
||||
|
||||
private boolean isUnblockable;
|
||||
private boolean fireDamage;
|
||||
private boolean projectile;
|
||||
private boolean magicDamage;
|
||||
private boolean explosion;
|
||||
|
||||
public static DamageSource causeMobDamage(EntityLiving mob)
|
||||
{
|
||||
return new EntityDamageSource(TextColor.CRIMSON, "%s wurde von %s erschlagen", "%s wurde von %s mit %s erschlagen",
|
||||
"%s erschlagen", "%s mit %s erschlagen", mob);
|
||||
}
|
||||
|
||||
public static DamageSource causeLightningDamage(EntityLiving mob)
|
||||
{
|
||||
return mob == null ? new DamageSource(TextColor.YELLOW, "%s wurde vom Blitz getroffen und gegrillt") :
|
||||
new EntityDamageSource(TextColor.YELLOW, "%s wurde von %s gegrillt", "%s wurde von %s mit %s gegrillt",
|
||||
"%s gegrillt", "%s mit %s gegrillt", mob);
|
||||
}
|
||||
|
||||
public static DamageSource causeExterminatusDamage(EntityLiving mob)
|
||||
{
|
||||
return mob == null ? new DamageSource(TextColor.DRED, "%s wurde vernichtet") :
|
||||
new EntityDamageSource(TextColor.DRED, "%s wurde von %s vernichtet", "%s wurde von %s mit %s vernichtet",
|
||||
"%s vernichtet", "%s mit %s vernichtet", mob);
|
||||
}
|
||||
|
||||
public static DamageSource causeShotDamage(Entity projectile, Entity shooter)
|
||||
{
|
||||
return (new EntityDamageSourceIndirect(TextColor.RED, "%s wurde von %s erschossen", "%s wurde von %s mit %s erschossen", "%s erschossen", "%s mit %s erschossen", projectile, shooter)).setProjectile();
|
||||
}
|
||||
|
||||
public static DamageSource causeFireballDamage(EntityProjectile fireball, Entity shooter)
|
||||
{
|
||||
return shooter == null ? (new EntityDamageSourceIndirect(TextColor.YELLOW, "%s wurde von %s flambiert", fireball)).setFireDamage().setProjectile() : (new EntityDamageSourceIndirect(TextColor.YELLOW, "%s wurde von %s flambiert", "%s wurde von %s mit %s flambiert", "%s flambiert", "%s mit %s flambiert", fireball, shooter)).setFireDamage().setProjectile();
|
||||
}
|
||||
|
||||
public static DamageSource causeThrownDamage(Entity source, Entity thrower)
|
||||
{
|
||||
return (new EntityDamageSourceIndirect(TextColor.DGREEN, "%s wurde von %s zu Tode geprügelt", "%s wurde von %s mit %s zu Tode geprügelt", "%s zu Tode geprügelt", "%s mit %s zu Tode geprügelt", source, thrower)).setProjectile();
|
||||
}
|
||||
|
||||
public static DamageSource causeTeleFragDamage(Entity source, Entity replacer)
|
||||
{
|
||||
return (new EntityDamageSourceIndirect(TextColor.MAGENTA, "%s wurde von %s verdrängt", "%s wurde von %s mit %s verdrängt", "%s verdrängt", "%s mit %s verdrängt", source, replacer)).setDamageBypassesArmor();
|
||||
}
|
||||
|
||||
public static DamageSource causeIndirectMagicDamage(Entity source, Entity mage)
|
||||
{
|
||||
return (new EntityDamageSourceIndirect(TextColor.DMAGENTA, "%s wurde von %s mit Magie getötet", "%s wurde von %s mit %s getötet", "%s mit Magie getötet", "%s mit %s getötet", source, mage)).setDamageBypassesArmor().setMagicDamage();
|
||||
}
|
||||
|
||||
public static DamageSource causeThornsDamage(Entity source)
|
||||
{
|
||||
return (new EntityDamageSource(TextColor.ORK, "%s wurde beim Versuch %s zu verletzen getötet", "%s durch Dornen getötet", source)).setIsThornsDamage().setMagicDamage();
|
||||
}
|
||||
|
||||
public static DamageSource causeExplosionDamage(Explosion explosion)
|
||||
{
|
||||
return explosion != null && explosion.getExplosivePlacedBy() != null ? (new EntityDamageSource(TextColor.YELLOW, "%s wurde durch %s in die Luft gesprengt", "%s in die Luft gesprengt", explosion.getExplosivePlacedBy())).setExplosion() : (new DamageSource(TextColor.YELLOW, "%s wurde in die Luft gesprengt")).setExplosion();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the damage is projectile based.
|
||||
*/
|
||||
public boolean isProjectile()
|
||||
{
|
||||
return this.projectile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the damage type as projectile based.
|
||||
*/
|
||||
public DamageSource setProjectile()
|
||||
{
|
||||
this.projectile = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isExplosion()
|
||||
{
|
||||
return this.explosion;
|
||||
}
|
||||
|
||||
public DamageSource setExplosion()
|
||||
{
|
||||
this.explosion = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isUnblockable()
|
||||
{
|
||||
return this.isUnblockable;
|
||||
}
|
||||
|
||||
protected DamageSource(TextColor color, String display, String extra, String kill)
|
||||
{
|
||||
this.color = color;
|
||||
this.display = this.color + display;
|
||||
this.displayExtra = this.color + extra;
|
||||
this.displayKill = this.color + "* " + kill;
|
||||
}
|
||||
|
||||
protected DamageSource(TextColor color, String display)
|
||||
{
|
||||
this(color, display, display, "");
|
||||
}
|
||||
|
||||
public Entity getSourceOfDamage()
|
||||
{
|
||||
return this.getEntity();
|
||||
}
|
||||
|
||||
public Entity getEntity()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
protected DamageSource setDamageBypassesArmor()
|
||||
{
|
||||
this.isUnblockable = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the damage type as fire based.
|
||||
*/
|
||||
protected DamageSource setFireDamage()
|
||||
{
|
||||
this.fireDamage = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the death message that is displayed when the player dies
|
||||
*
|
||||
* @param victim The EntityLivingBase that died
|
||||
*/
|
||||
public String getDeathMessage(EntityLiving victim)
|
||||
{
|
||||
EntityLiving killer = victim.getAttackingEntity();
|
||||
// String s = this.display;
|
||||
// String s1 = s + "Player";
|
||||
return killer != null ? String.format(this.displayExtra, victim.getColoredName(this.color), killer.getColoredName(this.color)) : String.format(this.display, victim.getColoredName(this.color));
|
||||
}
|
||||
|
||||
public String getKillMessage(EntityLiving victim)
|
||||
{
|
||||
return String.format(this.displayKill, victim.getColoredName(this.color));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the damage is fire based.
|
||||
*/
|
||||
public boolean isFireDamage()
|
||||
{
|
||||
return this.fireDamage;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Return the name of damage type.
|
||||
// */
|
||||
// public String getDamageType()
|
||||
// {
|
||||
// return this.damageType;
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * Set whether this damage source will have its damage amount scaled based on the current difficulty.
|
||||
// */
|
||||
// public DamageSource setDifficultyScaled()
|
||||
// {
|
||||
// this.difficultyScaled = true;
|
||||
// return this;
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * Return whether this damage source will have its damage amount scaled based on the current difficulty.
|
||||
// */
|
||||
// public boolean isDifficultyScaled()
|
||||
// {
|
||||
// return this.difficultyScaled;
|
||||
// }
|
||||
|
||||
/**
|
||||
* Returns true if the damage is magic based.
|
||||
*/
|
||||
public boolean isMagicDamage()
|
||||
{
|
||||
return this.magicDamage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the damage type as magic based.
|
||||
*/
|
||||
public DamageSource setMagicDamage()
|
||||
{
|
||||
this.magicDamage = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
// public boolean isCreativePlayer()
|
||||
// {
|
||||
// Entity entity = this.getEntity();
|
||||
// return entity.isPlayer() && ((EntityNPC)entity).creative;
|
||||
// }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue