mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 04:27:35 +01:00
New guns and gun sprites
This commit is contained in:
@@ -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."
|
||||
@@ -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
|
||||
|
||||
@@ -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//////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user