Ejemplo n.º 1
0
 private void CheckToSpawn(){
     if (EntitiesToSpawn.Count > 0){
         Entity entity = EntitiesToSpawn[0];
         GetTree().Root.AddChild(entity);
         entity.Position = GlobalPosition;
         entity.Connect("Dead", this, "OnEntityDead");
         EntitiesActive.Add(entity);
         EntitiesToSpawn.RemoveAt(0);
     }
 }
Ejemplo n.º 2
0
    private void OnEntityDead(Entity deadEntity){
        EntitiesKilled.Add(deadEntity);
        EntitiesActive.Remove(deadEntity);
        
        if (Position.DistanceTo(deadEntity.GlobalPosition) < 15f){
            if (_rng.Next(0, 100) / 100f < RedChance)
                GoRed();
        }

        if (StoredValue >= _threshold) EmitSignal(nameof(ThresholdReached));
        if (EntitiesActive.Count == 0 && EntitiesToSpawn.Count == 0) Finish();
    }