Example #1
0
 private void UpdateSettings(ObstacleConfig config)
 {
     this.config           = config;
     meshFilter.mesh       = config.Mesh;
     meshRenderer.material = config.Material;
     sphereCollider.radius = config.Radius;
 }
Example #2
0
    IEnumerator Start()
    {
        _rb     = GetComponent <Rigidbody>();
        _config = GetComponent <Asteroid>().DefaultConfig as ObstacleConfig;
        yield return(new WaitUntil(() => _config != null));

        ConfigureMovement();
    }
 protected virtual void removeConfig(ObstacleConfig config)
 {
     foreach (LayerOfObstacles layer in config.configLayers)
     {
         foreach (GameObject obstacle in layer.obstacles)
         {
             obstacle.gameObject.SetActive(false);
             obstacle.transform.Translate(0, 0, -layer.chosenLevel, Space.World);
         }
     }
     if (config.shouldSpin)
     {
         GetComponentInChildren <AxisRotator>().rotationsPerSecond = 0f;
         transform.GetChild(0).transform.localEulerAngles          = startRotation;
     }
     transform.GetChild(0).transform.Rotate(Vector3.up * -rotationInUse);
 }
    private ObstacleConfig getRandomConfig(TunnelSelectionPreferences prefs)
    {
        int max = getMaxDifficultyIndex(prefs);
        //Debug.Log (cumulativeSumOfWeights.Length + ", " + max);
        float rand = Random.Range(0, cumulativeSumOfWeights [max]);

        for (int i = 0; i < obstacleConfigs.Length; i++)
        {
            if (cumulativeSumOfWeights[i] >= rand)
            {
                ObstacleConfig chosen = obstacleConfigs[i];
                return(chosen);
            }
        }

        //this also shouldn't happen
        return(obstacleConfigs [0]);
    }
 protected virtual void applyConfig(ObstacleConfig config)
 {
     //Debug.Log ("Setting up " + config.name);
     foreach (LayerOfObstacles layer in config.configLayers)
     {
         layer.chosenLevel = layer.allowableLevels[Random.Range(0, layer.allowableLevels.Length)];
         foreach (GameObject obstacle in layer.obstacles)
         {
             obstacle.gameObject.SetActive(true);
             obstacle.transform.Translate(0, 0, layer.chosenLevel, Space.World);
         }
     }
     rotationInUse = config.allowableRotations [UnityEngine.Random.Range(0, config.allowableRotations.Length)];
     transform.GetChild(0).transform.Rotate(Vector3.up * rotationInUse);
     if (config.shouldSpin)
     {
         startRotation = transform.GetChild(0).transform.localEulerAngles;
         GetComponentInChildren <AxisRotator>().rotationsPerSecond = (Random.Range(0, 2) * 2 - 1) * Random.Range(minRotsPerSecond, maxRotsPerSecond);
     }
 }
Example #6
0
 public void Spawn(ObstacleConfig config, Vector3 direction)
 {
     UpdateSettings(config);
     movement.Launch(direction);
 }
 public override void setup(TunnelSelectionPreferences prefs, TunnelPiece parent)
 {
     base.setup(prefs, parent);
     configInUse = getRandomConfig(prefs);
     applyConfig(configInUse);
 }
Example #8
0
    private ConfigurationData()
    {
        // set default values for level configs
        levelsConfig = new LevelConfig[2];
        LevelConfig levelConfig = new LevelConfig("Level01");

        // set default values for spaceships configs
        SpaceShipConfig[] spaceShipsConfig = new SpaceShipConfig[2];

        // set default values for player configs
        PlayerShipConfig playerShipConfig = new PlayerShipConfig("Player", "Player");

        playerShipConfig.health   = new HealthConfig(100);
        playerShipConfig.movement = new MovementConfig(80);
        playerShipConfig.attack   = new AttackConfig(200, 0.5f);
        // set default values for player bolt config
        BoltConfig playerBoltConfig = new BoltConfig("Player Bolt", "Bolt");

        playerBoltConfig.movement   = new MovementConfig(100);
        playerBoltConfig.attack     = new AttackConfig(50);
        playerShipConfig.boltConfig = playerBoltConfig;

        spaceShipsConfig.SetValue(playerShipConfig, 0);

        // set default values for enemy config
        EnemyShipConfig enemyShipConfig = new EnemyShipConfig("Enemy", "SpaceItems/Enemy");

        enemyShipConfig.health     = new HealthConfig(50);
        enemyShipConfig.movement   = new MovementConfig(60, 1.0f, 10.0f, 30.0f);
        enemyShipConfig.attack     = new AttackConfig(70, 1.0f);
        enemyShipConfig.scoreValue = 150;
        // set default values for enemy bolt config
        BoltConfig enemyBoltConfig = new BoltConfig("Enemy Bolt", "Bolt");

        enemyBoltConfig.movement   = new MovementConfig(90);
        enemyBoltConfig.attack     = new AttackConfig(30);
        enemyShipConfig.boltConfig = enemyBoltConfig;

        spaceShipsConfig.SetValue(enemyShipConfig, 1);

        levelConfig.spaceShipsConfig = spaceShipsConfig;

        // set default values for obstacles
        ObstacleConfig[] obstaclesConfig = new ObstacleConfig[1];

        // set default values for asteroid config
        ObstacleConfig asteroidConfig = new ObstacleConfig("Red Asteroid", "SpaceItems/Red Asteroid");

        asteroidConfig.health     = new HealthConfig(100);
        asteroidConfig.movement   = new MovementConfig(60, 0.25f);
        asteroidConfig.scoreValue = 100;
        asteroidConfig.attack     = new AttackConfig(1000);
        obstaclesConfig.SetValue(asteroidConfig, 0);

        levelConfig.obstaclesConfig = obstaclesConfig;

        // set default values for collectible config
        CollectibleConfig[] collectiblesConfig = new CollectibleConfig[2];
        // collectibleConfig.speed = 55;
        collectiblesConfig[0]          = new CollectibleConfig("Health Powerup", "SpaceItems/Health Powerup");
        collectiblesConfig[0].movement = new MovementConfig(55);
        collectiblesConfig.SetValue(new CollectibleConfig("FireRate Powerup", "SpaceItems/FireRate Powerup"), 1);
        collectiblesConfig[1].movement = new MovementConfig(60);

        levelConfig.collectiblesConfig = collectiblesConfig;


        // set default values for wave config
        WaveConfig waveConfig = new WaveConfig();

        waveConfig.startWait         = 0.5f;
        waveConfig.spawnWaveWait     = 3.0f;
        waveConfig.spawnMessageDelay = 1.0f;
        waveConfig.spawnItemWait     = 1.0f;
        waveConfig.itemsNumber       = 5;

        levelConfig.waveConfig = waveConfig;
        levelsConfig.SetValue(levelConfig, 0);
    }