|
|
@ -1,13 +1,15 @@
|
|
|
|
import asyncio
|
|
|
|
import asyncio
|
|
|
|
import collections
|
|
|
|
import collections
|
|
|
|
import datetime
|
|
|
|
import datetime
|
|
|
|
|
|
|
|
import json
|
|
|
|
import time
|
|
|
|
import time
|
|
|
|
from random import choice
|
|
|
|
from random import choice
|
|
|
|
|
|
|
|
from typing import Any
|
|
|
|
|
|
|
|
|
|
|
|
import discord
|
|
|
|
import discord
|
|
|
|
from redbot.core import commands, Config, bank
|
|
|
|
from redbot.core import commands, Config, bank
|
|
|
|
from redbot.core.bot import Red
|
|
|
|
from redbot.core.bot import Red
|
|
|
|
from typing import Any
|
|
|
|
from redbot.core.data_manager import bundled_data_path
|
|
|
|
|
|
|
|
|
|
|
|
Cog: Any = getattr(commands, "Cog", object)
|
|
|
|
Cog: Any = getattr(commands, "Cog", object)
|
|
|
|
|
|
|
|
|
|
|
@ -98,739 +100,9 @@ class PlantTycoon(Cog):
|
|
|
|
|
|
|
|
|
|
|
|
self.config.register_user(**default_user)
|
|
|
|
self.config.register_user(**default_user)
|
|
|
|
|
|
|
|
|
|
|
|
self.plants = {
|
|
|
|
self.plants = None
|
|
|
|
"plants": [
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Poppy",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/S4hjyUX.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Dandelion",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/emqnQP2.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Daisy",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/lcFq4AB.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Chrysanthemum",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/5jLtqWL.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Pansy",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/f7TgD1b.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Lavender",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/g3OmOSK.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Lily",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/0hzy7lO.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Petunia",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/rJm8ISv.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Sunflower",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/AzgzQK9.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Daffodil",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/pnCCRsH.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Clover",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/jNTgirw.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Tulip",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/kodIFjE.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Rose",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/sdTNiOH.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Aster",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/1tN04Hl.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Aloe Vera",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/WFAYIpx.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Orchid",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 3600,
|
|
|
|
|
|
|
|
"rarity": "common",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/IQrQYDC.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.625,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Flower Power",
|
|
|
|
|
|
|
|
"reward": 600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Dragon Fruit Plant",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/pfngpDS.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Mango Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/ybR78Oc.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Lychee Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/w9LkfhX.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Durian Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/jh249fz.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Fig Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/YkhnpEV.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Jack Fruit Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/2D79TlA.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Prickly Pear Plant",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/GrcGAGj.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Pineapple Plant",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/VopYQtr.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Citron Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/zh7Dr23.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Cherimoya Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/H62gQK6.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Mangosteen Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/McNnMqa.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Guava Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/iy8WgPt.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Orange Tree",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/lwjEJTm.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Apple Tree",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/QI3UTR3.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Sapodilla Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 5400,
|
|
|
|
|
|
|
|
"rarity": "uncommon",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/6BvO5Fu.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 0.75,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Fruit Brute",
|
|
|
|
|
|
|
|
"reward": 1200,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Franklin Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 7200,
|
|
|
|
|
|
|
|
"rarity": "rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/hoh17hp.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 1.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Sporadic",
|
|
|
|
|
|
|
|
"reward": 2400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Parrot's Beak",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 7200,
|
|
|
|
|
|
|
|
"rarity": "rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/lhSjfQY.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 1.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Sporadic",
|
|
|
|
|
|
|
|
"reward": 2400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Koki'o",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 7200,
|
|
|
|
|
|
|
|
"rarity": "rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/Dhw9ync.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 1.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Sporadic",
|
|
|
|
|
|
|
|
"reward": 2400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Jade Vine",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 7200,
|
|
|
|
|
|
|
|
"rarity": "rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/h4fJo2R.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 1.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Sporadic",
|
|
|
|
|
|
|
|
"reward": 2400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Venus Fly Trap",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 7200,
|
|
|
|
|
|
|
|
"rarity": "rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/NoSdxXh.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 1.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Sporadic",
|
|
|
|
|
|
|
|
"reward": 2400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Chocolate Cosmos",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 7200,
|
|
|
|
|
|
|
|
"rarity": "rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/4ArSekX.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 1.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Sporadic",
|
|
|
|
|
|
|
|
"reward": 2400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Pizza Plant",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 9000,
|
|
|
|
|
|
|
|
"rarity": "super-rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/ASZXr7C.png",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Odd-pod",
|
|
|
|
|
|
|
|
"reward": 3600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
# {
|
|
|
|
|
|
|
|
# "name": "tba",
|
|
|
|
|
|
|
|
# "article": "a",
|
|
|
|
|
|
|
|
# "time": 9000,
|
|
|
|
|
|
|
|
# "rarity": "super-rare",
|
|
|
|
|
|
|
|
# "image": "tba",
|
|
|
|
|
|
|
|
# "health": 100,
|
|
|
|
|
|
|
|
# "degradation": 1.5,
|
|
|
|
|
|
|
|
# "threshold": 110,
|
|
|
|
|
|
|
|
# "badge": "Odd-pod",
|
|
|
|
|
|
|
|
# "reward": 3600
|
|
|
|
|
|
|
|
# },
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Piranha Plant",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 9000,
|
|
|
|
|
|
|
|
"rarity": "super-rare",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/c03i9W7.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Odd-pod",
|
|
|
|
|
|
|
|
"reward": 3600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
# {
|
|
|
|
|
|
|
|
# "name": "tba",
|
|
|
|
|
|
|
|
# "article": "a",
|
|
|
|
|
|
|
|
# "time": 9000,
|
|
|
|
|
|
|
|
# "rarity": "super-rare",
|
|
|
|
|
|
|
|
# "image": "tba",
|
|
|
|
|
|
|
|
# "health": 100,
|
|
|
|
|
|
|
|
# "degradation": 1.5,
|
|
|
|
|
|
|
|
# "threshold": 110,
|
|
|
|
|
|
|
|
# "badge": "Odd-pod",
|
|
|
|
|
|
|
|
# "reward": 3600
|
|
|
|
|
|
|
|
# },
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Peashooter",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 9000,
|
|
|
|
|
|
|
|
"rarity": "super-rare",
|
|
|
|
|
|
|
|
"image": "https://i.imgur.com/Vo4v2Ry.png",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Odd-pod",
|
|
|
|
|
|
|
|
"reward": 3600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Eldergleam Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 10800,
|
|
|
|
|
|
|
|
"rarity": "epic",
|
|
|
|
|
|
|
|
"image": "https://i.imgur.com/pnZYKZc.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Greenfingers",
|
|
|
|
|
|
|
|
"reward": 5400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Pikmin",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 10800,
|
|
|
|
|
|
|
|
"rarity": "epic",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/sizf7hE.png",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Greenfingers",
|
|
|
|
|
|
|
|
"reward": 5400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Flora Colossus",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 10800,
|
|
|
|
|
|
|
|
"rarity": "epic",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/9f5QzaW.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Greenfingers",
|
|
|
|
|
|
|
|
"reward": 5400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Plantera Bulb",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 10800,
|
|
|
|
|
|
|
|
"rarity": "epic",
|
|
|
|
|
|
|
|
"image": "https://i.imgur.com/ExqLLHO.png",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Greenfingers",
|
|
|
|
|
|
|
|
"reward": 5400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Chorus Tree",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 10800,
|
|
|
|
|
|
|
|
"rarity": "epic",
|
|
|
|
|
|
|
|
"image": "https://i.imgur.com/tv2B72j.png",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 2.5,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Greenfingers",
|
|
|
|
|
|
|
|
"reward": 5400,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Money Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 35400,
|
|
|
|
|
|
|
|
"rarity": "legendary",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/MIJQDLL.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 8,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Nobel Peas Prize",
|
|
|
|
|
|
|
|
"reward": 10800,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Truffula Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 35400,
|
|
|
|
|
|
|
|
"rarity": "legendary",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/cFSmaHH.png",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 8,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Nobel Peas Prize",
|
|
|
|
|
|
|
|
"reward": 10800,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
"name": "Whomping Willow",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 35400,
|
|
|
|
|
|
|
|
"rarity": "legendary",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/Ibwm2xY.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 8,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Nobel Peas Prize",
|
|
|
|
|
|
|
|
"reward": 10800,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
"event": {
|
|
|
|
|
|
|
|
"January": {
|
|
|
|
|
|
|
|
"name": "Tanabata Tree",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/FD38JJj.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"February": {
|
|
|
|
|
|
|
|
"name": "Chocolate Rose",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/Sqg6pcG.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"March": {
|
|
|
|
|
|
|
|
"name": "Shamrock",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/kVig04M.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"April": {
|
|
|
|
|
|
|
|
"name": "Easter Egg Eggplant",
|
|
|
|
|
|
|
|
"article": "an",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/5jltGQa.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"October": {
|
|
|
|
|
|
|
|
"name": "Jack O' Lantern",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/efApsxG.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"November": {
|
|
|
|
|
|
|
|
"name": "Mayflower",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/nntNtoL.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"December": {
|
|
|
|
|
|
|
|
"name": "Holly",
|
|
|
|
|
|
|
|
"article": "a",
|
|
|
|
|
|
|
|
"time": 70800,
|
|
|
|
|
|
|
|
"rarity": "event",
|
|
|
|
|
|
|
|
"image": "http://i.imgur.com/maDLmJC.jpg",
|
|
|
|
|
|
|
|
"health": 100,
|
|
|
|
|
|
|
|
"degradation": 9,
|
|
|
|
|
|
|
|
"threshold": 110,
|
|
|
|
|
|
|
|
"badge": "Annualsary",
|
|
|
|
|
|
|
|
"reward": 21600,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.products = {
|
|
|
|
self.products = None
|
|
|
|
"water": {
|
|
|
|
|
|
|
|
"cost": 5,
|
|
|
|
|
|
|
|
"health": 10,
|
|
|
|
|
|
|
|
"damage": 45,
|
|
|
|
|
|
|
|
"modifier": 0,
|
|
|
|
|
|
|
|
"category": "water",
|
|
|
|
|
|
|
|
"uses": 1,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"manure": {
|
|
|
|
|
|
|
|
"cost": 20,
|
|
|
|
|
|
|
|
"health": 20,
|
|
|
|
|
|
|
|
"damage": 55,
|
|
|
|
|
|
|
|
"modifier": -0.035,
|
|
|
|
|
|
|
|
"category": "fertilizer",
|
|
|
|
|
|
|
|
"uses": 1,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"vermicompost": {
|
|
|
|
|
|
|
|
"cost": 35,
|
|
|
|
|
|
|
|
"health": 30,
|
|
|
|
|
|
|
|
"damage": 60,
|
|
|
|
|
|
|
|
"modifier": -0.5,
|
|
|
|
|
|
|
|
"category": "fertilizer",
|
|
|
|
|
|
|
|
"uses": 1,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"nitrates": {
|
|
|
|
|
|
|
|
"cost": 70,
|
|
|
|
|
|
|
|
"health": 60,
|
|
|
|
|
|
|
|
"damage": 75,
|
|
|
|
|
|
|
|
"modifier": -0.08,
|
|
|
|
|
|
|
|
"category": "fertilizer",
|
|
|
|
|
|
|
|
"uses": 1,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
"pruner": {
|
|
|
|
|
|
|
|
"cost": 500,
|
|
|
|
|
|
|
|
"health": 40,
|
|
|
|
|
|
|
|
"damage": 90,
|
|
|
|
|
|
|
|
"modifier": -0.065,
|
|
|
|
|
|
|
|
"category": "tool",
|
|
|
|
|
|
|
|
"uses": 10,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.defaults = {
|
|
|
|
self.defaults = {
|
|
|
|
"points": {
|
|
|
|
"points": {
|
|
|
@ -881,6 +153,15 @@ class PlantTycoon(Cog):
|
|
|
|
|
|
|
|
|
|
|
|
# self.bank = bot.get_cog('Economy').bank
|
|
|
|
# self.bank = bot.get_cog('Economy').bank
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def _load_plants_products(self):
|
|
|
|
|
|
|
|
plant_path = bundled_data_path(self) / "plants.json"
|
|
|
|
|
|
|
|
product_path = bundled_data_path(self) / "products.json"
|
|
|
|
|
|
|
|
with plant_path.open() as json_data:
|
|
|
|
|
|
|
|
self.plants = json.load(json_data)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with product_path.open() as json_data:
|
|
|
|
|
|
|
|
self.products = json.load(json_data)
|
|
|
|
|
|
|
|
|
|
|
|
async def _gardener(self, user: discord.User) -> Gardener:
|
|
|
|
async def _gardener(self, user: discord.User) -> Gardener:
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
#
|
|
|
@ -896,6 +177,8 @@ class PlantTycoon(Cog):
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Calculating the rate of degradation per check_completion() cycle.
|
|
|
|
# Calculating the rate of degradation per check_completion() cycle.
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
|
|
|
if self.products is None:
|
|
|
|
|
|
|
|
await self._load_plants_products()
|
|
|
|
|
|
|
|
|
|
|
|
modifiers = sum(
|
|
|
|
modifiers = sum(
|
|
|
|
[
|
|
|
|
[
|
|
|
@ -938,7 +221,8 @@ class PlantTycoon(Cog):
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# The function to add health
|
|
|
|
# The function to add health
|
|
|
|
#
|
|
|
|
#
|
|
|
|
|
|
|
|
if self.products is None:
|
|
|
|
|
|
|
|
await self._load_plants_products()
|
|
|
|
product = product.lower()
|
|
|
|
product = product.lower()
|
|
|
|
product_category = product_category.lower()
|
|
|
|
product_category = product_category.lower()
|
|
|
|
if product in self.products and self.products[product]["category"] == product_category:
|
|
|
|
if product in self.products and self.products[product]["category"] == product_category:
|
|
|
@ -1020,9 +304,12 @@ class PlantTycoon(Cog):
|
|
|
|
)
|
|
|
|
)
|
|
|
|
await ctx.send(embed=em)
|
|
|
|
await ctx.send(embed=em)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@commands.cooldown(1, 60 * 10, commands.BucketType.user)
|
|
|
|
@_gardening.command(name="seed")
|
|
|
|
@_gardening.command(name="seed")
|
|
|
|
async def _seed(self, ctx: commands.Context):
|
|
|
|
async def _seed(self, ctx: commands.Context):
|
|
|
|
"""Plant a seed inside the earth."""
|
|
|
|
"""Plant a seed inside the earth."""
|
|
|
|
|
|
|
|
if self.plants is None:
|
|
|
|
|
|
|
|
await self._load_plants_products()
|
|
|
|
author = ctx.author
|
|
|
|
author = ctx.author
|
|
|
|
# server = context.message.server
|
|
|
|
# server = context.message.server
|
|
|
|
# if author.id not in self.gardeners:
|
|
|
|
# if author.id not in self.gardeners:
|
|
|
@ -1157,6 +444,8 @@ class PlantTycoon(Cog):
|
|
|
|
@_gardening.command(name="plants")
|
|
|
|
@_gardening.command(name="plants")
|
|
|
|
async def _plants(self, ctx):
|
|
|
|
async def _plants(self, ctx):
|
|
|
|
"""Look at the list of the available plants."""
|
|
|
|
"""Look at the list of the available plants."""
|
|
|
|
|
|
|
|
if self.plants is None:
|
|
|
|
|
|
|
|
await self._load_plants_products()
|
|
|
|
tick = ""
|
|
|
|
tick = ""
|
|
|
|
tock = ""
|
|
|
|
tock = ""
|
|
|
|
tick_tock = 0
|
|
|
|
tick_tock = 0
|
|
|
@ -1173,15 +462,18 @@ class PlantTycoon(Cog):
|
|
|
|
await ctx.send(embed=em)
|
|
|
|
await ctx.send(embed=em)
|
|
|
|
|
|
|
|
|
|
|
|
@_gardening.command(name="plant")
|
|
|
|
@_gardening.command(name="plant")
|
|
|
|
async def _plant(self, ctx: commands.Context, *plant):
|
|
|
|
async def _plant(self, ctx: commands.Context, *, plantname):
|
|
|
|
"""Look at the details of a plant."""
|
|
|
|
"""Look at the details of a plant."""
|
|
|
|
plant = " ".join(plant)
|
|
|
|
if self.plants is None:
|
|
|
|
|
|
|
|
await self._load_plants_products()
|
|
|
|
t = False
|
|
|
|
t = False
|
|
|
|
|
|
|
|
plant = None
|
|
|
|
for p in self.plants["plants"]:
|
|
|
|
for p in self.plants["plants"]:
|
|
|
|
if p["name"].lower() == plant.lower():
|
|
|
|
if p["name"].lower() == plantname.lower():
|
|
|
|
plant = p
|
|
|
|
plant = p
|
|
|
|
t = True
|
|
|
|
t = True
|
|
|
|
break
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
|
|
if t:
|
|
|
|
if t:
|
|
|
|
em = discord.Embed(
|
|
|
|
em = discord.Embed(
|
|
|
|
title="Plant statistics of {}".format(plant["name"]), color=discord.Color.green()
|
|
|
|
title="Plant statistics of {}".format(plant["name"]), color=discord.Color.green()
|
|
|
@ -1231,6 +523,9 @@ class PlantTycoon(Cog):
|
|
|
|
@_gardening.command(name="buy")
|
|
|
|
@_gardening.command(name="buy")
|
|
|
|
async def _buy(self, ctx, product=None, amount: int = 1):
|
|
|
|
async def _buy(self, ctx, product=None, amount: int = 1):
|
|
|
|
"""Buy gardening supplies."""
|
|
|
|
"""Buy gardening supplies."""
|
|
|
|
|
|
|
|
if self.products is None:
|
|
|
|
|
|
|
|
await self._load_plants_products()
|
|
|
|
|
|
|
|
|
|
|
|
author = ctx.author
|
|
|
|
author = ctx.author
|
|
|
|
if product is None:
|
|
|
|
if product is None:
|
|
|
|
em = discord.Embed(
|
|
|
|
em = discord.Embed(
|
|
|
@ -1297,7 +592,6 @@ class PlantTycoon(Cog):
|
|
|
|
em = discord.Embed(description=message, color=discord.Color.green())
|
|
|
|
em = discord.Embed(description=message, color=discord.Color.green())
|
|
|
|
await ctx.send(embed=em)
|
|
|
|
await ctx.send(embed=em)
|
|
|
|
|
|
|
|
|
|
|
|
@commands.cooldown(1, 60 * 10, commands.BucketType.user)
|
|
|
|
|
|
|
|
@commands.command(name="shovel")
|
|
|
|
@commands.command(name="shovel")
|
|
|
|
async def _shovel(self, ctx: commands.Context):
|
|
|
|
async def _shovel(self, ctx: commands.Context):
|
|
|
|
"""Shovel your plant out."""
|
|
|
|
"""Shovel your plant out."""
|
|
|
|