(Fill meeeeeeeeeeeee)
Modifier(Entity):
Generalization object for all modifiers. Modifiers change the behavior of abilities at for general and edge cases. They can influence more than one ability at a time.
Standard behavior without specializations:
- Modifiers in the
modifiers
set ofGameEntity
are considered enabled as soon as the game entity is created, unless aStateChager
object disables them. - If the modifier is assigned to a
GameEntity
object, the modifications only apply to this game entity. - If the modifier is assigned to a
Civilization
object, the modifications apply to all game entities of this civilization. - Modifiers stack by default.
Specializations:
ScopeModifier
: Instead of using standard behavior, the modifier is applied to a defined set of game entities.
ScopeModifier(Modifier):
diplomatic_stances : set(DiplomaticStance)
scope : ModifierScope
Overrides the standard behavior of modifiers and applies the modifier to a defined set of game entities. The modifiers affect the game entities as long as it stays enabled for the game entity that it has been assigned to.
diplomatic_stances Applies the modifiers to players that the owner of the game entity has these diplomatic stances with.
scope Defines the game entities affected by this modifier.
MultiplierModifier(Modifier):
multiplier : float
A subclass of modifiers that act as multipliers for specific values of abilities.
multiplier
Multiplier for a value. Which value is multiplied depends on the specific type of MultiplierModifier
.
EffectMultiplierModifier(MultiplierModifier):
A subclass of MultiplierModifier
that handles multipliers for Effect
objects.
FlatAtttributeChangeModifier(EffectMultiplierModifier):
A subclass of EffectMultiplierModifier
that handles multipliers for FlatAtttributeChange
effects.
ElevationDifferenceHigh(FlatAtttributeChangeModifier):
elevation_difference : float
Applies a multiplier on the cumulated change value of FlatAtttributeChange
effects when the effector containing this modifier is located higher than the targeted resistor.
elevation_difference The minimum elevation difference between effector and resistor.
Flyover(FlatAtttributeChangeModifier):
flyover_types : set(GameEntityType)
blacklisted_game_entities : set(GameEntity)
Applies a multiplier on the cumulated applied change value of FlatAtttributeChange
effects of a projectile's attack if the projectile path went over specified game entity types.
flyover_types
Whitelist of game entity types that must be under the patch of the projectile. The game entities must have the Hitbox
ability.
blacklisted_game_entities
Blacklist for specific game entities that would be covered by flyover_types
, but should be excplicitely excluded.
Terrain(FlatAtttributeChangeModifier):
terrain : Terrain
Applies a multiplier on the cumulated applied change value of FlatAtttributeChange
effects when the target game entity is on a specified terrain.
terrain The terrain the targeted game entity must stand on.
Unconditional(FlatAtttributeChangeModifier):
Applies a multiplier on the cumulated applied change value of FlatAtttributeChange
effects without any conditions.
TimeRelativeAttributeChangeTime(EffectMultiplierModifier):
Applies a multiplier on the total_change_time
member of TimeRelativeAttributeChange
effects.
TimeRelativeProgressTime(EffectMultiplierModifier):
Applies a multiplier on the total_change_time
member of TimeRelativeProgress
effects.
ResistanceMultiplierModifier(MultiplierModifier):
A subclass of MultiplierModifier
that handles multipliers for Resistance
resistances.
FlatAtttributeChangeModifier(ResistanceMultiplierModifier):
A subclass of ResistanceMultiplierModifier
that handles multipliers for FlatAtttributeChange
resistances.
ElevationDifferenceLow(FlatAtttributeChangeModifier):
elevation_difference : float
Applies a multiplier on the cumulated change value of FlatAtttributeChange
resistances when the resistor containing this modifier is located lower than the effector.
elevation_difference The minimum elevation difference between effector and resistor.
Stray(FlatAtttributeChangeModifier):
Applies a multiplier on the cumulated applied change value of FlatAtttributeChange
resistances for a projectile when the resistor was not the intended target.
Terrain(FlatAtttributeChangeModifier):
terrain : Terrain
Applies a multiplier on the cumulated applied change value of FlatAtttributeChange
resistances when the resisting game entity is on a specified terrain.
terrain The terrain the game entity must stand on.
Unconditional(FlatAtttributeChangeModifier):
Applies a multiplier on the cumulated applied change value of FlatAtttributeChange
resistances without any conditions.
AttributeSettingsValue(MultiplierModifier):
attribute : Attribute
Applies a multiplier on the starting_value
and max_value
members of an AttributeSettings
object in the Live
ability.
attribute
AttributeSettings
objects with this attribute are considered.
ContainerCapacity(MultiplierModifier):
container : Container
Applies a multiplier to the size
member of a Container
object in a Storage
ability. Resulting values are floored.
container The container which is considered.
CreationAttributeCost(MultiplierModifier):
attributes : set(Attribute)
creatables : set(CreatableGameEntity)
Applies a multiplier on the attribute amount of AttributeCost
objects in CreatableGameEntity
objects.
attributes
Limits the modifier to AttributeAmount
objects referencing attributes from this set.
creatables
These CreatableGameEntity
objects are considered.
CreationResourceCost(MultiplierModifier):
resources : set(Resource)
creatables : set(CreatableGameEntity)
Applies a multiplier on the resource amount of ResourceCost
objects in CreatableGameEntity
objects.
resources
Limits the modifier to ResourceAmount
objects referencing resources from this set.
creatables
These CreatableGameEntity
objects are considered.
CreationTime(MultiplierModifier):
creatables : set(CreatableGameEntity)
Applies a multiplier on the creation_time
member of a CreatableGameEntity
object in the Create
ability.
creatables
These CreatableGameEntity
objects are considered.
GatheringEfficiency(MultiplierModifier):
resource_spot : ResourceSpot
Applies a multiplier to the amount of resources that are removed from a specific resource spot's resource amount while gathering.
Example: Consider a gold resource spot containing 100 gold and a game entity with a GatheringEfficiency
modifier for this resource spot with multiplier 0.8
. For an amount of 10 gold that the game entity gathers, the resource spot will remove only 0.8
times this amount, i.e. the resource spot only loses 8 gold. This effectively increases the yield of the resource spot to 125 gold for the game entity.
resource_spot The resource spot for which the effiency multiplier is applied.
GatheringRate(MultiplierModifier):
resource_spot : ResourceSpot
Applies a multiplier to the amount of resources that are gathered from a specific resource spot.
resource_spot The resource spot for which the rate multiplier is applied.
MoveSpeed(MultiplierModifier):
Applies a multiplier on the move_speed
member of the Move
ability.
ReloadTime(MultiplierModifier):
Applies a multiplier on the reload_time
member of ApplyDiscreteEffect
and ShootProjectile
abilities.
ResearchAttributeCost(MultiplierModifier):
attributes : set(Attribute)
researchables : set(CreatableGameEntity)
Applies a multiplier on the attribute amount of AttributeCost
objects in ResearchableTech
objects.
attributes
Limits the modifier to AttributeAmount
objects referencing attributes from this set.
researchables
These ResearchableTech
objects are considered.
ResearchResourceCost(MultiplierModifier):
resources : set(Resource)
researchables : set(ResearchableTech)
Applies a multiplier on the resource amount of ResourceCost
objects in ResearchableTech
objects.
resources
Limits the modifier to ResourceAmount
objects referencing resources from this set.
researchables
These ResearchableTech
objects are considered.
ResearchTime(MultiplierModifier):
researchables : set(ResearchableTech)
Applies a multiplier on the research_time
member of a ResearchableTech
object in the Research
ability.
researchables
These ResearchableTech
objects are considered.
StorageElementCapacity(MultiplierModifier):
storage_element : StorageElement
Applies a multiplier to the elements_per_slot
member of a StorageElement
object in a container. Resulting values are floored.
storage_element The storage element which is considered.
AoE2ProjectileAmount(Modifier):
provider_abilities : set(ApplyDiscreteEffect)
receiver_abilities : set(ApplyDiscreteEffect)
change_types : set(AttributeChangeType)
Compares the raw change value of two sets of ApplyDiscreteEffect
abilities. The final amount is calculated by using this formula:
amount = (change_value_provider / reload_time_provider) / change_value_receiver
provider_abilities The abilities of the provider, i.e. the game entity that provides the projectile amount to a receiving game entity. These abilities do not have to be assigned to a game entity.
receiver_abilities The abilities of the receiver, i.e. the game entity that has its projectile amount changed. These abilities do not have to be assigned to a game entity.
change_types
The change types of the abilities that are considered as AttributeChangeType
objects.
RelativeProjectileAmountModifier(Modifier):
Generalization object for modifiers that change the projectile amount by comparing two sets of values.
AbsoluteProjectileAmount(Modifier):
amount : float
Increases the projectile amount of ShootProjectile
abilities by a fixed value. The total amount is limited by the max_projectiles
member in ShootProjectile
.
amount The amount of projectiles added.
AlwaysHerd(Modifier):
The game entity will always herd a herdable game entity in in range, even if other game entities with Herd
abilities are closer. If two game entities with this modifier are in range, the closest one of them will herd the herdable.
ContinuousResource(Modifier):
rates : set(ResourceRate)
Provides a continuous trickle of resources while the modifier is enabled.
rates
The resource rates as ResourceRate
objects.
DepositResourcesOnProgress(Modifier):
progress_status : ProgressStatus
resources : set(Resource)
affected_types : set(GameEntityType)
blacklisted_entities : set(GameEntity)
Deposits resources of a game entity into the players resource pool if the game entity was involved in advancing the progress via TimeRelativeProgress
effects.
progress_status
Progress status at which the resources are deposited. The TimeRelativeProgress
effect must be applied at the exact same time as the progress is reached.
resources Resources that are dropped off.
affected_types
Whitelist of game entity types that can trigger the deposit action when the progress status is reached. The game entities do not need a DropSite
ability.
blacklisted_game_entities
Blacklist for specific game entities that would be covered by affected_types
, but should be excplicitely excluded.
DiplomaticLineOfSight(Modifier):
diplomatic_stance : DiplomaticStance
Activates line of sight for game entities of players that the owner of the game entity has a specified diplomatic stance towards.
diplomatic_stance Stance towards other players which should be visible.
InContainerContinuousEffect(Modifier):
containers : set(Container)
ability : ApplyContinuousEffect
Makes a game entity apply continuous effects on itself while stored in specified containers.
containers The containers where the continuous effects are applied.
ability Ability that is used to apply the effects. It does not have to be an ability of the game entity. Other modifiers of the game entity apply while using the ability.
InContainerDiscreteEffect(Modifier):
containers : set(Container)
ability : ApplyDiscreteEffect
Makes a game entity apply discrete effects on itself while stored in specified containers.
containers The containers where the discrete effects are applied.
ability Ability that is used to apply the effects. It does not have to be an ability of the game entity. Other modifiers of the game entity apply while using the ability.
InstantTechResearch(Modifier):
tech : Tech
requirements : set(AvailabilityRequirement)
Instantly researches a Tech
and applies its patches for a player when the listed requirements are fulfilled.
tech The technology that is researched.
requirements Requirements that need to be fulfilled to trigger the research.
RefundOnDeath(Modifier):
refund_amount : set(ResourceAmount)
Returns a fixed amount of resources back to the player after the game entity has despawned with a Despawn
ability.
refund_amount Amount of resources that are added to the player's resource pool.
Reveal(Modifier):
line_of_sight : float
affected_types : set(GameEntityType)
blacklisted_entities : set(GameEntity)
Reveals an area around specified game entities.
line_of_sight The radius of the visible area around the game entity.
affected_types Whitelist of game entity types that the modifier should apply to.
blacklisted_game_entities
Blacklist for specific game entities that would be covered by affected_types
, but should be excplicitely excluded.
ModifierScope(Entity):
Generalization object for scopes of a ScopeModifier
object.
GameEntityScope(ModifierScope):
affected_types : set(GameEntityType)
blacklisted_game_entities : set(GameEntity)
Defines a scope of game entities the modifier should apply to.
affected_types Whitelist of game entity types that the modifier should apply to.
blacklisted_game_entities
Blacklist for specific game entities that would be covered by affected_types
, but should be excplicitely excluded.
Standard(ModifierScope):
Makes the modifier behave as if standard rules would apply, i.e. as if the modifier had no ScopeModifier
specialization type.