public void SetEvolutionStage(int index)
    {
        m_currentStageIdx = index;
        EvolutionStage stage = CurrentEvolution;

        m_nextSpawnTime = CalculateSpawnTime(stage);
    }
Exemplo n.º 2
0
    void SetEvolutionStage(int index)
    {
        //Play SFX
        if (m_currentStageIdx != index)
        {
            PlaySFX(SFX_LevelUp[(int)Random.Range(0, SFX_LevelUp.Length)]);
        }

        //Set stage index and reset energy counter
        m_currentStageIdx    = index;
        m_currentStageEnergy = 0;

        //Set new avatar and scale
        EvolutionStage stage = CurrentEvolution;

        m_sprite.sprite      = stage.Avatar;
        transform.localScale = new Vector3(stage.ScaleMin, stage.ScaleMin, stage.ScaleMin);

        //Scale move speed
        MoveSpeed = m_initialMoveSpeed * stage.MoveSpeedScale;

        //Set enemy spawner to match
        EnemySpawner.SetEvolutionStage(index);

        //Update UI
        m_experienceSlider.value = 0.0f;
    }
        public EnemyLifeForm(EvolutionStage attackBehaviourStage, EvolutionStage defenseBehaviourStage, EvolutionStage movementBehaviourStage)
        {
            Evolution = new Evolution()
            {
                AttackBehaviour = GetAAttackBehaviour(attackBehaviourStage),
                DefenseBehaviour = GetDefenseBehaviour(defenseBehaviourStage),
                MovementBehaviour = GetMovementBehaviour(movementBehaviourStage)
            };

            _defenseEvolutionStage = EvolutionStage.Default;
            _attackEvolutionStage = EvolutionStage.Default;
            _movementEvolutionStage = EvolutionStage.Default;
        }
        public PlayerLifeForm()
        {
            Evolution = new Evolution() {
                AttackBehaviour = new DefaultAttackBehaviour(),
                DefenseBehaviour = new DefaultDefenseBehaviour(),
                MovementBehaviour = new DefaultMovementBehaviour(),
            };

            _defenseEvolutionStage = EvolutionStage.Default;
            _attackEvolutionStage = EvolutionStage.Default;
            _movementEvolutionStage = EvolutionStage.Default;

            Rotation = MathHelper.ToRadians(0);
        }
Exemplo n.º 5
0
    void AddEnergy(int energy)
    {
        //Add to counter
        m_currentStageEnergy += energy;

        //Increase scale
        EvolutionStage stage     = CurrentEvolution;
        float          stageTime = (float)m_currentStageEnergy / (float)stage.EnergyUntilNext;
        float          scale     = Mathf.Lerp(stage.ScaleMin, stage.ScaleMax, stageTime);

        m_sprite.transform.localScale = new Vector3(scale, scale, scale);

        //If hit next evolution stage, switch
        if (m_currentStageEnergy >= EvolutionStages[m_currentStageIdx].EnergyUntilNext)
        {
            SetEvolutionStage(m_currentStageIdx + 1);
        }

        //Update UI
        m_experienceSlider.value = (float)m_currentStageEnergy / (float)stage.EnergyUntilNext;
    }
        private BaseMovementBehaviour GetMovementBehaviour(EvolutionStage movementBehaviourStage)
        {
            BaseMovementBehaviour movementBehaviour;

            switch (movementBehaviourStage)
            {
                case EvolutionStage.Default:
                    movementBehaviour = new DefaultMovementBehaviour() ;
                    break;
                case EvolutionStage.Improved:
                    movementBehaviour = new ImprovedMovementBehaviour();
                    break;
                case EvolutionStage.Advanced:
                    movementBehaviour = new AdvancedMovementBehaviour();
                    break;
                case EvolutionStage.Specialist:
                    movementBehaviour = new SpecialistMovementBehaviour();
                    break;
                default:
                    movementBehaviour = new DefaultMovementBehaviour();
                    break;
            }

            return movementBehaviour;
        }
        private BaseDefenseBehaviour GetDefenseBehaviour(EvolutionStage defenseBehaviourStage)
        {
            BaseDefenseBehaviour defenseBehaviour;

            switch (defenseBehaviourStage)
            {
                case EvolutionStage.Default:
                    defenseBehaviour = new DefaultDefenseBehaviour();
                    break;
                case EvolutionStage.Improved:
                    defenseBehaviour = new ImprovedDefenseBehaviour();
                    break;
                case EvolutionStage.Advanced:
                    defenseBehaviour = new AdvancedDefenseBehaviour();
                    break;
                case EvolutionStage.Specialist:
                    defenseBehaviour = new SpecialistDefenseBehaviour();
                    break;
                default:
                    defenseBehaviour = new DefaultDefenseBehaviour();
                    break;
            }

            return defenseBehaviour;
        }
        private BaseAttackBehaviour GetAAttackBehaviour(EvolutionStage attackBehaviourStage)
        {
            BaseAttackBehaviour attackBehaviour;

            switch (attackBehaviourStage)
            {
                case EvolutionStage.Default:
                    attackBehaviour = new DefaultAttackBehaviour();
                    break;
                case EvolutionStage.Improved:
                    attackBehaviour = new ImprovedAttackBehaviour();
                    break;
                case EvolutionStage.Advanced:
                    attackBehaviour = new AdvancedAttackBehaviour();
                break;
                case EvolutionStage.Specialist:
                    attackBehaviour = new SpecialistAttackBehaviour();
                    break;
                default:
                    attackBehaviour = new DefaultAttackBehaviour();
                    break;
            }

            return attackBehaviour;
        }
 float CalculateSpawnTime(EvolutionStage stage)
 {
     return(stage.RandSpawnTimeMin + (Random.value * (stage.RandSpawnTimeMax - stage.RandSpawnTimeMin)));
 }
 public void Update(EvolutionStage obj)
 {
     throw new NotImplementedException();
 }