Beispiel #1
0
    /// <summary>
    /// 获取建筑数据详情
    /// </summary>
    /// <param name="data"></param>
    /// <param name="iconDataManager"></param>
    /// <param name="innBuildManager"></param>
    /// <returns></returns>
    private static RewardTypeBean GetRewardDetailsForBuildItems(RewardTypeBean data)
    {
        string[]      listBuildItemsData = StringUtil.SplitBySubstringForArrayStr(data.data, ',');
        long          buildItemId        = long.Parse(listBuildItemsData[0]);
        BuildItemBean buildItemInfo      = InnBuildHandler.Instance.manager.GetBuildDataById(buildItemId);

        data.rewardDescribe = buildItemInfo.name;
        if (listBuildItemsData.Length == 2)
        {
            data.rewardNumber = int.Parse(listBuildItemsData[1]);
        }
        data.rewardId        = buildItemId;
        data.rewardDescribe += (" x" + data.rewardNumber);
        data.spRewardIcon    = BuildItemTypeEnumTools.GetBuildItemSprite(buildItemInfo);
        return(data);
    }
Beispiel #2
0
    /// <summary>
    /// 设置图标
    /// </summary>
    /// <param name="iconKey"></param>
    /// <param name="mark"></param>
    /// <param name="markId"></param>
    public void SetIcon(StoreForCarpenterTypeEnum type, BuildItemBean buildItem, StoreInfoBean storeInfo)
    {
        Sprite spIcon = null;

        if (type == StoreForCarpenterTypeEnum.Expansion)
        {
            spIcon = IconDataHandler.Instance.manager.GetIconSpriteByName(storeInfo.icon_key);
        }
        else
        {
            spIcon = BuildItemTypeEnumTools.GetBuildItemSprite(buildItem);
        }

        if (ivIcon != null && spIcon != null)
        {
            ivIcon.sprite = spIcon;
        }
    }
Beispiel #3
0
    /// <summary>
    /// 根据类型获取数据
    /// </summary>
    /// <param name="buildItemType"></param>
    /// <returns></returns>
    public List <StoreInfoBean> GetListBedDataByType(BuildItemTypeEnum buildItemType)
    {
        List <StoreInfoBean> listData = new List <StoreInfoBean>();

        if (listBedData == null)
        {
            return(listData);
        }
        for (int i = 0; i < listBedData.Count; i++)
        {
            StoreInfoBean storeInfo = listBedData[i];
            BuildItemBean buildItem = InnBuildHandler.Instance.manager.GetBuildDataById(storeInfo.mark_id);
            if (buildItem.GetBuildType() == buildItemType)
            {
                listData.Add(storeInfo);
            }
        }
        return(listData);
    }
Beispiel #4
0
    public void SetBedStatus(BedStatusEnum bedStatus)
    {
        this.bedStatus = bedStatus;

        //设置床单的样式
        BuildItemBean buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedSheets);

        if (bedStatus == BedStatusEnum.Idle)
        {
            string cleanStr = buildItemData.GetIconList()[0] + "_clean";
            string iconKey  = GetIconKey(cleanStr);
            srSheets.sprite = InnBuildHandler.Instance.manager.GetFurnitureSpriteByName(iconKey);
        }
        else if (bedStatus == BedStatusEnum.WaitClean)
        {
            string noCleanStr = buildItemData.GetIconList()[0] + "_noclean";
            string iconKey    = GetIconKey(noCleanStr);
            srSheets.sprite = InnBuildHandler.Instance.manager.GetFurnitureSpriteByName(iconKey);
        }
    }
Beispiel #5
0
    public void SetData(StoreInfoBean itemData)
    {
        storeInfo = itemData;
        float  aesthetics = 0;
        string iconKey    = "";
        string name       = "";
        string content    = "";
        StoreForCarpenterTypeEnum type = (StoreForCarpenterTypeEnum)storeInfo.store_goods_type;

        if (type == StoreForCarpenterTypeEnum.Expansion)
        {
            iconKey = storeInfo.icon_key;
            name    = storeInfo.name;
            content = storeInfo.content;
        }
        else
        {
            buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(itemData.mark_id);
            if (buildItemData != null)
            {
                aesthetics = buildItemData.aesthetics;
                iconKey    = buildItemData.icon_key;
                name       = buildItemData.name;
                content    = buildItemData.content;
            }
        }

        SetPrice(storeInfo.price_l, storeInfo.price_m, storeInfo.price_s,
                 storeInfo.guild_coin,
                 storeInfo.trophy_elementary, storeInfo.trophy_intermediate, storeInfo.trophy_advanced, storeInfo.trophy_legendary);
        SetName(name);
        SetIcon(type, buildItemData, itemData);
        SetAttribute(type, aesthetics);
        SetContent(content);
        SetOwn(type);
        SetGetNumber(storeInfo.get_number);
        SetPopup(content);
    }
