polishing

This commit is contained in:
DeityLink
2015-08-10 01:05:04 +02:00
parent 92a84648e4
commit 182ef129d0
6 changed files with 98 additions and 42 deletions

View File

@@ -98,23 +98,25 @@ obj/machinery/recharger/process()
if(charging)
if(istype(charging, /obj/item/weapon/gun/energy))
var/obj/item/weapon/gun/energy/E = charging
if(E.power_supply.charge < E.power_supply.maxcharge)
if((E.power_supply.charge + 100) < E.power_supply.maxcharge)
E.power_supply.give(100)
icon_state = "recharger1"
use_power(250)
update_icon()
else
E.power_supply.charge = E.power_supply.maxcharge
update_icon()
icon_state = "recharger2"
return
else if(istype(charging, /obj/item/energy_magazine))//pulse bullet casings
var/obj/item/energy_magazine/M = charging
if(M.bullets < M.max_bullets)
if((M.bullets + 3) < M.max_bullets)
M.bullets = min(M.max_bullets,M.bullets+3)
icon_state = "recharger1"
use_power(250)
update_icon()
else
M.bullets = M.max_bullets
update_icon()
icon_state = "recharger2"
return
@@ -147,12 +149,12 @@ obj/machinery/recharger/emp_act(severity)
obj/machinery/recharger/update_icon() //we have an update_icon() in addition to the stuff in process to make it feel a tiny bit snappier.
if(charging)
overlays = 0
overlays.len = 0
charging.update_icon()
overlays += charging.appearance
icon_state = "recharger1"
else
overlays = 0
overlays.len = 0
icon_state = "recharger0"
obj/machinery/recharger/wallcharger

View File

@@ -50,7 +50,7 @@ obj/item/weapon/gun/energy/laser/retro
item_state = null
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/guninhands_left.dmi', "right_hand" = 'icons/mob/in-hand/right/guninhands_right.dmi')
desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
projectile_type = /obj/item/projectile/beam/retro
/obj/item/weapon/gun/energy/laser/captain
icon_state = "caplaser"

View File

@@ -266,7 +266,6 @@ var/list/impact_master = list()
for(var/mob/M in A)
M.bullet_act(src, def_zone)
if(bounces || phases)
//the bullets first checks if it can bounce off the obstacle, and if it cannot it then checks if it can phase through it, if it cannot either then it dies.
var/reaction_type = A.projectile_check()
if(bounces && (bounce_type & reaction_type))

View File

@@ -15,6 +15,10 @@ var/list/beam_master = list()
/obj/item/projectile/beam/captain
name = "captain laser"
damage = 40
linear_movement = 0
/obj/item/projectile/beam/retro
linear_movement = 0
/obj/item/projectile/beam/lightning
invisibility = 101
@@ -217,7 +221,7 @@ var/list/beam_master = list()
icon_state = "laser"
invisibility = 101
animate_movement = 2
linear_movement = 0
linear_movement = 1
layer = 13
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
@@ -227,8 +231,34 @@ var/list/beam_master = list()
eyeblur = 4
var/frequency = 1
/obj/item/projectile/beam/OnFired()
return ..()
/obj/item/projectile/beam/OnFired() //if assigned, allows for code when the projectile gets fired
target = get_turf(original)
dist_x = abs(target.x - starting.x)
dist_y = abs(target.y - starting.y)
override_starting_X = starting.x
override_starting_Y = starting.y
override_target_X = target.x
override_target_Y = target.y
if (target.x > starting.x)
dx = EAST
else
dx = WEST
if (target.y > starting.y)
dy = NORTH
else
dy = SOUTH
if(dist_x > dist_y)
error = dist_x/2 - dist_y
else
error = dist_y/2 - dist_x
target_angle = round(Get_Angle(starting,target))
return 1
/obj/item/projectile/beam/process()
var/lastposition = loc
@@ -294,6 +324,7 @@ var/list/beam_master = list()
if(bump_original_check())
return reference
if(linear_movement)
update_pixel()
//If the icon has not been added yet
@@ -320,6 +351,29 @@ var/list/beam_master = list()
var/list/turfs = list()
turfs["[icon_state]_angle[target_angle]_pX[PixelX]_pY[PixelY]"] = list(loc)
beam_master[reference] = turfs
else
//If the icon has not been added yet
if( !("[icon_state][target_dir]" in beam_master) )
var/image/I = image(icon,icon_state,10,target_dir) //Generate it.
beam_master["[icon_state][target_dir]"] = I //And cache it!
//Finally add the overlay
if(src.loc && target_dir)
src.loc.overlays += beam_master["[icon_state][target_dir]"]
//Add the turf to a list in the beam master so they can be cleaned up easily.
if(reference in beam_master)
var/list/turf_master = beam_master[reference]
if("[icon_state][target_dir]" in turf_master)
var/list/turfs = turf_master["[icon_state][target_dir]"]
turfs += loc
else
turf_master["[icon_state][target_dir]"] = list(loc)
else
var/list/turfs = list()
turfs["[icon_state][target_dir]"] = list(loc)
beam_master[reference] = turfs
return reference

View File

@@ -416,6 +416,7 @@
icon = 'icons/obj/lightning.dmi'
icon_state = "heatray"
animate_movement = 0
linear_movement = 0
pass_flags = PASSTABLE
var/drawn = 0
var/tang = 0

View File

@@ -64,7 +64,7 @@ obj/item/weapon/gun/energy/laser/retro/sc_retro
name ="retro laser"
icon_state = "retro"
desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces."
projectile_type = "/obj/item/projectile/practice"
projectile_type = "/obj/item/projectile/beam/practice"
clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face
//Syndicate silenced pistol. This definition is not necessary, it's just habit.