Rotando lo tenía como que fuera -100~-50 o 50~100, cuando no estaba influyendo la puntería. Ahora que va a influir, supongo que puedo usar un método más parecido a los otros.
Veo que no hay random, o sea:
ApuntandoX = 350*(2*random(2)-1);
Eso da -350 o 350, bien.
Pero quiero que varíe de 0 a 25%, hacia arriba o abajo. 25% porque 100-Puntería es 25, si Puntería fuese otra cosa tendría que ser otro número.
Tendría que ser:
ApuntandoX = ApuntandoX+ApuntandoX*random(101-Punteria)/100*(2*random(2)-1);
101 porque los posibles resultados se cuentan desde 0, si fuese 100 el máximo resultado sería 99. Como en el caso del 2 que pongo, que es 0 o 1, 2 posibles resultados.
Con Math.random sería mejor pero de momento no me doy cuenta cómo. O sea, así como está puede sumar o restar 0%, o 1%, etc, siempre números enteros. Ah, ya sé:
ApuntandoX = ApuntandoX+ApuntandoX*Math.random()*(100-Punteria)/100*(2*random(2)-1);
Voy a probar esas cosas.
A ver esto por curiosidad:
Yo probaría con:
Rotando = (50+50*Math.random())*(2*random(2)-1);
VariacionDeRotando = Rotando*((100-Rotando)*Punteria)/10000
Me da por ejemplo -100 y entonces:
-100*((100--100)*75)/10000
Deepseek dice que da -150, no sirve porque eso se le debe sumar a Rotando y se sale del rango deseado.
Ya probé, parece bien.
Tengo esto:
ApuntandoX = 350*(2*random(2)-1);
ApuntandoX = ApuntandoX+ApuntandoX*Math.random()*(100-Punteria)/100*(2*random(2)-1);
ApuntandoY = 20.5+279.5*random(2);
ApuntandoY = ApuntandoY+ApuntandoY*Math.random()*(100-Punteria)/100*(2*random(2)-1);
Rotando = (100-100*Math.random()*(100-Punteria)/100)*(2*random(2)-1);Probé con diferentes valor de Puntería.
ApuntandoX es -350 o 350, con su correspondiente variación.
ApuntandoY es 20.5 o 300, idem.
Rotando es -100 o 100, en este caso puede ser un poco más de -100 o menos de 100, por ejemplo con Puntería es hasta -75 o hasta 75. Como si se aplicara el 75% de la capacidad de la nave.
Es lo que quería.