Example #1
0
        /// <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));
        }
Example #2
0
        /// <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;
            }
        }
Example #3
0
        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);
        }