Class RangedTurret

All Implemented Interfaces:
org.kingdoms.abstraction.LandOperator, org.kingdoms.abstraction.PlayerOperator
Direct Known Subclasses:
SoldierTurret, TargetedRangedTurret

public class RangedTurret extends Turret implements org.kingdoms.abstraction.PlayerOperator
  • Field Details

  • Constructor Details

  • Method Details

    • invalidateCachedTargets

      public void invalidateCachedTargets()
    • getCachedTargets

      public TickedCache<Collection<org.bukkit.entity.Entity>> getCachedTargets()
    • getAmmo

      public int getAmmo()
    • setAmmo

      public void setAmmo(int ammo)
    • postActivation

      public void postActivation(Kingdom kingdom)
    • isOutOfAmmo

      public boolean isOutOfAmmo()
    • addAmmo

      public int addAmmo(int amount)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class KingdomItem<TurretStyle>
    • getProjectile

      public org.bukkit.entity.EntityType getProjectile()
    • getSpeed

      public double getSpeed(Kingdom kingdom)
    • getSpeed

      public double getSpeed(Kingdom kingdom, int lvl)
    • checkup

      public boolean checkup()
      Overrides:
      checkup in class Turret
    • passThroughLevel

      public int passThroughLevel(Kingdom kingdom)
    • canPassThrough

      public boolean canPassThrough(Kingdom kingdom)
    • targetCheckup

      public boolean targetCheckup(org.bukkit.entity.LivingEntity target)
      Overrides:
      targetCheckup in class Turret
    • getTags

      public Pair<org.bukkit.inventory.ItemStack,NBTTagCompound> getTags()
      Overrides:
      getTags in class KingdomItem<TurretStyle>
    • setDataFromNBT

      public void setDataFromNBT(NBTTagCompound tag)
      Overrides:
      setDataFromNBT in class KingdomItem<TurretStyle>
    • setOperator

      public void setOperator(org.bukkit.entity.Player operator)
    • getOperator

      public org.bukkit.entity.Player getOperator()
    • getEdits

      public MessageBuilder getEdits(Kingdom kingdom)
      Overrides:
      getEdits in class Turret
    • remove

      public KingdomItemBreakEvent<?> remove(org.kingdoms.events.items.KingdomItemRemoveContext context)
      Overrides:
      remove in class KingdomItem<TurretStyle>
    • getRange

      public double getRange(Kingdom kingdom, int lvl)
    • getRange

      public double getRange(Kingdom kingdom)
    • getRangeCached

      public double getRangeCached(Kingdom kingdom)
    • getCooldown

      public int getCooldown(Kingdom kingdom, int lvl)
    • getCooldown

      public int getCooldown(Kingdom kingdom)
    • getAmmoCost

      public int getAmmoCost(Kingdom kingdom)
    • getMaxAmmo

      public int getMaxAmmo(Kingdom kingdom)
    • getMaxAmmo

      public int getMaxAmmo(Kingdom kingdom, int lvl)
    • getMaxTargets

      public int getMaxTargets(Kingdom kingdom, int lvl)
    • getMaxTargets

      public int getMaxTargets(Kingdom kingdom)
    • getCooldown

      public int getCooldown()
      The cooldown between each shot (depending on the turret's update ticks which is a configurable option.)
      Returns:
      a positive number if the turret is still in cooldown or a negative number depending on the ticks past the normal cooldown (how long the turret didn't shoot since the cooldown ended.)
    • setCooldown

      public void setCooldown(int cooldown)
    • tick

      public int tick()
    • serialize

      public void serialize(SerializationContext<org.kingdoms.data.database.dataprovider.SectionableDataSetter> context)
      Overrides:
      serialize in class KingdomItem<TurretStyle>
    • shootEntity

      public org.bukkit.entity.Entity shootEntity(org.bukkit.entity.EntityType type, Kingdom kingdom, org.bukkit.Location from, org.bukkit.util.Vector direction)
    • setMetadata

      protected static void setMetadata(org.bukkit.entity.Entity entity, RangedTurret turret, Kingdom kingdom)
    • repeatedParticle

      public void repeatedParticle(Turret turret, org.bukkit.entity.Entity entity)
    • isManual

      public boolean isManual()
    • setManual

      public void setManual(boolean manual)
    • getPlayer

      @Nullable public @Nullable KingdomPlayer getPlayer()
      Specified by:
      getPlayer in interface org.kingdoms.abstraction.PlayerOperator