public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.BAREHANDS:
            if (equippable.id == equippableItemID.HALTER)
            {
                currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER));
            }
            else if (equippable.id == equippableItemID.LEAD)
            {
                currentlyRelevantActionIDs.Add(actionID.TAKE_LEAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_LEAD));
            }
            else if (equippable.id == equippableItemID.HALTER_WITH_LEAD)
            {
                //if halter and lead are hanging there, you can take one, the other or both
                currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER_AND_LEAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER_AND_LEAD));
                currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER));
                currentlyRelevantActionIDs.Add(actionID.TAKE_LEAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_LEAD));
            }
            break;
        }
        return(result);
    }
Esempio n. 2
0
    public override List <string> DefineInteraction(Player player)
    {
        currentlyRelevantActionIDs.Clear();
        List <string> result = new List <string> ();

        result.Add(InteractionStrings.GetInteractionStringById(actionID.TALK_TO));
        currentlyRelevantActionIDs.Add(actionID.TALK_TO);

        switch (characterId)
        {
        case Character.STORECLERK:
            if (player.currentlyEquippedItem.sellable)
            {
                result.Add(InteractionStrings.GetInteractionStringById(actionID.SELL) + player.currentlyEquippedItem.name + " (" + Prices.GetPriceByID(player.currentlyEquippedItem.id) + ")");
                currentlyRelevantActionIDs.Add(actionID.SELL);
            }

            break;

        default:
            break;
        }

        return(result);
    }
Esempio n. 3
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.PITCHFORK:
            if (player.currentlyEquippedItem.status == containerStatus.FULL)
            {
                currentlyRelevantActionIDs.Add(actionID.EMPTY_PITCHFORK);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.EMPTY_PITCHFORK));
            }
            break;

        case equippableItemID.WHEELBARROW:
            if (player.currentlyEquippedItem.status != containerStatus.EMPTY)
            {
                currentlyRelevantActionIDs.Add(actionID.EMPTY_WHEELBARROW);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.EMPTY_WHEELBARROW));
            }
            break;
        }

        return(result);
    }
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();


        switch (storeType)
        {
        case storeCaseType.RESTOCK_CASE:

            switch (player.currentlyEquippedItem.id)
            {
            case equippableItemID.BAREHANDS:
                //NEXT: add different options, like restock 10 for x credits, or fill cart for y credits

                currentlyRelevantActionIDs.Add(actionID.RESTOCK_CART);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.RESTOCK_CART) + "(" + cartToRestock.fillType + "x" + restockUnits + ") - ¢ " + restockPrice);

                currentlyRelevantActionIDs.Add(actionID.REFILL_CART);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.REFILL_CART) + "(" + cartToRestock.fillType + "x" + refillUnits + ") - ¢ " + refillPrice);
                break;
            }
            break;

        case storeCaseType.BUY_CASE:
            //todo
            break;
        }

        return(result);
    }
Esempio n. 5
0
    public virtual List <string> DefineInteraction(Player player)
    {
        currentlyRelevantActionIDs.Clear();
        List <string> result = new List <string> ();

        if (player.currentlyEquippedItem.id == equippableItemID.BAREHANDS)
        {
            if (pickUpable)
            {
                currentlyRelevantActionIDs.Add(actionID.PICK_UP);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PICK_UP));
            }


            if (equippable != null && equippable.carriable && player.inventory.GetFreeInventorySlot() != -1)
            {
                currentlyRelevantActionIDs.Add(actionID.PUT_INTO_POCKET);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_INTO_POCKET));
            }
        }

        //result.Add (emptyHandsAction);
        //currentlyRelevantActionIDs.Add (actionID.NO_SEQUENCE);
        return(result);
    }
Esempio n. 6
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = base.DefineInteraction(player);

        currentlyRelevantActionIDs.Add(actionID.OPEN_CLOSE_DOOR);
        result.Add(InteractionStrings.GetInteractionStringById(actionID.OPEN_CLOSE_DOOR));

        return(result);
    }
Esempio n. 7
0
    public override List <string> DefineInteraction(Player player)
    {
        currentlyRelevantActionIDs.Clear();
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Add(actionID.SLEEP);
        result.Add(InteractionStrings.GetInteractionStringById(actionID.SLEEP));

        return(result);
    }
Esempio n. 8
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.WATERBUCKET:
            currentlyRelevantActionIDs.Add(actionID.FILL_BUCKET);
            result.Add(InteractionStrings.GetInteractionStringById(actionID.FILL_BUCKET));
            break;
        }

        return(result);
    }
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.PITCHFORK:
            if (stallDirt.dirtLevel > 0)
            {
                currentlyRelevantActionIDs.Add(actionID.CLEAN_STALL);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.CLEAN_STALL));
            }
            break;
        }
        return(result);
    }
