Пример #1
0
def before_try_to_get(entity, target, location, behavioured):
    manciata_torba = Item("karpuram_item_torba-manciata")
    laminetta_oro = Item("karpuram_item_laminetta-oro")

    if random.randint(1, 10) == 1:
        laminetta_oro.inject(location)
        entity.act(
            "Metti la $hand in $N ed un luccicore ti distrae dal tuo proponimento!",
            TO.ENTITY, target)
        entity.act(
            "tu che sei $N ti senti un po' deprezzato ogni volta $n ti indaga!",
            TO.TARGET, target)
        entity.act("$n affonda una mano in $N e si ferma sorpres$o.",
                   TO.OTHERS, target)
        execution_result = command_get(
            entity, laminetta_oro.get_numbered_keyword(looker=entity))
    else:
        manciata_torba.inject(location)
        execution_result = command_get(
            entity, manciata_torba.get_numbered_keyword(looker=entity))

    # Se execution_result a True significa che è stato raccolta con successo
    # una manciata di torba e quindi ferma l'esecuzione del resto del comando get;
    # altrimenti è False e tornando False viene continuato il get del mucchio
    # di torba, che in futuro fallirà per motivi di peso
    return execution_result
def before_try_to_get(entity, target, location, behavioured):
    # Crea e inserisce il pizzico di polverina nella locazione da cui prenderlo
    pizzico = Item("carrozzone-zingaro_item_polverina-pizzico")
    pizzico.inject(location)

    entity.act("Infili le dita dentro $N.", TO.ENTITY, target)
    entity.act("$n allunga due dita dentro $N.", TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzata ogni volta che $n ti indaga!",
               TO.TARGET, target)

    # Bisogna utilizzare la get_numbered_keyword perché non si sa se entity in quel
    # momento stia guardando la short diurna, notturna o il nome
    first_keyword = pizzico.get_numbered_keyword(looker=entity)
    if location.IS_ROOM:
        argument = first_keyword
    else:
        argument = "%s %s " % (first_keyword,
                               location.get_numbered_keyword(looker=entity))
    execution_result = command_get(entity, argument)

    # Questo è meglio farlo solo se il get è andato a buon fine, cioè quando
    # execution_result ha valore di verità positiva
    if execution_result:
        if target.weight < pizzico.weight:
            target.act("Quello era l'ultimo, ora sei vuot$o.", TO.ENTITY)
            target.act("Una volta c'era $n, ma ora è vuot$o.", TO.OTHERS)
            target.extract(1)
        else:
            target.weight = target.weight - pizzico.weight

    return execution_result
