Exemple #1
0
    public BattlePlayer(MapPlayer mapPlayer)
    {
        this.Player = mapPlayer;
        Data        = new BattlePlayerData(mapPlayer.Data, this);

        IsMe = mapPlayer.Player == Game.DataManager.MyPlayer;
    }
Exemple #2
0
    /// 攻撃された
    public void Attacked(BattleRouletteSlotID slotID, BattlePlayerData playerData)
    {
        switch (slotID)
        {
        case BattleRouletteSlotID.None:
            currentDamage        = 0;
            currentDamageText    = "ミス!ダメージを与えられない!";
            playerData.IsCharged = false;
            break;

        case BattleRouletteSlotID.Charge:
            currentDamage        = 0;
            currentDamageText    = "力をためた!!";
            playerData.IsCharged = true;
            break;

        default:
            CalcDamage(slotID, playerData);

            currentDamageText = AttackedName(slotID) + "\n"
                                + name + "に" + (currentDamage) + "のダメージを与えた!";
            currentHp            = Mathf.Max(currentHp - currentDamage, 0);
            isDead               = (currentHp <= 0);
            playerData.IsCharged = false;
            break;
        }
        Debug.Log(CurrentDamageText);
    }
Exemple #3
0
 public void InitData(BattlePlayerData playerData)
 {
     bindPlayerData                = playerData;
     this.playerInfo.HP            = bindPlayerData.HP;
     this.playerInfo.MaxHP         = bindPlayerData.MaxHP;
     this.playerInfo.AP            = bindPlayerData.AP;
     this.playerInfo.MaxAP         = bindPlayerData.MaxAP;
     this.playerInfo.MP            = bindPlayerData.MP;
     this.playerInfo.MaxMP         = bindPlayerData.MaxMP;
     this.playerInfo.CardCount     = bindPlayerData.CurrentCardList.Count;
     this.playerInfo.CemeteryCount = bindPlayerData.UsedCardList.Count;
     GetUIController(transform);
 }
Exemple #4
0
    private BattlePlayerData GetBattlePlayerData(Player player, HexTile tile, int causeDamage)
    {
        BattlePlayerData data = new BattlePlayerData();

        data.m_PlayerName = player.m_PlayerName;
        data.m_MaxHP      = player.m_MaxHP;
        data.m_HP         = player.m_Hp;
        data.m_IsEnemy    = player.m_IsEnemy;
        data.m_TileName   = SetTileName(tile);
        data.m_DefensRate = tile.m_DefenseRate;
        data.m_GetDamage  = causeDamage;
        return(data);
    }
 public BattleSendData(BattlePlayerData attackerData, BattlePlayerData targetData, string backGround, bool isPlayerAttack, bool isHeal, bool isDirect, bool isCounter, int getExp, string getItem, string playerClass, PlayerRecord lvUpData, PlayerRecord playerData)
 {
     m_AttackerData   = attackerData;
     m_TargetData     = targetData;
     m_BackGround     = backGround;
     m_IsPlayerAttack = isPlayerAttack;
     m_IsHeal         = isHeal;
     m_IsDirect       = isDirect;
     m_IsCounter      = isCounter;
     m_GetExp         = getExp;
     m_GetItem        = getItem;
     m_PlayerClass    = playerClass;
     m_LvUpData       = lvUpData;
     m_PlayerData     = playerData;
 }
Exemple #6
0
    public void SetActorInfo(BattlePlayerData battlePlayerData)
    {
        m_PlayerName = battlePlayerData.m_PlayerName;
        m_TileName   = battlePlayerData.m_TileName;
        m_DefRate    = battlePlayerData.m_DefensRate;
        m_MaxHp      = battlePlayerData.m_MaxHP;
        m_Hp         = battlePlayerData.m_HP;
        m_Damage     = battlePlayerData.m_GetDamage;

        Vector2 newSize = new Vector2((float)m_MaxHp / hpBarMax * hpBarMax, hpBack.rectTransform.sizeDelta.y);

        hpBack.rectTransform.sizeDelta = newSize;
        hpBar.rectTransform.sizeDelta  = newSize;
        SetHPBar();
    }
Exemple #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="playerData"></param>
 /// <param name="count"></param>
 public void DrawCard(BattlePlayerData playerData, int count = 1)
 {
     for (int i = 0; i < count; i++)
     {
         if (playerData.HandCardList.Count >= MAX_HAND_CARD_COUNT)
         {
             return;
         }
         if (playerData.CurrentCardList.Count <= 0)
         {
             for (int j = 0; j < playerData.CardList.Count; j++)
             {
                 playerData.CurrentCardList.Add(new BattleCardData(playerData.CardList[j].Data.Id, playerData.CardList[j].Owner));
             }
             //playerData.CurrentCardList = new List<BattleCardData>(playerData.CardList);
         }
         BattleCardData card = playerData.CurrentCardList[UnityEngine.Random.Range(0, playerData.CurrentCardList.Count)];
         playerData.CurrentCardList.Remove(card);
         card.Owner.Data.HandCardList.Add(card);
         AddUIAction(new UIAction.UIDrawCard(card));
     }
 }
