/// <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> public void LevelUp(CharacterAttributesBean characterAttributes) { workerLevel += 1; workerExp = 0; characterAttributes.life += 10; switch (workerType) { case WorkerEnum.Chef: characterAttributes.cook += 5; break; case WorkerEnum.Waiter: characterAttributes.speed += 5; break; case WorkerEnum.Accountant: characterAttributes.account += 5; break; case WorkerEnum.Accost: characterAttributes.charm += 5; break; case WorkerEnum.Beater: characterAttributes.force += 5; break; } }
/// <summary> /// 获取所有属性加成 /// </summary> /// <param name="force"></param> /// <returns></returns> public void GetTotalAttributes(CharacterAttributesBean addAttributesData) { foreach (MiniGameCombatEffectBean itemData in listCombatEffect) { EffectTypeEnumTools.GetTotalAttributes(itemData.listEffectTypeData, addAttributesData); } }
public void GetAttributes(MiniGameCharacterForCombatBean miniGameCharacterData, out CharacterAttributesBean totalAttributes) { GetAttributes(out totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); miniGameCharacterData.GetTotalAttributes(totalAttributes); if (totalAttributes.lucky < 0) { totalAttributes.lucky = 0; } if (totalAttributes.cook < 0) { totalAttributes.cook = 0; } if (totalAttributes.speed < 0) { totalAttributes.speed = 0; } if (totalAttributes.account < 0) { totalAttributes.account = 0; } if (totalAttributes.charm < 0) { totalAttributes.charm = 0; } if (totalAttributes.force < 0) { totalAttributes.force = 0; } }
/// <summary> /// 获取装备的属性加成 /// </summary> /// <param name="gameItemsManager"></param> /// <returns></returns> public CharacterAttributesBean GetEquipAttributes() { CharacterAttributesBean attributesBean = new CharacterAttributesBean(); ItemsInfoBean maskItem = GameItemsHandler.Instance.manager.GetItemsById(maskId); ItemsInfoBean handItem = GameItemsHandler.Instance.manager.GetItemsById(handId); ItemsInfoBean hatItem = GameItemsHandler.Instance.manager.GetItemsById(hatId); ItemsInfoBean clothesItem = GameItemsHandler.Instance.manager.GetItemsById(clothesId); ItemsInfoBean shoesItem = GameItemsHandler.Instance.manager.GetItemsById(shoesId); if (maskItem != null) { AddAttributes(attributesBean, maskItem); } if (handItem != null) { AddAttributes(attributesBean, handItem); } if (hatItem != null) { AddAttributes(attributesBean, hatItem); } if (clothesItem != null) { AddAttributes(attributesBean, clothesItem); } if (shoesItem != null) { AddAttributes(attributesBean, shoesItem); } return(attributesBean); }
/// <summary> /// 设置属性 /// </summary> /// <param name="characterAttributes"></param> public void SetAttributes(CharacterAttributesBean characterAttributes, CharacterEquipBean characterEquip) { characterData.GetAttributes( out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); SetAttributesItem(tvCook, totalAttributes.cook); SetAttributesItem(tvSpeed, totalAttributes.speed); SetAttributesItem(tvAccount, totalAttributes.account); SetAttributesItem(tvCharm, totalAttributes.charm); SetAttributesItem(tvForce, totalAttributes.force); SetAttributesItem(tvLucky, totalAttributes.lucky); }
public void InitAttributes(CharacterAttributesBean characterAttributes) { InitAttributes( characterAttributes.life, characterAttributes.cook, characterAttributes.speed, characterAttributes.account, characterAttributes.charm, characterAttributes.force, characterAttributes.lucky); }
/// <summary> /// 添加属性 /// </summary> /// <param name="attributesBean"></param> /// <param name="itemsInfo"></param> private void AddAttributes(CharacterAttributesBean attributesBean, ItemsInfoBean itemsInfo) { attributesBean.life += itemsInfo.add_life; attributesBean.cook += itemsInfo.add_cook; attributesBean.speed += itemsInfo.add_speed; attributesBean.account += itemsInfo.add_account; attributesBean.charm += itemsInfo.add_charm; attributesBean.force += itemsInfo.add_force; attributesBean.lucky += itemsInfo.add_lucky; attributesBean.loyal += itemsInfo.add_loyal; }
/// <summary> /// 获取烹饪技能点数 /// </summary> /// <param name="gameItemsManager"></param> /// <param name="totalAttributes"></param> /// <param name="selfAttributes"></param> /// <param name="equipAttributes"></param> public void GetAttributes(out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes) { selfAttributes = attributes; equipAttributes = equips.GetEquipAttributes(); totalAttributes = new CharacterAttributesBean { life = selfAttributes.life + equipAttributes.life, cook = selfAttributes.cook + equipAttributes.cook, speed = selfAttributes.speed + equipAttributes.speed, account = selfAttributes.account + equipAttributes.account, charm = selfAttributes.charm + equipAttributes.charm, force = selfAttributes.force + equipAttributes.force, lucky = selfAttributes.lucky + equipAttributes.lucky, loyal = selfAttributes.loyal + equipAttributes.loyal, }; }
/// <summary> /// 设置属性 /// </summary> /// <param name="characterAttributes"></param> /// <param name="characterEquip"></param> public void SetAttributes(CharacterAttributesBean characterAttributes, CharacterEquipBean characterEquip) { 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 (tvLife != null) { tvLife.text = AttributesTypeEnumTools.GetAttributesName(AttributesTypeEnum.Life) + ":" + selfAttributes.life + (equipAttributes.life == 0 ? "" : "+" + equipAttributes.life); } if (characterAttributeView != null) { characterAttributeView.SetData(totalAttributes.cook, totalAttributes.speed, totalAttributes.account, totalAttributes.charm, totalAttributes.force, totalAttributes.lucky); } }
/// <summary> /// 设置数据 /// </summary> /// <param name="data"></param> public virtual void SetData(CharacterBean data) { if (data == null) { return; } characterData = data; if (characterData.baseInfo != null) { CharacterBaseBean characterBase = characterData.baseInfo; SetName(characterBase.name); SetPrice(characterBase.priceS, characterBase.priceM, characterBase.priceL); SetWork( characterBase.chefInfo.isWorking, characterBase.waiterInfo.isWorkingForSend, characterBase.waiterInfo.isWorkingForCleanTable, characterBase.waiterInfo.isWorkingCleanBed, characterBase.accountantInfo.isWorking, characterBase.accostInfo.isWorkingForSolicit, characterBase.accostInfo.isWorkingForGuide, characterBase.beaterInfo.isWorking); SetPriority( characterBase.chefInfo.priority, characterBase.waiterInfo.priorityForSend, characterBase.waiterInfo.priorityForCleanTable, characterBase.waiterInfo.priorityForCleanBed, characterBase.accountantInfo.priority, characterBase.accostInfo.priorityForSolicit, characterBase.accostInfo.priorityForGuide, characterBase.beaterInfo.priority); WorkerStatusEnum workerStatus = characterBase.GetWorkerStatus(out string workerStatusStr); SetStatus(workerStatus, workerStatusStr); } if (characterData.attributes != null) { CharacterAttributesBean characterAttributes = characterData.attributes; SetLoyal(characterAttributes.loyal); SetAttributes(characterData.attributes, characterData.equips); } if (data.body != null && data.equips != null) { characterUICpt.SetCharacterData(data.body, data.equips); SetSex(data.body.sex); } //如果是用户,则不能解雇 也不能送礼 GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); if (data == gameData.userCharacter || data is CharacterForFamilyBean) { if (btFire != null) { btFire.gameObject.SetActive(false); } if (btGift != null) { btGift.gameObject.SetActive(false); } } else { if (btFire != null) { btFire.gameObject.SetActive(true); } if (btGift != null) { btGift.gameObject.SetActive(true); } } SetLevelUp(characterData); if (infoCharacterPopup != null) { infoCharacterPopup.SetData(characterData); } }
//private void Update() //{ // SetAllDirty(); //设置更改,请求渲染(可以在需要的时候手动调用,而不是在update中) //} /// <summary> /// 设置数据 /// </summary> /// <param name="characterAttributes"></param> public void SetData(CharacterAttributesBean characterAttributes) { SetData(characterAttributes.cook, characterAttributes.speed, characterAttributes.account, characterAttributes.charm, characterAttributes.force, characterAttributes.lucky); }
/// <summary> /// 获取所有武力加成效果 /// </summary> /// <param name="listData"></param> /// <param name="force"></param> /// <returns></returns> public static CharacterAttributesBean GetTotalAttributes(List <EffectTypeBean> listData, CharacterAttributesBean addAttributes) { float attibutesAddRateForLucky = 1; float attibutesAddForLucky = 0; float attibutesAddRateForCook = 1; float attibutesAddForCook = 0; float attibutesAddRateForSpeed = 1; float attibutesAddForSpeed = 0; float attibutesAddRateForAccount = 1; float attibutesAddForAccount = 0; float attibutesAddRateForCharm = 1; float attibutesAddForCharm = 0; float attibutesAddRateForForce = 1; float attibutesAddForForce = 0; foreach (EffectTypeBean itemData in listData) { switch (itemData.dataType) { case EffectTypeEnum.AddLucky: attibutesAddForForce += int.Parse(itemData.data); break; case EffectTypeEnum.AddCook: attibutesAddForCook += int.Parse(itemData.data); break; case EffectTypeEnum.AddSpeed: attibutesAddForSpeed += int.Parse(itemData.data); break; case EffectTypeEnum.AddAccount: attibutesAddForAccount += int.Parse(itemData.data); break; case EffectTypeEnum.AddCharm: attibutesAddForCharm += int.Parse(itemData.data); break; case EffectTypeEnum.AddForce: attibutesAddForForce += int.Parse(itemData.data); break; //------------------------------------------------------------------------------ case EffectTypeEnum.AddLuckyRate: attibutesAddRateForLucky += float.Parse(itemData.data); break; case EffectTypeEnum.AddCookRate: attibutesAddRateForCook += float.Parse(itemData.data); break; case EffectTypeEnum.AddSpeedRate: attibutesAddRateForSpeed += float.Parse(itemData.data); break; case EffectTypeEnum.AddAccountRate: attibutesAddRateForAccount += float.Parse(itemData.data); break; case EffectTypeEnum.AddCharmRate: attibutesAddRateForCharm += float.Parse(itemData.data); break; case EffectTypeEnum.AddForceRate: attibutesAddRateForForce += float.Parse(itemData.data); break; //------------------------------------------------------------------------------ case EffectTypeEnum.SubLucky: attibutesAddForForce -= int.Parse(itemData.data); break; case EffectTypeEnum.SubCook: attibutesAddForCook -= int.Parse(itemData.data); break; case EffectTypeEnum.SubSpeed: attibutesAddForSpeed -= int.Parse(itemData.data); break; case EffectTypeEnum.SubAccount: attibutesAddForAccount -= int.Parse(itemData.data); break; case EffectTypeEnum.SubCharm: attibutesAddForCharm -= int.Parse(itemData.data); break; case EffectTypeEnum.SubForce: attibutesAddForForce -= int.Parse(itemData.data); break; //------------------------------------------------------------------------------ case EffectTypeEnum.SubLuckyRate: attibutesAddRateForLucky -= float.Parse(itemData.data); if (attibutesAddRateForLucky < 0) { attibutesAddRateForLucky = 0; } break; case EffectTypeEnum.SubCookRate: attibutesAddRateForCook -= float.Parse(itemData.data); if (attibutesAddRateForCook < 0) { attibutesAddRateForCook = 0; } break; case EffectTypeEnum.SubSpeedRate: attibutesAddRateForSpeed -= float.Parse(itemData.data); if (attibutesAddRateForSpeed < 0) { attibutesAddRateForSpeed = 0; } break; case EffectTypeEnum.SubAccountRate: attibutesAddRateForAccount -= float.Parse(itemData.data); if (attibutesAddRateForAccount < 0) { attibutesAddRateForAccount = 0; } break; case EffectTypeEnum.SubCharmRate: attibutesAddRateForCharm -= float.Parse(itemData.data); if (attibutesAddRateForCharm < 0) { attibutesAddRateForCharm = 0; } break; case EffectTypeEnum.SubForceRate: attibutesAddRateForForce -= float.Parse(itemData.data); if (attibutesAddRateForForce < 0) { attibutesAddRateForForce = 0; } break; } } addAttributes.lucky = (int)((addAttributes.lucky + attibutesAddForLucky) * attibutesAddRateForLucky); addAttributes.cook = (int)((addAttributes.cook + attibutesAddForCook) * attibutesAddRateForCook); addAttributes.speed = (int)((addAttributes.speed + attibutesAddForSpeed) * attibutesAddRateForSpeed); addAttributes.account = (int)((addAttributes.account + attibutesAddForAccount) * attibutesAddRateForAccount); addAttributes.charm = (int)((addAttributes.charm + attibutesAddForCharm) * attibutesAddRateForCharm); addAttributes.force = (int)((addAttributes.force + attibutesAddForForce) * attibutesAddRateForForce); return(addAttributes); }
public MiniGameCombatBean InitCombat(UserInfiniteTowersBean infiniteTowersData) { SceneInfiniteTowersManager infiniteTowersManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneInfiniteTowersManager>(); //设置标牌 infiniteTowersManager.SetSignForLayer(infiniteTowersData.layer); //设置战斗数据 MiniGameCombatBean miniGameCombat = (MiniGameCombatBean)MiniGameEnumTools.GetMiniGameData(MiniGameEnum.Combat); //设置战斗地点 miniGameCombat.miniGamePosition = infiniteTowersManager.GetCombatPostionByLayer(infiniteTowersData.layer); //获取战斗成员数据 //获取友方数据 List <CharacterBean> listUserData = new List <CharacterBean>(); int totalLucky = 0; GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); foreach (string memberId in infiniteTowersData.listMembers) { CharacterBean itemCharacterData = gameData.GetCharacterDataById(memberId); if (itemCharacterData != null) { listUserData.Add(itemCharacterData); itemCharacterData.GetAttributes(out CharacterAttributesBean characterAttributes); totalLucky += characterAttributes.lucky; } } //如果没有就启动测试数据 if (listUserData.Count == 0) { CharacterBean itemCharacterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(10001); listUserData.Add(itemCharacterData); listUserData.Add(itemCharacterData); listUserData.Add(itemCharacterData); } //获取敌方数据 List <CharacterBean> listEnemyData = infiniteTowersManager.GetCharacterDataByInfiniteTowersLayer(infiniteTowersData.layer); //设置敌方能力 foreach (CharacterBean itemEnemyData in listEnemyData) { CharacterAttributesBean enemyAttributes = infiniteTowersManager.GetEnemyAttributesByLayer(itemEnemyData, infiniteTowersData.layer); if (enemyAttributes != null) { itemEnemyData.attributes.InitAttributes(enemyAttributes); } } //初始化战斗数据 miniGameCombat.gameReason = MiniGameReasonEnum.Fight; miniGameCombat.winSurvivalNumber = 1; miniGameCombat.winBringDownNumber = listEnemyData.Count; miniGameCombat.InitData(listUserData, listEnemyData); //添加奖励装备 List <RewardTypeBean> listRewardEquip = RewardTypeEnumTools.GetRewardEnemyEquipForInfiniteTowers(listEnemyData, infiniteTowersData.layer, totalLucky); if (!CheckUtil.ListIsNull(listRewardEquip)) { miniGameCombat.listReward.AddRange(listRewardEquip); } //添加奖励物品 List <RewardTypeBean> listRewardItems = RewardTypeEnumTools.GetRewardItemsForInfiniteTowers(listEnemyData, infiniteTowersData.layer, totalLucky, false); if (!CheckUtil.ListIsNull(listRewardItems)) { miniGameCombat.listReward.AddRange(listRewardItems); } return(miniGameCombat); }
public void GetAttributes(out CharacterAttributesBean totalAttributes) { GetAttributes(out totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); }
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; }