internal void Detonate(Mine mMine) { foreach (Bibble b in bibbles) { float dist = Vector2.Distance(b.Position, mMine.Position); //TODO move to model if (dist < mMine.Radius) b.Damage(mMine.InnerDamage); else if (dist < mMine.OuterRadius) b.Damage(mMine.InnerDamage * (mMine.OuterRadius - dist) / (mMine.OuterRadius - mMine.Radius)); } Explosion(mMine.Position, .7f, false); Components.Remove(mMine); }
internal void MineAction() { if (mMine == null) { if (IsDead) return; mMine = new Mine(Position, this, BibbleGame.Statics.MineTex, game); game.addMine(mMine); } else { game.Detonate(mMine); mMine = null; } }
public void addMine(Mine m) { Components.Add(m); }