Exemple #8
0
    // ダメージ計算
    void CalcDamage(BattleRouletteSlotID slotID, BattlePlayerData playerData)
    {
        switch (slotID)
        {
        case BattleRouletteSlotID.NormalAttack:
            currentDamage = (playerData.ChargedAttack - deffence) * 100 + RandomDice(3, 6, -7);
            break;

        case BattleRouletteSlotID.Critical:
            currentDamage = (playerData.ChargedAttack - deffence) * 200 + RandomDice(3, 6, -7);
            break;

        case BattleRouletteSlotID.FilreMagic:
        case BattleRouletteSlotID.IceMagic:
        case BattleRouletteSlotID.ThunderMagic:
            currentDamage = (playerData.ChargedMagic - magicRes) * 100 + RandomDice(3, 6, -7);
            break;
        }
        currentDamage = Mathf.Max(0, currentDamage);
        if (IsWeakNess(slotID))
        {
            currentDamage *= 2;
        }
    }
Exemple #9
0
    public void AttackWithCurrentPlayer(Player player, HexTile destTile, bool checkScenarion = true)
    {
        if (!destTile.m_IsHighLight && !destTile.m_Impassible)
        {
            Debug.Log("destination invalid");
            return;
        }

        Player attacker = player;
        Player target   = m_PlayerManager.GetPlayer(destTile.m_Hex);

        if (checkScenarion && m_ScenarionManager.SetBeforeScenarion(attacker, target, destTile.m_Hex))
        {
            ChangeState(GameState.Scenarion);
            return;
        }

        string       backGround     = "";
        string       getItem        = "";
        bool         isHeal         = attacker.m_IsEnemy && target.m_IsEnemy;
        int          getExp         = 0;
        bool         isDirectAtk    = HexCoord.HexDistance(attacker.m_Hex, target.m_Hex) == 1;
        bool         isCounter      = target.GetIsCanAttack(isDirectAtk);
        int          attackerDamage = 0;
        int          targetDamage   = 0;
        int          level;
        int          raceID      = attacker.m_IsEnemy ? target.m_Race : attacker.m_Race;
        string       playerClass = m_ElementManager.GetRace(raceID).name;
        HexTile      targetTile  = m_StageMapManager.GetMapTile(attacker.m_Hex);
        PlayerRecord playerData  = new PlayerRecord();

        isCounter &= GetBattleResult(attacker, target, destTile, isDirectAtk, isHeal, out attackerDamage, ref getExp);
        if (isCounter)
        {
            GetBattleResult(target, attacker, targetTile, isDirectAtk, isHeal, out targetDamage, ref getExp);
        }
        if (!isHeal)
        {
            int      enemyIndex = attacker.m_IsEnemy ? attacker.playerIndex : target.playerIndex;
            HexCoord hex        = attacker.m_IsEnemy ? attacker.m_Hex : target.m_Hex;
            SetBattleScenarionChecker(enemyIndex, hex);
        }
        attacker.TurnEnd();
        m_StageMapManager.RemoveHighlightTiles();

        BattlePlayerData attackerData = GetBattlePlayerData(attacker, targetTile, targetDamage);
        BattlePlayerData targetData   = GetBattlePlayerData(target, destTile, attackerDamage);

        //level up
        PlayerRecord lvUpProp     = null;
        Player       checkLevelUp = m_IsPlayerTurn ? attacker : target;

        lvUpProp = checkLevelUp.LevelUp(m_PlayerLevelMax, m_PlayerHPMax, m_PlayerStateMax);
        if (lvUpProp != null)
        {
            level      = checkLevelUp.m_Level;
            playerData = checkLevelUp.GetPlayerProp();
            checkLevelUp.LevelUp(lvUpProp);
        }

        Player enemy = attacker.m_IsEnemy ? attacker : target;

        if (!isHeal && !enemy.IsAlive)
        {
            if (UnityEngine.Random.Range(0f, 1f) < 0.5)
            {
                m_PlayerDataManager.m_PlayerGold += target.m_Gold;
                getItem = "<color=yellow>" + target.m_Gold + "</color>Gold";
            }
            else
            {
                if (m_PlayerDataManager.m_PlayerWeapons.ContainsKey(target.m_EquipWeapon))
                {
                    m_PlayerDataManager.m_PlayerWeapons[target.m_EquipWeapon]++;
                }
                else
                {
                    m_PlayerDataManager.m_PlayerWeapons.Add(target.m_EquipWeapon, 1);
                }
                getItem = m_ElementManager.GetWeapon(target.m_EquipWeapon).name;
            }
        }
        battleData = new BattleSendData(attackerData, targetData, backGround, isHeal || !attacker.m_IsEnemy, isHeal, isDirectAtk, isCounter, getExp, getItem, playerClass, lvUpProp, playerData);
        //TODO set battle data to demo
        ////send to battle scene
        //isWaitingBattle = true;

        //battleData = new BattleSendData(attackerName, targetName, backGround, attackerTileName, targetTileName, isPlayerAttack, isHeal, isCounter, isDirectAtk, attackerDefensRate, targetDefensRate, attackerMaxHP, attackerHP, damageByAttacker, targetMaxHP, targetHP, damageByTarget, getItem, playerExp, getExp, level, playerClass, playerData, lvUpProp);
        //Debug.Log(Newtonsoft.Json.JsonConvert.SerializeObject(battleData));
        ////SceneManager.LoadScene("Battle");
    }
Exemple #10
0
 public Player()
 {
     this.battlePlayerData = new BattlePlayerData(AppContext.instance.playerDataManager.playerData);
 }
Exemple #11
0
 public BattlePlayer(int monsterId)
 {
     Data = new BattlePlayerData(monsterId, this);
     IsMe = false;
 }