Bluespace wormhole projector

- emits quantum-coupled bluespace beams
- high research requirements: combat 6, materials 6, bluespace 4
- sprites by Nienhaus. Big thanks!
- electrodes now colored with the color var
This commit is contained in:
Perakp
2014-10-26 15:06:30 +02:00
parent 0cc07336d8
commit 0761d42d65
11 changed files with 103 additions and 8 deletions
+6 -6
View File
@@ -8,13 +8,11 @@
var/obj/item/target = null
var/creator = null
anchored = 1.0
var/precision = 1 // how close to the portal you will teleport. 0 = on the portal, 1 = adjacent
/obj/effect/portal/Bumped(mob/M as mob|obj)
src.teleport(M)
/obj/effect/portal/Crossed(AM as mob|obj)
src.teleport(AM)
/obj/effect/portal/New(loc, turf/target, creator, lifespan=300)
portals += src
src.loc = loc
@@ -32,6 +30,9 @@
if(istype(creator, /obj/item/weapon/hand_tele))
var/obj/item/weapon/hand_tele/O = creator
O.active_portals--
else if(istype(creator, /obj/item/weapon/gun/energy/wormhole_projector))
var/obj/item/weapon/gun/energy/wormhole_projector/P = creator
P.portal_destroyed(src)
return ..()
/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj)
@@ -39,11 +40,10 @@
return
if(M.anchored&&istype(M, /obj/mecha))
return
if(icon_state == "portal1")
return
if (!( target ))
qdel(src)
return
if (istype(M, /atom/movable))
do_teleport(M, target, 1) ///You will appear adjacent to the beacon
do_teleport(M, target, precision) ///You will appear adjacent to the beacon
+13 -1
View File
@@ -120,4 +120,16 @@
projectile_type = /obj/item/projectile/energy/disabler
select_name = "disable"
e_cost = 50
fire_sound = "sound/weapons/taser.ogg"
fire_sound = "sound/weapons/taser.ogg"
/obj/item/ammo_casing/energy/wormhole
projectile_type = /obj/item/projectile/beam/wormhole
e_cost = 0
fire_sound = "sound/weapons/pulse3.ogg"
var/obj/item/weapon/gun/energy/wormhole_projector/gun = null
select_name = "blue"
/obj/item/ammo_casing/energy/wormhole/orange
projectile_type = /obj/item/projectile/beam/wormhole/orange
select_name = "orange"
@@ -135,3 +135,48 @@
item_state = null
ammo_type = list(/obj/item/ammo_casing/energy/disabler)
cell_type = "/obj/item/weapon/stock_parts/cell"
/obj/item/weapon/gun/energy/wormhole_projector
name = "bluespace wormhole projector"
desc = "A projector that emits high density quantum-coupled bluespace beams."
ammo_type = list(/obj/item/ammo_casing/energy/wormhole, /obj/item/ammo_casing/energy/wormhole/orange)
item_state = null
icon_state = "wormhole_projector"
var/obj/effect/portal/blue
var/obj/effect/portal/orange
/obj/item/weapon/gun/energy/wormhole_projector/update_icon()
icon_state = "[initial(icon_state)][select]"
return
/obj/item/weapon/gun/energy/wormhole_projector/attack_self(mob/living/user as mob)
select_fire(user)
/obj/item/weapon/gun/energy/wormhole_projector/process_chamber()
..()
select_fire()
/obj/item/weapon/gun/energy/wormhole_projector/proc/portal_destroyed(var/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(var/obj/item/projectile/beam/wormhole/W)
var/obj/effect/portal/P = new /obj/effect/portal(get_turf(W), null, src)
P.precision = 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)
@@ -4,6 +4,7 @@
damage = 0
damage_type = BURN
flag = "energy"
color = "#FFFF00"
/obj/item/projectile/energy/electrode
+28 -1
View File
@@ -148,4 +148,31 @@ obj/item/projectile/kinetic/New()
/obj/item/effect/kinetic_blast/New()
spawn(4)
qdel(src)
qdel(src)
/obj/item/projectile/beam/wormhole
name = "bluespace beam"
icon_state = "spark"
hitsound = "sparks"
damage = 3
var/obj/item/weapon/gun/energy/wormhole_projector/gun
color = "#33CCFF"
/obj/item/projectile/beam/wormhole/orange
name = "orange bluespace beam"
color = "#FF6600"
/obj/item/projectile/beam/wormhole/New(var/obj/item/ammo_casing/energy/wormhole/casing)
if(casing)
gun = casing.gun
/obj/item/ammo_casing/energy/wormhole/New(var/obj/item/weapon/gun/energy/wormhole_projector/wh)
gun = wh
/obj/item/projectile/beam/wormhole/on_hit(var/atom/target)
if(ismob(target))
..()
return
if(!gun)
qdel(src)
gun.create_portal(src)
@@ -141,6 +141,16 @@ datum/design/ionrifle
build_path = /obj/item/weapon/gun/energy/ionrifle
locked = 1
datum/design/wormhole_projector
name = "Bluespace Wormhole Projector"
desc = "A projector that emits high density quantum-coupled bluespace beams."
id = "wormholeprojector"
req_tech = list("combat" = 6, "materials" = 6, "bluespace" = 4)
build_type = PROTOLATHE
materials = list("$silver" = 1000, "$metal" = 5000, "$diamond" = 3000)
build_path = /obj/item/weapon/gun/energy/wormhole_projector
locked = 1
datum/design/reciever
name = "Modular Reciever"
desc = "A prototype modular reciever and trigger assembly for a variety of firearms."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 162 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 87 KiB