Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into russian

This commit is contained in:
ZomgPonies
2015-12-20 06:29:28 -05:00
460 changed files with 19824 additions and 18913 deletions
@@ -4,7 +4,7 @@
icon_state = "laser"
item_state = "laser"
fire_sound = 'sound/weapons/Laser.ogg'
charge_cost = 830
charge_cost = 760
w_class = 3.0
materials = list(MAT_METAL=2000)
origin_tech = "combat=3;magnets=2"
@@ -207,6 +207,24 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
var/overheat_time = 16
var/recent_reload = 1
/obj/item/weapon/gun/energy/kinetic_accelerator/super
name = "super-kinetic accelerator"
desc = "An upgraded, superior version of the proto-kinetic accelerator."
icon_state = "kineticgun_u"
projectile_type = "/obj/item/projectile/kinetic/super"
overheat_time = 15
fire_delay = 15
origin_tech = "combat=3;powerstorage=2"
/obj/item/weapon/gun/energy/kinetic_accelerator/hyper
name = "hyper-kinetic accelerator"
desc = "An upgraded, even more superior version of the proto-kinetic accelerator."
icon_state = "kineticgun_h"
projectile_type = "/obj/item/projectile/kinetic/hyper"
overheat_time = 13
fire_delay = 13
origin_tech = "combat=4;powerstorage=3"
/obj/item/weapon/gun/energy/kinetic_accelerator/cyborg
flags = NODROP
@@ -337,4 +355,69 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
self_recharge = 1
use_external_power = 1
recharge_time = 5
recharge_time = 5
/obj/item/weapon/gun/energy/wormhole_projector
name = "bluespace wormhole projector"
desc = "A projector that emits high density quantum-coupled bluespace beams."
projectile_type = "/obj/item/projectile/beam/wormhole"
charge_cost = 0
fire_sound = "sound/weapons/pulse3.ogg"
item_state = null
icon_state = "wormhole_projector100"
modifystate = "wormhole_projector"
var/obj/effect/portal/blue
var/obj/effect/portal/orange
var/mode = 0 //0 = blue 1 = orange
/obj/item/weapon/gun/energy/wormhole_projector/attack_self(mob/living/user as mob)
switch_modes()
/obj/item/weapon/gun/energy/wormhole_projector/proc/switch_modes(mob/living/user as mob)
switch(mode)
if(0)
mode = 1
user << "<span class='warning'>[name] is now set to orange.</span>"
projectile_type = "/obj/item/projectile/beam/wormhole/orange"
modifystate = "wormhole_projector_orange"
if(1)
mode = 0
user << "<span class='warning'>[name] is now set to blue.</span>"
projectile_type = "/obj/item/projectile/beam/wormhole"
modifystate = "wormhole_projector"
update_icon()
if(user.hand)
user.update_inv_l_hand()
else
user.update_inv_r_hand()
/obj/item/weapon/gun/energy/wormhole_projector/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)
..()
switch_modes(user)
/obj/item/weapon/gun/energy/wormhole_projector/proc/portal_destroyed(obj/effect/portal/P)
if(P.icon_state == "portal")
blue = null
if(orange)
orange.target = null
else
orange = null
if(blue)
blue.target = null
/obj/item/weapon/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W)
var/obj/effect/portal/P = new /obj/effect/portal(get_turf(W), null, src)
P.precision = 0
P.failchance = 0
if(W.name == "bluespace beam")
qdel(blue)
blue = P
else
qdel(orange)
P.icon_state = "portal1"
orange = P
if(orange && blue)
blue.target = get_turf(orange)
orange.target = get_turf(blue)
+127
View File
@@ -0,0 +1,127 @@
/obj/item/weapon/gun/medbeam
name = "Medical Beamgun"
desc = "Delivers medical nanites in a focused beam."
icon = 'icons/obj/chronos.dmi'
icon_state = "chronogun"
item_state = "chronogun"
w_class = 3.0
var/mob/living/current_target
var/last_check = 0
var/check_delay = 10 //Check los as often as possible, max resolution is SSobj tick though
var/max_range = 8
var/active = 0
var/datum/beam/current_beam = null
heavy_weapon = 1
/obj/item/weapon/gun/medbeam/New()
..()
processing_objects.Add(src)
/obj/item/weapon/gun/medbeam/Destroy()
processing_objects.Remove(src)
return ..()
/obj/item/weapon/gun/medbeam/dropped(mob/user)
..()
LoseTarget()
/obj/item/weapon/gun/medbeam/proc/LoseTarget()
if(active)
qdel(current_beam)
active = 0
on_beam_relase(current_target)
current_target = null
/obj/item/weapon/gun/medbeam/Fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, params)
add_fingerprint(user)
if(!isliving(target))
return
if(current_target)
LoseTarget()
current_target = target
active = 1
current_beam = new(user,current_target,time=6000)
spawn(0)
current_beam.Start()
feedback_add_details("gun_fired","[src.type]")
/obj/item/weapon/gun/medbeam/afterattack(obj/target, mob/user, proximity)
if(target.loc == loc || target == user)
return
if(!current_target && isliving(target))
current_target = target
active = 1
current_beam = new(user,current_target,time=6000)
spawn(0)
current_beam.Start()
/obj/item/weapon/gun/medbeam/process()
var/mob/living/carbon/human/H = loc
if(!istype(H))
LoseTarget()
return
if(!current_target)
LoseTarget()
return
if(world.time <= last_check+check_delay)
return
last_check = world.time
if(get_dist(H,current_target)>max_range || !los_check(H,current_target))
LoseTarget()
H << "<span class='warning'>You lose control of the beam!</span>"
return
if(current_target)
on_beam_tick(current_target)
/obj/item/weapon/gun/medbeam/proc/los_check(mob/user,mob/target)
var/turf/user_turf = user.loc
if(!istype(user_turf))
return 0
var/obj/dummy = new(user_turf)
dummy.pass_flags |= PASSTABLE & PASSGLASS & PASSGRILLE //Grille/Glass so it can be used through common windows
for(var/turf/turf in getline(user_turf,target))
if(turf.density)
qdel(dummy)
return 0
for(var/atom/movable/AM in turf)
if(!AM.CanPass(dummy,turf,1))
qdel(dummy)
return 0
for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams!
if(B.owner != current_beam)
explosion(B.loc,0,3,5,8)
qdel(dummy)
return 0
qdel(dummy)
return 1
/obj/item/weapon/gun/medbeam/proc/on_beam_hit(var/mob/living/target)
return
/obj/item/weapon/gun/medbeam/proc/on_beam_tick(var/mob/living/target)
target.adjustBruteLoss(-4)
target.adjustFireLoss(-4)
if(ishuman(target))
var/var/mob/living/carbon/human/H = target
for(var/obj/item/organ/external/E in H.organs)
if(prob(10))
if(E.mend_fracture())
E.perma_injury = 0
return
/obj/item/weapon/gun/medbeam/proc/on_beam_relase(var/mob/living/target)
return
/obj/effect/ebeam/medical
name = "medical beam"
@@ -9,6 +9,7 @@
/obj/item/projectile/energy/electrode
name = "electrode"
icon_state = "spark"
color = "#FFFF00"
nodamage = 1
stun = 5
weaken = 5
@@ -218,6 +218,16 @@
damage_type = BRUTE
flag = "bomb"
range = 3
var/splash = 0
/obj/item/projectile/kinetic/super
damage = 11
range = 4
/obj/item/projectile/kinetic/hyper
damage = 12
range = 5
splash = 1
obj/item/projectile/kinetic/New()
var/turf/proj_turf = get_turf(src)
@@ -243,6 +253,11 @@ obj/item/projectile/kinetic/New()
var/turf/simulated/mineral/M = target_turf
M.gets_drilled(firer)
new /obj/item/effect/kinetic_blast(target_turf)
if(src.splash)
for(var/turf/T in range(splash, target_turf))
if(istype(T, /turf/simulated/mineral))
var/turf/simulated/mineral/M = T
M.gets_drilled(firer)
/obj/item/effect/kinetic_blast
name = "kinetic explosion"
@@ -316,3 +331,27 @@ obj/item/projectile/kinetic/New()
/obj/item/projectile/plasma/adv/mech
damage = 10
range = 6
/obj/item/projectile/beam/wormhole
name = "bluespace beam"
icon_state = "spark"
hitsound = "sparks"
damage = 3
var/obj/item/weapon/gun/energy/wormhole_projector/gun = null
color = "#33CCFF"
/obj/item/projectile/beam/wormhole/orange
name = "orange bluespace beam"
color = "#FF6600"
/obj/item/projectile/beam/wormhole/OnFired()
gun = shot_from
/obj/item/projectile/beam/wormhole/on_hit(atom/target)
if(ismob(target))
var/turf/portal_destination = pick(orange(6, src))
do_teleport(target, portal_destination)
return ..()
if(!gun)
qdel(src)
gun.create_portal(src)