diff --git a/code/WorkInProgress/pomf/spacepods/spacepods.dm b/code/WorkInProgress/pomf/spacepods/spacepods.dm index ae5b6405451..971d84ad6bc 100644 --- a/code/WorkInProgress/pomf/spacepods/spacepods.dm +++ b/code/WorkInProgress/pomf/spacepods/spacepods.dm @@ -17,7 +17,7 @@ var/obj/item/weapon/cell/high/battery var/datum/gas_mixture/cabin_air var/obj/machinery/portable_atmospherics/canister/internal_tank - var/datum/effect/effect/system/ion_trail_follow/space_trail/ion_trail + var/datum/effect/effect/system/trail/space_trail/ion_trail var/use_internal_tank = 0 var/datum/global_iterator/pr_int_temp_processor //normalizes internal air mixture temperature var/datum/global_iterator/pr_give_air //moves air from tank to cabin @@ -39,7 +39,7 @@ battery = new() add_cabin() add_airtank() - src.ion_trail = new /datum/effect/effect/system/ion_trail_follow/space_trail() + src.ion_trail = new /datum/effect/effect/system/trail/space_trail() src.ion_trail.set_up(src) src.ion_trail.start() src.use_internal_tank = 1 diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index 6dbe51196ac..4043529d88c 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -512,16 +512,35 @@ steam.start() -- spawns the effect /// and don't call start() in a loop that will be repeated otherwise it'll get spammed! ///////////////////////////////////////////// -/obj/effect/effect/ion_trails - name = "ion trails" - icon_state = "ion_trails" +/obj/effect/effect/trails + name = "" + icon_state = "" anchored = 1 -/datum/effect/effect/system/ion_trail_follow + var/base_name="ion" + +/obj/effect/effect/trails/New() + ..() + name = "[base_name] trails" + icon_state = "[base_name]_trails" + +/obj/effect/effect/trails/proc/Play() + flick("[base_name]_fade", src) + icon_state = "blank" + spawn( 20 ) + if(src) + qdel(src) + +/obj/effect/effect/trails/ion + base_name = "ion" + +/datum/effect/effect/system/trail var/turf/oldposition var/processing = 1 var/on = 1 + var/trail_type=/obj/effect/effect/trails/ion + set_up(atom/atom) attach(atom) oldposition = get_turf(atom) @@ -536,31 +555,24 @@ steam.start() -- spawns the effect var/turf/T = get_turf(src.holder) if(T != src.oldposition) if(istype(T, /turf/space)) - var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) + var/obj/effect/effect/trails/I = new trail_type(src.oldposition) src.oldposition = T I.dir = src.holder.dir - flick("ion_fade", I) - I.icon_state = "blank" - spawn( 20 ) - if(I) qdel(I) - spawn(2) - if(src.on) - src.processing = 1 - src.start() - else - spawn(2) - if(src.on) - src.processing = 1 - src.start() + I.Play() + spawn(2) + if(src.on) + src.processing = 1 + src.start() proc/stop() src.processing = 0 src.on = 0 -/datum/effect/effect/system/ion_trail_follow/space_trail +/datum/effect/effect/system/trail/space_trail var/turf/oldloc // secondary ion trail loc var/turf/currloc -/datum/effect/effect/system/ion_trail_follow/space_trail/start() + +/datum/effect/effect/system/trail/space_trail/start() if(!src.on) src.on = 1 src.processing = 1 @@ -591,8 +603,8 @@ steam.start() -- spawns the effect src.oldloc = get_step(oldposition,NORTH) //src.oldloc = get_step(oldloc,EAST) if(istype(T, /turf/space)) - var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition) - var/obj/effect/effect/ion_trails/II = new /obj/effect/effect/ion_trails(src.oldloc) + var/obj/effect/effect/trails/ion/I = new /obj/effect/effect/trails/ion(src.oldposition) + var/obj/effect/effect/trails/ion/II = new /obj/effect/effect/trails/ion(src.oldloc) //src.oldposition = T I.dir = src.holder.dir II.dir = src.holder.dir @@ -603,15 +615,11 @@ steam.start() -- spawns the effect spawn( 20 ) if(I) qdel(I) if(II) qdel(II) - spawn(2) - if(src.on) - src.processing = 1 - src.start() - else - spawn(2) - if(src.on) - src.processing = 1 - src.start() + + spawn(2) + if(src.on) + src.processing = 1 + src.start() currloc = T diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 4f6a27575ad..67008830d7b 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -7,7 +7,7 @@ w_class = 3.0 item_state = "jetpack" distribute_pressure = ONE_ATMOSPHERE*O2STANDARD - var/datum/effect/effect/system/ion_trail_follow/ion_trail + var/datum/effect/effect/system/trail/ion_trail var/on = 0.0 var/stabilization_on = 0 var/volume_rate = 500 //Needed for borg jetpack transfer @@ -66,7 +66,7 @@ /obj/item/weapon/tank/jetpack/New() . = ..() - ion_trail = new /datum/effect/effect/system/ion_trail_follow() + ion_trail = new /datum/effect/effect/system/trail() ion_trail.set_up(src) /obj/item/weapon/tank/jetpack/void diff --git a/code/game/objects/structures/vehicles/wizmobile.dm b/code/game/objects/structures/vehicles/wizmobile.dm index f76304e67f5..29a9c67d0a2 100644 --- a/code/game/objects/structures/vehicles/wizmobile.dm +++ b/code/game/objects/structures/vehicles/wizmobile.dm @@ -3,6 +3,17 @@ desc = "A keyring with a small steel key, and a fancy blue and gold fob." icon_state = "magic_keys" +/obj/effect/effect/trails/firebird + base_name = "fire" + +/obj/effect/effect/trails/firebird/Play() + dir=pick(cardinal) + spawn(rand(10,20)) + qdel(src) + +/datum/effect/effect/system/trail/firebird + trail_type = /obj/effect/effect/trails/firebird + /obj/structure/stool/bed/chair/vehicle/wizmobile name = "\improper Firebird" desc = "A Pontiac Firebird Trans Am with skulls and crossbones on the hood, dark grey paint, and gold trim. No magic required for this baby." @@ -13,9 +24,20 @@ //ethereal=1 // NERF var/can_move=1 + var/datum/effect/effect/system/trail/firebird/ion_trail + +/obj/structure/stool/bed/chair/vehicle/wizmobile/New() + ..() + ion_trail = new /datum/effect/effect/system/trail/firebird() + ion_trail.set_up(src) + ion_trail.start() + + +/* Server vote on 16-12-2014 to disable wallmoving (10-7 Y) // Shit be ethereal. /obj/structure/stool/bed/chair/vehicle/wizmobile/CanPass(atom/movable/mover, turf/target, height=1.5, air_group = 0) return 1 +*/ /obj/structure/stool/bed/chair/vehicle/wizmobile/update_mob() if(buckled_mob) @@ -47,6 +69,7 @@ update_mob() +/* Server vote on 16-12-2014 to disable wallmoving (10-7 Y) /obj/structure/stool/bed/chair/vehicle/wizmobile/Bump(var/atom/obstacle) if(can_move) can_move = 0 @@ -61,4 +84,5 @@ can_move = 1 else . = ..() - return \ No newline at end of file + return +*/ \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index c537e451e34..fcccabeaed5 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -25,7 +25,7 @@ environment_smash = 2 minimum_distance = 3 retreat_distance = 2 - var/datum/effect/effect/system/ion_trail_follow/ion_trail + var/datum/effect/effect/system/trail/ion_trail var/hostile_time = 0 //the drone randomly switches between hostile/retaliation only states because it's malfunctioning diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index a8aa9123b12..3b221c7d811 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