Package com.prineside.tdi2
Interface EntityFactory
- All Known Subinterfaces:
Gate.Factory<T>
,Item.Factory<T>
,Tile.Factory<T>
,Unit.Factory<T>
- All Known Implementing Classes:
Ability.Factory
,AbilityItem.AbilityItemFactory
,AbilityTokenItem.AbilityTokenItemFactory
,AcceleratorItem.AcceleratorItemFactory
,AirFallExplosion.AirFallExplosionFactory
,AirProjectile.AirProjectileFactory
,AirTower.AirTowerFactory
,ArmorBuff.ArmorBuffFactory
,ArmoredEnemy.ArmoredEnemyFactory
,AttackSpeedModifier.AttackSpeedModifierFactory
,BalanceModifier.BalanceModifierFactory
,BallLightningAbility.BallLightningAbilityFactory
,BallLightningUnit.BallLightningUnitFactory
,BarrierHealthGate.BarrierHealthGateFactory
,BarrierTypeGate.BarrierTypeGateFactory
,BasicProjectile.BasicProjectileFactory
,BasicTower.BasicTowerFactory
,BitDustItem.BitDustItemFactory
,BlastTower.BlastTowerFactory
,BlizzardAbility.BlizzardAbilityFactory
,BlizzardBuff.BlizzardBuffFactory
,BlueprintItem.BlueprintItemFactory
,BonusCoinsBuff.BonusCoinsBuffFactory
,BonusXpBuff.BonusXpBuffFactory
,BossEnemy.BossEnemyFactory
,BossTile.BossTileFactory
,BountyModifier.BountyModifierFactory
,BrootEnemy.BrootEnemyFactory
,Buff.Factory
,BuffProjectile.BuffProjectileFactory
,BulletWallAbility.BulletWallAbilityFactory
,BulletWallProjectile.MultishotProjectileFactory
,BurnBuff.BurnBuffFactory
,CannonExplosion.CannonExplosionFactory
,CannonProjectile.CannonProjectileFactory
,CannonTower.CannonTowerFactory
,CaseItem.CaseItemFactory
,CaseKeyItem.CaseKeyItemFactory
,ChainLightningProjectile.ChainLightningProjectileFactory
,ChainReactionBuff.ChainReactionBuffFactory
,ConstructorBossEnemy.ConstructorBossBodyEnemyFactory
,CoreTile.CoreTileFactory
,CrusherTower.CrusherTowerFactory
,DamageModifier.DamageModifierFactory
,DatPaperItem.DatPaperItemFactory
,DeathExplosionBuff.ExplosionChargeBuffFactory
,DisorientedUnit.DisorientedUnitFactory
,DoubleGainShardItem.DoubleGainShardItemFactory
,DummyTile.DummyTileFactory
,Enemy.Factory
,EqualizerTile.EqualizerTileFactory
,ExperienceModifier.ExperienceModifierFactory
,Explosion.Factory
,FastEnemy.FastEnemyFactory
,FighterEnemy.FighterEnemyFactory
,FireballAbility.FireballAbilityFactory
,FireballExplosion.FireballExplosionFactory
,FirestormAbility.FirestormAbilityFactory
,FlamethrowerTower.FlamethrowerTowerFactory
,FreezingBuff.FreezingBuffFactory
,FreezingTower.FreezingTowerFactory
,GameValueGlobalItem.GameValueGlobalItemFactory
,GameValueLevelItem.GameValueLevelItemFactory
,GameValueTile.GameValueTileFactory
,Gate.Factory.AbstractFactory
,GateItem.GateItemFactory
,GaussTower.GaussTowerFactory
,GenericEnemy.GenericEnemyFactory
,GenericExplosion.GenericExplosionFactory
,GreenPaperItem.GreenPaperItemFactory
,HealerEnemy.HealerEnemyFactory
,HeliEnemy.HeliEnemyFactory
,IceFieldUnit.IceFieldUnitFactory
,IcyEnemy.IcyEnemyFactory
,InvulnerabilityBuff.InvulnerabilityBuffFactory
,Item.Factory.AbstractFactory
,JetEnemy.JetEnemyFactory
,LaserProjectile.LaserProjectileFactory
,LaserTower.LaserTowerFactory
,LightEnemy.LightEnemyFactory
,LoicAbility.LoicAbilityFactory
,LoopAbility.RepeatAbilityFactory
,LootBoostItem.LootBoostItemFactory
,LuckyShotTokenItem.LuckyShotTokenItemFactory
,MagnetAbility.MagnetAbilityFactory
,MetaphorBossCreepEnemy.MetaphorBossCreepEnemyFactory
,MetaphorBossEnemy.MetaphorBossEnemyFactory
,MicrogunUnit.MicrogunUnitFactory
,MineUnit.MineUnitFactory
,MinigunTower.MinigunTowerFactory
,MiningSpeedModifier.MiningSpeedModifierFactory
,MissileExplosion.MissileExplosionFactory
,MissileProjectile.MissileProjectileFactory
,MissileTower.MissileTowerFactory
,MobchainBossBodyEnemy.MobchainBossBodyEnemyFactory
,MobchainBossCreepEnemy.MobchainBossCreepEnemyFactory
,MobchainBossHeadEnemy.MobchainBossHeadEnemyFactory
,Modifier.Factory
,MultishotProjectile.MultishotProjectileFactory
,MultishotTower.MultishotTowerFactory
,NoBonusSystemPointsBuff.NoBonusSystemPointsBuffFactory
,NoDamageBuff.NoDamageBuffFactory
,NukeAbility.NukeAbilityFactory
,OpenedResearchItem.OpenedResearchItemFactory
,OverloadAbility.OverloadAbilityFactory
,PlatformTile.SpaceTileFactory
,PoisonBuff.PoisonBuffFactory
,PowerModifier.PowerModifierFactory
,PrestigeDustItem.PrestigeDustItemFactory
,PrestigeTokenItem.PrestigeTokenItemFactory
,Projectile.Factory
,QuadTile.QuadTileFactory
,RandomBarrierItem.RandomBarrierItemFactory
,RandomTeleportItem.RandomTeleportItemFactory
,RandomTileItem.RandomTileItemFactory
,RarityBoostItem.RarityBoostItemFactory
,RegenerationBuff.RegenerationBuffFactory
,RegularEnemy.RegularEnemyFactory
,ResearchTokenItem.ResearchTokenItemFactory
,ResearchTokenUsedItem.ResearchTokenUsedItemFactory
,ResourceItem.ResourceItemFactory
,RoadTile.RoadTileFactory
,ScriptTile.ScriptTileFactory
,SearchModifier.SearchModifierFactory
,SkillPointItem.SkillPointItemFactory
,SlippingBuff.SlippingBuffFactory
,SmokeBombAbility.SmokeBombAbilityFactory
,SnakeBossBodyEnemy.SnakeBossBodyEnemyFactory
,SnakeBossHeadEnemy.SnakeBossHeadEnemyFactory
,SnakeBossTailEnemy.SnakeBossTailEnemyFactory
,SniperTower.SniperTowerFactory
,SnowballBuff.SnowballBuffFactory
,SnowballUnit.SnowballUnitFactory
,SourceTile.SourceTileFactory
,SpawnTile.SpawnTileFactory
,SplashProjectile.SplashProjectileFactory
,SplashTower.SplashTowerFactory
,SplinterProjectile.SplinterProjectileFactory
,StarItem.StarItemFactory
,StrongEnemy.StrongEnemyFactory
,StunBuff.StunBuffFactory
,TargetTile.TargetTileFactory
,TeleportGate.TeleportGateFactory
,TeslaTower.TeslaTowerFactory
,ThrowBackBuff.BlastThrowBackBuffFactory
,ThunderAbility.ThunderAbilityFactory
,Tile.Factory.AbstractFactory
,TileItem.TileItemFactory
,Tower.Factory
,ToxicEnemy.ToxicEnemyFactory
,TrophyItem.TrophyItemFactory
,Unit.Factory.BasicAbstractFactory
,VenomProjectile.VenomProjectileFactory
,VenomTower.VenomTowerFactory
,VulnerabilityBuff.VulnerabilityBuffFactory
,WindstormAbility.WindstormAbilityFactory
,XmMusicTrackTile.XmMusicTrackTileFactory
public interface EntityFactory
Factories provide type-specific info and manage creation / destruction of entities
Game (globally) can use them to show info about specific entity types (TowerType / EnemyType / AbilityType etc)
Game state (single instance of one game) can also do that but can be modified with scripts
- I don't like the fact Enums are used, they don't allow new types of entities
- How do we handle global / local factories? We need 2 of them this way
- Keeping factories in managers (global only) does not allow to modify them with scripts and makes it more difficult for multithreading / separation of headful and headless modes