Game folder
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
var/ignition_temp = 10 // The amount of heat added to the reagents when this grenade goes off.
|
||||
var/threatscale = 1 // Used by advanced grenades to make them slightly more worthy.
|
||||
var/no_splash = FALSE //If the grenade deletes even if it has no reagents to splash with. Used for slime core reactions.
|
||||
var/casedesc = "This basic model accepts both beakers and bottles. It heats contents by 10°K upon ignition." // Appears when examining empty casings.
|
||||
|
||||
/obj/item/grenade/chem_grenade/Initialize()
|
||||
. = ..()
|
||||
@@ -76,8 +77,7 @@
|
||||
to_chat(user, "<span class='notice'>You add [I] to the [initial(name)] assembly.</span>")
|
||||
beakers += I
|
||||
var/reagent_list = pretty_string_from_reagent_list(I.reagents)
|
||||
add_logs(user, src, "inserted [I]", addition = "[reagent_list] inside.")
|
||||
log_game("[key_name(user)] inserted [I] into [src] containing [reagent_list] ")
|
||||
user.log_message("inserted [I] ([reagent_list]) into [src]",LOG_GAME)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[I] is empty!</span>")
|
||||
|
||||
@@ -117,8 +117,7 @@
|
||||
if(!O.reagents)
|
||||
continue
|
||||
var/reagent_list = pretty_string_from_reagent_list(O.reagents)
|
||||
add_logs(user, src, "removed [O]", addition = "[reagent_list] inside.")
|
||||
log_game("[key_name(user)] removed [O] from [src] containing [reagent_list]")
|
||||
user.log_message("removed [O] ([reagent_list]) from [src]")
|
||||
beakers = list()
|
||||
to_chat(user, "<span class='notice'>You open the [initial(name)] assembly and remove the payload.</span>")
|
||||
return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism.
|
||||
@@ -138,7 +137,7 @@
|
||||
stage = N
|
||||
if(stage == EMPTY)
|
||||
name = "[initial(name)] casing"
|
||||
desc = "A do it yourself [initial(name)]!"
|
||||
desc = "A do it yourself [initial(name)]! [initial(casedesc)]"
|
||||
icon_state = initial(icon_state)
|
||||
else if(stage == WIRED)
|
||||
name = "unsecured [initial(name)]"
|
||||
@@ -174,8 +173,7 @@
|
||||
var/message = "[src] primed by [user] at [ADMIN_VERBOSEJMP(T)] contained [reagent_string]."
|
||||
GLOB.bombers += message
|
||||
message_admins(message)
|
||||
log_game("[src] primed by [user] at [AREACOORD(T)] contained [reagent_string].")
|
||||
add_logs(user, src, "primed", addition = "[reagent_string] inside.")
|
||||
user.log_message("primed [src] ([reagent_string])",LOG_GAME)
|
||||
|
||||
/obj/item/grenade/chem_grenade/prime()
|
||||
if(stage != READY)
|
||||
@@ -211,10 +209,10 @@
|
||||
//Large chem grenades accept slime cores and use the appropriately.
|
||||
/obj/item/grenade/chem_grenade/large
|
||||
name = "large grenade"
|
||||
desc = "A custom made large grenade. It affects a larger area."
|
||||
desc = "A custom made large grenade. Larger splash range and increased ignition temperature compared to basic grenades. Fits exotic containers."
|
||||
casedesc = "This casing affects a larger area than the basic model and can fit exotic containers, including slime cores. Heats contents by 25°K upon ignition."
|
||||
icon_state = "large_grenade"
|
||||
allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment,
|
||||
/obj/item/reagent_containers/food/drinks)
|
||||
allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment, /obj/item/reagent_containers/food/drinks)
|
||||
affected_area = 5
|
||||
ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades.
|
||||
threatscale = 1.1 // 10% more effective.
|
||||
@@ -255,21 +253,23 @@
|
||||
|
||||
/obj/item/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation.
|
||||
name = "cryo grenade"
|
||||
desc = "A custom made cryogenic grenade. It rapidly cools its contents upon detonation."
|
||||
desc = "A custom made cryogenic grenade. Rapidly cools contents upon ignition."
|
||||
casedesc = "Upon ignition, it rapidly cools contents by 100°K. Smaller splash range than regular casings."
|
||||
icon_state = "cryog"
|
||||
affected_area = 2
|
||||
ignition_temp = -100
|
||||
|
||||
/obj/item/grenade/chem_grenade/pyro // Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures.
|
||||
name = "pyro grenade"
|
||||
desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation."
|
||||
desc = "A custom made pyrotechnical grenade. Heats up contents upon ignition."
|
||||
casedesc = "Upon ignition, it rapidly heats contents by 500°K."
|
||||
icon_state = "pyrog"
|
||||
affected_area = 3
|
||||
ignition_temp = 500 // This is enough to expose a hotspot.
|
||||
|
||||
/obj/item/grenade/chem_grenade/adv_release // Intended for weaker, but longer lasting effects. Could have some interesting uses.
|
||||
name = "advanced release grenade"
|
||||
desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool."
|
||||
casedesc = "This casing is able to detonate more than once. Can be configured using a multitool."
|
||||
icon_state = "timeg"
|
||||
var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool.
|
||||
|
||||
@@ -324,7 +324,7 @@
|
||||
|
||||
/obj/item/grenade/chem_grenade/metalfoam
|
||||
name = "metal foam grenade"
|
||||
desc = "Used for emergency sealing of air breaches."
|
||||
desc = "Used for emergency sealing of hull breaches."
|
||||
stage = READY
|
||||
|
||||
/obj/item/grenade/chem_grenade/metalfoam/Initialize()
|
||||
@@ -342,7 +342,7 @@
|
||||
|
||||
/obj/item/grenade/chem_grenade/smart_metal_foam
|
||||
name = "smart metal foam grenade"
|
||||
desc = "Used for sealing and reconstruction of air breaches."
|
||||
desc = "Used for emergency sealing of hull breaches, while keeping areas accessible."
|
||||
stage = READY
|
||||
|
||||
/obj/item/grenade/chem_grenade/smart_metal_foam/Initialize()
|
||||
@@ -562,9 +562,9 @@
|
||||
beakers += B2
|
||||
|
||||
/obj/item/grenade/chem_grenade/tuberculosis
|
||||
name = "Fungal tuberculosis grenade"
|
||||
desc = "WARNING: GRENADE WILL RELEASE DEADLY SPORES CONTAINING ACTIVE AGENTS. SEAL SUIT AND AIRFLOW BEFORE USE."
|
||||
stage = READY
|
||||
name = "Fungal tuberculosis grenade"
|
||||
desc = "WARNING: GRENADE WILL RELEASE DEADLY SPORES CONTAINING ACTIVE AGENTS. SEAL SUIT AND AIRFLOW BEFORE USE."
|
||||
stage = READY
|
||||
|
||||
/obj/item/grenade/chem_grenade/tuberculosis/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
to_chat(user, "Timer set for [det_time] seconds.")
|
||||
|
||||
/obj/item/grenade/plastic/afterattack(atom/movable/AM, mob/user, flag)
|
||||
. = ..()
|
||||
aim_dir = get_dir(user,AM)
|
||||
if(!flag)
|
||||
return
|
||||
@@ -141,12 +142,12 @@
|
||||
else if(UM.has_antag_datum(/datum/antagonist/changeling))
|
||||
message_say = "FOR THE HIVE!"
|
||||
else if(UM.has_antag_datum(/datum/antagonist/cult))
|
||||
message_say = "FOR NAR-SIE!"
|
||||
message_say = "FOR NAR'SIE!"
|
||||
else if(UM.has_antag_datum(/datum/antagonist/clockcult))
|
||||
message_say = "FOR RATVAR!"
|
||||
else if(UM.has_antag_datum(/datum/antagonist/rev))
|
||||
message_say = "VIVA LA REVOLUTION!"
|
||||
M.say(message_say)
|
||||
M.say(message_say, forced="C4 suicide")
|
||||
|
||||
/obj/item/grenade/plastic/suicide_act(mob/user)
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [src] at [ADMIN_VERBOSEJMP(user)]")
|
||||
@@ -171,7 +172,6 @@
|
||||
name = "C4"
|
||||
desc = "Used to put holes in specific areas without too much extra hole. A saboteur's favorite."
|
||||
gender = PLURAL
|
||||
var/timer = 10
|
||||
var/open_panel = 0
|
||||
can_attach_mob = TRUE
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [name] at [ADMIN_VERBOSEJMP(src)]")
|
||||
log_game("[key_name(user)] suicided with [name] at [AREACOORD(user)]")
|
||||
sleep(10)
|
||||
explode(get_turf(user))
|
||||
prime()
|
||||
user.gib(1, 1)
|
||||
|
||||
/obj/item/grenade/plastic/c4/attackby(obj/item/I, mob/user, params)
|
||||
@@ -204,41 +204,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/grenade/plastic/c4/attack_self(mob/user)
|
||||
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num
|
||||
if(user.get_active_held_item() == src)
|
||||
newtime = CLAMP(newtime, 10, 60000)
|
||||
timer = newtime
|
||||
to_chat(user, "Timer set for [timer] seconds.")
|
||||
|
||||
/obj/item/grenade/plastic/c4/afterattack(atom/movable/AM, mob/user, flag)
|
||||
if (!flag)
|
||||
return
|
||||
if(ismob(AM) && !can_attach_mob)
|
||||
return
|
||||
if(loc == AM)
|
||||
return
|
||||
if(SEND_SIGNAL(AM, COMSIG_CONTAINS_STORAGE) && !SEND_SIGNAL(AM, COMSIG_IS_STORAGE_LOCKED))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You start planting the bomb...</span>")
|
||||
|
||||
if(do_after(user, 30, target = AM))
|
||||
if(!user.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
src.target = AM
|
||||
moveToNullspace()
|
||||
|
||||
var/message = "[ADMIN_LOOKUPFLW(user)] planted [name] on [target.name] at [ADMIN_VERBOSEJMP(target)] with [timer] second fuse"
|
||||
GLOB.bombers += message
|
||||
message_admins(message,0,1)
|
||||
log_game("[key_name(user)] planted [name] on [target.name] at [AREACOORD(target)] with [timer] second fuse")
|
||||
|
||||
target.add_overlay(plastic_overlay, TRUE)
|
||||
to_chat(user, "<span class='notice'>You plant the bomb. Timer counting down from [timer].</span>")
|
||||
addtimer(CALLBACK(src, .proc/explode), timer * 10)
|
||||
|
||||
/obj/item/grenade/plastic/c4/proc/explode()
|
||||
/obj/item/grenade/plastic/c4/prime()
|
||||
if(QDELETED(src))
|
||||
return
|
||||
var/turf/location
|
||||
|
||||
@@ -34,3 +34,10 @@
|
||||
/obj/item/grenade/spawnergrenade/syndiesoap
|
||||
name = "Mister Scrubby"
|
||||
spawner_type = /obj/item/soap/syndie
|
||||
|
||||
/obj/item/grenade/spawnergrenade/buzzkill
|
||||
name = "Buzzkill grenade"
|
||||
desc = "The label reads: \"WARNING: DEVICE WILL RELEASE LIVE SPECIMENS UPON ACTIVATION. SEAL SUIT BEFORE USE.\" It is warm to the touch and vibrates faintly."
|
||||
icon_state = "holy_grenade"
|
||||
spawner_type = /mob/living/simple_animal/hostile/poison/bees/toxin
|
||||
deliveryamt = 10
|
||||
|
||||
Reference in New Issue
Block a user