mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 08:36:00 +01:00
Merge upstream
This commit is contained in:
@@ -23,8 +23,9 @@
|
||||
else
|
||||
dat += "<center>[type] of [key_name(M)]</center><br>"
|
||||
var/list/reversed = M.logging[type]
|
||||
reversed = reverseRange(reversed.Copy())
|
||||
for(var/entry in reversed)
|
||||
dat += "<font size=2px>[entry]: [reversed[entry]]</font><hr>"
|
||||
if(reversed)
|
||||
reversed = reverseRange(reversed.Copy())
|
||||
for(var/entry in reversed)
|
||||
dat += "<font size=2px>[entry]: [reversed[entry]]</font><hr>"
|
||||
|
||||
usr << browse(dat, "window=invidual_logging;size=600x480")
|
||||
@@ -91,7 +91,7 @@
|
||||
/turf/open/archive()
|
||||
air.archive()
|
||||
archived_cycle = SSair.times_fired
|
||||
..()
|
||||
temperature_archived = temperature
|
||||
|
||||
/////////////////////////GAS OVERLAYS//////////////////////////////
|
||||
|
||||
@@ -117,11 +117,23 @@
|
||||
var/list/gases = air.gases
|
||||
for(var/id in gases)
|
||||
var/gas = gases[id]
|
||||
if(gas[GAS_META][META_GAS_OVERLAY] && gas[MOLES] > gas[GAS_META][META_GAS_MOLES_VISIBLE])
|
||||
. += gas[GAS_META][META_GAS_OVERLAY]
|
||||
var/gas_meta = gas[GAS_META]
|
||||
var/gas_overlay = gas_meta[META_GAS_OVERLAY]
|
||||
if(gas_overlay && gas[MOLES] > gas_meta[META_GAS_MOLES_VISIBLE])
|
||||
. += gas_overlay
|
||||
|
||||
/////////////////////////////SIMULATION///////////////////////////////////
|
||||
|
||||
#define LAST_SHARE_CHECK \
|
||||
var/last_share = our_air.last_share;\
|
||||
if(last_share > MINIMUM_AIR_TO_SUSPEND){\
|
||||
our_excited_group.reset_cooldowns();\
|
||||
cached_atmos_cooldown = 0;\
|
||||
} else if(last_share > MINIMUM_MOLES_DELTA_TO_MOVE) {\
|
||||
our_excited_group.dismantle_cooldown = 0;\
|
||||
cached_atmos_cooldown = 0;\
|
||||
}
|
||||
|
||||
/turf/proc/process_cell(fire_count)
|
||||
SSair.remove_from_active(src)
|
||||
|
||||
@@ -130,15 +142,18 @@
|
||||
archive()
|
||||
|
||||
current_cycle = fire_count
|
||||
var/remove = 1 //set by non simulated turfs who are sharing with this turf
|
||||
|
||||
//cache for sanic speed
|
||||
var/list/adjacent_turfs = atmos_adjacent_turfs
|
||||
var/datum/excited_group/our_excited_group = excited_group
|
||||
var/adjacent_turfs_length = LAZYLEN(adjacent_turfs)
|
||||
atmos_cooldown++
|
||||
if (planetary_atmos)
|
||||
var/cached_atmos_cooldown = atmos_cooldown + 1
|
||||
|
||||
var/planet_atmos = planetary_atmos
|
||||
if (planet_atmos)
|
||||
adjacent_turfs_length++
|
||||
|
||||
var/datum/gas_mixture/our_air = air
|
||||
|
||||
for(var/t in adjacent_turfs)
|
||||
var/turf/open/enemy_tile = t
|
||||
@@ -148,6 +163,8 @@
|
||||
|
||||
/******************* GROUP HANDLING START *****************************************************************/
|
||||
|
||||
var/should_share_air = FALSE
|
||||
var/datum/gas_mixture/enemy_air = enemy_tile.air
|
||||
if(enemy_tile.excited)
|
||||
//cache for sanic speed
|
||||
var/datum/excited_group/enemy_excited_group = enemy_tile.excited_group
|
||||
@@ -157,26 +174,26 @@
|
||||
//combine groups (this also handles updating the excited_group var of all involved turfs)
|
||||
our_excited_group.merge_groups(enemy_excited_group)
|
||||
our_excited_group = excited_group //update our cache
|
||||
share_air(enemy_tile, fire_count, adjacent_turfs_length) //share
|
||||
should_share_air = TRUE
|
||||
else
|
||||
if((recently_active == 1 && enemy_tile.recently_active == 1) || air.compare(enemy_tile.air))
|
||||
if((recently_active == 1 && enemy_tile.recently_active == 1) || our_air.compare(enemy_air))
|
||||
our_excited_group.add_turf(enemy_tile) //add enemy to our group
|
||||
share_air(enemy_tile, fire_count, adjacent_turfs_length) //share
|
||||
should_share_air = TRUE
|
||||
else
|
||||
if(enemy_excited_group)
|
||||
if((recently_active == 1 && enemy_tile.recently_active == 1) || air.compare(enemy_tile.air))
|
||||
if((recently_active == 1 && enemy_tile.recently_active == 1) || our_air.compare(enemy_air))
|
||||
enemy_excited_group.add_turf(src) //join self to enemy group
|
||||
our_excited_group = excited_group //update our cache
|
||||
share_air(enemy_tile, fire_count, adjacent_turfs_length) //share
|
||||
should_share_air = TRUE
|
||||
else
|
||||
if((recently_active == 1 && enemy_tile.recently_active == 1) || air.compare(enemy_tile.air))
|
||||
if((recently_active == 1 && enemy_tile.recently_active == 1) || our_air.compare(enemy_air))
|
||||
var/datum/excited_group/EG = new //generate new group
|
||||
EG.add_turf(src)
|
||||
EG.add_turf(enemy_tile)
|
||||
our_excited_group = excited_group //update our cache
|
||||
share_air(enemy_tile, fire_count, adjacent_turfs_length) //share
|
||||
should_share_air = TRUE
|
||||
else
|
||||
if(air.compare(enemy_tile.air)) //compare if
|
||||
if(our_air.compare(enemy_air)) //compare if
|
||||
SSair.add_to_active(enemy_tile) //excite enemy
|
||||
if(our_excited_group)
|
||||
our_excited_group.add_turf(enemy_tile) //add enemy to group
|
||||
@@ -185,51 +202,55 @@
|
||||
EG.add_turf(src)
|
||||
EG.add_turf(enemy_tile)
|
||||
our_excited_group = excited_group //update our cache
|
||||
share_air(enemy_tile, fire_count, adjacent_turfs_length) //share
|
||||
should_share_air = TRUE
|
||||
|
||||
//air sharing
|
||||
if(should_share_air)
|
||||
var/difference = our_air.share(enemy_air, adjacent_turfs_length)
|
||||
if(difference)
|
||||
if(difference > 0)
|
||||
consider_pressure_difference(enemy_tile, difference)
|
||||
else
|
||||
enemy_tile.consider_pressure_difference(src, -difference)
|
||||
LAST_SHARE_CHECK
|
||||
|
||||
|
||||
/******************* GROUP HANDLING FINISH *********************************************************************/
|
||||
|
||||
if (planetary_atmos) //share our air with the "atmosphere" "above" the turf
|
||||
if (planet_atmos) //share our air with the "atmosphere" "above" the turf
|
||||
var/datum/gas_mixture/G = new
|
||||
G.copy_from_turf(src)
|
||||
G.archive()
|
||||
if(air.compare(G))
|
||||
if(our_air.compare(G))
|
||||
if(!our_excited_group)
|
||||
var/datum/excited_group/EG = new
|
||||
EG.add_turf(src)
|
||||
our_excited_group = excited_group
|
||||
air.share(G, adjacent_turfs_length)
|
||||
last_share_check()
|
||||
our_air.share(G, adjacent_turfs_length)
|
||||
LAST_SHARE_CHECK
|
||||
|
||||
air.react()
|
||||
our_air.react()
|
||||
|
||||
update_visuals()
|
||||
|
||||
if(air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST)
|
||||
hotspot_expose(air.temperature, CELL_VOLUME)
|
||||
for(var/atom/movable/item in src)
|
||||
item.temperature_expose(air, air.temperature, CELL_VOLUME)
|
||||
temperature_expose(air, air.temperature, CELL_VOLUME)
|
||||
var/our_temperature = our_air.temperature
|
||||
|
||||
if(air.temperature > MINIMUM_TEMPERATURE_START_SUPERCONDUCTION)
|
||||
var/remove = TRUE
|
||||
if(our_temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST)
|
||||
hotspot_expose(our_temperature, CELL_VOLUME)
|
||||
for(var/I in src)
|
||||
var/atom/movable/item = I
|
||||
item.temperature_expose(our_air, our_temperature, CELL_VOLUME)
|
||||
temperature_expose(our_air, our_temperature, CELL_VOLUME)
|
||||
|
||||
if(our_temperature > MINIMUM_TEMPERATURE_START_SUPERCONDUCTION)
|
||||
if(consider_superconductivity(starting = 1))
|
||||
remove = 0
|
||||
remove = FALSE
|
||||
|
||||
if (atmos_cooldown > EXCITED_GROUP_DISMANTLE_CYCLES*2)
|
||||
if ((!our_excited_group && remove) || (cached_atmos_cooldown > (EXCITED_GROUP_DISMANTLE_CYCLES * 2)))
|
||||
SSair.remove_from_active(src)
|
||||
if(!our_excited_group && remove == 1)
|
||||
SSair.remove_from_active(src)
|
||||
|
||||
|
||||
/turf/open/proc/share_air(turf/open/T, fire_count, adjacent_turfs_length)
|
||||
if(T.current_cycle < fire_count)
|
||||
var/difference = air.share(T.air, adjacent_turfs_length)
|
||||
if(difference)
|
||||
if(difference > 0)
|
||||
consider_pressure_difference(T, difference)
|
||||
else
|
||||
T.consider_pressure_difference(src, -difference)
|
||||
last_share_check()
|
||||
|
||||
atmos_cooldown = cached_atmos_cooldown
|
||||
|
||||
//////////////////////////SPACEWIND/////////////////////////////
|
||||
|
||||
@@ -239,14 +260,6 @@
|
||||
pressure_direction = get_dir(src, T)
|
||||
pressure_difference = difference
|
||||
|
||||
/turf/open/proc/last_share_check()
|
||||
if(air.last_share > MINIMUM_AIR_TO_SUSPEND)
|
||||
excited_group.reset_cooldowns()
|
||||
atmos_cooldown = 0
|
||||
else if(air.last_share > MINIMUM_MOLES_DELTA_TO_MOVE)
|
||||
excited_group.dismantle_cooldown = 0
|
||||
atmos_cooldown = 0
|
||||
|
||||
/turf/open/proc/high_pressure_movements()
|
||||
for(var/atom/movable/M in src)
|
||||
M.experience_pressure_difference(pressure_difference, pressure_direction)
|
||||
|
||||
@@ -6,30 +6,24 @@ What are the archived variables for?
|
||||
#define MINIMUM_HEAT_CAPACITY 0.0003
|
||||
#define QUANTIZE(variable) (round(variable,0.0000001))/*I feel the need to document what happens here. Basically this is used to catch most rounding errors, however it's previous value made it so that
|
||||
once gases got hot enough, most procedures wouldnt occur due to the fact that the mole counts would get rounded away. Thus, we lowered it a few orders of magnititude */
|
||||
|
||||
var/list/meta_gas_info = meta_gas_list() //see ATMOSPHERICS/gas_types.dm
|
||||
var/list/gaslist_cache = init_gaslist_cache()
|
||||
|
||||
var/list/gaslist_cache = null
|
||||
/proc/gaslist(id)
|
||||
var/list/cached_gas
|
||||
/proc/init_gaslist_cache()
|
||||
. = list()
|
||||
for(var/id in meta_gas_info)
|
||||
var/list/cached_gas = new(3)
|
||||
|
||||
//only instantiate the first time it's needed
|
||||
if(!gaslist_cache)
|
||||
gaslist_cache = new(meta_gas_info.len)
|
||||
|
||||
//only setup the individual lists the first time they're needed
|
||||
if(!gaslist_cache[id])
|
||||
if(!meta_gas_info[id])
|
||||
CRASH("Gas [id] does not exist!")
|
||||
cached_gas = new(3)
|
||||
gaslist_cache[id] = cached_gas
|
||||
.[id] = cached_gas
|
||||
|
||||
cached_gas[MOLES] = 0
|
||||
cached_gas[ARCHIVE] = 0
|
||||
cached_gas[GAS_META] = meta_gas_info[id]
|
||||
else
|
||||
cached_gas = gaslist_cache[id]
|
||||
//Copy() it because only GAS_META is static
|
||||
return cached_gas.Copy()
|
||||
|
||||
#define GASLIST(id, out_list)\
|
||||
var/list/tmp_gaslist = gaslist_cache[id];\
|
||||
out_list = tmp_gaslist.Copy();
|
||||
|
||||
/datum/gas_mixture
|
||||
var/list/gases
|
||||
@@ -57,7 +51,7 @@ var/list/gaslist_cache = null
|
||||
var/cached_gases = gases
|
||||
if(cached_gases[gas_id])
|
||||
return
|
||||
cached_gases[gas_id] = gaslist(gas_id)
|
||||
GASLIST(gas_id, cached_gases[gas_id])
|
||||
|
||||
//assert_gases(args) - shorthand for calling assert_gas() once for each gas type.
|
||||
/datum/gas_mixture/proc/assert_gases()
|
||||
@@ -68,12 +62,13 @@ var/list/gaslist_cache = null
|
||||
//gas list for this id. This can clobber existing gases.
|
||||
//Used instead of assert_gas() when you know the gas does not exist. Faster than assert_gas().
|
||||
/datum/gas_mixture/proc/add_gas(gas_id)
|
||||
gases[gas_id] = gaslist(gas_id)
|
||||
GASLIST(gas_id, gases[gas_id])
|
||||
|
||||
//add_gases(args) - shorthand for calling add_gas() once for each gas_type.
|
||||
/datum/gas_mixture/proc/add_gases()
|
||||
var/cached_gases = gases
|
||||
for(var/id in args)
|
||||
add_gas(id)
|
||||
GASLIST(id, cached_gases[id])
|
||||
|
||||
//garbage_collect() - removes any gas list which is empty.
|
||||
//If called with a list as an argument, only removes gas lists with IDs from that list.
|
||||
@@ -91,23 +86,33 @@ var/list/gaslist_cache = null
|
||||
var/list/cached_gases = gases
|
||||
. = 0
|
||||
for(var/id in cached_gases)
|
||||
. += cached_gases[id][MOLES] * cached_gases[id][GAS_META][META_GAS_SPECIFIC_HEAT]
|
||||
var/gas_data = cached_gases[id]
|
||||
. += gas_data[MOLES] * gas_data[GAS_META][META_GAS_SPECIFIC_HEAT]
|
||||
|
||||
/datum/gas_mixture/proc/heat_capacity_archived() //joules per kelvin
|
||||
var/list/cached_gases = gases
|
||||
. = 0
|
||||
for(var/id in cached_gases)
|
||||
. += cached_gases[id][ARCHIVE] * cached_gases[id][GAS_META][META_GAS_SPECIFIC_HEAT]
|
||||
var/gas_data = cached_gases[id]
|
||||
. += gas_data[ARCHIVE] * gas_data[GAS_META][META_GAS_SPECIFIC_HEAT]
|
||||
|
||||
/datum/gas_mixture/proc/total_moles() //moles
|
||||
var/list/cached_gases = gases
|
||||
. = 0
|
||||
for(var/id in cached_gases)
|
||||
. += cached_gases[id][MOLES]
|
||||
//prefer this in performance critical areas
|
||||
#define TOTAL_MOLES(cached_gases, out_var)\
|
||||
out_var = 0;\
|
||||
for(var/total_moles_id in cached_gases){\
|
||||
out_var += cached_gases[total_moles_id][MOLES];\
|
||||
}
|
||||
|
||||
/datum/gas_mixture/proc/total_moles()
|
||||
var/cached_gases = gases
|
||||
TOTAL_MOLES(cached_gases, .)
|
||||
|
||||
/datum/gas_mixture/proc/return_pressure() //kilopascals
|
||||
if(volume > 0) // to prevent division by zero
|
||||
return total_moles() * R_IDEAL_GAS_EQUATION * temperature / volume
|
||||
var/cached_gases = gases
|
||||
TOTAL_MOLES(cached_gases, .)
|
||||
. *= R_IDEAL_GAS_EQUATION * temperature / volume
|
||||
return
|
||||
return 0
|
||||
|
||||
/datum/gas_mixture/proc/return_temperature() //kelvins
|
||||
@@ -340,11 +345,12 @@ var/list/gaslist_cache = null
|
||||
return 1
|
||||
|
||||
/datum/gas_mixture/remove(amount)
|
||||
var/sum = total_moles()
|
||||
var/sum
|
||||
var/list/cached_gases = gases
|
||||
TOTAL_MOLES(cached_gases, sum)
|
||||
amount = min(amount, sum) //Can not take more air than tile has!
|
||||
if(amount <= 0)
|
||||
return null
|
||||
var/list/cached_gases = gases
|
||||
var/datum/gas_mixture/removed = new
|
||||
var/list/removed_gases = removed.gases //accessing datum vars is slower than proc vars
|
||||
|
||||
@@ -495,7 +501,11 @@ var/list/gaslist_cache = null
|
||||
sharer.garbage_collect(sharer_gases - cached_gases) //the reverse is equally true
|
||||
sharer.after_share(src, atmos_adjacent_turfs)
|
||||
if(temperature_delta > MINIMUM_TEMPERATURE_TO_MOVE || abs(moved_moles) > MINIMUM_MOLES_DELTA_TO_MOVE)
|
||||
var/delta_pressure = temperature_archived*(total_moles() + moved_moles) - sharer.temperature_archived*(sharer.total_moles() - moved_moles)
|
||||
var/our_moles
|
||||
TOTAL_MOLES(cached_gases,our_moles)
|
||||
var/their_moles
|
||||
TOTAL_MOLES(sharer_gases,their_moles)
|
||||
var/delta_pressure = temperature_archived*(our_moles + moved_moles) - sharer.temperature_archived*(their_moles - moved_moles)
|
||||
return delta_pressure * R_IDEAL_GAS_EQUATION / volume
|
||||
|
||||
/datum/gas_mixture/after_share(datum/gas_mixture/sharer, atmos_adjacent_turfs = 4)
|
||||
@@ -521,33 +531,28 @@ var/list/gaslist_cache = null
|
||||
return sharer_temperature
|
||||
//thermal energy of the system (self and sharer) is unchanged
|
||||
|
||||
/datum/gas_mixture/compare(datum/gas_mixture/sample, datatype = MOLES, adjacents = 0)
|
||||
/datum/gas_mixture/compare(datum/gas_mixture/sample)
|
||||
var/list/sample_gases = sample.gases //accessing datum vars is slower than proc vars
|
||||
var/list/cached_gases = gases
|
||||
|
||||
for(var/id in cached_gases | sample_gases) // compare gases from either mixture
|
||||
var/gas_moles = cached_gases[id] ? cached_gases[id][datatype] : 0
|
||||
var/sample_moles = sample_gases[id] ? sample_gases[id][datatype] : 0
|
||||
var/delta = abs(gas_moles - sample_moles)/(adjacents+1)
|
||||
var/gas_moles = cached_gases[id]
|
||||
gas_moles = gas_moles ? gas_moles[MOLES] : 0
|
||||
var/sample_moles = sample_gases[id]
|
||||
sample_moles = sample_moles ? sample_moles[MOLES] : 0
|
||||
var/delta = abs(gas_moles - sample_moles)
|
||||
if(delta > MINIMUM_MOLES_DELTA_TO_MOVE && \
|
||||
delta > gas_moles * MINIMUM_AIR_RATIO_TO_MOVE)
|
||||
return id
|
||||
|
||||
if(total_moles() > MINIMUM_MOLES_DELTA_TO_MOVE)
|
||||
var/temp
|
||||
var/sample_temp
|
||||
|
||||
switch(datatype)
|
||||
if(MOLES)
|
||||
temp = temperature
|
||||
sample_temp = sample.temperature
|
||||
if(ARCHIVE)
|
||||
temp = temperature_archived
|
||||
sample_temp = sample.temperature_archived
|
||||
var/our_moles
|
||||
TOTAL_MOLES(cached_gases, our_moles)
|
||||
if(our_moles > MINIMUM_MOLES_DELTA_TO_MOVE)
|
||||
var/temp = temperature
|
||||
var/sample_temp = sample.temperature
|
||||
|
||||
var/temperature_delta = abs(temp - sample_temp)
|
||||
if((temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) && \
|
||||
temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND * temp)
|
||||
if(temperature_delta > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
|
||||
return "temp"
|
||||
|
||||
return ""
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump
|
||||
name = "air vent"
|
||||
desc = "Has a valve and pump attached to it"
|
||||
desc = "Has a valve and pump attached to it."
|
||||
icon_state = "vent_map"
|
||||
use_power = 1
|
||||
can_unwrench = 1
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber
|
||||
name = "air scrubber"
|
||||
desc = "Has a valve and pump attached to it"
|
||||
desc = "Has a valve and pump attached to it."
|
||||
icon_state = "scrub_map"
|
||||
use_power = 1
|
||||
idle_power_usage = 10
|
||||
|
||||
@@ -8,7 +8,7 @@ The regular pipe you see everywhere, including bent ones.
|
||||
icon_state = "intact"
|
||||
|
||||
name = "pipe"
|
||||
desc = "A one meter section of regular pipe"
|
||||
desc = "A one meter section of regular pipe."
|
||||
|
||||
dir = SOUTH
|
||||
initialize_directions = SOUTH|NORTH
|
||||
|
||||
@@ -117,3 +117,7 @@
|
||||
|
||||
/obj/effect/landmark/mapGenerator/snowy
|
||||
mapGeneratorType = /datum/mapGenerator/snowy
|
||||
endTurfX = 159
|
||||
endTurfY = 157
|
||||
startTurfX = 37
|
||||
startTurfY = 35
|
||||
|
||||
@@ -79,6 +79,12 @@
|
||||
material_id = MAT_TITANIUM
|
||||
message = "cm3 of titanium"
|
||||
|
||||
// Plastitanium.
|
||||
/datum/export/material/plastitanium
|
||||
cost = 750
|
||||
material_id = MAT_TITANIUM // code can only check for one material_id; plastitanium is half plasma, half titanium, so ((250 x 250) + (250 x 500)) / 250
|
||||
message = "cm3 of plastitanium"
|
||||
|
||||
// Metal. Common building material.
|
||||
/datum/export/material/metal
|
||||
message = "cm3 of metal"
|
||||
|
||||
@@ -79,6 +79,13 @@
|
||||
message = "of reinforced glass"
|
||||
export_types = list(/obj/item/stack/sheet/rglass)
|
||||
|
||||
// Bluespace Polycrystals. About as common on the asteroid as
|
||||
|
||||
/datum/export/stack/bscrystal
|
||||
cost = 750
|
||||
message = "of bluespace crystals"
|
||||
export_types = list(/obj/item/stack/sheet/bluespace_crystal)
|
||||
|
||||
// Wood. Quite expensive in the grim and dark 26 century.
|
||||
/datum/export/stack/wood
|
||||
cost = 25
|
||||
|
||||
+13
-12
@@ -37,6 +37,19 @@
|
||||
/datum/supply_pack/emergency
|
||||
group = "Emergency"
|
||||
|
||||
/datum/supply_pack/emergency/spacesuit
|
||||
name = "Space Suit Crate"
|
||||
cost = 3000
|
||||
access = access_eva
|
||||
contains = list(/obj/item/clothing/suit/space,
|
||||
/obj/item/clothing/suit/space,
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/breath)
|
||||
crate_name = "space suit crate"
|
||||
crate_type = /obj/structure/closet/crate/secure
|
||||
|
||||
/datum/supply_pack/emergency/vehicle
|
||||
name = "Biker Gang Kit" //TUNNEL SNAKES OWN THIS TOWN
|
||||
cost = 2000
|
||||
@@ -549,18 +562,6 @@
|
||||
/obj/item/clothing/glasses/meson/engine)
|
||||
crate_name = "engineering gear crate"
|
||||
|
||||
/datum/supply_pack/engineering/engine/spacesuit
|
||||
name = "Space Suit Crate"
|
||||
cost = 3000
|
||||
access = access_eva
|
||||
contains = list(/obj/item/clothing/suit/space,
|
||||
/obj/item/clothing/suit/space,
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/breath)
|
||||
crate_name = "space suit crate"
|
||||
crate_type = /obj/structure/closet/crate/secure
|
||||
|
||||
/datum/supply_pack/engineering/shieldgen
|
||||
name = "Anti-breach Shield Projector Crate"
|
||||
|
||||
@@ -194,8 +194,36 @@ var/next_external_rsc = 0
|
||||
vars["fps"] = prefs.clientfps
|
||||
sethotkeys(1) //set hoykeys from preferences (from_pref = 1)
|
||||
|
||||
log_access("Login: [key_name(src)] from [address ? address : "localhost"]-[computer_id] || BYOND v[byond_version]")
|
||||
var/alert_mob_dupe_login = FALSE
|
||||
if(config.log_access)
|
||||
for(var/I in clients)
|
||||
if(I == src)
|
||||
continue
|
||||
var/client/C = I
|
||||
if(C.key && (C.key != key) )
|
||||
var/matches
|
||||
if( (C.address == address) )
|
||||
matches += "IP ([address])"
|
||||
if( (C.computer_id == computer_id) )
|
||||
if(matches)
|
||||
matches += " and "
|
||||
matches += "ID ([computer_id])"
|
||||
alert_mob_dupe_login = TRUE
|
||||
if(matches)
|
||||
if(C)
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='blue'>[key_name_admin(src)] has the same [matches] as [key_name_admin(C)].</font>")
|
||||
log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)].")
|
||||
else
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='blue'>[key_name_admin(src)] has the same [matches] as [key_name_admin(C)] (no longer logged in). </font>")
|
||||
log_access("Notice: [key_name(src)] has the same [matches] as [key_name(C)] (no longer logged in).")
|
||||
|
||||
. = ..() //calls mob.Login()
|
||||
|
||||
if(alert_mob_dupe_login)
|
||||
set waitfor = FALSE
|
||||
alert(mob, "You have logged in already with another key this round, please log out of this one NOW or risk being banned!")
|
||||
|
||||
connection_time = world.time
|
||||
connection_realtime = world.realtime
|
||||
connection_timeofday = world.timeofday
|
||||
@@ -307,6 +335,7 @@ var/next_external_rsc = 0
|
||||
//////////////
|
||||
|
||||
/client/Del()
|
||||
log_access("Logout: [key_name(src)]")
|
||||
if(holder)
|
||||
adminGreet(1)
|
||||
holder.owner = null
|
||||
|
||||
@@ -79,47 +79,42 @@
|
||||
if(button)
|
||||
button.name = "Change [chameleon_name] Appearance"
|
||||
|
||||
|
||||
chameleon_blacklist |= typecacheof(target.type)
|
||||
for(var/V in typesof(chameleon_type))
|
||||
if(ispath(V, /obj/item))
|
||||
if(ispath(V) && ispath(V, /obj/item))
|
||||
var/obj/item/I = V
|
||||
if(chameleon_blacklist[V] || (initial(I.flags) & ABSTRACT))
|
||||
continue
|
||||
chameleon_list += I
|
||||
if(!initial(I.icon_state) || !initial(I.item_state))
|
||||
continue
|
||||
var/chameleon_item_name = "[initial(I.name)] ([initial(I.icon_state)])"
|
||||
chameleon_list[chameleon_item_name] = I
|
||||
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/select_look(mob/user)
|
||||
var/list/item_names = list()
|
||||
var/obj/item/picked_item
|
||||
for(var/U in chameleon_list)
|
||||
var/obj/item/I = U
|
||||
item_names += initial(I.name)
|
||||
var/picked_name
|
||||
picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) in item_names
|
||||
picked_name = input("Select [chameleon_name] to change into", "Chameleon [chameleon_name]", picked_name) as null|anything in chameleon_list
|
||||
if(!picked_name)
|
||||
return
|
||||
for(var/V in chameleon_list)
|
||||
var/obj/item/I = V
|
||||
if(initial(I.name) == picked_name)
|
||||
picked_item = V
|
||||
break
|
||||
picked_item = chameleon_list[picked_name]
|
||||
if(!picked_item)
|
||||
return
|
||||
update_look(user, picked_item)
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/random_look(mob/user)
|
||||
var/picked_item = pick(chameleon_list)
|
||||
var/picked_name = pick(chameleon_list)
|
||||
// If a user is provided, then this item is in use, and we
|
||||
// need to update our icons and stuff
|
||||
|
||||
if(user)
|
||||
update_look(user, picked_item)
|
||||
update_look(user, chameleon_list[picked_name])
|
||||
|
||||
// Otherwise, it's likely a random initialisation, so we
|
||||
// don't have to worry
|
||||
|
||||
else
|
||||
update_item(picked_item)
|
||||
update_item(chameleon_list[picked_name])
|
||||
|
||||
/datum/action/item_action/chameleon/change/proc/update_look(mob/user, obj/item/picked_item)
|
||||
if(istype(target, /obj/item/weapon/gun/energy/laser/chameleon))
|
||||
|
||||
@@ -4,25 +4,18 @@
|
||||
weight = 20
|
||||
max_occurrences = 5
|
||||
|
||||
/datum/round_event_control/canSpawnEvent(players_amt, gamemode)
|
||||
return ..() && length(gather_false_events())
|
||||
|
||||
/datum/round_event/falsealarm
|
||||
announceWhen = 0
|
||||
endWhen = 1
|
||||
|
||||
/datum/round_event/falsealarm/announce()
|
||||
var/list/events_list = list()
|
||||
|
||||
var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1)
|
||||
var/gamemode = SSticker.mode.config_tag
|
||||
|
||||
for(var/datum/round_event_control/E in SSevents.control)
|
||||
if(!E.canSpawnEvent(players_amt, gamemode))
|
||||
continue
|
||||
|
||||
var/datum/round_event/event = E.typepath
|
||||
if(initial(event.announceWhen) <= 0)
|
||||
continue
|
||||
events_list += E
|
||||
|
||||
var/events_list = gather_false_events(players_amt, gamemode)
|
||||
var/datum/round_event_control/event_control = pick(events_list)
|
||||
if(event_control)
|
||||
var/datum/round_event/Event = new event_control.typepath()
|
||||
@@ -30,4 +23,13 @@
|
||||
Event.kill() //do not process this event - no starts, no ticks, no ends
|
||||
Event.announce() //just announce it like it's happening
|
||||
|
||||
/proc/gather_false_events(players_amt, gamemode)
|
||||
. = list()
|
||||
for(var/datum/round_event_control/E in SSevents.control)
|
||||
if(!E.canSpawnEvent(players_amt, gamemode))
|
||||
continue
|
||||
|
||||
var/datum/round_event/event = E.typepath
|
||||
if(initial(event.announceWhen) <= 0)
|
||||
continue
|
||||
. += E
|
||||
|
||||
@@ -15,528 +15,20 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change()
|
||||
cut_overlays()
|
||||
if (reagents.reagent_list.len > 0)
|
||||
switch(reagents.get_master_reagent_id())
|
||||
if("beer")
|
||||
icon_state = "beerglass"
|
||||
name = "glass of beer"
|
||||
desc = "A freezing pint of beer."
|
||||
if("beer2")
|
||||
icon_state = "beerglass"
|
||||
name = "glass of beer"
|
||||
desc = "A freezing pint of beer."
|
||||
if("greenbeer")
|
||||
icon_state = "greenbeerglass"
|
||||
name = "glass of green beer"
|
||||
desc = "A freezing pint of green beer. Festive."
|
||||
if("ale")
|
||||
icon_state = "aleglass"
|
||||
name = "glass of ale"
|
||||
desc = "A freezing pint of delicious Ale."
|
||||
if("milk")
|
||||
icon_state = "glass_white"
|
||||
name = "glass of milk"
|
||||
desc = "White and nutritious goodness!"
|
||||
if("cream")
|
||||
icon_state = "glass_white"
|
||||
name = "glass of cream"
|
||||
desc = "Ewwww..."
|
||||
if("hot_coco")
|
||||
icon_state = "chocolateglass"
|
||||
name = "glass of chocolate"
|
||||
desc = "Tasty."
|
||||
if("lemonjuice")
|
||||
icon_state = "lemonglass"
|
||||
name = "glass of lemon juice"
|
||||
desc = "Sour..."
|
||||
if("holywater")
|
||||
icon_state = "glass_clear"
|
||||
name = "glass of Holy Water"
|
||||
desc = "A glass of holy water."
|
||||
if("potato")
|
||||
icon_state = "glass_brown"
|
||||
name = "glass of potato juice"
|
||||
desc = "Bleh..."
|
||||
if("watermelonjuice")
|
||||
icon_state = "glass_red"
|
||||
name = "glass of watermelon juice"
|
||||
desc = "A glass of watermelon juice."
|
||||
if("cola")
|
||||
icon_state = "glass_brown"
|
||||
name = "glass of space Cola"
|
||||
desc = "A glass of refreshing Space Cola."
|
||||
if("nuka_cola")
|
||||
icon_state = "nuka_colaglass"
|
||||
name = "Nuka Cola"
|
||||
desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
|
||||
if("orangejuice")
|
||||
icon_state = "glass_orange"
|
||||
name = "glass of orange juice"
|
||||
desc = "Vitamins! Yay!"
|
||||
if("tomatojuice")
|
||||
icon_state = "glass_red"
|
||||
name = "glass of tomato juice"
|
||||
desc = "Are you sure this is tomato juice?"
|
||||
if("blood")
|
||||
icon_state = "glass_red"
|
||||
name = "glass of tomato juice"
|
||||
desc = "Are you sure this is tomato juice?"
|
||||
if("limejuice")
|
||||
icon_state = "glass_green"
|
||||
name = "glass of lime juice"
|
||||
desc = "A glass of sweet-sour lime juice."
|
||||
if("whiskey")
|
||||
icon_state = "whiskeyglass"
|
||||
name = "glass of whiskey"
|
||||
desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
|
||||
if("gin")
|
||||
icon_state = "ginvodkaglass"
|
||||
name = "glass of gin"
|
||||
desc = "A crystal clear glass of Griffeater gin."
|
||||
if("vodka")
|
||||
icon_state = "ginvodkaglass"
|
||||
name = "glass of vodka"
|
||||
desc = "The glass contain wodka. Xynta."
|
||||
if("goldschlager")
|
||||
icon_state = "goldschlagerglass"
|
||||
name = "glass of Goldschlager"
|
||||
desc = "100% proof that teen girls will drink anything with gold in it."
|
||||
if("wine")
|
||||
icon_state = "wineglass"
|
||||
name = "glass of wine"
|
||||
desc = "A very classy looking drink."
|
||||
if("cognac")
|
||||
icon_state = "cognacglass"
|
||||
name = "glass of cognac"
|
||||
desc = "Damn, you feel like some kind of French aristocrat just by holding this."
|
||||
if ("kahlua")
|
||||
icon_state = "kahluaglass"
|
||||
name = "glass of RR Coffee Liquor"
|
||||
desc = "DAMN, THIS THING LOOKS ROBUST!"
|
||||
if("vermouth")
|
||||
icon_state = "vermouthglass"
|
||||
name = "glass of vermouth"
|
||||
desc = "You wonder why you're even drinking this straight."
|
||||
if("tequila")
|
||||
icon_state = "tequilaglass"
|
||||
name = "glass of tequila"
|
||||
desc = "Now all that's missing is the weird colored shades!"
|
||||
if("patron")
|
||||
icon_state = "patronglass"
|
||||
name = "glass of patron"
|
||||
desc = "Drinking patron in the bar, with all the subpar ladies."
|
||||
if("rum")
|
||||
icon_state = "rumglass"
|
||||
name = "glass of rum"
|
||||
desc = "Now you want to Pray for a pirate suit, don't you?"
|
||||
if("gintonic")
|
||||
icon_state = "gintonicglass"
|
||||
name = "Gin and Tonic"
|
||||
desc = "A mild but still great cocktail. Drink up, like a true Englishman."
|
||||
if("whiskeycola")
|
||||
icon_state = "whiskeycolaglass"
|
||||
name = "Whiskey Cola"
|
||||
desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
|
||||
if("whiterussian")
|
||||
icon_state = "whiterussianglass"
|
||||
name = "White Russian"
|
||||
desc = "A very nice looking drink. But that's just, like, your opinion, man."
|
||||
if("screwdrivercocktail")
|
||||
icon_state = "screwdriverglass"
|
||||
name = "Screwdriver"
|
||||
desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
|
||||
if("bloodymary")
|
||||
icon_state = "bloodymaryglass"
|
||||
name = "Bloody Mary"
|
||||
desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
|
||||
if("martini")
|
||||
icon_state = "martiniglass"
|
||||
name = "Classic Martini"
|
||||
desc = "Damn, the bartender even stirred it, not shook it."
|
||||
if("vodkamartini")
|
||||
icon_state = "martiniglass"
|
||||
name = "Vodka martini"
|
||||
desc ="A bastardisation of the classic martini. Still great."
|
||||
if("gargleblaster")
|
||||
icon_state = "gargleblasterglass"
|
||||
name = "Pan-Galactic Gargle Blaster"
|
||||
desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick."
|
||||
if("bravebull")
|
||||
icon_state = "bravebullglass"
|
||||
name = "Brave Bull"
|
||||
desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up."
|
||||
if("tequilasunrise")
|
||||
icon_state = "tequilasunriseglass"
|
||||
name = "tequila Sunrise"
|
||||
desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
|
||||
if("beepskysmash")
|
||||
icon_state = "beepskysmashglass"
|
||||
name = "Beepsky Smash"
|
||||
desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
|
||||
if("doctorsdelight")
|
||||
icon_state = "doctorsdelightglass"
|
||||
name = "Doctor's Delight"
|
||||
desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger."
|
||||
if("manlydorf")
|
||||
icon_state = "manlydorfglass"
|
||||
name = "The Manly Dorf"
|
||||
desc = "A manly concoction made from Ale and Beer. Intended for true men only."
|
||||
if("irishcream")
|
||||
icon_state = "irishcreamglass"
|
||||
name = "Irish Cream"
|
||||
desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
|
||||
if("cubalibre")
|
||||
icon_state = "cubalibreglass"
|
||||
name = "Cuba Libre"
|
||||
desc = "A classic mix of rum and cola."
|
||||
if("atomicbomb")
|
||||
icon_state = "atomicbombglass"
|
||||
name = "Atomic Bomb"
|
||||
desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
|
||||
if("longislandicedtea")
|
||||
icon_state = "longislandicedteaglass"
|
||||
name = "Long Island Iced Tea"
|
||||
desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
||||
if("threemileisland")
|
||||
icon_state = "threemileislandglass"
|
||||
name = "Three Mile Island Ice Tea"
|
||||
desc = "A glass of this is sure to prevent a meltdown."
|
||||
if("margarita")
|
||||
icon_state = "margaritaglass"
|
||||
name = "Margarita"
|
||||
desc = "On the rocks with salt on the rim. Arriba~!"
|
||||
if("blackrussian")
|
||||
icon_state = "blackrussianglass"
|
||||
name = "Black Russian"
|
||||
desc = "For the lactose-intolerant. Still as classy as a White Russian."
|
||||
if("vodkatonic")
|
||||
icon_state = "vodkatonicglass"
|
||||
name = "Vodka and Tonic"
|
||||
desc = "For when a gin and tonic isn't Russian enough."
|
||||
if("manhattan")
|
||||
icon_state = "manhattanglass"
|
||||
name = "Manhattan"
|
||||
desc = "The Detective's undercover drink of choice. He never could stomach gin..."
|
||||
if("manhattan_proj")
|
||||
icon_state = "proj_manhattanglass"
|
||||
name = "Manhattan Project"
|
||||
desc = "A scientist's drink of choice, for thinking how to blow up the station."
|
||||
if("ginfizz")
|
||||
icon_state = "ginfizzglass"
|
||||
name = "Gin Fizz"
|
||||
desc = "Refreshingly lemony, deliciously dry."
|
||||
if("irishcoffee")
|
||||
icon_state = "irishcoffeeglass"
|
||||
name = "Irish Coffee"
|
||||
desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
|
||||
if("hooch")
|
||||
icon_state = "glass_brown2"
|
||||
name = "Hooch"
|
||||
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
if("whiskeysoda")
|
||||
icon_state = "whiskeysodaglass2"
|
||||
name = "Whiskey Soda"
|
||||
desc = "Ultimate refreshment."
|
||||
if("tonic")
|
||||
icon_state = "glass_clear"
|
||||
name = "glass of Tonic Water"
|
||||
desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
||||
if("sodawater")
|
||||
icon_state = "glass_clear"
|
||||
name = "glass of Soda Water"
|
||||
desc = "Soda water. Why not make a scotch and soda?"
|
||||
if("water")
|
||||
icon_state = "glass_clear"
|
||||
name = "glass of Water"
|
||||
desc = "The father of all refreshments."
|
||||
if("spacemountainwind")
|
||||
icon_state = "Space_mountain_wind_glass"
|
||||
name = "glass of Space Mountain Wind"
|
||||
desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
|
||||
if("thirteenloko")
|
||||
icon_state = "thirteen_loko_glass"
|
||||
name = "glass of Thirteen Loko"
|
||||
desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass."
|
||||
if("dr_gibb")
|
||||
icon_state = "dr_gibb_glass"
|
||||
name = "glass of Dr. Gibb"
|
||||
desc = "Dr. Gibb. Not as dangerous as the name might imply."
|
||||
if("space_up")
|
||||
icon_state = "space-up_glass"
|
||||
name = "glass of Space-up"
|
||||
desc = "Space-up. It helps you keep your cool."
|
||||
if("pwr_game")
|
||||
icon_state = "glass_red"
|
||||
name = "glass of Pwr Game"
|
||||
desc = "Goes well with a Vlad's salad."
|
||||
if("shamblers")
|
||||
icon_state = "glass_red"
|
||||
name = "glass of Shambler's Juice"
|
||||
desc = "Mmm mm, shambly."
|
||||
if("lemon_lime")
|
||||
icon_state = "glass_yellow"
|
||||
name = "glass of Lemon-Lime"
|
||||
desc = "You're pretty certain a real fruit has never actually touched this."
|
||||
if("moonshine")
|
||||
icon_state = "glass_clear"
|
||||
name = "Moonshine"
|
||||
desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
if("soymilk")
|
||||
icon_state = "glass_white"
|
||||
name = "glass of soy milk"
|
||||
desc = "White and nutritious soy goodness!"
|
||||
if("berryjuice")
|
||||
icon_state = "berryjuice"
|
||||
name = "glass of berry juice"
|
||||
desc = "Berry juice. Or maybe it's jam. Who cares?"
|
||||
if("poisonberryjuice")
|
||||
icon_state = "poisonberryjuice"
|
||||
name = "glass of berry juice"
|
||||
desc = "Berry juice. Or maybe it's poison. Who cares?"
|
||||
if("carrotjuice")
|
||||
icon_state = "carrotjuice"
|
||||
name = "glass of carrot juice"
|
||||
desc = "It's just like a carrot but without crunching."
|
||||
if("banana")
|
||||
icon_state = "banana"
|
||||
name = "glass of banana juice"
|
||||
desc = "The raw essence of a banana. HONK."
|
||||
if("bahama_mama")
|
||||
icon_state = "bahama_mama"
|
||||
name = "Bahama Mama"
|
||||
desc = "Tropical cocktail."
|
||||
if("singulo")
|
||||
icon_state = "singulo"
|
||||
name = "Singulo"
|
||||
desc = "A blue-space beverage."
|
||||
if("alliescocktail")
|
||||
icon_state = "alliescocktail"
|
||||
name = "Allies cocktail"
|
||||
desc = "A drink made from your allies."
|
||||
if("antifreeze")
|
||||
icon_state = "antifreeze"
|
||||
name = "Anti-freeze"
|
||||
desc = "The ultimate refreshment."
|
||||
if("barefoot")
|
||||
icon_state = "b&p"
|
||||
name = "Barefoot"
|
||||
desc = "Barefoot and pregnant."
|
||||
if("demonsblood")
|
||||
icon_state = "demonsblood"
|
||||
name = "Demons Blood"
|
||||
desc = "Just looking at this thing makes the hair at the back of your neck stand up."
|
||||
if("booger")
|
||||
icon_state = "booger"
|
||||
name = "Booger"
|
||||
desc = "Ewww..."
|
||||
if("snowwhite")
|
||||
icon_state = "snowwhite"
|
||||
name = "Snow White"
|
||||
desc = "A cold refreshment."
|
||||
if("aloe")
|
||||
icon_state = "aloe"
|
||||
name = "Aloe"
|
||||
desc = "Very, very, very good."
|
||||
if("andalusia")
|
||||
icon_state = "andalusia"
|
||||
name = "Andalusia"
|
||||
desc = "A nice, strangely named drink."
|
||||
if("sbiten")
|
||||
icon_state = "sbitenglass"
|
||||
name = "Sbiten"
|
||||
desc = "A spicy mix of Vodka and Spice. Very hot."
|
||||
if("red_mead")
|
||||
icon_state = "red_meadglass"
|
||||
name = "Red Mead"
|
||||
desc = "A True Viking's Beverage, though its color is strange."
|
||||
if("mead")
|
||||
icon_state = "meadglass"
|
||||
name = "Mead"
|
||||
desc = "A Viking's Beverage, though a cheap one."
|
||||
if("iced_beer")
|
||||
icon_state = "iced_beerglass"
|
||||
name = "Iced Beer"
|
||||
desc = "A beer so frosty, the air around it freezes."
|
||||
if("grog")
|
||||
icon_state = "grogglass"
|
||||
name = "Grog"
|
||||
desc = "A fine and cepa drink for Space."
|
||||
if("soy_latte")
|
||||
icon_state = "soy_latte"
|
||||
name = "Soy Latte"
|
||||
desc = "A nice and refreshing beverage while you're reading."
|
||||
if("cafe_latte")
|
||||
icon_state = "cafe_latte"
|
||||
name = "Cafe Latte"
|
||||
desc = "A nice, strong and refreshing beverage while you're reading."
|
||||
if("acidspit")
|
||||
icon_state = "acidspitglass"
|
||||
name = "Acid Spit"
|
||||
desc = "A drink from Nanotrasen. Made from live aliens."
|
||||
if("amasec")
|
||||
icon_state = "amasecglass"
|
||||
name = "Amasec"
|
||||
desc = "Always handy before COMBAT!!!"
|
||||
if("neurotoxin")
|
||||
icon_state = "neurotoxinglass"
|
||||
name = "Neurotoxin"
|
||||
desc = "A drink that is guaranteed to knock you silly."
|
||||
if("hippiesdelight")
|
||||
icon_state = "hippiesdelightglass"
|
||||
name = "Hippie's Delight"
|
||||
desc = "A drink enjoyed by people during the 1960's."
|
||||
if("bananahonk")
|
||||
icon_state = "bananahonkglass"
|
||||
name = "Banana Honk"
|
||||
desc = "A drink from Clown Heaven."
|
||||
if("silencer")
|
||||
icon_state = "silencerglass"
|
||||
name = "Silencer"
|
||||
desc = "A drink from Mime Heaven."
|
||||
if("nothing")
|
||||
icon_state = "nothing"
|
||||
name = "Nothing"
|
||||
desc = "Absolutely nothing."
|
||||
if("devilskiss")
|
||||
icon_state = "devilskiss"
|
||||
name = "Devils Kiss"
|
||||
desc = "Creepy time!"
|
||||
if("changelingsting")
|
||||
icon_state = "changelingsting"
|
||||
name = "Changeling Sting"
|
||||
desc = "A stingy drink."
|
||||
if("irishcarbomb")
|
||||
icon_state = "irishcarbomb"
|
||||
name = "Irish Car Bomb"
|
||||
desc = "An Irish car bomb."
|
||||
if("syndicatebomb")
|
||||
icon_state = "syndicatebomb"
|
||||
name = "Syndicate Bomb"
|
||||
desc = "A syndicate bomb."
|
||||
if("erikasurprise")
|
||||
icon_state = "erikasurprise"
|
||||
name = "Erika Surprise"
|
||||
desc = "The surprise is, it's green!"
|
||||
if("driestmartini")
|
||||
icon_state = "driestmartiniglass"
|
||||
name = "Driest Martini"
|
||||
desc = "Only for the experienced. You think you see sand floating in the glass."
|
||||
if("ice")
|
||||
icon_state = "iceglass"
|
||||
name = "glass of ice"
|
||||
desc = "Generally, you're supposed to put something else in there too..."
|
||||
if("icecoffee")
|
||||
icon_state = "icedcoffeeglass"
|
||||
name = "Iced Coffee"
|
||||
desc = "A drink to perk you up and refresh you!"
|
||||
if("icetea")
|
||||
icon_state = "icedteaglass"
|
||||
name = "Iced Tea"
|
||||
desc = "All natural, antioxidant-rich flavour sensation."
|
||||
if("coffee")
|
||||
icon_state = "glass_brown"
|
||||
name = "glass of coffee"
|
||||
desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
|
||||
if("tea")
|
||||
icon_state = "teaglass"
|
||||
name = "glass of tea"
|
||||
desc = "Drinking it from here would not seem right."
|
||||
if("bilk")
|
||||
icon_state = "glass_brown"
|
||||
name = "glass of bilk"
|
||||
desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
|
||||
if("welding_fuel")
|
||||
icon_state = "dr_gibb_glass"
|
||||
name = "glass of welder fuel"
|
||||
desc = "Unless you're an industrial tool, this is probably not safe for consumption."
|
||||
if("b52")
|
||||
icon_state = "b52glass"
|
||||
name = "B-52"
|
||||
desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
|
||||
if("toxinsspecial")
|
||||
icon_state = "toxinsspecialglass"
|
||||
name = "Toxins Special"
|
||||
desc = "Whoah, this thing is on FIRE!"
|
||||
if("chocolatepudding")
|
||||
icon_state = "chocolatepudding"
|
||||
name = "Chocolate Pudding"
|
||||
desc = "Tasty."
|
||||
if("vanillapudding")
|
||||
icon_state = "vanillapudding"
|
||||
name = "Vanilla Pudding"
|
||||
desc = "Tasty."
|
||||
if("cherryshake")
|
||||
icon_state = "cherryshake"
|
||||
name = "Cherry Shake"
|
||||
desc = "A cherry flavored milkshake."
|
||||
if("bluecherryshake")
|
||||
icon_state = "bluecherryshake"
|
||||
name = "Blue Cherry Shake"
|
||||
desc = "An exotic blue milkshake."
|
||||
if("drunkenblumpkin")
|
||||
icon_state = "drunkenblumpkin"
|
||||
name = "Drunken Blumpkin"
|
||||
desc = "A drink for the drunks."
|
||||
if("pumpkin_latte")
|
||||
icon_state = "pumpkin_latte"
|
||||
name = "Pumpkin Latte"
|
||||
desc = "A mix of coffee and pumpkin juice."
|
||||
if("gibbfloats")
|
||||
icon_state = "gibbfloats"
|
||||
name = "Gibbfloat"
|
||||
desc = "Dr. Gibb with ice cream on top."
|
||||
if("whiskey_sour")
|
||||
icon_state = "whiskey_sour"
|
||||
name = "Whiskey Sour"
|
||||
desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying."
|
||||
if("fetching_fizz")
|
||||
icon_state = "fetching_fizz"
|
||||
name = "Fetching Fizz"
|
||||
desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste."
|
||||
if("hearty_punch")
|
||||
icon_state = "hearty_punch"
|
||||
name = "Hearty Punch"
|
||||
desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead."
|
||||
if("absinthe")
|
||||
icon_state = "absinthe"
|
||||
name = "glass of absinthe"
|
||||
desc = "It's as strong as it smells."
|
||||
if("bacchus_blessing")
|
||||
icon_state = "glass_brown2"
|
||||
name = "Bacchus' Blessing"
|
||||
desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?"
|
||||
if("arnold_palmer")
|
||||
icon_state = "arnold_palmer"
|
||||
name = "Arnold Palmer"
|
||||
desc = "You feel like taking a few golf swings after a few swigs of this."
|
||||
if("hcider")
|
||||
icon_state = "whiskeyglass"
|
||||
name = "Hard Cider"
|
||||
desc = "Tastes like autumn."
|
||||
if("triple_citrus")
|
||||
icon_state = "triplecitrus" //needs own sprite mine are trash
|
||||
name = "glass of triple citrus"
|
||||
desc = "A mixture of citrus juices. Tangy, yet smooth."
|
||||
if("grappa")
|
||||
icon_state = "grappa"
|
||||
name = "glass of grappa"
|
||||
desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking."
|
||||
if("eggnog")
|
||||
icon_state = "glass_yellow"
|
||||
name = "Eggnog"
|
||||
desc = "For enjoying the most wonderful time of the year."
|
||||
else
|
||||
icon_state ="glass_brown"
|
||||
var/image/I = image(icon, "glassoverlay")
|
||||
I.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(I)
|
||||
name = "glass of ..what?"
|
||||
desc = "You can't really tell what this is."
|
||||
if(reagents.reagent_list.len)
|
||||
var/datum/reagent/R = reagents.get_master_reagent()
|
||||
name = R.glass_name
|
||||
desc = R.glass_desc
|
||||
if(R.glass_icon_state)
|
||||
icon_state = R.glass_icon_state
|
||||
else
|
||||
var/image/I = image(icon, "glassoverlay")
|
||||
I.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(I)
|
||||
else
|
||||
icon_state = "glass_empty"
|
||||
name = "drinking glass"
|
||||
desc = "Your standard drinking glass."
|
||||
return
|
||||
|
||||
//Shot glasses!//
|
||||
// This lets us add shots in here instead of lumping them in with drinks because >logic //
|
||||
@@ -556,89 +48,27 @@
|
||||
materials = list(MAT_GLASS=100)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change()
|
||||
cut_overlays()
|
||||
|
||||
if (gulp_size < 15)
|
||||
gulp_size = 15
|
||||
else
|
||||
gulp_size = max(round(reagents.total_volume / 15), 15)
|
||||
|
||||
if (reagents.reagent_list.len > 0)
|
||||
switch(reagents.get_master_reagent_id())
|
||||
if("vodka")
|
||||
icon_state = "shotglassclear"
|
||||
name = "shot of vodka"
|
||||
desc = "Good for cold weather."
|
||||
if("water")
|
||||
icon_state = "shotglassclear"
|
||||
name = "shot of water"
|
||||
desc = "You're not sure why someone would drink this from a shot glass."
|
||||
if("whiskey")
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of whiskey"
|
||||
desc = "Just like the old west."
|
||||
if("hcider")
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of hard cider"
|
||||
desc = "Not meant to be drunk from a shot glass."
|
||||
if("rum")
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of rum"
|
||||
desc = "You dirty pirate."
|
||||
if("b52")
|
||||
icon_state = "b52glass"
|
||||
name = "B-52"
|
||||
desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
|
||||
if("toxinsspecial")
|
||||
icon_state = "toxinsspecialglass"
|
||||
name = "Toxins Special"
|
||||
desc = "Whoah, this thing is on FIRE!"
|
||||
if ("vermouth")
|
||||
icon_state = "shotglassclear"
|
||||
name = "shot of vermouth"
|
||||
desc = "This better be going in a martini."
|
||||
if ("tequila")
|
||||
icon_state = "shotglassgold"
|
||||
name = "shot of tequila"
|
||||
desc = "Bad decisions ahead!"
|
||||
if ("patron")
|
||||
icon_state = "shotglassclear"
|
||||
name = "shot of patron"
|
||||
desc = "The good stuff. Goes great with a lime wedge."
|
||||
if ("kahlua")
|
||||
icon_state = "shotglasscream"
|
||||
name = "shot of coffee liqueur"
|
||||
desc = "Doesn't look too appetizing..."
|
||||
if ("nothing")
|
||||
icon_state = "shotglass"
|
||||
name = "shot of nothing"
|
||||
desc = "The mime insists there's booze in the glass. You're not so sure."
|
||||
if ("goldschlager")
|
||||
icon_state = "shotglassgold"
|
||||
name = "shot of goldschlager"
|
||||
desc = "Yup. You're officially a college girl."
|
||||
if ("cognac")
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of cognac"
|
||||
desc = "You get the feeling this would piss off a rich person somewhere."
|
||||
if ("wine")
|
||||
icon_state = "shotglassred"
|
||||
name = "shot of wine"
|
||||
desc = "What kind of craven oaf would drink wine from a shot glass?"
|
||||
if ("blood")
|
||||
icon_state = "shotglassred"
|
||||
name = "shot of blood"
|
||||
desc = "If you close your eyes it sort of tastes like wine..."
|
||||
if ("liquidgibs")
|
||||
icon_state = "shotglassred"
|
||||
name = "shot of gibs"
|
||||
desc = "...Let's not talk about this."
|
||||
if ("absinthe")
|
||||
icon_state = "shotglassgreen"
|
||||
name = "shot of absinthe"
|
||||
desc = "I am stuck in the cycles of my guilt..."
|
||||
else
|
||||
icon_state = "shotglassbrown"
|
||||
name = "shot of... what?"
|
||||
desc = "You can't really tell what's in the glass."
|
||||
var/datum/reagent/largest_reagent = reagents.get_master_reagent()
|
||||
name = "filled shot glass"
|
||||
desc = "The challenge is not taking as many as you can, but guessing what it is before you pass out."
|
||||
|
||||
if(largest_reagent.shot_glass_icon_state)
|
||||
icon_state = largest_reagent.shot_glass_icon_state
|
||||
else
|
||||
icon_state = "shotglassclear"
|
||||
var/image/I = image(icon, "shotglassoverlay")
|
||||
I.color = mix_color_from_reagents(reagents.reagent_list)
|
||||
add_overlay(I)
|
||||
|
||||
|
||||
else
|
||||
icon_state = "shotglass"
|
||||
name = "shot glass"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/icon_on = "smartfridge"
|
||||
var/icon_off = "smartfridge-off"
|
||||
|
||||
/obj/machinery/smartfridge/New()
|
||||
/obj/machinery/smartfridge/Initialize()
|
||||
..()
|
||||
create_reagents()
|
||||
reagents.set_reacting(FALSE)
|
||||
|
||||
@@ -124,10 +124,10 @@
|
||||
if(istype(I, /obj/item/projectile))
|
||||
return
|
||||
if(prob(50))
|
||||
I.loc = src.loc
|
||||
visible_message("<span class='warning'> Swish! \the [I] lands in \the [src].</span>")
|
||||
I.forceMove(get_turf(src))
|
||||
visible_message("<span class='warning'>Swish! [I] lands in [src].</span>")
|
||||
else
|
||||
visible_message("<span class='danger'> \the [I] bounces off of \the [src]'s rim!</span>")
|
||||
visible_message("<span class='danger'>[I] bounces off of [src]'s rim!</span>")
|
||||
return 0
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -389,16 +389,18 @@
|
||||
name = "dusty survival pod storage"
|
||||
desc = "A heated storage unit. This one's seen better days."
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/empty/New()
|
||||
return()
|
||||
/obj/machinery/smartfridge/survival_pod/empty/Initialize(mapload)
|
||||
..(mapload, TRUE)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
|
||||
if(istype(O, /obj/item))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/New()
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize(mapload, empty)
|
||||
..()
|
||||
if(empty)
|
||||
return
|
||||
for(var/i in 1 to 5)
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm/W = new(src)
|
||||
load(W)
|
||||
|
||||
@@ -595,7 +595,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
to_chat(src, "<span class='warning'>This creature is too powerful for you to possess!</span>")
|
||||
return 0
|
||||
|
||||
if(can_reenter_corpse || (mind && mind.current))
|
||||
if(can_reenter_corpse && mind && mind.current)
|
||||
if(alert(src, "Your soul is still tied to your former life as [mind.current.name], if you go forward there is no going back to that life. Are you sure you wish to continue?", "Move On", "Yes", "No") == "No")
|
||||
return 0
|
||||
if(target.key)
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
//TODO: Make these simple_animals
|
||||
|
||||
var/const/MIN_IMPREGNATION_TIME = 100 //time it takes to impregnate someone
|
||||
var/const/MAX_IMPREGNATION_TIME = 150
|
||||
#define MIN_IMPREGNATION_TIME 100 //time it takes to impregnate someone
|
||||
#define MAX_IMPREGNATION_TIME 150
|
||||
|
||||
var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle
|
||||
var/const/MAX_ACTIVE_TIME = 400
|
||||
#define MIN_ACTIVE_TIME 200 //time between being dropped and going idle
|
||||
#define MAX_ACTIVE_TIME 400
|
||||
|
||||
/obj/item/clothing/mask/facehugger
|
||||
name = "alien"
|
||||
@@ -152,14 +152,6 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
// probiscis-blocker handling
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/target = M
|
||||
if(target.wear_mask)
|
||||
var/obj/item/clothing/W = target.wear_mask
|
||||
if(W.flags & NODROP)
|
||||
return FALSE
|
||||
if(!istype(W,/obj/item/clothing/mask/facehugger))
|
||||
target.dropItemToGround(W)
|
||||
target.visible_message("<span class='danger'>[src] tears [W] off of [target]'s face!</span>", \
|
||||
"<span class='userdanger'>[src] tears [W] off of [target]'s face!</span>")
|
||||
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -168,6 +160,12 @@ var/const/MAX_ACTIVE_TIME = 400
|
||||
"<span class='userdanger'>[src] smashes against [H]'s [H.head]!</span>")
|
||||
Die()
|
||||
return FALSE
|
||||
|
||||
if(target.wear_mask)
|
||||
var/obj/item/clothing/W = target.wear_mask
|
||||
if(!istype(W,/obj/item/clothing/mask/facehugger) && target.dropItemToGround(W))
|
||||
target.visible_message("<span class='danger'>[src] tears [W] off of [target]'s face!</span>", \
|
||||
"<span class='userdanger'>[src] tears [W] off of [target]'s face!</span>")
|
||||
forceMove(target)
|
||||
target.equip_to_slot_if_possible(src, slot_wear_mask, 0, 1, 1)
|
||||
// early returns and validity checks done: attach.
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
args[1] = FALSE
|
||||
Initialize(arglist(args))
|
||||
|
||||
/mob/living/carbon/human/dummy/Life()
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/Initialize()
|
||||
verbs += /mob/living/proc/mob_sleep
|
||||
verbs += /mob/living/proc/lay_down
|
||||
|
||||
@@ -885,6 +885,8 @@
|
||||
return 1
|
||||
|
||||
/datum/species/proc/go_bald(mob/living/carbon/human/H)
|
||||
if(QDELETED(H)) //may be called from a timer
|
||||
return
|
||||
H.facial_hair_style = "Shaved"
|
||||
H.hair_style = "Bald"
|
||||
H.update_hair()
|
||||
|
||||
@@ -44,6 +44,8 @@
|
||||
message = Ellipsis(message, 10, 1)
|
||||
|
||||
message = treat_message(message)
|
||||
if(!message)
|
||||
return
|
||||
|
||||
var/list/listening_dead = list()
|
||||
for(var/mob/M in player_list)
|
||||
|
||||
@@ -112,6 +112,8 @@ var/list/crit_allowed_modes = list(MODE_WHISPER,MODE_CHANGELING,MODE_ALIEN)
|
||||
|
||||
if(message_mode != MODE_WHISPER) //whisper() calls treat_message(); double process results in "hisspering"
|
||||
message = treat_message(message)
|
||||
if(!message)
|
||||
return
|
||||
|
||||
spans += get_spans()
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
stat = DEAD
|
||||
canmove = 0
|
||||
card.removePersonality()
|
||||
if(holoform)
|
||||
card.forceMove(loc)
|
||||
update_sight()
|
||||
clear_fullscreens()
|
||||
|
||||
|
||||
@@ -419,8 +419,7 @@
|
||||
return
|
||||
build_step++
|
||||
to_chat(user, "<span class='notice'>You complete the Securitron! Beep boop.</span>")
|
||||
var/mob/living/simple_animal/bot/secbot/S = new /mob/living/simple_animal/bot/secbot
|
||||
S.loc = get_turf(src)
|
||||
var/mob/living/simple_animal/bot/secbot/S = new /mob/living/simple_animal/bot/secbot(get_turf(src))
|
||||
S.name = created_name
|
||||
S.baton_type = I.type
|
||||
qdel(I)
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
if(!cocoon_target)
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/L in view(1,src))
|
||||
if(L == src | L.anchored)
|
||||
if(L == src || L.anchored)
|
||||
continue
|
||||
if(Adjacent(L))
|
||||
choices += L
|
||||
|
||||
@@ -1,33 +1,8 @@
|
||||
//handles setting lastKnownIP and computer_id for use by the ban systems as well as checking for multikeying
|
||||
/mob/proc/update_Login_details()
|
||||
//Multikey checks and logging
|
||||
lastKnownIP = client.address
|
||||
computer_id = client.computer_id
|
||||
log_access("Login: [key_name(src)] from [lastKnownIP ? lastKnownIP : "localhost"]-[computer_id] || BYOND v[client.byond_version]")
|
||||
if(config.log_access)
|
||||
for(var/mob/M in player_list)
|
||||
if(M == src)
|
||||
continue
|
||||
if( M.key && (M.key != key) )
|
||||
var/matches
|
||||
if( (M.lastKnownIP == client.address) )
|
||||
matches += "IP ([client.address])"
|
||||
if( (M.computer_id == client.computer_id) )
|
||||
if(matches)
|
||||
matches += " and "
|
||||
matches += "ID ([client.computer_id])"
|
||||
spawn() alert("You have logged in already with another key this round, please log out of this one NOW or risk being banned!")
|
||||
if(matches)
|
||||
if(M.client)
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='blue'>[key_name_admin(src)] has the same [matches] as [key_name_admin(M)].</font>")
|
||||
log_access("Notice: [key_name(src)] has the same [matches] as [key_name(M)].")
|
||||
else
|
||||
message_admins("<font color='red'><B>Notice: </B><font color='blue'>[key_name_admin(src)] has the same [matches] as [key_name_admin(M)] (no longer logged in). </font>")
|
||||
log_access("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).")
|
||||
|
||||
/mob/Login()
|
||||
player_list |= src
|
||||
update_Login_details()
|
||||
lastKnownIP = client.address
|
||||
computer_id = client.computer_id
|
||||
log_access("Mob Login: [key_name(src)] was assigned to a [type]")
|
||||
world.update_status()
|
||||
client.screen = list() //remove hud items just in case
|
||||
client.images = list()
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
SStgui.on_logout(src)
|
||||
unset_machine()
|
||||
player_list -= src
|
||||
log_access("Logout: [key_name(src)]")
|
||||
if(admin_datums[src.ckey])
|
||||
if (SSticker && SSticker.current_state == GAME_STATE_PLAYING) //Only report this stuff if we are currently playing.
|
||||
var/admins_number = admins.len
|
||||
|
||||
@@ -131,7 +131,8 @@ They *could* go in their appropriate files, but this is supposed to be modular
|
||||
for(var/datum/tech/current_data in S.stored_research)
|
||||
to_chat(H, "<span class='notice'>Checking \the [current_data.name] database.</span>")
|
||||
if(do_after(H, S.s_delay, target = src) && G.candrain && src)
|
||||
for(var/datum/tech/analyzing_data in files.known_tech)
|
||||
for(var/id in files.known_tech)
|
||||
var/datum/tech/analyzing_data = files.known_tech[id]
|
||||
if(current_data.id == analyzing_data.id)
|
||||
if(analyzing_data.level > current_data.level)
|
||||
to_chat(H, "<span class='notice'>Database:</span> <b>UPDATED</b>.")
|
||||
@@ -162,7 +163,8 @@ They *could* go in their appropriate files, but this is supposed to be modular
|
||||
for(var/datum/tech/current_data in S.stored_research)
|
||||
to_chat(H, "<span class='notice'>Checking \the [current_data.name] database.</span>")
|
||||
if(do_after(H, S.s_delay, target = src) && G.candrain && src)
|
||||
for(var/datum/tech/analyzing_data in files.known_tech)
|
||||
for(var/id in files.known_tech)
|
||||
var/datum/tech/analyzing_data = files.known_tech[id]
|
||||
if(current_data.id == analyzing_data.id)
|
||||
if(analyzing_data.level > current_data.level)
|
||||
to_chat(H, "<span class='notice'>Database:</span> <b>UPDATED</b>.")
|
||||
|
||||
@@ -46,7 +46,9 @@ var/global/list/rad_collectors = list()
|
||||
toggle_power()
|
||||
user.visible_message("[user.name] turns the [src.name] [active? "on":"off"].", \
|
||||
"<span class='notice'>You turn the [src.name] [active? "on":"off"].</span>")
|
||||
investigate_log("turned [active?"<font color='green'>on</font>":"<font color='red'>off</font>"] by [user.key]. [loaded_tank?"Fuel: [round(loaded_tank.air_contents.gases["plasma"][MOLES]/0.29)]%":"<font color='red'>It is empty</font>"].","singulo")
|
||||
var/fuel = loaded_tank.air_contents.gases["plasma"]
|
||||
fuel = fuel ? fuel[MOLES] : 0
|
||||
investigate_log("turned [active?"<font color='green'>on</font>":"<font color='red'>off</font>"] by [user.key]. [loaded_tank?"Fuel: [round(fuel/0.29)]%":"<font color='red'>It is empty</font>"].","singulo")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The controls are locked!</span>")
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]"
|
||||
|
||||
/obj/item/weapon/gun/ballistic/automatic/mini_uzi
|
||||
name = "\improper 'Type U3' Uzi"
|
||||
name = "\improper Type U3 Uzi"
|
||||
desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds."
|
||||
icon_state = "mini-uzi"
|
||||
origin_tech = "combat=4;materials=2;syndicate=4"
|
||||
@@ -240,7 +240,7 @@
|
||||
// Bulldog shotgun //
|
||||
|
||||
/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog
|
||||
name = "\improper 'Bulldog' Shotgun"
|
||||
name = "\improper Bulldog Shotgun"
|
||||
desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
|
||||
icon_state = "bulldog"
|
||||
item_state = "bulldog"
|
||||
|
||||
@@ -132,6 +132,18 @@ var/const/INJECT = 5 //injection
|
||||
|
||||
return id
|
||||
|
||||
/datum/reagents/proc/get_master_reagent()
|
||||
var/list/cached_reagents = reagent_list
|
||||
var/datum/reagent/master
|
||||
var/max_volume = 0
|
||||
for(var/reagent in cached_reagents)
|
||||
var/datum/reagent/R = reagent
|
||||
if(R.volume > max_volume)
|
||||
max_volume = R.volume
|
||||
master = R
|
||||
|
||||
return master
|
||||
|
||||
/datum/reagents/proc/trans_to(obj/target, amount=1, multiplier=1, preserve_data=1, no_react = 0)//if preserve_data=0, the reagents data will be lost. Usefull if you use data for some strange stuff and don't want it to be transferred.
|
||||
var/list/cached_reagents = reagent_list
|
||||
if(!target || !total_volume)
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
var/description = ""
|
||||
var/taste_description = "metaphorical salt"
|
||||
var/taste_mult = 1 //how this taste compares to others. Higher values means it is more noticable
|
||||
var/glass_name = "glass of ...what?" // use for specialty drinks.
|
||||
var/glass_desc = "You can't really tell what this is."
|
||||
var/glass_icon_state = null // Otherwise just sets the icon to a normal glass with the mixture of the reagents in the glass.
|
||||
var/shot_glass_icon_state = null
|
||||
var/datum/reagents/holder = null
|
||||
var/reagent_state = LIQUID
|
||||
var/list/data
|
||||
|
||||
@@ -79,6 +79,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 25
|
||||
taste_description = "piss water"
|
||||
glass_name = "glass of beer"
|
||||
glass_desc = "A freezing pint of beer."
|
||||
|
||||
/datum/reagent/consumable/ethanol/beer/green
|
||||
name = "Green Beer"
|
||||
@@ -86,6 +88,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "An alcoholic beverage brewed since ancient times on Old Earth. This variety is dyed a festive green."
|
||||
color = "#A8E61D"
|
||||
taste_description = "green piss water"
|
||||
glass_icon_state = "greenbeerglass"
|
||||
glass_name = "glass of green beer"
|
||||
glass_desc = "A freezing pint of green beer. Festive."
|
||||
|
||||
/datum/reagent/consumable/ethanol/beer/green/on_mob_life(mob/living/M)
|
||||
if(M.color != color)
|
||||
@@ -101,6 +106,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!"
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
glass_icon_state = "kahluaglass"
|
||||
glass_name = "glass of RR Coffee Liquor"
|
||||
glass_desc = "DAMN, THIS THING LOOKS ROBUST!"
|
||||
shot_glass_icon_state = "shotglasscream"
|
||||
|
||||
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -116,6 +125,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 75
|
||||
taste_description = "molasses"
|
||||
glass_icon_state = "whiskeyglass"
|
||||
glass_name = "glass of whiskey"
|
||||
glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko
|
||||
name = "Thirteen Loko"
|
||||
@@ -125,6 +138,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 80
|
||||
taste_description = "jitters and death"
|
||||
glass_icon_state = "thirteen_loko_glass"
|
||||
glass_name = "glass of Thirteen Loko"
|
||||
glass_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M)
|
||||
M.drowsyness = max(0,M.drowsyness-7)
|
||||
@@ -141,6 +158,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
boozepwr = 65
|
||||
taste_description = "grain alcohol"
|
||||
glass_icon_state = "ginvodkaglass"
|
||||
glass_name = "glass of vodka"
|
||||
glass_desc = "The glass contain wodka. Xynta."
|
||||
shot_glass_icon_state = "shotglassclear"
|
||||
|
||||
/datum/reagent/consumable/ethanol/vodka/on_mob_life(mob/living/M)
|
||||
M.radiation = max(M.radiation-2,0)
|
||||
@@ -154,6 +175,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
boozepwr = 15
|
||||
taste_description = "desperation and lactate"
|
||||
glass_icon_state = "glass_brown"
|
||||
glass_name = "glass of bilk"
|
||||
glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
|
||||
|
||||
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/M)
|
||||
if(M.getBruteLoss() && prob(10))
|
||||
@@ -168,6 +192,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#666340" // rgb: 102, 99, 64
|
||||
boozepwr = 10
|
||||
taste_description = "dryness"
|
||||
glass_icon_state = "threemileislandglass"
|
||||
glass_name = "Three Mile Island Ice Tea"
|
||||
glass_desc = "A glass of this is sure to prevent a meltdown."
|
||||
|
||||
/datum/reagent/consumable/ethanol/threemileisland/on_mob_life(mob/living/M)
|
||||
M.set_drugginess(50)
|
||||
@@ -180,6 +207,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
taste_description = "an alcoholic christmas tree"
|
||||
glass_icon_state = "ginvodkaglass"
|
||||
glass_name = "glass of gin"
|
||||
glass_desc = "A crystal clear glass of Griffeater gin."
|
||||
|
||||
/datum/reagent/consumable/ethanol/rum
|
||||
name = "Rum"
|
||||
@@ -188,6 +218,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 60
|
||||
taste_description = "spiked butterscotch"
|
||||
glass_icon_state = "rumglass"
|
||||
glass_name = "glass of rum"
|
||||
glass_desc = "Now you want to Pray for a pirate suit, don't you?"
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
|
||||
/datum/reagent/consumable/ethanol/tequila
|
||||
name = "Tequila"
|
||||
@@ -196,6 +230,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#FFFF91" // rgb: 255, 255, 145
|
||||
boozepwr = 70
|
||||
taste_description = "paint stripper"
|
||||
glass_icon_state = "tequilaglass"
|
||||
glass_name = "glass of tequila"
|
||||
glass_desc = "Now all that's missing is the weird colored shades!"
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
|
||||
/datum/reagent/consumable/ethanol/vermouth
|
||||
name = "Vermouth"
|
||||
@@ -204,6 +242,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#91FF91" // rgb: 145, 255, 145
|
||||
boozepwr = 45
|
||||
taste_description = "dry alcohol"
|
||||
glass_icon_state = "vermouthglass"
|
||||
glass_name = "glass of vermouth"
|
||||
glass_desc = "You wonder why you're even drinking this straight."
|
||||
shot_glass_icon_state = "shotglassclear"
|
||||
|
||||
/datum/reagent/consumable/ethanol/wine
|
||||
name = "Wine"
|
||||
@@ -212,6 +254,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#7E4043" // rgb: 126, 64, 67
|
||||
boozepwr = 35
|
||||
taste_description = "bitter sweetness"
|
||||
glass_icon_state = "wineglass"
|
||||
glass_name = "glass of wine"
|
||||
glass_desc = "A very classy looking drink."
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
|
||||
/datum/reagent/consumable/ethanol/lizardwine
|
||||
name = "Lizard wine"
|
||||
@@ -228,6 +274,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#F8EBF1"
|
||||
boozepwr = 45
|
||||
taste_description = "classy bitter sweetness"
|
||||
glass_icon_state = "grappa"
|
||||
glass_name = "glass of grappa"
|
||||
glass_desc = "A fine drink originally made to prevent waste by using the leftovers from winemaking."
|
||||
|
||||
/datum/reagent/consumable/ethanol/cognac
|
||||
name = "Cognac"
|
||||
@@ -236,6 +285,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#AB3C05" // rgb: 171, 60, 5
|
||||
boozepwr = 75
|
||||
taste_description = "angry and irish"
|
||||
glass_icon_state = "cognacglass"
|
||||
glass_name = "glass of cognac"
|
||||
glass_desc = "Damn, you feel like some kind of French aristocrat just by holding this."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
|
||||
/datum/reagent/consumable/ethanol/absinthe
|
||||
name = "Absinthe"
|
||||
@@ -244,6 +297,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = rgb(10, 206, 0)
|
||||
boozepwr = 80 //Very strong even by default
|
||||
taste_description = "death and licorice"
|
||||
glass_icon_state = "absinthe"
|
||||
glass_name = "glass of absinthe"
|
||||
glass_desc = "It's as strong as it smells."
|
||||
shot_glass_icon_state = "shotglassgreen"
|
||||
|
||||
/datum/reagent/consumable/ethanol/absinthe/on_mob_life(mob/living/M)
|
||||
if(prob(10))
|
||||
@@ -257,6 +314,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 100
|
||||
taste_description = "pure resignation"
|
||||
glass_icon_state = "glass_brown2"
|
||||
glass_name = "Hooch"
|
||||
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/ale
|
||||
name = "Ale"
|
||||
@@ -265,6 +326,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 65
|
||||
taste_description = "hearty barley ale"
|
||||
glass_icon_state = "aleglass"
|
||||
glass_name = "glass of ale"
|
||||
glass_desc = "A freezing pint of delicious Ale."
|
||||
|
||||
/datum/reagent/consumable/ethanol/goldschlager
|
||||
name = "Goldschlager"
|
||||
@@ -273,6 +337,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#FFFF91" // rgb: 255, 255, 145
|
||||
boozepwr = 25
|
||||
taste_description = "burning cinnamon"
|
||||
glass_icon_state = "goldschlagerglass"
|
||||
glass_name = "glass of Goldschlager"
|
||||
glass_desc = "100% proof that teen girls will drink anything with gold in it."
|
||||
shot_glass_icon_state = "shotglassgold"
|
||||
|
||||
/datum/reagent/consumable/ethanol/patron
|
||||
name = "Patron"
|
||||
@@ -281,6 +349,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#585840" // rgb: 88, 88, 64
|
||||
boozepwr = 60
|
||||
taste_description = "metallic and expensive"
|
||||
glass_icon_state = "patronglass"
|
||||
glass_name = "glass of patron"
|
||||
glass_desc = "Drinking patron in the bar, with all the subpar ladies."
|
||||
shot_glass_icon_state = "shotglassclear"
|
||||
|
||||
/datum/reagent/consumable/ethanol/gintonic
|
||||
name = "Gin and Tonic"
|
||||
@@ -289,6 +361,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 25
|
||||
taste_description = "mild and tart"
|
||||
glass_icon_state = "gintonicglass"
|
||||
glass_name = "Gin and Tonic"
|
||||
glass_desc = "A mild but still great cocktail. Drink up, like a true Englishman."
|
||||
|
||||
/datum/reagent/consumable/ethanol/cuba_libre
|
||||
name = "Cuba Libre"
|
||||
@@ -297,6 +372,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#3E1B00" // rgb: 62, 27, 0
|
||||
boozepwr = 50
|
||||
taste_description = "cola"
|
||||
glass_icon_state = "cubalibreglass"
|
||||
glass_name = "Cuba Libre"
|
||||
glass_desc = "A classic mix of rum and cola."
|
||||
|
||||
/datum/reagent/consumable/ethanol/cuba_libre/on_mob_life(mob/living/M)
|
||||
if(M.mind && M.mind.special_role in list("Revolutionary", "Head Revolutionary")) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries.
|
||||
@@ -314,6 +392,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#3E1B00" // rgb: 62, 27, 0
|
||||
boozepwr = 70
|
||||
taste_description = "cola"
|
||||
glass_icon_state = "whiskeycolaglass"
|
||||
glass_name = "Whiskey Cola"
|
||||
glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
|
||||
|
||||
/datum/reagent/consumable/ethanol/martini
|
||||
name = "Classic Martini"
|
||||
@@ -322,6 +403,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 60
|
||||
taste_description = "dry class"
|
||||
glass_icon_state = "martiniglass"
|
||||
glass_name = "Classic Martini"
|
||||
glass_desc = "Damn, the bartender even stirred it, not shook it."
|
||||
|
||||
/datum/reagent/consumable/ethanol/vodkamartini
|
||||
name = "Vodka Martini"
|
||||
@@ -330,6 +414,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 65
|
||||
taste_description = "shaken, not stirred"
|
||||
glass_icon_state = "martiniglass"
|
||||
glass_name = "Vodka martini"
|
||||
glass_desc ="A bastardisation of the classic martini. Still great."
|
||||
|
||||
/datum/reagent/consumable/ethanol/white_russian
|
||||
name = "White Russian"
|
||||
@@ -338,6 +425,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#A68340" // rgb: 166, 131, 64
|
||||
boozepwr = 50
|
||||
taste_description = "bitter cream"
|
||||
glass_icon_state = "whiterussianglass"
|
||||
glass_name = "White Russian"
|
||||
glass_desc = "A very nice looking drink. But that's just, like, your opinion, man."
|
||||
|
||||
/datum/reagent/consumable/ethanol/screwdrivercocktail
|
||||
name = "Screwdriver"
|
||||
@@ -346,6 +436,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
boozepwr = 55
|
||||
taste_description = "oranges"
|
||||
glass_icon_state = "screwdriverglass"
|
||||
glass_name = "Screwdriver"
|
||||
glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
|
||||
|
||||
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_life(mob/living/M)
|
||||
if(M.mind && M.mind.assigned_role in list("Station Engineer", "Atmospheric Technician", "Chief Engineer")) //Engineers lose radiation poisoning at a massive rate.
|
||||
@@ -359,6 +452,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#8CFF8C" // rgb: 140, 255, 140
|
||||
boozepwr = 45
|
||||
taste_description = "sweet 'n creamy"
|
||||
glass_icon_state = "booger"
|
||||
glass_name = "Booger"
|
||||
glass_desc = "Ewww..."
|
||||
|
||||
/datum/reagent/consumable/ethanol/bloody_mary
|
||||
name = "Bloody Mary"
|
||||
@@ -367,6 +463,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 55
|
||||
taste_description = "tomatoes with a hint of lime"
|
||||
glass_icon_state = "bloodymaryglass"
|
||||
glass_name = "Bloody Mary"
|
||||
glass_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
|
||||
|
||||
/datum/reagent/consumable/ethanol/brave_bull
|
||||
name = "Brave Bull"
|
||||
@@ -375,6 +474,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 80
|
||||
taste_description = "alcoholic bravery"
|
||||
glass_icon_state = "bravebullglass"
|
||||
glass_name = "Brave Bull"
|
||||
glass_desc = "Tequila and Coffee liqueur, brought together in a mouthwatering mixture. Drink up."
|
||||
|
||||
/datum/reagent/consumable/ethanol/brave_bull/on_mob_life(mob/living/M)
|
||||
if(M.maxHealth == initial(M.maxHealth)) //Brave Bull makes you sturdier, and thus capable of withstanding a tiny bit more punishment.
|
||||
@@ -393,6 +495,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#FFE48C" // rgb: 255, 228, 140
|
||||
boozepwr = 45
|
||||
taste_description = "oranges"
|
||||
glass_icon_state = "tequilasunriseglass"
|
||||
glass_name = "tequila Sunrise"
|
||||
glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
|
||||
|
||||
/datum/reagent/consumable/ethanol/toxins_special
|
||||
name = "Toxins Special"
|
||||
@@ -401,6 +506,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 25
|
||||
taste_description = "spicy toxins"
|
||||
glass_icon_state = "toxinsspecialglass"
|
||||
glass_name = "Toxins Special"
|
||||
glass_desc = "Whoah, this thing is on FIRE!"
|
||||
shot_glass_icon_state = "toxinsspecialglass"
|
||||
|
||||
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M as mob)
|
||||
if (M.bodytemperature < 330)
|
||||
@@ -415,6 +524,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 90 //THE FIST OF THE LAW IS STRONG AND HARD
|
||||
metabolization_rate = 0.8
|
||||
taste_description = "JUSTICE"
|
||||
glass_icon_state = "beepskysmashglass"
|
||||
glass_name = "Beepsky Smash"
|
||||
glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
|
||||
|
||||
/datum/reagent/consumable/ethanol/beepsky_smash/on_mob_life(mob/living/M)
|
||||
M.Stun(2, 0)
|
||||
@@ -427,6 +539,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
taste_description = "creamy alcohol"
|
||||
glass_icon_state = "irishcreamglass"
|
||||
glass_name = "Irish Cream"
|
||||
glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
|
||||
|
||||
/datum/reagent/consumable/ethanol/manly_dorf
|
||||
name = "The Manly Dorf"
|
||||
@@ -435,6 +550,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 100 //For the manly only
|
||||
taste_description = "hair on your chest and your chin"
|
||||
glass_icon_state = "manlydorfglass"
|
||||
glass_name = "The Manly Dorf"
|
||||
glass_desc = "A manly concoction made from Ale and Beer. Intended for true men only."
|
||||
|
||||
/datum/reagent/consumable/ethanol/longislandicedtea
|
||||
name = "Long Island Iced Tea"
|
||||
@@ -443,6 +561,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
taste_description = "a mixture of cola and alcohol"
|
||||
glass_icon_state = "longislandicedteaglass"
|
||||
glass_name = "Long Island Iced Tea"
|
||||
glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/moonshine
|
||||
name = "Moonshine"
|
||||
@@ -451,6 +573,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 95
|
||||
taste_description = "bitterness"
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "Moonshine"
|
||||
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
|
||||
|
||||
/datum/reagent/consumable/ethanol/b52
|
||||
name = "B-52"
|
||||
@@ -459,6 +584,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 85
|
||||
taste_description = "angry and irish"
|
||||
glass_icon_state = "b52glass"
|
||||
glass_name = "B-52"
|
||||
glass_desc = "Kahlua, Irish Cream, and cognac. You will get bombed."
|
||||
shot_glass_icon_state = "b52glass"
|
||||
|
||||
/datum/reagent/consumable/ethanol/irishcoffee
|
||||
name = "Irish Coffee"
|
||||
@@ -467,6 +596,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
taste_description = "giving up on the day"
|
||||
glass_icon_state = "irishcoffeeglass"
|
||||
glass_name = "Irish Coffee"
|
||||
glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
|
||||
|
||||
/datum/reagent/consumable/ethanol/margarita
|
||||
name = "Margarita"
|
||||
@@ -475,6 +607,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#8CFF8C" // rgb: 140, 255, 140
|
||||
boozepwr = 35
|
||||
taste_description = "dry and salty"
|
||||
glass_icon_state = "margaritaglass"
|
||||
glass_name = "Margarita"
|
||||
glass_desc = "On the rocks with salt on the rim. Arriba~!"
|
||||
|
||||
/datum/reagent/consumable/ethanol/black_russian
|
||||
name = "Black Russian"
|
||||
@@ -483,6 +618,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#360000" // rgb: 54, 0, 0
|
||||
boozepwr = 70
|
||||
taste_description = "bitterness"
|
||||
glass_icon_state = "blackrussianglass"
|
||||
glass_name = "Black Russian"
|
||||
glass_desc = "For the lactose-intolerant. Still as classy as a White Russian."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/manhattan
|
||||
name = "Manhattan"
|
||||
@@ -491,6 +630,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 30
|
||||
taste_description = "mild dryness"
|
||||
glass_icon_state = "manhattanglass"
|
||||
glass_name = "Manhattan"
|
||||
glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/manhattan_proj
|
||||
name = "Manhattan Project"
|
||||
@@ -499,6 +642,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
taste_description = "death, the destroyer of worlds"
|
||||
glass_icon_state = "proj_manhattanglass"
|
||||
glass_name = "Manhattan Project"
|
||||
glass_desc = "A scientist's drink of choice, for thinking how to blow up the station."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/manhattan_proj/on_mob_life(mob/living/M)
|
||||
M.set_drugginess(30)
|
||||
@@ -511,6 +658,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
taste_description = "soda"
|
||||
glass_icon_state = "whiskeysodaglass2"
|
||||
glass_name = "Whiskey Soda"
|
||||
glass_desc = "Ultimate refreshment."
|
||||
|
||||
/datum/reagent/consumable/ethanol/antifreeze
|
||||
name = "Anti-freeze"
|
||||
@@ -519,6 +669,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
taste_description = "Jack Frost's piss"
|
||||
glass_icon_state = "antifreeze"
|
||||
glass_name = "Anti-freeze"
|
||||
glass_desc = "The ultimate refreshment."
|
||||
|
||||
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature < 330)
|
||||
@@ -532,6 +685,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
taste_description = "creamy berries"
|
||||
glass_icon_state = "b&p"
|
||||
glass_name = "Barefoot"
|
||||
glass_desc = "Barefoot and pregnant."
|
||||
|
||||
/datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/M)
|
||||
if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes.
|
||||
@@ -548,6 +704,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#FFFFFF" // rgb: 255, 255, 255
|
||||
boozepwr = 35
|
||||
taste_description = "refreshing cold"
|
||||
glass_icon_state = "snowwhite"
|
||||
glass_name = "Snow White"
|
||||
glass_desc = "A cold refreshment."
|
||||
|
||||
/datum/reagent/consumable/ethanol/demonsblood //Prevents the imbiber from being dragged into a pool of blood by a slaughter demon.
|
||||
name = "Demon's Blood"
|
||||
@@ -556,6 +715,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#820000" // rgb: 130, 0, 0
|
||||
boozepwr = 75
|
||||
taste_description = "sweet tasting iron"
|
||||
glass_icon_state = "demonsblood"
|
||||
glass_name = "Demons Blood"
|
||||
glass_desc = "Just looking at this thing makes the hair at the back of your neck stand up."
|
||||
|
||||
/datum/reagent/consumable/ethanol/devilskiss //If eaten by a slaughter demon, the demon will regret it.
|
||||
name = "Devil's Kiss"
|
||||
@@ -564,6 +726,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#A68310" // rgb: 166, 131, 16
|
||||
boozepwr = 70
|
||||
taste_description = "bitter iron"
|
||||
glass_icon_state = "devilskiss"
|
||||
glass_name = "Devils Kiss"
|
||||
glass_desc = "Creepy time!"
|
||||
|
||||
/datum/reagent/consumable/ethanol/vodkatonic
|
||||
name = "Vodka and Tonic"
|
||||
@@ -572,6 +737,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
boozepwr = 70
|
||||
taste_description = "tart bitterness"
|
||||
glass_icon_state = "vodkatonicglass"
|
||||
glass_name = "Vodka and Tonic"
|
||||
glass_desc = "For when a gin and tonic isn't Russian enough."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/ginfizz
|
||||
name = "Gin Fizz"
|
||||
@@ -580,6 +749,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
taste_description = "dry, tart lemons"
|
||||
glass_icon_state = "ginfizzglass"
|
||||
glass_name = "Gin Fizz"
|
||||
glass_desc = "Refreshingly lemony, deliciously dry."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/bahama_mama
|
||||
name = "Bahama Mama"
|
||||
@@ -588,6 +761,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#FF7F3B" // rgb: 255, 127, 59
|
||||
boozepwr = 35
|
||||
taste_description = "lime and orange"
|
||||
glass_icon_state = "bahama_mama"
|
||||
glass_name = "Bahama Mama"
|
||||
glass_desc = "Tropical cocktail."
|
||||
|
||||
/datum/reagent/consumable/ethanol/singulo
|
||||
name = "Singulo"
|
||||
@@ -596,6 +772,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 35
|
||||
taste_description = "concentrated matter"
|
||||
glass_icon_state = "singulo"
|
||||
glass_name = "Singulo"
|
||||
glass_desc = "A blue-space beverage."
|
||||
|
||||
/datum/reagent/consumable/ethanol/sbiten
|
||||
name = "Sbiten"
|
||||
@@ -604,6 +783,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 70
|
||||
taste_description = "hot and spice"
|
||||
glass_icon_state = "sbitenglass"
|
||||
glass_name = "Sbiten"
|
||||
glass_desc = "A spicy mix of Vodka and Spice. Very hot."
|
||||
|
||||
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature < 360)
|
||||
@@ -617,6 +799,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#C73C00" // rgb: 199, 60, 0
|
||||
boozepwr = 51 //Red drinks are stronger
|
||||
taste_description = "sweet and salty alcohol"
|
||||
glass_icon_state = "red_meadglass"
|
||||
glass_name = "Red Mead"
|
||||
glass_desc = "A True Viking's Beverage, though its color is strange."
|
||||
|
||||
/datum/reagent/consumable/ethanol/mead
|
||||
name = "Mead"
|
||||
@@ -626,6 +811,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 50
|
||||
taste_description = "sweet, sweet alcohol"
|
||||
glass_icon_state = "meadglass"
|
||||
glass_name = "Mead"
|
||||
glass_desc = "A Viking's Beverage, though a cheap one."
|
||||
|
||||
/datum/reagent/consumable/ethanol/iced_beer
|
||||
name = "Iced Beer"
|
||||
@@ -634,6 +822,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 15
|
||||
taste_description = "refreshingly cold"
|
||||
glass_icon_state = "iced_beerglass"
|
||||
glass_name = "Iced Beer"
|
||||
glass_desc = "A beer so frosty, the air around it freezes."
|
||||
|
||||
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M)
|
||||
if(M.bodytemperature > 270)
|
||||
@@ -647,6 +838,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 1 //Basically nothing
|
||||
taste_description = "a poor excuse for alcohol"
|
||||
glass_icon_state = "grogglass"
|
||||
glass_name = "Grog"
|
||||
glass_desc = "A fine and cepa drink for Space."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/aloe
|
||||
name = "Aloe"
|
||||
@@ -655,6 +850,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
taste_description = "sweet 'n creamy"
|
||||
glass_icon_state = "aloe"
|
||||
glass_name = "Aloe"
|
||||
glass_desc = "Very, very, very good."
|
||||
|
||||
/datum/reagent/consumable/ethanol/andalusia
|
||||
name = "Andalusia"
|
||||
@@ -663,6 +861,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 40
|
||||
taste_description = "lemons"
|
||||
glass_icon_state = "andalusia"
|
||||
glass_name = "Andalusia"
|
||||
glass_desc = "A nice, strangely named drink."
|
||||
|
||||
/datum/reagent/consumable/ethanol/alliescocktail
|
||||
name = "Allies Cocktail"
|
||||
@@ -671,6 +872,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 45
|
||||
taste_description = "bitter yet free"
|
||||
glass_icon_state = "alliescocktail"
|
||||
glass_name = "Allies cocktail"
|
||||
glass_desc = "A drink made from your allies."
|
||||
|
||||
/datum/reagent/consumable/ethanol/acid_spit
|
||||
name = "Acid Spit"
|
||||
@@ -679,6 +883,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#365000" // rgb: 54, 80, 0
|
||||
boozepwr = 80
|
||||
taste_description = "stomach acid"
|
||||
glass_icon_state = "acidspitglass"
|
||||
glass_name = "Acid Spit"
|
||||
glass_desc = "A drink from Nanotrasen. Made from live aliens."
|
||||
|
||||
/datum/reagent/consumable/ethanol/amasec
|
||||
name = "Amasec"
|
||||
@@ -687,6 +894,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 35
|
||||
taste_description = "dark and metallic"
|
||||
glass_icon_state = "amasecglass"
|
||||
glass_name = "Amasec"
|
||||
glass_desc = "Always handy before COMBAT!!!"
|
||||
|
||||
/datum/reagent/consumable/ethanol/changelingsting
|
||||
name = "Changeling Sting"
|
||||
@@ -695,6 +905,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 95
|
||||
taste_description = "your brain coming out your nose"
|
||||
glass_icon_state = "changelingsting"
|
||||
glass_name = "Changeling Sting"
|
||||
glass_desc = "A stingy drink."
|
||||
|
||||
/datum/reagent/consumable/ethanol/changelingsting/on_mob_life(mob/living/M)
|
||||
if(M.mind && M.mind.changeling) //Changeling Sting assists in the recharging of changeling chemicals.
|
||||
@@ -709,6 +922,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 25
|
||||
taste_description = "delicious anger"
|
||||
glass_icon_state = "irishcarbomb"
|
||||
glass_name = "Irish Car Bomb"
|
||||
glass_desc = "An Irish car bomb."
|
||||
|
||||
/datum/reagent/consumable/ethanol/syndicatebomb
|
||||
name = "Syndicate Bomb"
|
||||
@@ -717,6 +933,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 90
|
||||
taste_description = "purified antagonism"
|
||||
glass_icon_state = "syndicatebomb"
|
||||
glass_name = "Syndicate Bomb"
|
||||
glass_desc = "A syndicate bomb."
|
||||
|
||||
/datum/reagent/consumable/ethanol/syndicatebomb/on_mob_life(mob/living/M)
|
||||
if(prob(5))
|
||||
@@ -730,6 +949,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 35
|
||||
taste_description = "tartness and bananas"
|
||||
glass_icon_state = "erikasurprise"
|
||||
glass_name = "Erika Surprise"
|
||||
glass_desc = "The surprise is, it's green!"
|
||||
|
||||
/datum/reagent/consumable/ethanol/driestmartini
|
||||
name = "Driest Martini"
|
||||
@@ -739,6 +961,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E6671" // rgb: 46, 102, 113
|
||||
boozepwr = 65
|
||||
taste_description = "a beach"
|
||||
glass_icon_state = "driestmartiniglass"
|
||||
glass_name = "Driest Martini"
|
||||
glass_desc = "Only for the experienced. You think you see sand floating in the glass."
|
||||
|
||||
/datum/reagent/consumable/ethanol/bananahonk
|
||||
name = "Banana Mama"
|
||||
@@ -748,6 +973,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#FFFF91" // rgb: 255, 255, 140
|
||||
boozepwr = 60
|
||||
taste_description = "a bad joke"
|
||||
glass_icon_state = "bananahonkglass"
|
||||
glass_name = "Banana Honk"
|
||||
glass_desc = "A drink from Clown Heaven."
|
||||
|
||||
/datum/reagent/consumable/ethanol/bananahonk/on_mob_life(mob/living/M)
|
||||
if((ishuman(M) && M.job in list("Clown") ) || ismonkey(M))
|
||||
@@ -763,6 +991,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 59 //Proof that clowns are better than mimes right here
|
||||
taste_description = "a pencil eraser"
|
||||
glass_icon_state = "silencerglass"
|
||||
glass_name = "Silencer"
|
||||
glass_desc = "A drink from Mime Heaven."
|
||||
|
||||
/datum/reagent/consumable/ethanol/silencer/on_mob_life(mob/living/M)
|
||||
if(ishuman(M) && M.job in list("Mime"))
|
||||
@@ -777,6 +1008,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#1EA0FF" // rgb: 102, 67, 0
|
||||
boozepwr = 50
|
||||
taste_description = "molasses and a mouthful of pool water"
|
||||
glass_icon_state = "drunkenblumpkin"
|
||||
glass_name = "Drunken Blumpkin"
|
||||
glass_desc = "A drink for the drunks."
|
||||
|
||||
/datum/reagent/consumable/ethanol/whiskey_sour //Requested since we had whiskey cola and soda but not sour.
|
||||
name = "Whiskey Sour"
|
||||
@@ -785,6 +1019,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = rgb(255, 201, 49)
|
||||
boozepwr = 35
|
||||
taste_description = "sour lemons"
|
||||
glass_icon_state = "whiskey_sour"
|
||||
glass_name = "Whiskey Sour"
|
||||
glass_desc = "Lemon juice mixed with whiskey and a dash of sugar. Surprisingly satisfying."
|
||||
|
||||
/datum/reagent/consumable/ethanol/hcider
|
||||
name = "Hard Cider"
|
||||
@@ -794,6 +1031,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 1 * REAGENTS_METABOLISM
|
||||
boozepwr = 25
|
||||
taste_description = "apples"
|
||||
glass_icon_state = "whiskeyglass"
|
||||
glass_name = "Hard Cider"
|
||||
glass_desc = "Tastes like autumn."
|
||||
shot_glass_icon_state = "shotglassbrown"
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/fetching_fizz //A reference to one of my favorite games of all time. Pulls nearby ores to the imbiber!
|
||||
@@ -804,6 +1045,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 10
|
||||
metabolization_rate = 0.1 * REAGENTS_METABOLISM
|
||||
taste_description = "charged metal" // the same as teslium, honk honk.
|
||||
glass_icon_state = "fetching_fizz"
|
||||
glass_name = "Fetching Fizz"
|
||||
glass_desc = "Induces magnetism in the imbiber. Started as a barroom prank but evolved to become popular with miners and scrappers. Metallic aftertaste."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/M)
|
||||
for(var/obj/item/weapon/ore/O in orange(3, M))
|
||||
@@ -819,6 +1064,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 10
|
||||
metabolization_rate = 0.1 * REAGENTS_METABOLISM
|
||||
taste_description = "bravado in the face of disaster"
|
||||
glass_icon_state = "hearty_punch"
|
||||
glass_name = "Hearty Punch"
|
||||
glass_desc = "Aromatic beverage served piping hot. According to folk tales it can almost wake the dead."
|
||||
|
||||
/datum/reagent/consumable/ethanol/hearty_punch/on_mob_life(mob/living/M)
|
||||
if(M.stat == UNCONSCIOUS && M.health <= 0)
|
||||
@@ -837,6 +1085,10 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = rgb(51, 19, 3) //Sickly brown
|
||||
boozepwr = 300 //I warned you
|
||||
taste_description = "a wall of bricks"
|
||||
glass_icon_state = "glass_brown2"
|
||||
glass_name = "Bacchus' Blessing"
|
||||
glass_desc = "You didn't think it was possible for a liquid to be so utterly revolting. Are you sure about this...?"
|
||||
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/atomicbomb
|
||||
@@ -846,6 +1098,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#666300" // rgb: 102, 99, 0
|
||||
boozepwr = 0 //custom drunk effect
|
||||
taste_description = "da bomb"
|
||||
glass_icon_state = "atomicbombglass"
|
||||
glass_name = "Atomic Bomb"
|
||||
glass_desc = "Nanotrasen cannot take legal responsibility for your actions after imbibing."
|
||||
|
||||
/datum/reagent/consumable/ethanol/atomicbomb/on_mob_life(mob/living/M)
|
||||
M.set_drugginess(50)
|
||||
@@ -871,6 +1126,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
boozepwr = 0 //custom drunk effect
|
||||
taste_description = "your brains smashed out by a lemon wrapped around a gold brick"
|
||||
glass_icon_state = "gargleblasterglass"
|
||||
glass_name = "Pan-Galactic Gargle Blaster"
|
||||
glass_desc = "Like having your brain smashed out by a slice of lemon wrapped around a large gold brick."
|
||||
|
||||
/datum/reagent/consumable/ethanol/gargle_blaster/on_mob_life(mob/living/M)
|
||||
M.dizziness +=6
|
||||
@@ -896,6 +1154,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
boozepwr = 0 //custom drunk effect
|
||||
taste_description = "a numbing sensation"
|
||||
glass_icon_state = "neurotoxinglass"
|
||||
glass_name = "Neurotoxin"
|
||||
glass_desc = "A drink that is guaranteed to knock you silly."
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin/on_mob_life(mob/living/carbon/M)
|
||||
M.Weaken(3, 1, 0)
|
||||
@@ -924,6 +1185,9 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
boozepwr = 0 //custom drunk effect
|
||||
metabolization_rate = 0.2 * REAGENTS_METABOLISM
|
||||
taste_description = "giving peace a chance"
|
||||
glass_icon_state = "hippiesdelightglass"
|
||||
glass_name = "Hippie's Delight"
|
||||
glass_desc = "A drink enjoyed by people during the 1960's."
|
||||
|
||||
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/M)
|
||||
if (!M.slurring)
|
||||
@@ -965,3 +1229,6 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
boozepwr = 1
|
||||
taste_description = "custard and alcohol"
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "Eggnog"
|
||||
glass_desc = "For enjoying the most wonderful time of the year."
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
description = "Both delicious AND rich in Vitamin C, what more do you need?"
|
||||
color = "#E78108" // rgb: 231, 129, 8
|
||||
taste_description = "oranges"
|
||||
glass_icon_state = "glass_orange"
|
||||
glass_name = "glass of orange juice"
|
||||
glass_desc = "Vitamins! Yay!"
|
||||
|
||||
/datum/reagent/consumable/orangejuice/on_mob_life(mob/living/M)
|
||||
if(M.getOxyLoss() && prob(30))
|
||||
@@ -23,6 +26,9 @@
|
||||
description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?"
|
||||
color = "#731008" // rgb: 115, 16, 8
|
||||
taste_description = "tomatoes"
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of tomato juice"
|
||||
glass_desc = "Are you sure this is tomato juice?"
|
||||
|
||||
/datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/M)
|
||||
if(M.getFireLoss() && prob(20))
|
||||
@@ -36,6 +42,9 @@
|
||||
description = "The sweet-sour juice of limes."
|
||||
color = "#365E30" // rgb: 54, 94, 48
|
||||
taste_description = "unbearable sourness"
|
||||
glass_icon_state = "glass_green"
|
||||
glass_name = "glass of lime juice"
|
||||
glass_desc = "A glass of sweet-sour lime juice."
|
||||
|
||||
/datum/reagent/consumable/limejuice/on_mob_life(mob/living/M)
|
||||
if(M.getToxLoss() && prob(20))
|
||||
@@ -49,6 +58,9 @@
|
||||
description = "It is just like a carrot but without crunching."
|
||||
color = "#973800" // rgb: 151, 56, 0
|
||||
taste_description = "carrots"
|
||||
glass_icon_state = "carrotjuice"
|
||||
glass_name = "glass of carrot juice"
|
||||
glass_desc = "It's just like a carrot but without crunching."
|
||||
|
||||
/datum/reagent/consumable/carrotjuice/on_mob_life(mob/living/M)
|
||||
M.adjust_blurriness(-1)
|
||||
@@ -68,6 +80,9 @@
|
||||
description = "A delicious blend of several different kinds of berries."
|
||||
color = "#863333" // rgb: 134, 51, 51
|
||||
taste_description = "berries"
|
||||
glass_icon_state = "berryjuice"
|
||||
glass_name = "glass of berry juice"
|
||||
glass_desc = "Berry juice. Or maybe it's jam. Who cares?"
|
||||
|
||||
/datum/reagent/consumable/applejuice
|
||||
name = "Apple Juice"
|
||||
@@ -82,6 +97,9 @@
|
||||
description = "A tasty juice blended from various kinds of very deadly and toxic berries."
|
||||
color = "#863353" // rgb: 134, 51, 83
|
||||
taste_description = "berries"
|
||||
glass_icon_state = "poisonberryjuice"
|
||||
glass_name = "glass of berry juice"
|
||||
glass_desc = "Berry juice. Or maybe it's poison. Who cares?"
|
||||
|
||||
/datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/M)
|
||||
M.adjustToxLoss(1, 0)
|
||||
@@ -94,6 +112,9 @@
|
||||
description = "Delicious juice made from watermelon."
|
||||
color = "#863333" // rgb: 134, 51, 51
|
||||
taste_description = "juicy watermelon"
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of watermelon juice"
|
||||
glass_desc = "A glass of watermelon juice."
|
||||
|
||||
/datum/reagent/consumable/lemonjuice
|
||||
name = "Lemon Juice"
|
||||
@@ -101,6 +122,9 @@
|
||||
description = "This juice is VERY sour."
|
||||
color = "#863333" // rgb: 175, 175, 0
|
||||
taste_description = "sourness"
|
||||
glass_icon_state = "lemonglass"
|
||||
glass_name = "glass of lemon juice"
|
||||
glass_desc = "Sour..."
|
||||
|
||||
/datum/reagent/consumable/banana
|
||||
name = "Banana Juice"
|
||||
@@ -108,6 +132,9 @@
|
||||
description = "The raw essence of a banana. HONK"
|
||||
color = "#863333" // rgb: 175, 175, 0
|
||||
taste_description = "banana"
|
||||
glass_icon_state = "banana"
|
||||
glass_name = "glass of banana juice"
|
||||
glass_desc = "The raw essence of a banana. HONK."
|
||||
|
||||
/datum/reagent/consumable/banana/on_mob_life(mob/living/M)
|
||||
if((ishuman(M) && M.job in list("Clown") ) || ismonkey(M))
|
||||
@@ -120,6 +147,10 @@
|
||||
id = "nothing"
|
||||
description = "Absolutely nothing."
|
||||
taste_description = "nothing"
|
||||
glass_icon_state = "nothing"
|
||||
glass_name = "Nothing"
|
||||
glass_desc = "Absolutely nothing."
|
||||
shot_glass_icon_state = "shotglass"
|
||||
|
||||
/datum/reagent/consumable/nothing/on_mob_life(mob/living/M)
|
||||
if(ishuman(M) && M.job in list("Mime"))
|
||||
@@ -159,6 +190,9 @@
|
||||
nutriment_factor = 2 * REAGENTS_METABOLISM
|
||||
color = "#302000" // rgb: 48, 32, 0
|
||||
taste_description = "irish sadness"
|
||||
glass_icon_state = "glass_brown"
|
||||
glass_name = "glass of potato juice"
|
||||
glass_desc = "Bleh..."
|
||||
|
||||
/datum/reagent/consumable/grapejuice
|
||||
name = "Grape Juice"
|
||||
@@ -173,6 +207,9 @@
|
||||
description = "An opaque white liquid produced by the mammary glands of mammals."
|
||||
color = "#DFDFDF" // rgb: 223, 223, 223
|
||||
taste_description = "milk"
|
||||
glass_icon_state = "glass_white"
|
||||
glass_name = "glass of milk"
|
||||
glass_desc = "White and nutritious goodness!"
|
||||
|
||||
/datum/reagent/consumable/milk/on_mob_life(mob/living/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
@@ -192,6 +229,9 @@
|
||||
description = "An opaque white liquid made from soybeans."
|
||||
color = "#DFDFC7" // rgb: 223, 223, 199
|
||||
taste_description = "soy milk"
|
||||
glass_icon_state = "glass_white"
|
||||
glass_name = "glass of soy milk"
|
||||
glass_desc = "White and nutritious soy goodness!"
|
||||
|
||||
/datum/reagent/consumable/soymilk/on_mob_life(mob/living/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
@@ -205,6 +245,9 @@
|
||||
description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?"
|
||||
color = "#DFD7AF" // rgb: 223, 215, 175
|
||||
taste_description = "creamy milk"
|
||||
glass_icon_state = "glass_white"
|
||||
glass_name = "glass of cream"
|
||||
glass_desc = "Ewwww..."
|
||||
|
||||
/datum/reagent/consumable/cream/on_mob_life(mob/living/M)
|
||||
if(M.getBruteLoss() && prob(20))
|
||||
@@ -220,6 +263,9 @@
|
||||
nutriment_factor = 0
|
||||
overdose_threshold = 80
|
||||
taste_description = "bitterness"
|
||||
glass_icon_state = "glass_brown"
|
||||
glass_name = "glass of coffee"
|
||||
glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere."
|
||||
|
||||
/datum/reagent/consumable/coffee/overdose_process(mob/living/M)
|
||||
M.Jitter(5)
|
||||
@@ -243,6 +289,9 @@
|
||||
color = "#101000" // rgb: 16, 16, 0
|
||||
nutriment_factor = 0
|
||||
taste_description = "tart black tea"
|
||||
glass_icon_state = "teaglass"
|
||||
glass_name = "glass of tea"
|
||||
glass_desc = "Drinking it from here would not seem right."
|
||||
|
||||
/datum/reagent/consumable/tea/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
@@ -263,6 +312,9 @@
|
||||
color = "#FFB766"
|
||||
nutriment_factor = 2
|
||||
taste_description = "bitter tea"
|
||||
glass_icon_state = "arnold_palmer"
|
||||
glass_name = "Arnold Palmer"
|
||||
glass_desc = "You feel like taking a few golf swings after a few swigs of this."
|
||||
|
||||
/datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/M)
|
||||
if(prob(5))
|
||||
@@ -277,6 +329,9 @@
|
||||
color = "#102838" // rgb: 16, 40, 56
|
||||
nutriment_factor = 0
|
||||
taste_description = "bitter coldness"
|
||||
glass_icon_state = "icedcoffeeglass"
|
||||
glass_name = "Iced Coffee"
|
||||
glass_desc = "A drink to perk you up and refresh you!"
|
||||
|
||||
/datum/reagent/consumable/icecoffee/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -295,6 +350,9 @@
|
||||
color = "#104038" // rgb: 16, 64, 56
|
||||
nutriment_factor = 0
|
||||
taste_description = "sweet tea"
|
||||
glass_icon_state = "icedteaglass"
|
||||
glass_name = "Iced Tea"
|
||||
glass_desc = "All natural, antioxidant-rich flavour sensation."
|
||||
|
||||
/datum/reagent/consumable/icetea/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-2)
|
||||
@@ -313,6 +371,9 @@
|
||||
description = "A refreshing beverage."
|
||||
color = "#100800" // rgb: 16, 8, 0
|
||||
taste_description = "cola"
|
||||
glass_icon_state = "glass_brown"
|
||||
glass_name = "glass of space Cola"
|
||||
glass_desc = "A glass of refreshing Space Cola."
|
||||
|
||||
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/M)
|
||||
M.drowsyness = max(0,M.drowsyness-5)
|
||||
@@ -326,6 +387,9 @@
|
||||
description = "Cola, cola never changes."
|
||||
color = "#100800" // rgb: 16, 8, 0
|
||||
taste_description = "the future"
|
||||
glass_icon_state = "nuka_colaglass"
|
||||
glass_name = "Nuka Cola"
|
||||
glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/M)
|
||||
M.Jitter(20)
|
||||
@@ -345,6 +409,9 @@
|
||||
description = "Blows right through you like a space wind."
|
||||
color = "#102000" // rgb: 16, 32, 0
|
||||
taste_description = "sweet citrus soda"
|
||||
glass_icon_state = "Space_mountain_wind_glass"
|
||||
glass_name = "glass of Space Mountain Wind"
|
||||
glass_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind."
|
||||
|
||||
/datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/M)
|
||||
M.drowsyness = max(0,M.drowsyness-7)
|
||||
@@ -361,6 +428,9 @@
|
||||
description = "A delicious blend of 42 different flavours."
|
||||
color = "#102000" // rgb: 16, 32, 0
|
||||
taste_description = "cherry soda" // FALSE ADVERTISING
|
||||
glass_icon_state = "dr_gibb_glass"
|
||||
glass_name = "glass of Dr. Gibb"
|
||||
glass_desc = "Dr. Gibb. Not as dangerous as the glass_name might imply."
|
||||
|
||||
/datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/M)
|
||||
M.drowsyness = max(0,M.drowsyness-6)
|
||||
@@ -374,6 +444,10 @@
|
||||
description = "Tastes like a hull breach in your mouth."
|
||||
color = "#00FF00" // rgb: 0, 255, 0
|
||||
taste_description = "cherry soda"
|
||||
glass_icon_state = "space-up_glass"
|
||||
glass_name = "glass of Space-up"
|
||||
glass_desc = "Space-up. It helps you keep your cool."
|
||||
|
||||
|
||||
/datum/reagent/consumable/space_up/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature > 310)
|
||||
@@ -386,6 +460,10 @@
|
||||
id = "lemon_lime"
|
||||
color = "#8CFF00" // rgb: 135, 255, 0
|
||||
taste_description = "tangy lime and lemon soda"
|
||||
glass_icon_state = "glass_yellow"
|
||||
glass_name = "glass of Lemon-Lime"
|
||||
glass_desc = "You're pretty certain a real fruit has never actually touched this."
|
||||
|
||||
|
||||
/datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature > 310)
|
||||
@@ -398,6 +476,9 @@
|
||||
id = "pwr_game"
|
||||
color = "#9385bf" // rgb: 58, 52, 75
|
||||
taste_description = "sweet and salty tang"
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of Pwr Game"
|
||||
glass_desc = "Goes well with a Vlad's salad."
|
||||
|
||||
/datum/reagent/consumable/pwr_game/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature > 310)
|
||||
@@ -410,6 +491,9 @@
|
||||
id = "shamblers"
|
||||
color = "#f00060" // rgb: 94, 0, 38
|
||||
taste_description = "carbonated metallic soda"
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of Shambler's Juice"
|
||||
glass_desc = "Mmm mm, shambly."
|
||||
|
||||
/datum/reagent/consumable/shamblers/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature > 310)
|
||||
@@ -421,6 +505,9 @@
|
||||
description = "A can of club soda. Why not make a scotch and soda?"
|
||||
color = "#619494" // rgb: 97, 148, 148
|
||||
taste_description = "carbonated water"
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "glass of Soda Water"
|
||||
glass_desc = "Soda water. Why not make a scotch and soda?"
|
||||
|
||||
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -435,6 +522,9 @@
|
||||
description = "It tastes strange but at least the quinine keeps the Space Malaria at bay."
|
||||
color = "#0064C8" // rgb: 0, 100, 200
|
||||
taste_description = "tart and fresh"
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "glass of Tonic Water"
|
||||
glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away."
|
||||
|
||||
/datum/reagent/consumable/tonic/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -452,6 +542,9 @@
|
||||
reagent_state = SOLID
|
||||
color = "#619494" // rgb: 97, 148, 148
|
||||
taste_description = "ice"
|
||||
glass_icon_state = "iceglass"
|
||||
glass_name = "glass of ice"
|
||||
glass_desc = "Generally, you're supposed to put something else in there too..."
|
||||
|
||||
/datum/reagent/consumable/ice/on_mob_life(mob/living/M)
|
||||
M.bodytemperature = max( M.bodytemperature - 5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
|
||||
@@ -463,6 +556,9 @@
|
||||
description = "A nice and tasty beverage while you are reading your hippie books."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
taste_description = "creamy coffee"
|
||||
glass_icon_state = "soy_latte"
|
||||
glass_name = "Soy Latte"
|
||||
glass_desc = "A nice and refreshing beverage while you're reading."
|
||||
|
||||
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -482,6 +578,9 @@
|
||||
description = "A nice, strong and tasty beverage while you are reading."
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
taste_description = "bitter cream"
|
||||
glass_icon_state = "cafe_latte"
|
||||
glass_name = "Cafe Latte"
|
||||
glass_desc = "A nice, strong and refreshing beverage while you're reading."
|
||||
|
||||
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/M)
|
||||
M.dizziness = max(0,M.dizziness-5)
|
||||
@@ -501,6 +600,9 @@
|
||||
description = "A gulp a day keeps the Medibot away! A mixture of juices that heals most damage types fairly quickly at the cost of hunger."
|
||||
color = "#FF8CFF" // rgb: 255, 140, 255
|
||||
taste_description = "homely fruit"
|
||||
glass_icon_state = "doctorsdelightglass"
|
||||
glass_name = "Doctor's Delight"
|
||||
glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger."
|
||||
|
||||
/datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/M)
|
||||
M.adjustBruteLoss(-0.5, 0)
|
||||
@@ -520,6 +622,9 @@
|
||||
color = "#800000"
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "sweet chocolate"
|
||||
glass_icon_state = "chocolatepudding"
|
||||
glass_name = "Chocolate Pudding"
|
||||
glass_desc = "Tasty."
|
||||
|
||||
/datum/reagent/consumable/vanillapudding
|
||||
name = "Vanilla Pudding"
|
||||
@@ -528,6 +633,9 @@
|
||||
color = "#FAFAD2"
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "sweet vanilla"
|
||||
glass_icon_state = "vanillapudding"
|
||||
glass_name = "Vanilla Pudding"
|
||||
glass_desc = "Tasty."
|
||||
|
||||
/datum/reagent/consumable/cherryshake
|
||||
name = "Cherry Shake"
|
||||
@@ -536,6 +644,9 @@
|
||||
color = "#FFB6C1"
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy cherry"
|
||||
glass_icon_state = "cherryshake"
|
||||
glass_name = "Cherry Shake"
|
||||
glass_desc = "A cherry flavored milkshake."
|
||||
|
||||
/datum/reagent/consumable/bluecherryshake
|
||||
name = "Blue Cherry Shake"
|
||||
@@ -544,6 +655,9 @@
|
||||
color = "#00F1FF"
|
||||
nutriment_factor = 4 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy blue cherry"
|
||||
glass_icon_state = "bluecherryshake"
|
||||
glass_name = "Blue Cherry Shake"
|
||||
glass_desc = "An exotic blue milkshake."
|
||||
|
||||
/datum/reagent/consumable/pumpkin_latte
|
||||
name = "Pumpkin Latte"
|
||||
@@ -552,6 +666,9 @@
|
||||
color = "#F4A460"
|
||||
nutriment_factor = 3 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy pumpkin"
|
||||
glass_icon_state = "pumpkin_latte"
|
||||
glass_name = "Pumpkin Latte"
|
||||
glass_desc = "A mix of coffee and pumpkin juice."
|
||||
|
||||
/datum/reagent/consumable/gibbfloats
|
||||
name = "Gibb Floats"
|
||||
@@ -560,6 +677,9 @@
|
||||
color = "#B22222"
|
||||
nutriment_factor = 3 * REAGENTS_METABOLISM
|
||||
taste_description = "creamy cherry"
|
||||
glass_icon_state = "gibbfloats"
|
||||
glass_name = "Gibbfloat"
|
||||
glass_desc = "Dr. Gibb with ice cream on top."
|
||||
|
||||
/datum/reagent/consumable/pumpkinjuice
|
||||
name = "Pumpkin Juice"
|
||||
@@ -581,6 +701,9 @@
|
||||
description = "A solution."
|
||||
color = "#C8A5DC"
|
||||
taste_description = "extreme bitterness"
|
||||
glass_icon_state = "triplecitrus" //needs own sprite mine are trash
|
||||
glass_name = "glass of triple citrus"
|
||||
glass_desc = "A mixture of citrus juices. Tangy, yet smooth."
|
||||
|
||||
/datum/reagent/consumable/grape_soda
|
||||
name = "Grape soda"
|
||||
@@ -588,6 +711,8 @@
|
||||
description = "Beloved of children and teetotalers."
|
||||
color = "#E6CDFF"
|
||||
taste_description = "grape soda"
|
||||
glass_name = "glass of grape juice"
|
||||
glass_desc = "It's grape (soda)!"
|
||||
|
||||
/datum/reagent/consumable/milk/chocolate_milk
|
||||
name = "Chocolate Milk"
|
||||
|
||||
@@ -326,6 +326,9 @@
|
||||
nutriment_factor = 3 * REAGENTS_METABOLISM
|
||||
color = "#403010" // rgb: 64, 48, 16
|
||||
taste_description = "creamy chocolate"
|
||||
glass_icon_state = "chocolateglass"
|
||||
glass_name = "glass of chocolate"
|
||||
glass_desc = "Tasty."
|
||||
|
||||
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/M)
|
||||
if (M.bodytemperature < 310)//310 is the normal bodytemp. 310.055
|
||||
|
||||
@@ -6,6 +6,10 @@
|
||||
metabolization_rate = 5 //fast rate so it disappears fast.
|
||||
taste_description = "iron"
|
||||
taste_mult = 1.3
|
||||
glass_icon_state = "glass_red"
|
||||
glass_name = "glass of tomato juice"
|
||||
glass_desc = "Are you sure this is tomato juice?"
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
|
||||
/datum/reagent/blood/reaction_mob(mob/M, method=TOUCH, reac_volume)
|
||||
if(data && data["viruses"])
|
||||
@@ -81,6 +85,7 @@
|
||||
color = "#FF9966"
|
||||
description = "You don't even want to think about what's in here."
|
||||
taste_description = "gross iron"
|
||||
shot_glass_icon_state = "shotglassred"
|
||||
|
||||
/datum/reagent/vaccine
|
||||
//data must contain virus type
|
||||
@@ -107,6 +112,10 @@
|
||||
color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha)
|
||||
taste_description = "water"
|
||||
var/cooling_temperature = 2
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "glass of Water"
|
||||
glass_desc = "The father of all refreshments."
|
||||
shot_glass_icon_state = "shotglassclear"
|
||||
|
||||
/*
|
||||
* Water reaction to turf
|
||||
@@ -168,6 +177,9 @@
|
||||
id = "holywater"
|
||||
description = "Water blessed by some deity."
|
||||
color = "#E0E8EF" // rgb: 224, 232, 239
|
||||
glass_icon_state = "glass_clear"
|
||||
glass_name = "glass of Holy Water"
|
||||
glass_desc = "A glass of holy water."
|
||||
|
||||
/datum/reagent/water/holywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
if(is_servant_of_ratvar(M))
|
||||
@@ -858,7 +870,7 @@
|
||||
to_chat(M, "<span class='warning'>You feel unstable...</span>")
|
||||
M.Jitter(2)
|
||||
current_cycle = 1
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/do_teleport, M, get_turf(M), 5, asoundin = 'sound/effects/phasein.ogg'), 30)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/do_teleport, M, get_turf(M), 5, null, null, null, 'sound/effects/phasein.ogg'), 30)
|
||||
..()
|
||||
|
||||
/datum/reagent/aluminium
|
||||
@@ -883,6 +895,9 @@
|
||||
description = "Required for welders. Flamable."
|
||||
color = "#660000" // rgb: 102, 0, 0
|
||||
taste_description = "gross metal"
|
||||
glass_icon_state = "dr_gibb_glass"
|
||||
glass_name = "glass of welder fuel"
|
||||
glass_desc = "Unless you're an industrial tool, this is probably not safe for consumption."
|
||||
|
||||
/datum/reagent/fuel/reaction_mob(mob/living/M, method=TOUCH, reac_volume)//Splashing people with welding fuel to make them easy to ignite!
|
||||
if(!isliving(M))
|
||||
|
||||
@@ -304,6 +304,9 @@
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
taste_description = "piss water"
|
||||
glass_icon_state = "beerglass"
|
||||
glass_name = "glass of beer"
|
||||
glass_desc = "A freezing pint of beer."
|
||||
|
||||
/datum/reagent/toxin/beer2/on_mob_life(mob/living/M)
|
||||
switch(current_cycle)
|
||||
|
||||
@@ -340,11 +340,11 @@
|
||||
if(istype(I, /obj/item/projectile))
|
||||
return
|
||||
if(prob(75))
|
||||
I.loc = src
|
||||
visible_message("<span class='notice'>\the [I] lands in \the [src].</span>")
|
||||
I.forceMove(src)
|
||||
visible_message("<span class='notice'>[I] lands in [src].</span>")
|
||||
update_icon()
|
||||
else
|
||||
visible_message("<span class='notice'>\the [I] bounces off of \the [src]'s rim!</span>")
|
||||
visible_message("<span class='notice'>[I] bounces off of [src]'s rim!</span>")
|
||||
return 0
|
||||
else
|
||||
return ..(mover, target, height)
|
||||
|
||||
Reference in New Issue
Block a user