Beispiel #6
0
    /// <summary>
    /// 设置床的文本
    /// </summary>
    /// <param name="customBedData"></param>
    public void SetBedText(BuildBedBean buildBedData)
    {
        BuildItemBean bedBaseData   = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedBase);
        BuildItemBean bedBarData    = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedBar);
        BuildItemBean bedSheetsData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedSheets);
        BuildItemBean bedPillowData = InnBuildHandler.Instance.manager.GetBuildDataById(buildBedData.bedPillow);

        if (tvBedBase != null && bedBaseData != null)
        {
            tvBedBase.text = bedBaseData.name;
        }
        if (tvBedBar != null && bedBarData != null)
        {
            tvBedBar.text = bedBarData.name;
        }
        if (tvBedSheets != null && bedSheetsData != null)
        {
            tvBedSheets.text = bedSheetsData.name;
        }
        if (tvBedPillow != null && bedPillowData != null)
        {
            tvBedPillow.text = bedPillowData.name;
        }
    }
Beispiel #7
0
 public void SetData(BuildItemBean buildItemData, BuildBedBean buildBedData)
 {
     this.buildBedData = buildBedData;
     base.SetData(buildItemData);
 }
Beispiel #8
0
    /// <summary>
    /// 拆除
    /// </summary>
    /// <param name="buildPosition">家具的位置</param>
    /// <param name="sceneFurniturePosition">家具在场景中的位置</param>
    protected void BuildItemForDismantle(int dismantleLayer, Vector3 buildPosition, Vector3 sceneFurniturePosition)
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
        //获取拆除位置的家具数据
        InnBuildBean buildData         = gameData.GetInnBuildData();
        InnResBean   itemFurnitureData = buildData.GetFurnitureByPosition(dismantleLayer, buildPosition);
        //因为在保存tile时坐标减过1 所以查询是也要-1
        InnResBean itemWallData = buildData.GetWallByPosition(dismantleLayer, buildPosition - new Vector3(1, 0, 0));

        //如果拆除的是家具
        if (itemFurnitureData != null)
        {
            BuildItemBean buildItemData = InnBuildHandler.Instance.manager.GetBuildDataById(itemFurnitureData.id);
            //如果是最后一扇门则不能删除
            if (buildItemData.build_type == (int)BuildItemTypeEnum.Door && buildData.GetDoorList().Count <= 1)
            {
                //只有一次点击时才出提示
                if (Input.GetButtonDown(InputInfo.Confirm))
                {
                    ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1004));
                }
            }
            else
            {
                //移除数据
                buildData.GetFurnitureList(dismantleLayer).Remove(itemFurnitureData);
                //移除场景中的建筑物
                InnBuildHandler.Instance.builderForFurniture.DestroyFurnitureByPosition(sceneFurniturePosition);
                if (buildItemData.build_type == (int)BuildItemTypeEnum.Bed)
                {
                    //如果是床
                    BuildBedBean buildBedData = gameData.GetBedByRemarkId(itemFurnitureData.remarkId);
                    buildBedData.isSet = false;
                }
                else if (buildItemData.build_type == (int)BuildItemTypeEnum.Stairs)
                {
                    //背包里添加一个
                    gameData.AddBuildNumber(itemFurnitureData.id, 1);
                    InnResBean itemStarisData = null;
                    if (dismantleLayer == 1)
                    {
                        itemStarisData = buildData.GetFurnitureByPosition(2, buildPosition + new Vector3(0, 100));
                        buildData.GetFurnitureList(2).Remove(itemStarisData);
                        //移除场景中的建筑物
                        InnBuildHandler.Instance.builderForFurniture.DestroyFurnitureByPosition(sceneFurniturePosition + new Vector3(0, 100));
                    }
                    else if (dismantleLayer == 2)
                    {
                        itemStarisData = buildData.GetFurnitureByPosition(1, buildPosition - new Vector3(0, 100));
                        buildData.GetFurnitureList(1).Remove(itemStarisData);
                        //移除场景中的建筑物
                        InnBuildHandler.Instance.builderForFurniture.DestroyFurnitureByPosition(sceneFurniturePosition - new Vector3(0, 100));
                    }
                }
                else
                {
                    //背包里添加一个
                    gameData.AddBuildNumber(itemFurnitureData.id, 1);
                }
            }
        }
        //如果拆除的是墙壁
        if (itemWallData != null)
        {
            //判断是否是最外的墙壁
            Vector3 startPosition = itemWallData.GetStartPosition();
            gameData.GetInnBuildData().GetInnSize(buildLayer, out int innWidth, out int innHeight, out int offsetHeight);
            bool isOutWall = false;
            if (buildLayer == 1)
            {
                isOutWall = (startPosition.x == 0 || startPosition.x == (innWidth - 1)) || startPosition.y == (innHeight - 1) + offsetHeight;
            }
            else if (buildLayer == 2)
            {
                isOutWall = (startPosition.x == 0 || startPosition.x == (innWidth - 1)) || startPosition.y == 0 + offsetHeight || startPosition.y == (innHeight - 1) + offsetHeight;
            }
            if (isOutWall)
            {
                //只有一次点击时才出提示
                if (Input.GetButtonDown(InputInfo.Confirm))
                {
                    ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1023));
                }
            }
            else
            {
                //移除数据
                buildData.GetWallList(buildLayer).Remove(itemWallData);
                //移除场景中的建筑物
                InnBuildHandler.Instance.builderForWall.ClearWall(Vector3Int.RoundToInt(startPosition));
                //背包里添加一个
                gameData.AddBuildNumber(itemWallData.id, 1);
            }
        }
        //更新一下数据
        InitBuildingExist();
    }
