diff --git a/baystation12.dme b/baystation12.dme index 5167dc43992..d0d57470337 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1140,6 +1140,7 @@ #include "code\modules\projectiles\guns\energy\temperature.dm" #include "code\modules\projectiles\guns\projectile\automatic.dm" #include "code\modules\projectiles\guns\projectile\bow.dm" +#include "code\modules\projectiles\guns\projectile\launcher.dm" #include "code\modules\projectiles\guns\projectile\pistol.dm" #include "code\modules\projectiles\guns\projectile\pneumatic.dm" #include "code\modules\projectiles\guns\projectile\revolver.dm" @@ -1400,8 +1401,8 @@ #include "code\ZAS\FEA_system.dm" #include "code\ZAS\Fire.dm" #include "code\ZAS\Functions.dm" +#include "code\ZAS\NewSettings.dm" #include "code\ZAS\Plasma.dm" -#include "code\ZAS\Variable Settings.dm" #include "code\ZAS\ZAS_Turfs.dm" #include "code\ZAS\ZAS_Zones.dm" #include "interface\interface.dm" diff --git a/code/modules/projectiles/guns/projectile/launcher.dm b/code/modules/projectiles/guns/projectile/launcher.dm new file mode 100644 index 00000000000..a8a1292bde1 --- /dev/null +++ b/code/modules/projectiles/guns/projectile/launcher.dm @@ -0,0 +1,90 @@ +/obj/item/weapon/gun/rocketlauncher + name = "rocket launcher" + desc = "Say hello to my little friend." + icon = 'icons/obj/gun.dmi' + icon_state = "launcher" + item_state = "launcher" + w_class = 4.0 + throw_speed = 2 + throw_range = 10 + force = 5.0 + var/list/rockets = new/list() + var/max_rockets = 1 + m_amt = 2000 + + examine() + set src in view() + ..() + if (!(usr in view(2)) && usr!=src.loc) return + usr << "\icon [src] Rocket launcher:" + if(rockets.len) + usr << "\blue [rockets] / [max_rockets] Rockets." + else + usr << "\blue 0 / [max_rockets] Rockets." + + attackby(obj/item/I as obj, mob/user as mob) + + if((istype(I, /obj/item/weapon/rocket))) + if(rockets.len < max_rockets) + user.drop_item() + I.loc = src + rockets += I + user << "\blue You put the rocket in the rocket launcher." + if(rockets.len) + user << "\blue [rockets.len] / [max_rockets] Rockets." + else + user << "\blue 0 / [max_rockets] Rockets." + else + usr << "\red The rocket launcher cannot hold more grenades." + + afterattack(obj/target, mob/user , flag) + + if (istype(target, /obj/item/weapon/storage/backpack )) + return + + else if (locate (/obj/structure/table, src.loc)) + return + + else if(target == user) + return + + if(rockets.len) + spawn(0) fire_rocket(target,user) + else + usr << "\red The rocket launcher is empty." + + proc + fire_rocket(atom/target, mob/user) + for(var/mob/O in viewers(world.view, user)) + O.show_message(text("\red [] fired a rocket!", user), 1) + user << "\red You fire the rocket launcher!" + + + var/obj/item/weapon/rocket/R = rockets[1] //Now with less copypasta! + rockets -= R + R.loc = user.loc + R.primed = 1 + R.throw_at(target, 30, 2) + message_admins("[key_name_admin(user)] fired a rocket ([R.name]) from a rocket launcher ([src.name]).") + log_game("[key_name_admin(user)] used a rocket ([src.name]).") + +// R.icon_state = initial(icon_state) + "_active" + playsound(usr.loc, fire_sound, 50, 1) + return + + + +/obj/item/weapon/rocket + name = "rocket" + icon = 'icons/obj/grenade.dmi' + icon_state = "rocket" + var/primed = null + throwforce = 15 + + throw_impact(atom/hit_atom) + if(primed) + explosion(hit_atom, 0, 0, 2, 4) + del(src) + else + ..() + return \ No newline at end of file diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index e699a7b1663..69cae71faf4 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index aaffbac9837..8ae6796a46c 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi index 5fc3347d336..8e4029c4d3f 100644 Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index d7015695915..540f7be103b 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