mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 13:30:42 +01:00
The DPRA enters the scene: the Hailstorm Ship (#15567)
This commit is contained in:
@@ -26,14 +26,15 @@
|
||||
var/storage_type = /obj/item/storage/toolbox/bike_storage
|
||||
var/obj/item/storage/storage_compartment
|
||||
var/datum/effect_system/ion_trail/ion
|
||||
var/ion_type = /datum/effect_system/ion_trail
|
||||
var/kickstand = TRUE
|
||||
var/can_hover = TRUE
|
||||
|
||||
/obj/vehicle/bike/setup_vehicle()
|
||||
..()
|
||||
ion = new(src)
|
||||
ion = new ion_type(src)
|
||||
turn_off()
|
||||
add_overlay(image('icons/obj/bike.dmi', "[icon_state]_off_overlay", MOB_LAYER + 1))
|
||||
add_overlay(image(icon, "[icon_state]_off_overlay", MOB_LAYER + 1))
|
||||
icon_state = "[bike_icon]_off"
|
||||
if(storage_type)
|
||||
storage_compartment = new storage_type(src)
|
||||
@@ -178,10 +179,10 @@
|
||||
cut_overlays()
|
||||
|
||||
if(on)
|
||||
add_overlay(image('icons/obj/bike.dmi', "[bike_icon]_on_overlay", MOB_LAYER + 1))
|
||||
add_overlay(image(icon, "[bike_icon]_on_overlay", MOB_LAYER + 1))
|
||||
icon_state = "[bike_icon]_on"
|
||||
else
|
||||
add_overlay(image('icons/obj/bike.dmi', "[bike_icon]_off_overlay", MOB_LAYER + 1))
|
||||
add_overlay(image(icon, "[bike_icon]_off_overlay", MOB_LAYER + 1))
|
||||
icon_state = "[bike_icon]_off"
|
||||
|
||||
..()
|
||||
@@ -194,6 +195,9 @@
|
||||
|
||||
/obj/vehicle/bike/Collide(var/atom/movable/AM)
|
||||
. = ..()
|
||||
collide_act(AM)
|
||||
|
||||
/obj/vehicle/bike/proc/collide_act(var/atom/movable/AM)
|
||||
var/mob/living/M
|
||||
if(!buckled)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
/obj/vehicle/bike/wasp_torpedo
|
||||
name = "wasp torpedo"
|
||||
desc = "A manned torpedo used by the Al'mariist space forces."
|
||||
icon = 'icons/obj/wasp_torpedo.dmi'
|
||||
icon_state = "torpedo_off"
|
||||
|
||||
desc_info = "Click-drag yourself onto the torpedo to climb onto it.<br>\
|
||||
- CTRL-click the torpedo to toggle the engine.<br>\
|
||||
- ALT-click to toggle the kickstand which prevents movement by driving and dragging.<br>\
|
||||
- Click the resist button or type \"resist\" in the command bar at the bottom of your screen to get off the torpedo.<br>\
|
||||
- CTRL-SHIFT-click to cause it to charge and detonate on impact."
|
||||
|
||||
health = 300
|
||||
maxhealth = 300
|
||||
|
||||
fire_dam_coeff = 0.5
|
||||
brute_dam_coeff = 0.4
|
||||
|
||||
mob_offset_y = 1
|
||||
|
||||
bike_icon = "torpedo"
|
||||
dir = EAST
|
||||
|
||||
land_speed = 3
|
||||
space_speed = 1
|
||||
|
||||
storage_type = null
|
||||
|
||||
pixel_y = -16
|
||||
pixel_x = -16
|
||||
|
||||
ion_type = /datum/effect_system/ion_trail/explosion
|
||||
|
||||
var/primmed = FALSE
|
||||
|
||||
/obj/item/mesmetron/Destroy()
|
||||
STOP_PROCESSING(SSfast_process, src)
|
||||
. = ..()
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/collide_act(var/atom/movable/AM)
|
||||
if(!AM.density)
|
||||
return
|
||||
if(!primmed)
|
||||
return
|
||||
|
||||
torpedo_explosion()
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/proc/torpedo_explosion()
|
||||
STOP_PROCESSING(SSfast_process, src)
|
||||
primmed = FALSE
|
||||
if(prob(25) && buckled) //has a chance of being thrown off when it explodes
|
||||
if(ishuman(buckled))
|
||||
var/mob/living/carbon/human/C = buckled
|
||||
C.visible_message(SPAN_DANGER ("\The [C] is thrown off from \the [src]!"))
|
||||
unload(C)
|
||||
C.throw_at(get_edge_target_turf(loc, loc.dir), 5, 1)
|
||||
C.apply_effect(2, WEAKEN)
|
||||
if(buckled)
|
||||
unload(buckled)
|
||||
if(ishuman(buckled))
|
||||
var/mob/living/carbon/human/V = buckled
|
||||
V.apply_effect(2, WEAKEN)
|
||||
explosion(loc, 1, 2, 4, 8)
|
||||
visible_message(SPAN_DANGER ("\The [src] detonates!"))
|
||||
qdel(src)
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/proc/prime(var/mob/user)
|
||||
if(primmed)
|
||||
if(user)
|
||||
to_chat(src, SPAN_WARNING("The priming button is jammed. There is no turning back now."))
|
||||
return
|
||||
if(!on)
|
||||
turn_on()
|
||||
kickstand = FALSE
|
||||
visible_message(SPAN_DANGER ("\The [src] begins to beep omnisouly before charging!"))
|
||||
playsound(get_turf(src), 'sound/items/countdown.ogg', 75, 1, -3)
|
||||
primmed = TRUE
|
||||
land_speed = 1
|
||||
space_speed = 1
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/CtrlShiftClick(var/mob/user)
|
||||
prime(user)
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/process()
|
||||
if(!primmed)
|
||||
return
|
||||
Move(get_step(src, dir))
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/turn_off()
|
||||
if(primmed)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(Proj.get_structure_damage())
|
||||
if(prob(10))
|
||||
torpedo_explosion()
|
||||
..()
|
||||
|
||||
/obj/vehicle/bike/wasp_torpedo/ex_act(severity)
|
||||
switch(severity)
|
||||
if(1.0)
|
||||
torpedo_explosion()
|
||||
return
|
||||
if(2.0)
|
||||
if(prob(50))
|
||||
torpedo_explosion()
|
||||
..()
|
||||
Reference in New Issue
Block a user