Beispiel #9
0
    /// <summary>
    /// 创建建筑列表
    /// </summary>
    /// <param name="type"></param>
    public void CreateBuildList(BuildItemTypeEnum type)
    {
        if (itemBuildContainer == null)
        {
            return;
        }
        bool hasData = false;

        buildType = type;
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        if (type == BuildItemTypeEnum.Bed)
        {
            if (itemBuildForBedModel == null)
            {
                return;
            }
            if (gameData.listBed == null)
            {
                return;
            }
            CptUtil.RemoveChildsByActive(itemBuildContainer);
            listBuildItem.Clear();
            listBuildForBedItem.Clear();
            for (int i = 0; i < gameData.listBed.Count; i++)
            {
                BuildBedBean itemData = gameData.listBed[i];
                CreateBuildForBedItem(itemData);
                hasData = true;
            }
        }
        else
        {
            if (itemBuildModel == null)
            {
                return;
            }
            if (gameData.listBuild == null)
            {
                return;
            }
            CptUtil.RemoveChildsByActive(itemBuildContainer);
            listBuildItem.Clear();
            listBuildForBedItem.Clear();

            for (int i = 0; i < gameData.listBuild.Count; i++)
            {
                ItemBean      itemData  = gameData.listBuild[i];
                BuildItemBean buildData = InnBuildHandler.Instance.manager.GetBuildDataById(itemData.itemId);
                if (buildData == null)
                {
                    continue;
                }
                if (type == buildData.GetBuildType())
                {
                    CreateBuildItem(itemData, buildData);
                    hasData = true;
                }
            }
        }
        if (hasData)
        {
            tvNull.gameObject.SetActive(false);
        }
        else
        {
            tvNull.gameObject.SetActive(true);
        }
    }
Beispiel #10
0
 public override void SetData(BuildItemBean buildItemData)
 {
     base.SetData(buildItemData);
     SetLayer(2);
 }
