Exemple #1
0
 protected void ChangeAllSelectStatus(bool isSelect)
 {
     AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForNormal);
     for (int i = 0; i < listData.Count; i++)
     {
         CharacterBean    characterData = listData[i];
         WorkerStatusEnum workerStatus  = characterData.baseInfo.GetWorkerStatus();
         if (workerStatus == WorkerStatusEnum.Work)
         {
             if (!isSelect)
             {
                 characterData.baseInfo.SetWorkerStatus(WorkerStatusEnum.Rest);
             }
         }
         else if (workerStatus == WorkerStatusEnum.Rest)
         {
             if (isSelect)
             {
                 characterData.baseInfo.SetWorkerStatus(WorkerStatusEnum.Work);
             }
         }
     }
     gridVertical.RefreshAllCells();
     InitAttendancePrice();
 }
Exemple #2
0
    /// <summary>
    /// 创建随机敌人数据
    /// </summary>
    /// <param name="characterBodyManager"></param>
    /// <returns></returns>
    public static CharacterBean CreateRandomEnemyData(int baseLife, int baseAttributes, int equipLevel)
    {
        CharacterBean characterData = new CharacterBean();

        characterData.baseInfo.characterId   = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N);
        characterData.baseInfo.characterType = (int)NpcTypeEnum.Other;
        //设置随机名字
        characterData.baseInfo.name = RandomUtil.GetRandomGenerateChineseWord(UnityEngine.Random.Range(2, 4));

        //随机身体数据
        characterData.body.CreateRandomBody();

        //根据性别装备服装
        GetRandomDressByLevel(equipLevel, out long randomHat, out long randomClothes, out long randomShoes);
        characterData.equips.clothesId = randomClothes;
        characterData.equips.shoesId   = randomShoes;
        //生成随机能力
        characterData.attributes.CreateRandomData(
            baseLife - 50, baseLife + 50,
            0, 1,
            baseAttributes - 3, baseAttributes + 3,
            baseAttributes - 3, baseAttributes + 3,
            baseAttributes - 3, baseAttributes + 3,
            baseAttributes - 3, baseAttributes + 3,
            baseAttributes - 3, baseAttributes + 3,
            baseAttributes - 3, baseAttributes + 3);
        return(characterData);
    }
Exemple #3
0
    protected static RewardTypeBean GetRandomRewardForData(List <CharacterBean> listEnemyData, RewardTypeEnum rewardType, string rewardListStr)
    {
        if (CheckUtil.StringIsNull(rewardListStr))
        {
            return(null);
        }
        List <string> listReward   = StringUtil.SplitBySubstringForListStr(rewardListStr, '|');
        string        randomReward = RandomUtil.GetRandomDataByList(listReward);
        string        rewardDataStr;

        if (randomReward.Equals("Skills"))
        {
            //如果没有传入敌人则不获取技能
            if (CheckUtil.ListIsNull(listEnemyData))
            {
                return(GetRandomRewardForData(listEnemyData, rewardType, rewardListStr));
            }
            List <long> listSkills = new List <long>();
            for (int i = 0; i < listEnemyData.Count; i++)
            {
                CharacterBean characterData = listEnemyData[i];
                listSkills.AddRange(characterData.attributes.listSkills);
            }
            long randomSkill = RandomUtil.GetRandomDataByList(listSkills);
            rewardDataStr = (1400000 + randomSkill) + "";
        }
        else
        {
            rewardDataStr = randomReward;
        }
        RewardTypeBean rewardData = new RewardTypeBean(rewardType, rewardDataStr);

        return(rewardData);
    }
