Mining chargers, fruit slices, windoors (#1897)

A bugfix pack of various unrelated stuff. I just poked through the issues list and cherrypicked stuff that looked quick or within my knowledge

Adds some Mech charging pads to the mining outpost. Two inside, one outside near the drills.
I also tweaked the charging pad sprite to remove the background. Basically it had a normal floor tile built into the sprite, which looked dumb on any other kind of floor. i made that part transparent. And the ones in the robotics lab didn't have an actual floor tile under them because of that, someone was lazy when mapping. so i fixed that too.

Fixes fruit slices being inedible. Someone was using Round when dividing their reagents. Protip: never round reagent amounts. the system handles decimals just fine. There was also an error with the loop

Fixes being unable to build multiple windoors on a tile.I fixed it so you can do so, but they cant stack ontop of each other (or existing windows). I also made sure they can't be rotated to stack onto existing border items. And added another rotate verb for windoor assemblies, and fixed their missing ON_BORDER flag.

Nerfed the hallucination chance of paroxetine, to make it less of a meme when prescribed clinically.

Fixes the engiborg inflatables dispenser permanantly breaking if you allow it to run out. That was my fault

fixes #990
fixes #862
fixes #1875
fixes #1842
fixes #1742
This commit is contained in:
NanakoAC
2017-03-18 18:04:13 +00:00
committed by skull132
parent 161457b079
commit fa12422854
9 changed files with 123 additions and 34 deletions

View File

@@ -17,6 +17,7 @@ obj/structure/windoor_assembly
density = 0
dir = NORTH
w_class = 3
flags = ON_BORDER
var/obj/item/weapon/airlock_electronics/electronics = null
@@ -261,18 +262,60 @@ obj/structure/windoor_assembly/Destroy()
//Rotates the windoor assembly clockwise
/obj/structure/windoor_assembly/verb/revrotate()
set name = "Rotate Windoor Assembly"
//These directions are fucked up, apparently dm rotates anticlockwise by default
/obj/structure/windoor_assembly/verb/rotate()
set name = "Rotate Windoor Clockwise"
set category = "Object"
set src in oview(1)
var/targetdir = turn(src.dir, 270)
for(var/obj/obstacle in get_turf(src))
if (obstacle == src)
continue
if((obstacle.flags & ON_BORDER) && obstacle.dir == targetdir)
usr << span("danger", "You can't turn the windoor assembly that way, there's already something there!")
return
if (src.anchored)
usr << "It is fastened to the floor; therefore, you can't rotate it!"
return 0
if(src.state != "01")
update_nearby_tiles(need_rebuild=1) //Compel updates before
src.set_dir(turn(src.dir, 270))
src.set_dir(targetdir)
if(src.state != "01")
update_nearby_tiles(need_rebuild=1)
update_icon()
return
//Rotates the windoor assembly anticlockwise
/obj/structure/windoor_assembly/verb/revrotate()
set name = "Rotate Windoor Anticlockwise"
set category = "Object"
set src in oview(1)
var/targetdir = turn(src.dir, 90)
for(var/obj/obstacle in get_turf(src))
if (obstacle == src)
continue
if((obstacle.flags & ON_BORDER) && obstacle.dir == targetdir)
usr << span("danger", "You can't turn the windoor assembly that way, there's already something there!")
return
if (src.anchored)
usr << "It is fastened to the floor; therefore, you can't rotate it!"
return 0
if(src.state != "01")
update_nearby_tiles(need_rebuild=1) //Compel updates before
src.set_dir(targetdir)
if(src.state != "01")
update_nearby_tiles(need_rebuild=1)

View File

@@ -226,19 +226,20 @@
qdel(src)
return
else if(seed.get_trait(TRAIT_FLESH_COLOUR))
user << "You slice up \the [src]."
var/slices = rand(3,5)
var/reagents_to_transfer = round(reagents.total_volume/slices)
for(var/i=i;i<=slices;i++)
var/obj/item/weapon/reagent_containers/food/snacks/fruit_slice/F = new(get_turf(src),seed)
if(reagents_to_transfer) reagents.trans_to_obj(F,reagents_to_transfer)
qdel(src)
return
if (reagents.total_volume)
user << "You slice up \the [src]."
var/slices = rand(3,5)
var/reagents_to_transfer = reagents.total_volume/slices
for(var/i=0;i<slices;i++)
var/obj/item/weapon/reagent_containers/food/snacks/fruit_slice/F = new(get_turf(src),seed)
reagents.trans_to_obj(F,reagents_to_transfer)
qdel(src)
return
..()
/obj/item/weapon/reagent_containers/food/snacks/grown/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
/obj/item/weapon/reagent_containers/food/snacks/grown/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
. = ..()
if(seed && seed.get_trait(TRAIT_STINGS))
if(!reagents || reagents.total_volume <= 0)
return

View File

@@ -429,8 +429,9 @@ var/list/name_to_material
if(!is_reinforced())
user << "<span class='warning'>This material is not reinforced enough to use for a door.</span>"
return
if((locate(/obj/structure/windoor_assembly) in T.contents) || (locate(/obj/machinery/door/window) in T.contents))
failed_to_build = 1
for(var/obj/obstacle in T)
if((obstacle.flags & ON_BORDER) && obstacle.dir == user.dir)
failed_to_build = 1
if(failed_to_build)
user << "<span class='warning'>There is no room in this location.</span>"
return 1
@@ -757,7 +758,7 @@ var/list/name_to_material
flags = MATERIAL_PADDING
hardness = 1
weight = 1
/material/hide/corgi
name = "corgi hide"
stack_type = /obj/item/stack/material/animalhide/corgi
@@ -767,17 +768,17 @@ var/list/name_to_material
name = "cat hide"
stack_type = /obj/item/stack/material/animalhide/cat
icon_colour = "#444444"
/material/hide/monkey
name = "monkey hide"
stack_type = /obj/item/stack/material/animalhide/monkey
icon_colour = "#914800"
/material/hide/lizard
name = "lizard hide"
stack_type = /obj/item/stack/material/animalhide/lizard
icon_colour = "#34AF10"
/material/hide/xeno
name = "alien hide"
stack_type = /obj/item/stack/material/animalhide/xeno
@@ -800,7 +801,7 @@ var/list/name_to_material
integrity = 70
stack_origin_tech = list(TECH_MATERIAL = 2)
door_icon_base = "stone"
/material/bone/necromancer
name = "cursed bone"
weight = 20

View File

@@ -299,7 +299,7 @@
/obj/item/weapon/inflatable_dispenser/proc/try_deploy_inflatable(var/turf/T, var/mob/living/user)
if (deploying)
return
deploying = 1
var/newtype
if(mode) // Door deployment
if(!stored_doors)
@@ -317,9 +317,10 @@
if(T && istype(T))
newtype = /obj/structure/inflatable/wall
deploying = 1
user.visible_message(span("notice", "[user] starts deploying an inflatable"), span("notice", "You start deploying an inflatable [mode ? "door" : "wall"]!"))
playsound(T, 'sound/items/zip.ogg', 75, 1)
if (do_after(user, 20, needhand = 0))
if (do_after(user, 15, needhand = 0))
new newtype(T)
if (mode)
stored_doors--

View File

@@ -543,7 +543,7 @@
else
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
data = world.time
if(prob(90))
if(prob(96))
M << "<span class='notice'>Your mind feels much more stable.</span>"
else
M << "<span class='warning'>Your mind breaks apart...</span>"