public void Initialize(IslandBase faction, Transform vehicles, Transform turrets, PatrolContainer patrols, Action <int> onHealthUpdate) { islandBase = faction; Health.Initialize(Destroy, onHealthUpdate); function = GetComponent <AICoordinator>(); function?.Initialize(faction.TargetProvider, vehicles, turrets, patrols); }
private void Start() { // Spawn options m_Coordinator = GetComponent <AICoordinator>(); EncounterSettings settings = SelectSettings(); if (settings != null) { m_Coordinator.SpawnPawns(settings.PawnSettings); } }
public override bool ChooseAttackAction(AICoordinator coordinator, Pawn caster, out AttackAction attack, out ArenaTile target) { AttackAction[] actions = caster.AttackActions.ToArray(); int rand = Random.Range(0, actions.Length - 1); attack = actions[rand]; var tiles = attack.GatherConsideredTiles(caster).Where((t) => t.HasContent).ToArray(); if (tiles.Any()) { rand = Random.Range(0, tiles.Length - 1); target = tiles[rand]; } else { target = null; return(false); } return(true); }
public abstract float CalculateMovementScore(AICoordinator coordinator, Dictionary <Pawn, ArenaTile> config);
public abstract bool ChooseAttackAction(AICoordinator coordinator, Pawn caster, out AttackAction attack, out ArenaTile target);
public override float CalculateMovementScore(AICoordinator coordinator, Dictionary <Pawn, ArenaTile> config) { return(Random.value); }
public void RegisterController(AICoordinator coordinator) { coordinators.Add(coordinator); coordinator.UpdateTargets(this); }