mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into barricade
This commit is contained in:
@@ -1164,7 +1164,7 @@
|
||||
"wt" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/vox/station)
|
||||
"wu" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station)
|
||||
"wv" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"ww" = (/obj/structure/rack,/obj/item/weapon/gun/launcher/pneumatic,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"ww" = (/obj/structure/rack,/obj/item/weapon/pneumatic_cannon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"wx" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/vox/station)
|
||||
"wy" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/turf/space,/area/shuttle/vox/station)
|
||||
"wz" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
|
||||
@@ -2438,7 +2438,7 @@
|
||||
"aUT" = (/turf/simulated/wall,/area/crew_quarters/kitchen)
|
||||
"aUU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
|
||||
"aUV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
|
||||
"aUW" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/crate{desc = "It's a storage unit for kitchen clothes and equipment."; name = "Kitchen Crate"},/obj/item/clothing/head/chefhat,/obj/item/clothing/under/rank/chef,/obj/item/weapon/storage/box/mousetraps{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/box/mousetraps,/obj/item/clothing/under/waiter,/obj/item/clothing/under/waiter,/obj/item/clothing/under/sundress,/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
|
||||
"aUW" = (/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/structure/closet/chefcloset,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
|
||||
"aUX" = (/obj/machinery/camera{c_tag = "Kitchen Freezer"; network = list("SS13")},/obj/machinery/chem_master/condimaster{name = "CondiMaster Neo"; pixel_x = -5},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
|
||||
"aUY" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Kitchen Delivery"; req_access_txt = "28"},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
|
||||
"aUZ" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/maintenance/fsmaint2)
|
||||
|
||||
@@ -663,7 +663,7 @@
|
||||
"mM" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/vox/station)
|
||||
"mN" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/vox/station)
|
||||
"mO" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/medic,/obj/item/clothing/head/helmet/space/vox/medic,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"mP" = (/obj/structure/rack,/obj/item/weapon/gun/launcher/pneumatic,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"mP" = (/obj/structure/rack,/obj/item/weapon/pneumatic_cannon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox/station)
|
||||
"mQ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/vox/station)
|
||||
"mR" = (/turf/space/transit/north/shuttlespace_ns7,/area/vox_station/transit)
|
||||
"mS" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space)
|
||||
|
||||
@@ -773,12 +773,12 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
|
||||
/datum/supply_packs/organic/food
|
||||
name = "Food Crate"
|
||||
contains = list(/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
contains = list(/obj/item/weapon/reagent_containers/food/condiment/flour,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/rice,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/milk,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/soymilk,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/saltshaker,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/peppermill,
|
||||
/obj/item/weapon/storage/fancy/egg_box,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/enzyme,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/sugar,
|
||||
|
||||
@@ -61,12 +61,8 @@
|
||||
input = "soybeans"
|
||||
output = /obj/item/weapon/reagent_containers/food/snacks/soydope
|
||||
|
||||
/datum/food_processor_process/wheat
|
||||
input = "wheat"
|
||||
output = /obj/item/weapon/reagent_containers/food/snacks/flour
|
||||
|
||||
/datum/food_processor_process/spaghetti
|
||||
input = /obj/item/weapon/reagent_containers/food/snacks/flour
|
||||
input = /obj/item/weapon/reagent_containers/food/snacks/doughslice
|
||||
output = /obj/item/weapon/reagent_containers/food/snacks/spagetti
|
||||
/////////////////////////
|
||||
///END OBJECT RECIPIES///
|
||||
|
||||
@@ -1061,8 +1061,8 @@
|
||||
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
|
||||
icon_state = "dinnerware"
|
||||
products = list(/obj/item/weapon/storage/bag/tray = 8,/obj/item/weapon/kitchen/utensil/fork = 6,
|
||||
/obj/item/weapon/kitchenknife = 3,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,
|
||||
/obj/item/clothing/suit/chef/classic = 2,
|
||||
/obj/item/weapon/kitchenknife = 3,/obj/item/weapon/kitchen/rollingpin = 2,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8, /obj/item/clothing/suit/chef/classic = 2,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup = 5,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce = 5,
|
||||
/obj/item/weapon/kitchen/mould/bear = 1, /obj/item/weapon/kitchen/mould/worm = 1,
|
||||
|
||||
@@ -39,8 +39,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
|
||||
null, \
|
||||
new/datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1), \
|
||||
null, \
|
||||
new/datum/stack_recipe("cannon frame", /obj/item/weapon/cannonframe, 10, time = 15, one_per_turf = 0, on_floor = 0), \
|
||||
null, \
|
||||
new/datum/stack_recipe("floor tile", /obj/item/stack/tile/plasteel, 1, 4, 20), \
|
||||
new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60), \
|
||||
null, \
|
||||
|
||||
@@ -0,0 +1,169 @@
|
||||
/obj/item/weapon/pneumatic_cannon
|
||||
name = "pneumatic cannon"
|
||||
desc = "A gas-powered cannon that can fire any object loaded into it."
|
||||
w_class = 4
|
||||
force = 8 //Very heavy
|
||||
attack_verb = list("bludgeoned", "smashed", "beaten")
|
||||
icon = 'icons/obj/pneumaticCannon.dmi'
|
||||
icon_state = "pneumaticCannon"
|
||||
item_state = "bulldog"
|
||||
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/guns_righthand.dmi'
|
||||
var/maxWeightClass = 20 //The max weight of items that can fit into the cannon
|
||||
var/loadedWeightClass = 0 //The weight of items currently in the cannon
|
||||
var/obj/item/weapon/tank/tank = null //The gas tank that is drawn from to fire things
|
||||
var/gasPerThrow = 3 //How much gas is drawn from a tank's pressure to fire
|
||||
var/list/loadedItems = list() //The items loaded into the cannon that will be fired out
|
||||
var/pressureSetting = 1 //How powerful the cannon is - higher pressure = more gas but more powerful throws
|
||||
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/examine(mob/user)
|
||||
..()
|
||||
if(!in_range(user, src))
|
||||
user << "<span class='notice'>You'll need to get closer to see any more.</span>"
|
||||
return
|
||||
for(var/obj/item/I in loadedItems)
|
||||
spawn(0)
|
||||
user << "<span class='info'>\icon [I] It has \the [I] loaded.</span>"
|
||||
if(tank)
|
||||
user << "<span class='notice'>\icon [tank] It has \the [tank] mounted onto it.</span>"
|
||||
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/attackby(obj/item/weapon/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/tank/) && !tank)
|
||||
if(istype(W, /obj/item/weapon/tank/emergency_oxygen))
|
||||
user << "<span class='warning'>\The [W] is too small for \the [src].</span>"
|
||||
return
|
||||
updateTank(W, 0, user)
|
||||
return
|
||||
if(W.type == type)
|
||||
user << "<span class='warning'>You're fairly certain that putting a pneumatic cannon inside another pneumatic cannon would cause a spacetime disruption.</span>"
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
switch(pressureSetting)
|
||||
if(1)
|
||||
pressureSetting = 2
|
||||
if(2)
|
||||
pressureSetting = 3
|
||||
if(3)
|
||||
pressureSetting = 1
|
||||
user << "<span class='notice'>You tweak \the [src]'s pressure output to [pressureSetting].</span>"
|
||||
return
|
||||
if(istype(W, /obj/item/weapon/screwdriver) && tank)
|
||||
updateTank(tank, 1, user)
|
||||
return
|
||||
if(loadedWeightClass >= maxWeightClass)
|
||||
user << "<span class='warning'>\The [src] can't hold any more items!</span>"
|
||||
return
|
||||
if(istype(W, /obj/item))
|
||||
var/obj/item/IW = W
|
||||
if((loadedWeightClass + IW.w_class) > maxWeightClass)
|
||||
user << "<span class='warning'>\The [IW] won't fit into \the [src]!</span>"
|
||||
return
|
||||
if(IW.w_class > src.w_class)
|
||||
user << "<span class='warning'>\The [IW] is too large to fit into \the [src]!</span>"
|
||||
return
|
||||
if(!user.unEquip(W))
|
||||
return
|
||||
user << "<span class='notice'>You load \the [IW] into \the [src].</span>"
|
||||
loadedItems.Add(IW)
|
||||
loadedWeightClass += IW.w_class
|
||||
IW.loc = src
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/afterattack(atom/target, mob/living/carbon/human/user, flag, params)
|
||||
if(istype(target, /obj/item/weapon/storage)) //So you can store it in backpacks
|
||||
return ..()
|
||||
if(istype(target, /obj/structure/closet)) //So you can store it in closets
|
||||
return ..()
|
||||
if(istype(target, /obj/structure/rack)) //So you can store it on racks
|
||||
return ..()
|
||||
if(!istype(user))
|
||||
return ..()
|
||||
Fire(user, target)
|
||||
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/proc/Fire(var/mob/living/carbon/human/user, var/atom/target)
|
||||
if(!istype(user) && !target)
|
||||
return
|
||||
var/discharge = 0
|
||||
if(!loadedItems || !loadedWeightClass)
|
||||
user << "<span class='warning'>\The [src] has nothing loaded.</span>"
|
||||
return
|
||||
if(!tank)
|
||||
user << "<span class='warning'>\The [src] can't fire without a source of gas.</span>"
|
||||
return
|
||||
if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting))
|
||||
user << "<span class='warning'>\The [src] lets out a weak hiss and doesn't react!</span>"
|
||||
return
|
||||
if(user && (CLUMSY in user.mutations) && prob(75))
|
||||
user.visible_message("<span class='warning'>[user] loses their grip on [src], causing it to go off!</span>", "<span class='userdanger'>[src] slips out of your hands and goes off!</span>")
|
||||
user.drop_item()
|
||||
if(prob(10))
|
||||
target = get_turf(user)
|
||||
else
|
||||
var/list/possible_targets = range(3,src)
|
||||
target = pick(possible_targets)
|
||||
discharge = 1
|
||||
if(!discharge)
|
||||
user.visible_message("<span class='danger'>[user] fires \the [src]!</span>", \
|
||||
"<span class='danger'>You fire \the [src]!</span>")
|
||||
add_logs(target, user, "fired at", src)
|
||||
playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 50, 1)
|
||||
for(var/obj/item/ITD in loadedItems) //Item To Discharge
|
||||
spawn(0)
|
||||
loadedItems.Remove(ITD)
|
||||
loadedWeightClass -= ITD.w_class
|
||||
ITD.throw_speed = pressureSetting * 2
|
||||
ITD.loc = get_turf(src)
|
||||
ITD.throw_at(target, pressureSetting * 5, pressureSetting * 2,user)
|
||||
if(pressureSetting >= 3 && user)
|
||||
user.visible_message("<span class='warning'>[user] is thrown down by the force of the cannon!</span>", "<span class='userdanger'>[src] slams into your shoulder, knocking you down!")
|
||||
user.Weaken(3)
|
||||
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/ghetto //Obtainable by improvised methods; more gas per use, less capacity, but smaller
|
||||
name = "improvised pneumatic cannon"
|
||||
desc = "A gas-powered, object-firing cannon made out of common parts."
|
||||
force = 5
|
||||
w_class = 3
|
||||
maxWeightClass = 7
|
||||
gasPerThrow = 5
|
||||
|
||||
/datum/table_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but
|
||||
name = "Pneumatic Cannon"
|
||||
result = /obj/item/weapon/pneumatic_cannon/ghetto
|
||||
tools = list(/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/wrench)
|
||||
reqs = list(/obj/item/stack/sheet/metal = 4,
|
||||
/obj/item/stack/packageWrap = 8,
|
||||
/obj/item/pipe = 2)
|
||||
time = 300
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/proc/updateTank(obj/item/weapon/tank/thetank, removing = 0, mob/living/carbon/human/user)
|
||||
if(removing)
|
||||
if(!src.tank)
|
||||
return
|
||||
user << "<span class='notice'>You detach \the [thetank] from \the [src].</span>"
|
||||
src.tank.loc = get_turf(user)
|
||||
user.put_in_hands(tank)
|
||||
src.tank = null
|
||||
if(!removing)
|
||||
if(src.tank)
|
||||
user << "<span class='warning'>\The [src] already has a tank.</span>"
|
||||
return
|
||||
if(!user.unEquip(thetank))
|
||||
return
|
||||
user << "<span class='notice'>You hook \the [thetank] up to \the [src].</span>"
|
||||
src.tank = thetank
|
||||
thetank.loc = src
|
||||
src.update_icons()
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/proc/update_icons()
|
||||
src.overlays.Cut()
|
||||
if(!tank)
|
||||
return
|
||||
src.overlays += image('icons/obj/pneumaticCannon.dmi', "[tank.icon_state]")
|
||||
src.update_icon()
|
||||
@@ -50,14 +50,18 @@
|
||||
new /obj/item/clothing/under/waiter(src)
|
||||
new /obj/item/device/radio/headset/headset_service(src)
|
||||
new /obj/item/device/radio/headset/headset_service(src)
|
||||
new /obj/item/clothing/suit/wcoat(src)
|
||||
new /obj/item/clothing/suit/wcoat(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/accessory/waistcoat(src)
|
||||
new /obj/item/clothing/accessory/waistcoat(src)
|
||||
new /obj/item/clothing/suit/chef/classic(src)
|
||||
new /obj/item/clothing/suit/chef/classic(src)
|
||||
new /obj/item/clothing/suit/chef/classic(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
new /obj/item/weapon/storage/box/mousetraps(src)
|
||||
new /obj/item/weapon/storage/box/mousetraps(src)
|
||||
new /obj/item/clothing/under/rank/chef(src)
|
||||
new /obj/item/clothing/head/chefhat(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/rag(src)
|
||||
|
||||
/*
|
||||
* Janitor
|
||||
|
||||
@@ -30,12 +30,11 @@
|
||||
New()
|
||||
..()
|
||||
sleep(2)
|
||||
for(var/i = 0, i < 6, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/flour(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/sugar(src)
|
||||
for(var/i = 0, i < 3, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src)
|
||||
return
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/flour(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/rice(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment/sugar(src)
|
||||
|
||||
|
||||
|
||||
/obj/structure/closet/secure_closet/freezer/kitchen/mining
|
||||
@@ -77,7 +76,7 @@
|
||||
sleep(2)
|
||||
for(var/i = 0, i < 5, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/milk(src)
|
||||
for(var/i = 0, i < 3, i++)
|
||||
for(var/i = 0, i < 5, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/soymilk(src)
|
||||
for(var/i = 0, i < 2, i++)
|
||||
new /obj/item/weapon/storage/fancy/egg_box(src)
|
||||
|
||||
@@ -213,6 +213,17 @@
|
||||
"Vox" = 'icons/mob/species/vox/eyes.dmi'
|
||||
)
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/lasers
|
||||
desc = "A peculiar set of sunglasses; they have various chips and other panels attached to the sides of the frames."
|
||||
name = "high-tech sunglasses"
|
||||
flags = GLASSESCOVERSEYES | NODROP
|
||||
|
||||
/obj/item/clothing/glasses/sunglasses/lasers/equipped(mob/user, slot) //grant them laser eyes upon equipping it.
|
||||
if(slot == slot_glasses)
|
||||
user.mutations.Add(LASER)
|
||||
user.regenerate_icons()
|
||||
..(user, slot)
|
||||
|
||||
/obj/item/clothing/glasses/welding
|
||||
name = "welding goggles"
|
||||
desc = "Protects the eyes from welders, approved by the mad scientist association."
|
||||
|
||||
@@ -512,3 +512,59 @@
|
||||
icon_state = "noble_coat"
|
||||
item_state = "noble_coat"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
|
||||
|
||||
|
||||
///Advanced Protective Suit, AKA, God Mode in wearable form.
|
||||
|
||||
/obj/item/clothing/suit/advanced_protective_suit
|
||||
name = "Advanced Protective Suit"
|
||||
desc = "An incredibly advanced and complex suit; it has so many buttons and dials as to be incomprehensible."
|
||||
icon_state = "bomb"
|
||||
item_state = "bomb"
|
||||
action_button_name = "Toggle Advanced Protective Suit"
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD
|
||||
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100)
|
||||
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
|
||||
heat_protection = UPPER_TORSO | LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
slowdown = -10
|
||||
siemens_coefficient = 0
|
||||
var/on = 0
|
||||
|
||||
/obj/item/clothing/suit/advanced_protective_suit/Destroy()
|
||||
if(on)
|
||||
on = 0
|
||||
processing_objects.Remove(src)
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/suit/advanced_protective_suit/ui_action_click()
|
||||
if(on)
|
||||
on = 0
|
||||
usr << "You turn the suit's special processes off."
|
||||
else
|
||||
on = 1
|
||||
usr << "You turn the suit's special processes on."
|
||||
processing_objects.Add(src)
|
||||
|
||||
|
||||
/obj/item/clothing/suit/advanced_protective_suit/IsReflect()
|
||||
return (on)
|
||||
|
||||
/obj/item/clothing/suit/advanced_protective_suit/process()
|
||||
if(on)
|
||||
var/mob/living/carbon/human/user = src.loc
|
||||
if(user && ishuman(user) && (user.wear_suit == src))
|
||||
if(user.reagents.get_reagent_amount("stimulants") < 15)
|
||||
user.reagents.add_reagent("stimulants", 15)
|
||||
if(user.reagents.get_reagent_amount("adminordrazine") < 15)
|
||||
user.reagents.add_reagent("adminordrazine", 15)
|
||||
if(user.reagents.get_reagent_amount("nanites") < 15)
|
||||
user.reagents.add_reagent("nanites", 15)
|
||||
if(user.reagents.get_reagent_amount("syndicate_nanites") < 15)
|
||||
user.reagents.add_reagent("syndicate_nanites", 15)
|
||||
else
|
||||
processing_objects.Remove(src)
|
||||
@@ -36,8 +36,7 @@
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/candy/caramel
|
||||
|
||||
/datum/recipe/candy/toffee
|
||||
reagents = list("sugar" = 5)
|
||||
items = list(/obj/item/weapon/reagent_containers/food/snacks/flour)
|
||||
reagents = list("sugar" = 5, "flour" = 10)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/candy/toffee
|
||||
|
||||
/datum/recipe/candy/taffy
|
||||
|
||||
@@ -76,9 +76,8 @@
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/sausage
|
||||
|
||||
/datum/recipe/grill/fishfingers
|
||||
reagents = list("flour" = 10)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/carpmeat,
|
||||
)
|
||||
|
||||
@@ -45,27 +45,6 @@
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
|
||||
|
||||
/* what is this
|
||||
/datum/recipe/microwave/human
|
||||
//invalid recipe
|
||||
make_food(var/obj/container as obj)
|
||||
var/human_name
|
||||
var/human_job
|
||||
for (var/obj/item/weapon/reagent_containers/food/snacks/meat/human/HM in container)
|
||||
if (!HM.subjectname)
|
||||
continue
|
||||
human_name = HM.subjectname
|
||||
human_job = HM.subjectjob
|
||||
break
|
||||
var/lastname_index = findtext(human_name, " ")
|
||||
if (lastname_index)
|
||||
human_name = copytext(human_name,lastname_index+1)
|
||||
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/human/HB = ..(container)
|
||||
HB.name = human_name+HB.name
|
||||
HB.job = human_job
|
||||
return HB
|
||||
*/
|
||||
|
||||
/datum/recipe/microwave/human/burger
|
||||
items = list(
|
||||
@@ -74,15 +53,6 @@
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/human/burger
|
||||
|
||||
/* Duplicated by plainburger
|
||||
/datum/recipe/microwave/monkeyburger
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/bun,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/monkey
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/monkeyburger
|
||||
*/
|
||||
|
||||
/datum/recipe/microwave/plainburger
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/bun,
|
||||
@@ -143,7 +113,6 @@
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/bun,
|
||||
/obj/item/clothing/mask/gas/clown_hat,
|
||||
/* /obj/item/weapon/reagent_containers/food/snacks/grown/banana, */
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/clownburger
|
||||
|
||||
@@ -184,18 +153,12 @@
|
||||
|
||||
/datum/recipe/microwave/soylenviridians
|
||||
fruit = list("soybeans" = 1)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
)
|
||||
reagents = list("flour" = 10)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/soylenviridians
|
||||
|
||||
/datum/recipe/microwave/soylentgreen
|
||||
reagents = list("flour" = 10)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat/human,
|
||||
)
|
||||
@@ -312,11 +275,10 @@
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas
|
||||
|
||||
/datum/recipe/microwave/monkeysdelight
|
||||
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
|
||||
fruit = list("banana" = 1)
|
||||
reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 10)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/monkeycube,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/monkeycube
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight
|
||||
|
||||
|
||||
@@ -256,9 +256,8 @@
|
||||
|
||||
/datum/recipe/oven/creamcheesebread
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/dough,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/dough,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge,
|
||||
)
|
||||
@@ -366,13 +365,10 @@
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pumpkinpie
|
||||
|
||||
/datum/recipe/oven/appletart
|
||||
reagents = list("sugar" = 5, "milk" = 5)
|
||||
fruit = list("goldapple" = 1)
|
||||
reagents = list("sugar" = 5, "milk" = 5, "flour" = 10)
|
||||
items = list(
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg
|
||||
)
|
||||
result = /obj/item/weapon/reagent_containers/food/snacks/appletart
|
||||
|
||||
|
||||
@@ -1,210 +0,0 @@
|
||||
/obj/item/weapon/gun/launcher/pneumatic
|
||||
name = "pneumatic cannon"
|
||||
desc = "A large gas-powered cannon."
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "pneumatic"
|
||||
item_state = "pneumatic"
|
||||
w_class = 5.0
|
||||
flags = CONDUCT
|
||||
fire_sound_text = "a loud whoosh of moving air"
|
||||
fire_delay = 50
|
||||
fire_sound = 'sound/weapons/tablehit1.ogg'
|
||||
|
||||
var/fire_pressure // Used in fire checks/pressure checks.
|
||||
var/max_w_class = 3 // Hopper intake size.
|
||||
var/max_combined_w_class = 20 // Total internal storage size.
|
||||
var/obj/item/weapon/tank/tank = null // Tank of gas for use in firing the cannon.
|
||||
var/obj/item/weapon/storage/tank_container = new() // Something to hold the tank item so we don't accidentally fire it.
|
||||
var/pressure_setting = 10 // Percentage of the gas in the tank used to fire the projectile.
|
||||
var/possible_pressure_amounts = list(5,10,20,25,50) // Possible pressure settings.
|
||||
var/minimum_tank_pressure = 10 // Minimum pressure to fire the gun.
|
||||
var/force_divisor = 400 // Force equates to speed. Speed/5 equates to a damage multiplier for whoever you hit.
|
||||
// For reference, a fully pressurized oxy tank at 50% gas release firing a health
|
||||
// analyzer with a force_divisor of 10 hit with a damage multiplier of 3000+.
|
||||
/obj/item/weapon/gun/launcher/pneumatic/New()
|
||||
..()
|
||||
tank_container.tag = "gas_tank_holder"
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/verb/set_pressure() //set amount of tank pressure.
|
||||
|
||||
set name = "Set Valve Pressure"
|
||||
set category = "Object"
|
||||
set src in range(0)
|
||||
var/N = input("Percentage of tank used per shot:","[src]") as null|anything in possible_pressure_amounts
|
||||
if (N)
|
||||
pressure_setting = N
|
||||
usr << "You dial the pressure valve to [pressure_setting]%."
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/verb/eject_tank() //Remove the tank.
|
||||
|
||||
set name = "Eject Tank"
|
||||
set category = "Object"
|
||||
set src in range(0)
|
||||
|
||||
if(tank)
|
||||
usr << "You twist the valve and pop the tank out of [src]."
|
||||
tank.loc = usr.loc
|
||||
tank = null
|
||||
icon_state = "pneumatic"
|
||||
item_state = "pneumatic"
|
||||
usr.update_icons()
|
||||
else
|
||||
usr << "There's no tank in [src]."
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(!tank && istype(W,/obj/item/weapon/tank))
|
||||
user.drop_item()
|
||||
tank = W
|
||||
tank.loc = src.tank_container
|
||||
user.visible_message("[user] jams [W] into [src]'s valve and twists it closed.","You jam [W] into [src]'s valve and twist it closed.")
|
||||
icon_state = "pneumatic-tank"
|
||||
item_state = "pneumatic-tank"
|
||||
user.update_icons()
|
||||
else if(W.w_class <= max_w_class)
|
||||
|
||||
var/total_stored = 0
|
||||
for(var/obj/item/O in src.contents)
|
||||
total_stored += O.w_class
|
||||
if(total_stored + W.w_class <= max_combined_w_class)
|
||||
user.drop_item(W)
|
||||
W.loc = src
|
||||
user << "You shove [W] into the hopper."
|
||||
else
|
||||
user << "That won't fit into the hopper - it's full."
|
||||
return
|
||||
else
|
||||
user << "That won't fit into the hopper."
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/attack_self(mob/user as mob)
|
||||
|
||||
if(contents.len > 0)
|
||||
var/obj/item/removing = contents[contents.len]
|
||||
if(removing == in_chamber)
|
||||
in_chamber = null
|
||||
|
||||
removing.loc = get_turf(src)
|
||||
user.put_in_hands(removing)
|
||||
user << "You remove [removing] from the hopper."
|
||||
else
|
||||
user << "There is nothing to remove in \the [src]."
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/chamber_round()
|
||||
if(!contents.len)
|
||||
return 0
|
||||
|
||||
in_chamber = contents[1]
|
||||
return !isnull(in_chamber)
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/examine(mob/user)
|
||||
if(..(user, 2))
|
||||
user << "The valve is dialed to [pressure_setting]%."
|
||||
if(tank)
|
||||
user << "The tank dial reads [tank.air_contents.return_pressure()] kPa."
|
||||
else
|
||||
user << "Nothing is attached to the tank valve!"
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/special_check(user)
|
||||
|
||||
if (!tank)
|
||||
user << "There is no gas tank in [src]!"
|
||||
return 0
|
||||
|
||||
fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting
|
||||
if (fire_pressure < minimum_tank_pressure)
|
||||
user << "There isn't enough gas in the tank to fire [src]."
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/update_release_force()
|
||||
if(!in_chamber) return
|
||||
release_force = ((fire_pressure*tank.volume)/in_chamber.w_class)/force_divisor //projectile speed.
|
||||
if(release_force >80) release_force = 80 //damage cap.
|
||||
|
||||
/obj/item/weapon/gun/launcher/pneumatic/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0)
|
||||
|
||||
if(!tank || !..()) return //Only do this on a successful shot.
|
||||
|
||||
var/lost_gas_amount = tank.air_contents.total_moles()*(pressure_setting/100)
|
||||
var/datum/gas_mixture/removed = tank.air_contents.remove(lost_gas_amount)
|
||||
user.loc.assume_air(removed)
|
||||
|
||||
//Constructable pneumatic cannon.
|
||||
|
||||
/obj/item/weapon/cannonframe
|
||||
name = "pneumatic cannon frame"
|
||||
desc = "A half-finished pneumatic cannon."
|
||||
icon_state = "pneumatic0"
|
||||
item_state = "pneumatic"
|
||||
|
||||
var/buildstate = 0
|
||||
|
||||
/obj/item/weapon/cannonframe/update_icon()
|
||||
icon_state = "pneumatic[buildstate]"
|
||||
|
||||
/obj/item/weapon/cannonframe/examine(mob/user)
|
||||
..(user)
|
||||
switch(buildstate)
|
||||
if(1) user << "It has a pipe segment installed."
|
||||
if(2) user << "It has a pipe segment welded in place."
|
||||
if(3) user << "It has an outer chassis installed."
|
||||
if(4) user << "It has an outer chassis welded in place."
|
||||
if(5) user << "It has a transfer valve installed."
|
||||
|
||||
/obj/item/weapon/cannonframe/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W,/obj/item/pipe))
|
||||
if(buildstate == 0)
|
||||
user.drop_item()
|
||||
qdel(W)
|
||||
user << "\blue You secure the piping inside the frame."
|
||||
buildstate++
|
||||
update_icon()
|
||||
return
|
||||
else if(istype(W,/obj/item/stack/sheet/metal))
|
||||
if(buildstate == 2)
|
||||
var/obj/item/stack/sheet/metal/M = W
|
||||
if(M.amount >= 5)
|
||||
M.use(5)
|
||||
user << "\blue You assemble a chassis around the cannon frame."
|
||||
buildstate++
|
||||
update_icon()
|
||||
else
|
||||
user << "\blue You need at least five metal sheets to complete this task."
|
||||
return
|
||||
else if(istype(W,/obj/item/device/transfer_valve))
|
||||
if(buildstate == 4)
|
||||
user.drop_item()
|
||||
qdel(W)
|
||||
user << "\blue You install the transfer valve and connect it to the piping."
|
||||
buildstate++
|
||||
update_icon()
|
||||
return
|
||||
else if(istype(W,/obj/item/weapon/weldingtool))
|
||||
if(buildstate == 1)
|
||||
var/obj/item/weapon/weldingtool/T = W
|
||||
if(T.remove_fuel(0,user))
|
||||
if(!src || !T.isOn()) return
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
|
||||
user << "\blue You weld the pipe into place."
|
||||
buildstate++
|
||||
update_icon()
|
||||
if(buildstate == 3)
|
||||
var/obj/item/weapon/weldingtool/T = W
|
||||
if(T.remove_fuel(0,user))
|
||||
if(!src || !T.isOn()) return
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
|
||||
user << "\blue You weld the metal chassis together."
|
||||
buildstate++
|
||||
update_icon()
|
||||
if(buildstate == 5)
|
||||
var/obj/item/weapon/weldingtool/T = W
|
||||
if(T.remove_fuel(0,user))
|
||||
if(!src || !T.isOn()) return
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
|
||||
user << "\blue You weld the valve into place."
|
||||
new /obj/item/weapon/gun/launcher/pneumatic(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
..()
|
||||
@@ -779,7 +779,7 @@
|
||||
"deathnettle" = list("facid" = 0),
|
||||
"soybeans" = list("soymilk" = 0),
|
||||
"tomato" = list("ketchup" = 0),
|
||||
///obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
|
||||
"wheat" = list("flour" = -5),
|
||||
"rice" = list("rice" = -5),
|
||||
"cherries" = list("cherryjelly" = 0),
|
||||
)
|
||||
|
||||
@@ -105,4 +105,17 @@
|
||||
result_amount = 1
|
||||
max_temp = 273
|
||||
mix_message = "Ice forms as the water freezes."
|
||||
mix_sound = null
|
||||
mix_sound = null
|
||||
|
||||
dough
|
||||
name = "Dough"
|
||||
id = "dough"
|
||||
result = null
|
||||
required_reagents = list("water" = 10, "flour" = 15)
|
||||
result_amount = 1
|
||||
mix_message = "The ingredients form a dough."
|
||||
|
||||
on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
for(var/i = 1, i <= created_volume, i++)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/dough(location)
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
//Food items that aren't eaten normally and leave an empty container behind.
|
||||
/obj/item/weapon/reagent_containers/food/condiment
|
||||
name = "Condiment Container"
|
||||
name = "condiment container"
|
||||
desc = "Just your average condiment container."
|
||||
icon = 'icons/obj/food/food.dmi'
|
||||
icon_state = "emptycondiment"
|
||||
@@ -14,7 +14,18 @@
|
||||
possible_transfer_amounts = list(1,5,10)
|
||||
volume = 50
|
||||
//Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change() to change names, descs and sprites.
|
||||
var/list/possible_states = list("ketchup" = list("ketchup", "Ketchup", "You feel more American already."), "capsaicin" = list("hotsauce", "Hotsauce", "You can almost TASTE the stomach ulcers now!"), "enzyme" = list("enzyme", "Universal Enzyme", "Used in cooking various dishes"), "soysauce" = list("soysauce", "Soy Sauce", "A salty soy-based flavoring"), "frostoil" = list("coldsauce", "Coldsauce", "Leaves the tongue numb in it's passage"), "sodiumchloride" = list("saltshaker", "Salt Shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("pepermillsmall", "Pepper Mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("oliveoil", "Corn Oil", "A delicious oil used in cooking. Made from corn"), "sugar" = list("emptycondiment", "Sugar", "Tasty spacey sugar!"))
|
||||
var/list/possible_states = list(
|
||||
"ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."),
|
||||
"capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"),
|
||||
"enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"),
|
||||
"soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"),
|
||||
"frostoil" = list("coldsauce", "coldsauce bottle", "Leaves the tongue numb in it's passage"),
|
||||
"sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"),
|
||||
"blackpepper" = list("pepermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"),
|
||||
"cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"),
|
||||
"sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!"),
|
||||
"flour" =list("flour", "flour sack", "A big bag of flour. Good for baking!"),
|
||||
"rice" =list("rice", "rice sack", "A big bag of rice. Good for cooking!"))
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
@@ -96,7 +107,7 @@
|
||||
user << "\blue You transfer [trans] units of the condiment to [target]."
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/on_reagent_change()
|
||||
if(icon_state == "saltshakersmall" || icon_state == "peppermillsmall")
|
||||
if(!possible_states.len)
|
||||
return
|
||||
if(reagents.reagent_list.len > 0)
|
||||
var/main_reagent = reagents.get_master_reagent_id()
|
||||
@@ -107,21 +118,22 @@
|
||||
desc = temp_list[3]
|
||||
|
||||
else
|
||||
name = "Misc Condiment Bottle"
|
||||
name = "condiment bottle"
|
||||
main_reagent = reagents.get_master_reagent_name()
|
||||
if (reagents.reagent_list.len==1)
|
||||
desc = "Looks like it is [main_reagent], but you are not sure."
|
||||
desc = "Looks like it is [lowertext(main_reagent)], but you are not sure."
|
||||
else
|
||||
desc = "A mixture of various condiments. [main_reagent] is one of them."
|
||||
desc = "A mixture of various condiments. [lowertext(main_reagent)] is one of them."
|
||||
icon_state = "mixedcondiments"
|
||||
else
|
||||
icon_state = "emptycondiment"
|
||||
name = "Condiment Bottle"
|
||||
name = "condiment bottle"
|
||||
desc = "An empty condiment bottle."
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/enzyme
|
||||
name = "Universal Enzyme"
|
||||
name = "universal enzyme"
|
||||
desc = "Used in cooking various dishes."
|
||||
icon_state = "enzyme"
|
||||
New()
|
||||
@@ -129,10 +141,35 @@
|
||||
reagents.add_reagent("enzyme", 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/sugar
|
||||
name = "sugar bottle"
|
||||
desc = "Tasty spacey sugar!"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("sugar", 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/flour
|
||||
name = "flour sack"
|
||||
desc = "A big bag of flour. Good for baking!"
|
||||
icon_state = "flour"
|
||||
item_state = "flour"
|
||||
possible_states = list()
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("flour", 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/rice
|
||||
name = "rice sack"
|
||||
desc = "A big bag of rice. Good for cooking!"
|
||||
icon_state = "rice"
|
||||
item_state = "flour"
|
||||
possible_states = list()
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("rice", 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/condiment/saltshaker //Seperate from above since it's a small shaker rather then
|
||||
name = "Salt Shaker" // a large one.
|
||||
desc = "Salt. From space oceans, presumably."
|
||||
@@ -140,6 +177,8 @@
|
||||
possible_transfer_amounts = list(1,20) //for clown turning the lid off
|
||||
amount_per_transfer_from_this = 1
|
||||
volume = 20
|
||||
possible_states = list()
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("sodiumchloride", 20)
|
||||
@@ -151,6 +190,8 @@
|
||||
possible_transfer_amounts = list(1,20) //for clown turning the lid off
|
||||
amount_per_transfer_from_this = 1
|
||||
volume = 20
|
||||
possible_states = list()
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("blackpepper", 20)
|
||||
|
||||
@@ -629,14 +629,6 @@
|
||||
reagents.add_reagent("nutriment", 2)
|
||||
reagents.add_reagent("egg", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour
|
||||
name = "flour"
|
||||
desc = "A small bag filled with some flour."
|
||||
icon_state = "flour"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("flour", 5)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/organ
|
||||
|
||||
name = "organ"
|
||||
@@ -3176,22 +3168,6 @@
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 3)
|
||||
|
||||
// Flour + egg = dough
|
||||
/obj/item/weapon/reagent_containers/food/snacks/flour/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/egg))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/dough(src)
|
||||
user << "You make some dough."
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
// Egg + flour = dough
|
||||
/obj/item/weapon/reagent_containers/food/snacks/egg/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
if(istype(W,/obj/item/weapon/reagent_containers/food/snacks/flour))
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/dough(src)
|
||||
user << "You make some dough."
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/dough
|
||||
name = "dough"
|
||||
desc = "A piece of dough."
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 53 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 369 KiB After Width: | Height: | Size: 369 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
+1
-1
@@ -720,6 +720,7 @@
|
||||
#include "code\game\objects\items\weapons\mop.dm"
|
||||
#include "code\game\objects\items\weapons\paint.dm"
|
||||
#include "code\game\objects\items\weapons\paiwire.dm"
|
||||
#include "code\game\objects\items\weapons\pneumaticCannon.dm"
|
||||
#include "code\game\objects\items\weapons\power_cells.dm"
|
||||
#include "code\game\objects\items\weapons\RCD.dm"
|
||||
#include "code\game\objects\items\weapons\RSF.dm"
|
||||
@@ -1627,7 +1628,6 @@
|
||||
#include "code\modules\projectiles\guns\projectile\grenade launcher.dm"
|
||||
#include "code\modules\projectiles\guns\projectile\launchers.dm"
|
||||
#include "code\modules\projectiles\guns\projectile\pistol.dm"
|
||||
#include "code\modules\projectiles\guns\projectile\pneumatic.dm"
|
||||
#include "code\modules\projectiles\guns\projectile\revolver.dm"
|
||||
#include "code\modules\projectiles\guns\projectile\rocket.dm"
|
||||
#include "code\modules\projectiles\guns\projectile\shotgun.dm"
|
||||
|
||||
Reference in New Issue
Block a user