예제 #1
0
    protected T GetModel <T>(string assetBundlePath, string name, string remarkResourcesPath) where T : Object
    {
        if (name == null)
        {
            return(null);
        }
        T model = null;

#if UNITY_EDITOR
        //编辑器模式下直接加载资源
        if (!CheckUtil.StringIsNull(remarkResourcesPath))
        {
            model = LoadAssetUtil.LoadAssetAtPathForEditor <T>(remarkResourcesPath);
        }
        else
        {
            model = LoadAssetUtil.SyncLoadAsset <T>(assetBundlePath, name);
        }
#else
        model = LoadAssetUtil.SyncLoadAsset <T>(assetBundlePath, name);
#endif
        return(model);
    }
예제 #2
0
    /// <summary>
    /// 生成战斗
    /// </summary>
    public void OnClickCombatBuild()
    {
        MiniGameCombatBean miniGameCombat = (MiniGameCombatBean)MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Combat);

        if (CheckUtil.StringIsNull(etCombatPlayerIds.text))
        {
            LogUtil.LogError("没有玩家ID");
            return;
        }
        if (CheckUtil.StringIsNull(etCombatPlayerIds.text))
        {
            LogUtil.LogError("没有敌人ID");
            return;
        }
        List <long> playerIds = GetIds(etCombatPlayerIds.text);
        List <long> EnemyIds  = GetIds(etCombatEnemyIds.text);

        miniGameCombat.winBringDownNumber = EnemyIds.Count;
        miniGameCombat.winSurvivalNumber  = 1;
        List <CharacterBean> listOurData = new List <CharacterBean>();

        foreach (long id in playerIds)
        {
            listOurData.Add(NpcInfoHandler.Instance.manager.GetCharacterDataById(id));
        }
        List <CharacterBean> listEnemyData = new List <CharacterBean>();

        foreach (long id in EnemyIds)
        {
            listEnemyData.Add(NpcInfoHandler.Instance.manager.GetCharacterDataById(id));
        }
        miniGameCombat.InitData(listOurData, listEnemyData);
        //找到竞技场战斗的地点
        miniGameCombat.miniGamePosition = new Vector3(0, 10, 0);
        //初始化游戏
        MiniGameHandler.Instance.handlerForCombat.InitGame(miniGameCombat);
    }
예제 #3
0
    /// <summary>
    /// 通过UI的名字开启UI
    /// </summary>
    /// <param name="uiName"></param>
    public T OpenUIByName <T>(string uiName) where T : BaseUIComponent
    {
        if (CheckUtil.StringIsNull(uiName))
        {
            return(null);
        }
        for (int i = 0; i < uiList.Count; i++)
        {
            BaseUIComponent itemUI = uiList[i];
            if (itemUI.name.Equals(uiName))
            {
                itemUI.OpenUI();
                return(itemUI as T);
            }
        }
        T uiComponent = CreateUI <T>(uiName);

        if (uiComponent)
        {
            uiComponent.OpenUI();
            return(uiComponent);
        }
        return(null);
    }
예제 #4
0
 /// <summary>
 /// string 拆分成指定枚举
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="data"></param>
 /// <param name="substring"></param>
 /// <returns></returns>
 public static T[] SplitBySubstringForArrayEnum <T>(string data, char substring)
 {
     if (CheckUtil.StringIsNull(data))
     {
         return(new T[0]);
     }
     string[] splitData = data.Split(new char[] { substring }, StringSplitOptions.RemoveEmptyEntries);
     if (CheckUtil.ArrayIsNull(splitData))
     {
         return(new T[0]);
     }
     T[] listData = new T[splitData.Length];
     for (int i = 0; i < splitData.Length; i++)
     {
         if (CheckUtil.StringIsNull(splitData[i]))
         {
         }
         else
         {
             listData[i] = EnumUtil.GetEnum <T>(splitData[i]);
         }
     }
     return(listData);
 }