def before_try_to_get(entity, target, location, behavioured):
    # Crea e inserisce il pezzetto di polverina nella locazione da cui prenderlo
    pezzetto = Item("carrozzone-zingaro_item_allume-pezzi-01")
    pezzetto.inject(location)

    entity.act("Rovesci parte del contenuto di $N sulla $hand2.", TO.ENTITY, target)
    entity.act("$n rovescia parte del contenuto di $N sulla sua $hand2.", TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzata ogni volta che $n ti indaga!", TO.TARGET, target)

    # Bisogna utilizzare la get_keywords_attr perché non si sa se entity in quel
    # momento stia guardando la short diurna, notturna o il nome
    first_keyword = pezzetto.get_numbered_keyword(looker=entity)
    if location.IS_ROOM:
        argument = first_keyword
    else:
        argument = "%s %s " % (first_keyword, location.get_numbered_keyword(looker=entity))
    execution_result = command_get(entity, argument)

    # Questo è meglio farlo solo se il get è andato a buon fine, cioè quando
    # execution_result ha valore di verità positiva
    if execution_result:
        # faccio fluttuare il valore di peso del pezzo di allume di +o- 10
        pezzetto.weight = pezzetto.weight + random.randint(-10, 10)
        if target.weight < pezzetto.weight:
            target.act("È stato estratto da te l'ultimo pezzo.", TO.ENTITY)
            target.act("Una volta c'era $n ma ora è vuot$o.", TO.OTHERS)
            target.extract(1)
        else:
            target.weight = target.weight - pezzetto.weight

    return execution_result
def before_try_to_get(entity, target, location, behavioured):
    if (random.randint(0, 1) == 0):
        entity.act("Infili una $hand tra i fili ma qualcosa ti punge e la ritiri subito di scatto.", TO.ENTITY, target)
        entity.act("Non appena $n infila una $hand tra i fili la ritira di scatto.", TO.OTHERS, target)
        return True

    oggetto = Item(random.choice(PROTO_CIANFUSAGLIE_CODES))
    oggetto.inject(location)

    entity.act("Infili la $hand tra $N per prendere qualcosa.", TO.ENTITY, target)
    entity.act("Ti senti un po' deprezzat$O ogni volta $n t'indaga!", TO.TARGET, target)
    entity.act("$n infila la $hand tra $N per prendere qualcosa.", TO.OTHERS, target)

    numbered_keyword = oggetto.get_numbered_keyword(looker=entity)
    execution_result = command_get(entity, numbered_keyword)

    # Il peso dei fili viene diminuito man mano che se ne preleva.
    # Prima di farlo verifica che sia uscita una keyword quando ne resta
    # troppo poco viene eliminato
    if execution_result:
        if target.weight < oggetto.weight:
           target.act("Ed ora non ne trovi neanche uno, o così sembra.", TO.OTHERS, target)
           target.act("Ed ora non ne è rimasto neanche uno, o così sembra.", TO.ENTITY, target)
           target.extract(1)
        else:
           target.weight = target.weight - oggetto.weight

    return execution_result
Пример #5
0
def before_try_to_get(entity, target, location, behavioured):
    frutta_semi_db = ["flora_item_mirtillo-rosso-01-frutto",
                      "flora_item_leccio-01-ghianda-viva",
                      "flora_item_leccio-02-ghianda-morta",
                      "flora_item_mirtillo-nero-01-frutto",
                      "flora_item_mirtillo-rosso-00-frutto-marcio",
                      "flora_item_mirtillo-rosso-00-frutto-sterile",
                      "flora_item_farnia-01-ghianda-viva",
                      "flora_item_farnia-02-ghianda-morta"]

    num_rand = random.randint(1, 100)
    if num_rand < 8:
        frutto_seme_code = frutta_semi_db[0]
    elif num_rand < 18:
        frutto_seme_code = frutta_semi_db[1]
    elif num_rand < 22:
        frutto_seme_code = frutta_semi_db[2]
    elif num_rand < 32:
        frutto_seme_code = frutta_semi_db[3]
    elif num_rand < 35:
        frutto_seme_code = frutta_semi_db[4]
    elif num_rand < 40:
        frutto_seme_code = frutta_semi_db[5]
    elif num_rand < 76:
        frutto_seme_code = frutta_semi_db[6]
    else:
        frutto_seme_code = frutta_semi_db[7]

    # Crea e inserisce il seme scelto nella locazione da cui prenderlo poi
    seed_founded = Item(frutto_seme_code)
    seed_founded.inject(location)

    # Attenzione che il get invierà i propri messaggi oltre a questi qui
    entity.act("Infili la $hand verso $N.", TO.ENTITY, target)
    entity.act("$n allunga una mano verso $N.", TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzato ogni volta che $n ti indaga!", TO.TARGET, target)

    # Bisogna utilizzare la get_numbered_keyword perché non si sa se entity
    # in quel momento possa visualizzare la short diurna, notturna o il nome
    argument = seed_founded.get_numbered_keyword(looker=entity)
    if not location.IS_ROOM:
        argument += " %s " % location.get_numbered_keyword(looker=entity)
    execution_result = command_get(entity, argument)

    # La diminuzione del peso deve essere eseguita quando effettivamente sia
    # stato eseguito il comando di get, ovvero execution_result ha valore
    # di verità positiva
    if execution_result:
        if target.weight < seed_founded.weight:
            target.act("Dei $n che c'erano ora non resta nulla.", TO.ENTITY)
            target.act("Di te ormai ora non resta nulla.", TO.OTHERS)
            target.extract(1)
        else:
            target.weight = target.weight - seed_founded.weight

    return True
def before_try_to_get(entity, target, location, behavioured):
    manciata_torba = Item("karpuram_item_torba-manciata")
    laminetta_oro = Item("karpuram_item_laminetta-oro")

    if random.randint(1, 10) == 1:
        laminetta_oro.inject(location)
        entity.act("Metti la $hand in $N ed un luccicore ti distrae dal tuo proponimento!", TO.ENTITY, target)
        entity.act("tu che sei $N ti senti un po' deprezzato ogni volta $n ti indaga!", TO.TARGET, target)
        entity.act("$n affonda una mano in $N e si ferma sorpres$o.", TO.OTHERS, target)
        execution_result = command_get(entity, laminetta_oro.get_numbered_keyword(looker=entity))
    else:
        manciata_torba.inject(location)
        execution_result = command_get(entity, manciata_torba.get_numbered_keyword(looker=entity))

    # Se execution_result a True significa che è stato raccolta con successo
    # una manciata di torba e quindi ferma l'esecuzione del resto del comando get;
    # altrimenti è False e tornando False viene continuato il get del mucchio
    # di torba, che in futuro fallirà per motivi di peso
    return execution_result
Пример #7
0
def before_try_to_get(entity, target, location, behavioured):

    funghi_db = {
        1: "villaggio-zingaro_item_fungo-01",
        2: "villaggio-zingaro_item_fungo-02",
        3: "villaggio-zingaro_item_fungo-03"
    }

    num_rand = random.randint(1, 100)
    if num_rand < 14:
        fungo_label = funghi_db[3]
    elif num_rand < 32:
        fungo_label = funghi_db[2]
    elif num_rand < 49:
        fungo_label = funghi_db[1]
    # in tutti gli altri casi esce dallo script con il return True
    # che esce dal flusso del get senza raccattare nulla
    else:
        entity.act(
            "Fai come per afferrarne uno ma questo ti sguscia tra le mani e si ritrae sotto terra.",
            TO.ENTITY, target)
        entity.act(
            "$n fa come per afferrare un fungo ma questo $gli sguscia tra le mani e si ritrae sotto terra.",
            TO.OTHERS, target)
        return True

    fungo = Item(fungo_label)
    fungo.inject(location)

    entity.act("Allunghi la $hand verso $N per raccoglierne uno.", TO.ENTITY,
               target)
    entity.act("$n allunga una $hand verso $N per raccoglierne uno.",
               TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzat$O ogni volta $n ti indaga!",
               TO.TARGET, target)

    numbered_keyword = fungo.get_numbered_keyword(looker=entity)
    execution_result = command_get(entity, numbered_keyword)

    # Il peso del cerchio viene diminuito man mano che se ne preleva
    # prima di farlo verifica che sia uscita una keyword quando ne
    # resta troppo poco viene eliminato
    if execution_result:
        if target.weight < fungo.weight:
            target.act("Ed ora non ne trovi neanche uno, o così sembra.",
                       TO.ENTITY, target)
            target.act("Ed ora non ne è rimasto neanche uno, o così sembra.",
                       TO.OTHERS, target)
            target.extract(1)
        else:
            target.weight = target.weight - fungo.weight

    return execution_result
def before_try_to_get(entity, target, location, behavioured):

    funghi_db = {1: "villaggio-zingaro_item_fungo-01",
                 2: "villaggio-zingaro_item_fungo-02",
                 3: "villaggio-zingaro_item_fungo-03"}

    num_rand = random.randint(1, 100)
    if num_rand < 14: 
        fungo_label = funghi_db[3]
    elif num_rand < 32:
        fungo_label = funghi_db[2]
    elif num_rand < 49:
        fungo_label = funghi_db[1]
    # in tutti gli altri casi esce dallo script con il return True
    # che esce dal flusso del get senza raccattare nulla
    else :
        entity.act("Fai come per afferrarne uno ma questo ti sguscia tra le mani e si ritrae sotto terra.", TO.ENTITY, target)    
        entity.act("$n fa come per afferrare un fungo ma questo $gli sguscia tra le mani e si ritrae sotto terra.", TO.OTHERS, target)    
        return True

    fungo = Item(fungo_label)
    fungo.inject(location)

    entity.act("Allunghi la $hand verso $N per raccoglierne uno.", TO.ENTITY, target)
    entity.act("$n allunga una $hand verso $N per raccoglierne uno.", TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzat$O ogni volta $n ti indaga!", TO.TARGET, target)

    numbered_keyword = fungo.get_numbered_keyword(looker=entity)
    execution_result = command_get(entity, numbered_keyword)

    # Il peso del cerchio viene diminuito man mano che se ne preleva 
    # prima di farlo verifica che sia uscita una keyword quando ne
    # resta troppo poco viene eliminato
    if execution_result:
        if target.weight < fungo.weight:
           target.act("Ed ora non ne trovi neanche uno, o così sembra.", TO.ENTITY, target)
           target.act("Ed ora non ne è rimasto neanche uno, o così sembra.", TO.OTHERS, target)
           target.extract(1)
        else:
           target.weight = target.weight - fungo.weight

    return execution_result
def before_try_to_get(entity, target, location, behavioured):
    if (random.randint(0, 1) == 0):
        entity.act(
            "Infili una $hand tra i fili ma qualcosa ti punge e la ritiri subito di scatto.",
            TO.ENTITY, target)
        entity.act(
            "Non appena $n infila una $hand tra i fili la ritira di scatto.",
            TO.OTHERS, target)
        return True

    oggetto = Item(random.choice(PROTO_CIANFUSAGLIE_CODES))
    oggetto.inject(location)

    entity.act("Infili la $hand tra $N per prendere qualcosa.", TO.ENTITY,
               target)
    entity.act("Ti senti un po' deprezzat$O ogni volta $n t'indaga!",
               TO.TARGET, target)
    entity.act("$n infila la $hand tra $N per prendere qualcosa.", TO.OTHERS,
               target)

    numbered_keyword = oggetto.get_numbered_keyword(looker=entity)
    execution_result = command_get(entity, numbered_keyword)

    # Il peso dei fili viene diminuito man mano che se ne preleva.
    # Prima di farlo verifica che sia uscita una keyword quando ne resta
    # troppo poco viene eliminato
    if execution_result:
        if target.weight < oggetto.weight:
            target.act("Ed ora non ne trovi neanche uno, o così sembra.",
                       TO.OTHERS, target)
            target.act("Ed ora non ne è rimasto neanche uno, o così sembra.",
                       TO.ENTITY, target)
            target.extract(1)
        else:
            target.weight = target.weight - oggetto.weight

    return execution_result
Пример #10
0
def before_try_to_get(entity, target, location, behavioured):
    panzerotti_db = [
        "krablath_item_food-panzerotto-01", "krablath_item_food-panzerotto-02",
        "krablath_item_food-panzerotto-03"
    ]

    num_rand = random.randint(1, 100)
    if num_rand < 33:
        panzerotto_code = panzerotti_db[0]
    elif num_rand < 66:
        panzerotto_code = panzerotti_db[1]
    else:
        panzerotto_code = panzerotti_db[2]

    # Alternativamente una soluzione che potrebbe essere considerata più
    # elegante del codice sopra potrebbe essere questa sotto.
    # Non hai la granularità del 100 ma chi se ne fre'.. e poi è più facilmente
    # percepibile anche solo ad occhio quali panzerotti verranno caricati di più
    # e quali meno
    #Se vuoi tenerla deve decommentare anche l'import del random in alto ed
    #eventualmente commentare quello del random.randint
    #panzerotti_db = ["karpuram_item_mirtillo-rosso-01-frutto",
    #                  "karpuram_item_mirtillo-rosso-01-frutto",
    #                  "karpuram_item_leccio-01-ghianda-viva",
    #                  "karpuram_item_leccio-01-ghianda-viva",
    #                  "karpuram_item_leccio-01-ghianda-viva",
    #                  "karpuram_item_leccio-02-ghianda-morta",
    #                  "karpuram_item_mirtillo-nero-01-frutto",
    #                  "karpuram_item_mirtillo-nero-01-frutto",
    #                  "karpuram_item_mirtillo-nero-01-frutto",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-marcio",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-marcio",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-sterile",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-sterile",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-02-ghianda-morta",
    #                  "karpuram_item_farnia-02-ghianda-morta",
    #                  "karpuram_item_farnia-02-ghianda-morta",
    #                  "karpuram_item_farnia-02-ghianda-morta"]
    #panzerotto_code = random.choice(panzerotti_db)

    # Crea e inserisce il panzerotto scelto nella locazione da cui prenderlo poi
    panzerotto_founded = Item(panzerotto_code)
    panzerotto_founded.inject(location)
    if random.randint(0, 1) == 1:
        panzerotto_founded.flags += FLAG.NO_LOOK_LIST

    # Attenzione che il get invierà i propri messaggi oltre a questi qua.
    entity.act("Infili la $hand verso $N.", TO.ENTITY, target)
    entity.act("$n allunga una mano verso $N.", TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzato ogni volta che $n ti indaga!",
               TO.TARGET, target)

    # Bisogna utilizzare la get_numbered_keyword perché non si sa se entity
    # in quel momento stia guardando la short diurna, notturna o il nome
    numbered_keyword = panzerotto_founded.get_numbered_keyword(looker=entity)
    if location.IS_ROOM:
        argument = numbered_keyword
    else:
        argument = "%s %s " % (numbered_keyword,
                               location.get_numbered_keyword(looker=entity))
    execution_result = command_get(entity, argument)

    # Questo è meglio farlo solo se il get è andato a buon fine, cioè quando
    # execution_result ha valore di verità positiva
    if execution_result:
        if target.weight < panzerotto_founded.weight:
            target.act("Dei $n che c'erano ora non resta nulla.", TO.OTHERS)
            target.act("Non resta più molto di te.", TO.ENTITY)
            target.extract(1)
        else:
            target.weight = target.weight - panzerotto_founded.weight

    return execution_result
Пример #11
0
def before_try_to_get(entity, target, location, behavioured):
    panzerotti_db = ["krablath_item_food-panzerotto-01",
                     "krablath_item_food-panzerotto-02",
                     "krablath_item_food-panzerotto-03"]

    num_rand = random.randint(1, 100)
    if num_rand < 33:
        panzerotto_code = panzerotti_db[0]
    elif num_rand < 66:
        panzerotto_code = panzerotti_db[1]
    else:
        panzerotto_code = panzerotti_db[2]

    # Alternativamente una soluzione che potrebbe essere considerata più
    # elegante del codice sopra potrebbe essere questa sotto.
    # Non hai la granularità del 100 ma chi se ne fre'.. e poi è più facilmente
    # percepibile anche solo ad occhio quali panzerotti verranno caricati di più
    # e quali meno
    #Se vuoi tenerla deve decommentare anche l'import del random in alto ed
    #eventualmente commentare quello del random.randint
    #panzerotti_db = ["karpuram_item_mirtillo-rosso-01-frutto",
    #                  "karpuram_item_mirtillo-rosso-01-frutto",
    #                  "karpuram_item_leccio-01-ghianda-viva",
    #                  "karpuram_item_leccio-01-ghianda-viva",
    #                  "karpuram_item_leccio-01-ghianda-viva",
    #                  "karpuram_item_leccio-02-ghianda-morta",
    #                  "karpuram_item_mirtillo-nero-01-frutto",
    #                  "karpuram_item_mirtillo-nero-01-frutto",
    #                  "karpuram_item_mirtillo-nero-01-frutto",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-marcio",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-marcio",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-sterile",
    #                  "karpuram_item_mirtillo-rosso-00-frutto-sterile",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-01-ghianda-viva",
    #                  "karpuram_item_farnia-02-ghianda-morta",
    #                  "karpuram_item_farnia-02-ghianda-morta",
    #                  "karpuram_item_farnia-02-ghianda-morta",
    #                  "karpuram_item_farnia-02-ghianda-morta"]
    #panzerotto_code = random.choice(panzerotti_db)

    # Crea e inserisce il panzerotto scelto nella locazione da cui prenderlo poi
    panzerotto_founded = Item(panzerotto_code)
    panzerotto_founded.inject(location)
    if random.randint(0, 1) == 1:
        panzerotto_founded.flags += FLAG.NO_LOOK_LIST

    # Attenzione che il get invierà i propri messaggi oltre a questi qua.
    entity.act("Infili la $hand verso $N.", TO.ENTITY, target)
    entity.act("$n allunga una mano verso $N.", TO.OTHERS, target)
    entity.act("Ti senti un po' deprezzato ogni volta che $n ti indaga!", TO.TARGET, target)

    # Bisogna utilizzare la get_numbered_keyword perché non si sa se entity
    # in quel momento stia guardando la short diurna, notturna o il nome
    numbered_keyword = panzerotto_founded.get_numbered_keyword(looker=entity)
    if location.IS_ROOM:
        argument = numbered_keyword
    else:
        argument = "%s %s " % (numbered_keyword, location.get_numbered_keyword(looker=entity))
    execution_result = command_get(entity, argument)

    # Questo è meglio farlo solo se il get è andato a buon fine, cioè quando
    # execution_result ha valore di verità positiva
    if execution_result:
        if target.weight < panzerotto_founded.weight:
            target.act("Dei $n che c'erano ora non resta nulla.", TO.OTHERS)
            target.act("Non resta più molto di te.", TO.ENTITY)
            target.extract(1)
        else:
            target.weight = target.weight - panzerotto_founded.weight

    return execution_result