diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm index 7cb2439cc68..b2854f21d36 100644 --- a/code/defines/obj/hydro.dm +++ b/code/defines/obj/hydro.dm @@ -389,6 +389,72 @@ plant_type = 0 growthstages = 6 +/obj/item/seeds/koiseed + name = "pack of koibean seeds" + desc = "These seeds grow into koibean plants." + icon_state = "seed-koibean" + species = "soybean" + plantname = "Koibean Plants" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans" + lifespan = 25 + endurance = 15 + maturation = 4 + production = 4 + yield = 3 + potency = 10 + plant_type = 0 + growthstages = 4 + +/obj/item/seeds/moonflowerseed + name = "pack of moonflower seeds" + desc = "These seeds grow into moonflowers." + icon_state = "seed-moonflower" + species = "moonflower" + plantname = "Moonflowers" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower" + lifespan = 25 + endurance = 20 + maturation = 6 + production = 2 + yield = 2 + potency = 15 + oneharvest = 1 + growthstages = 3 + plant_type = 0 + +/obj/item/seeds/novaflowerseed + name = "pack of novaflower seeds" + desc = "These seeds grow into novaflowers." + icon_state = "seed-novaflower" + species = "novaflower" + plantname = "Novaflowers" + productname = "/obj/item/weapon/grown/novaflower" + lifespan = 25 + endurance = 20 + maturation = 6 + production = 2 + yield = 2 + potency = 20 + oneharvest = 1 + growthstages = 3 + plant_type = 0 + +/obj/item/seeds/chillighost + name = "pack of ghost chilli seeds" + desc = "These seeds grow into a chili said to be the hottest in the galaxy." + icon_state = "seed-chilighost" + species = "chilighost" + plantname = "chilighost" + productname = "/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chilli" + lifespan = 20 + endurance = 10 + maturation = 10 + production = 10 + yield = 3 + potency = 20 + plant_type = 0 + growthstages = 6 + /obj/item/seeds/wheatseed name = "pack of wheat seeds" desc = "These may, or may not, grow into weed." @@ -1161,6 +1227,29 @@ throw_range = 3 plant_type = 1 seed = "/obj/item/seeds/sunflower" + +/obj/item/weapon/grown/novaflower + name = "novaflower" + desc = "These beautiful flowers have a crisp smokey scent, like a summer bonfire." + icon = 'icons/obj/harvest.dmi' + icon_state = "novaflower" + damtype = "fire" + force = 0 + flags = TABLEPASS + throwforce = 1 + w_class = 1.0 + throw_speed = 1 + throw_range = 3 + plant_type = 0 + seed = "/obj/item/seeds/novaflower" + attack_verb = list("seared", "heated", "whacked", "steamed") + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1) + reagents.add_reagent("capsaicin", round(potency, 1)) + force = round((5+potency/5), 1) + /* /obj/item/weapon/grown/gibtomato desc = "A plump tomato." diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 7b72fc1353f..c314c1c0f62 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -8,7 +8,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" name = "changeling" config_tag = "changeling" restricted_jobs = list("AI", "Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative") required_players = 2 required_players_secret = 10 required_enemies = 1 diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 59d4734b200..c8a7852af1a 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -20,7 +20,7 @@ /datum/game_mode/cult name = "cult" config_tag = "cult" - restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield") + restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative") protected_jobs = list() required_players = 5 required_players_secret = 15 diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index c852c6e7aaf..c841e47e43c 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -14,7 +14,7 @@ /datum/game_mode/revolution name = "revolution" config_tag = "revolution" - restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield") + restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer", "Blueshield", "Nanotrasen Representative") required_players = 4 required_players_secret = 15 required_enemies = 3 diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index cb3ca41dc8a..d21e1897de2 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -8,7 +8,7 @@ name = "traitor" config_tag = "traitor" restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield")//AI", Currently out of the list as malf does not work for shit + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Blueshield", "Nanotrasen Representative")//AI", Currently out of the list as malf does not work for shit required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm index a0f8c371e41..a635507a160 100644 --- a/code/game/machinery/hydroponics.dm +++ b/code/game/machinery/hydroponics.dm @@ -323,6 +323,14 @@ obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! del(myseed) myseed = new /obj/item/seeds/angelmycelium + else if ( istype(myseed, /obj/item/seeds/sunflowerseed )) + del(myseed) + switch(rand(1,100)) + if(1 to 50) + myseed = new /obj/item/seeds/moonflowerseed + if(51 to 100) + myseed = new /obj/item/seeds/novaflowerseed + else if ( istype(myseed, /obj/item/seeds/lemonseed )) del(myseed) myseed = new /obj/item/seeds/cashseed @@ -337,11 +345,23 @@ obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! else if ( istype(myseed, /obj/item/seeds/chiliseed )) del(myseed) - myseed = new /obj/item/seeds/icepepperseed + switch(rand(1,100)) + if(1 to 50) + myseed = new /obj/item/seeds/icepepperseed + if(51 to 100) + myseed = new /obj/item/seeds/chillighost + + else if ( istype(myseed, /obj/item/seeds/soyaseed )) + del(myseed) + myseed = new /obj/item/seeds/koiseed else if ( istype(myseed, /obj/item/seeds/appleseed )) del(myseed) - myseed = new /obj/item/seeds/goldappleseed + switch(rand(1,100)) + if(1 to 50) + myseed = new /obj/item/seeds/goldappleseed + if(51 to 100) + myseed = new /obj/item/seeds/poisonedappleseed else if ( istype(myseed, /obj/item/seeds/berryseed )) del(myseed) diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm index 054e2b217a6..ccda10b4d6a 100644 --- a/code/game/objects/items/weapons/hydroponics.dm +++ b/code/game/objects/items/weapons/hydroponics.dm @@ -130,6 +130,31 @@ M << " [user] smacks you with a sunflower!FLOWER POWER" user << " Your sunflower's FLOWER POWER strikes [M]" +/* + * Sun/Novaflower + */ +/obj/item/weapon/grown/sunflower/attack(mob/M as mob, mob/user as mob) + M << " [user] smacks you with a sunflower!FLOWER POWER" + user << " Your sunflower's FLOWER POWER strikes [M]" + +/obj/item/weapon/grown/novaflower/attack(mob/living/carbon/M as mob, mob/user as mob) + if(!..()) return + if(istype(M, /mob/living)) + M << "\red You are heated by the warmth of the of the [name]!" + M.bodytemperature += potency/2 * TEMPERATURE_DAMAGE_COEFFICIENT + +/obj/item/weapon/grown/novaflower/afterattack(atom/A as mob|obj, mob/user as mob,proximity) + if(!proximity) return + if(endurance > 0) + endurance -= rand(1,(endurance/3)+1) + else + usr << "All the petals have fallen off the [name] from violent whacking." + del(src) + +/obj/item/weapon/grown/novaflower/pickup(mob/living/carbon/human/user as mob) + if(!user.gloves) + user << "\red The [name] burns your bare hand!" + user.adjustFireLoss(rand(1,5)) /* * Nettle diff --git a/code/game/objects/items/weapons/ninja_manuscript.dm b/code/game/objects/items/weapons/ninja_manuscript.dm new file mode 100644 index 00000000000..8c8674a42c7 --- /dev/null +++ b/code/game/objects/items/weapons/ninja_manuscript.dm @@ -0,0 +1,30 @@ +/obj/item/weapon/ninja_manuscript + name = "Manuscript" + desc = "A mysterious manuscript..." + icon = 'icons/obj/library.dmi' + icon_state = "book1" + throw_speed = 1 + throw_range = 5 + w_class = 3 + flags = TABLEPASS + attack_verb = list("bashed", "whacked", "educated") + + var/charges = 1 + +/obj/item/weapon/ninja_manuscript/attack_self(var/mob/user as mob) + + if(charges <= 0) + user << "\red The manuscript's power appears spent..." + return + + else + user << "\blue You intently read the manuscript and come to the realization that true balance is achieved through self-will." + user << "\blue You relax and concentrate deeply; something in your mind alights ablaze and you realize the only way to true balance is the way of the Ninja." + + charges-- + + + user.mind.assigned_role = "MODE" + user.mind.special_role = "Ninja" + + return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 39b4ba39800..5a529b40df3 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -94,7 +94,7 @@ max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class max_w_class = 3 w_class = 1 - can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/grown","/obj/item/seeds","/obj/item/weapon/grown") + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/grown","/obj/item/seeds","/obj/item/weapon/grown", "/obj/item/stack/tile/grass") /obj/item/weapon/storage/bag/plants/portaseeder diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm index c13aafb5927..a6389dd9a9e 100644 --- a/code/game/objects/structures/crates_lockers/largecrate.dm +++ b/code/game/objects/structures/crates_lockers/largecrate.dm @@ -62,3 +62,18 @@ for(var/i = 0, i < num, i++) new /mob/living/simple_animal/chick(loc) ..() + +/obj/structure/largecrate/ninja + name = "Mysterious Crate" + icon_state = "lisacrate" + +/obj/structure/largecrate/ninja/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/crowbar)) + new /obj/item/clothing/gloves/space_ninja(loc) + new /obj/item/clothing/mask/gas/voice/space_ninja(loc) + new /obj/item/clothing/shoes/space_ninja(loc) + new /obj/item/clothing/head/helmet/space/space_ninja(loc) + new /obj/item/clothing/suit/space/space_ninja(loc) + new /obj/item/weapon/ninja_manuscript(loc) + ..() + diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 6a9bd1ca04d..5af896c881a 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -54,17 +54,17 @@ dispensable_reagents = sortList(dispensable_reagents) if(broken_on_spawn) - var/amount = pick(1,2,2,3,4) + var/amount = pick(3,3,4) var/list/options = list() - options[/obj/item/weapon/stock_parts/capacitor/adv] = "Add an advanced capacitor to fix it." + options[/obj/item/weapon/stock_parts/capacitor/super] = "Add a super capacitor to fix it." options[/obj/item/weapon/stock_parts/console_screen] = "Replace the console screen to fix it." options[/obj/item/weapon/stock_parts/manipulator/pico] = "Upgrade to a pico manipulator to fix it." - options[/obj/item/weapon/stock_parts/matter_bin/adv] = "Give it an advanced matter bin to fix it." - options[/obj/item/stack/sheet/mineral/diamond] = "Line up a cut diamond with the nozzle to fix it." - options[/obj/item/stack/sheet/mineral/uranium] = "Position a uranium sheet inside to fix it." - options[/obj/item/stack/sheet/mineral/plasma] = "Enter a block of plasma to fix it." - options[/obj/item/stack/sheet/mineral/silver] = "Cover the internals with a silver lining to fix it." - options[/obj/item/stack/sheet/mineral/gold] = "Wire a golden filament to fix it." + options[/obj/item/weapon/stock_parts/matter_bin/super] = "Give it a super matter bin to fix it." + options[/obj/item/weapon/cell/super] = "Replace the reagent synthesizer with a super capacity cell to fix it." + options[/obj/item/device/mass_spectrometer/adv] = "Replace the reagent scanner with an advanced mass spectrometer to fix it" + options[/obj/item/weapon/stock_parts/micro_laser/ultra] = "Repair the reagent synthesizer with an ultra-high-power micro-laser to fix it" + options[/obj/item/device/reagent_scanner/adv] = "Replace the reagent scanner with an advanced reagent scanner to fix it" + options[/obj/item/stack/nanopaste] = "Apply some nanopaste to the broken nozzles to fix it." options[/obj/item/stack/sheet/plasteel] = "Surround the outside with a plasteel cover to fix it." options[/obj/item/stack/sheet/rglass] = "Insert a pane of reinforced glass to fix it." @@ -882,6 +882,7 @@ /obj/item/stack/sheet/mineral/gold = list("gold" = 20), /obj/item/weapon/grown/nettle = list("sacid" = 0), /obj/item/weapon/grown/deathnettle = list("pacid" = 0), + /obj/item/weapon/grown/novaflower = list("capsaicin" = 0), //Blender Stuff /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = list("soymilk" = 0), diff --git a/code/modules/reagents/reagent_containers/food/snacks/grown.dm b/code/modules/reagents/reagent_containers/food/snacks/grown.dm index cada51cf361..8c4a51129e4 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/grown.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/grown.dm @@ -541,6 +541,44 @@ reagents.add_reagent("nutriment", 1+round((potency / 20), 1)) bitesize = 1+round(reagents.total_volume / 2, 1) +/obj/item/weapon/reagent_containers/food/snacks/grown/koibeans + seed = "/obj/item/seeds/koiseed" + name = "koibean" + desc = "Something about these seems fishy." + icon_state = "koibeans" + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1+round((potency / 30), 1)) + reagents.add_reagent("carpotoxin", 1+round((potency / 20), 1)) + bitesize = 1+round(reagents.total_volume / 2, 1) + +/obj/item/weapon/reagent_containers/food/snacks/grown/moonflower + seed = "/obj/item/seeds/moonflowerseed" + name = "moonflower" + desc = "Store in a location at least 50 yards away from werewolves." + icon_state = "moonflower" + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1+round((potency / 50), 1)) + reagents.add_reagent("moonshine", 1+round((potency / 10), 1)) + bitesize = 1+round(reagents.total_volume / 2, 1) + +/obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chilli + seed = "/obj/item/seeds/chillighost" + name = "ghost chili" + desc = "It seems to be vibrating gently." + icon_state = "ghostchilipepper" + var/mob/held_mob + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("nutriment", 1+round((potency / 25), 1)) + reagents.add_reagent("capsaicin", 8+round(potency / 2, 1)) + reagents.add_reagent("condensedcapsaicin", 4+round(potency / 4, 1)) + bitesize = 1+round(reagents.total_volume / 4, 1) + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato seed = "/obj/item/seeds/tomatoseed" name = "tomato" diff --git a/code/modules/research/xenoarchaeology/artifact/artifact.dm b/code/modules/research/xenoarchaeology/artifact/artifact.dm index 6300a6d71a4..669ae3d17b0 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact.dm @@ -13,9 +13,10 @@ artifact_id = "[pick("kappa","sigma","antaeres","beta","omicron","iota","epsilon","omega","gamma","delta","tau","alpha")]-[rand(100,999)]" artifact_find_type = pick(\ + 5;/obj/structure/largecrate/ninja,\ 5;/obj/machinery/power/supermatter,\ 5;/obj/structure/constructshell,\ - 5;/obj/machinery/syndicate_beacon,\ + 5;/obj/machinery/wish_granter,\ 25;/obj/machinery/power/supermatter/shard,\ 50;/obj/structure/cult/pylon,\ 100;/obj/machinery/auto_cloner,\ diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi index 3b110ac901c..d3a7b1f724f 100644 Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi index b55226386de..08ed0d2eaca 100644 Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index 2567f7828ed..46f1ce55fe6 100644 Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 7b8edd1343e..2f3eb4b4269 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