diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 8ba5ffc8147..33211757e4d 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -620,16 +620,16 @@ /obj/item/seeds/harebell name = "pack of harebell seeds" desc = "These seeds grow into pretty little flowers." - icon_state = "seed" + icon_state = "seed-harebell" mypath = "/obj/item/seeds/harebell" species = "harebell" plantname = "Harebells" - productname = "" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/harebell" lifespan = 100 endurance = 20 maturation = 7 production = 1 - yield = -1 + yield = 2 potency = 1 oneharvest = 1 growthstages = 4 @@ -1058,6 +1058,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/poppy seed = "/obj/item/seeds/poppyseed" name = "poppy" + desc = "Long-used as a symbol of rest, peace, and death." icon_state = "poppy" potency = 30 New() @@ -1066,6 +1067,16 @@ reagents.add_reagent("bicaridine", 1+round((potency / 10), 1)) bitesize = 1+round(reagents.total_volume / 3, 1) +/obj/item/weapon/reagent_containers/food/snacks/grown/harebell + seed = "obj/item/seeds/harebellseed" + name = "harebell" + desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweeten’d not thy breath.\"" + icon_state = "harebell" + potency = 1 + New() + ..() + reagents.add_reagent("nutriment", 1+round((potency / 20), 1)) + bitesize = 1+round(reagents.total_volume / 3, 1) /obj/item/weapon/reagent_containers/food/snacks/grown/potato seed = "/obj/item/seeds/potatoseed" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 11572a0abda..17f6e2ce653 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -741,7 +741,7 @@ /obj/item/weapon/extinguisher name = "fire extinguisher" - desc = "Contains water for fighting fires." + desc = "A traditional red fire extinguisher." icon = 'items.dmi' icon_state = "fire_extinguisher0" var/last_use = 1.0 @@ -760,6 +760,7 @@ name = "fire extinguisher" desc = "A light and compact fibreglass-framed model fire extinguisher." icon_state = "miniFE0" + hitsound = null //it is much lighter, after all. flags = FPRINT | USEDELAY | TABLEPASS throwforce = 5 w_class = 2.0 @@ -1511,6 +1512,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove desc = "You can drill using this item. You dig?" icon = 'surgery.dmi' icon_state = "drill" + hitsound = 'circsawhit.ogg' flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 w_class = 1.0 @@ -1521,6 +1523,7 @@ eternal248: Found broken and buggy Z-levels 7-12, ended up leading to my discove desc = "For heavy duty cutting." icon = 'surgery.dmi' icon_state = "saw3" + hitsound = 'circsawhit.ogg' flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 w_class = 1.0 diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 61d51839b74..0d0bea60a79 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -403,7 +403,7 @@ del(usr) return -/* + /client/proc/changeling_greater_form() // Oh shit, it's on now. set category = "Changeling" @@ -429,7 +429,7 @@ flick("h2monkey", animation) sleep(48) //animation = null - var/mob/living/carbon/human/tajaran/Emissary/O = new /mob/living/carbon/human/tajaran/Emissary( src ) + var/mob/living/carbon/human/O = new /mob/living/carbon/human( src )//Removed Emissary shit -Sieve{R} del(animation) O.real_name = usr.real_name @@ -495,7 +495,7 @@ new_objective.owner = O.mind O.mind.objectives += new_objective - spawn(0) +/* spawn(0) while(emergency_shuttle.online == 0) sleep(10) command_alert("Authorization codes recieved, confirming hostile entity terminated. The emergancy shuttle is now departing.") @@ -512,8 +512,8 @@ sleep(10) if((locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/shuttle/escape/centcom)) || (locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/centcom/evac)) || (locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/centcom/control) ) ) command_alert("What the fu- Shoot it! SHOOT IT! CENTRAL COMMAND TRANSMITTING DIST- *static* Nevermind previous transmission, Nanotrasen. We're all good here. Subject contained. Standing down alert status.") +Tarjan shit, not recoding this -Sieve{R}*/ -*/ /client/proc/changeling_fakedeath() set category = "Changeling" set name = "Regenerative Stasis (20)" diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm index d6d692cc9c6..6b50ce914ab 100644 --- a/code/game/gamemodes/changeling/modularchangling.dm +++ b/code/game/gamemodes/changeling/modularchangling.dm @@ -41,14 +41,14 @@ var/list/obj/effect/proc_holder/power/powerinstances = list() verbpath = /client/proc/changeling_lesser_form - +/* /obj/effect/proc_holder/power/changeling_greater_form name = "Greater Form" desc = "We become the pinnicle of evolution. We will show the humans what happens when they leave their isle of ignorance." genomecost = 250 -// verbpath = /client/proc/changeling_greater_form - + verbpath = /client/proc/changeling_greater_form +*/ /obj/effect/proc_holder/power/fakedeath name = "Fake Death" desc = "We fake our death while we heal." @@ -92,7 +92,7 @@ var/list/obj/effect/proc_holder/power/powerinstances = list() /obj/effect/proc_holder/power/silence_sting name = "Silence Sting" desc = "We silently sting a human, completely silencing them for a short time." - helptext = "Does not provide a warning to a victim that they've been stung, until they try to speak and can't." // Man, fuck javascript. ' == ' + helptext = "Does not provide a warning to a victim that they have been stung, until they try to speak and can not." genomecost = 2 allowduringlesserform = 1 @@ -190,7 +190,7 @@ var/list/obj/effect/proc_holder/power/powerinstances = list() /obj/effect/proc_holder/power/LSDSting name = "Hallucination Sting" desc = "We evolve the ability to sting a target with a powerful hallunicationary chemical." - helptext = "The target does not notice they've been stung. The effect occurs after 30 to 60 seconds." + helptext = "The target does not notice they have been stung. The effect occurs after 30 to 60 seconds." genomecost = 3 verbpath = /client/proc/changeling_lsdsting diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 90233a01222..5fe12567668 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -7,6 +7,7 @@ var/active = 0 var/list/holographic_items = list() var/damaged = 0 + var/last_change = 0 attack_ai(var/mob/user as mob) @@ -233,6 +234,15 @@ /obj/machinery/computer/HolodeckControl/proc/loadProgram(var/area/A) + if(world.time < (last_change + 25)) + if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve + return + for(var/mob/M in range(3,src)) + M.show_message("\b ERROR. Recalibrating projetion apparatus.") + last_change = world.time + return + + last_change = world.time active = 1 for(var/item in holographic_items) diff --git a/code/game/objects/closets/extinguisher.dm b/code/game/objects/closets/extinguisher.dm index 490ae2c8d37..1d503333d7f 100644 --- a/code/game/objects/closets/extinguisher.dm +++ b/code/game/objects/closets/extinguisher.dm @@ -1,87 +1,57 @@ - /obj/structure/closet/extinguisher - name = "extinguisher closet" + name = "extinguisher cabinet" desc = "A small wall mounted cabinet designed to hold a fire extinguisher." - icon_state = "extinguisher10" - icon_opened = "extinguisher11" - icon_closed = "extinguisher10" - opened = 1 + icon = 'closet.dmi' + icon_state = "extinguisher_closed" anchored = 1 density = 0 - var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher - var/localopened = 1 + var/obj/item/weapon/extinguisher/has_extinguisher = new/obj/item/weapon/extinguisher - open() + + +/obj/structure/closet/extinguisher/attackby(var/obj/item/O as obj, var/mob/user as mob) + if (isrobot(usr)) return - - close() - return - - attackby(var/obj/item/O as obj, var/mob/user as mob) - if (isrobot(usr)) - return - if (istype(O, /obj/item/weapon/extinguisher)) - if(!EXTINGUISHER) - user.drop_item(O) - src.contents += O - EXTINGUISHER = O - user << "\blue You place the extinguisher in the [src.name]." - else - localopened = !localopened + if (istype(O, /obj/item/weapon/extinguisher)) + if(!has_extinguisher && opened) + user.drop_item(O) + src.contents += O + has_extinguisher = O + user << "\blue You place the extinguisher in the [src.name]." else - localopened = !localopened - update_icon() - - attack_hand(mob/user as mob) - if(localopened) - if(EXTINGUISHER) - user.put_in_hand(EXTINGUISHER) - EXTINGUISHER = null - user << "\blue You take the extinguisher from the [name]." - else - localopened = !localopened - - else - localopened = !localopened - update_icon() - - verb/toggle_openness() //nice name, huh? HUH?! - set name = "Open/Close" - set category = "Object" - - if (isrobot(usr)) - return - - localopened = !localopened - update_icon() - - verb/remove_extinguisher() - set name = "Remove Extinguisher" - set category = "Object" - - if (isrobot(usr)) - return - - if (localopened) - if(EXTINGUISHER) - usr.put_in_hand(EXTINGUISHER) - EXTINGUISHER = null - usr << "\blue You take the extinguisher from the [name]." - else - usr << "\blue The [name] is empty." - else - usr << "\blue The [name] is closed." - update_icon() - - attack_paw(mob/user as mob) - attack_hand(user) - return - - attack_ai(mob/user as mob) - return - + opened = !opened + else + opened = !opened update_icon() - var/hasextinguisher = 0 - if(EXTINGUISHER) - hasextinguisher = 1 - icon_state = text("extinguisher[][]",hasextinguisher,src.localopened) + + + +/obj/structure/closet/extinguisher/attack_hand(mob/user as mob) + if(has_extinguisher) + user.put_in_hand(has_extinguisher) + has_extinguisher = null + user << "\blue You take the extinguisher from the [name]." + opened = 1 + else + opened = !opened + update_icon() + + + +/obj/structure/closet/extinguisher/attack_paw(mob/user as mob) + attack_hand(user) + return + + + +/obj/structure/closet/extinguisher/update_icon() + if(!opened) + icon_state = "extinguisher_closed" + return + if(has_extinguisher) + if(istype(has_extinguisher, /obj/item/weapon/extinguisher/mini)) + icon_state = "extinguisher_mini" + else + icon_state = "extinguisher_full" + else + icon_state = "extinguisher_empty" \ No newline at end of file diff --git a/code/game/objects/object_procs.dm b/code/game/objects/object_procs.dm index 7e230546fcf..f57f6ce93a7 100644 --- a/code/game/objects/object_procs.dm +++ b/code/game/objects/object_procs.dm @@ -9,7 +9,7 @@ src.attack_ai(usr) // check for TK users - AutoUpdateTK(src) + //AutoUpdateTK(src) if (istype(usr, /mob/living/carbon/human)) if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/)) if(!(usr in nearby)) diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/stacks/glass.dm index 90733aec8aa..f70c1e50b57 100644 --- a/code/game/objects/stacks/glass.dm +++ b/code/game/objects/stacks/glass.dm @@ -83,6 +83,9 @@ SHARDS if("full (2 sheets)") if(!src) return 1 if(src.loc != user) return 1 + if(src.amount < 2) + user << "\red You need more glass to do that." + return 1 if(locate(/obj/structure/window) in user.loc) user << "\red There is a window in the way." return 1 @@ -142,6 +145,9 @@ SHARDS if("full (2 sheets)") if(!src) return 1 if(src.loc != user) return 1 + if(src.amount < 2) + user << "\red You need more glass to do that." + return 1 if(locate(/obj/structure/window) in user.loc) user << "\red There is a window in the way." return 1 diff --git a/code/modules/clothing/head/hats.dm b/code/modules/clothing/head/hats.dm index a48187d97bd..ca94d809f95 100644 --- a/code/modules/clothing/head/hats.dm +++ b/code/modules/clothing/head/hats.dm @@ -116,6 +116,7 @@ item_state = "syndicate" see_face = 0.0 flags = FPRINT | TABLEPASS | BLOCKHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES /obj/item/clothing/head/chaplain_hood name = "chaplain's hood" @@ -142,4 +143,5 @@ item_state = "cardborg_h" flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH see_face = 0.0 + armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES diff --git a/code/modules/clothing/head/helmets.dm b/code/modules/clothing/head/helmets.dm index 4be85149b23..12621b0addc 100644 --- a/code/modules/clothing/head/helmets.dm +++ b/code/modules/clothing/head/helmets.dm @@ -32,8 +32,6 @@ item_state = "thunderdome" armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0) - - /obj/item/clothing/head/helmet/welding name = "welding helmet" desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index a2f976ea90e..b732e4269bc 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -15,14 +15,14 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS - - /obj/item/clothing/suit/bluetag name = "blue laser tag armour" desc = "Blue Pride, Station Wide" icon_state = "bluetag" item_state = "bluetag" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + allowed = list (/obj/item/weapon/gun/energy/laser/bluetag) + /obj/item/clothing/suit/redtag name = "red laser tag armour" @@ -30,6 +30,7 @@ icon_state = "redtag" item_state = "redtag" body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + allowed = list (/obj/item/weapon/gun/energy/laser/redtag) /obj/item/clothing/suit/storage/apron diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 2233b41d551..0d0e31ab8f1 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -86,6 +86,8 @@ obj/item/weapon/gun/energy/laser/retro icon_state = "bluetag" desc = "Standard issue weapon of the Imperial Guard" projectile_type = "/obj/item/projectile/bluetag" + origin_tech = "combat=1;magnets=2" + var/charge_tick = 0 special_check(var/mob/living/carbon/human/M) if(ishuman(M)) @@ -93,8 +95,6 @@ obj/item/weapon/gun/energy/laser/retro return 1 M << "\red You need to be wearing your laser tag vest!" return 0 - var/charge_tick = 0 - New() ..() @@ -122,6 +122,7 @@ obj/item/weapon/gun/energy/laser/retro icon_state = "redtag" desc = "Standard issue weapon of the Imperial Guard" projectile_type = "/obj/item/projectile/redtag" + origin_tech = "combat=1;magnets=2" var/charge_tick = 0 special_check(var/mob/living/carbon/human/M) diff --git a/config/README feedback.txt b/config/README feedback.txt new file mode 100644 index 00000000000..00c504e2e45 --- /dev/null +++ b/config/README feedback.txt @@ -0,0 +1,30 @@ +Create a databse at the same location where the server MySQL databse is. (as defined in config/dbconfig.txt under ADDRESS and PORT) It can be a separate database or the same one, as you wish. Create the following table in it: (name needs to remain as 'erro_feedback') + + +CREATE TABLE IF NOT EXISTS `erro_feedback` ( + + `id` int(11) NOT NULL AUTO_INCREMENT, + + `time` datetime NOT NULL, + + `round_id` int(8) NOT NULL, + + `var_name` varchar(32) NOT NULL, + + `var_value` int(16) DEFAULT NULL, + + `details` text, + + PRIMARY KEY (`id`) + +); + + + +Open the file config/dbconfig.txt and edit the following lines: + +FEEDBACK_DATABASE test + +FEEDBACK_LOGIN mylogin + +FEEDBACK_PASSWORD mypassword \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 751894234fa..1448218d8a1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -47,6 +47,17 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> +