/// <summary> /// Spawns a random enemy at a random location /// </summary> private void SpawnEnemy() { var skeleton = ActorFactory.CreateSkeleton(); CallDeferred("add_child", skeleton); skeleton.GlobalPosition = new Vector2(20, 20); skeleton.Connect(nameof(AbstractActor.CoinDropped), this, nameof(OnCoinDropped)); skeleton.Connect(nameof(AbstractActor.Died), this, nameof(OnEnemyDeath)); }
/// <summary> /// Adds enemies as children to the room, and adds them to the enemies list. /// </summary> private void AddEnemies() { var possibleEnemyPositions = NodeService.GetChildrenOfType <Position2D>(GetNode("PossibleEnemyPositions")); var enemyPositions = ListService.SelectNRandom(possibleEnemyPositions, 3); foreach (var enemyPosition in enemyPositions) { var skeleton = ActorFactory.CreateSkeleton(); _enemies.AddChild(skeleton); skeleton.Position = enemyPosition.Position; } }
private void SpawnBoss() { var skelly = ActorFactory.CreateSkeleton(); var text = new Label(); text.Text = "boss :)"; skelly.AddChild(text); var healthBar = NodeService.InstanceNotNull <HealthBar>("res://Scenes/HealthBar.tscn"); skelly.Connect(nameof(AbstractActor.HealthChanged), healthBar, nameof(HealthBar.OnHealthChanged)); skelly.ZIndex = 100; _hud.AddChild(healthBar); AddChild(skelly); }