Package com.prineside.tdi2
Class Tower
java.lang.Object
com.prineside.tdi2.Registrable
com.prineside.tdi2.Building
com.prineside.tdi2.Tower
- All Implemented Interfaces:
 Disposable,KryoSerializable,ScheduledUpdater.Updatable
- Direct Known Subclasses:
 AirTower,BasicTower,BlastTower,CannonTower,CrusherTower,FlamethrowerTower,FreezingTower,GaussTower,LaserTower,MinigunTower,MissileTower,MultishotTower,SniperTower,SplashTower,TeslaTower,VenomTower
- 
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic enumstatic classTower.Factory<T extends Tower>static class - 
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final String[]floatbooleanfloatintfloatfloatstatic final floatstatic final intfloat[]float[]intfloatfloatfloatintboolean[]intstatic final int[]static final int[]static final intstatic final intfloatfloatintfloatfloatstatic final ColorintFields inherited from class com.prineside.tdi2.Building
buildingTypeFields inherited from class com.prineside.tdi2.Registrable
S - 
Method Summary
Modifier and TypeMethodDescriptionvoidaddExperience(float exp) voidapplyDrawInterpolation(float interpolatedTime) voidattack(int shotCount) voidcalculateXpLevel(boolean ignoreLevelLimits) Calculate level, nextLevelExperience and currentLevelExperience based on experience.booleancanAbilityBeInstalled(int idx) abstract booleancanAim()booleanbooleancanAttackEnemy(Enemy enemy) booleanvoidcustomButtonAction(int mapX, int mapY) voiddispose()Releases all resources of this object.voiddrawAbilitiesToCache(Batch batch, float x, float y, float width, float height, MapRenderingSystem.DrawMode drawMode) final voiddrawBase(Batch batch, float x, float y, float width, float height, MapRenderingSystem.DrawMode drawMode) voidvoiddrawBatchAdditive(Batch batch, float deltaTime) voiddrawGlitch(Batch batch) voiddrawHoveredRange(Batch batch, RangeCircle rangeCircle) voiddrawSelectedRange(Batch batch, RangeCircle rangeCircle) voiddrawWeapon(Batch batch, float x, float y, float size, float deltaTime) voidfillTowerMenu(Group container, ObjectMap<String, Object> elements) Добавить / обновить элементы в меню башни Вызывается каждый кадр, когда видно меню башни elements сохраняется между вызовами метода, чтобы не создавать актеров заново.findTarget(ObjectFilter<Enemy> filter) floatintgetEnemyPriority(Enemy enemy) 0 - lowest priority (with lowAimPriority) 10 - regular prioritystatic floatgetExpLevelStatBonusPercentage(int expLevel, TowerType towerType, GameValueProvider gvp) intgetLevel()static intgetLevelForExperience(float exp) intintfloatfloatfloatgetRange()floatintintfinal floatgetStat(TowerStatType towerStatType) intfloatabstract QuadbooleanТолько если canAim = falsebooleanisAbilityInstalled(int abilityIdx) booleanbooleanbooleanbooleanisStatAffectedByPower(TowerStatType towerStatType) voidloadFromJson(JsonValue value) voidonAbilitySet(int abilityIdx, boolean isSet) voidvoidvoidvoidvoidrotateTo(float needAngle, float deltaTime, float rotationSpeed) voidrotateTo(float x, float y, float deltaTime, float rotationSpeed) booleanfinal intfinal voidscheduledUpdatableSetId(int id) voidscheduledUpdate(float deltaTime) voidsetAimStrategy(Tower.AimStrategy aimStrategy) voidsetExperience(float exp) Установка опыта напрямуюvoidsetLevel(int level) voidvoidvoidvoidsetUpgradeLevel(int toLevel) Set tower's upgrade level directly, without validation / cache updatesbooleanvoidВнутри writeObjectStartvoidupdate(float deltaTime) voidОбновляет кэш текущих характеристик башни Так как характеристики обновляются, одновременно обновляется массив тайлов в радиусе пораженияvoidupdateCustomButton(ComplexButton complexButton, boolean isPointing) voidupgrade()voidupgrade(int toLevel) voidMethods inherited from class com.prineside.tdi2.Registrable
isRegistered 
- 
Field Details
- 
ABILITY_INDEX_SPECIAL
public static final int ABILITY_INDEX_SPECIAL- See Also:
 
 - 
ABILITY_INDEX_ULTIMATE
public static final int ABILITY_INDEX_ULTIMATE- See Also:
 
 - 
ABILITY_INDEX_POWERFUL
public static final int ABILITY_INDEX_POWERFUL- See Also:
 
 - 
