Ejemplo n.º 1
0
    public void SetHouse(VillageHouseInfo houseInfo, TownHouse townHouse)
    {
        var houseOwner = playerManager.GetPlayerByUserId(houseInfo.Owner);

        SetOwner(houseOwner);

        OwnerUserId = houseInfo.Owner;

        SlotType        = (TownHouseSlotType)houseInfo.Type;
        Slot            = houseInfo.Slot;
        townHouseSource = townHouse;
        if (House)
        {
            Destroy(House.gameObject);
            House = null;
            mud.SetActive(true);
        }

        if (!townHouse)
        {
            return;
        }

        var houseObject = Instantiate(townHouse.Prefab, this.transform);

        if (houseObject)
        {
            House           = houseObject.GetComponent <TownHouseController>();
            House.TownHouse = townHouse;
            House.Owner     = houseOwner;

            mud.SetActive(false);
        }
    }
Ejemplo n.º 2
0
 internal RenderTexture PrepareRenderTexture(TownHouse townHouse, int renderIndex)
 {
     this.townHouse       = townHouse;
     renderTexture        = Resources.Load <RenderTexture>($"BuildingRenderTextures/Building{renderIndex}");
     camera.targetTexture = renderTexture;
     return(renderTexture);
 }
Ejemplo n.º 3
0
 public void SetBuilding(TownHouse house, RenderTexture renderTexture)
 {
     this.house                     = house;
     buildingNameLabel.text         = house.Name;
     buildingIcon.texture           = renderTexture;
     buildingIconBackground.texture = renderTexture;
     SetOutline(false);
 }
Ejemplo n.º 4
0
    internal RenderTexture PrepareRenderTexture(TownHouse townHouse, int renderIndex)
    {
        this.townHouse       = townHouse;
        renderTexture        = Resources.Load <RenderTexture>($"BuildingRenderTextures/Building{renderIndex}");
        camera.targetTexture = renderTexture;

        if (townHouse)
        {
            transform.position = startPosition + townHouse.CameraOffset;
        }

        return(renderTexture);
    }
    internal RenderTexture CreateHouseRender(TownHouse townHouse)
    {
        var houseObject = Instantiate(townHouse.Prefab, transform);

        houseObject.transform.localPosition = instantiated.Count * offset * Vector3.left;

        var houseRenderer = Instantiate(townHouseRendererPrefab, houseObject.transform);
        var renderer      = houseRenderer.GetComponent <TownHouseRenderer>();


        houseRenderers.Add(renderer);
        instantiated.Add(houseObject);

        return(renderer.PrepareRenderTexture(townHouse, instantiated.Count));
    }
Ejemplo n.º 6
0
    public Settlement()
    {
        government          = new TownHouse();
        government.type     = TownHouse.Upgrade.government;
        government.name     = "Government";
        government.level    = 0;
        government.maxlevel = 3;

        hunter          = new TownHouse();
        hunter.type     = TownHouse.Upgrade.government;
        hunter.name     = "Hunter";
        hunter.level    = 0;
        hunter.maxlevel = 2;

        smithy          = new TownHouse();
        smithy.type     = TownHouse.Upgrade.smithy;
        smithy.name     = "Smithy";
        smithy.level    = 0;
        smithy.maxlevel = 2;

        tavern          = new TownHouse();
        tavern.type     = TownHouse.Upgrade.tavern;
        tavern.name     = "Tavern";
        tavern.level    = 0;
        tavern.maxlevel = 2;

        trader          = new TownHouse();
        trader.type     = TownHouse.Upgrade.smithy;
        trader.name     = "Trader";
        trader.level    = 0;
        trader.maxlevel = 1;

        walls          = new TownHouse();
        walls.type     = TownHouse.Upgrade.walls;
        walls.name     = "Walls";
        walls.level    = 0;
        walls.maxlevel = 3;

        warehouse          = new TownHouse();
        warehouse.type     = TownHouse.Upgrade.smithy;
        warehouse.name     = "Warehouse";
        warehouse.level    = 0;
        warehouse.maxlevel = 1;
    }
Ejemplo n.º 7
0
    private void SetHouseType(TownHouseSlot slot, TownHouseSlotType type, TownHouse house)
    {
        try
        {
            slot.SetHouse(new VillageHouseInfo()
            {
                Slot = slot.Slot,
                Type = (int)type
            }, house);

            if (slots != null && slots.Length > 0)
            {
                info.UsedSlots = slots.Count(x => x != null && x.SlotType != TownHouseSlotType.Empty && x.SlotType != TownHouseSlotType.Undefined);
            }
        }
        catch
        {
        }
    }
