コード例 #1
0
 protected override void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.GetComponent <EnemyHealthManager>() != null)
     {
         other.gameObject.GetComponent <EnemyHealthManager>().Hit(hit);
         GameObject myEffect  = (GameObject)Instantiate(hitEffect, transform.position, Quaternion.identity);
         Collider[] colliders = Physics.OverlapSphere(transform.position, blastRadius);
         foreach (Collider c in colliders)
         {
             if (c.GetComponent <Rigidbody>() && c.GetComponent <Rigidbody>().CompareTag("Fodder"))
             {
                 WeaponHit blastHit = hit;
                 if ((int)Vector3.Distance(transform.position, c.transform.position) > 0)
                 {
                     blastHit.damage /= (int)Vector3.Distance(transform.position, c.transform.position);
                 }
                 if (blastHit.damage > hit.damage)
                 {
                     blastHit.damage = hit.damage;
                 }
                 c.gameObject.GetComponent <EnemyHealthManager>().Hit(blastHit);
             }
         }
         Destroy(myEffect, 5f);
         Destroy(this.gameObject);
     }
 }
コード例 #2
0
 public void GotHit(WeaponHit weaponHit)
 {
     if (factorActive && weaponHit.type == WeaponHit.WeaponType.div && weaponHit.frequency == myFactor)
     {
         if (codeMgr.MyDenominator == 1)
         {
             codeMgr.MyDenominator = myFactor;
         }
         else
         {
             codeMgr.MyDenominator *= myFactor;
         }
         if (GCD() == 1)
         {
             myOperator.GetComponent <MSPartPlusMinus>().ShieldActive = true;
             myCore.transform.parent     = transform.parent;
             myNumber.transform.parent   = transform.parent;
             myOperator.transform.parent = transform.parent;
             Destroy(leftParen.gameObject);
             Destroy(rightParen.gameObject);
             GameObject pop = (GameObject)Instantiate(deathEffect, transform.position, Quaternion.identity);
             Destroy(pop, 2f);
             Destroy(this.gameObject);
             GameObject explosion = (GameObject)Instantiate(deathEffect, transform.position, Quaternion.identity);
             Destroy(explosion, 2f);
             Destroy(this.gameObject);
         }
         else
         {
             factorActive = false;
             numberLabel.GetComponent <Renderer>().enabled = false;
             myShield.GetComponent <MSFactorShield>().Reset();
         }
     }
 }
コード例 #3
0
 public void GotHit(WeaponHit weaponHit)
 {
     if (!hasFactor)
     {
         healthMgr.SubtractHP(weaponHit.damage);
     }
 }
コード例 #4
0
 public void SetProperties(Transform target, float zSpeed, int zDamage, float cRange, int numChains, WeaponHit hit)
 {
     myTarget       = target;
     zapSpeed       = zSpeed;
     chainRange     = cRange;
     numberOfChains = numChains;
     myHit          = hit;
     myHit.damage   = zDamage;
 }
コード例 #5
0
 private void Start()
 {
     sceneManager         = GameObject.Find("SceneManager");
     currentMovementSpeed = baseMovementSpeed;
     equipmentHolder      = GetComponent <EquipmentHolder>();
     rb       = GetComponent <Rigidbody>();
     animator = GetComponentInChildren <AnimationManager>();
     weapon   = GetComponentInChildren <WeaponHit>();
     Health   = MaxHealth;
     startPos = transform.position;
 }
コード例 #6
0
 void OnTriggerEnter(Collider collision)
 {
     if (collision.gameObject.CompareTag("Minion") || collision.gameObject.CompareTag("Mothership") || collision.gameObject.CompareTag("EnemyShield") || collision.gameObject.CompareTag("Fodder"))
     {
         if (!collision.gameObject.CompareTag("EnemyShield"))
         {
             WeaponHit weaponHit = new WeaponHit(damage, frequency, type);
             collision.GetComponent <EnemyHealthManager>().Hit(weaponHit);
         }
         Destroy(this.gameObject);
         GameObject pop = (GameObject)Instantiate(hitEffect, new Vector3(transform.position.x, transform.position.y, 0), Quaternion.identity);
         Destroy(pop, 0.5f);
     }
 }
