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; }
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; }
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; }
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; }
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; }
public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex) { if (state == tState.S******g || state == tState.Recovering) return true; return base.gotHitAtPart(ce, partIndex); }
public override bool gotHitAtPart(CollidableEntity2D ce, int partIndex) { return true; }
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; }
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; }