Exemple #4
0
    /// <summary>
    /// 根据运气获取敌人装备
    /// </summary>
    /// <returns></returns>
    public static List <RewardTypeBean> GetRewardEnemyEquipForInfiniteTowers(List <CharacterBean> listEnemyData, int layer, int totalLucky)
    {
        List <RewardTypeBean> listReward = new List <RewardTypeBean>();

        if (layer % 10 == 0)
        {
            float getRate    = 0.2f + 0.001f * totalLucky;
            float randomRate = UnityEngine.Random.Range(0f, 1f);
            if (randomRate <= getRate)
            {
                CharacterBean randomEnemy = RandomUtil.GetRandomDataByList(listEnemyData);
                if (randomEnemy.equips.hatId != 0)
                {
                    listReward.Add(new RewardTypeBean(RewardTypeEnum.AddItems, randomEnemy.equips.hatId + ""));
                }
                if (randomEnemy.equips.clothesId != 0)
                {
                    listReward.Add(new RewardTypeBean(RewardTypeEnum.AddItems, randomEnemy.equips.clothesId + ""));
                }
                if (randomEnemy.equips.shoesId != 0)
                {
                    listReward.Add(new RewardTypeBean(RewardTypeEnum.AddItems, randomEnemy.equips.shoesId + ""));
                }
            }
        }
        return(listReward);
    }
Exemple #5
0
 public void SetData(CharacterBean characterData, bool isUnLock, string name, long number, string id)
 {
     this.isUnLock = isUnLock;
     SetCharacterUI(characterData, isUnLock);
     SetNumber(isUnLock, number);
     if (isUnLock)
     {
         if (CheckUtil.StringIsNull(name))
         {
             SetName(characterData.baseInfo.name);
         }
         else
         {
             SetName(name);
         }
         ivIcon.gameObject.SetActive(false);
     }
     else
     {
         SetName("???", Color.gray);
         ivIcon.gameObject.SetActive(true);
     }
     if (!CheckUtil.StringIsNull(id))
     {
         infoLoveMenusPopup.SetDataForTeamCustomer(id);
     }
     else
     {
         infoLoveMenusPopup.SetActive(false);
     }
 }
Exemple #6
0
    /// <summary>
    /// 创建随机工作者角色数据  用于黄金台招人
    /// </summary>
    /// <param name="type"></param>
    /// <returns></returns>
    public static CharacterBean CreateRandomWorkerData()
    {
        CharacterBean characterData = new CharacterBean();

        characterData.baseInfo.characterId   = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N);
        characterData.baseInfo.characterType = (int)NpcTypeEnum.RecruitNormal;
        //设置随机名字
        characterData.baseInfo.name = RandomUtil.GetRandomGenerateChineseWord(UnityEngine.Random.Range(2, 4));
        float randomRare = UnityEngine.Random.Range(0, 1);

        //生成随机能力
        characterData.attributes.CreateRandomData(
            1, 500,
            1, 100,
            1, 10,
            1, 10,
            1, 10,
            1, 10,
            1, 10,
            1, 10);
        //随机身体数据
        characterData.body.CreateRandomBody();
        //根据性别装备服装
        GetRandomDressByLevel(0, out long randomHat, out long randomClothes, out long randomShoes);
        characterData.equips.clothesId = randomClothes;
        characterData.equips.shoesId   = randomShoes;
        //根据能力生成工资
        characterData.attributes.CreatePriceByAttributes(out long priceL, out long priceM, out long priceS);
        characterData.baseInfo.priceL = priceL;
        characterData.baseInfo.priceM = priceM;
        characterData.baseInfo.priceS = priceS;
        return(characterData);
    }
 /// <summary>
 /// 移除招募者
 /// </summary>
 /// <param name="characterData"></param>
 public void RemoveRecruitmentCharacter(CharacterBean characterData)
 {
     if (listRecruitmentCharacter != null)
     {
         listRecruitmentCharacter.Remove(characterData);
     }
 }