コード例 #7
0
 public void Hit(WeaponHit weaponHit)
 {
     if (isMinion || isFodder)
     {
         currentHP -= weaponHit.damage;
     }
     else
     {
         this.gameObject.SendMessage("GotHit", weaponHit);
     }
     lastHitFreq  = weaponHit.frequency;
     lastHitType  = weaponHit.type;
     lastHitColor = weaponHit.color;
 }
コード例 #8
0
 public void GotHit(WeaponHit weaponHit)
 {
     if (weaponHit.type == WeaponHit.WeaponType.fac)
     {
         if ((float)coreFactor % (float)weaponHit.frequency == 0f && (float)termNumber % (float)weaponHit.frequency == 0f)
         {
             healthMgr.CurrentHP -= weaponHit.damage;
             if (healthMgr.CurrentHP <= 0)
             {
                 myFactorObject.FactorActive = true;
                 myFactorObject.MyFactor     = weaponHit.frequency;
             }
         }
     }
 }
コード例 #9
0
 public void GotHit(WeaponHit weaponHit)
 {
     if (weaponHit.type == WeaponHit.WeaponType.div && weaponHit.frequency == myFactor)
     {
         if (codeMgr.MyDenominator == 1)
         {
             codeMgr.MyDenominator = myFactor;
         }
         else
         {
             codeMgr.MyDenominator *= myFactor;
         }
         Kill();
     }
 }
コード例 #10
0
 public void Dispose()
 {
     SharkStalking.dispose();
     Crafting.dispose();
     SharkDead.dispose();
     SharkAppear.dispose();
     SharkAttack.dispose();
     Collect.dispose();
     EquipWeapon.dispose();
     WeaponHit.dispose();
     HitToShark.dispose();
     ToSurface.dispose();
     Submerge.dispose();
     Dispose(Menu);
     Dispose(Ambient);
 }
コード例 #11
0
    void OnTriggerStay(Collider collision)
    {
        EnemyHealthManager enemyHealthMgr = collision.GetComponent <EnemyHealthManager>();

        if ((collision.CompareTag("Minion") || collision.gameObject.CompareTag("Mothership") || collision.gameObject.CompareTag("Fodder")) && canZap)
        {
            GameObject newZap = (GameObject)Instantiate(zap, transform.position, Quaternion.identity);
            newZap.GetComponent <Zap>().StartPos = transform.position;
            newZap.GetComponent <Zap>().Target   = collision.transform.position;

            WeaponHit weaponHit = new WeaponHit(damage, frequency, Weapon.WeaponType.mult);
            collision.GetComponent <EnemyHealthManager>().Hit(weaponHit);
            canZap = false;
            zapTimer.Go(zapDelay);
        }
    }
コード例 #12
0
 private void Init(string mediaDir, TgcDirectSound sound)
 {
     Menu.FileName      = mediaDir + @"\Sounds\Menu.mp3";
     AmbientFileName    = mediaDir + @"\Sounds\Ambient.mp3";
     UnderWaterFileName = mediaDir + @"\Sounds\UnderWater.mp3";
     SharkStalking.loadSound(mediaDir + @"\Sounds\SharkNear.wav", sound.DsDevice);
     Crafting.loadSound(mediaDir + @"\Sounds\Crafting.wav", sound.DsDevice);
     SharkDead.loadSound(mediaDir + @"\Sounds\SharkDead.wav", sound.DsDevice);
     SharkAppear.loadSound(mediaDir + @"\Sounds\SharkAppear.wav", sound.DsDevice);
     SharkAttack.loadSound(mediaDir + @"\Sounds\SharkAttack.wav", sound.DsDevice);
     Collect.loadSound(mediaDir + @"\Sounds\gather_resource.wav", sound.DsDevice);
     EquipWeapon.loadSound(mediaDir + @"\Sounds\WeaponEquip.wav", sound.DsDevice);
     WeaponHit.loadSound(mediaDir + @"\Sounds\WeaponHit.wav", sound.DsDevice);
     HitToShark.loadSound(mediaDir + @"\Sounds\HitToShark.wav", sound.DsDevice);
     ToSurface.loadSound(mediaDir + @"\Sounds\ToSurface.wav", sound.DsDevice);
     Submerge.loadSound(mediaDir + @"\Sounds\Submerge.wav", sound.DsDevice);
 }
