(Syndicate) Cyborg Improvements (#9148)

This commit is contained in:
Geeves
2020-06-19 23:57:17 +02:00
committed by GitHub
parent b5920e941d
commit 9dffea6eea
35 changed files with 358 additions and 96 deletions

View File

@@ -4,7 +4,7 @@
icon = 'icons/obj/guns/grenade_launcher.dmi'
icon_state = "grenadelauncher"
item_state = "grenadelauncher"
w_class = 4
w_class = ITEMSIZE_LARGE
force = 10
fire_sound = 'sound/weapons/grenadelaunch.ogg'
@@ -17,7 +17,8 @@
var/blacklisted_grenades = list(
/obj/item/grenade/flashbang/clusterbang,
/obj/item/grenade/frag)
/obj/item/grenade/frag
)
var/obj/item/grenade/chambered
var/list/grenades = new/list()
@@ -43,11 +44,11 @@
update_icon()
/obj/item/gun/launcher/grenade/examine(mob/user)
if(..(user, 2))
var/grenade_count = grenades.len + (chambered? 1 : 0)
to_chat(user, "Has [grenade_count] grenade\s remaining.")
. = ..()
if(Adjacent(user))
to_chat(user, SPAN_NOTICE("It has [get_ammo()] grenade\s remaining."))
if(chambered)
to_chat(user, "\A [chambered] is chambered.")
to_chat(user, SPAN_NOTICE("\A [chambered] is chambered."))
/obj/item/gun/launcher/grenade/proc/load(obj/item/grenade/G, mob/user)
if(!can_load_grenade_type(G, user))
@@ -59,6 +60,7 @@
G.forceMove(src)
grenades.Insert(1, G) //add to the head of the list, so that it is loaded on the next pump
user.visible_message("[user] inserts \a [G] into [src].", "<span class='notice'>You insert \a [G] into [src].</span>")
update_maptext()
/obj/item/gun/launcher/grenade/proc/unload(mob/user)
if(grenades.len)
@@ -68,6 +70,7 @@
user.visible_message("[user] removes \a [G] from [src].", "<span class='notice'>You remove \a [G] from [src].</span>")
else
to_chat(user, "<span class='warning'>[src] is empty.</span>")
update_maptext()
/obj/item/gun/launcher/grenade/proc/can_load_grenade_type(obj/item/grenade/G, mob/user)
if(is_type_in_list(G, blacklisted_grenades))
@@ -100,6 +103,10 @@
message_admins("[key_name_admin(user)] fired a grenade ([chambered.name]) from a grenade launcher ([src.name]).")
log_game("[key_name_admin(user)] used a grenade ([chambered.name]).",ckey=key_name(user))
chambered = null
update_maptext()
/obj/item/gun/launcher/grenade/get_ammo()
return grenades.len + (chambered? 1 : 0)
//Underslung grenade launcher to be used with the Z8
/obj/item/gun/launcher/grenade/underslung
@@ -128,4 +135,4 @@
user.visible_message("[user] removes \a [chambered] from [src].", "<span class='notice'>You remove \a [chambered] from [src].</span>")
chambered = null
else
to_chat(user, "<span class='warning'>[src] is empty.</span>")
to_chat(user, "<span class='warning'>[src] is empty.</span>")