Exemple #8
0
    /// <summary>
    /// 初始化朋友
    /// </summary>
    public void InitFriendCustomer()
    {
        CptUtil.RemoveChildsByActive(objFriendCustomerContainer);

        GameDataBean        gameData        = GameDataHandler.Instance.manager.GetGameData();
        UserAchievementBean userAchievement = gameData.GetAchievementData();

        //设置数量
        if (tvFriendCustomerNumber != null)
        {
            tvFriendCustomerNumber.text = TextHandler.Instance.manager.GetTextById(323) + " " + userAchievement.GetNumberForCustomerFoodByType(CustomerTypeEnum.Friend) + TextHandler.Instance.manager.GetTextById(82);
        }
        List <CharacterFavorabilityBean> listData = gameData.listCharacterFavorability;

        foreach (CharacterFavorabilityBean itemData in listData)
        {
            CharacterBean itemCharacterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(itemData.characterId);
            //如果是小镇居民
            if (itemCharacterData.baseInfo.characterType == (int)NpcTypeEnum.Town)
            {
                GameObject objItem = Instantiate(objFriendCustomerContainer, objItemCustomerModel);
                ItemGameStatisticsForCustomerCpt itemCustomer = objItem.GetComponent <ItemGameStatisticsForCustomerCpt>();
                UserCustomerBean userCustomerData             = userAchievement.GetCustomerData(CustomerTypeEnum.Friend, itemCharacterData.baseInfo.characterId + "");
                long             number = 0;
                if (userCustomerData != null)
                {
                    number = userCustomerData.number;
                }
                itemCustomer.SetData(itemCharacterData, true, null, number);
            }
        }
    }
Exemple #9
0
    /// <summary>
    /// 根据层数获取敌人能力
    /// </summary>
    /// <param name="layer"></param>
    /// <returns></returns>
    public CharacterAttributesBean GetEnemyAttributesByLayer(CharacterBean characterData, int layer)
    {
        CharacterAttributesBean characterAttributes = new CharacterAttributesBean();

        if (layer % 10 == 0)
        {
            int addRate = 1 + ((layer - 10) / 20);
            characterAttributes.InitAttributes(
                characterData.attributes.life * addRate,
                characterData.attributes.cook * addRate,
                characterData.attributes.speed * addRate,
                characterData.attributes.account * addRate,
                characterData.attributes.charm * addRate,
                characterData.attributes.force * addRate,
                characterData.attributes.lucky * addRate);
        }
        else
        {
            int baseAttributes = layer + 4;
            characterAttributes.InitAttributes(
                baseAttributes * 10,
                baseAttributes,
                baseAttributes + Random.Range(-1, 2),
                baseAttributes,
                baseAttributes,
                baseAttributes,
                baseAttributes);
        }
        return(characterAttributes);
    }
 /// <summary>
 /// 设置属性
 /// </summary>
 /// <param name="characterAttributes"></param>
 /// <param name="characterEquip"></param>
 public void SetAttributes(CharacterBean characterData)
 {
     characterData.GetAttributes(out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes);
     if (tvCook != null)
     {
         tvCook.text = TextHandler.Instance.manager.GetTextById(1) + ":" + selfAttributes.cook + (equipAttributes.cook == 0 ? "" : "+" + equipAttributes.cook);
     }
     if (tvSpeed != null)
     {
         tvSpeed.text = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Speed) + ":" + selfAttributes.speed + (equipAttributes.speed == 0 ? "" : "+" + equipAttributes.speed);
     }
     if (tvAccount != null)
     {
         tvAccount.text = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Account) + ":" + selfAttributes.account + (equipAttributes.account == 0 ? "" : "+" + equipAttributes.account);
     }
     if (tvCharm != null)
     {
         tvCharm.text = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Charm) + ":" + selfAttributes.charm + (equipAttributes.charm == 0 ? "" : "+" + equipAttributes.charm);
     }
     if (tvForce != null)
     {
         tvForce.text = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Force) + ":" + selfAttributes.force + (equipAttributes.force == 0 ? "" : "+" + equipAttributes.force);
     }
     if (tvLucky != null)
     {
         tvLucky.text = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Lucky) + ":" + selfAttributes.lucky + (equipAttributes.lucky == 0 ? "" : "+" + equipAttributes.lucky);
     }
     if (characterAttributeView != null)
     {
         characterAttributeView.SetData(totalAttributes.cook, totalAttributes.speed, totalAttributes.account, totalAttributes.charm, totalAttributes.force, totalAttributes.lucky);
     }
 }
