New guns and gun sprites

This commit is contained in:
ZomgPonies
2013-12-28 10:46:48 -05:00
parent af524fef02
commit a1656037e4
13 changed files with 133 additions and 150 deletions
@@ -122,3 +122,11 @@ obj/item/ammo_casing/shotgun/dart/New()
desc = "A 7.62 bullet casing."
caliber = "a762"
projectile_type = "/obj/item/projectile/bullet/a762"
/obj/item/ammo_casing/rocket
name = "rocket shell"
desc = "A high explosive designed to be fired from a launcher."
icon_state = "rocketshell"
projectile_type = "/obj/item/missile"
caliber = "rocket"
@@ -149,4 +149,51 @@ obj/item/weapon/gun/energy/staff/focus
desc = "Clown Planet's finest."
icon_state = "energy"
projectile_type = "/obj/item/projectile/clown"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
/obj/item/weapon/gun/energy/toxgun
name = "plasma pistol"
desc = "A specialized firearm designed to fire lethal bolts of toxins."
icon_state = "toxgun"
fire_sound = 'sound/effects/stealthoff.ogg'
w_class = 3.0
origin_tech = "combat=5;plasmatech=4"
projectile_type = "/obj/item/projectile/energy/plasma"
/obj/item/weapon/gun/energy/sniperrifle
name = "L.W.A.P. Sniper Rifle"
desc = "A rifle constructed of lightweight materials, fitted with a SMART aiming-system scope."
icon = 'icons/obj/gun.dmi'
icon_state = "sniper"
fire_sound = 'sound/weapons/marauder.ogg'
origin_tech = "combat=6;materials=5;powerstorage=4"
projectile_type = "/obj/item/projectile/beam/sniper"
slot_flags = SLOT_BACK
charge_cost = 250
fire_delay = 35
w_class = 4.0
var/zoom = 0
/obj/item/weapon/gun/energy/sniperrifle/dropped(mob/user)
user.client.view = world.view
zoom = 0
/obj/item/weapon/gun/energy/sniperrifle/verb/zoom()
set category = "Special Verbs"
set name = "Zoom"
set popup_menu = 0
if(usr.stat || !(istype(usr,/mob/living/carbon/human)))
usr << "No."
return
src.zoom = !src.zoom
usr << ("<font color='[src.zoom?"blue":"red"]'>Zoom mode [zoom?"en":"dis"]abled.</font>")
if(zoom)
usr.client.view = 12
usr << sound('sound/mecha/imag_enh.ogg',volume=50)
else
usr.client.view = world.view//world.view - default mob view size
return
@@ -1,90 +0,0 @@
/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
@@ -0,0 +1,52 @@
/obj/item/weapon/gun/rocketlauncher
var/projectile
name = "rocket launcher"
desc = "Say hello to my little friend"
icon_state = "rocket"
item_state = "rocket"
w_class = 4.0
throw_speed = 2
throw_range = 10
force = 5.0
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
origin_tech = "combat=8;materials=5"
projectile = /obj/item/missile
var/missile_speed = 2
var/missile_range = 30
var/max_rockets = 1
var/list/rockets = new/list()
/obj/item/weapon/gun/rocketlauncher/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
usr << "\blue [rockets.len] / [max_rockets] rockets."
/obj/item/weapon/gun/rocketlauncher/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/ammo_casing/rocket))
if(rockets.len < max_rockets)
user.drop_item()
I.loc = src
rockets += I
user << "\blue You put the rocket in [src]."
user << "\blue [rockets.len] / [max_rockets] rockets."
else
usr << "\red [src] cannot hold more rockets."
/obj/item/weapon/gun/rocketlauncher/can_fire()
return rockets.len
/obj/item/weapon/gun/rocketlauncher/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)
if(rockets.len)
var/obj/item/ammo_casing/rocket/I = rockets[1]
var/obj/item/missile/M = new projectile(user.loc)
playsound(user.loc, 'sound/effects/bang.ogg', 50, 1)
M.primed = 1
M.throw_at(target, missile_range, missile_speed)
message_admins("[key_name_admin(user)] fired a rocket from a rocket launcher ([src.name]).")
log_game("[key_name_admin(user)] used a rocket launcher ([src.name]).")
rockets -= I
del(I)
return
else
usr << "\red [src] is empty."
+9 -1
View File
@@ -321,4 +321,12 @@ var/list/beam_master = list()
var/mob/living/carbon/human/M = target
if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag)))
M.Weaken(5)
return 1
return 1
/obj/item/projectile/beam/sniper
name = "sniper beam"
icon_state = "xray"
damage = 60
stun = 5
weaken = 5
stutter = 5
@@ -61,3 +61,9 @@
/obj/item/projectile/energy/plasma
name = "plasma bolt"
icon_state = "energy"
damage = 20
damage_type = TOX
irradiate = 20
+9
View File
@@ -1529,6 +1529,15 @@ datum/design/xray
build_path = "/obj/item/weapon/gun/energy/xray"
locked = 1
datum/design/plasmapistol
name = "plasma pistol"
desc = "A specialized firearm designed to fire lethal bolts of toxins."
id = "ppistol"
req_tech = list("combat" = 5, "plasmatech" = 4)
build_type = PROTOLATHE
materials = list("$metal" = 5000, "$glass" = 1000, "$plasma" = 3000)
build_path = "/obj/item/weapon/gun/energy/toxgun"
/////////////////////////////////////////
/////////////////Mining//////////////////
/////////////////////////////////////////