Merge branch 'master' of git://github.com/Abi79/tgstation13-git

Conflicts:
	baystation12.dme
	code/defines/mob/mob.dm
	code/defines/obj/vending.dm
	code/game/atom_procs.dm
	code/game/dna.dm
	code/game/machinery/computer/aifixer.dm
	code/game/vote.dm
	code/modules/chemical/Chemistry-Machinery.dm
	code/modules/chemical/Chemistry-Reagents.dm
	code/modules/mob/living/carbon/metroid/life.dm
	html/changelog.html
	icons/obj/stationobjs.dmi
	interface/skin.dmf
	maps/tgstation.2.0.8.dmm
This commit is contained in:
Miniature
2011-12-03 19:28:10 +10:30
179 changed files with 8711 additions and 8146 deletions
+2 -2
View File
@@ -319,7 +319,7 @@ mob/proc/flash_weak_pain()
switch(src.damtype)
if("brute")
if(istype(src, /mob/living/carbon/metroid))
M.bruteloss += power
M.adjustBrainLoss(power)
else
@@ -376,7 +376,7 @@ mob/proc/flash_weak_pain()
M << "\red You stab yourself in the eye."
M.sdisabilities |= 1
M.weakened += 4
M.bruteloss += 10
M.adjustBruteLoss(10)
*/
if(M != user)
for(var/mob/O in (viewers(M) - user - M))
+1 -1
View File
@@ -79,7 +79,7 @@
/obj/item/weapon/reagent_containers/glass/bottle/robot
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15)
possible_transfer_amounts = list(5,10,15,25,30,50,100)
flags = FPRINT | TABLEPASS | OPENCONTAINER
volume = 60
var
+37 -29
View File
@@ -2,7 +2,7 @@
/obj/item/trash
icon = 'trash.dmi'
w_class = 1.0
desc = "It's \a trash"
desc = "This is rubbish."
raisins
name = "4no raisins"
icon_state= "4no_raisins"
@@ -50,35 +50,16 @@
/obj/item/trash/attack(mob/M as mob, mob/living/user as mob)
return
/obj/item/trash/attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/trash/O in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += O;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
/obj/item/weapon/trashbag
icon = 'trash.dmi'
icon_state = "trashbag0"
item_state = "trashbag"
name = "Trash bag"
desc = "A heavy-duty, no fun allowed trash bag."
var/mode = 1; //0 = pick one at a time, 1 = pick all on tile
var/capacity = 25; //the number of trash it can carry.
flags = FPRINT | TABLEPASS | ONBELT
w_class = 1
w_class = 2.0
/obj/item/weapon/trashbag/update_icon()
if(contents.len == 0)
@@ -89,12 +70,39 @@
icon_state = "trashbag2"
else icon_state = "trashbag3"
/obj/item/weapon/trashbag/attackby(obj/item/weapon/W as obj, mob/user as mob)
/obj/item/weapon/trashbag/attackby(obj/item/W as obj, mob/living/user as mob)
..()
if (istype(W, /obj/item/trash))
var/obj/item/trash/O = W
src.contents += O;
return
if (contents.len < capacity)
if (istype(W, /obj/item))
if (W.w_class <= 2)
var/obj/item/O = W
src.contents += O
else
user << "\blue The bag is full!"
/obj/item/weapon/trashbag/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
if(istype(target, /obj/item))
var/obj/item/W = target
if(W.w_class <= 2)
if(mode == 1)
if(contents.len < capacity) //slightly redundant, but it makes it prettier in the chatbox. -Pete
user << "\blue You pick up all the trash."
for(var/obj/item/O in get_turf(W))
if(contents.len < capacity)
if(O.w_class <= 2)
contents += O;
else
user << "\blue The bag is full!"
break
else
user << "\blue The bag is full!"
else
if(contents.len < capacity)
contents += W;
else
user << "\blue The bag is full!"
update_icon()
return
/obj/item/weapon/trashbag/verb/toggle_mode()
set name = "Switch Bag Method"
@@ -104,5 +112,5 @@
switch (mode)
if(1)
usr << "The bag now picks up all trash in a tile at once."
if(0)
usr << "The bag now picks up one trash at a time."
else
usr << "The bag now picks up one piece of trash at a time."
@@ -390,7 +390,7 @@ AI MODULES
/obj/item/weapon/aiModule/corp
name = "'Corporate' Core AI Module"
desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'"
origin_tech = null //Adminbus only for now, need to determine how the players take to this. --NEO
origin_tech = "programming=3;materials=4"
/obj/item/weapon/aiModule/corp/transmitInstructions(var/mob/living/silicon/ai/target, var/mob/sender)
@@ -129,23 +129,6 @@ ZIPPO
else if(istype(W, /obj/item/weapon/match) && (W:lit > 0))
light("\red [user] lights their [name] with their [W]. How poor can you get?")
else if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/clothing/mask/cigarette/C in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += C;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
@@ -291,27 +274,6 @@ ZIPPO
return
attackby(obj/item/weapon/W as obj, mob/user as mob)
..()
if (istype(W, /obj/item/weapon/trashbag))
var/obj/item/weapon/trashbag/S = W
if (S.mode == 1)
for (var/obj/item/weapon/cigpacket/CP in locate(src.x,src.y,src.z))
if (S.contents.len < S.capacity)
S.contents += CP;
else
user << "\blue The bag is full."
break
user << "\blue You pick up all trash."
else
if (S.contents.len < S.capacity)
S.contents += src;
else
user << "\blue The bag is full."
S.update_icon()
return
/////////
//ZIPPO//
+25 -23
View File
@@ -22,31 +22,33 @@
/obj/item/weapon/dnainjector/proc/inject(mob/M as mob)
M.radiation += rand(20,50)
if (dnatype == "ui")
if (!block) //isolated block?
if (ue) //unique enzymes? yes
M.dna.uni_identity = dna
updateappearance(M, M.dna.uni_identity)
M.real_name = ue
M.name = ue
uses--
else //unique enzymes? no
M.dna.uni_identity = dna
if (!(M.mutations & HUSK)) // prevents husks from having their DNA changed
if (dnatype == "ui")
if (!block) //isolated block?
if (ue) //unique enzymes? yes
M.dna.uni_identity = dna
updateappearance(M, M.dna.uni_identity)
M.real_name = ue
M.name = ue
uses--
else //unique enzymes? no
M.dna.uni_identity = dna
updateappearance(M, M.dna.uni_identity)
uses--
else
M.dna.uni_identity = setblock(M.dna.uni_identity,block,dna,3)
updateappearance(M, M.dna.uni_identity)
uses--
else
M.dna.uni_identity = setblock(M.dna.uni_identity,block,dna,3)
updateappearance(M, M.dna.uni_identity)
uses--
if (dnatype == "se")
if (!block) //isolated block?
M.dna.struc_enzymes = dna
domutcheck(M, null)
uses--
else
M.dna.struc_enzymes = setblock(M.dna.struc_enzymes,block,dna,3)
domutcheck(M, null,1)
uses--
if (dnatype == "se")
if (!block) //isolated block?
M.dna.struc_enzymes = dna
domutcheck(M, null)
uses--
else
M.dna.struc_enzymes = setblock(M.dna.struc_enzymes,block,dna,3)
domutcheck(M, null,1)
uses--
spawn(0)//this prevents the collapse of space-time continuum
del(src)
@@ -178,6 +178,21 @@ MOP
reagents = R
R.my_atom = src
obj/item/weapon/mop/proc/clean(turf/simulated/A as turf)
src.reagents.reaction(A,1,10)
A.clean_blood()
for(var/obj/effect/rune/R in A)
del(R)
for(var/obj/effect/decal/cleanable/R in A)
del(R)
for(var/obj/effect/overlay/R in A)
del(R)
/obj/effect/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/mop))
return
..()
/obj/item/weapon/mop/afterattack(atom/A, mob/user as mob)
if (src.reagents.total_volume < 1 || mopcount >= 5)
user << "\blue Your mop is dry!"
@@ -185,25 +200,17 @@ MOP
if (istype(A, /turf/simulated))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red <B>[] begins to clean []</B>", user, A), 1)
O.show_message("\red <B>[user] begins to clean \the [A]</B>", 1)
sleep(40)
clean(A)
user << "\blue You have finished mopping!"
src.reagents.reaction(A,1,10)
A.clean_blood()
for(var/obj/effect/rune/R in A)
del(R)
for(var/obj/effect/decal/cleanable/crayon/R in A)
del(R)
mopcount++
else if (istype(A, /obj/effect/decal/cleanable/blood) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/decal/cleanable/xenoblood) || istype(A, /obj/effect/rune) || istype(A,/obj/effect/decal/cleanable/crayon) || istype(A,/obj/effect/decal/cleanable/vomit) )
else if (istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay) || istype(A, /obj/effect/rune))
for(var/mob/O in viewers(user, null))
O.show_message(text("\red <B>[user] begins to clean [A]</B>"), 1)
sleep(20)
if(A)
user << "\blue You have finished mopping!"
var/turf/U = A.loc
src.reagents.reaction(U)
if(A) del(A)
O.show_message("\red <B>[user] begins to clean \the [get_turf(A)]</B>", 1)
sleep(40)
clean(get_turf(A))
user << "\blue You have finished mopping!"
mopcount++
if(mopcount >= 5) //Okay this stuff is an ugly hack and i feel bad about it.
@@ -253,7 +253,7 @@ CIRCULAR SAW
if(!istype(M))
return ..()
if(M.mutations & HUSK) return ..()
//if(M.mutations & HUSK) return ..()
if((user.mutations & CLUMSY) && prob(50))
M = user