Exemple #1
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);
    }
Exemple #2
0
    /// <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);
     }
 }
Exemple #4
0
 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;
     }
 }
Exemple #5
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);
    }
Exemple #6
0
 /// <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);
 }
Exemple #8
0
 /// <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;
 }
Exemple #9
0
 /// <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,
     };
 }
Exemple #10
0
 /// <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);
     }
 }
Exemple #11
0
    /// <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);
    }
Exemple #13
0
    /// <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);
    }
Exemple #14
0
    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);
    }
Exemple #15
0
 public void GetAttributes(out CharacterAttributesBean totalAttributes)
 {
     GetAttributes(out totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes);
 }
Exemple #16
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;
    }