Esempio n. 10
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.BAREHANDS:
            if (player.currentlyEquippedItem.status == containerStatus.FULL)
            {
                currentlyRelevantActionIDs.Add(actionID.REARRANGE_OBSTACLES);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.REARRANGE_OBSTACLES));
            }
            break;
        }

        return(result);
    }
Esempio n. 11
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.BAREHANDS:
            if (currentUnits > 0)
            {
                currentlyRelevantActionIDs.Add(actionID.TAKE_STRAW);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_STRAW) + " (" + currentUnits + ")");
            }
            break;

        case equippableItemID.STRAW:
            currentlyRelevantActionIDs.Add(actionID.PUT_AWAY_STRAW);
            result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_AWAY_STRAW));
            break;
        }
        return(result);
    }
Esempio n. 12
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.HORSE_ON_LEAD:
            currentlyRelevantActionIDs.Add(actionID.TIE_HORSE_TO_POST);
            result.Add(InteractionStrings.GetInteractionStringById(actionID.TIE_HORSE_TO_POST));
            break;

        case equippableItemID.BAREHANDS:
            if (horseTiedHere != null)
            {
                currentlyRelevantActionIDs.Add(actionID.TIE_HORSE_TO_POST);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TIE_HORSE_TO_POST));
            }
            break;
        }

        return(result);
    }
