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

This commit is contained in:
FalseIncarnate
2016-03-10 19:39:58 -05:00
41 changed files with 292 additions and 183 deletions
+4 -2
View File
@@ -487,8 +487,10 @@ BLIND // can't see anything
set name = "Open/Close Jacket"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living)) return
if(usr.stat) return
if(!isliving(usr))
return
if(usr.stat)
return
adjustsuit(user)
/obj/item/clothing/suit/ui_action_click() //This is what happens when you click the HUD action button to adjust your suit.
+70 -14
View File
@@ -283,22 +283,78 @@
flags = BLOCKHAIR
flags_inv = HIDEFACE
/obj/item/clothing/under/fluff/tactical_suit //chronx100: Hughe O'Splash
name = "Hughe O'Splash's tactical suit"
desc = "A very comfortable suit that covers your entire body; it makes you feel very stealthy."
icon = 'icons/obj/custom_items.dmi'
icon_state = "chronx_suit"
item_state = "chronx_suit"
item_color = "chronxsuit"
/obj/item/weapon/nullrod/fluff/chronx //chronx100: Hughe O'Splash
transform_into = /obj/item/weapon/nullrod/sword/fluff/chronx
transform_via = list(/obj/item/clothing/suit/armor/riot/knight/templar, /obj/item/clothing/suit/chaplain_hoodie/fluff/chronx)
/obj/item/clothing/mask/fluff/tactical_balaclava //chronx100: Hughe O'Splash
name = "Hughe O'Splash's tactical balaclava"
desc = "Keeps your face warm and tactical during those cold space winter months, sadly it's not so effective against the cold void of space itself."
/obj/item/weapon/nullrod/sword/fluff/chronx
name = "Soul Collector"
desc = "An ancient scythe used by the worshipers of Cthulhu. Tales say it is used to prepare souls for Cthulhu's great devouring. Someone carved their name into the handle: Hughe O'Splash"
icon = 'icons/obj/custom_items.dmi'
icon_state = "chronx_balaclava"
item_state = "chronx_balaclava"
flags = BLOCKHAIR
w_class = 2
icon_state = "chronx_scythe"
item_state = "chronx_scythe"
/obj/item/clothing/head/fluff/chronx //chronx100: Hughe O'Splash
name = "Cthulhu's Hood"
desc = "Hood worn by the worshipers of Cthulhu. You see a name inscribed in blood on the inside: Hughe O'Splash"
icon = 'icons/obj/custom_items.dmi'
icon_state = "chronx_hood"
item_state = "chronx_hood"
flags = HEADCOVERSEYES | BLOCKHAIR
action_button_name = "Transform Hood"
var/adjusted = 0
/obj/item/clothing/head/fluff/chronx/ui_action_click()
adjust()
/obj/item/clothing/head/fluff/chronx/verb/adjust()
set name = "Transform Hood"
set category = "Object"
set src in usr
if(!isliving(src))
return
if(!usr.incapacitated())
if(adjusted)
icon_state = initial(icon_state)
item_state = initial(item_state)
usr << "You untransform \the [src]."
adjusted = 0
else
icon_state += "_open"
item_state += "_open"
usr << "You transform \the [src]."
adjusted = 1
usr.update_inv_head()
/obj/item/clothing/suit/chaplain_hoodie/fluff/chronx //chronx100: Hughe O'Splash
name = "Cthulhu's Robes"
desc = "Robes worn by the worshipers of Cthulhu. You see a name inscribed in blood on the inside: Hughe O'Splash"
icon = 'icons/obj/custom_items.dmi'
icon_state = "chronx_robe"
item_state = "chronx_robe"
flags = ONESIZEFITSALL
action_button_name = "Transform Robes"
adjust_flavour = "untransform"
ignore_suitadjust = 0
/obj/item/clothing/suit/chaplain_hoodie/fluff/chronx/New()
..()
verbs -= /obj/item/clothing/suit/verb/openjacket
/obj/item/clothing/suit/chaplain_hoodie/fluff/chronx/verb/adjust()
set name = "Transform Robes"
set category = "Object"
set src in usr
if(!istype(usr, /mob/living))
return
adjustsuit(usr)
/obj/item/clothing/shoes/black/fluff/chronx //chronx100: Hughe O'Splash
name = "Cthulhu's Boots"
desc = "Boots worn by the worshipers of Cthulhu. You see a name inscribed in blood on the inside: Hughe O'Splash"
icon = 'icons/obj/custom_items.dmi'
icon_state = "chronx_shoes"
item_state = "chronx_shoes"
/obj/item/clothing/suit/armor/vest/fluff/tactical //m3hillus: Medusa Schlofield
name = "tactical armor vest"
-2
View File
@@ -77,14 +77,12 @@
name = "diona nymph"
desc = "It's a tiny plant critter."
icon_state = "nymph"
origin_tech = "magnets=3;biotech=5"
/obj/item/weapon/holder/drone
name = "maintenance drone"
desc = "It's a small maintenance robot."
icon_state = "drone"
origin_tech = "magnets=3;engineering=5"
/obj/item/weapon/holder/pai
name = "pAI"
@@ -67,8 +67,8 @@
if(borer)
borer.detatch() //Should remove borer if the brain is removed - RR
B.transfer_identity(user)
if(owner.mind)//don't transfer if the owner does not have a mind.
B.transfer_identity(user)
if(istype(owner,/mob/living/carbon/human))
var/mob/living/carbon/human/H = owner
@@ -782,8 +782,6 @@
var/turf/location = get_turf(src)
var/aoe_range=2 // Default
if(SUPER_FART in mutations)
aoe_range+=3 //Was 5
// Process toxic farts first.
if(TOXIC_FARTS in mutations)
@@ -803,26 +801,6 @@
continue
M.reagents.add_reagent("space_drugs",rand(1,10))
if(SUPER_FART in mutations)
visible_message("\red <b>[name]</b> hunches down and grits their teeth!")
if(do_after(usr,30, target = src))
visible_message("\red <b>[name]</b> unleashes a [pick("tremendous","gigantic","colossal")] fart!","You hear a [pick("tremendous","gigantic","colossal")] fart.")
//playsound(L.loc, 'superfart.ogg', 50, 0)
for(var/mob/living/V in range(location,aoe_range))
shake_camera(V,10,5)
if (V == src)
continue
if(!airborne_can_reach(get_turf(src), get_turf(V)))
continue
V << "\red You are sent flying!"
V.Weaken(5) // why the hell was this set to 12 christ
step_away(V,location,15)
step_away(V,location,15)
step_away(V,location,15)
else
usr << "\red You were interrupted and couldn't fart! Rude!"
if ("help")
var/emotelist = "aflap(s), airguitar, blink(s), blink(s)_r, blush(es), bow(s)-(none)/mob, burp(s), choke(s), chuckle(s), clap(s), collapse(s), cough(s),cry, cries, custom, dap(s)(none)/mob," \
+ " deathgasp(s), drool(s), eyebrow,fart(s), faint(s), flap(s), flip(s), frown(s), gasp(s), giggle(s), glare(s)-(none)/mob, grin(s), groan(s), grumble(s), handshake-mob, hug(s)-(none)/mob," \
@@ -308,6 +308,9 @@
var/b_loss = null
var/f_loss = null
if(status_flags & GODMODE)
return 0
switch(severity)
if(1)
b_loss += 500
@@ -141,7 +141,7 @@ obj/item/weapon/gun/energy/staff/focus
icon_state = "toxgun"
fire_sound = 'sound/effects/stealthoff.ogg'
w_class = 3.0
origin_tech = "combat=5;plasmatech=4"
origin_tech = "combat=4;plasmatech=3"
projectile_type = "/obj/item/projectile/energy/plasma"
/obj/item/weapon/gun/energy/sniperrifle
@@ -34,9 +34,10 @@
d/=sober_str
var/obj/item/organ/internal/liver/L
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/internal/liver/L = H.get_int_organ(/obj/item/organ/internal/liver)
L = H.get_int_organ(/obj/item/organ/internal/liver)
if(!L || (istype(L) && L.dna.species in list("Skrell", "Neara")))
d*=5
@@ -64,8 +65,7 @@
M.drowsyness = max(M.drowsyness, 30/sober_str)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if (H.get_int_organ(/obj/item/organ/internal/liver))
var/obj/item/organ/internal/liver/L = H.get_int_organ(/obj/item/organ/internal/liver)
if (L)
L.take_damage(0.1, 1)
H.adjustToxLoss(0.1)
..()
@@ -15,7 +15,6 @@
possible_transfer_amounts = null //list(5,10,15)
volume = 15
w_class = 1
sharp = 1
var/mode = SYRINGE_DRAW
on_reagent_change()
@@ -637,6 +637,7 @@
name = "Exosuit Medical Equipment (Mounted Sleeper)"
id = "mech_sleeper"
build_type = MECHFAB
req_tech = list("biotech" = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/sleeper
materials = list(MAT_METAL=5000,MAT_GLASS=10000)
construction_time = 100
@@ -646,6 +647,7 @@
name = "Exosuit Medical Equipment (Syringe Gun)"
id = "mech_syringe_gun"
build_type = MECHFAB
req_tech = list("magnets" = 3,"biotech" = 3)
build_path = /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun
materials = list(MAT_METAL=3000,MAT_GLASS=2000)
construction_time = 200
@@ -664,6 +666,7 @@
name = "Exosuit Weapon (PBT \"Pacifier\" Mounted Taser)"
id = "mech_taser"
build_type = MECHFAB
req_tech = list("combat" = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -673,6 +676,7 @@
name = "Exosuit Weapon (\"Ultra AC 2\" LMG)"
id = "mech_lmg"
build_type = MECHFAB
req_tech = list("combat" = 2)
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
materials = list(MAT_METAL=10000)
construction_time = 100
@@ -129,7 +129,7 @@
name = "Nanopaste"
desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery."
id = "nanopaste"
req_tech = list("materials" = 4, "engineering" = 3)
req_tech = list("materials" = 3, "engineering" = 2)
build_type = PROTOLATHE
materials = list(MAT_METAL = 7000, MAT_GLASS = 7000)
build_path = /obj/item/stack/nanopaste
@@ -18,7 +18,7 @@
name = "Decloner"
desc = "Your opponent will bubble into a messy pile of goop."
id = "decloner"
req_tech = list("combat" = 6, "materials" = 7, "biotech" = 5, "powerstorage" = 6)
req_tech = list("combat" = 8, "materials" = 7, "biotech" = 5, "powerstorage" = 6)
build_type = PROTOLATHE
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000)
reagents = list("mutagen" = 40)
@@ -118,7 +118,7 @@
name = "Plasma Pistol"
desc = "A specialized firearm designed to fire lethal bolts of toxins."
id = "ppistol"
req_tech = list("combat" = 5, "plasmatech" = 4)
req_tech = list("combat" = 4, "plasmatech" = 3)
build_type = PROTOLATHE
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_PLASMA = 3000)
build_path = /obj/item/weapon/gun/energy/toxgun
@@ -300,7 +300,7 @@ datum/genesequence
/obj/item/weapon/circuitboard/reconstitutor
name = "Circuit board (Flora Reconstitution Console)"
build_path = "/obj/machinery/computer/reconstitutor"
origin_tech = "programming=2;biotech=4;materials=6"
origin_tech = "programming=2;biotech=3;materials=4"
frame_desc = "Requires 2 Advanced Scanning Module, 1 Nano Manipulator, 1 Matter Bin and 1 Advanced Capacitor."
req_components = list(
"/obj/item/weapon/stock_parts/scanning_module/adv" = 2,
+13 -5
View File
@@ -155,7 +155,9 @@
if(!istype(I, /obj/item/organ))
IC = I
break
if(tool)
if(istype(tool,/obj/item/weapon/cautery))
user << "you prepare to close the cavity wall."
else if(tool)
user.visible_message("[user] starts putting \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
"You start putting \the [tool] inside [target]'s [get_cavity(affected)] cavity." )
else if(IC)
@@ -170,16 +172,22 @@
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
if(istype(tool, /obj/item/weapon/disk/nuclear))
user << "Central command would kill you if you implanted the disk into someone."
user << "<span class='warning'>Central command would kill you if you implanted the disk into someone.</span>"
return 0//fail
if(istype(tool,/obj/item/organ))
user << "This isn't the type of surgery for that!"
user << "<span class='warning'>This isn't the type of surgery for organ transplants!</span>"
return 0//fail
if(tool)
if(!user.canUnEquip(tool, 0))
user << "<span class='warning'>[tool] is stuck to your hand, you can't put it in [target]!</span>"
return 0
if(istype(tool,/obj/item/weapon/cautery))
return 1//god this is ugly....
else if(tool)
if(IC)
user << "There seems to be something in there already!"
user << "<span class='notice'>There seems to be something in there already!</span>"
return 1
else
user.visible_message("<span class='notice'> [user] puts \the [tool] inside [target]'s [get_cavity(affected)] cavity.</span>", \
@@ -897,7 +897,7 @@ Note that amputating the affected organ does in fact remove the infection from t
O.forceMove(src)
// Grab all the internal giblets too.
for(var/obj/item/organ/organ in internal_organs)
for(var/obj/item/organ/internal/organ in internal_organs)
organ.remove()
organ.forceMove(src)
@@ -111,6 +111,11 @@
/obj/item/organ/external/hand/remove()
if(owner.gloves)
owner.unEquip(owner.gloves)
if(owner.l_hand)
owner.unEquip(owner.l_hand,1)
if(owner.r_hand)
owner.unEquip(owner.r_hand,1)
..()
/obj/item/organ/external/hand/right
+7 -4
View File
@@ -143,7 +143,6 @@
return -1
else if(implement_type in implements_mend)
//todo Change message, make it heal the organs...
current_type = "mend"
var/tool_name = "\the [tool]"
if (istype(tool, /obj/item/stack/medical/advanced/bruise_pack))
@@ -163,11 +162,11 @@
spread_germs_to_organ(I, user)
user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \
"You start treating damage to [target]'s [I.name] with [tool_name]." )
else if(I.robotic > 2 && istype(tool, /obj/item/stack/nanopaste))
else if(I.robotic >= 2 && istype(tool, /obj/item/stack/nanopaste))
user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \
"You start treating damage to [target]'s [I.name] with [tool_name]." )
user << "No organs appear to be damaged."
user << "[I] does not appear to be damaged."
H.custom_pain("The pain in your [affected.name] is living hell!",1)
else if(istype(tool, /obj/item/weapon/reagent_containers/food/snacks/organ))
@@ -195,7 +194,7 @@
user.visible_message("<span class='notice'> [user] treats damage to [target]'s [I.name] with [tool_name].</span>", \
"<span class='notice'> You treat damage to [target]'s [I.name] with [tool_name].</span>" )
I.damage = 0
else if(I.robotic > 2 && istype (tool, /obj/item/stack/nanopaste))
else if(I.robotic >= 2 && istype (tool, /obj/item/stack/nanopaste))
user.visible_message("<span class='notice'> [user] treats damage to [target]'s [I.name] with [tool_name].</span>", \
"<span class='notice'> You treat damage to [target]'s [I.name] with [tool_name].</span>" )
I.damage = 0
@@ -205,6 +204,10 @@
user.drop_item()
I.insert(target)
spread_germs_to_organ(I, user)
if(!user.canUnEquip(I, 0))
user << "<span class='warning'>[I] is stuck to your hand, you can't put it in [target]!</span>"
return 0
if(affected)
user.visible_message("<span class='notice'> [user] has transplanted \the [tool] into [target]'s [affected.name].</span>", \
"<span class='notice'> You have transplanted \the [tool] into [target]'s [affected.name].</span>")
+15 -16
View File
@@ -265,7 +265,7 @@
allowed_tools = list(/obj/item/device/mmi = 100)
var/implements_extract = list(/obj/item/device/multitool = 100)
var/implements_mend = list( /obj/item/stack/nanopaste = 100,/obj/item/weapon/bonegel = 30, /obj/item/weapon/screwdriver = 70)
var/implements_insert = list(/obj/item/weapon/screwdriver = 100)
var/implements_insert = list(/obj/item/organ/internal = 100)
var/implements_finish =list(/obj/item/weapon/retractor = 100,/obj/item/weapon/crowbar = 100,/obj/item/weapon/kitchen/utensil = 50)
var/current_type
var/obj/item/organ/internal/I = null
@@ -285,13 +285,11 @@
affected = target.get_organ(target_zone)
if(implement_type in implements_insert)
current_type = "insert"
//I = tool
var/off_tool = user.get_inactive_hand()
var/obj/item/organ/internal/I = tool
if(I.status != ORGAN_ROBOT || I.robotic != 2)
user << "<span class='notice'>You can only implant cybernetic organs.</span>"
if(!off_tool || !istype(off_tool,/obj/item/organ/internal))
user << "<span class='notice'>You need a replacement internal part in your off hand.</span>"
return -1
I = off_tool //and please god let it be an organ...
if(target_zone != I.parent_organ || target.get_organ_slot(I.slot))
user << "<span class='notice'>There is no room for [I] in [target]'s [parse_zone(target_zone)]!</span>"
return -1
@@ -304,8 +302,8 @@
user << "<span class='warning'> \The [target] already has [I].</span>"
return -1
user.visible_message("[user] begins reattaching [target]'s [off_tool] with \the [tool].", \
"You start reattaching [target]'s [off_tool] with \the [tool].")
user.visible_message("[user] begins reattaching [target]'s [tool].", \
"You start reattaching [target]'s [tool].")
target.custom_pain("Someone's rooting around in your [affected.name]!",1)
else if(istype(tool,/obj/item/device/mmi))
current_type = "install"
@@ -407,18 +405,19 @@
"<span class='notice'> You repair [target]'s [I.name] with [tool].</span>" )
I.damage = 0
else if(current_type == "insert")
var/obj/item/organ/internal/I = target.get_int_organ(surgery.current_organ)
var/obj/item/organ/internal/I = tool
var/off_tool = user.get_inactive_hand()
I = off_tool
//user.drop_item()
if(!user.canUnEquip(I, 0))
user << "<span class='warning'>[I] is stuck to your hand, you can't put it in [target]!</span>"
return 0
user.drop_item()
I.insert(target)
user.visible_message("<span class='notice'> [user] has reattached [target]'s [I] with \the [tool].</span>" , \
"<span class='notice'> You have reattached [target]'s [I] with \the [tool].</span>")
user.visible_message("<span class='notice'> [user] has reattached [target]'s [I].</span>" , \
"<span class='notice'> You have reattached [target]'s [I].</span>")
if(I && istype(I))
I.status &= ~ORGAN_CUT_AWAY
qdel(off_tool)
else if (current_type == "install")
user.visible_message("<span class='notice'> [user] has installed \the [tool] into [target]'s [affected.name].</span>", \
"<span class='notice'> You have installed \the [tool] into [target]'s [affected.name].</span>")