예제 #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
    public void CreateCharacterList(List <MiniGameCharacterBean> listCharacterData, List <Vector3> listCharacterPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum npcType)
    {
        if (CheckUtil.ListIsNull(listCharacterData))
        {
            return;
        }
        for (int i = 0; i < listCharacterData.Count; i++)
        {
            MiniGameCharacterBean itemCharacterData = listCharacterData[i];

            NpcAIMiniGameCookingCpt npcCpt = CreateCharacter(itemCharacterData, listCharacterPosition[i], npcType);
            switch (npcType)
            {
            case NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player:
                listEnemyCharacter.Add(npcCpt);
                npcCpt.characterMoveCpt.SetMoveSpeed(5);
                break;

            case NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Auditer:
                listAuditerCharacter.Add(npcCpt);
                break;

            case NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Compere:
                listCompereCharacter.Add(npcCpt);
                break;
            }
        }
    }
예제 #3
0
    /// <summary>
    /// 创建角色
    /// </summary>
    /// <param name="miniGameCharacterData"></param>
    public NpcAIMiniGameCombatCpt CreateCharacter(Vector3 combatPosition, MiniGameCharacterBean miniGameCharacterData)
    {
        GameObject             objPlayer = Instantiate(objPlayerContainer, objPlayerModel, combatPosition);
        NpcAIMiniGameCombatCpt npcCpt    = objPlayer.GetComponent <NpcAIMiniGameCombatCpt>();

        npcCpt.SetData((MiniGameCharacterForCombatBean)miniGameCharacterData);
        return(npcCpt);
    }
예제 #4
0
    /// <summary>
    /// 创建一个NPC
    /// </summary>
    public NpcAIMiniGameBarrageCpt CreatePlayer(MiniGameCharacterBean characterData, Vector3 position)
    {
        GameObject objPlayer           = Instantiate(objPlayerContainer, objPlayerModel, position);
        NpcAIMiniGameBarrageCpt npcCpt = objPlayer.GetComponent <NpcAIMiniGameBarrageCpt>();

        npcCpt.SetData(characterData);
        listGamePlayer.Add(npcCpt);
        return(npcCpt);
    }
예제 #5
0
 /// <summary>
 /// 设置NPC数据
 /// </summary>
 /// <param name="characterMiniGameData"></param>
 public void SetData(MiniGameCharacterBean characterMiniGameData)
 {
     this.characterMiniGameData = characterMiniGameData;
     SetCharacterData(characterMiniGameData.characterData);
     //如果是敌人 则打开AI
     if (characterMiniGameData.characterType == 0)
     {
         OpenAI();
     }
 }
예제 #6
0
    private NpcAIMiniGameCookingCpt CreateCharacter(MiniGameCharacterBean characterGameData, Vector3 startPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum npcType)
    {
        GameObject objCharacter        = Instantiate(objNpcContainer, objNpcModel, startPosition);
        NpcAIMiniGameCookingCpt npcCpt = objCharacter.GetComponent <NpcAIMiniGameCookingCpt>();

        npcCpt.startPosition = startPosition;
        npcCpt.SetNpcType(npcType);
        npcCpt.SetData((MiniGameCharacterForCookingBean)characterGameData);
        npcCpt.OpenAI();
        return(npcCpt);
    }
예제 #7
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();
    }
예제 #8
0
 /// <summary>
 /// 创建敌方信息列表
 /// </summary>
 /// <param name="listCharacterData"></param>
 public void CreateEnemyCharacterList(List <MiniGameCharacterBean> listCharacterData)
 {
     if (listCharacterData == null)
     {
         return;
     }
     for (int i = 0; i < listCharacterData.Count; i++)
     {
         MiniGameCharacterBean itemData = listCharacterData[i];
         CreateCharacterItem(i, itemData, objEnemyCharacterContainer, objEnemyCharacterModel);
     }
 }
예제 #9
0
 /// <summary>
 /// 移除角色回合行动
 /// </summary>
 public void RemoveCharacterRound(MiniGameCharacterBean miniGameCharacter)
 {
     for (int i = 0; i < listCharacterRound.Count; i++)
     {
         ItemMiniGameCombatCharacterRoundCpt itemRound = listCharacterRound[i];
         if (itemRound.gameCharacterData == miniGameCharacter)
         {
             listCharacterRound.Remove(itemRound);
             Destroy(itemRound.gameObject);
             return;
         }
     }
 }
