Crazy Fethas Traitor Emporium of Horrors

This commit is contained in:
Aurorablade
2016-04-27 19:09:21 -04:00
parent 09ee3315d4
commit 7a99d8fe74
24 changed files with 569 additions and 109 deletions
+87
View File
@@ -122,6 +122,15 @@ var/list/uplink_items = list()
cost = 5
job = list("Clown")
//mime
/datum/uplink_item/job_specific/caneshotgun
name = "Cane Shotgun + Assassination Darts"
desc = "A specialized, one shell shotgun with a built-in cloaking device to mimic a cane. The shotgun is capable of hiding it's contents and the pin alongside being supressed. Comes with 6 special darts and a preloaded shrapnel round."
reference = "MCS"
item = /obj/item/weapon/storage/box/syndie_kit/caneshotgun
cost = 15
job = list("Mime")
//Chef
/datum/uplink_item/jobspecific/specialsauce
name = "Chef Excellence's Special Sauce"
@@ -238,6 +247,45 @@ var/list/uplink_items = list()
cost = 12
job = list("Research Director")
//Librarian
/datum/uplink_item/jobspecific/etwenty
name = "The E20"
desc = "A seemingly innocent die, those who are not afraid to roll for attack will find it's effects quite explosive. Has a four second timer."
reference = "ETW"
item = /obj/item/weapon/dice/d20/e20
cost = 3
job = list("Librarian")
//Botanist
/datum/uplink_item/jobspecific/ambrosiacruciatus
name = "Ambrosia Cruciatus Seeds"
desc = "Part of the notorious Ambrosia family, this species is nearly indistinguishable from Ambrosia Vulgaris- but its' branches contain a revolting toxin. Eight units are enough to drive victims insane."
reference = "BRO"
item = /obj/item/seeds/ambrosiavulgarisseed/cruciatus
cost = 2
job = list("Botanist")
//Chemist
/datum/uplink_item/jobspecific/antisocial
name = "Explosive Hug Chemical"
desc = "30 units of Bicarodyne, a chemical that causes a devastating explosion when exposed to endorphins released in the body by a hug. Metabolizes quite slowly."
reference = "HUG"
item = /obj/item/weapon/storage/box/syndie_kit/explosive_hug //Had to be put in a box because it didn't play well with reagent creation
cost = 4
job = list("Chemist", "Chief Medical Officer")
//Atmos Tech
/datum/uplink_item/jobspecific/contortionist
name = "Contortionist's Jumpsuit"
desc = "A highly flexible jumpsuit that will help you navigate the ventilation loops of the station internally. Comes with pockets and ID slot, but can't be used without stripping off most gear, including backpack, belt, helmet, and exosuit. Free hands are also necessary to crawl around inside."
reference = "AIRJ"
item = /obj/item/clothing/under/contortionist
cost = 6
job = list("Atmospheric Technician")
//Stimulants
/datum/uplink_item/jobspecific/stims
@@ -448,6 +496,15 @@ var/list/uplink_items = list()
excludefrom = list(/datum/game_mode/nuclear)
cost = 12
/datum/uplink_item/dangerous/sniper
name = "Sniper Rifle"
desc = "Ranged fury, syndicate style. guaranteed to cause shock and awe or your TC back!"
item = /obj/item/weapon/gun/projectile/sniper_rifle/syndicate
cost = 16
reference = "SNIPE"
gamemodes = list(/datum/game_mode/nuclear)
surplus = 25
// Ammunition
/datum/uplink_item/ammo
@@ -541,6 +598,36 @@ var/list/uplink_items = list()
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
/datum/uplink_item/ammo/sniper
name = "Sniper Magazine - .50"
desc = "An additional 6-round .50 magazine for use in the syndicate sniper rifle."
item = /obj/item/ammo_box/magazine/sniper_rounds
cost = 4 //70dmg rounds are no joke
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/sniper/soporific
name = "Sniper Magazine - Soporific Rounds"
desc = "A 3-round magazine of soporific ammo designed for use in the syndicate sniper rifle, put your enemies to sleep today!"
item = /obj/item/ammo_box/magazine/sniper_rounds/soporific
cost = 6
/datum/uplink_item/ammo/sniper/haemorrhage
name = "Sniper Magazine - Haemorrhage Rounds"
desc = "A 5-round magazine of haemorrhage ammo designed for use in the syndicate sniper rifle, causes heavy bleeding in the target."
item = /obj/item/ammo_box/magazine/sniper_rounds/haemorrhage
/datum/uplink_item/ammo/sniper/penetrator
name = "Sniper Magazine - Penetrator Rounds"
desc = "A 5-round magazine of penetrator ammo designed for use in the syndicate sniper rifle. Can pierce walls and multiple enemies."
item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator
cost = 5
/datum/uplink_item/ammo/sniper/accelerator
name = "Sniper Magazine - Accelerator Rounds"
desc = "A 5-round magazine of accelerator ammo designed for use in the syndicate sniper rifle. The shot is weak at close range, but gains more power the farther it flies."
item = /obj/item/ammo_box/magazine/sniper_rounds/accelerator
cost = 4
// STEALTHY WEAPONS
/datum/uplink_item/stealthy_weapons
+1
View File
@@ -282,6 +282,7 @@
H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
H.equip_or_collect(new /obj/item/toy/crayon/mime(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/cane(H), slot_in_backpack)
if(H.mind)
H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall(null))
H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null))
+24
View File
@@ -53,6 +53,9 @@
icon_state = "d20"
sides = 20
/obj/item/weapon/dice/d20/e20
var/triggered = 0
/obj/item/weapon/dice/attack_self(mob/user as mob)
diceroll(user)
@@ -84,6 +87,27 @@
H.apply_damage(4,BRUTE,(pick("l_leg", "r_leg")))
H.Weaken(3)
*///ew.
/obj/item/weapon/dice/d20/e20/diceroll(mob/user as mob, thrown)
if(triggered) return
..()
if(result == 1)
to_chat(user, "<span class='danger'>Rocks fall, you die.</span>")
user.gib()
else
triggered = 1
visible_message("<span class='notice'>You hear a quiet click.</span>")
spawn(40)
var/cap = 0
if(result > MAX_EX_LIGHT_RANGE && result != 20)
cap = 1
result = min(result, MAX_EX_LIGHT_RANGE) //Apply the bombcap
else if(result == 20) //Roll a nat 20, screw the bombcap
result = 24
var/turf/epicenter = get_turf(src)
explosion(epicenter, round(result*0.25), round(result*0.5), round(result), round(result*1.5), 1, cap)
/obj/item/weapon/dice/update_icon()
overlays.Cut()
overlays += "[src.icon_state][src.result]"
@@ -172,4 +172,27 @@
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
return
return
/obj/item/weapon/storage/box/syndie_kit/caneshotgun
name = "cane gun kit"
/obj/item/weapon/storage/box/syndie_kit/caneshotgun/New()
..()
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/ammo_casing/shotgun/dart/assassination(src)
new /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/cane(src)
/obj/item/weapon/storage/box/syndie_kit/explosive_hug
name = "box"
/obj/item/weapon/storage/box/syndie_kit/explosive_hug/New()
..()
new /obj/item/weapon/reagent_containers/glass/bottle/antisocial(src)
new /obj/item/weapon/reagent_containers/syringe(src)
return
@@ -683,3 +683,19 @@
icon_state = "noble_clothes"
item_color = "noble_clothes"
item_state = "noble_clothes"
/obj/item/clothing/under/contortionist
name = "Contortionist's Jumpsuit"
desc = "A light jumpsuit useful for squeezing through narrow vents."
icon_state = "atmos"
item_state = "atmos_suit"
item_color = "atmos"
/obj/item/clothing/under/contortionist/proc/check_clothing(mob/user as mob)
//Allowed to wear: glasses, shoes, gloves, pockets, mask, and jumpsuit (obviously)
var/list/slot_must_be_empty = list(slot_back,slot_handcuffed,slot_legcuffed,slot_l_hand,slot_r_hand,slot_belt,slot_head,slot_wear_suit)
for(var/slot_id in slot_must_be_empty)
if(user.get_item_by_slot(slot_id))
user << "<span class='warning'>You can't fit inside while wearing that \the [user.get_item_by_slot(slot_id)].</span>"
return 0
return 1
+20
View File
@@ -367,6 +367,26 @@
..()
set_trait(TRAIT_RARITY,40)
/datum/seed/ambrosia/cruciatus
name = "ambrosia"
seed_name = "ambrosia vulgaris"
display_name = "ambrosia vulgaris"
mutants = null
chems = list("plantmatter" = list(1), "thc" = list(1,8), "silver_sulfadiazine" = list(1,8,1), "styptic_powder" = list(1,10,1), "bath salts" = list(10))
kitchen_tag = "ambrosia"
preset_icon = "ambrosiavulgaris"
/datum/seed/ambrosia/cruciatus/New()
..()
set_trait(TRAIT_HARVEST_REPEAT,1)
set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6)
set_trait(TRAIT_YIELD,6)
set_trait(TRAIT_POTENCY,10)
set_trait(TRAIT_PRODUCT_ICON,"ambrosia")
set_trait(TRAIT_PRODUCT_COLOUR,"#9FAD55")
set_trait(TRAIT_PLANT_ICON,"ambrosia")
//Tobacco/varieties
/datum/seed/tobacco
name = "tobacco"
+3
View File
@@ -221,6 +221,9 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/ambrosiadeusseed
seed_type = "ambrosiadeus"
/obj/item/seeds/ambrosiavulgarisseed/cruciatus
seed_type = "ambrosia"
/obj/item/seeds/whitebeetseed
seed_type = "whitebeet"
+1 -7
View File
@@ -149,7 +149,7 @@
winset(src, "mapwindow.map", "icon-size=[src.reset_stretch]")
viewingCanvas = 0
mob.reset_view()
if(mob.hud_used)
if(mob.hud_used)
mob.hud_used.show_hud(HUD_STYLE_STANDARD)
if(mob.control_object) Move_object(direct)
@@ -181,12 +181,6 @@
if(L.incorporeal_move)//Move though walls
Process_Incorpmove(direct)
return
if(mob.client)
if(mob.client.view != world.view)
if(locate(/obj/item/weapon/gun/energy/sniperrifle, mob.contents)) // If mob moves while zoomed in with sniper rifle, unzoom them.
var/obj/item/weapon/gun/energy/sniperrifle/s = locate() in mob
if(s.zoom)
s.zoom()
if(Process_Grab()) return
@@ -294,3 +294,11 @@
desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up."
projectile_type = "/obj/item/projectile/bullet/reusable/foam_dart/riot"
icon_state = "foamdart_riot"
/obj/item/ammo_casing/shotgun/dart/assassination
desc = "A specialist shotgun dart designed to inncapacitate and kill the target over time, so you can get very far away from your target"
/obj/item/ammo_casing/shotgun/dart/assassination/New()
..()
reagents.add_reagent("neurotoxin", 6)
reagents.add_reagent("lexorin", 6)
+85
View File
@@ -50,6 +50,12 @@
var/burst_size = 1
//Zooming
var/zoomable = FALSE //whether the gun generates a Zoom action on creation
var/zoomed = FALSE //Zoom toggle
var/zoom_amt = 3 //Distance in TURFs to move the user's screen forward (the "zoom" effect)
var/datum/action/toggle_scope_zoom/azoom
proc/ready_to_fire()
if(world.time >= last_fired + fire_delay)
last_fired = world.time
@@ -81,6 +87,20 @@
proj.silenced = silenced
return
/obj/item/weapon/gun/energy/New()
build_zooming()
/obj/item/weapon/gun/pickup(mob/user)
if(azoom)
azoom.Grant(user)
/obj/item/weapon/gun/dropped(mob/user)
zoom(user,FALSE)
if(azoom)
azoom.Remove(user)
/obj/item/weapon/gun/afterattack(atom/A as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)
if(flag) return //we're placing gun on a table or in backpack
if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this?
@@ -381,3 +401,68 @@
else
set_light(0)
return
/////////////
// ZOOMING //
/////////////
/datum/action/toggle_scope_zoom
name = "Toggle Scope"
check_flags = AB_CHECK_ALIVE|AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING
button_icon_state = "sniper_zoom"
var/obj/item/weapon/gun/gun = null
/datum/action/toggle_scope_zoom/Trigger()
gun.zoom(owner)
/datum/action/toggle_scope_zoom/IsAvailable()
. = ..()
if(!. && gun)
gun.zoom(owner, FALSE)
/datum/action/toggle_scope_zoom/Remove(mob/living/L)
gun.zoom(L, FALSE)
..()
/obj/item/weapon/gun/proc/zoom(mob/living/user, forced_zoom)
if(!user || !user.client)
return
switch(forced_zoom)
if(FALSE)
zoomed = FALSE
if(TRUE)
zoomed = TRUE
else
zoomed = !zoomed
if(zoomed)
var/_x = 0
var/_y = 0
switch(user.dir)
if(NORTH)
_y = zoom_amt
if(EAST)
_x = zoom_amt
if(SOUTH)
_y = -zoom_amt
if(WEST)
_x = -zoom_amt
user.client.pixel_x = world.icon_size*_x
user.client.pixel_y = world.icon_size*_y
else
user.client.pixel_x = 0
user.client.pixel_y = 0
//Proc, so that gun accessories/scopes/etc. can easily add zooming.
/obj/item/weapon/gun/proc/build_zooming()
if(azoom)
return
if(zoomable)
azoom = new()
azoom.gun = src
@@ -156,41 +156,8 @@ obj/item/weapon/gun/energy/staff/focus
charge_cost = 2500
fire_delay = 50
w_class = 4.0
var/zoom = 0
/obj/item/weapon/gun/energy/sniperrifle/dropped(mob/user)
user.client.view = world.view
/*
This is called from
modules/mob/mob_movement.dm if you move you will be zoomed out
modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
*/
/obj/item/weapon/gun/energy/sniperrifle/verb/zoom()
set category = "Object"
set name = "Use Sniper Scope"
set popup_menu = 0
if(usr.stat || !(istype(usr,/mob/living/carbon/human)))
to_chat(usr, "You are unable to focus down the scope of the rifle.")
return
if(!zoom && usr.get_active_hand() != src)
to_chat(usr, "You are too distracted to look down the scope, perhaps if it was in your active hand this might work better")
return
if(usr.client.view == world.view)
if(usr.hud_used)
usr.hud_used.show_hud(HUD_STYLE_NOHUD)
usr.client.view = 12
zoom = 1
else
usr.client.view = world.view
if(usr.hud_used)
usr.hud_used.show_hud(HUD_STYLE_STANDARD)
zoom = 0
to_chat(usr, "<font color='[zoom?"blue":"red"]'>Zoom mode [zoom?"en":"dis"]abled.</font>")
zoomable = TRUE
zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you.
/obj/item/weapon/gun/energy/kinetic_accelerator
@@ -314,4 +314,30 @@
icon_state = "cshotgun"
origin_tech = "combat=5;materials=2"
mag_type = "/obj/item/ammo_box/magazine/internal/shotcom"
w_class = 5
w_class = 5
//caneshotgun
/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/cane
name = "cane"
desc = "A cane used by a true gentlemen. Or a clown."
icon = 'icons/obj/weapons.dmi'
icon_state = "cane"
item_state = "stick"
sawn_state = SAWN_OFF
w_class = 2
force = 10
can_unsuppress = 0
slot_flags = null
origin_tech = "" // NO GIVAWAYS
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/improvised"
sawn_desc = "I'm sorry, but why did you saw your cane in the first place?"
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
silenced = 1
needs_permit = 0 //its just a cane beepsky.....
/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/cane/attackby(obj/item/A, mob/user, params)
..()
if(istype(A, /obj/item/stack/cable_coil))
return
@@ -0,0 +1,178 @@
/obj/item/weapon/gun/projectile/sniper_rifle
name = "sniper rifle"
desc = "the kind of gun that will leave you crying for mummy before you even realise your leg's missing"
icon_state = "snipertg"
item_state = "snipertg"
recoil = 2
heavy_weapon = 1
mag_type = "/obj/item/ammo_box/magazine/sniper_rounds"
fire_delay = 40
origin_tech = "combat=8"
can_unsuppress = 1
can_suppress = 1
w_class = 3
zoomable = TRUE
zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you.
slot_flags = SLOT_BACK
/obj/item/weapon/gun/projectile/sniper_rifle/update_icon()
if(magazine)
icon_state = "sniper-mag"
else
icon_state = "snipertg"
/obj/item/weapon/gun/projectile/sniper_rifle/syndicate
name = "syndicate sniper rifle"
desc = "Syndicate flavoured sniper rifle, it packs quite a punch, a punch to your face"
origin_tech = "combat=8;illigal=4"
//Normal Boolets
/obj/item/ammo_box/magazine/sniper_rounds
name = "sniper rounds (.50)"
icon_state = ".50mag"
origin_tech = "combat=6;illigal=2"
ammo_type = /obj/item/ammo_casing/point50
max_ammo = 6
caliber = ".50"
/obj/item/ammo_casing/point50
desc = "A .50 bullet casing."
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/sniper
icon_state = ".50"
/obj/item/ammo_box/magazine/sniper_rounds/update_icon()
if(ammo_count())
icon_state = "[initial(icon_state)]-ammo"
else
icon_state = "[initial(icon_state)]"
/obj/item/projectile/bullet/sniper
damage = 70
stun = 5
weaken = 5
armour_penetration = 50
var/breakthings = TRUE
/obj/item/projectile/bullet/sniper/on_hit(atom/target, blocked = 0, hit_zone)
if((blocked != 100) && (!ismob(target) && breakthings))
target.ex_act(rand(1,2))
return ..()
//Sleepy ammo
/obj/item/ammo_box/magazine/sniper_rounds/soporific
name = "sniper rounds (Zzzzz)"
desc = "Soporific sniper rounds, designed for happy days and dead quiet nights..."
icon_state = "soporific"
origin_tech = "combat=6;illigal=3"
ammo_type = /obj/item/ammo_casing/soporific
max_ammo = 3
caliber = ".50"
icon_state = ".50"
/obj/item/ammo_casing/soporific
desc = "A .50 bullet casing, specialised in sending the target to sleep, instead of hell."
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/sniper/soporific
/obj/item/projectile/bullet/sniper/soporific
nodamage = 1
stun = 0
weaken = 0
armour_penetration = 0
breakthings = FALSE
/obj/item/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0, hit_zone)
if((blocked != 100) && istype(target, /mob/living))
var/mob/living/L = target
L.SetSleeping(20)
return ..()
//hemorrhage ammo
/obj/item/ammo_box/magazine/sniper_rounds/haemorrhage
name = "sniper rounds (Bleed)"
desc = "Haemorrhage sniper rounds, leaves your target in a pool of crimson pain"
icon_state = "haemorrhage"
origin_tech = "combat=7;syndicate=5"
ammo_type = /obj/item/ammo_casing/haemorrhage
max_ammo = 5
caliber = ".50"
icon_state = ".50"
/obj/item/ammo_casing/haemorrhage
desc = "A .50 bullet casing, specialised in causing massive bloodloss"
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/sniper/haemorrhage
/obj/item/projectile/bullet/sniper/haemorrhage
damage = 15
stun = 0
weaken = 0
breakthings = FALSE
armour_penetration = 15
/obj/item/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0, hit_zone)
if((blocked != 100) && istype(target, /mob/living/carbon/human))
var/mob/living/carbon/human/H = target
H.drip(100)
return ..()
//penetrator ammo
/obj/item/ammo_box/magazine/sniper_rounds/penetrator
name = "sniper rounds (penetrator)"
desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it."
ammo_type = /obj/item/ammo_casing/penetrator
max_ammo = 5
/obj/item/ammo_casing/penetrator
desc = "A .50 caliber penetrator round casing."
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/sniper/penetrator
icon_state = ".50"
/obj/item/projectile/bullet/sniper/penetrator
icon_state = "gauss"
name = "penetrator round"
damage = 60
forcedodge = 1
stun = 0
weaken = 0
breakthings = FALSE
//Accelerator ammo
/obj/item/ammo_box/magazine/sniper_rounds/accelerator
name = "sniper rounds (accelerator)"
desc = "An advanced round which gains more power the farther it flies."
ammo_type = /obj/item/ammo_casing/accelerator
max_ammo = 5
/obj/item/ammo_casing/accelerator
desc = "A .50 caliber accelerator round casing."
caliber = ".50"
projectile_type = /obj/item/projectile/bullet/sniper/accelerator
icon_state = ".50"
/obj/item/projectile/bullet/sniper/accelerator
icon_state = "gaussweak"
name = "accelerator round"
damage = 5
stun = 0
weaken = 0
breakthings = FALSE
/obj/item/projectile/bullet/sniper/accelerator/Range()
..()
damage += 5
if(damage > 40)
icon_state = "gaussstrong"
breakthings = TRUE
else if(damage > 25)
icon_state = "gauss"
@@ -1,76 +1,88 @@
//Anything for harm or hostile intents go here (explosions, EMPs, thermite, mutagen)
/datum/chemical_reaction
/datum/chemical_reaction/explosion_potassium
name = "Explosion"
id = "explosion_potassium"
result = null
required_reagents = list("water" = 1, "potassium" = 1)
result_amount = 2
mix_message = "The mixture explodes!"
explosion_potassium
name = "Explosion"
id = "explosion_potassium"
result = null
required_reagents = list("water" = 1, "potassium" = 1)
result_amount = 2
mix_message = "The mixture explodes!"
/datum/chemical_reaction/explosion_potassium/on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/10, 1), holder.my_atom, 0, 0)
e.start()
holder.clear_reagents()
return
on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/10, 1), holder.my_atom, 0, 0)
e.start()
holder.clear_reagents()
return
/datum/chemical_reaction/emp_pulse
name = "EMP Pulse"
id = "emp_pulse"
result = null
required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
result_amount = 2
emp_pulse
name = "EMP Pulse"
id = "emp_pulse"
result = null
required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense
result_amount = 2
/datum/chemical_reaction/emp_pulse/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
// 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes.
// 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades.
empulse(location, round(created_volume / 24), round(created_volume / 14), 1)
holder.clear_reagents()
return
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
// 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes.
// 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades.
empulse(location, round(created_volume / 24), round(created_volume / 14), 1)
holder.clear_reagents()
return
/datum/chemical_reaction/mutagen
name = "Unstable mutagen"
id = "mutagen"
result = "mutagen"
required_reagents = list("radium" = 1, "plasma" = 1, "chlorine" = 1)
result_amount = 3
mix_message = "The substance turns neon green and bubbles unnervingly."
mutagen
name = "Unstable mutagen"
id = "mutagen"
result = "mutagen"
required_reagents = list("radium" = 1, "plasma" = 1, "chlorine" = 1)
result_amount = 3
mix_message = "The substance turns neon green and bubbles unnervingly."
/datum/chemical_reaction/thermite
name = "Thermite"
id = "thermite"
result = "thermite"
required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1)
result_amount = 3
thermite
name = "Thermite"
id = "thermite"
result = "thermite"
required_reagents = list("aluminum" = 1, "iron" = 1, "oxygen" = 1)
result_amount = 3
/datum/chemical_reaction/glycerol
name = "Glycerol"
id = "glycerol"
result = "glycerol"
required_reagents = list("cornoil" = 3, "sacid" = 1)
result_amount = 1
glycerol
name = "Glycerol"
id = "glycerol"
result = "glycerol"
required_reagents = list("cornoil" = 3, "sacid" = 1)
result_amount = 1
/datum/chemical_reaction/nitroglycerin
name = "Nitroglycerin"
id = "nitroglycerin"
result = "nitroglycerin"
required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1)
result_amount = 2
nitroglycerin
name = "Nitroglycerin"
id = "nitroglycerin"
result = "nitroglycerin"
required_reagents = list("glycerol" = 1, "facid" = 1, "sacid" = 1)
result_amount = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/2, 1), holder.my_atom, 0, 0)
e.start()
/datum/chemical_reaction/nitroglycerin/on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(round(created_volume/2, 1), holder.my_atom, 0, 0)
e.start()
holder.clear_reagents()
return
holder.clear_reagents()
return
condensedcapsaicin
name = "Condensed Capsaicin"
id = "condensedcapsaicin"
result = "condensedcapsaicin"
required_reagents = list("capsaicin" = 2)
required_catalysts = list("plasma" = 5)
result_amount = 1
/datum/chemical_reaction/condensedcapsaicin
name = "Condensed Capsaicin"
id = "condensedcapsaicin"
result = "condensedcapsaicin"
required_reagents = list("capsaicin" = 2)
required_catalysts = list("plasma" = 5)
result_amount = 1
/datum/chemical_reaction/explosion_bicarodyne
name = "Explosion"
id = "explosion_bicarodyne"
result = null
required_reagents = list("bicarodyne" = 1, "sal_acid" = 1)
result_amount = 1
/datum/chemical_reaction/explosion_bicarodyne/on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/effect/system/reagents_explosion/e = new()
e.set_up(created_volume, holder.my_atom, 0, 0)
e.start()
return
@@ -394,6 +394,13 @@
..()
return
/datum/reagent/bicarodyne
name = "Bicarodyne"
id = "bicarodyne"
description = "Not to be confused with the old chemical Bicaridine, Bicarodyne is a volatile chemical that reacts violently in the presence of most human endorphins."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
metabolization_rate = 0.01
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/reagent/condensedcapsaicin
@@ -301,6 +301,14 @@
..()
reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide","spidereggs","nanomachines"), 40)
/obj/item/weapon/reagent_containers/glass/bottle/antisocial
desc = "It has a skull and heart on the bottle..what?"
possible_transfer_amounts = list(5,10,15,25,30)
volume = 30
New()
..()
reagents.add_reagent("bicarodyne", 30)
/obj/item/weapon/reagent_containers/glass/bottle/plasma
name = "plasma dust bottle"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

+1
View File
@@ -1775,6 +1775,7 @@
#include "code\modules\projectiles\guns\projectile\revolver.dm"
#include "code\modules\projectiles\guns\projectile\rocket.dm"
#include "code\modules\projectiles\guns\projectile\shotgun.dm"
#include "code\modules\projectiles\guns\projectile\sniper.dm"
#include "code\modules\projectiles\guns\projectile\toy.dm"
#include "code\modules\projectiles\projectile\beams.dm"
#include "code\modules\projectiles\projectile\bullets.dm"