예제 #5
0
    /// <summary>
    /// 设置数据
    /// </summary>
    /// <param name="storeInfo"></param>
    public void SetData(StoreInfoBean storeInfo)
    {
        this.storeInfo = storeInfo;
        this.itemsInfo = GameItemsHandler.Instance.manager.GetItemsById(storeInfo.mark_id);
        if (itemsInfo == null || storeInfo == null)
        {
            return;
        }
        //如果图标key没有则替换成itemInfo的图标
        string iconKey = storeInfo.icon_key;

        if (CheckUtil.StringIsNull(iconKey))
        {
            iconKey = itemsInfo.icon_key;
        }

        SetIcon(itemsInfo, storeInfo.mark, storeInfo.mark_id);
        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(itemsInfo.name);
        SetContent(itemsInfo.content);
        SetOwn();
        SetGetNumber(storeInfo.get_number);
        int cookBookNumber = itemsInfo.items_type == (int)GeneralEnum.Menu ? 1 : 0;

        SetAttribute(
            cookBookNumber,
            itemsInfo.add_cook,
            itemsInfo.add_speed,
            itemsInfo.add_account,
            itemsInfo.add_charm,
            itemsInfo.add_force,
            itemsInfo.add_lucky);
        SetPopupData(itemsInfo);
    }
    /// <summary>
    /// 通过UI的名字开启UI
    /// </summary>
    /// <param name="uiName"></param>
    public BaseUIComponent OpenUIByName(string uiName)
    {
        BaseUIComponent uiComponent = null;

        if (CheckUtil.StringIsNull(uiName))
        {
            return(uiComponent);
        }
        bool hasData = false;

        for (int i = 0; i < uiList.Count; i++)
        {
            BaseUIComponent itemUI = uiList[i];
            if (itemUI.name.Contains(uiName))
            {
                itemUI.OpenUI();
                hasData = true;
            }
        }
        if (!hasData)
        {
            GameObject uiModel = LoadAssetUtil.SyncLoadAsset <GameObject>("ui/ui", uiName);
            //BaseUIComponent uiModel = LoadResourcesUtil.SyncLoadData<BaseUIComponent>("UI/"+ uiName);
            if (uiModel)
            {
                GameObject objUIComponent = Instantiate(gameObject, uiModel.gameObject);
                uiComponent = objUIComponent.GetComponent <BaseUIComponent>();
                uiList.Add(uiComponent);
            }
            else
            {
                LogUtil.LogError("没有找到指定UI:" + "ui/ui " + uiName);
            }
        }
        return(uiComponent);
    }
예제 #7
0
 protected void BuildListFurniture(List <InnResBean> listData)
 {
     for (int i = 0; i < listData.Count; i++)
     {
         InnResBean itemData = listData[i];
         if (CheckUtil.StringIsNull(itemData.remarkId))
         {
             BuildFurniture(itemData, null);
         }
         else
         {
             //如果有备注ID说明是床或者其他建筑
             //是床
             BuildBedBean tempBuildBedData = null;
             //bool hasData = false;
             GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
             for (int f = 0; f < gameData.listBed.Count; f++)
             {
                 BuildBedBean buildBedData = gameData.listBed[f];
                 if (buildBedData != null && buildBedData.remarkId.Equals(itemData.remarkId))
                 {
                     tempBuildBedData = buildBedData;
                     //hasData = true;
                     break;
                 }
             }
             BuildFurniture(itemData, tempBuildBedData);
             //如果没有找到数据则删除这个建筑
             //if (!hasData)
             //{
             //    listData.Remove(itemData);
             //    i--;
             //}
         }
     }
 }
예제 #8
0
    private List <PuzzlesInfoBean> CreateGameInfoListByInstallInfo(List <SteamWorkshopQueryInstallInfoBean> listData)
    {
        List <PuzzlesInfoBean> listInfoData = new List <PuzzlesInfoBean>();

        foreach (SteamWorkshopQueryInstallInfoBean itemData in listData)
        {
            if (CheckUtil.StringIsNull(itemData.metaData))
            {
                continue;
            }
            PuzzlesInfoBean infoData = JsonUtil.FromJson <PuzzlesInfoBean>(itemData.metaData);
            infoData.id   = -1;
            infoData.name = itemData.detailsInfo.m_rgchTitle;
            infoData.introduction_content = itemData.detailsInfo.m_rgchDescription;
            if (!CheckUtil.StringIsNull(itemData.pchFolder))
            {
                infoData.data_file_path = itemData.pchFolder + "\\";
            }
            infoData.data_type       = (int)JigsawResourcesEnum.Custom;
            infoData.thumb_file_path = itemData.previewUrl;
            listInfoData.Add(infoData);
        }
        return(listInfoData);
    }
