public override Result OnUpdate(int t) { if (t == this.t) { Bullet[] bullets = new Bullet[64]; for (int i = 0; i < bullets.Length; i++) { double angle = (double)i / bullets.Length * Math.PI * 2; angle += (Math.PI * 2 * Math.Abs(Math.Sin(Vec2.D2R(t / 256.0)))); angle %= (Math.PI * 2); Vec2 pos = !((Vec2)(1, 0) ^ angle) * 8; bullets[i] = new Bullet(center + pos, center, texture); Vec2 vel = (Vec2)(1, 0) ^ angle; Vec2 acc = (vel ^ Vec2.D2R(90)) * 0.05; bullets[i].Vel(vel).Acc(acc); angle = ColorMod(t, Vec2.R2D(angle)); angle %= 360.0F; Utility.Color3 color = Utility.Hsv2RGB((float)angle, 1.0F, 1.0F); bullets[i].Color((color.r, color.g, color.b)); bullets[i].Player = thePlayer; NSSAGCore.PoolCluster.Add(bullets[i]); } return(Result.END); } return(Result.DONE); }