Merge pull request #1206 from ZomgPonies/piecannon

Adds Piecannons to HONKsquad
This commit is contained in:
TheDZD
2015-05-29 17:41:18 -04:00
5 changed files with 68 additions and 13 deletions
+4 -1
View File
@@ -117,8 +117,11 @@ var/global/sent_honksquad = 0
equip_to_slot_or_del(new /obj/item/weapon/bikehorn(src), slot_in_backpack)
equip_to_slot_or_del(new /obj/item/weapon/stamp/clown(src), slot_in_backpack)
equip_to_slot_or_del(new /obj/item/toy/crayon/rainbow(src), slot_in_backpack)
equip_to_slot_or_del(new /obj/item/weapon/gun/energy/clown(src), slot_in_backpack)
equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/spray/waterflower(src), slot_in_backpack)
if(prob(50))
equip_to_slot_or_del(new /obj/item/weapon/gun/energy/clown(src), slot_in_backpack)
else
equip_to_slot_or_del(new /obj/item/weapon/gun/grenadelauncher/piecannon(src), slot_in_backpack)
src.mutations.Add(CLUMSY)
@@ -163,6 +163,7 @@ obj/item/weapon/gun/energy/staff/focus
icon_state = "energy"
projectile_type = "/obj/item/projectile/clown"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
clumsy_check = 0
+63 -12
View File
@@ -11,26 +11,30 @@
force = 5.0
var/list/grenades = new/list()
var/max_grenades = 3
var/ammo_name = "grenade"
var/ammo_type = /obj/item/weapon/grenade
var/unloaded
m_amt = 2000
examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
usr << "\icon [src] Grenade launcher:"
usr << "\blue [grenades] / [max_grenades] Grenades."
usr << "\icon [src] [name]:"
usr << "\blue [grenades.len] / [max_grenades] [ammo_name]s."
attackby(obj/item/I as obj, mob/user as mob, params)
if((istype(I, /obj/item/weapon/grenade)))
if((istype(I, ammo_type)))
if(grenades.len < max_grenades)
user.drop_item()
I.loc = src
grenades += I
user << "\blue You put the grenade in the grenade launcher."
user << "\blue [grenades.len] / [max_grenades] Grenades."
user << "\blue You put the [ammo_name] in the [name]."
user << "\blue [grenades.len] / [max_grenades] [ammo_name]s."
else
usr << "\red The grenade launcher cannot hold more grenades."
usr << "\red The grenade launcher cannot hold more [ammo_name]s."
afterattack(obj/target, mob/user , flag)
@@ -46,21 +50,68 @@
if(grenades.len)
spawn(0) fire_grenade(target,user)
else
usr << "\red The grenade launcher is empty."
usr << "\red The [name] is empty."
proc
fire_grenade(atom/target, mob/user)
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red [] fired a grenade!", user), 1)
user << "\red You fire the grenade launcher!"
O.show_message(text("\red [] fired a [ammo_name]!", user), 1)
user << "\red You fire the [name]!"
var/obj/item/weapon/grenade/chem_grenade/F = grenades[1] //Now with less copypasta!
grenades -= F
F.loc = user.loc
F.throw_at(target, 30, 2, user)
message_admins("[key_name_admin(user)] fired a grenade ([F.name]) from a grenade launcher ([src.name]).")
log_game("[key_name_admin(user)] used a grenade ([src.name]).")
message_admins("[key_name_admin(user)] fired a [ammo_name] ([F.name]) from a launcher ([src.name]).")
log_game("[key_name_admin(user)] used a [ammo_name] ([src.name]).")
F.active = 1
F.icon_state = initial(icon_state) + "_active"
playsound(user.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
spawn(15)
F.prime()
F.prime()
/obj/item/weapon/gun/grenadelauncher/piecannon
name = "pie cannon"
icon = 'icons/obj/gun.dmi'
icon_override = 'icons/mob/in-hand/guns.dmi'
icon_state = "piecannon0"
item_state = "piecannon0"
w_class = 4.0
throw_speed = 2
throw_range = 10
force = 5.0
clumsy_check = 0
grenades = new/list()
max_grenades = 5
ammo_name = "cream pie"
ammo_type = /obj/item/weapon/reagent_containers/food/snacks/pie
/obj/item/weapon/gun/grenadelauncher/piecannon/New()
..()
for(var/i=0, i < max_grenades, i++)
var/obj/item/weapon/reagent_containers/food/snacks/pie/P = new /obj/item/weapon/reagent_containers/food/snacks/pie(src)
grenades += P
/obj/item/weapon/gun/grenadelauncher/piecannon/attackby(obj/item/I as obj, mob/user as mob, params)
if((istype(I, ammo_type)))
if(grenades.len < max_grenades)
user.drop_item()
I.loc = src
grenades += I
user << "\blue You put the [ammo_name] in the [name]."
user << "\blue [grenades.len] / [max_grenades] [ammo_name]s."
icon_state = "piecannon1"
else
usr << "\red The grenade launcher cannot hold more [ammo_name]s."
/obj/item/weapon/gun/grenadelauncher/piecannon/fire_grenade(atom/target, mob/user)
for(var/mob/O in viewers(world.view, user))
O.show_message(text("\red [] fired a [ammo_name]!", user), 1)
user << "\red You fire the [name]!"
var/obj/item/weapon/reagent_containers/food/snacks/pie/P = grenades[1] //Now with less copypasta!
grenades -= P
P.loc = user.loc
P.throw_at(target, 30, 2, user)
message_admins("[key_name_admin(user)] fired a [ammo_name] ([P.name]) from a launcher ([src.name]).")
log_game("[key_name_admin(user)] used a [ammo_name] ([src.name]).")
if(!grenades.len)
icon_state = "piecannon0"