If you look at it there is kinda nothing cryptic there
Only difference between 2 strings are X and Y (because one is for X pos and other is for Y obviously)
Player.CenterX()+XFromAngleAndDistance(Player.Angle()+AngleOffset,20)
Player.CenterY()+YFromAngleAndDistance(Player.Angle()+AngleOffset,20)
See copy paste just X and Y is only difference
I will go on just explaining X cause its exactly same for Y
So we need to create bullet somewhere
As our base we use
Player.CenterX()
But that would create it in center of player we need to add some offset position to it
And we do not want JUST left or right we want some angle offset in 360° plane so we use
Player.CenterX() +
XFromAngleAndDistance(Player.Angle()+AngleOffset,20)
So we are telling game to create bullet at Player.CenterX() + some position calculated from angle and distance
And formula goes Player Angle + Variable ← to calculate what angle offset we want and with 20 pixels distance from Player.CenterX()
When you click LMB you set AngleOffset variable to 0 so its always starts from 0

You repeat this BS 8 times so i used calculator to divide 360 by 8 which is 45
That is why i am adding 45 to variable
So at first variable is 0 then its 45 then its 90 and so go on up to 360
Since we establish that bullet will be spawned from center of player + 20 pixels distance in some offset position of angle which is calculated from AngleOffset variable now you get how this variable with each repeat changes
And then i am pushing bullets with permanent force toward some angle
Where formula is
Bullet.AngleToObject(Player)-180
Simply angle from bullet to player but i -180 cause if not then bullets would go to player and not from player
Actually more sense would be
Player.AngleToObject(Bullet)
But on other hand its same as how far i am from you vs how far you are from me
Distance (value) will be the same just my pos and your pos will switch which is 1st in equation
Where again end result will be the same
So just to sum up
Player.CenterX()+XFromAngleAndDistance(Player.Angle()+AngleOffset,20)
Initial X position + ( Calculate X from angle and distance + AngleOffset variable )
Same for Y
Player.AngleToObject(Bullet)
Angle from one object to another object