classpublicPriority 3
TotalSustainedDamageCondition
com.hypixel.hytale.builtin.npccombatactionevaluator.conditions.TotalSustainedDamageCondition
extends ScaledCurveCondition
1
Methods
1
Public Methods
0
Fields
1
Constructors
Constants
BuilderCodec<TotalSustainedDamageCondition>CODEC= BuilderCodec.builder(
TotalSustainedDamageCondition.class, TotalSustainedDamageCondition...
ComponentType<EntityStore, DamageMemory>DAMAGE_MEMORY_COMPONENT_TYPE= DamageMemory.getComponentType()
Constructors
public
TotalSustainedDamageCondition()Methods
Public Methods (1)
public
void setupNPC(Holder<EntityStore> holder)@Override
Inheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Source Code
package com.hypixel.hytale.builtin.npccombatactionevaluator.conditions;
import com.hypixel.hytale.builtin.npccombatactionevaluator.memory.DamageMemory;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.component.ArchetypeChunk;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.ComponentType;
import com.hypixel.hytale.component.Holder;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.server.npc.decisionmaker.core.EvaluationContext;
import com.hypixel.hytale.server.npc.decisionmaker.core.conditions.base.ScaledCurveCondition;
import javax.annotation.Nonnull;
public class TotalSustainedDamageCondition extends ScaledCurveCondition {
public static final BuilderCodec<TotalSustainedDamageCondition> CODEC = BuilderCodec.builder(
TotalSustainedDamageCondition.class, TotalSustainedDamageCondition::new, ScaledCurveCondition.ABSTRACT_CODEC
)
.documentation("A scaled curve condition that returns a utility value based on total damage taken during this bout of combat.")
.build();
protected static final ComponentType<EntityStore, DamageMemory> DAMAGE_MEMORY_COMPONENT_TYPE = DamageMemory.getComponentType();
public TotalSustainedDamageCondition() {
}
@Override
protected double getInput(
int selfIndex,
@Nonnull ArchetypeChunk<EntityStore> archetypeChunk,
Ref<EntityStore> target,
CommandBuffer<EntityStore> commandBuffer,
EvaluationContext context
) {
DamageMemory memory = archetypeChunk.getComponent(selfIndex, DAMAGE_MEMORY_COMPONENT_TYPE);
return (double)memory.getTotalCombatDamage();
}
@Override
public void setupNPC(@Nonnull Holder<EntityStore> holder) {
holder.ensureComponent(DAMAGE_MEMORY_COMPONENT_TYPE);
}
}