Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into OrganRefactor

This commit is contained in:
Aurorablade
2016-01-15 08:10:24 -05:00
349 changed files with 23852 additions and 21659 deletions
+2 -2
View File
@@ -955,7 +955,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(!silent) O.show_message(text("\icon[src] *[ttone]*"))
/obj/item/device/pda/verb/verb_remove_id()
set category = null
set category = "Object"
set name = "Remove id"
set src in usr
@@ -972,7 +972,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/verb/verb_remove_pen()
set category = null
set category = "Object"
set name = "Remove pen"
set src in usr
+6 -4
View File
@@ -20,17 +20,19 @@
return ..()
/obj/item/device/guitar/attack_self(mob/user as mob)
interact(user)
ui_interact(user)
/obj/item/device/guitar/interact(mob/user as mob)
/obj/item/device/guitar/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
if(!user)
return
if(!isliving(user) || user.stat || user.restrained() || user.lying)
return
user.set_machine(src)
song.interact(user)
song.ui_interact(user, ui_key, ui, force_open)
/obj/item/device/guitar/Topic(href, href_list)
song.Topic(href, href_list)
/datum/table_recipe/guitar
name = "Guitar"
+6 -4
View File
@@ -24,14 +24,16 @@
..()
/obj/item/device/violin/attack_self(mob/user as mob)
interact(user)
ui_interact(user)
/obj/item/device/violin/interact(mob/user as mob)
/obj/item/device/violin/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
if(!user)
return
if(!isliving(user) || user.stat || user.restrained() || user.lying)
return
user.set_machine(src)
song.interact(user)
song.ui_interact(user, ui_key, ui, force_open)
/obj/item/device/violin/Topic(href, href_list)
song.Topic(href, href_list)
@@ -0,0 +1,20 @@
/obj/item/stack/telecrystal
name = "telecrystal"
desc = "It seems to be pulsing with suspiciously enticing energies."
description_antag = "Telecrystals can be activated by utilizing them on devices with an actively running uplink. They will not activate on unactivated uplinks."
singular_name = "telecrystal"
icon = 'icons/obj/telescience.dmi'
icon_state = "telecrystal"
w_class = 1
max_amount = 50
flags = NOBLUDGEON
origin_tech = "materials=6;syndicate=1"
/obj/item/stack/telecrystal/afterattack(var/obj/item/I as obj, mob/user as mob, proximity)
if(!proximity)
return
if(istype(I, /obj/item))
if(I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up.
I.hidden_uplink.uses +=1
use(1)
user << "<span class='notice'>You slot the [src] into the [I] and charge its internal uplink.</span>"
@@ -1,48 +0,0 @@
#define LIGHTFLOOR_ON 1
#define LIGHTFLOOR_WHITE 2
#define LIGHTFLOOR_RED 3
#define LIGHTFLOOR_GREEN 4
#define LIGHTFLOOR_YELLOW 5
#define LIGHTFLOOR_BLUE 6
#define LIGHTFLOOR_PURPLE 7
/obj/item/stack/tile/light
name = "light tiles"
gender = PLURAL
singular_name = "light floor tile"
desc = "A floor tile, made out off glass. Use a multitool on it to change its color."
icon_state = "tile_light blue"
force = 3
throwforce = 5
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed")
var/on = 1
var/state = LIGHTFLOOR_ON
/obj/item/stack/tile/light/proc/color_desc()
switch(state)
if(LIGHTFLOOR_ON) return "light blue"
if(LIGHTFLOOR_WHITE) return "white"
if(LIGHTFLOOR_RED) return "red"
if(LIGHTFLOOR_GREEN) return "green"
if(LIGHTFLOOR_YELLOW) return "yellow"
if(LIGHTFLOOR_BLUE) return "dark blue"
if(LIGHTFLOOR_PURPLE) return "purple"
else return "broken"
/obj/item/stack/tile/light/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
..()
if(istype(O,/obj/item/weapon/crowbar))
new/obj/item/stack/sheet/metal(user.loc)
amount--
new/obj/item/stack/light_w(user.loc)
if(amount <= 0)
user.unEquip(src, 1)
del(src)
else if(istype(O,/obj/item/device/multitool))
state++
if(state>LIGHTFLOOR_PURPLE) state=LIGHTFLOOR_ON
icon_state="tile_"+color_desc()
user << "[src] is now "+color_desc()
return ..()
@@ -1,25 +0,0 @@
/obj/item/stack/tile/plasteel
name = "floor tiles"
gender = PLURAL
singular_name = "floor tile"
desc = "Those could work as a pretty decent throwing weapon"
icon_state = "tile"
force = 6
materials = list(MAT_METAL=500)
throwforce = 10
throw_speed = 3
throw_range = 7
/obj/item/stack/tile/plasteel/New(var/loc, var/amount=null)
..()
src.pixel_x = rand(1, 14)
src.pixel_y = rand(1, 14)
return
/obj/item/stack/tile/plasteel/proc/build(turf/S as turf)
if (istype(S,/turf/space))
S.ChangeTurf(/turf/simulated/floor/plating/airless)
else
S.ChangeTurf(/turf/simulated/floor/plating)
return
@@ -3,6 +3,11 @@
* Grass
* Wood
* Carpet
* Plasteel
* Light
* Fakespace
* High-traction
\\ If you don't update the contains list, I'm going to shank you
*/
/obj/item/stack/tile
name = "broken tile"
@@ -18,6 +23,8 @@
throw_range = 20
max_amount = 60
flags = CONDUCT
var/turf_type = null
var/mineralType = null
/*
* Grass
@@ -29,6 +36,7 @@
desc = "A patch of grass like they often use on golf courses"
icon_state = "tile_grass"
origin_tech = "biotech=1"
turf_type = /turf/simulated/floor/grass
/*
* Wood
@@ -39,6 +47,7 @@
singular_name = "wood floor tile"
desc = "an easy to fit wood floor tile"
icon_state = "tile-wood"
turf_type = /turf/simulated/floor/wood
/*
* Carpets
@@ -48,3 +57,62 @@
singular_name = "carpet"
desc = "A piece of carpet. It is the same size as a floor tile"
icon_state = "tile-carpet"
turf_type = /turf/simulated/floor/carpet
/*
* Plasteel
*/
/obj/item/stack/tile/plasteel
name = "floor tiles"
gender = PLURAL
singular_name = "floor tile"
desc = "Those could work as a pretty decent throwing weapon."
icon_state = "tile"
force = 6
materials = list(MAT_METAL=500)
throwforce = 10
throw_speed = 3
throw_range = 7
flags = CONDUCT
turf_type = /turf/simulated/floor/plasteel
mineralType = "metal"
/*
* Light
*/
/obj/item/stack/tile/light
name = "light tiles"
gender = PLURAL
singular_name = "light floor tile"
desc = "A floor tile, made out off glass. Use a multitool on it to change its color."
icon_state = "tile_light blue"
force = 3
throwforce = 5
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed")
turf_type = /turf/simulated/floor/light
/*
* Fakespace
*/
/obj/item/stack/tile/fakespace
name = "astral carpet"
singular_name = "astral carpet"
desc = "A piece of carpet with a convincing star pattern."
icon_state = "tile_space"
turf_type = /turf/simulated/floor/fakespace
/obj/item/stack/tile/fakespace/loaded
amount = 30
//High-traction
/obj/item/stack/tile/noslip
name = "high-traction floor tile"
singular_name = "high-traction floor tile"
desc = "A high-traction floor tile. It feels rubbery in your hand."
icon_state = "tile_noslip"
turf_type = /turf/simulated/floor/noslip
origin_tech = "materials=3"
/obj/item/stack/tile/noslip/loaded
amount = 20
-73
View File
@@ -3,7 +3,6 @@
* Balloons
* Fake telebeacon
* Fake singularity
* Toy gun
* Toy crossbow
* Toy Tommy Gun
* Toy swords
@@ -125,78 +124,6 @@
icon = 'icons/obj/singularity.dmi'
icon_state = "singularity_s1"
/*
* Toy gun: Why isnt this an /obj/item/weapon/gun?
*/
/obj/item/toy/gun
name = "cap gun"
desc = "There are 0 caps left. Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps!"
icon = 'icons/obj/gun.dmi'
icon_state = "revolver"
item_state = "gun"
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
righthand_file = 'icons/mob/inhands/guns_righthand.dmi'
flags = CONDUCT
slot_flags = SLOT_BELT
w_class = 3.0
materials = list(MAT_METAL=10, MAT_GLASS=10)
attack_verb = list("struck", "pistol whipped", "hit", "bashed")
var/bullets = 7.0
examine(mob/user)
if(..(user, 0))
user << "There are [bullets] caps\s left. Looks almost like the real thing! Ages 8 and up."
attackby(obj/item/toy/ammo/gun/A as obj, mob/user as mob, params)
if (istype(A, /obj/item/toy/ammo/gun))
if (src.bullets >= 7)
user << "\blue It's already fully loaded!"
return 1
if (A.amount_left <= 0)
user << "\red There is no more caps!"
return 1
if (A.amount_left < (7 - src.bullets))
src.bullets += A.amount_left
user << text("\red You reload [] caps\s!", A.amount_left)
A.amount_left = 0
else
user << text("\red You reload [] caps\s!", 7 - src.bullets)
A.amount_left -= 7 - src.bullets
src.bullets = 7
A.update_icon()
return 1
return
afterattack(atom/target as mob|obj|turf|area, mob/user as mob, flag)
if (flag)
return
if (!user.IsAdvancedToolUser())
user << "<span class='warning'>You don't have the dexterity to do this!</span>"
return
src.add_fingerprint(user)
if (src.bullets < 1)
user.show_message("<span class='alert'>*click* *click*</span>", 2)
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
return
playsound(user, 'sound/weapons/Gunshot.ogg', 100, 1)
src.bullets--
user.visible_message("<span class='danger'>[user] fires a cap gun at [target]!</span>", null, "You hear a gunshot.")
/obj/item/toy/ammo/gun
name = "ammo-caps"
desc = "There are 7 caps left! Make sure to recyle the box in an autolathe when it gets empty."
icon = 'icons/obj/ammo.dmi'
icon_state = "357-7"
flags = CONDUCT
w_class = 1.0
materials = list(MAT_METAL=10, MAT_GLASS=10)
var/amount_left = 7.0
update_icon()
src.icon_state = text("357-[]", src.amount_left)
src.desc = text("There are [] caps\s left! Make sure to recycle the box in an autolathe when it gets empty.", src.amount_left)
return
/*
* Toy crossbow
+2 -2
View File
@@ -105,7 +105,7 @@
user.visible_message("<span class='notice'>[user] shaves his facial hair clean with the [src].</span>", \
"<span class='notice'>You finish shaving with the [src]. Fast and clean!</span>")
H.f_style = "Shaved"
H.update_hair()
H.update_fhair()
playsound(src.loc, 'sound/items/Welder2.ogg', 20, 1)
else
var/turf/user_loc = user.loc
@@ -117,7 +117,7 @@
user.visible_message("<span class='danger'>[user] shaves off [H]'s facial hair with \the [src].</span>", \
"<span class='notice'>You shave [H]'s facial hair clean off.</span>")
H.f_style = "Shaved"
H.update_hair()
H.update_fhair()
playsound(src.loc, 'sound/items/Welder2.ogg', 20, 1)
if(user.zone_sel.selecting == "head")
if(!get_location_accessible(H, "head"))
@@ -81,7 +81,7 @@
/obj/item/toy/balloon,
/obj/item/toy/blink,
/obj/item/toy/crossbow,
/obj/item/toy/gun,
/obj/item/weapon/gun/projectile/revolver/capgun,
/obj/item/toy/katana,
/obj/random/prize,
/obj/item/toy/spinningtoy,
@@ -116,6 +116,7 @@
/obj/item/clothing/under/syndicate/tacticool,
/obj/item/weapon/storage/box/fakesyndiesuit,
/obj/item/toy/crossbow/tommygun,
/obj/item/stack/tile/fakespace/loaded,
)
if(!ispath(gift_type,/obj/item)) return
@@ -40,18 +40,23 @@
if(crit_fail)
user << "\red The Bluespace generator isn't working."
return
if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail)
investigate_log("has become a singularity. Caused by [user.key]","singulo")
user << "\red The Bluespace interfaces of the two devices catastrophically malfunction!"
qdel(W)
var/obj/singularity/singulo = new /obj/singularity (get_turf(src))
singulo.energy = 300 //should make it a bit bigger~
message_admins("[key_name_admin(user)] detonated a bag of holding")
log_game("[key_name(user)] detonated a bag of holding")
qdel(src)
return
..()
else if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail)
var/response = alert(user, "Are you sure you want to put the bag of holding inside another bag of holding?","Are you sure you want to die?","Yes","No")
if(response == "Yes")
user.visible_message("<span class='warning'>[user] grins as he begins to put a Bag of Holding into a Bag of Holding!</span>", "<span class='warning'>You begin to put the Bag of Holding into the Bag of Holding!</span>")
if(do_after(user,30,target=src))
investigate_log("has become a singularity. Caused by [user.key]","singulo")
user.visible_message("<span class='warning'>[user] erupts in evil laughter as he puts the Bag of Holding into another Bag of Holding!</span>", "<span class='warning'>You can't help yourself from laughing as you put the Bag of Holding into another Bag of Holding, complete darkness surrounding you</span>","<span class='warning'> You hear the sound of scientific evil brewing! </span>")
qdel(W)
var/obj/singularity/singulo = new /obj/singularity(get_turf(user))
singulo.energy = 300 //To give it a small boost
message_admins("[key_name_admin(user)] detonated a bag of holding <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)")
log_game("[key_name(user)] detonated a bag of holding")
qdel(src)
else
user.visible_message("After careful consideration, [user] has decided that putting a Bag of Holding inside another Bag of Holding would not yield the ideal outcome","You come to the realization that this might not be the greatest idea")
else
. = ..()
proc/failcheck(mob/user as mob)
if (prob(src.reliability)) return 1 //No failure
@@ -105,6 +105,7 @@
/obj/item/weapon/storage/belt/medical/response_team
/obj/item/weapon/storage/belt/medical/response_team/New()
..()
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
@@ -51,17 +51,11 @@
return
if("implant")
var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src)
O.imp = new /obj/item/weapon/implant/freedom(O)
var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src)
U.imp = new /obj/item/weapon/implant/uplink(U)
var/obj/item/weapon/implanter/C = new /obj/item/weapon/implanter(src)
C.imp = new /obj/item/weapon/implant/emp(C)
var/obj/item/weapon/implanter/K = new /obj/item/weapon/implanter(src)
K.imp = new /obj/item/weapon/implant/adrenalin(K)
var/obj/item/weapon/implanter/S = new /obj/item/weapon/implanter(src)
S.imp = new /obj/item/weapon/implant/explosive(S)
S.name += " (explosive)"
new /obj/item/weapon/implanter/freedom(src)
new /obj/item/weapon/implanter/uplink(src)
new /obj/item/weapon/implanter/emp(src)
new /obj/item/weapon/implanter/adrenalin(src)
new /obj/item/weapon/implanter/explosive(src)
return
if("hacker")
+1 -1
View File
@@ -172,7 +172,7 @@
return
/obj/item/weapon/weldingtool/examine(mob/user)
if(!..(user, 0))
if(..(user, 0))
user << "It contains [get_fuel()] unit\s of fuel out of [max_fuel]."
/obj/item/weapon/weldingtool/suicide_act(mob/user)