コード例 #13
0
 public void GotHit(WeaponHit hit)
 {
     if (hit.type == WeaponHit.WeaponType.mult && hit.frequency == myValue)
     {
         healthMgr.SubtractHP(hit.damage);
         if (healthMgr.CurrentHP <= 0)
         {
             codeMgr.MultiplyValue(myValue);
             GameObject shieldPop = (GameObject)Instantiate(shieldPopEffect, myShield.transform.position, Quaternion.identity);
             shieldPop.transform.localScale = new Vector3(transform.parent.GetComponent <Mothership>().CenterX + 1, 1, 2);
             shieldPop.GetComponent <ParticleSystem>().enableEmission = true;
             GameObject explosion = (GameObject)Instantiate(deathEffect, transform.position, Quaternion.identity);
             Destroy(explosion, 2f);
             Destroy(shieldPop, 2f);
             Destroy(this.gameObject);
         }
     }
 }
コード例 #14
0
 // Use this for initialization
 void Start()
 {
     particleS = GetComponentInChildren <ParticleSystem>().gameObject;
     particleS.SetActive(false);
     this.tag = "Enemy";
     weapon   = GetComponentInChildren <WeaponHit>();
     anim     = GetComponent <Animator>();
     player   = GameObject.FindGameObjectWithTag("Player").transform;
     agent    = GetComponent <NavMeshAgent>();
     if (transform.rotation.y < 0)
     {
         facingRight = false;
     }
     else
     {
         facingRight = true;
     }
 }
コード例 #15
0
    public void GotHit(WeaponHit weaponHit)
    {
        if (!isBerserk)
        {
            healthMgr.SubtractHP(weaponHit.damage);
            if (healthMgr.CurrentHP <= 0)
            {
                if (weaponHit.type == WeaponHit.WeaponType.pos)
                {
                    if (isPositive)
                    {
                        myValue = myValue + weaponHit.frequency;
                    }
                    else
                    {
                        myValue = myValue - weaponHit.frequency;
                    }
                    codeMgr.AddValue(weaponHit.frequency);
                }
                else if (weaponHit.type == WeaponHit.WeaponType.neg)
                {
                    if (isPositive)
                    {
                        myValue = myValue - weaponHit.frequency;
                    }
                    else
                    {
                        myValue = myValue + weaponHit.frequency;
                    }
                    codeMgr.AddValue(-weaponHit.frequency);
                }

                if (myValue == 0)
                {
                    Destroy(this.gameObject);
                }
                CheckPositive();
                healthMgr.CurrentHP = hpTrigger;
                numberLabel.GetComponent <TextMesh>().text = myValue.ToString();
            }
        }
    }
コード例 #16
0
 // Use this for initialization
 void Start()
 {
     this.tag = "Enemy";
     weapon   = GetComponentInChildren <WeaponHit>();
     anim     = GetComponent <Animator>();
     if (player == null)
     {
         player = GameObject.FindGameObjectWithTag("Player").transform;
     }
     Debug.Log(player.transform.position + " player");
     agent = GetComponent <NavMeshAgent>();
     if (transform.rotation.y < 0)
     {
         facingRight = false;
     }
     else
     {
         facingRight = true;
     }
 }
コード例 #17
0
 public void GotHit(WeaponHit weaponHit)
 {
     if (!isBerserk)
     {
         healthMgr.SubtractHP(weaponHit.damage);
         if (healthMgr.CurrentHP <= 0)
         {
             if (weaponHit.type == WeaponHit.WeaponType.pos)
             {
                 if (!isPositive && isPrimary && myColor == weaponHit.color)
                 {
                     Destroy(this.gameObject);
                 }
                 else if (isPrimary)
                 {
                     SetColor(AddColors(myColor, weaponHit.color));
                 }
                 else
                 {
                     isBerserk = true;
                 }
             }
             else if (weaponHit.type == WeaponHit.WeaponType.neg)
             {
                 if (isPositive && isPrimary && myColor == weaponHit.color)
                 {
                     Destroy(this.gameObject);
                 }
                 else if (!isPrimary)
                 {
                     SetColor(SubtractColors(myColor, weaponHit.color));
                 }
                 else
                 {
                     isBerserk = true;
                 }
             }
             healthMgr.CurrentHP = hpTrigger;
         }
     }
 }
コード例 #18
0
 public void GotHit(WeaponHit weaponHit)
 {
 }