Ejemplo n.º 1
0
 public override void GetHit(int damage)
 {
     base.GetHit(damage);
     if ((currentLife <= life - 30 && lifeToPhase == 0) /* ||
                                                         * (currentLife <= life - 70 && lifeToPhase == 1)*/)
     {
         ++lifeToPhase;
         currentPattern = (int)KBPhaseLimit.ATTACK;
         currentPhase   = KBPhaseLimit.RUN;
         timer          = -1;
     }
     if (currentPhase == KBPhaseLimit.FINAL)
     {
         currentFinalColor += 1;
         currentFinalColor %= finalColors.Length;
         SetColor(finalColors[currentFinalColor]);
     }
 }
Ejemplo n.º 2
0
 private void SpawnAdds()
 {
     if (timer <= 0)
     {
         TriggerAnim("Idle");
         transform.position = new Vector3(0.0f, transform.position.y, 0.0f);
         genericMovement    = new Vector2(0.0f, -FindObjectOfType <BackgroundGeneration>().GetSpeed());
     }
     timer = 100.0f;
     transform.Translate(genericMovement * Time.deltaTime);
     if (transform.position.y > 6.0f && (attackTimer += Time.deltaTime) >= addsSpawnCooldown / rageMultiplier)
     {
         attackTimer = 0.0f;
         int posX;
         do
         {
             posX = Random.Range(-3, 4);
         } while (posX == lastAddsPos);
         lastAddsPos = posX;
         int col = Random.Range(0, 4);
         for (int i = 0; i < 2; ++i)
         {
             GameObject obj = GameObject.Instantiate(addsPrefab, new Vector2(posX, 6.0f + (i * 1f)), addsPrefab.transform.rotation) as GameObject;
             obj.GetComponent <AEnemy>().Init(hero, enemySpawner.GetLevelSpeed() * addsSpeedModifier * rageMultiplier, enemySpawner.GetSpeedModifier(), bonusManager.GetRandomBonus(), col);
         }
     }
     if (transform.position.y <= 2.8f)
     {
         transform.position = new Vector3(0.0f, 2.8f, 0.0f);
         timer           = -1;
         rageMultiplier += 0.3f;
         if (lifeToPhase <= 1)
         {
             currentPhase = KBPhaseLimit.ATTACK;
         }
         else
         {
             currentPhase = KBPhaseLimit.FINAL;
         }
     }
 }
Ejemplo n.º 3
0
    // Use this for initialization
    protected override void Start()
    {
        base.Start();
        sideMovement = new Vector2(sideStepSpeed, 0);
        leftHand     = transform.Find("LeftHand");
        rightHand    = transform.Find("RightHand");
        bonusManager = FindObjectOfType <BonusManager>();
        enemySpawner = FindObjectOfType <EnemySpawner>();
        bow          = transform.Find("Bow").GetComponent <SpriteRenderer>();
        bigCurse     = transform.Find("BigCurse").GetComponent <SpriteRenderer>();
        anim         = GetComponent <Animator>();
        currentAnim  = "Walk";

        rageMultiplier = 1.0f;

        //AttackPhase
        attackPatterns.Add(new BossAction(FireArrows));
        attackPatterns.Add(new BossAction(Center));
        attackPatterns.Add(new BossAction(ThrowKnives));
        attackPatterns.Add(new BossAction(BombsAway));

        //RunPhase
        attackPatterns.Add(new BossAction(Center));
        attackPatterns.Add(new BossAction(RunAway));
        attackPatterns.Add(new BossAction(SpawnAdds));

        //FinalAttack
        attackPatterns.Add(new BossAction(FinalTransition));
        attackPatterns.Add(new BossAction(FinalAttack));

        actions[BossPhase.BEGIN]   = new BossAction(Entrance);
        actions[BossPhase.PATTERN] = new BossAction(Patterns);
        actions[BossPhase.END]     = new BossAction(Finish);

        hero.Pause();
        currentPhase = KBPhaseLimit.ATTACK;
    }