Ejemplo n.º 8
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            if (m_House.Deleted)
            {
                return;
            }

            Mobile    from = sender.Mobile;
            TownHouse th   = m_House as TownHouse;

            bool isCombatRestricted = m_House.IsCombatRestricted(from);

            bool isOwner   = m_House.IsOwner(from);
            bool isCoOwner = isOwner || m_House.IsCoOwner(from);
            bool isFriend  = isCoOwner || m_House.IsFriend(from);

            if (isCombatRestricted)
            {
                isFriend = isCoOwner = isOwner = false;
            }

            if (!isFriend || !from.Alive)
            {
                return;
            }

            Item sign = m_House.Sign;

            if (sign == null || from.Map != sign.Map || !from.InRange(sign.GetWorldLocation(), 18))
            {
                return;
            }

            switch (info.ButtonID)
            {
            case 1:                     // Rename sign
            {
                from.Prompt = new RenamePrompt(m_House);
                from.SendLocalizedMessage(501302);                           // What dost thou wish the sign to say?

                break;
            }

            case 2:                     // List of co-owners
            {
                from.CloseGump(typeof(HouseGump));
                from.CloseGump(typeof(HouseListGump));
                from.CloseGump(typeof(HouseRemoveGump));
                from.SendGump(new HouseListGump(1011275, m_House.CoOwners, m_House, false));

                break;
            }

            case 3:                     // Add co-owner
            {
                if (isOwner)
                {
                    from.SendLocalizedMessage(501328);                               // Target the person you wish to name a co-owner of your household.
                    from.Target = new CoOwnerTarget(true, m_House);
                }
                else
                {
                    from.SendLocalizedMessage(501327);                               // Only the house owner may add Co-owners.
                }

                break;
            }

            case 4:                     // Remove co-owner
            {
                if (isOwner)
                {
                    from.CloseGump(typeof(HouseGump));
                    from.CloseGump(typeof(HouseListGump));
                    from.CloseGump(typeof(HouseRemoveGump));
                    from.SendGump(new HouseRemoveGump(1011274, m_House.CoOwners, m_House, false));
                }
                else
                {
                    from.SendLocalizedMessage(501329);                               // Only the house owner may remove co-owners.
                }

                break;
            }

            case 5:                     // Clear co-owners
            {
                if (isOwner)
                {
                    if (m_House.CoOwners != null)
                    {
                        m_House.CoOwners.Clear();
                    }

                    from.SendLocalizedMessage(501333);                               // All co-owners have been removed from this house.
                }
                else
                {
                    from.SendLocalizedMessage(501330);                               // Only the house owner may remove co-owners.
                }

                break;
            }

            case 6:                     // List friends
            {
                from.CloseGump(typeof(HouseGump));
                from.CloseGump(typeof(HouseListGump));
                from.CloseGump(typeof(HouseRemoveGump));
                from.SendGump(new HouseListGump(1011273, m_House.Friends, m_House, false));

                break;
            }

            case 7:                     // Add friend
            {
                if (isCoOwner)
                {
                    from.SendLocalizedMessage(501317);                               // Target the person you wish to name a friend of your household.
                    from.Target = new HouseFriendTarget(true, m_House);
                }
                else
                {
                    from.SendLocalizedMessage(501316);                               // Only the house owner may add friends.
                }

                break;
            }

            case 8:                     // Remove friend
            {
                if (isCoOwner)
                {
                    from.CloseGump(typeof(HouseGump));
                    from.CloseGump(typeof(HouseListGump));
                    from.CloseGump(typeof(HouseRemoveGump));
                    from.SendGump(new HouseRemoveGump(1011272, m_House.Friends, m_House, false));
                }
                else
                {
                    from.SendLocalizedMessage(501318);                               // Only the house owner may remove friends.
                }

                break;
            }

            case 9:                     // Clear friends
            {
                if (isCoOwner)
                {
                    if (m_House.Friends != null)
                    {
                        m_House.Friends.Clear();
                    }

                    from.SendLocalizedMessage(501332);                               // All friends have been removed from this house.
                }
                else
                {
                    from.SendLocalizedMessage(501319);                               // Only the house owner may remove friends.
                }

                break;
            }

            case 10:                               // Ban
            {
                from.SendLocalizedMessage(501325); // Target the individual to ban from this house.
                from.Target = new HouseBanTarget(true, m_House);

                break;
            }

            case 11:                               // Eject
            {
                from.SendLocalizedMessage(501326); // Target the individual to eject from this house.
                from.Target = new HouseKickTarget(m_House);

                break;
            }

            case 12:                     // List bans
            {
                from.CloseGump(typeof(HouseGump));
                from.CloseGump(typeof(HouseListGump));
                from.CloseGump(typeof(HouseRemoveGump));
                from.SendGump(new HouseListGump(1011271, m_House.Bans, m_House, true));

                break;
            }

            case 13:                     // Remove ban
            {
                from.CloseGump(typeof(HouseGump));
                from.CloseGump(typeof(HouseListGump));
                from.CloseGump(typeof(HouseRemoveGump));
                from.SendGump(new HouseRemoveGump(1011269, m_House.Bans, m_House, true));

                break;
            }

            case 14:                     // Transfer ownership
            {
                if (isOwner)
                {
                    if (th != null && th.ForSaleSign.NoTrade)
                    {
                        from.SendMessage("You cannot trade this house.");
                    }
                    else
                    {
                        from.SendLocalizedMessage(501309);                                   // Target the person to whom you wish to give this house.
                        from.Target = new HouseOwnerTarget(m_House);
                    }
                }
                else
                {
                    from.SendLocalizedMessage(501310);                               // Only the house owner may do this.
                }
                break;
            }

            case 15:                     // Demolish house
            {
                if (isOwner)
                {
                    if (!Guilds.Guild.NewGuildSystem && m_House.FindGuildstone() != null)
                    {
                        from.SendLocalizedMessage(501389);                                   // You cannot redeed a house with a guildstone inside.
                    }
                    else
                    {
                        from.CloseGump(typeof(HouseDemolishGump));
                        from.SendGump(new HouseDemolishGump(from, m_House));
                    }
                }
                else
                {
                    from.SendLocalizedMessage(501320);                               // Only the house owner may do this.
                }

                break;
            }

            case 16:                     // Change locks
            {
                if (m_House.Public)
                {
                    from.SendLocalizedMessage(501669);                              // Public houses are always unlocked.
                }
                else
                {
                    if (isOwner)
                    {
                        m_House.RemoveKeys(from);
                        m_House.ChangeLocks(from);

                        from.SendLocalizedMessage(501306);                                   // The locks on your front door have been changed, and new master keys have been placed in your bank and your backpack.
                    }
                    else
                    {
                        from.SendLocalizedMessage(501303);                                   // Only the house owner may change the house locks.
                    }
                }

                break;
            }

            case 17:                     // Declare public/private
            {
                if (isOwner)
                {
                    if (th != null && ((th.ForSaleSign.ForcePublic && th.Public) || (th.ForSaleSign.ForcePrivate && !th.Public)))
                    {
                        from.SendMessage("You cannot make this house {0}.", th.Public ? "private" : "public");
                    }
                    else if (m_House.Public && m_House.PlayerVendors.Count > 0)
                    {
                        from.SendLocalizedMessage(501887);                                   // You have vendors working out of this building. It cannot be declared private until there are no vendors in place.
                    }
                    else
                    {
                        m_House.Public = !m_House.Public;
                        if (!m_House.Public)
                        {
                            m_House.ChangeLocks(from);

                            from.SendLocalizedMessage(501888);                                       // This house is now private.
                            from.SendLocalizedMessage(501306);                                       // The locks on your front door have been changed, and new master keys have been placed in your bank and your backpack.
                        }
                        else
                        {
                            m_House.RemoveKeys(from);
                            m_House.RemoveLocks();
                            from.SendLocalizedMessage(501886);                                      //This house is now public. Friends of the house my now have vendors working out of this building.
                        }
                    }
                }
                else
                {
                    from.SendLocalizedMessage(501307);                               // Only the house owner may do this.
                }
                break;
            }

            case 18:                     // Change type
            {
                if (isOwner)
                {
                    if (m_House.Public && info.Switches.Length > 0)
                    {
                        int index = info.Switches[0] - 1;

                        if (index >= 0 && index < 53)
                        {
                            m_House.ChangeSignType(2980 + (index * 2));
                        }
                    }
                }
                else
                {
                    from.SendLocalizedMessage(501307);                               // Only the house owner may do this.
                }

                break;
            }
            }
        }