예제 #9
0
    /// <summary>
    /// 通过用户ID获取游戏数据
    /// </summary>
    /// <param name="userId"></param>
    /// <returns></returns>
    public GameDataBean GetGameDataByUserId(string userId)
    {
        GameDataBean gameData = mGameDataService.QueryDataByUserId(userId);

        //错误纠正
        if (gameData != null)
        {
            if (CheckUtil.StringIsNull(gameData.userCharacter.baseInfo.characterId))
            {
                gameData.userCharacter.baseInfo.characterId = userId;
            }
            if (!CheckUtil.ListIsNull(gameData.listWorkerCharacter))
            {
                foreach (CharacterBean characterData in gameData.listWorkerCharacter)
                {
                    if (CheckUtil.StringIsNull(characterData.baseInfo.characterId))
                    {
                        characterData.baseInfo.characterId = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N);
                    }
                }
            }
        }
        return(gameData);
    }
예제 #10
0
    public override void SelectionUse(ItemsSelectionDialogView view)
    {
        GeneralEnum itemsType = itemsInfoData.GetItemsType();

        switch (itemsType)
        {
        case GeneralEnum.Book:
            //读书
            if (characterData.attributes.CheckLearnBook(itemsInfoData.id))
            {
                //已经学习过该图书
                string toastStr = string.Format(TextHandler.Instance.manager.GetTextById(1009), characterData.baseInfo.name, itemsInfoData.name);
                ToastHandler.Instance.ToastHint(toastStr);
            }
            else
            {
                if (!CheckUtil.StringIsNull(itemsInfoData.remark) && itemsInfoData.remark.Equals("Recruit"))
                {
                    //如果是只有招募NPC才能使用的书
                    //判断是否是招募NPC
                    if (characterData.baseInfo.characterType == (int)NpcTypeEnum.RecruitTown ||
                        (characterData.npcInfoData != null && characterData.npcInfoData.GetNpcType() == NpcTypeEnum.RecruitTown))
                    {
                        //学习该图书
                        LearnBook();
                    }
                    else
                    {
                        ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1035));
                    }
                }
                else
                {
                    LearnBook();
                }
            }
            break;

        case GeneralEnum.SkillBook:
            if (characterData.attributes.CheckLearnSkills(itemsInfoData.add_id))
            {
                //已经学习过该技能
                string toastStr = string.Format(TextHandler.Instance.manager.GetTextById(1063), characterData.baseInfo.name, itemsInfoData.name);
                ToastHandler.Instance.ToastHint(toastStr);
            }
            else
            {
                //判断是否可学习
                Action <List <SkillInfoBean> > callBack = SetSkillInfoData;
                SkillInfoHandler.Instance.manager.GetSkillById(itemsInfoData.add_id, callBack);
            }
            break;

        case GeneralEnum.Other:
            if (itemsInfoData.id == 99900001)
            {
                //忘记技能的孟婆汤
                if (!CheckUtil.ListIsNull(characterData.attributes.listSkills))
                {
                    int removePosition = UnityEngine.Random.Range(0, characterData.attributes.listSkills.Count);
                    characterData.attributes.listSkills.RemoveAt(removePosition);
                }
                ToastHandler.Instance.ToastHint(characterData.baseInfo.name + TextHandler.Instance.manager.GetTextById(1067));
                RefreshItems(itemsInfoData.id, -1);
            }
            break;

        default:
            break;
        }
        GetUIComponent <UIGameEquip>().RefreshUI();
    }
예제 #11
0
    /// <summary>
    /// 设置性别
    /// </summary>
    /// <param name="sex">0未知 1男 2女 3中性</param>
    public void SetSex(int sex, string otherSkin)
    {
        Sprite spTrunk = null;

        if (CheckUtil.StringIsNull(otherSkin) || otherSkin.Equals("Def"))
        {
            switch (sex)
            {
            case 0:
                spTrunk = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_body_man");
                break;

            case 1:
                spTrunk = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_body_man");
                break;

            case 2:
                spTrunk = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_body_woman");
                break;

            case 3:
                spTrunk = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_body_man");
                break;
            }
            if (ivBody != null && spTrunk != null)
            {
                ivBody.sprite = spTrunk;
            }
            if (ivHead != null)
            {
                ivHead.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_head");
            }
            if (ivFootLeft != null)
            {
                ivFootLeft.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_body_left_foot");
            }
            if (ivFootRight != null)
            {
                ivFootRight.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName("character_body_right_foot");
            }
        }
        else
        {
            if (ivHead != null)
            {
                ivHead.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName(otherSkin + "_0");
            }
            if (ivBody != null)
            {
                ivBody.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName(otherSkin + "_1");
            }
            if (ivFootLeft != null)
            {
                ivFootLeft.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName(otherSkin + "_2");
            }
            if (ivFootRight != null)
            {
                ivFootRight.sprite = CharacterBodyHandler.Instance.manager.GetTrunkSpriteByName(otherSkin + "_3");
            }
        }
    }