Esempio n. 13
0
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();


        if (type == hookType.SMALL)
        {
            switch (player.currentlyEquippedItem.id)
            {
            case equippableItemID.BAREHANDS:
                if (hookStatus == containerStatus.FULL)
                {
                    if (content.id == equippableItemID.HALTER)
                    {
                        currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER));
                    }
                    else if (content.id == equippableItemID.LEAD)
                    {
                        currentlyRelevantActionIDs.Add(actionID.TAKE_LEAD);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_LEAD));
                    }
                    else if (content.id == equippableItemID.HALTER_WITH_LEAD)
                    {
                        //if halter and lead are hanging there, you can take one, the other or both
                        currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER_AND_LEAD);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER_AND_LEAD));
                        currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER));
                        currentlyRelevantActionIDs.Add(actionID.TAKE_LEAD);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_LEAD));
                    }
                    else if (content.id == equippableItemID.BRIDLE)
                    {
                        currentlyRelevantActionIDs.Add(actionID.TAKE_BRIDLE);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_BRIDLE));
                    }
                }
                break;

            case equippableItemID.HALTER:
                if (hookStatus == containerStatus.EMPTY || (content != null && content.id == equippableItemID.LEAD))                  //TODO: if lead is there already, combine
                {
                    currentlyRelevantActionIDs.Add(actionID.HANG_UP_HALTER);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.HANG_UP_HALTER));
                }
                break;

            case equippableItemID.LEAD:
                if (hookStatus == containerStatus.EMPTY || (content != null && content.id == equippableItemID.HALTER))                   //TODO: if halter is there already, combine
                {
                    currentlyRelevantActionIDs.Add(actionID.HANG_UP_LEAD);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.HANG_UP_LEAD));
                }
                break;

            case equippableItemID.HALTER_WITH_LEAD:
                if (hookStatus == containerStatus.EMPTY)
                {
                    currentlyRelevantActionIDs.Add(actionID.HANG_UP_HALTER_AND_LEAD);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.HANG_UP_HALTER_AND_LEAD));
                }
                break;

            case equippableItemID.BRIDLE:
                if (hookStatus == containerStatus.EMPTY)
                {
                    currentlyRelevantActionIDs.Add(actionID.HANG_UP_BRIDLE);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.HANG_UP_BRIDLE));
                }
                break;
            }
        }
        else if (type == hookType.SADDLE)
        {
            switch (player.currentlyEquippedItem.id)
            {
            case equippableItemID.BAREHANDS:
                if (hookStatus == containerStatus.FULL)
                {
                    if (content.id == equippableItemID.SADDLE_WITH_PAD)
                    {
                        currentlyRelevantActionIDs.Add(actionID.TAKE_SADDLE_WITH_PAD);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_SADDLE_WITH_PAD));
                    }
                }
                break;

            case equippableItemID.SADDLE_WITH_PAD:
                if (hookStatus == containerStatus.EMPTY)
                {
                    currentlyRelevantActionIDs.Add(actionID.HANG_UP_SADDLE_WITH_PAD);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.HANG_UP_SADDLE_WITH_PAD));
                }
                break;
            }
        }

        return(result);
    }
    public override List <string> DefineInteraction(Player player)
    {
        List <string> result = new List <string> ();

        currentlyRelevantActionIDs.Clear();

        switch (player.currentlyEquippedItem.id)
        {
        case equippableItemID.BAREHANDS:
            result.Add(InteractionStrings.GetInteractionStringById(actionID.PET_HORSE));
            currentlyRelevantActionIDs.Add(actionID.PET_HORSE);
            if (headGear != null)
            {
                if (headGear.type == horseGearType.HALTER)
                {
                    if (headGearAttachment != null && headGearAttachment.type == horseGearType.LEAD)
                    {
                        currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER_AND_LEAD);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER_AND_LEAD));

                        currentlyRelevantActionIDs.Add(actionID.TAKE_LEAD);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_LEAD));

                        currentlyRelevantActionIDs.Add(actionID.LEAD_HORSE);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.LEAD_HORSE));
                    }
                    else
                    {
                        currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER);
                        result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER));
                    }
                }
                else if (headGear.type == horseGearType.BRIDLE)
                {
                    currentlyRelevantActionIDs.Add(actionID.TAKE_BRIDLE);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_BRIDLE));
                    currentlyRelevantActionIDs.Add(actionID.LEAD_BY_REINS);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.LEAD_BY_REINS));
                }
            }
            if (backGear != null && backGear.type == horseGearType.SADDLE_WITH_PAD)
            {
                currentlyRelevantActionIDs.Add(actionID.TAKE_SADDLE_WITH_PAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_SADDLE_WITH_PAD));
            }

            if (backGear != null && headGear != null && backGear.type == horseGearType.SADDLE_WITH_PAD && headGear.type == horseGearType.BRIDLE)
            {
                currentlyRelevantActionIDs.Add(actionID.MOUNT_HORSE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.MOUNT_HORSE));
            }

            break;

        case equippableItemID.STRAW:
            if (horse.horseStats.Food < Horse_Stats.NeedsMaximum)
            {
                currentlyRelevantActionIDs.Add(actionID.FEED_HORSE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.FEED_HORSE));
            }
            break;

        case equippableItemID.HAY:
            if (horse.horseStats.Food < Horse_Stats.NeedsMaximum)
            {
                currentlyRelevantActionIDs.Add(actionID.FEED_HORSE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.FEED_HORSE));
            }
            break;

        case equippableItemID.APPLE:
            if (horse.horseStats.Food < Horse_Stats.NeedsMaximum)
            {
                currentlyRelevantActionIDs.Add(actionID.FEED_HORSE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.FEED_HORSE));
            }
            break;

        case equippableItemID.WATERBUCKET:
            if (horse.horseStats.Water < Horse_Stats.NeedsMaximum)
            {
                currentlyRelevantActionIDs.Add(actionID.WATER_HORSE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.WATER_HORSE));
            }
            break;

        case equippableItemID.BRUSH:
            if (backGear == null && horse.horseStats.Hygiene < Horse_Stats.NeedsMaximum)
            {
                currentlyRelevantActionIDs.Add(actionID.BRUSH_HORSE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.BRUSH_HORSE));
            }
            break;

        case equippableItemID.HALTER:
            if (headGear == null)
            {
                currentlyRelevantActionIDs.Add(actionID.PUT_ON_HALTER);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_ON_HALTER));
            }
            break;

        case equippableItemID.LEAD:
            if (headGear != null && headGear.type == horseGearType.HALTER && headGearAttachment == null)
            {
                currentlyRelevantActionIDs.Add(actionID.PUT_ON_LEAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_ON_LEAD));
            }
            break;

        case equippableItemID.HORSE_ON_LEAD:
            if (player.currentlyEquippedItem == horseOnLeadEquippable)               //i.e. it's this horse and not a different horse
            {
                if (headGear.type == horseGearType.HALTER)
                {
                    currentlyRelevantActionIDs.Add(actionID.TAKE_LEAD);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_LEAD));

                    currentlyRelevantActionIDs.Add(actionID.TAKE_HALTER_AND_LEAD);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.TAKE_HALTER_AND_LEAD));
                }
                else if (headGear.type == horseGearType.BRIDLE)
                {
                    currentlyRelevantActionIDs.Add(actionID.STOP_LEADING_BY_REINS);
                    result.Add(InteractionStrings.GetInteractionStringById(actionID.STOP_LEADING_BY_REINS));
                }
            }
            break;

        case equippableItemID.HALTER_WITH_LEAD:
            if (headGear == null)
            {
                currentlyRelevantActionIDs.Add(actionID.PUT_ON_HALTER_AND_LEAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_ON_HALTER_AND_LEAD));
            }
            break;

        case equippableItemID.SADDLE_WITH_PAD:
            if (backGear == null)
            {
                currentlyRelevantActionIDs.Add(actionID.PUT_ON_SADDLE_WITH_PAD);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_ON_SADDLE_WITH_PAD));
            }
            break;

        case equippableItemID.BRIDLE:
            if (headGear == null)
            {
                currentlyRelevantActionIDs.Add(actionID.PUT_ON_BRIDLE);
                result.Add(InteractionStrings.GetInteractionStringById(actionID.PUT_ON_BRIDLE));
            }
            break;
        }
        return(result);
    }