예제 #10
0
    /// <summary>
    /// 获取某一个角色
    /// </summary>
    /// <param name="gameCharacterData"></param>
    public NpcAIMiniGameCombatCpt GetCharacter(MiniGameCharacterBean gameCharacterData)
    {
        List <NpcAIMiniGameCombatCpt> listCharacter = miniGameBuilder.GetAllCharacter();

        for (int i = 0; i < listCharacter.Count; i++)
        {
            NpcAIMiniGameCombatCpt itemNpc = listCharacter[i];
            if (itemNpc.characterMiniGameData == gameCharacterData)
            {
                return(itemNpc);
            }
        }
        return(null);
    }
예제 #11
0
    /// <summary>
    /// 创建敌方角色
    /// </summary>
    /// <param name="listCharacterData"></param>
    public void CreateEnemyCharacter(Vector3 combatPosition, List <MiniGameCharacterBean> listCharacterData)
    {
        listEnemyCharacter.Clear();
        float characterPositionY = combatPosition.y + ((listCharacterData.Count - 1) / 2f) * 1.5f;

        for (int i = 0; i < listCharacterData.Count; i++)
        {
            Vector3 characterPosition = new Vector3(combatPosition.x + 3, characterPositionY);
            characterPositionY -= 1.5f;
            MiniGameCharacterBean  itemData = listCharacterData[i];
            NpcAIMiniGameCombatCpt npcCpt   = CreateCharacter(characterPosition, itemData);
            listEnemyCharacter.Add(npcCpt);
            //设置角色朝向
            npcCpt.SetCharacterFace(1);
        }
    }
예제 #12
0
 /// <summary>
 /// 初始化角色回合
 /// </summary>
 /// <param name="gameCharacterData"></param>
 public void InitCharacterRound(MiniGameCharacterBean gameCharacterData)
 {
     for (int i = 0; i < listCharacterRound.Count; i++)
     {
         ItemMiniGameCombatCharacterRoundCpt itemCpt = listCharacterRound[i];
         if (gameCharacterData == itemCpt.gameCharacterData)
         {
             //恢复状态
             itemCpt.SetStatus(false);
             //重新设置位置
             RectTransform itemRTF = (RectTransform)itemCpt.transform;
             itemRTF.anchoredPosition = Vector2.zero;
             return;
         }
     }
 }
예제 #13
0
    public void InitData(
        CharacterBean userData,
        List <CharacterBean> listEnemyData,
        List <CharacterBean> listAuditerData,
        List <CharacterBean> listCompereData)
    {
        List <CharacterBean> listUserData = new List <CharacterBean>();

        if (userData != null)
        {
            listUserData.Add(userData);
        }
        base.InitData(listUserData, listEnemyData);

        //创建评审角色数据
        if (!CheckUtil.ListIsNull(listAuditerData))
        {
            foreach (CharacterBean itemData in listAuditerData)
            {
                //获取角色属性
                itemData.GetAttributes(
                    out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes);
                MiniGameCharacterBean itemUserGameData = CreateMiniGameCharacterBeanByType();
                itemUserGameData.characterMaxLife     = totalAttributes.life;
                itemUserGameData.characterCurrentLife = totalAttributes.life;
                itemUserGameData.characterData        = itemData;
                listAuditerGameData.Add(itemUserGameData);
            }
        }

        //创建主持人角色数据
        if (!CheckUtil.ListIsNull(listCompereData))
        {
            foreach (CharacterBean itemData in listCompereData)
            {
                //获取角色属性
                itemData.GetAttributes(
                    out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes);
                MiniGameCharacterBean itemUserGameData = CreateMiniGameCharacterBeanByType();
                itemUserGameData.characterMaxLife     = totalAttributes.life;
                itemUserGameData.characterCurrentLife = totalAttributes.life;
                itemUserGameData.characterData        = itemData;
                listCompereGameData.Add(itemUserGameData);
            }
        }
    }
예제 #14
0
    /// <summary>
    /// 创建角色信息
    /// </summary>
    /// <param name="position"></param>
    /// <param name="gameCharacterData"></param>
    /// <param name="objContainer"></param>
    /// <param name="objModel"></param>
    public void CreateCharacterItem(int position, MiniGameCharacterBean gameCharacterData, GameObject objContainer, GameObject objModel)
    {
        //创建角色信息
        GameObject objItem = Instantiate(objContainer, objModel);
        ItemMiniGameCombatCharacterInfoCpt characterInfoCpt = objItem.GetComponent <ItemMiniGameCombatCharacterInfoCpt>();

        characterInfoCpt.SetData(gameCharacterData);
        listCharacterInfo.Add(characterInfoCpt);
        //创建回合条信息
        GameObject    objRoundItem = Instantiate(objRoundCharacterContainer, objRoundCharacterModel);
        RectTransform rtfItemRound = objRoundItem.GetComponent <RectTransform>();
        ItemMiniGameCombatCharacterRoundCpt characterRoundCpt = objRoundItem.GetComponent <ItemMiniGameCombatCharacterRoundCpt>();

        characterRoundCpt.SetData((MiniGameCharacterForCombatBean)gameCharacterData);
        listCharacterRound.Add(characterRoundCpt);
        //添加动画
        objItem.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetDelay(0.1f * position).SetEase(Ease.OutBack);
        objRoundItem.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetDelay(0.1f * position).SetEase(Ease.OutBack);
    }
