Esempio n. 1
0
def itemBourse(item, type):
    """Version 3.0 | Attribue les prix de la bourse """
    # récupération du fichier de sauvegarde de la bourse
    with open('gems/bourse.json', 'r') as fp:
        dict = json.load(fp)
    temp = dict[item]
    # Récuperation de la valeur courante
    if type == "vente":
        pnow = temp["vente"]
    elif type == "achat":
        pnow = temp["achat"]
    PrixMini = 2

    # Verification pour l'actualisation de la bourse
    if sql.spam(PlayerID_GetGems, couldown_8h, "bourse", "gems"):
        # Gestion des exceptions
        if item in GI.exception:
            return pnow
        if item in ObjetEventEnd:
            return pnow

        # Récuperation prix d'origine | prix mini | prix maxi
        taux = 0.9
        for c in GI.PrixItem:
            if c.nom == item:
                if type == "vente":
                    pdef = c.vente
                    pmini = c.vente - (c.vente * taux)
                    pmaxi = c.vente + (c.vente * taux)
                elif type == "achat":
                    pdef = c.achat
                    pmini = c.achat - (c.achat * taux)
                    pmaxi = c.achat + (c.achat * taux)
        for c in GI.PrixOutil:
            if c.nom == item:
                if type == "vente":
                    pdef = c.vente
                    pmini = c.vente - (c.vente * taux)
                    pmaxi = c.vente + (c.vente * taux)
                elif type == "achat":
                    pdef = c.achat
                    pmini = c.achat - (c.achat * taux)
                    pmaxi = c.achat + (c.achat * taux)

        pdef = int(pdef)
        if pmini <= PrixMini:
            pmini = PrixMini
        else:
            pmini = int(pmini)
        pmaxi = int(pmaxi)
        # print("============================================\n=== {0} >>> {1}".format(type, item))
        # print("Prix défaut: {0}\nPrix mini: {1}\nPrix maxi: {2}".format(pdef, pmini, pmaxi))

        # Fonctionnement de la bourse
        DcrackB = r.randint(1, 1000)
        # crack boursier négatif
        if DcrackB <= 5:
            taux = 0.85
            Prix = int(pnow - (pnow * taux))
        # crack boursier positif
        elif DcrackB >= 985 or (pnow < 4 and DcrackB >= 900):
            if pnow <= 50:
                taux = 10
            elif pnow <= 7:
                taux = 50
            else:
                taux = 5
            Prix = int(pnow + (pnow * taux))
        # évolution de la bourse normale (entre -10% et +10% de la valeur courante)
        else:
            if pnow > pmaxi:
                pourcentage = r.randint(-20, -5)
            elif pnow <= pmini:
                pourcentage = r.randint(15, 30)
            elif (pnow > (pmaxi - pdef * 0.3)) or (pnow <
                                                   (pmini + pdef * 0.3)):
                pourcentage = r.randint(-20, 20)
            else:
                if pnow > 10:
                    pourcentage = r.randint(-10, 10)
                else:
                    pourcentage = r.randint(-5, 20)
            Prix = int(pnow + ((pnow * pourcentage) // 100))
        if Prix < PrixMini:
            Prix = PrixMini
        # print("\nAncien prix: {1}\nNouveau prix: {0}\n".format(Prix, pnow))

        # La valeur de vente ne peux etre supérieur à la valeur d'achat
        if type == "vente":
            if Prix > temp["achat"]:
                Prix = temp["achat"]
            temp["vente"] = Prix
            temp["precVente"] = pnow
        # La valeur d'achat ne peux être inférieur à la valeur de vente
        elif type == "achat":
            if Prix < temp["vente"]:
                Prix = temp["vente"]
            temp["achat"] = Prix
            temp["precAchat"] = pnow
        # actualisation du fichier de sauvegarde de la bourse
        dict[item] = temp
        with open('gems/bourse.json', 'w') as fp:
            json.dump(dict, fp, indent=4)
        return Prix
    else:
        return pnow
Esempio n. 2
0
def loadItem(F=False):
    jour = dt.date.today()

    # Récupere le multiplicateur
    m = 1
    if jour.day == 5 or jour.day == 13 or jour.day == 20:
        path = "core/saisons.json"
        with open(path, encoding='utf-8') as json_file:
            data = json.load(json_file)
        m = data["mult"]
        if m <= 0:
            m = 1

    if F:
        GI.initBourse()
    global ObjetEventEnd
    ObjetEventEnd = []
    # ========== Items ==========

    global objetItem
    objetItem = [
        Item("cobblestone", m * itemBourse("cobblestone", "vente"),
             m * itemBourse("cobblestone", "achat"), 4, "minerai"),
        Item("iron", m * itemBourse("iron", "vente"),
             m * itemBourse("iron", "achat"), 10, "minerai"),
        Item("gold", m * itemBourse("gold", "vente"),
             m * itemBourse("gold", "achat"), 20, "minerai"),
        Item("diamond", m * itemBourse("diamond", "vente"),
             m * itemBourse("diamond", "achat"), 40, "minerai"),
        Item("emerald", m * itemBourse("emerald", "vente"),
             m * itemBourse("emerald", "achat"), 50, "minerai"),
        Item("ruby", m * itemBourse("ruby", "vente"),
             m * itemBourse("ruby", "achat"), 70, "minerai"),
        Item("fish", m * itemBourse("fish", "vente"),
             m * itemBourse("fish", "achat"), 2, "poisson"),
        Item("tropicalfish", m * itemBourse("tropicalfish", "vente"),
             m * itemBourse("tropicalfish", "achat"), 8, "poisson"),
        Item("blowfish", m * itemBourse("blowfish", "vente"),
             m * itemBourse("blowfish", "achat"), 8, "poisson"),
        Item("octopus", m * itemBourse("octopus", "vente"),
             m * itemBourse("octopus", "achat"), 16, "poisson"),
        Item("seed", m * itemBourse("seed", "vente"),
             m * itemBourse("seed", "achat"), 0.5, "plante"),
        Item("cacao", m * itemBourse("cacao", "vente"),
             m * itemBourse("cacao", "achat"), 1, "plante"),
        Item("potato", m * itemBourse("potato", "vente"),
             m * itemBourse("potato", "achat"), 1, "plante"),
        Item("oak", m * itemBourse("oak", "vente"),
             m * itemBourse("oak", "achat"), 50, "plante"),
        Item("spruce", m * itemBourse("spruce", "vente"),
             m * itemBourse("spruce", "achat"), 70, "plante"),
        Item("palm", m * itemBourse("palm", "vente"),
             m * itemBourse("palm", "achat"), 60, "plante"),
        Item("wheat", m * itemBourse("wheat", "vente"),
             m * itemBourse("wheat", "achat"), 3, "plante"),
        Item("grapes", m * itemBourse("grapes", "vente"),
             m * itemBourse("grapes", "achat"), 1, "emoji"),
        Item("wine_glass", m * itemBourse("wine_glass", "vente"),
             m * itemBourse("wine_glass", "achat"), 2, "emoji"),
        Item("beer", m * itemBourse("beer", "vente"),
             m * itemBourse("beer", "achat"), 2, "emoji"),
        Item("chocolate", m * itemBourse("chocolate", "vente"),
             m * itemBourse("chocolate", "achat"), 3, "consommable"),
        Item("fries", m * itemBourse("fries", "vente"),
             m * itemBourse("fries", "achat"), 30, "consommable"),
        Item("cookie", m * itemBourse("cookie", "vente"),
             m * itemBourse("cookie", "achat"), 1, "emoji"),
        Item("candy", m * itemBourse("candy", "vente"),
             m * itemBourse("candy", "achat"), 1, "emoji"),
        Item("lollipop", m * itemBourse("lollipop", "vente"),
             m * itemBourse("lollipop", "achat"), 2, "emoji"),
        Item("backpack", m * itemBourse("backpack", "vente"),
             m * itemBourse("backpack", "achat"), -200, "special"),
        Item("hyperpack", m * itemBourse("hyperpack", "vente"),
             m * itemBourse("hyperpack", "achat"), -2000, "special"),
        Item("fishhook", m * itemBourse("fishhook", "vente"),
             m * itemBourse("fishhook", "achat"), 1, "special")
    ]

    if not (jour.month == 10 and jour.day >= 22) or (jour.month == 11
                                                     and jour.day <= 10):
        for one in GI.ObjetHalloween:
            ObjetEventEnd.append(one)
    if not (jour.month == 12 and jour.day >= 20) or (jour.month == 1
                                                     and jour.day <= 14):
        for one in GI.ObjetChristmas:
            ObjetEventEnd.append(one)

    objetItem += [
        Item("pumpkin", m * itemBourse("pumpkin", "vente"),
             m * itemBourse("pumpkin", "achat"), 5, "halloween"),
        Item("pumpkinpie", m * itemBourse("pumpkinpie", "vente"),
             m * itemBourse("pumpkinpie", "achat"), 30, "halloween")
    ]

    objetItem += [
        Item("cupcake", m * itemBourse("cupcake", "vente"),
             m * itemBourse("cupcake", "achat"), 10, "christmas")
    ]

    # ========== Outils ==========

    global objetOutil
    objetOutil = [
        Outil("fishingrod", itemBourse("fishingrod", "vente"),
              itemBourse("fishingrod", "achat"), 25, 100, ""),
        Outil("pickaxe", itemBourse("pickaxe", "vente"),
              itemBourse("pickaxe", "achat"), 15, 75, ""),
        Outil("iron_pickaxe", itemBourse("iron_pickaxe", "vente"),
              itemBourse("iron_pickaxe", "achat"), 70, 200, "forge"),
        Outil("diamond_pickaxe", itemBourse("diamond_pickaxe", "vente"),
              itemBourse("diamond_pickaxe", "achat"), 150, 450, "forge"),
        Outil("shovel", itemBourse("shovel", "vente"),
              itemBourse("shovel", "achat"), 10, 35, ""),
        Outil("iron_shovel", itemBourse("iron_shovel", "vente"),
              itemBourse("iron_shovel", "achat"), 60, 100, "forge"),
        Outil("diamond_shovel", itemBourse("diamond_shovel", "vente"),
              itemBourse("diamond_shovel", "achat"), 120, 240, "forge"),
        Outil("planting_plan", itemBourse("planting_plan", "vente"),
              itemBourse("planting_plan", "achat"), 4, 4, "consommable"),
        Outil("barrel", itemBourse("barrel", "vente"),
              itemBourse("barrel", "achat"), 3, 3, "consommable"),
        Outil("furnace", itemBourse("furnace", "vente"),
              itemBourse("furnace", "achat"), 2, 2, "consommable"),
        Outil("bank_upgrade", itemBourse("bank_upgrade", "vente"),
              itemBourse("bank_upgrade", "achat"), 10000, None, "bank")
    ]

    # ========== Loot Box ==========

    global objetBox
    objetBox = [
        Box("commongems", "Gems Common", 30, 10, 50, "gems", 1),
        Box("raregems", "Gems Rare", 300, 100, 500, "gems", 2),
        Box("legendarygems", "Gems Legendary", 3000, 1000, 5000, "gems", 4),
        Box("gift", "Items en folie", 50000, 100, 100000, "gems", 3),
        Box("gift_heart", "Cadeau de la Saint Valentin", 0, 10000, 50000, "",
            2)
    ]

    if sql.spam(PlayerID_GetGems, couldown_8h, "bourse", "gems"):
        sql.updateComTime(PlayerID_GetGems, "bourse", "gems")
        for x in objetItem:
            GS.csv_add(x.nom)
        for x in objetOutil:
            GS.csv_add(x.nom)
    ActuBourse()