public BattlePlayer(MapPlayer mapPlayer) { this.Player = mapPlayer; Data = new BattlePlayerData(mapPlayer.Data, this); IsMe = mapPlayer.Player == Game.DataManager.MyPlayer; }
/// 攻撃された 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); }
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); }
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; }
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(); }
/// <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)); } }
// ダメージ計算 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; } }
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"); }
public Player() { this.battlePlayerData = new BattlePlayerData(AppContext.instance.playerDataManager.playerData); }
public BattlePlayer(int monsterId) { Data = new BattlePlayerData(monsterId, this); IsMe = false; }