Beispiel #11
0
    /// <summary>
    /// 通过ID获取家具Obj
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public GameObject GetFurnitureObjById(InnResBean furnitureData, Transform tfFather, BuildBedBean buildBedData)
    {
        BuildItemBean    buildItemData     = GetBuildDataById(furnitureData.id);
        GameObject       furnitureObjModel = GetModel(dicFurnitureCpt, "model/furniture", buildItemData.model_name);
        GameObject       furnitureObj      = Instantiate(tfFather.gameObject, furnitureObjModel);
        BaseBuildItemCpt buildItemCpt      = furnitureObj.GetComponent <BaseBuildItemCpt>();
        List <string>    listIcon          = buildItemData.GetIconList();

        switch ((BuildItemTypeEnum)buildItemData.build_type)
        {
        case BuildItemTypeEnum.Counter:
            BuildCounterCpt buildCounter   = (BuildCounterCpt)buildItemCpt;
            Sprite          spLeftCounter  = GetFurnitureSpriteByName(listIcon[0] + "_0");
            Sprite          spRightCounter = GetFurnitureSpriteByName(listIcon[0] + "_1");
            Sprite          spDownCounter  = GetFurnitureSpriteByName(listIcon[0] + "_2");
            Sprite          spUpCounter    = GetFurnitureSpriteByName(listIcon[0] + "_3");
            buildCounter.SetData(buildItemData, spLeftCounter, spRightCounter, spDownCounter, spUpCounter);
            break;

        case BuildItemTypeEnum.Stove:
            BuildStoveCpt buildStove   = (BuildStoveCpt)buildItemCpt;
            Sprite        spLeftStove  = GetFurnitureSpriteByName(listIcon[0] + "_0");
            Sprite        spRightStove = GetFurnitureSpriteByName(listIcon[0] + "_1");
            Sprite        spDownStove  = GetFurnitureSpriteByName(listIcon[0] + "_2");
            Sprite        spUpStove    = GetFurnitureSpriteByName(listIcon[0] + "_3");
            buildStove.SetData(buildItemData, spLeftStove, spRightStove, spDownStove, spUpStove);
            break;

        case BuildItemTypeEnum.Table:
            BuildTableCpt buildTable = (BuildTableCpt)buildItemCpt;

            Sprite spLeftChair  = GetFurnitureSpriteByName(listIcon[1] + "_0");
            Sprite spRightChair = GetFurnitureSpriteByName(listIcon[1] + "_1");
            Sprite spDownChair  = GetFurnitureSpriteByName(listIcon[1] + "_2");
            Sprite spUpChair    = GetFurnitureSpriteByName(listIcon[1] + "_3");

            if (buildItemData.model_name.Equals("Table_1"))
            {
                Sprite spTable = GetFurnitureSpriteByName(listIcon[0]);
                buildTable.SetData(buildItemData, spTable, spLeftChair, spRightChair, spDownChair, spUpChair);
            }
            else if (buildItemData.model_name.Equals("Table_2"))
            {
                Sprite spLeftTable  = GetFurnitureSpriteByName(listIcon[0] + "_0");
                Sprite spRightTable = GetFurnitureSpriteByName(listIcon[0] + "_1");
                Sprite spDownTable  = GetFurnitureSpriteByName(listIcon[0] + "_2");
                Sprite spUpTable    = GetFurnitureSpriteByName(listIcon[0] + "_3");
                buildTable.SetData(buildItemData, spLeftTable, spRightTable, spDownTable, spUpTable, spLeftChair, spRightChair, spDownChair, spUpChair);
            }

            break;

        case BuildItemTypeEnum.Decoration:
            BuildDecorationCpt buildDecoration = (BuildDecorationCpt)buildItemCpt;
            Sprite             spDecoration    = GetFurnitureSpriteByName(buildItemData.icon_key);
            buildDecoration.SetData(buildItemData, spDecoration);
            break;

        case BuildItemTypeEnum.Door:
            BuildDoorCpt buildDoor = (BuildDoorCpt)buildItemCpt;
            Sprite       spDoor    = GetFurnitureSpriteByName(listIcon[0]);
            buildDoor.SetData(buildItemData, spDoor);
            break;

        case BuildItemTypeEnum.Floor:
            BuildFloorCpt buildFloor = (BuildFloorCpt)buildItemCpt;
            Sprite        spFloor    = GetFloorSpriteByName(buildItemData.icon_key);
            buildFloor.SetData(buildItemData, spFloor);
            break;

        case BuildItemTypeEnum.Wall:
            BuildWallCpt buildWall = (BuildWallCpt)buildItemCpt;
            Sprite       spWall    = GetWallSpriteByName(buildItemData.icon_key);
            buildWall.SetData(buildItemData, spWall);
            break;

        case BuildItemTypeEnum.Bed:
            BuildBedCpt buildBed = (BuildBedCpt)buildItemCpt;
            buildBed.SetData(buildItemData, buildBedData);
            break;

        case BuildItemTypeEnum.Stairs:
            BuildStairsCpt buildStairs = (BuildStairsCpt)buildItemCpt;
            buildStairs.SetData(buildItemData);
            buildStairs.SetRemarkId(furnitureData.remarkId);
            if (furnitureData.remark != null && furnitureData.remark.Equals("1"))
            {
                buildStairs.SetLayer(1);
            }
            else
            {
                buildStairs.SetLayer(2);
            }
            break;

        default:
            buildItemCpt.SetData(buildItemData);
            break;
        }
        return(furnitureObj);
    }
Beispiel #12
0
 /// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="buildItemData"></param>
 /// <param name="spLeft"></param>
 /// <param name="spRight"></param>
 /// <param name="spDown"></param>
 /// <param name="spUp"></param>
 public void SetData(BuildItemBean buildItemData, Sprite spLeft, Sprite spRight, Sprite spDown, Sprite spUp)
 {
     SetData(buildItemData);
     SetSprite(spLeft, spRight, spDown, spUp);
 }
Beispiel #13
0
 /// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="buildItemData"></param>
 /// <param name="spIcon"></param>
 public virtual void SetData(BuildItemBean buildItemData, Sprite spIcon)
 {
     SetData(buildItemData);
     SetSprite(spIcon, spIcon, spIcon, spIcon);
 }
Beispiel #14
0
 /// <summary>
 /// 设置建筑数据
 /// </summary>
 /// <param name="buildItemData"></param>
 public virtual void SetData(BuildItemBean buildItemData)
 {
     this.buildItemData = buildItemData;
 }