예제 #12
0
    /// <summary>
    /// 链表插入数据
    /// </summary>
    /// <param name="itemData"></param>
    /// <param name="listLeftName"></param>
    public bool BaseInsertDataWithLeft <T>(T itemData, List <string> listLeftName)
    {
        //插入数据
        Dictionary <string, object> mapData = ReflexUtil.GetAllNameAndValue(itemData);
        List <string> listMainKeys          = new List <string>();
        List <string> listMainValues        = new List <string>();
        List <string> listLeftKeys          = new List <string>();
        List <string> listLeftValues        = new List <string>();

        foreach (var item in mapData)
        {
            string itemKey = item.Key;
            if (listLeftName.Contains(itemKey))
            {
                string valueStr = Convert.ToString(item.Value);
                listLeftKeys.Add(item.Key);
                if (item.Value == null)
                {
                    listLeftValues.Add("null");
                }
                else if (item.Value is string)
                {
                    if (CheckUtil.StringIsNull(valueStr))
                    {
                        listLeftValues.Add("null");
                    }
                    else
                    {
                        listLeftValues.Add("'" + valueStr + "'");
                    }
                }
                else if (item.Value == null)
                {
                    listLeftValues.Add("null");
                }
                else
                {
                    listLeftValues.Add(valueStr);
                }
            }
            else
            {
                string valueStr = Convert.ToString(item.Value);
                listMainKeys.Add(item.Key);
                if (item.Value == null)
                {
                    listMainValues.Add("null");
                }
                else if (item.Value is string)
                {
                    if (CheckUtil.StringIsNull(valueStr))
                    {
                        listMainValues.Add("null");
                    }
                    else
                    {
                        listMainValues.Add("'" + valueStr + "'");
                    }
                }
                else if (item.Value == null)
                {
                    listMainValues.Add("null");
                }
                else
                {
                    listMainValues.Add(valueStr);
                }
            }
        }
        bool isInsert = true;

        isInsert = SQLiteHandle.InsertValues(ProjectConfigInfo.DATA_BASE_INFO_NAME, tableNameForMain, TypeConversionUtil.ListToArray(listMainKeys), TypeConversionUtil.ListToArray(listMainValues));
        if (isInsert)
        {
            SQLiteHandle.InsertValues(ProjectConfigInfo.DATA_BASE_INFO_NAME, tableNameForLeft, TypeConversionUtil.ListToArray(listLeftKeys), TypeConversionUtil.ListToArray(listLeftValues));
        }
        return(isInsert);
    }