Exemple #11
0
    public void BuildConvert(NpcTeamBean npcTeam, Vector3 npcPosition)
    {
        if (npcTeam == null || listExistTeamId.Contains(npcTeam.id))
        {
            return;
        }
        //获取小队成员数据
        npcTeam.GetTeamCharacterData(out List <CharacterBean> listLeader, out List <CharacterBean> listMembers);
        //设置小队相关
        string teamCode  = SystemUtil.GetUUID(SystemUtil.UUIDTypeEnum.N);
        int    npcNumber = listLeader.Count + listMembers.Count;

        for (int i = 0; i < npcNumber; i++)
        {
            CharacterBean characterData = null;
            if (i < listLeader.Count)
            {
                characterData = listLeader[i];
            }
            else
            {
                characterData = listMembers[i - listLeader.Count];
            }
            //生成NPC
            GameObject npcObj = BuildNpc(listConvertHide, objConvertModel, characterData, npcPosition + new Vector3(UnityEngine.Random.Range(-0.5f, 0.5f), UnityEngine.Random.Range(-0.5f, 0.5f)));
            //设置意图
            NpcAIConvertCpt           convertCpt            = npcObj.GetComponent <NpcAIConvertCpt>();
            GameDataBean              gameData              = GameDataHandler.Instance.manager.GetGameData();
            CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(long.Parse(characterData.baseInfo.characterId));
            convertCpt.SetTeamData(teamCode, npcTeam, i);
            convertCpt.SetIntent(NpcAISundryCpt.SundryIntentEnum.GoToInn);
        }
        listExistTeamId.Add(npcTeam.id);
    }
Exemple #12
0
 public void SetData(CharacterBean characterData, List <MiniGameCombatEffectBean> listCombatData)
 {
     SetEffect(listCombatData);
     SetCharacterUI(characterData);
     SetAttributeView(characterData);
     SetName(characterData.baseInfo.titleName + " " + characterData.baseInfo.name);
 }
Exemple #13
0
    public void OnCellForItem(ScrollGridCell itemCell)
    {
        ItemTownCandidateCpt itemCpt  = itemCell.GetComponent <ItemTownCandidateCpt>();
        CharacterBean        itemData = listData[itemCell.index];

        itemCpt.SetData(itemData);
    }
Exemple #14
0
 /// <summary>
 /// 设置角色形象
 /// </summary>
 /// <param name="characterData"></param>
 public void SetCharacterUI(CharacterBean characterData)
 {
     if (gameData.userCharacter != null && characterData != null)
     {
         characterUI.SetCharacterData(characterData.body, characterData.equips);
     }
 }
 /// <summary>
 /// 设置角色UI
 /// </summary>
 /// <param name="characterData"></param>
 public void SetCharacterUI(CharacterBean characterData)
 {
     if (characterUI != null)
     {
         characterUI.SetCharacterData(characterData.body, characterData.equips);
     }
 }
Exemple #16
0
    /// <summary>
    /// 设置研究数据
    /// </summary>
    /// <param name="ownData"></param>
    public void SetResearch(BuildBedBean buildBedData)
    {
        if (buildBedData.GetBedStatus() == ResearchStatusEnum.Normal)
        {
            objResearch.SetActive(false);
            return;
        }
        objResearch.SetActive(true);
        GameDataBean  gameData   = GameDataHandler.Instance.manager.GetGameData();
        CharacterBean researcher = buildBedData.GetResearchCharacter(gameData);
        float         progress   = buildBedData.GetResearchProgress(out long completeExp, out long researchExp);

        if (researcher != null)
        {
            tvResearcherName.text = researcher.baseInfo.name;
            long addExp = researcher.CalculationBedResearchAddExp();
            tvResearcherAbility.text = addExp + "/s";
        }
        else
        {
            tvResearcherName.text    = "无";
            tvResearcherAbility.text = "0/s";
        }
        //设置进度
        proResearch.SetData(completeExp, researchExp);
    }