예제 #15
0
    /// <summary>
    /// 打开力度测试
    /// </summary>
    public void OpenPowerTest(MiniGameCharacterBean gameCharacterData)
    {
        uiForCombatCommand.Close();
        uiForSelectCharacter.Close();
        GameConfigBean gameConfig = GameDataHandler.Instance.manager.GetGameConfig();

        if (gameConfig.statusForCombatForPowerTest == 1)
        {
            //获取属性

            gameCharacterData.characterData.GetAttributes(out CharacterAttributesBean characterAttributes);

            DialogBean          dialogData      = new DialogBean();
            PowerTestDialogView powerTestDialog = DialogHandler.Instance.CreateDialog <PowerTestDialogView>(DialogEnum.PowerTest, this, dialogData);
            powerTestDialog.SetCallBack(this);
            powerTestDialog.SetData(1.5f, 1);
        }
        else
        {
            PowerTestEnd(0.8f);
        }
    }
예제 #16
0
 /// <summary>
 /// 初始化数据
 /// </summary>
 /// <param name="gameItemsManager"></param>
 /// <param name="userData"></param>
 /// <param name="listEnemyData"></param>
 public virtual void InitData(List <CharacterBean> listUserData, List <CharacterBean> listEnemyData)
 {
     //创建操作角色数据
     if (!CheckUtil.ListIsNull(listUserData))
     {
         foreach (CharacterBean itemData in listUserData)
         {
             //获取角色属性
             itemData.GetAttributes(
                 out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes);
             MiniGameCharacterBean itemUserGameData = CreateMiniGameCharacterBeanByType();
             itemUserGameData.characterType        = 1;
             itemUserGameData.characterMaxLife     = totalAttributes.life;
             itemUserGameData.characterCurrentLife = totalAttributes.life;
             itemUserGameData.characterData        = itemData;
             listUserGameData.Add(itemUserGameData);
         }
     }
     //创建敌人角色数据
     if (!CheckUtil.ListIsNull(listEnemyData))
     {
         foreach (CharacterBean itemData in listEnemyData)
         {
             //获取角色属性
             itemData.GetAttributes(
                 out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes);
             MiniGameCharacterBean itemEnemyGameData = CreateMiniGameCharacterBeanByType();
             itemEnemyGameData.characterType        = 0;
             itemEnemyGameData.characterMaxLife     = totalAttributes.life;
             itemEnemyGameData.characterCurrentLife = totalAttributes.life;
             itemEnemyGameData.characterData        = itemData;
             listEnemyGameData.Add(itemEnemyGameData);
         }
     }
     InitForMiniGame();
 }
예제 #17
0
 /// <summary>
 /// 创建用户角色
 /// </summary>
 /// <param name="userCharacter"></param>
 /// <param name="debatePosition"></param>
 public void CreateUserCharacter(MiniGameCharacterBean userCharacterData, Vector3 debatePosition)
 {
     aiUserCharacter = CreateCharacter(new Vector3(debatePosition.x - 2.5f, debatePosition.y), (MiniGameCharacterForDebateBean)userCharacterData);
     aiUserCharacter.SetCharacterFace(2);
 }
예제 #18
0
 public void CreateUserCharacter(MiniGameCharacterBean userData, Vector3 startPosition)
 {
     userCharacter = CreateCharacter(userData, startPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player);
     userCharacter.characterMoveCpt.SetMoveSpeed(5);
 }
예제 #19
0
 /// <summary>
 /// 创建敌人角色
 /// </summary>
 /// <param name="enemyCharacter"></param>
 /// <param name="debatePosition"></param>
 public void CreateEnemyCharcater(MiniGameCharacterBean enemyCharacterData, Vector3 debatePosition)
 {
     aiEnemyCharacter = CreateCharacter(new Vector3(debatePosition.x + 2.5f, debatePosition.y), (MiniGameCharacterForDebateBean)enemyCharacterData);
     aiEnemyCharacter.SetCharacterFace(1);
 }