makes facing cardinal angles a helper, removes some beam rifle shitcode (#39162)

* Update beam_rifle.dm

* angle2dir_cardinal

* Ya learn something new every day

* Precision!
This commit is contained in:
kevinz000
2018-07-18 16:26:58 -07:00
committed by yogstation13-bot
parent d0b7bec244
commit 8b0d971f7b
2 changed files with 12 additions and 11 deletions

View File

@@ -143,6 +143,17 @@
if(337.5 to 360) if(337.5 to 360)
return NORTH return NORTH
/proc/angle2dir_cardinal(angle)
switch(round(angle, 0.1))
if(315.5 to 360, 0 to 45.5)
return NORTH
if(45.6 to 135.5)
return EAST
if(135.6 to 225.5)
return SOUTH
if(225.6 to 315.5)
return WEST
//returns the north-zero clockwise angle in degrees, given a direction //returns the north-zero clockwise angle in degrees, given a direction
/proc/dir2angle(D) /proc/dir2angle(D)
switch(D) switch(D)

View File

@@ -247,17 +247,7 @@
/obj/item/gun/energy/beam_rifle/proc/process_aim() /obj/item/gun/energy/beam_rifle/proc/process_aim()
if(istype(current_user) && current_user.client && current_user.client.mouseParams) if(istype(current_user) && current_user.client && current_user.client.mouseParams)
var/angle = mouse_angle_from_client(current_user.client) var/angle = mouse_angle_from_client(current_user.client)
switch(angle) current_user.setDir(angle2dir_cardinal(angle))
if(316 to 360)
current_user.setDir(NORTH)
if(0 to 45)
current_user.setDir(NORTH)
if(46 to 135)
current_user.setDir(EAST)
if(136 to 225)
current_user.setDir(SOUTH)
if(226 to 315)
current_user.setDir(WEST)
var/difference = abs(closer_angle_difference(lastangle, angle)) var/difference = abs(closer_angle_difference(lastangle, angle))
delay_penalty(difference * aiming_time_increase_angle_multiplier) delay_penalty(difference * aiming_time_increase_angle_multiplier)
lastangle = angle lastangle = angle