Merge branch 'incremental_tg' r5200 into bs12_with_tgport

Conflicts:
	baystation12.dme
	code/__HELPERS/global_lists.dm
	code/__HELPERS/type2type.dm
	code/__HELPERS/unsorted.dm
	code/datums/datumvars.dm
	code/datums/disease.dm
	code/datums/organs/organ_external.dm
	code/datums/supplypacks.dm
	code/defines/obj.dm
	code/game/area/areas.dm
	code/game/atoms.dm
	code/game/gamemodes/cult/cult_structures.dm
	code/game/gamemodes/cult/runes.dm
	code/game/gamemodes/events.dm
	code/game/gamemodes/events/ninja_equipment.dm
	code/game/gamemodes/events/space_ninja.dm
	code/game/gamemodes/game_mode.dm
	code/game/gamemodes/gameticker.dm
	code/game/hud.dm
	code/game/jobs/access.dm
	code/game/jobs/job/civilian.dm
	code/game/machinery/alarm.dm
	code/game/machinery/cloning.dm
	code/game/machinery/computer/cloning.dm
	code/game/machinery/computer/medical.dm
	code/game/machinery/computer/syndicate_shuttle.dm
	code/game/machinery/telecomms/broadcaster.dm
	code/game/machinery/telecomms/machine_interactions.dm
	code/game/objects/effects/decals/contraband.dm
	code/game/objects/effects/signs.dm
	code/game/objects/items/devices/PDA/PDA.dm
	code/game/objects/items/devices/PDA/cart.dm
	code/game/objects/items/weapons/photography.dm
	code/game/objects/structures/door_assembly.dm
	code/game/objects/structures/window.dm
	code/game/sound.dm
	code/game/verbs/ooc.dm
	code/global.dm
	code/modules/DetectiveWork/detective_work.dm
	code/modules/DetectiveWork/evidence.dm
	code/modules/DetectiveWork/footprints_and_rag.dm
	code/modules/DetectiveWork/scanner.dm
	code/modules/admin/player_panel.dm
	code/modules/admin/verbs/adminhelp.dm
	code/modules/admin/verbs/adminpm.dm
	code/modules/awaymissions/gateway.dm
	code/modules/client/client defines.dm
	code/modules/client/client procs.dm
	code/modules/client/preferences.dm
	code/modules/clothing/spacesuits/rig.dm
	code/modules/mining/machine_processing.dm
	code/modules/mining/machine_stacking.dm
	code/modules/mining/mint.dm
	code/modules/mining/ores_coins.dm
	code/modules/mining/satchel_ore_boxdm.dm
	code/modules/mob/living/carbon/alien/alien.dm
	code/modules/mob/living/carbon/carbon.dm
	code/modules/mob/living/carbon/carbon_defines.dm
	code/modules/mob/living/carbon/human/human_damage.dm
	code/modules/mob/living/carbon/human/life.dm
	code/modules/mob/living/carbon/human/update_icons.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/say.dm
	code/modules/mob/mob.dm
	code/modules/mob/mob_cleanup.dm
	code/modules/mob/mob_defines.dm
	code/modules/mob/mob_transformation_simple.dm
	code/modules/mob/new_player/login.dm
	code/modules/mob/new_player/new_player.dm
	code/modules/mob/new_player/preferences_setup.dm
	code/modules/mob/new_player/savefile.dm
	code/modules/mob/new_player/sprite_accessories.dm
	code/modules/paperwork/folders.dm
	code/modules/paperwork/paper.dm
	code/modules/paperwork/photocopier.dm
	code/modules/projectiles/guns/energy/special.dm
	code/modules/projectiles/guns/projectile/automatic.dm
	code/setup.dm
	code/unused/mining/datum_processing_recipe.dm
	code/unused/powerarmor/powerarmor.dm
	code/world.dm
	html/changelog.html
	icons/effects/96x96.dmi
	icons/mob/head.dmi
	icons/mob/items_lefthand.dmi
	icons/mob/items_righthand.dmi
	icons/mob/suit.dmi
	icons/obj/clothing/hats.dmi
	icons/obj/clothing/suits.dmi
	icons/obj/hydroponics.dmi
	icons/obj/items.dmi
	icons/turf/areas.dmi
	icons/turf/walls.dmi
	maps/RandomZLevels/fileList.txt
	maps/RandomZLevels/spacebattle.dmm

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-01-07 00:23:22 +10:00
338 changed files with 21863 additions and 19941 deletions
+1 -1
View File
@@ -357,7 +357,7 @@ datum
if(R.id == "blood" && reagent == "blood")
if(R.data && data)
if(R.data["viruses"] && data["viruses"])
if(R.data["viruses"] || data["viruses"])
var/list/mix1 = R.data["viruses"]
var/list/mix2 = data["viruses"]
+5 -5
View File
@@ -728,11 +728,11 @@
var/list/blend_items = list (
//Sheets
/obj/item/stack/sheet/plasma = list("plasma" = 20),
/obj/item/stack/sheet/uranium = list("uranium" = 20),
/obj/item/stack/sheet/clown = list("banana" = 20),
/obj/item/stack/sheet/silver = list("silver" = 20),
/obj/item/stack/sheet/gold = list("gold" = 20),
/obj/item/stack/sheet/mineral/plasma = list("plasma" = 20),
/obj/item/stack/sheet/mineral/uranium = list("uranium" = 20),
/obj/item/stack/sheet/mineral/clown = list("banana" = 20),
/obj/item/stack/sheet/mineral/silver = list("silver" = 20),
/obj/item/stack/sheet/mineral/gold = list("gold" = 20),
/obj/item/weapon/grown/nettle = list("sacid" = 0),
/obj/item/weapon/grown/deathnettle = list("pacid" = 0),
+3 -16
View File
@@ -139,7 +139,7 @@ datum
blood_prop.blood_DNA[self.data["blood_DNA"]] = self.data["blood_type"]
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = new D.type(D)
var/datum/disease/newVirus = D.Copy()
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
@@ -150,32 +150,19 @@ datum
blood_prop = new(T)
blood_prop.blood_DNA["Non-Human DNA"] = "A+"
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = new D.type(D)
var/datum/disease/newVirus = D.Copy()
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
/*
if(T.density==0)
newVirus.spread_type = CONTACT_FEET
else
newVirus.spread_type = CONTACT_HANDS
*/
else if(istype(self.data["donor"], /mob/living/carbon/alien))
var/obj/effect/decal/cleanable/xenoblood/blood_prop = locate() in T
if(!blood_prop)
blood_prop = new(T)
blood_prop.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
for(var/datum/disease/D in self.data["viruses"])
var/datum/disease/newVirus = new D.type(D)
var/datum/disease/newVirus = D.Copy()
blood_prop.viruses += newVirus
newVirus.holder = blood_prop
/*
if(T.density==0)
newVirus.spread_type = CONTACT_FEET
else
newVirus.spread_type = CONTACT_HANDS
*/
return
/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
+7 -9
View File
@@ -475,7 +475,7 @@ datum
result_amount = 1
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/stack/sheet/plasma(location)
new /obj/item/stack/sheet/mineral/plasma(location)
return
virus_food
@@ -489,8 +489,8 @@ datum
name = "Mix Virus"
id = "mixvirus"
result = "blood"
required_reagents = list("blood" = 1, "virusfood" = 5)
result_amount = 1
required_reagents = list("virusfood" = 5)
required_catalysts = list("blood")
var/level = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -501,20 +501,19 @@ datum
if(D)
D.Evolve(level - rand(0, 1))
holder.del_reagent(id)
mix_virus_2
name = "Mix Virus 2"
id = "mixvirus2"
required_reagents = list("blood" = 1, "mutagen" = 5)
required_reagents = list("mutagen" = 5)
level = 4
rem_virus
name = "Devolve Virus"
id = "remvirus"
required_reagents = list("blood" = 1, "synaptizine" = 5)
required_reagents = list("synaptizine" = 5)
on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -523,7 +522,6 @@ datum
var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"]
if(D)
D.Devolve()
holder.del_reagent(id)
@@ -738,7 +736,7 @@ datum
on_reaction(var/datum/reagents/holder, var/created_volume)
holder.clear_reagents()
var/virus = pick(/datum/disease/flu, /datum/disease/cold, \
var/virus = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, \
/datum/disease/pierrot_throat, /datum/disease/fake_gbs, \
/datum/disease/brainrot, /datum/disease/magnitis)
@@ -815,7 +813,7 @@ datum
id = "m_tele"
result = null
required_reagents = list("sacid" = 1, "blood" = 1)
required_catalysts = list("plasma" = 1, "mutagen" = 1)
required_catalysts = list("plasma" = 1)
result_amount = 1
required_container = /obj/item/metroid_core
required_other = 4
@@ -15,79 +15,94 @@
var/charge_tick = 0
var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
New()
..()
processing_objects.Add(src)
var/list/datum/reagents/reagent_list = list()
var/list/reagent_ids = list("doctorsdelight", "inaprovaline", "spaceacillin")
//var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "anti_toxin", "inaprovaline", "spaceacillin")
/obj/item/weapon/reagent_containers/borghypo/New()
..()
for(var/R in reagent_ids)
add_reagent(R)
processing_objects.Add(src)
Del()
processing_objects.Remove(src)
..()
/obj/item/weapon/reagent_containers/borghypo/Del()
processing_objects.Remove(src)
..()
process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
/obj/item/weapon/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
charge_tick++
if(charge_tick < recharge_time) return 0
charge_tick = 0
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
if(mode == 1 && reagents.total_volume < 30) //Don't recharge reagents and drain power if the storage is full.
R.cell.use(charge_cost) //Take power from borg...
reagents.add_reagent("doctorsdelight",5) //And fill hypo with reagent.
if(mode == 2 && reagents.total_volume < 30)
R.cell.use(charge_cost)
reagents.add_reagent("inaprovaline", 5)
if(mode == 3 && reagents.total_volume < 30)
R.cell.use(charge_cost)
reagents.add_reagent("spaceacillin", 5)
//update_icon()
return 1
if(isrobot(src.loc))
var/mob/living/silicon/robot/R = src.loc
if(R && R.cell)
var/datum/reagents/RG = reagent_list[mode]
if(RG.total_volume < RG.maximum_volume) //Don't recharge reagents and drain power if the storage is full.
R.cell.use(charge_cost) //Take power from borg...
RG.add_reagent(reagent_ids[mode], 5) //And fill hypo with reagent.
//update_icon()
return 1
// Purely for testing purposes I swear~
/*
/obj/item/weapon/reagent_containers/borghypo/verb/add_cyanide()
set src in world
add_reagent("cyanide")
*/
// Use this to add more chemicals for the borghypo to produce.
/obj/item/weapon/reagent_containers/borghypo/proc/add_reagent(var/reagent)
reagent_ids |= reagent
var/datum/reagents/RG = new(30)
RG.my_atom = src
reagent_list += RG
var/datum/reagents/R = reagent_list[reagent_list.len]
R.add_reagent(reagent, 30)
/obj/item/weapon/reagent_containers/borghypo/attack(mob/M as mob, mob/user as mob)
if(!reagents.total_volume)
var/datum/reagents/R = reagent_list[mode]
if(!R.total_volume)
user << "\red The injector is empty."
return
if (!( istype(M, /mob) ))
return
if (reagents.total_volume)
if (R.total_volume)
user << "\blue You inject [M] with the injector."
M << "\red You feel a tiny prick!"
src.reagents.reaction(M, INGEST)
R.reaction(M, INGEST)
if(M.reagents)
var/trans = reagents.trans_to(M, amount_per_transfer_from_this)
user << "\blue [trans] units injected. [reagents.total_volume] units remaining."
var/trans = R.trans_to(M, amount_per_transfer_from_this)
user << "\blue [trans] units injected. [R.total_volume] units remaining."
return
/obj/item/weapon/reagent_containers/borghypo/attack_self(mob/user as mob)
playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) //Change the mode
if(mode == 1)
mode = 2
charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes.
reagents.clear_reagents() //Flushes whatever was in the storage previously, so you don't get chems all mixed up.
user << "\blue Synthesizer is now producing 'Inaprovaline'."
return
if(mode == 2)
mode = 3
charge_tick = 0
reagents.clear_reagents()
user << "\blue Synthesizer is now producing 'Spaceacillin'."
return
if(mode == 3)
mode++
if(mode > reagent_list.len)
mode = 1
charge_tick = 0
reagents.clear_reagents()
user << "\blue Synthesizer is now producing 'Doctor's Delight'."
return
charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes.
var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]]
user << "\blue Synthesizer is now producing '[R.name]'."
return
/obj/item/weapon/reagent_containers/borghypo/examine()
set src in view()
..()
if (!(usr in view(2)) && usr!=src.loc) return
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
var/empty = 1
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
usr << "\blue It currently has [R.volume] units of [R.name] stored."
else
empty = 0
if(empty)
usr << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more."
@@ -118,7 +118,6 @@
usr << "\blue \The [src] was bitten multiple times!"
/obj/item/weapon/reagent_containers/food/snacks/attackby(obj/item/weapon/W as obj, mob/user as mob)
if((slices_num <= 0 || !slices_num) || !slice_path)
return 1
var/inaccurate = 0
@@ -137,6 +136,8 @@
)
inaccurate = 1
else if(W.w_class <= 2 && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
if(!iscarbon(user))
return 1
user << "\red You slip [W] inside [src]."
user.u_equip(W)
if ((user.client && user.s_active != src))
@@ -223,7 +223,7 @@
..()
spawn(5) //So potency can be set in the proc that creates these crops
reagents.add_reagent("nutriment", round((potency / 10), 1))
reagents.add_reagent("radium", 3+round(potency / 5, 1))
reagents.add_reagent("uranium", 3+round(potency / 5, 1))
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/glowberries/Del()
@@ -333,8 +333,22 @@
New()
..()
spawn(5) //So potency can be set in the proc that creates these crops
reagents.maximum_volume = 20
reagents.add_reagent("nutriment", 1+round((potency / 10), 1))
bitesize = 1+round(reagents.total_volume / 2, 1)
bitesize = reagents.maximum_volume // Always eat the apple in one
/obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned
seed = "/obj/item/seeds/poisonedappleseed"
name = "apple"
desc = "It's a little piece of Eden."
icon_state = "apple"
potency = 15
New()
..()
spawn(5) //So potency can be set in the proc that creates these crops
reagents.maximum_volume = 20
reagents.add_reagent("cyanide", 1+round((potency / 5), 1))
bitesize = reagents.maximum_volume // Always eat the apple in one
/obj/item/weapon/reagent_containers/food/snacks/grown/goldapple
seed = "/obj/item/seeds/goldappleseed"
@@ -361,6 +375,8 @@
desc = "It's full of watery goodness."
icon_state = "watermelon"
potency = 10
slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice
slices_num = 5
New()
..()
spawn(5) //So potency can be set in the proc that creates these crops
@@ -612,6 +628,18 @@
reagents.add_reagent("nutriment", 1+round((potency / 25), 1))
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod
seed = "/obj/item/seeds/kudzuseed"
name = "kudzu pod"
desc = "<I>Pueraria Virallis</I>: An invasive species with vines that rapidly creep and wrap around whatever they contact."
icon_state = "kudzupod"
New()
..()
spawn(5) //So potency can be set in the proc that creates these crops
reagents.add_reagent("nutriment",1+round((potency / 50), 1))
reagents.add_reagent("anti_toxin",1+round((potency / 25), 1))
bitesize = 1+round(reagents.total_volume / 2, 1)
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper
seed = "/obj/item/seeds/icepepperseed"
name = "ice-pepper"
@@ -818,6 +846,7 @@
user.SetLuminosity(round(user.luminosity + (potency/10),1))
SetLuminosity(round(potency/10,1))
// *************************************
// Complex Grown Object Defines -
// Putting these at the bottom so they don't clutter the list up. -Cheridan
@@ -925,15 +954,4 @@
new/obj/effect/decal/cleanable/oil(src.loc)
src.visible_message("<span class='notice'>The [src.name] has been squashed, causing a distortion in space-time.</span>","<span class='moderate'>You hear a splat and a crackle.</span>")
del(src)
return
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon
name = "Watermelon"
icon_state = "A juicy watermelon"
icon_state = "watermelon"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice
slices_num = 5
New()
..()
reagents.add_reagent("nutriment", 10)
bitesize = 2
return
@@ -77,6 +77,16 @@
..()
reagents.add_reagent("anti_toxin", 30)
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
name = "unstable mutagen bottle"
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle20"
New()
..()
reagents.add_reagent("mutagen", 30)
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
@@ -108,6 +118,39 @@
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/epiglottis_virion
name = "Epiglottis virion culture bottle"
desc = "A small bottle. Contains Epiglottis virion culture in synthblood medium."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
New()
..()
var/datum/disease/F = new /datum/disease/advance/heal(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/liver_enhance_virion
name = "Liver enhancement virion culture bottle"
desc = "A small bottle. Contains liver enhancement virion culture in synthblood medium."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
New()
..()
var/datum/disease/F = new /datum/disease/advance/voice_change(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/hullucigen_virion
name = "Hullucigen virion culture bottle"
desc = "A small bottle. Contains hullucigen virion culture in synthblood medium."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle3"
New()
..()
var/datum/disease/F = new /datum/disease/advance/hullucigen(0)
var/list/data = list("viruses"= list(F))
reagents.add_reagent("blood", 20, data)
/obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat
name = "Pierrot's Throat culture bottle"
desc = "A small bottle. Contains H0NI<42 virion culture in synthblood medium."
@@ -10,7 +10,7 @@
w_class = 2.0
throw_speed = 2
throw_range = 10
amount_per_transfer_from_this = 5
amount_per_transfer_from_this = 10
volume = 250
possible_transfer_amounts = null
@@ -71,6 +71,11 @@
log_game("[key_name(user)] fired Space lube from a spray bottle.")
return
/obj/item/weapon/reagent_containers/spray/attack_self(var/mob/user)
amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10)
user << "<span class='notice'>You switched [amount_per_transfer_from_this == 10 ? "on" : "off"] the pressure nozzle. You'll now use [amount_per_transfer_from_this] units per spray.</span>"
/obj/item/weapon/reagent_containers/spray/examine()
set src in usr
@@ -79,6 +84,16 @@
usr << "[round(R.volume)] units of [R.name] left."
return
/obj/item/weapon/reagent_containers/spray/verb/empty()
set name = "Empty Spray Bottle"
set category = "Object"
set src in usr
if(isturf(usr.loc))
usr << "<span class='notice'>You empty the [src] onto the floor.</span>"
reagents.reaction(usr.loc)
spawn(5) src.reagents.clear_reagents()
//space cleaner
/obj/item/weapon/reagent_containers/spray/cleaner
+1 -3
View File
@@ -84,9 +84,7 @@
if(D.reagents)
D.reagents.trans_to(M, 15)
M.take_organ_damage(5)
for(var/mob/O in viewers(world.view, D))
O.show_message("\red [M.name] is hit by the syringe!", 1)
M.visible_message("<span class='danger'>[M] is hit by the syringe!</span>")
del(D)
if(D)