public void SetEvolutionStage(int index) { m_currentStageIdx = index; EvolutionStage stage = CurrentEvolution; m_nextSpawnTime = CalculateSpawnTime(stage); }
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); }
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(); }