ABILITIES_COUNT
public static final int ABILITIES_COUNT- See Also:
 
 - 
DPS_STAT_SLOTS
public static final int DPS_STAT_SLOTS- See Also:
 
 - 
DPS_STAT_INTERVAL
public static final float DPS_STAT_INTERVAL- See Also:
 
 - 
MAX_LEVEL
public static final int MAX_LEVEL- See Also:
 
 - 
MAX_UPGRADE_LEVEL
public static final int MAX_UPGRADE_LEVEL- See Also:
 
 - 
SHADOW_COLOR
 - 
ABILITY_NAMES
 - 
LEVEL_EXPERIENCE
public static final int[] LEVEL_EXPERIENCE - 
LEVEL_EXPERIENCE_MILESTONES
public static final int[] LEVEL_EXPERIENCE_MILESTONES - 
id
public int id - 
type
 - 
aimStrategy
 - 
moneySpentOn
public int moneySpentOn - 
bountyModifiersNearby
public int bountyModifiersNearby - 
powerBonuses
 - 
damageGiven
public float damageGiven - 
shotCount
public int shotCount - 
angle
public float angle - 
experience
public float experience - 
currentLevelExperience
public float currentLevelExperience - 
nextLevelExperience
public float nextLevelExperience - 
level
public int level - 
installedAbilities
public boolean[] installedAbilities - 
rangeInPixels
public float rangeInPixels - 
minRangeInPixels
public float minRangeInPixels - 
experienceGeneration
public float experienceGeneration - 
experienceMultiplier
public float experienceMultiplier - 
outOfOrder
 - 
attackDisabled
public boolean attackDisabled - 
abilityAvailableParticleEffect
 - 
dpsDamage
public float[] dpsDamage - 
dpsTime
public float[] dpsTime - 
mdps
public float mdps - 
enemiesKilled
public int enemiesKilled - 
bonusCoinsBrought
public float bonusCoinsBrought 
 - 
 - 
Method Details
- 
write
- Specified by:
 writein interfaceKryoSerializable- Overrides:
 writein classBuilding
 - 
read
- Specified by:
 readin interfaceKryoSerializable- Overrides:
 readin classBuilding
 - 
setAimStrategy
 - 
setRegistered
- Overrides:
 setRegisteredin classRegistrable
 - 
setUnregistered
public void setUnregistered()- Overrides:
 setUnregisteredin classRegistrable
 - 
getWalkCost
public float getWalkCost()- Specified by:
 getWalkCostin classBuilding
 - 
toJson
Внутри writeObjectStart - 
loadFromJson
 - 
sameAs
 - 
cloneBuilding
- Specified by:
 cloneBuildingin classBuilding
 - 
isOutOfOrder
public boolean isOutOfOrder() - 
getTarget
 - 
setTarget
 - 
canNewAbilityBeInstalled
public boolean canNewAbilityBeInstalled()- Returns:
 - true, если игрок может выбрать новый навых башне (есть свободные "очки" выбора навыка)
 
 - 
canAbilityBeInstalled
public boolean canAbilityBeInstalled(int idx)  - 
isAbilityInstalled
public boolean isAbilityInstalled(int abilityIdx)  - 
getLevelForExperience
public static int getLevelForExperience(float exp)  - 
addExperience
public void addExperience(float exp)  - 
setExperience
public void setExperience(float exp) Установка опыта напрямую- Parameters:
 exp- кол-во опыта, которое будет установлено точно таким же
 - 
getMaxTowerLevel
public int getMaxTowerLevel() - 
calculateXpLevel
public void calculateXpLevel(boolean ignoreLevelLimits) Calculate level, nextLevelExperience and currentLevelExperience based on experience. Tower's level may increase after calling this method. TowerSystem.updateLevelExperience() calls this method once per frame and triggers events related to the tower's level change and is preferred over calling this method directly. Calling this method directly won't trigger any events and may be useful if you use some temporary towers and don't want it to cause side effects. - 
getMaxUpgradeLevel
public int getMaxUpgradeLevel() - 
getLevel
public int getLevel() - 
setLevel
public void setLevel(int level)  - 
getPowerCombinedMultiplier
public float getPowerCombinedMultiplier()- Returns:
 - getPowerMultiplier + бонус от уровней башни
 
 - 
getScheduledUpdateInterval
public float getScheduledUpdateInterval() - 
scheduledUpdate
public void scheduledUpdate(float deltaTime) - Specified by:
 scheduledUpdatein interfaceScheduledUpdater.Updatable
 - 
