Fixes winter coat hood sprite appearing as a bucket.

Removing Smile, Swedish, Chav and Elvis from genetics. These mutation can still be acquired via adminspawned dna injector. Added a dna injector for laser eyes mutation.
Fixes using razor on non human shaving non existent hair.
Fixes chair deconstruction dropping too much metal.
Adding some necessary check for mob buckling in gibber, processor and monkey recycler code, and in ventcrawling proc to fix being able to enter pipe while feeding as a slime.
Fixes snapcorn not giving seeds.
Fixes portable chem dispenser.
This commit is contained in:
phil235
2015-10-17 16:29:11 +02:00
parent cb58e8dca3
commit a7bc8475d8
13 changed files with 113 additions and 34 deletions
+1 -1
View File
@@ -64,7 +64,7 @@
#define DNA_FACIAL_HAIR_STYLE_BLOCK 6
#define DNA_HAIR_STYLE_BLOCK 7
#define DNA_STRUC_ENZYMES_BLOCKS 24
#define DNA_STRUC_ENZYMES_BLOCKS 20
#define DNA_UNIQUE_ENZYMES_LEN 32
//Transformation proc stuff
+4
View File
@@ -461,6 +461,7 @@
/datum/mutation/human/smile
name = "Smile"
quality = MINOR_NEGATIVE
dna_block = NON_SCANNABLE
text_gain_indication = "<span class='notice'>You feel so happy. Nothing can be wrong with anything. :)</span>"
text_lose_indication = "<span class='notice'>Everything is terrible again. :(</span>"
@@ -547,6 +548,7 @@
/datum/mutation/human/swedish
name = "Swedish"
quality = MINOR_NEGATIVE
dna_block = NON_SCANNABLE
text_gain_indication = "<span class='notice'>You feel Swedish, however that works.</span>"
text_lose_indication = "<span class='notice'>The feeling of Swedishness passes.</span>"
@@ -560,6 +562,7 @@
/datum/mutation/human/chav
name = "Chav"
quality = MINOR_NEGATIVE
dna_block = NON_SCANNABLE
text_gain_indication = "<span class='notice'>Ye feel like a reet prat like, innit?</span>"
text_lose_indication = "<span class='notice'>You no longer feel like being rude and sassy.</span>"
@@ -592,6 +595,7 @@
/datum/mutation/human/elvis
name = "Elvis"
quality = MINOR_NEGATIVE
dna_block = NON_SCANNABLE
text_gain_indication = "<span class='notice'>You feel pretty good, honeydoll.</span>"
text_lose_indication = "<span class='notice'>You feel a little less conversation would be great.</span>"
+3 -1
View File
@@ -120,7 +120,9 @@
/obj/item/weapon/razor/attack(mob/M, mob/user)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.dna.species.id != "human")
user << "<span class='warning'>There is nothing to shave!</span>"
return
var/location = user.zone_sel.selecting
if(location == "mouth")
if(!get_location_accessible(H, location))
@@ -373,4 +373,16 @@
name = "\improper DNA injector (Anti-Elvis)"
New()
..()
remove_mutations.Add(mutations_list[ELVIS])
remove_mutations.Add(mutations_list[ELVIS])
/obj/item/weapon/dnainjector/lasereyesmut
name = "\improper DNA injector (Laser Eyes)"
New()
..()
add_mutations.Add(mutations_list[LASEREYES])
/obj/item/weapon/dnainjector/antilasereyes
name = "\improper DNA injector (Anti-Laser Eyes)"
New()
..()
remove_mutations.Add(mutations_list[LASEREYES])
@@ -4,6 +4,7 @@
icon_state = "chair"
buckle_lying = 0 //you sit in a chair, not lay
burn_state = -1 //Not Burnable
buildstackamount = 1
/obj/structure/bed/chair/New()
..()
@@ -27,6 +28,7 @@
SK.loc = E
SK.master = E
qdel(src)
/obj/structure/bed/chair/attack_tk(mob/user)
if(buckled_mob)
..()
@@ -105,6 +107,7 @@
color = rgb(255,255,255)
burn_state = 0 //Burnable
burntime = 30
buildstackamount = 2
var/image/armrest = null
/obj/structure/bed/chair/comfy/New()
@@ -97,23 +97,26 @@
/obj/machinery/gibber/attackby(obj/item/P, mob/user, params)
if (istype(P, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = P
if(!istype(G.affecting, /mob/living/carbon/))
if(!iscarbon(G.affecting))
user << "<span class='danger'>This item is not suitable for the gibber!</span>"
return
if(G.affecting.abiotic(1) && !ignore_clothing)
var/mob/living/carbon/C = G.affecting
if(C.buckled ||C.buckled_mob)
user << "<span class='warning'>[C] is attached to something!</span>"
return
if(C.abiotic(1) && !ignore_clothing)
user << "<span class='danger'>Subject may not have abiotic items on.</span>"
return
user.visible_message("<span class='danger'>[user] starts to put [G.affecting] into the gibber!</span>")
src.add_fingerprint(user)
if(do_after(user, gibtime, target = src) && G && G.affecting && !occupant)
if(do_after(user, gibtime, target = src) && G && G.affecting && G.affecting == C && !C.buckled && !C.buckled_mob && !occupant)
user.visible_message("<span class='danger'>[user] stuffs [G.affecting] into the gibber!</span>")
var/mob/M = G.affecting
if(M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.loc = src
src.occupant = M
if(C.client)
C.client.perspective = EYE_PERSPECTIVE
C.client.eye = src
C.loc = src
occupant = C
qdel(G)
update_icon()
@@ -138,7 +141,7 @@
set name = "empty gibber"
set src in oview(1)
if(usr.stat || !usr.canmove || usr.restrained())
if(usr.incapacitated())
return
src.go_out()
add_fingerprint(usr)
@@ -56,23 +56,26 @@
if(!user.Adjacent(G.affecting))
return
var/grabbed = G.affecting
if(istype(grabbed, /mob/living/carbon/monkey))
if(ismonkey(grabbed))
var/mob/living/carbon/monkey/target = grabbed
if(target.stat == 0)
user << "<span class='danger'>The monkey is struggling far too much to put it in the recycler.</span>"
else
if(!user.drop_item())
return
qdel(target)
user << "<span class='notice'>You stuff the monkey into the machine.</span>"
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
var/offset = prob(50) ? -2 : 2
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
use_power(500)
src.grinded++
sleep(50)
pixel_x = initial(pixel_x) //return to its spot after shaking
user << "<span class='notice'>The machine now has [grinded] monkey\s worth of material stored.</span>"
user << "<span class='warning'>The monkey is struggling far too much to put it in the recycler.</span>"
return
if(target.buckled || target.buckled_mob)
user << "<span class='warning'>The monkey is attached to something.</span>"
return
if(!user.drop_item())
return
qdel(target)
user << "<span class='notice'>You stuff the monkey into the machine.</span>"
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
var/offset = prob(50) ? -2 : 2
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
use_power(500)
grinded++
sleep(50)
pixel_x = initial(pixel_x) //return to its spot after shaking
user << "<span class='notice'>The machine now has [grinded] monkey\s worth of material stored.</span>"
else
user << "<span class='danger'>The machine only accepts monkeys!</span>"
@@ -152,21 +152,25 @@
default_deconstruction_crowbar(O)
var/what = O
if (istype(O, /obj/item/weapon/grab))
var/atom/movable/what = O
if(istype(O, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = O
if(!user.Adjacent(G.affecting))
return
if(G.affecting.buckled || G.affecting.buckled_mob)
user << "<span class='warning'>[G.affecting] is attached to somthing!</span>"
return
what = G.affecting
var/datum/food_processor_process/P = select_recipe(what)
if (!P)
user << "<span class='warning'>That probably won't blend!</span>"
return 1
user.visible_message("[user] put [what] into [src].", \
"You put the [what] into [src].")
user.drop_item()
what:loc = src
what.loc = src
return
/obj/machinery/processor/attack_hand(mob/user)
@@ -310,6 +310,7 @@
return
/obj/item/weapon/grown/snapcorn
seed = /obj/item/seeds/snapcornseed
name = "snap corn"
desc = "A cob with snap pops"
icon_state = "snapcorn"
+9
View File
@@ -18,6 +18,9 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/components/unary
if(buckled_mob)
src << "You can't vent crawl with [buckled_mob] on you!"
return
if(buckled)
src << "You can't vent crawl while buckled!"
return
var/obj/machinery/atmospherics/components/unary/vent_found
@@ -68,6 +71,12 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/components/unary
else
src << "<span class='warning'>This ventilation duct is not connected to anything!</span>"
/mob/living/simple_animal/slime/handle_ventcrawl(atom/A)
if(buckled)
src << "<i>I can't vent crawl while feeding...</i>"
return
..()
/mob/living/proc/add_ventcrawl(obj/machinery/atmospherics/components/unary/starting_machine)
if(!istype(starting_machine) || !starting_machine.returnPipenet())
+4 -3
View File
@@ -73,7 +73,7 @@
*/
/obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null)
if(stat & (BROKEN)) return
if(user.stat || user.restrained()) return
if(user.incapacitated()) return
ui = SSnano.push_open_or_new_ui(user, src, ui_key, ui, "chem_dispenser.tmpl", "[uiname]", 490, 710, 0)
@@ -100,7 +100,7 @@
data["beakerMaxVolume"] = null
var chemicals[0]
for (var/re in dispensable_reagents)
for(var/re in dispensable_reagents)
var/datum/reagent/temp = chemical_reagents_list[re]
if(temp)
chemicals.Add(list(list("title" = temp.name, "id" = temp.id, "commands" = list("dispense" = temp.id)))) // list in a list because Byond merges the first list...
@@ -215,7 +215,8 @@
recharge_delay /= time/2 //delay between recharges, double the usual time on lowest 50% less than usual on highest
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
for(i=1, i<=M.rating, i++)
dispensable_reagents = sortList(dispensable_reagents | special_reagents[i])
dispensable_reagents |= special_reagents[i]
dispensable_reagents = sortList(dispensable_reagents)
/obj/machinery/chem_dispenser/constructable/attackby(var/obj/item/I, var/mob/user, params)
..()
@@ -0,0 +1,37 @@
################################
# Example Changelog File
#
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
#
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
# When it is, any changes listed below will disappear.
#
# Valid Prefixes:
# bugfix
# wip (For works in progress)
# tweak
# soundadd
# sounddel
# rscadd (general adding of nice things)
# rscdel (general deleting of nice things)
# imageadd
# imagedel
# spellcheck (typo fixes)
# experiment
# tgs (TG-ported fixes?)
#################################
# Your name.
author: N3X15
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
delete-after: True
# Any changes you've made. See valid prefix list above.
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
# SCREW THIS UP AND IT WON'T WORK.
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
changes:
- rscadd: "Added a changelog editing system that should cause fewer conflicts and more accurate timestamps."
- rscdel: "Killed innocent kittens."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 122 KiB