Example #1
0
def update_beliefs_accepted(npc, trade):
    mean = avg_price(trade.resource)
    f = F() >> F(interval_is_divergent, price=trade.price, mean=mean) >> shrink_interval

    interval = f(getattr(npc.belief_intervals, trade.resource))

    return attr_update(npc, "belief_intervals", **{trade.resource: interval})
Example #2
0
def update_beliefs_rejected(npc, trade):
    mean = avg_price(trade.resource)
    interval = getattr(npc.belief_intervals, trade.resource)
    interval = translate_interval(interval, mean)
    interval = expand_interval(interval)

    npc = attr_update(npc, "belief_intervals", **{trade.resource: interval})
    return npc
Example #3
0
def refiner_produce(npc):
    inventory = npc.inventory
    if has_food(inventory):
        if has_tools(inventory):
            delta = dict(ore=0, food=inventory.food-1, metal=inventory.metal+1)
        elif inventory.ore >= 2:
            delta = dict(ore=inventory.ore-2, food=inventory.food-1, metal=inventory.metal+1)
    else:
        delta = {}
    return attr_update(npc, "inventory", **delta)
Example #4
0
def lumberjack_produce(npc):
    inventory = npc.inventory
    if has_food(inventory): 
        if has_tools(inventory):
            delta = dict(food=inventory.food-1, wood=inventory.wood+2)
        else:
            delta = dict(food=inventory.food-1, wood=inventory.wood+1)
    else:
        delta = {}
    return attr_update(npc, "inventory", **delta)
Example #5
0
def farmer_produce(npc):
    inventory = npc.inventory
    if has_wood(inventory): 
        if has_tools(inventory):
            delta = dict(wood=inventory.wood-1, food=inventory.food+4)
        else:
            delta = dict(wood=inventory.wood-1, food=inventory.food+2)
    else:
        delta = {}
    return attr_update(npc, "inventory", **delta)
Example #6
0
def miner_produce(npc):
    inventory = npc.inventory
    if has_food(inventory): 
        if has_tools(inventory):
            delta = dict(food=inventory.food-1, ore=inventory.ore+4)
        else:
            delta = dict(food=inventory.food-1, ore=inventory.ore+2)
    else:
        delta = {}
    return attr_update(npc, "inventory", **delta)