Exemple #17
0
    /// <summary>
    /// 获取所有效果的伤害加成
    /// </summary>
    /// <param name="listData"></param>
    public static int GetTotalDef(CharacterBean characterData, List <EffectTypeBean> listData, int damage)
    {
        float damageRate = 1;
        float damageAdd  = 0;

        characterData.GetAttributes(out CharacterAttributesBean characterAttributes);
        foreach (EffectTypeBean itemData in listData)
        {
            switch (itemData.dataType)
            {
            case EffectTypeEnum.Def:
                damageAdd -= int.Parse(itemData.data);
                break;

            case EffectTypeEnum.DefRate:
                damageRate -= float.Parse(itemData.data);
                break;
            }
        }
        damage = (int)((damage + damageAdd) * damageRate);
        if (damage < 0)
        {
            damage = 0;
        }
        return(damage);
    }
Exemple #18
0
    /// <summary>
    /// 初始化数据
    /// </summary>
    public void InitData()
    {
        listFavorabilityData.Clear();
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
        List <CharacterFavorabilityBean> listData = gameData.listCharacterFavorability;

        if (listData == null)
        {
            return;
        }
        for (int i = 0; i < listData.Count; i++)
        {
            CharacterFavorabilityBean characterFavorability = listData[i];
            CharacterBean             characterData         = NpcInfoHandler.Instance.manager.GetCharacterDataById(characterFavorability.characterId);

            //只显示小镇居民数据
            if (characterData.npcInfoData.npc_type != (int)NpcTypeEnum.Town)
            {
                continue;
            }
            //只显示好感1以上的
            if (characterFavorability.favorability <= 0)
            {
                continue;
            }
            listFavorabilityData.Add(characterFavorability);
        }
        gridVertical.SetCellCount(listFavorabilityData.Count);
    }
 public void SetData(CharacterBean characterData)
 {
     this.characterData = characterData;
     SetCharacterUI(characterData);
     SetName(characterData.baseInfo.name);
     SetPopup(characterData);
 }
    /// <summary>
    /// 点击派遣
    /// </summary>
    public void OnClickForSend()
    {
        GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();

        AudioHandler.Instance.PlaySound(AudioSoundEnum.ButtonForNormal);
        DialogBean dialogData = new DialogBean();

        dialogData.dialogPosition = 1;
        PickForCharacterDialogView pickForCharacterDialog = DialogHandler.Instance.CreateDialog <PickForCharacterDialogView>(DialogEnum.PickForCharacter, this, dialogData);
        //排除主角和不能参加的人
        List <string>        listExpel     = new List <string>();
        List <CharacterBean> listCharacter = gameData.GetAllCharacterData();

        for (int i = 0; i < listCharacter.Count; i++)
        {
            CharacterBean itemCharacter = listCharacter[i];
            if (itemCharacter == gameData.userCharacter ||
                (itemCharacter.baseInfo.GetWorkerStatus() != WorkerStatusEnum.Rest && itemCharacter.baseInfo.GetWorkerStatus() != WorkerStatusEnum.Work))
            {
                listExpel.Add(itemCharacter.baseInfo.characterId);
            }
        }
        pickForCharacterDialog.SetExpelCharacter(listExpel);
        pickForCharacterDialog.SetPickCharacterMax(3);
    }
    protected void ChangeCharacter(int number)
    {
        if (CheckUtil.ListIsNull(listCharacter))
        {
            return;
        }
        int nextPosition = 0;

        for (int i = 0; i < listCharacter.Count; i++)
        {
            CharacterBean itemCharater = listCharacter[i];
            if (itemCharater == characterData)
            {
                nextPosition = i + number;
                if (nextPosition >= listCharacter.Count)
                {
                    nextPosition = nextPosition - listCharacter.Count;
                }
                else if (nextPosition < 0)
                {
                    nextPosition = listCharacter.Count + nextPosition;
                }
                break;
            }
        }
        SetCharacterData(listCharacter, listCharacter[nextPosition]);
        RefreshUI();
    }