예제 #13
0
    public CharacterBean(NpcInfoBean npcInfo)
    {
        baseInfo.characterType = npcInfo.npc_type;
        baseInfo.characterId   = npcInfo.id + "";
        baseInfo.titleName     = npcInfo.title_name;
        baseInfo.name          = npcInfo.name;
        baseInfo.priceL        = npcInfo.wage_l;
        baseInfo.priceM        = npcInfo.wage_m;
        baseInfo.priceS        = npcInfo.wage_s;
        //设置最喜欢的东西
        if (!CheckUtil.StringIsNull(npcInfo.love_items))
        {
            baseInfo.listLoveItems = StringUtil.SplitBySubstringForArrayLong(npcInfo.love_items, ',').ToList();
        }
        body      = new CharacterBodyBean();
        body.hair = npcInfo.hair_id;
        //设置头发颜色
        ColorBean hairColor = new ColorBean(npcInfo.hair_color);

        if (hairColor != null)
        {
            body.hairColor = hairColor;
        }
        body.eye = npcInfo.eye_id;
        //设置眼睛颜色
        ColorBean eyeColor = new ColorBean(npcInfo.eye_color);

        if (eyeColor != null)
        {
            body.eyeColor = eyeColor;
        }
        body.mouth = npcInfo.mouth_id;
        //设置嘴巴颜色
        ColorBean mouthColor = new ColorBean(npcInfo.mouth_color);

        if (mouthColor != null)
        {
            body.mouthColor = mouthColor;
        }
        body.sex  = npcInfo.sex;
        body.face = npcInfo.face;
        //设置皮肤颜色
        ColorBean skinColor = new ColorBean(npcInfo.skin_color);

        if (skinColor != null)
        {
            body.skinColor = skinColor;
        }
        //设置装备
        equips           = new CharacterEquipBean();
        equips.maskId    = npcInfo.mask_id;
        equips.handId    = npcInfo.hand_id;
        equips.hatId     = npcInfo.hat_id;
        equips.clothesId = npcInfo.clothes_id;
        equips.shoesId   = npcInfo.shoes_id;
        equips.maskId    = npcInfo.mask_id;

        //设置属性
        attributes         = new CharacterAttributesBean();
        attributes.loyal   = npcInfo.attributes_loyal;
        attributes.life    = npcInfo.attributes_life;
        attributes.cook    = npcInfo.attributes_cook;
        attributes.speed   = npcInfo.attributes_speed;
        attributes.account = npcInfo.attributes_account;
        attributes.charm   = npcInfo.attributes_charm;
        attributes.force   = npcInfo.attributes_force;
        attributes.lucky   = npcInfo.attributes_lucky;
        //设置技能
        attributes.listSkills = npcInfo.GetSkillIds();

        npcInfoData = npcInfo;
    }
예제 #14
0
    /// <summary>
    /// 根据层数获取奖励
    /// </summary>
    /// <param name="layer"></param>
    /// <param name="normalBuildRate"></param>
    /// <returns></returns>
    public static List <RewardTypeBean> GetRewardItemsForInfiniteTowers(List <CharacterBean> listEnemyData, int layer, int totalLucky, bool isSend)
    {
        List <RewardTypeBean> listReward = new List <RewardTypeBean>();
        long addExp    = 0;
        long addMoneyS = 0;

        //获取稀有物品概率
        float normalBuildRate = 0.25f + 0.0025f * (totalLucky / 3f);
        float rateRate        = 0;

        if (isSend)
        {
            rateRate = 0.05f + 0.0005f * totalLucky;
        }
        else
        {
            rateRate = 0.1f + 0.0005f * totalLucky;
        }
        if (layer % 10 == 0)
        {
            //添加经验奖励
            addExp = layer * 5;
            //添加金钱奖励
            addMoneyS = layer * 50;
            //BOSS奖励
            string rewardForNormalStr      = "";
            string rewardForRareStr        = "";
            string rewardForNormalBuildStr = "";
            string rewardForRareBuildStr   = "";
            switch (layer)
            {
            case 10:
            case 20:
            case 30:
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalRewardForLevel1, out rewardForNormalStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareRewardForLevel1, out rewardForRareStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalBuildRewardForLevel1, out rewardForNormalBuildStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareBuildRewardForLevel1, out rewardForRareBuildStr);
                break;

            case 40:
            case 50:
            case 60:
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalRewardForLevel2, out rewardForNormalStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareRewardForLevel2, out rewardForRareStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalBuildRewardForLevel2, out rewardForNormalBuildStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareBuildRewardForLevel2, out rewardForRareBuildStr);
                break;

            case 70:
            case 80:
            case 90:
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalRewardForLevel3, out rewardForNormalStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareRewardForLevel3, out rewardForRareStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalBuildRewardForLevel3, out rewardForNormalBuildStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareBuildRewardForLevel3, out rewardForRareBuildStr);
                break;

            default:
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalRewardForLevel4, out rewardForNormalStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareRewardForLevel4, out rewardForRareStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersNormalBuildRewardForLevel4, out rewardForNormalBuildStr);
                GameCommonInfo.baseDataController.GetBaseData(BaseDataTypeEnum.InfiniteTowersRareBuildRewardForLevel4, out rewardForRareBuildStr);
                break;
            }
            if (!CheckUtil.StringIsNull(rewardForNormalStr))
            {
                //必定随机获得一个物品
                RewardTypeBean rewardForItems = GetRandomRewardForData(listEnemyData, RewardTypeEnum.AddItems, rewardForNormalStr);
                listReward.Add(rewardForItems);
                //有一定概率获得建筑物
                float randomTemp = UnityEngine.Random.Range(0f, 1f);
                if (!CheckUtil.StringIsNull(rewardForNormalBuildStr) && randomTemp <= normalBuildRate)
                {
                    RewardTypeBean rewardForBuild = GetRandomRewardForData(listEnemyData, RewardTypeEnum.AddBuildItems, rewardForNormalBuildStr);
                    listReward.Add(rewardForBuild);
                }
            }
            if (!CheckUtil.StringIsNull(rewardForRareStr))
            {
                //有一定概率获得稀有物品
                float randomTemp = UnityEngine.Random.Range(0f, 1f);
                if (randomTemp <= rateRate)
                {
                    RewardTypeBean rewardForItems = GetRandomRewardForData(listEnemyData, RewardTypeEnum.AddItems, rewardForRareStr);
                    listReward.Add(rewardForItems);
                }
            }
        }
        else
        {
            //添加经验奖励
            addExp = layer;
            //添加金钱奖励
            addMoneyS = layer * 5;
        }

        RewardTypeBean rewardForExp = new RewardTypeBean(RewardTypeEnum.AddBeaterExp, addExp + "");

        listReward.Add(rewardForExp);
        RewardTypeBean rewardForMoneyS = new RewardTypeBean(RewardTypeEnum.AddMoneyS, addMoneyS + "");

        listReward.Add(rewardForMoneyS);

        return(listReward);
    }
