mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-01 04:52:16 +00:00
The icarus gun now acts as a spotter. The Icarus can now be fired via adminverbs.
This commit is contained in:
@@ -17,19 +17,19 @@
|
||||
mode = 0
|
||||
charge_cost = 100
|
||||
fire_sound = 'sound/weapons/Taser.ogg'
|
||||
user << "\red [src.name] is now set to stun."
|
||||
user << "\red \The [src] is now set to stun."
|
||||
projectile_type = /obj/item/projectile/beam/stun
|
||||
if(0)
|
||||
mode = 1
|
||||
charge_cost = 100
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
user << "\red [src.name] is now set to kill."
|
||||
user << "\red \The [src] is now set to kill."
|
||||
projectile_type = /obj/item/projectile/beam
|
||||
if(1)
|
||||
mode = 2
|
||||
charge_cost = 200
|
||||
fire_sound = 'sound/weapons/pulse.ogg'
|
||||
user << "\red [src.name] is now set to DESTROY."
|
||||
user << "\red \The [name] is now set to DESTROY."
|
||||
projectile_type = /obj/item/projectile/beam/pulse
|
||||
return
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
fire_delay = 10
|
||||
|
||||
attack_self(mob/living/user as mob)
|
||||
user << "\red [src.name] has three settings, and they are all DESTROY."
|
||||
user << "\red \The [src] has three settings, and they are all DESTROY."
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -235,43 +235,37 @@ obj/item/weapon/gun/energy/staff/focus
|
||||
zoom()
|
||||
|
||||
|
||||
// Serves as a target spotter for the Icarus.
|
||||
/obj/item/weapon/gun/energy/icarus
|
||||
name = "\improper N.D.V. Icarus"
|
||||
desc = "It feels like the fate of the Exodus in your hands. SO STOP FUCKING IT UP. It's set to fire point defense lasers.."
|
||||
name = "rubber ducky"
|
||||
desc = "It's a cute rubber duck. With an evil gleam in it's eye."
|
||||
projectile_type = "/obj/item/projectile/icarus/pointdefense"
|
||||
icon = 'icons/obj/watercloset.dmi'
|
||||
icon_state = "rubberducky"
|
||||
item_state = "rubberducky"
|
||||
charge_cost = 0
|
||||
silenced = 1
|
||||
var/popgun = 1
|
||||
|
||||
attack_self(mob/living/user as mob)
|
||||
if(popgun)
|
||||
popgun = 0
|
||||
desc = "It feels like the fate of the Exodus in your hands. SO STOP FUCKING IT UP. It's set to fire the main guns."
|
||||
if(projectile_type == "/obj/item/projectile/icarus/pointdefense")
|
||||
projectile_type = "/obj/item/projectile/icarus/guns"
|
||||
user << "You switch to using the main guns."
|
||||
|
||||
user << "You inform the Icarus to switch to the main guns."
|
||||
else
|
||||
popgun = 1
|
||||
desc = "It feels like the fate of the Exodus in your hands. SO STOP FUCKING IT UP. It's set to fire point defense lasers.."
|
||||
projectile_type = "/obj/item/projectile/icarus/pointdefense"
|
||||
user << "You switch to using the point-defense lasers."
|
||||
user << "You inform the Icarus to switch to the point-defense lasers."
|
||||
|
||||
. = ..()
|
||||
|
||||
update_icon()
|
||||
return
|
||||
|
||||
verb/fuckshitup()
|
||||
set name = "fuckshitup"
|
||||
set desc = "This will kill a lot of people."
|
||||
set hidden = 1
|
||||
verb/SetIcarusAngle()
|
||||
set src in usr
|
||||
set name = "Set Firing Angle"
|
||||
set desc = "Sets the angle from which the icarus will fire."
|
||||
set category = "Object"
|
||||
|
||||
popgun = 0
|
||||
desc = "It feels like the fate of the Exodus is in your han- wait, what the hell ARE YOU DOING!?"
|
||||
projectile_type = "/obj/item/projectile/icarus/torpedo"
|
||||
usr << "You tell the crew to load the highly illegal phasic torpedos. After the mutiny has been put down, you are ready to burn the world."
|
||||
Icarus_SetPosition(usr)
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/variable
|
||||
|
||||
@@ -113,7 +113,7 @@ var/list/beam_master = list()
|
||||
/obj/item/projectile/beam/emitter
|
||||
name = "emitter beam"
|
||||
icon_state = "emitter"
|
||||
damage = 30
|
||||
damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm
|
||||
|
||||
/obj/item/projectile/beam/lastertag/blue
|
||||
name = "lasertag beam"
|
||||
|
||||
@@ -140,66 +140,14 @@
|
||||
|
||||
/obj/item/projectile/icarus/pointdefense
|
||||
process()
|
||||
// should step down as:
|
||||
// 1000, 500, 333, 250, 200, 167, 142, 125, 111, 100, 90
|
||||
var/damage = 1000
|
||||
for(var/i in 2 to 12)
|
||||
var/obj/item/projectile/beam/in_chamber = new (src.loc)
|
||||
in_chamber.original = original
|
||||
in_chamber.starting = starting
|
||||
in_chamber.shot_from = shot_from
|
||||
in_chamber.silenced = silenced
|
||||
in_chamber.current = current
|
||||
in_chamber.yo = yo
|
||||
in_chamber.xo = xo
|
||||
in_chamber.damage = damage
|
||||
in_chamber.process()
|
||||
damage -= damage / i
|
||||
sleep(-1)
|
||||
|
||||
// Let everyone know what hit them.
|
||||
var/obj/item/projectile/beam/in_chamber = new (src.loc)
|
||||
in_chamber.original = original
|
||||
in_chamber.name = "point defense laser"
|
||||
in_chamber.starting = starting
|
||||
in_chamber.shot_from = shot_from
|
||||
in_chamber.silenced = 0
|
||||
in_chamber.firer = "Icarus" // Never displayed, but we want this to display the hit message.
|
||||
in_chamber.current = current
|
||||
in_chamber.yo = yo
|
||||
in_chamber.xo = xo
|
||||
in_chamber.damage = 0
|
||||
in_chamber.process()
|
||||
Icarus_FireLaser(get_turf(original))
|
||||
spawn(1)
|
||||
del src
|
||||
|
||||
return
|
||||
|
||||
/obj/item/projectile/icarus/guns
|
||||
process()
|
||||
var/turf/location = get_turf(src)
|
||||
//Find the world endge targetted.
|
||||
var/x = xo > 0 ? (world.maxx - location.x) / xo : xo < 0 ? (-location.x) / xo : 1.#INF
|
||||
var/y = yo > 0 ? (world.maxy - location.y) / yo : yo < 0 ? (-location.y) / yo : 1.#INF
|
||||
// Get the minimum number of steps using the rise/run shit.
|
||||
var/iterations = round(min(x,y)) - 1
|
||||
|
||||
var/turf/target = locate(location.x + iterations * xo, location.y + iterations * yo, location.z)
|
||||
var/turf/start = get_step(location, get_dir(location, target))
|
||||
var/obj/effect/meteor/small/projectile = new (start) // Let's not squish the firer.
|
||||
projectile.dest = target
|
||||
projectile.name = "main gun projectile" // stealthy
|
||||
projectile.hits = 6
|
||||
projectile.detonation_chance = 99 // it's a missile/cannon round thing!
|
||||
|
||||
spawn(0)
|
||||
projectile.throw_at(projectile.dest, 1.#INF, 5)
|
||||
walk_towards(projectile, projectile.dest, 1)
|
||||
|
||||
spawn(1)
|
||||
del src
|
||||
|
||||
return
|
||||
|
||||
/obj/item/projectile/icarus/torpedo
|
||||
//TODO
|
||||
/obj/item/projectile/icarus/guns/process()
|
||||
Icarus_FireCannon(get_turf(original))
|
||||
spawn
|
||||
del src
|
||||
return
|
||||
Reference in New Issue
Block a user