示例#1
0
 bool DefineTypeCondition(BulletController.BulletType bulletType)
 {
     if (controller is NumberController)
     {
         return(!NumberHelper.HasDamage(bulletType, controller.GetNumber()));
     }
     else
     {
         return(!TriangleHelper.HasDamage(bulletType, controller.GetNumber()));
     }
 }
示例#2
0
    void throwBullet(BulletController.BulletType type)
    {
        var now = Time.time;

        if (now > nextFire)
        {
            nextFire = now + fireRate;

            var direction = facingRight ? Vector3.zero : Vector3.back;
            var banana    = bullet.transform.Find("banana");
            var bc        = bullet.GetComponent <BulletController>();
            banana.GetComponent <SpriteRenderer>().sprite = bc.GetSprite(type);
            Instantiate(bullet, bulletSpawn.position, Quaternion.Euler(direction));
        }
    }
示例#3
0
    public static bool HasDamage(BulletController.BulletType bulletType, int number)
    {
        switch (bulletType)
        {
        case BulletController.BulletType.EVEN:
            return(IsEven(number));

        case BulletController.BulletType.DIVISIBLE_3:
            return(IsDivisible3(number));

        case BulletController.BulletType.PRIME:
            return(IsPrime(number));

        default:
            return(false);
        }
    }
示例#4
0
 public void AddDamage(float damage, BulletController.BulletType bulletType)
 {
     if (!NumberHelper.HasDamage(bulletType, nc.GetNumber()))
     {
         // Make any penalty here
         damage        *= -1;
         onlyRightShots = false;
     }
     currentHealth = Math.Min(currentHealth - damage, enemyMaxHealth);
     enemySlider.gameObject.SetActive(true);
     enemySlider.value = currentHealth;
     if (currentHealth <= 0)
     {
         MakeDead();
     }
     else
     {
         nc.UpdateNumber();
     }
 }
示例#5
0
    protected void Shoot(Vector3 target, BulletController.BulletType type)
    {
        if (primaryCooldown > 0)
        {
            primaryCooldown -= Time.deltaTime;
            return;
        }

        GameObject bulletObj = Instantiate(bullet);

        bulletObj.transform.position = transform.position;

        bulletObj.GetComponent <BulletController>().bulletType = type;
        bulletObj.GetComponent <SpriteRenderer>().color        = color;

        Vector3 dir = new Vector3(target.x, target.y, 0) - (transform.position + new Vector3(Random.Range(-accuracyOffset, accuracyOffset), Random.Range(-accuracyOffset, accuracyOffset), 0));

        bulletObj.transform.up = dir;

        primaryCooldown = primaryCooldownTimer;
    }
示例#6
0
    public void AddDamage(float damage, BulletController.BulletType bulletType)
    {
        bool condition = DefineTypeCondition(bulletType);

        if (condition)
        {
            damage        *= -1;
            onlyRightShots = false;
            feedbackMessage.ShowMessage();
        }
        currentHealth = Math.Min(currentHealth - damage, enemyMaxHealth);
        enemySlider.gameObject.SetActive(true);
        enemySlider.value = currentHealth;
        if (currentHealth <= 0)
        {
            MakeDead();
        }
        else
        {
            controller.UpdateValue();
        }
    }
示例#7
0
 public static bool HasDamage(BulletController.BulletType bulletType, int number)
 {
     return(number == (int)bulletType);
 }