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(); }
/// <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); }
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); }
/// <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); }
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); } }
/// <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); } }
/// <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); } } }
/// <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); } }
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); }
public void SetData(CharacterBean characterData, List <MiniGameCombatEffectBean> listCombatData) { SetEffect(listCombatData); SetCharacterUI(characterData); SetAttributeView(characterData); SetName(characterData.baseInfo.titleName + " " + characterData.baseInfo.name); }
public void OnCellForItem(ScrollGridCell itemCell) { ItemTownCandidateCpt itemCpt = itemCell.GetComponent <ItemTownCandidateCpt>(); CharacterBean itemData = listData[itemCell.index]; itemCpt.SetData(itemData); }
/// <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); } }
/// <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); }
/// <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); }
/// <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(); }
/// <summary> /// 设置弹窗框数据 /// </summary> /// <param name="characterData"></param> public void SetPopupInfo(CharacterBean characterData) { if (popupAbilityButton != null) { popupAbilityButton.SetData(characterData); } }
/// <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; }
public void SetData(CharacterBean characterData, ItemsInfoBean itemsInfoData, ItemBean itemData) { this.characterData = characterData; this.itemsInfoData = itemsInfoData; this.itemBean = itemData; SetData(itemsInfoData, itemData); }
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); }
/// <summary> /// 移除员工 /// </summary> /// <param name="characterData"></param> /// <returns></returns> public bool RemoveWorker(CharacterBean characterData) { if (listWorkerCharacter != null && characterData != null) { return(listWorkerCharacter.Remove(characterData)); } return(false); }
/// <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); }
/// <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); }