public void Palleroi(Morte peli) { for (int i = 0; i < Palloja; i++) { double scale = RandomGen.NextDouble(0.5, 1.5); double dir = RandomGen.NextDouble(-10, 10); double velocity = VOIMA; double hue = (dir + 10) / 20 * 240; var p = new FysiikkaObjekti(Koko * scale, Koko * scale); p.Color = ColorUtils.HsvToRgb(hue, 1, 0.9); p.Shape = Shape.Circle; p.LifetimeLeft = TimeSpan.FromSeconds(2); p.Position = peli.Pelaaja.AbsolutePosition + peli.Pelaaja.Sijainti_Suu; var mouse = peli.Mouse.PositionOnWorld; var rad = Math.Atan2(mouse.Y - p.Position.Y, mouse.X - p.Position.X); p.Hit(Vector.FromLengthAndAngle(velocity, Angle.FromRadians(rad) + Angle.FromDegrees(dir))); p.AddCollisionIgnoreGroup(Sankari.IGNORE_ID); peli.AddCollisionHandlerByTag <FysiikkaObjekti, Vihulainen>(p, "vihu", OsuVihuun); peli.Add(p, Morte.TASO_OLETUS); } Toistin.Interval += 0.002; peli.Pelaaja.Vahingoita(2); }
public void Laukaise(Morte peli) { HolyHandgranade kranaatti = new HolyHandgranade() { AngularVelocity = 1 * peli.Pelaaja.Suunta }; var suunta = (peli.Pelaaja.X >= peli.Mouse.PositionOnWorld.X) ? Angle.FromDegrees(135) : Angle.FromDegrees(45); peli.Pelaaja.Throw(kranaatti, suunta, VOIMA); peli.AddCollisionHandlerByTag <HolyHandgranade, Vihulainen>(kranaatti, "vihu", OsuVihuun); kranaatti.Explosion.AddShockwaveHandler("vihu", ShokkiaaltoOsuu); peli.Pelaaja.Vahingoita(Käyttöhinta); }