/// <summary> /// 获取所有人员信息 /// </summary> /// <returns></returns> public List <CharacterBean> GetAllCharacterData() { List <CharacterBean> listData = new List <CharacterBean>(); //添加主角 if (userCharacter != null) { listData.Add(userCharacter); } //添加孩子 FamilyDataBean familyData = GetFamilyData(); List <CharacterForFamilyBean> listFamily = familyData.GetAllFamilyData(); for (int i = 0; i < listFamily.Count; i++) { CharacterForFamilyBean characterForFamily = listFamily[i]; if (characterForFamily.GetFamilyType() != FamilyTypeEnum.Mate && characterForFamily.CheckIsGrowUp(gameTime)) { listData.Add(characterForFamily); } } //添加工作者 if (listWorkerCharacter != null) { listData.AddRange(listWorkerCharacter); } return(listData); }
/// <summary> /// 建造家族成员 /// </summary> public void BuildFamily() { //获取家族数据 GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); FamilyDataBean familyData = gameData.GetFamilyData(); List <CharacterForFamilyBean> listFamilyCharacterData = familyData.GetAllFamilyData(); for (int i = 0; i < listFamilyCharacterData.Count; i++) { CharacterForFamilyBean characterForFamily = listFamilyCharacterData[i]; CreateFamilyCharacter(characterForFamily); } }
/// <summary> /// 包括主角 /// </summary> /// <returns></returns> public List <string> GetAllFamilyCharacterIds() { List <string> listData = new List <string>(); if (userCharacter != null) { listData.Add(userCharacter.baseInfo.characterId); } FamilyDataBean familyData = GetFamilyData(); List <CharacterForFamilyBean> listFamily = familyData.GetAllFamilyData(); for (int i = 0; i < listFamily.Count; i++) { CharacterForFamilyBean characterForFamily = listFamily[i]; listData.Add(characterForFamily.baseInfo.characterId); } return(listData); }
/// <summary> /// 设置角色形象 /// </summary> /// <param name="characterData"></param> public void SetCharacterUI(CharacterForFamilyBean characterData) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); if (characterData.GetFamilyType() != FamilyTypeEnum.Mate && !characterData.CheckIsGrowUp(gameData.gameTime)) { ui_CharacterChild.gameObject.SetActive(true); ui_CharacterUI.gameObject.SetActive(false); } else { ui_CharacterChild.gameObject.SetActive(false); ui_CharacterUI.gameObject.SetActive(true); } if (ui_CharacterUI) { ui_CharacterUI.SetCharacterData(characterData.body, characterData.equips); } }
/// <summary> /// 创建家族成员 /// </summary> /// <param name="characterForFamily"></param> public void CreateFamilyCharacter(CharacterForFamilyBean characterForFamily) { if (characterForFamily == null) { return; } FamilyTypeEnum familyType = characterForFamily.GetFamilyType(); GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); FamilyDataBean familyData = gameData.GetFamilyData(); if (familyType == FamilyTypeEnum.Daughter || familyType == FamilyTypeEnum.Son) { //如果是女儿或者儿子 需要3年后才能移动 if (!characterForFamily.CheckIsGrowUp(gameData.gameTime)) { return; } } else if (familyType == FamilyTypeEnum.Mate) { //如果是伴侣需要结婚日之后才刷新 if (!familyData.CheckMarry(gameData.gameTime)) { return; } } //获取门的坐标 并在门周围生成NPC Vector3 doorPosition = InnHandler.Instance.GetRandomEntrancePosition(); //向下3个单位 doorPosition += new Vector3(0, -3f, 0); GameObject objFamily = BuildNpc(listHideNpc, objNormalModel, characterForFamily, doorPosition); if (objFamily == null) { return; } NpcAIFamilyCpt npcAIFamily = objFamily.GetComponent <NpcAIFamilyCpt>(); listFamilyCharacter.Add(npcAIFamily); }
public CharacterForFamilyBean CreateChild(string name, CharacterBean userData, CharacterBean mateData) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); CharacterForFamilyBean childData = new CharacterForFamilyBean(gameData.gameTime); childData.baseInfo.name = name; childData.body.eye = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.eye : mateData.body.eye; childData.body.eyeColor = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.eyeColor : mateData.body.eyeColor; childData.body.hair = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.hair : mateData.body.hair; childData.body.hairColor = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.hairColor : mateData.body.hairColor; childData.body.mouth = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.mouth : mateData.body.mouth; childData.body.mouthColor = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.mouthColor : mateData.body.mouthColor; childData.body.skin = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.skin : mateData.body.skin; childData.body.skinColor = UnityEngine.Random.Range(0, 2) == 0 ? userData.body.skinColor : mateData.body.skinColor; childData.attributes.cook = 1; childData.attributes.speed = 1; childData.attributes.account = 1; childData.attributes.charm = 1; childData.attributes.force = 1; childData.attributes.lucky = 1; childData.attributes.life = 50; int sex = UnityEngine.Random.Range(0, 2); if (sex == 0) { childData.SetFamilyType(FamilyTypeEnum.Son); childData.body.SetSex(SexEnum.Man); } else { childData.SetFamilyType(FamilyTypeEnum.Daughter); childData.body.SetSex(SexEnum.Woman); } listChildCharacter.Add(childData); return(childData); }
public void Submit(DialogView dialogView, DialogBean dialogBean) { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //送礼 if (dialogView is PickForItemsDialogView) { //获取选择物品 PickForItemsDialogView pickForItemsDialog = dialogView as PickForItemsDialogView; pickForItemsDialog.GetSelectedItems(out ItemsInfoBean itemsInfo, out ItemBean itemData); //获取赠送人 CharacterBean characterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(mTalkNpcInfo.id); CharacterFavorabilityBean characterFavorability = gameData.GetCharacterFavorability(mTalkNpcInfo.id); int addFavorability; int favorabilityForTalk; //根据物品稀有度增加好感 switch (itemsInfo.GetItemRarity()) { case RarityEnum.Normal: addFavorability = 1; favorabilityForTalk = 1; break; case RarityEnum.Rare: addFavorability = 3; favorabilityForTalk = 3; break; case RarityEnum.SuperRare: addFavorability = 6; favorabilityForTalk = 3; break; case RarityEnum.SuperiorSuperRare: addFavorability = 10; favorabilityForTalk = 3; break; case RarityEnum.UltraRare: addFavorability = 15; favorabilityForTalk = 3; break; default: addFavorability = 1; favorabilityForTalk = 1; break; } //增加送礼次数 characterFavorability.AddGiftNumber(1); //删减物品 gameData.AddItemsNumber(itemData.itemId, -1); //增加每日限制 GameCommonInfo.DailyLimitData.AddGiftNpc(mTalkNpcInfo.id); //通过增加好感查询对话 TextInfoHandler.Instance.manager.listTextData = TextInfoHandler.Instance.manager.GetGiftTalkByFavorability(favorabilityForTalk); ShowText(TextInfoHandler.Instance.manager.listTextData); //文本里面会默认加好感 //先减去文本加的好感 再添加实际的好感加成 characterFavorability.AddFavorability(-favorabilityForTalk); characterFavorability.AddFavorability(addFavorability); } //求婚 else { //减去信物 gameData.AddItemsNumber(99900021, -1); //弹窗提示 ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1341)); //设置3天后结婚 FamilyDataBean familyData = gameData.GetFamilyData(); familyData.timeForMarry = GameTimeHandler.Instance.GetAfterDay(3); //设置妻子数据 CharacterForFamilyBean characterData = new CharacterForFamilyBean(mTalkNpcInfo, familyData.timeForMarry); characterData.SetFamilyType(FamilyTypeEnum.Mate); familyData.mateCharacter = characterData; } }
/// <summary> /// 开始新的一天 /// </summary> public void SetNewDay() { GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); //初始化世界种子 GameCommonInfo.RandomSeed = UnityEngine.Random.Range(int.MinValue, int.MaxValue); GameCommonInfo.InitRandomSeed(); //解除每日 GameCommonInfo.DailyLimitData.InitData(gameData); //初始化时间 SetTimeStatus(true); hour = 6; min = 0; //如果有建筑日则建筑日减一天 InnBuildBean innBuildData = gameData.GetInnBuildData(); if (innBuildData.listBuildDay.Count > 0) { //检测当前日子是否包含在建筑日内 TimeBean timeData = gameData.gameTime; bool isBuildDay = false; foreach (TimeBean itemTime in innBuildData.listBuildDay) { if (itemTime.year == timeData.year && itemTime.month == timeData.month && itemTime.day == timeData.day) { isBuildDay = true; } } if (!isBuildDay) { innBuildData.listBuildDay.Clear(); //检测是1楼还是2楼 if (innBuildData.buildInnWidth != 0 || innBuildData.buildInnHeight != 0) { innBuildData.ChangeInnSize(1, innBuildData.buildInnWidth, innBuildData.buildInnHeight); innBuildData.buildInnWidth = 0; innBuildData.buildInnHeight = 0; } else if (innBuildData.buildInnSecondWidth != 0 || innBuildData.buildInnSecondHeight != 0) { innBuildData.ChangeInnSize(2, innBuildData.buildInnSecondWidth, innBuildData.buildInnSecondHeight); innBuildData.buildInnSecondWidth = 0; innBuildData.buildInnSecondHeight = 0; } InnBuildHandler.Instance.builderForFloor.StartBuild(); InnBuildHandler.Instance.builderForWall.StartBuild(); } } //增加家族成员日子 List <CharacterForFamilyBean> listFamilyData = gameData.GetFamilyData().GetAllFamilyData(); if (!CheckUtil.ListIsNull(listFamilyData)) { for (int i = 0; i < listFamilyData.Count; i++) { CharacterForFamilyBean itemData = listFamilyData[i]; itemData.AddBirthDay(1); } } //通知新的一天 notifyForTime?.Invoke(NotifyTypeEnum.NewDay, -1); SystemUtil.GCCollect(); }
public void SetData(CharacterForFamilyBean characterData) { SetName(characterData.baseInfo.name); SetCall(characterData.GetFamilyName()); SetCharacterUI(characterData); }