Esempio n. 1
0
        public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
        {
            if (getCurrentAction() == "idleProt" && ce.special != tSpecial.BreaksGuard)
            {
                life -= ce.damage * 0.05f;
                ParticleManager.Instance.addParticles("watermelonGotHitShield", this.position, Vector3.Zero, Color.White);
            }
            else
            {
                life -= ce.damage;
                ParticleManager.Instance.addParticles("watermelonGotHitOk", this.position, Vector3.Zero, Color.White);
            }

            ParticleManager.Instance.addParticles(entityName + "GotHit", this.position, Vector3.Zero, Color.White);
            if (life > 0)
            {
                if (getCurrentAction() == "idleProt")
                    SoundManager.Instance.playEffect(entityName + "GotHit");
                else
                    SoundManager.Instance.playEffect("lemonDies");
            }
            else
            {
                SoundManager.Instance.playEffect(entityName + "Dies");
            }

            return life > 0;
        }
Esempio n. 2
0
 public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
 {
     ParticleManager.Instance.addParticles(entityName + "GotHit", this.position, Vector3.Zero, Color.White);
     SoundManager.Instance.playEffect(entityName + "GotHit");
     if (Calc.randomScalar() < 0.5f)
     {
         OrbManager.Instance.addOrbs(position2D, 1, 0, 0, 0);
     }
     return true;
 }
Esempio n. 3
0
 public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
 {
     ParticleManager.Instance.addParticles(entityName + "GotHit", this.position, Vector3.Zero, Color.White);
     life -= ce.damage;
     if (life > 0)
     {
         SoundManager.Instance.playEffect(entityName + "GotHit");
     }
     else
     {
         SoundManager.Instance.playEffect(entityName + "Dies");
     }
     return life > 0;
 }
 // returns true if collides with the projectile. This method calls gotHitAtPart child method to see if the entity dies
 public virtual bool collidesWith(CollidableEntity2D ce, ref bool entityAlive)
 {
     for (int i = 0; i < parts.Count; ++i)
     {
         List<CollidablePart> ceParts = ce.parts;
         for (int j = 0; j < ceParts.Count; ++j)
         {
             Vector2 v = (position2D + parts[i].centerOfMass) - (ce.position2D + ceParts[j].centerOfMass);
             if (v.Length() < parts[i].radius + ceParts[j].radius)
             {
                 entityAlive = gotHitAtPart(ce, i);
                 return true;
             }
         }
     }
     return false;
 }
Esempio n. 5
0
        public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
        {
            ++currentHits;
            scaling = true;
            scaleTimer = SCALE_TIME;
            backupScale = scale2D;
            parts[0].radius = parts[0].radius * (1 + SCALE_INCREMENT);
            playAction("pose" + Calc.randomNatural(1, 4).ToString());
            if (currentHits >= HITS_PER_POSE)
            {
                currentHits = 0;
                ++poseChanges;
                OrbManager.Instance.addOrbs(position2D, 2, 0, 0, 0);
                if (poseChanges >= CHANGE_POSES)
                {
                    SoundManager.Instance.playEffect(entityName + "Dies");
                    return false;

                }
            }
            ParticleManager.Instance.addParticles(entityName + "GotHit", this.position, Vector3.Zero, Color.White);
            SoundManager.Instance.playEffect(entityName + "GotHit");
            return true;
        }
Esempio n. 6
0
        public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
        {
            if (invulnerableTime > 0.0f) return true;

            --lifePortions;
            invulnerableTime = INVULNERABLE_TIME;
            bool isMiniDie = false;
            if (lifePortions <= 0)
            {
                isMiniDie = true;
                invulnerableTime += actions["miniDie"].getDuration();
            #if !EDITOR
                --lifes;
            #endif
                playAction("miniDie");
                if (lifes > 0)
                {
                    lifePortions = getMaxLifePortions();
                }
            }

            bool finalDie = lifePortions <= 0 && lifes <= 0;

            if (finalDie)
            {
                die();
            }
            else if (isMiniDie)
            {
                miniDie();
            }
            else
            {
                SoundManager.Instance.playEffect("wishGotHit");
            }

            return !finalDie;
        }
 // returns true if this collidable entity dies
 public virtual bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
 {
     // OVERRIDE at each entity who wants specific behavior when hit
     return true;
 }
Esempio n. 8
0
 public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
 {
     if (state == tState.S******g || state == tState.Recovering) return true;
     return base.gotHitAtPart(ce, partIndex);
 }
Esempio n. 9
0
 public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
 {
     return true;
 }
Esempio n. 10
0
 public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
 {
     ParticleManager.Instance.addParticles(entityName + "GotHit", this.position, Vector3.Zero, Color.White);
     SoundManager.Instance.playEffect(entityName + "GotHit");
     return true;
 }
Esempio n. 11
0
        public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex)
        {
            if (visible && state != tMacedoniaBossState.Die)
            {
                numHits++;
                life -= ce.damage;

                if (life < 0)
                {
                    changeState(tMacedoniaBossState.Die);
                    SoundManager.Instance.playEffect(entityName + "Dies");
                }

                life = Math.Max(life, 1);
            }

            ParticleManager.Instance.addParticles(entityName + "GotHit", this.position + new Vector3(0, -120, 5), Vector3.Zero, Color.White);
            if (life > 0)
            {
                SoundManager.Instance.playEffect(entityName + "GotHit");
            }
            else
            {
                //SoundManager.Instance.playEffect(entityName + "Dies");
            }
            return life > 0;
        }