Пример #1
0
    /// <summary>
    /// 通过游戏类型获取角色数据类型
    /// </summary>
    /// <returns></returns>
    public MiniGameCharacterBean CreateMiniGameCharacterBeanByType()
    {
        MiniGameCharacterBean itemUserGameData = null;

        switch (gameType)
        {
        case MiniGameEnum.Barrage:
            itemUserGameData = new MiniGameCharacterForBarrageBean();
            break;

        case MiniGameEnum.Combat:
            itemUserGameData = new MiniGameCharacterForCombatBean();
            break;

        case MiniGameEnum.Cooking:
            itemUserGameData = new MiniGameCharacterForCookingBean();
            break;

        case MiniGameEnum.Account:
            itemUserGameData = new MiniGameCharacterForAccountBean();
            break;

        case MiniGameEnum.Debate:
            itemUserGameData = new MiniGameCharacterForDebateBean();
            break;
        }
        return(itemUserGameData);
    }
Пример #2
0
 /// <summary>
 /// 设置NPC数据
 /// </summary>
 /// <param name="characterMiniGameData"></param>
 public void SetData(MiniGameCharacterForCombatBean characterMiniGameData)
 {
     this.characterMiniGameData = characterMiniGameData;
     SetCharacterData(characterMiniGameData.characterData);
     //更新血量显示
     characterLifeCpt.SetData(characterMiniGameData.characterCurrentLife, characterMiniGameData.characterMaxLife);
 }
Пример #3
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;
     }
 }
Пример #4
0
    /// <summary>
    /// 回合准备
    /// </summary>
    public IEnumerator RoundForPre(MiniGameCharacterForCombatBean gameCharacterData)
    {
        //获取角色
        NpcAIMiniGameCombatCpt npcCpt = GetCharacter(gameCharacterData);

        //设置当前回合行动的角色
        miniGameData.SetRoundActionCharacter(npcCpt);
        //执行效果
        yield return(StartCoroutine(npcCpt.CombatEffectExecute()));

        //如果角色死亡
        if (gameCharacterData.characterCurrentLife <= 0)
        {
            StartNextRound();
        }
        else
        {
            //如果是敌方
            if (gameCharacterData.characterType == 0)
            {
                //电脑开始行动
                miniGameData.SetCombatStatus(MiniGameCombatStatusEnum.EnemyRound);
                npcCpt.OpenAI();
            }
            //如果是友方
            else if (gameCharacterData.characterType == 1)
            {
                //友方行动
                miniGameData.SetCombatStatus(MiniGameCombatStatusEnum.OurRound);
                uiMiniGameCombat.OpenCombatCommand();
            }
            //开启选中特效
            SelectCharacter(npcCpt);
        }
    }
Пример #5
0
    /// <summary>
    /// 设置数据
    /// </summary>
    /// <param name="gameCharacterData"></param>
    public void SetData(MiniGameCharacterBean gameCharacterData)
    {
        this.gameCharacterData = (MiniGameCharacterForCombatBean)gameCharacterData;
        characterPopupButton.SetData(gameCharacterData.characterData, this.gameCharacterData.listCombatEffect);

        SetCharacterUI(this.gameCharacterData.characterData);
        SetName(this.gameCharacterData.characterData.baseInfo.name);
        SetLife(this.gameCharacterData.characterCurrentLife, gameCharacterData.characterMaxLife);

        RefreshUI();
    }
Пример #6
0
    public void CompleteEffect(MiniGameCharacterForCombatBean miniGameCharacter)
    {
        //回复生命处理
        int addLife = EffectTypeEnumTools.GetTotalLife(targetCharacter.characterData, listEffectTypeData);

        if (addLife > 0)
        {
            //显示增加的血量
            targetCharacter.ShowTextInfo("+" + addLife, Color.green);
            targetCharacter.characterMiniGameData.AddLife(addLife);
            //更新血量显示
            targetCharacter.characterLifeCpt.SetData(miniGameCharacter.characterCurrentLife, miniGameCharacter.characterMaxLife);
        }
        //伤害处理
        int addDamage = EffectTypeEnumTools.GetTotalDamage(actionCharacter, listEffectTypeData);

        if (addDamage > 0)
        {
            targetCharacter.UnderAttack(1, addDamage);
        }
    }
Пример #7
0
 /// <summary>
 /// 角色的回合
 /// </summary>
 /// <param name="gameCharacterData"></param>
 public void CharacterRound(MiniGameCharacterForCombatBean gameCharacterData)
 {
     StartCoroutine(RoundForPre(gameCharacterData));
     uiMiniGameCombat.RefreshUI();
 }
 /// <summary>
 /// 设置数据
 /// </summary>
 /// <param name="gameCharacterData"></param>
 public void SetData(MiniGameCharacterForCombatBean gameCharacterData)
 {
     this.gameCharacterData = gameCharacterData;
     SetCharacterUI(gameCharacterData.characterData);
     RefreshUI();
 }