def __init__(self, move_towards_radius=6, species=Species.NONDESCRIPT): self.tree = Root( Selection( Sequence( IsAdjacent(), Attack()), Sequence( WithinL2Radius(radius=move_towards_radius), MoveTowardsTargetEntity()), Sequence( FindNearestTargetEntity(species=species, radius=move_towards_radius), MoveTowardsTargetEntity(), ), Swarm(species=Species.ZOMBIE), Skitter()))
def __init__(self): self.tree = Root( Selection( Sequence( Negate(InNamespace(name="summoned_goblins")), CheckHealthStatus(HealthStates.INJURED), SpawnEntity(bestiary.goblin, min_time=0, max_time=0), SpawnEntity(bestiary.goblin, min_time=0, max_time=0), SetNamespace(name="summoned_goblins") ), Sequence( Negate(InNamespace(name="summoned_orcs")), CheckHealthStatus(HealthStates.BADLY_INJURED), SpawnEntity(bestiary.orc, min_time=0, max_time=0), SpawnEntity(bestiary.orc, min_time=0, max_time=0), SetNamespace(name="summoned_orcs") ), Sequence( Negate(InNamespace(name="summoned_trolls")), CheckHealthStatus(HealthStates.NEAR_DEATH), SpawnEntity(bestiary.troll, min_time=0, max_time=0), SpawnEntity(bestiary.troll, min_time=0, max_time=0), SetNamespace(name="summoned_trolls") ), Sequence( InNamespace(name="target"), IsAdjacent(), Attack() ), Sequence( WithinPlayerFov(), MoveTowardsTargetEntity() ) ) )
def __init__(self, species=Species.NONDESCRIPT): self.target_species= species self.tree = Root( Selection( Sequence( InNamespace(name="target"), IsAdjacent(), Attack()), Sequence( InNamespace(name="target"), MoveTowardsTargetEntity()), Sequence( FindNearestTargetEntity(species=self.target_species), MoveTowardsTargetEntity(), ), TravelToRandomPosition()))
def __init__(self, skittering_range=3): self.skittering_range = skittering_range self.tree = Root( Selection( Sequence( IsAdjacent(), Attack()), Sequence( WithinL2Radius(radius=skittering_range), MoveTowardsTargetEntity()), Skitter()))
def __init__(self, sensing_range=12): self.sensing_range = sensing_range self.tree = Root( Selection( Sequence( IsAdjacent(), Attack()), Sequence( WithinL2Radius(radius=sensing_range), MoveTowardsTargetEntity()), TravelToRandomPosition()))
def __init__(self): self.tree = Root( Selection( Sequence( InNamespace(name="target"), IsAdjacent(), Attack()), Sequence( WithinPlayerFov(), MoveTowardsTargetEntity()), Sequence( InNamespace(name="target_point"), MoveTowardsPointInNamespace(name="target_point")), TravelToRandomPosition()))
def __init__(self, radius=4, guard_point=None): self.radius = radius self.tree = Root( Selection( Sequence( InNamespace(name="target"), IsAdjacent(), Attack()), Sequence( WithinPlayerFov(), MoveTowardsTargetEntity()), Sequence( PointToTarget(guard_point, "radius_point"), OutsideL2Radius(self.radius), MoveTowardsPointInNamespace(name="radius_point") ), Skitter()))
def __init__(self, spawn, min_time=5, max_time=10): number_of_turns = randint(min_time, max_time) self.tree = Root( Selection( Sequence( SpawnEntity(spawn, min_time=min_time, max_time=max_time) ), Sequence( InNamespace(name="target"), IsAdjacent(), Attack() ), Sequence( WithinPlayerFov(), MoveTowardsTargetEntity() ), ) )
def __init__(self, radius=3): self.tree = Root( Selection( Sequence( InNamespace(name="target"), WithinRadius(radius=radius), SeekTowardsLInfinityRadius(radius=radius) ), Sequence( InNamespace(name="target"), TargetWithinRange(), Attack() ), Sequence( InNamespace(name="target"), MoveTowardsTargetEntity() ), Sequence( InNamespace(name="target_point"), MoveTowardsPointInNamespace(name="target_point")), TravelToRandomPosition() ) )