예제 #15
0
    private NpcAIImportantCpt BuildNpc(CharacterBean characterData)
    {
        GameObject npcObj = null;

        try
        {
            if (objNpcModel == null || objNpcContainer == null)
            {
                return(null);
            }
            //检测是否已经招募
            GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
            if (gameData.CheckHasWorker(characterData.baseInfo.characterId))
            {
                return(null);
            }
            //检测是否是老婆
            FamilyDataBean familyData = gameData.GetFamilyData();
            if (familyData.CheckIsMate(characterData.npcInfoData.id))
            {
                return(null);
            }
            if (gameData.gameTime.year == 0 &&
                gameData.gameTime.month == 0 &&
                gameData.gameTime.day == 0)
            {
                //如果是测试 这默认生成所有NPC
            }
            else
            {
                //检测是否满足出现条件
                if (!CheckUtil.StringIsNull(characterData.npcInfoData.condition) && !ShowConditionTools.CheckIsMeetAllCondition(gameData, characterData.npcInfoData.condition))
                {
                    return(null);
                }
            }

            npcObj = Instantiate(objNpcContainer, objNpcModel);
            npcObj.transform.position   = new Vector3(characterData.npcInfoData.position_x, characterData.npcInfoData.position_y);
            npcObj.transform.localScale = new Vector3(1, 1);
            NpcAIImportantCpt aiCpt = npcObj.GetComponent <NpcAIImportantCpt>();
            aiCpt.SetCharacterData(characterData);

            if (characterData.npcInfoData.GetNpcType() == NpcTypeEnum.Special || characterData.npcInfoData.GetNpcType() == NpcTypeEnum.RecruitTown)
            {
                if (!GameCommonInfo.DailyLimitData.CheckIsTalkNpc(characterData.npcInfoData.id))
                {
                    if (characterData.npcInfoData.GetTalkTypes().Contains(NpcTalkTypeEnum.OneTalk) ||
                        characterData.npcInfoData.GetTalkTypes().Contains(NpcTalkTypeEnum.Recruit))
                    {
                        aiCpt.SetExpression(CharacterExpressionCpt.CharacterExpressionEnum.Doubt, -1);
                    }
                }
            }

            //如果没有对话选项则不能互动
            BoxCollider2D talkBox = npcObj.GetComponent <BoxCollider2D>();
            if (talkBox != null)
            {
                if (CheckUtil.StringIsNull(characterData.npcInfoData.talk_types))
                {
                    talkBox.enabled = false;
                }
            }
            return(aiCpt);
        }
        catch
        {
            if (npcObj != null)
            {
                Destroy(npcObj);
            }
            return(null);
        }
    }