Exemple #22
0
 /// <summary>
 /// 设置弹窗框数据
 /// </summary>
 /// <param name="characterData"></param>
 public void SetPopupInfo(CharacterBean characterData)
 {
     if (popupAbilityButton != null)
     {
         popupAbilityButton.SetData(characterData);
     }
 }
Exemple #23
0
    /// <summary>
    /// 初始化成功攀登几率
    /// </summary>
    /// <param name="gameData"></param>
    public void InitSuccessRate(GameItemsManager gameItemsManager, List <CharacterBean> listMemberData)
    {
        int totalLife    = 0;
        int totalCook    = 0;
        int totalSpeed   = 0;
        int totalAccount = 0;
        int totalCharm   = 0;
        int totalForce   = 0;
        int totalLucky   = 0;

        for (int i = 0; i < listMemberData.Count; i++)
        {
            CharacterBean itemCharacterData = listMemberData[i];
            itemCharacterData.GetAttributes(out CharacterAttributesBean characterAttributes);

            totalLife    += characterAttributes.life;
            totalCook    += characterAttributes.cook;
            totalSpeed   += characterAttributes.speed;
            totalAccount += characterAttributes.account;
            totalCharm   += characterAttributes.charm;
            totalForce   += characterAttributes.force;
            totalLucky   += characterAttributes.lucky;
        }

        teamFactor = totalLife / 10 + totalCook + totalSpeed + totalAccount + totalCharm + totalForce + totalLucky;
    }
Exemple #24
0
 public void SetData(CharacterBean characterData, ItemsInfoBean itemsInfoData, ItemBean itemData)
 {
     this.characterData = characterData;
     this.itemsInfoData = itemsInfoData;
     this.itemBean      = itemData;
     SetData(itemsInfoData, itemData);
 }
Exemple #25
0
    public void OnCellForItem(ScrollGridCell itemCell)
    {
        CharacterFavorabilityBean characterFavorability = listFavorabilityData[itemCell.index];
        CharacterBean             characterData         = NpcInfoHandler.Instance.manager.GetCharacterDataById(characterFavorability.characterId);
        ItemGameFavorabilityCpt   itemFavorability      = itemCell.GetComponent <ItemGameFavorabilityCpt>();

        itemFavorability.SetData(characterFavorability, characterData);
    }
Exemple #26
0
 /// <summary>
 /// 移除员工
 /// </summary>
 /// <param name="characterData"></param>
 /// <returns></returns>
 public bool RemoveWorker(CharacterBean characterData)
 {
     if (listWorkerCharacter != null && characterData != null)
     {
         return(listWorkerCharacter.Remove(characterData));
     }
     return(false);
 }
Exemple #27
0
 /// <summary>
 /// 增加招募者
 /// </summary>
 /// <param name="characterData"></param>
 public void AddRecruitmentCharacter(CharacterBean characterData)
 {
     if (listRecruitmentCharacter == null)
     {
         listRecruitmentCharacter = new List <CharacterBean>();
     }
     listRecruitmentCharacter.Add(characterData);
 }
 public CharacterBase(CreatureCptCharacter character)
 {
     this.character = character;
     if (character != null)
     {
         characterData = character.GetCharacterData();
     }
 }
    private void CreatePickItem(CharacterBean characterData)
    {
        GameObject objPick = Instantiate(objPickCharacterContainer, objPickCharacterModel);
        ItemGameDialogPickCharacterCpt pickCpt = objPick.GetComponent <ItemGameDialogPickCharacterCpt>();

        pickCpt.SetData(characterData);
        pickCpt.SetCallBack(this);
    }
Exemple #30
0
    /// <summary>
    /// 设置数据
    /// </summary>
    /// <param name="waiterData"></param>
    public void SetData(CharacterBean characterData)
    {
        this.characterData = characterData;
        CptUtil.RemoveChildsByActive(objItemContent);
        AddWorkDays(characterData.baseInfo.workDay);

        AddDazeNumber(characterData.baseInfo.dazeNumber);
    }