scheduledUpdatableSetId
public final void scheduledUpdatableSetId(int id) - Specified by:
 scheduledUpdatableSetIdin interfaceScheduledUpdater.Updatable
 - 
scheduledUpdatableGetId
public final int scheduledUpdatableGetId()- Specified by:
 scheduledUpdatableGetIdin interfaceScheduledUpdater.Updatable
 - 
update
public void update(float deltaTime)  - 
getSellPrice
public int getSellPrice() - 
isSellFullRefundStillActive
public boolean isSellFullRefundStillActive() - 
findTarget
 - 
findTarget
 - 
getUpgradeLevel
public int getUpgradeLevel() - 
upgrade
public void upgrade(int toLevel)  - 
setUpgradeLevel
public void setUpgradeLevel(int toLevel) Set tower's upgrade level directly, without validation / cache updates- Parameters:
 toLevel- upgrade level of the tower, silently clamped between 0 and MAX_UPGRADE_LEVEL
 - 
upgrade
public void upgrade() - 
updateCache
public void updateCache()Обновляет кэш текущих характеристик башни Так как характеристики обновляются, одновременно обновляется массив тайлов в радиусе поражения- Specified by:
 updateCachein classBuilding
 - 
getExpLevelStatBonusPercentage
public static float getExpLevelStatBonusPercentage(int expLevel, TowerType towerType, GameValueProvider gvp) - Parameters:
 expLevel- for XP levelgvp- provider of GameValues- Returns:
 - bonus percentage for every stat (except Special stats and Range) depending on tower's XP level. Besides default bonus, takes GameValueType.TOWERS_POWER_PER_LEVEL_(TILL/AFTER)_10 into account
 
 - 
isStatAffectedByPower
 - 
getStat
- Returns:
 - cached stat of the tower, affected by every possible bonus / modifier / ability etc. Updates with updateCache(), returns 0 for stats the tower does not have
 
 - 
dispose
public void dispose()Description copied from interface:com.badlogic.gdx.utils.DisposableReleases all resources of this object.- Specified by:
 disposein interfaceDisposable
 - 
applyDrawInterpolation
public void applyDrawInterpolation(float interpolatedTime)  - 
drawBatch
 - 
drawBatchAdditive
 - 
drawBase
public final void drawBase(Batch batch, float x, float y, float width, float height, MapRenderingSystem.DrawMode drawMode)  - 
drawAbilitiesToCache
public void drawAbilitiesToCache(Batch batch, float x, float y, float width, float height, MapRenderingSystem.DrawMode drawMode)  - 
drawWeapon
 - 
drawGlitch
 - 
drawSelectedRange
- Overrides:
 drawSelectedRangein classBuilding
 - 
drawHoveredRange
- Overrides:
 drawHoveredRangein classBuilding
 - 
placedOnMap
public void placedOnMap()- Overrides:
 placedOnMapin classBuilding
 - 
removedFromMap
public void removedFromMap()- Overrides:
 removedFromMapin classBuilding
 - 
getEnemyPriority
0 - lowest priority (with lowAimPriority) 10 - regular priority - 
getStartingLevel
public int getStartingLevel() - 
getRange
public float getRange() - 
getMinRange
public float getMinRange() - 
getWeaponTextures
 - 
getUniqueStatDescription
 - 
hasCustomButton
public boolean hasCustomButton()Только если canAim = false - 
isCustomButtonNeedMapPoint
public boolean isCustomButtonNeedMapPoint() - 
customButtonAction
public void customButtonAction(int mapX, int mapY)  - 
updateCustomButton
 - 
fillTowerMenu
Добавить / обновить элементы в меню башни Вызывается каждый кадр, когда видно меню башни elements сохраняется между вызовами метода, чтобы не создавать актеров заново. Если он пустой - значит, вызвали первый раз и надо создать Можно не обновлять ничего, если состояние устраивает (можно хранить любые данные в elements, например хэш состояния или предыдущие значения) - 
canAim
public abstract boolean canAim() - 
shouldSearchForTarget
public boolean shouldSearchForTarget() - 
canAttackEnemy
 - 
canAttack
public boolean canAttack() - 
rotateTo
public void rotateTo(float x, float y, float deltaTime, float rotationSpeed)  - 
rotateTo
public void rotateTo(float needAngle, float deltaTime, float rotationSpeed)  - 
onPreSell
public void onPreSell() - 
onAbilitySet
public void onAbilitySet(int abilityIdx, boolean isSet)  - 
getAttackDelay
public float getAttackDelay() - 
attack
public void attack(int shotCount)  
 -