예제 #16
0
    private GameObject CreateInstallItem(PuzzlesGameInfoBean itemInfo)
    {
        PuzzlesInfoBean          infoBean          = itemInfo.puzzlesInfo;
        PuzzlesCompleteStateBean completeStateBean = itemInfo.completeStateInfo;

        itemInfo.completeStateInfo = completeStateBean;
        itemInfo.puzzlesInfo       = infoBean;

        GameObject itemObj = Instantiate(installModel);

        itemObj.transform.parent     = this.transform;
        itemObj.transform.localScale = new Vector3(1f, 1f, 1f);
        itemObj.SetActive(true);

        itemObj.name = infoBean.Mark_file_name;
        itemObj.transform.SetParent(transform);

        //设置背景图片
        Image  backImage = CptUtil.getCptFormParentByName <Transform, Image>(itemObj.transform, "JigsawPic");
        string filePath  = infoBean.thumb_file_path;

        StartCoroutine(ResourcesManager.LoadAsyncHttpImage(filePath, backImage));

        //设置按键
        Button startBT     = CptUtil.getCptFormParentByName <Transform, Button>(itemObj.transform, "JigsawStart");
        Text   startBTText = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawStartText");

        if (!CheckUtil.StringIsNull(infoBean.data_file_path))
        {
            startBT.onClick.AddListener(delegate()
            {
                SoundUtil.playSoundClip(AudioButtonOnClickEnum.btn_sound_1);
                CommonData.SelectPuzzlesInfo = itemInfo;
                SceneUtil.jumpGameScene();
            });

            if (itemInfo.progressInfo != null)
            {
                startBTText.text = CommonData.getText(85);
            }
            else
            {
                startBTText.text = CommonData.getText(14);
            }
        }
        else
        {
            startBTText.text = CommonData.getText(130);
        }


        //最好分数
        Transform bestScoreTF = CptUtil.getCptFormParentByName <Transform, Transform>(itemObj.transform, "JigsawBestScore");
        Text      bestScore   = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawBestScoreText");

        if (completeStateBean != null && completeStateBean.completeTime != null)
        {
            bestScore.text = GameUtil.GetTimeStr(completeStateBean.completeTime.totalSeconds);
        }
        else
        {
            bestScoreTF.gameObject.SetActive(false);
        }

        //设置文本信息
        Text jigsawNameText = CptUtil.getCptFormParentByName <Transform, Text>(itemObj.transform, "JigsawName");

        jigsawNameText.text = infoBean.Name;
        return(itemObj);
    }
예제 #17
0
    public void Submit(DialogView dialogView, DialogBean dialogBean)
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        if (dialogView is PickForCharacterDialogView)
        {
            buildBedData.GetResearchPrice(out long researchPriceL, out long researchPriceM, out long researchPriceS);
            //先判断一下是否有钱支付
            if (!gameData.HasEnoughMoney(researchPriceL, researchPriceM, researchPriceS))
            {
                ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1005));
                return;
            }
            //扣除金钱
            gameData.PayMoney(researchPriceL, researchPriceM, researchPriceS);
            //角色选择
            PickForCharacterDialogView pickForCharacterDialog = dialogView as PickForCharacterDialogView;
            List <CharacterBean>       listPickCharacter      = pickForCharacterDialog.GetPickCharacter();
            if (!CheckUtil.ListIsNull(listPickCharacter))
            {
                //开始研究
                buildBedData.StartResearch(listPickCharacter);
                string toastStr = string.Format(TextHandler.Instance.manager.GetTextById(1201), listPickCharacter[0].baseInfo.name, buildBedData.bedName);
                ToastHandler.Instance.ToastHint(toastStr);
            }
        }
        else if (dialogView is InputTextDialogView)
        {
            InputTextDialogView inputTextDialog = dialogView as InputTextDialogView;
            string bedName = inputTextDialog.GetText();
            if (!CheckUtil.StringIsNull(bedName))
            {
                buildBedData.bedName = bedName;
            }
        }
        else
        {
            if (dialogBean.dialogPosition == 1)
            {
                if (buildBedData.GetBedStatus() == ResearchStatusEnum.Researching)
                {
                    ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1313));
                    return;
                }
                if (buildBedData.isSet)
                {
                    ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1314));
                    return;
                }
                //丢弃确认
                gameData.RemoveBed(buildBedData);
                uiComponent.RefreshUI();
            }
            else if (dialogBean.dialogPosition == 2)
            {
                //普通弹窗(取消研究)
                buildBedData.CancelResearch(gameData);
            }
        }
        //重新设置数据
        if (gameObject)
        {
            SetData(buildBedData);
        }
    }