Class GenericGameplayMod

java.lang.Object
com.prineside.tdi2.gameplayMods.GenericGameplayMod
All Implemented Interfaces:
com.esotericsoftware.kryo.KryoSerializable, GameplayMod
Direct Known Subclasses:
AddAllAbilityCharges, AddRandomCoreTile, AddRandomPlatform, AllAbilitiesForRandomTower, BaseExplodesOnEnemyPass, BoostExistingEnemiesWithLoot, BuildRandomMiner, CriticalDamage, DebuffsLastLonger, DepositCoinsGeneration, DoubleMiningSpeed, EnemiesDropResources, ExtraDamagePerBuff, FirstEnemiesInWaveExplode, GameValueMod, IncreasedTowerToEnemyEfficiency, IncreaseSelectedBonusesPower, LastEnemiesInWaveDealNoDamage, LightningStrikeOnTowerLevelUp, LowHpEnemiesDealNoDamage, MinedItemsTurnIntoDust, MineLegendaryItems, MinersSpawnEnemies, MoreBonusVariantsNextTime, MultiplyLootedItems, MultiplyMdps, NukeOnBonusStage, ReceiveCoins, ReceiveGreenPapers, SellAllTowers, SpawnZombiesFromBase, SummonLootBoss, TowersAttackSpeed, TowersDamage, TriggerRandomAbility

public abstract class GenericGameplayMod extends Object implements GameplayMod, com.esotericsoftware.kryo.KryoSerializable
  • Field Details

    • maxPower

      public int maxPower
    • power

      public int power
    • multipleInstances

      public boolean multipleInstances
  • Constructor Details

    • GenericGameplayMod

      public GenericGameplayMod()
  • Method Details

    • write

      public void write(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Output output)
      Specified by:
      write in interface com.esotericsoftware.kryo.KryoSerializable
    • read

      public void read(com.esotericsoftware.kryo.Kryo kryo, com.esotericsoftware.kryo.io.Input input)
      Specified by:
      read in interface com.esotericsoftware.kryo.KryoSerializable
    • getId

      public String getId()
      Description copied from interface: GameplayMod
      Used to identify and compare mods instead of comparing mod classes and variants (if mod allows multiple variants) For example, GameValueMod may have many variants and should generate a separate id for each one
      Specified by:
      getId in interface GameplayMod
    • copyGenericFieldsTo

      protected void copyGenericFieldsTo(GenericGameplayMod to)
    • allowsMultipleInstancesFromDifferentSources

      public boolean allowsMultipleInstancesFromDifferentSources()
      Specified by:
      allowsMultipleInstancesFromDifferentSources in interface GameplayMod
      Returns:
      true if multiple mods of the same type can be enabled at the same time (from different sources)
    • getPower

      public int getPower()
      Specified by:
      getPower in interface GameplayMod
      Returns:
      current power of the mod. Higher power makes mod more effective
    • getMaxPower

      public int getMaxPower()
      Specified by:
      getMaxPower in interface GameplayMod
      Returns:
      max possible power of the mod. If set to <=1f, it is assumed that mod has a single fixed power
    • setRegisteredPower

      public void setRegisteredPower(int newPower)
      Description copied from interface: GameplayMod
      If mod has adjustable power, this method can be called during the game to increase its power
      Specified by:
      setRegisteredPower in interface GameplayMod
      Parameters:
      newPower - new power to set for this mod when already registered. Will be in range 0..getMaxPower()
    • applyConfig

      public GenericGameplayMod applyConfig(com.badlogic.gdx.utils.JsonValue cfg)
      Usually there's no need to override this method Used by mods that have specific combinations of parameters and read default parameters for each combo