private void Shoot() { var w = (_.Player.Position - P).Normalized; var n = 1; int _bullet; var spray = Danmaku.Spray(w, Mathf.PI, 20); foreach (var v in spray) { if (n == 1 || n % _.Difficulty.Choose(4, 4, 4, 3) == 0) { _bullet = _.Difficulty.Choose(4, 6, 8, 12); } else { _bullet = _.Difficulty.Choose(2, 3, 4, 4); } var line = Danmaku.Line(v, 0.5f, 1f, _bullet); foreach (var v1 in line) { _.World.Spawn( new LinearRoundBullet( // вместо раундбуллета стрелки сделать P, 2 * v1, Color.Red, Color.Red ) ); } n++; } }
private void Explode() { Despawn(); int ringSize = 20; int lineSize = 2; foreach (var v in Danmaku.Ring(XY.Up, ringSize)) { foreach (var w in Danmaku.Line(v, 1f, 1.5f, lineSize)) { The.World.Spawn(new PetalBullet(_target, w, Color.Yellow)); } } }
public override void Update(int t) { // if (t % 60 >= 15) return; if (t % 6 != 0) { return; } var v = new XY(t * Mathf.phiAngle / 180); foreach (var spawn in _spawns) { foreach (var w in Danmaku.Line(v, 1, 2, 2)) { The.World.Spawn(new Bullet(spawn, w, Color.Blue)); } } }
private void SpawnSmile(XY p, XY v, Color maincolor, Color borderColor) { var w = v.Normalized; var line = Danmaku.Line(w, 0, 40, 5); var spray = Danmaku.Spray(90 * w, Mathf.PI / 3, 9); var world = _.World; foreach (var offset in line) { world.Spawn(new VerticalBounceRoundBullet(p + 20 * w.Rotated90CW() + offset, v, maincolor, maincolor, 4)); world.Spawn(new VerticalBounceRoundBullet(p - 20 * w.Rotated90CW() + offset, v, maincolor, maincolor, 4)); } foreach (var offset in spray) { world.Spawn(new VerticalBounceRoundBullet(p + offset, v, maincolor, maincolor, 4)); } }
private void AlternateShoot(int t) { { var w = (_.Player.Position - P).Normalized; var line = Danmaku.Line(w, 1, 2, _.Difficulty.Choose(9999, 9999, 3, 4)); foreach (var v in line) { _.World.Spawn( new LinearRoundBullet( P, v, Color.Blue, Color.Blue ) ); } } }
private void InicialiseArena() { for (int i = 0; i < 5; i++) { var w = XY.Down.WithLength(World.Box.Bottom / _delay); var line = Danmaku.Line(w, 0.083f, 1, 12); foreach (var v in line) { _.World.Spawn( new StoppingLinearRoundBullet( new XY(0 + World.Box.Right / 5 * i, 0), v, Color.Blue, Color.Blue, _bulletsize, _delay )); } } for (int i = 0; i < 6; i++) { var w = XY.Right.WithLength(World.Box.Right / _delay); var line = Danmaku.Line(w, 0.1f, 1, 10); foreach (var v in line) { _.World.Spawn( new StoppingLinearRoundBullet( new XY(0, World.Box.Bottom / 12 + World.Box.Bottom / 6 * i), v, Color.Blue, Color.Blue, _bulletsize, _delay )); } } }