private IEnumerator LevelUp(CharacterData characterData) { List <string> ms = new List <string>(); Status growth = characterData.playerData.GrowthRate; characterData.lv++; characterData.status.maxHp += growth.maxHp; characterData.status.maxMp += growth.maxMp; characterData.status.attack += growth.attack; characterData.status.deffence += growth.deffence; characterData.status.speed += growth.speed; System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append($"{characterData.GetName()}は レベル{characterData.lv}に あがった!"); sb.Append($"\nさいだいHPが {growth.maxHp}ポイント あがった!"); sb.Append($"\nさいだいMPが {growth.maxMp}ポイント あがった!"); ms.Add(sb.ToString()); sb.Clear(); sb.Append($"こうげき+{growth.attack} ぼうぎょ+{growth.deffence}\n"); sb.Append($"すばやさ+{growth.speed}"); ms.Add(sb.ToString()); yield return(BattleMessage.GetWindow().ShowClick(ms)); //呪文を覚える yield return(LearnSpell(characterData)); //特技を覚える yield return(LearnSkill(characterData)); yield break; }
public IEnumerator GameOver() { BattleController.isBattle = false; yield return(StartCoroutine(BattleMessage.GetWindow().ShowClick("まけました"))); SceneController.Instance.Transition("Title"); yield break; }
public override IEnumerator Execute() { //状態異常を解消する statusEffect.Refresh(); battleCharacter.RemoveStatusEffect(); yield return(BattleMessage.Show(statusEffect.refreshMessage)); yield break; }
public override IEnumerator Execute() { //死亡処理を行う deadCharacter.OnDead(); yield return(BattleMessage.Show(deadCharacter.CharacterName + "は たおれた!")); yield break; }
void SendBattleMessage() { var bMsg = new BattleMessage(); bMsg.enemyID = BattleData.playerName; bMsg.playerName = SaveSystem.currentPlayer; NetworkManager.Instance.SendBattle(bMsg); }
public IEnumerator Do() { //暗転を解除 yield return(StartCoroutine(SceneFader.FadeSceneIn())); //遭遇メッセージを表示 yield return(StartCoroutine(BattleMessage.GetWindow().ShowAuto("敵が現れた"))); yield break; }
public override IEnumerator Execute() { //Hpを減らす target.ReceiveDamage(damage); //メッセージ表示 if (message != null) { yield return(BattleMessage.Show(message)); } yield break; }
private IEnumerator LearnSkill(CharacterData characterData) { var learnSkills = characterData.playerData.SkillDatas; Skill learnSkill = learnSkills.FirstOrDefault(x => x.lv == characterData.lv)?.skill; if (learnSkill == null) { yield break; } yield return(BattleMessage.GetWindow().ShowClick($"{characterData.GetName()}は {learnSkill.skillName}の じゅもんを おぼえた!")); yield break; }
public IEnumerator Do() { List <PlayerCharacter> aliveMember = PlayerParty.Instance.AliveMember(); int dropExp = BattleController.instance.GetRewardExp(); foreach (var alivePlayer in aliveMember) { alivePlayer.status.exp = dropExp; string ms = alivePlayer.CharacterName + "は" + dropExp + "けいけんちをかくとく"; yield return(StartCoroutine(BattleMessage.GetWindow().ShowClick(ms))); } yield break; }
public override IEnumerator Execute() { if (battleCharacter.GetStatusEffect() != null) { battleCharacter.GetStatusEffect().Refresh(); } //状態異常を付与する battleCharacter.AddStatusEffect(statusEffect); statusEffect.OnAdd(); yield return(BattleMessage.Show(statusEffect.addMessage)); yield break; }
private IEnumerator RewardItem() { Item item = BattleController.instance.GetRewardItem(); if (item == null) { yield break; } InventorySystem.AddItem(item); string ms = "たからばこが おちている!\n" + item.itemName + "を てにいれた"; yield return(BattleMessage.GetWindow().ShowClick(ms)); yield break; }
private void AddBattle(BattleMessage bMsg, int i) { //Check for duplicate (i.e. leaving player) foreach (var player in battleLobby) { if (player.data.playerName == bMsg.playerName) { battleLobby.Remove(player); Debug.Log("Player Removed!: " + bMsg.playerName); return; } } var battle = new Battle(); battle.data = bMsg; battle.playerID = m_Connections[i].InternalId; battleLobby.Add(battle); }
public IEnumerator Escape() { MessageWindow messageWindow = BattleMessage.GetWindow(); if (IsEscapeSuccess()) { yield return(StartCoroutine(messageWindow.ShowAuto("逃げ切れた"))); yield return(StartCoroutine(SceneController.Instance.BackToField())); yield break; } else { yield return(StartCoroutine(messageWindow.ShowAuto("逃げ切れなかった"))); } escape = false; yield break; }
void SendBattleMessage(PlayerMessage enemy, bool turn, NetworkConnection c) { Assert.IsTrue(c.IsCreated); var bMsg = new BattleMessage(); bMsg.turn = turn; bMsg.enemyID = enemy.connectionID; bMsg.playerName = enemy.playerName; bMsg.pokemonName = enemy.pokemonName; bMsg.hp = enemy.hp; bMsg.Lvl = enemy.Lvl; string message = JsonUtility.ToJson(bMsg); var writer = m_Driver.BeginSend(NetworkPipeline.Null, c); NativeArray <byte> bytes = new NativeArray <byte>(Encoding.ASCII.GetBytes(message), Allocator.Temp); writer.WriteBytes(bytes); m_Driver.EndSend(writer); }
private void OnBattleStart(string[] data) { IsInBattle = true; Battle = new Battle(data, PlayerName); _movements.Clear(); _battleTimeout.Set(); BattleStarted?.Invoke(); string[] messages = Battle.Message.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string message in messages) { if (!Battle.ProcessMessage(Team, message)) { BattleMessage?.Invoke(message); } } }
public IEnumerator Do() { //お金を獲得 int gold = BattleController.instance.GetRewardGold(); GameController.Money += gold; if (gold > 0) { yield return(StartCoroutine(BattleMessage.GetWindow().ShowClick(gold + "ゴールドを てにいれた!"))); } //経験値の獲得とレベルアップ List <PlayerCharacter> aliveMember = BattleController.instance.AlivePlayerCharacters; int dropExp = BattleController.instance.GetRewardExp(); if (dropExp > 0) { foreach (var alivePlayer in aliveMember) { CharacterData characterData = Party.Find(alivePlayer.playerData.CharacterID); string ms = alivePlayer.CharacterName + "は" + dropExp + "けいけんちをかくとく"; yield return(StartCoroutine(BattleMessage.GetWindow().ShowClick(ms))); int lv = characterData.lv; yield return(GiveExp(characterData, dropExp)); if (characterData.lv == lv) { continue; } //レベルが上昇したとき回復する alivePlayer.status.hp = characterData.status.maxHp; alivePlayer.status.mp = characterData.status.maxMp; } } //アイテムの獲得 yield return(RewardItem()); yield break; }
void OnData(DataStreamReader stream, int i) { NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp); stream.ReadBytes(bytes); string recMsg = Encoding.ASCII.GetString(bytes.ToArray()); MessageHeader header = JsonUtility.FromJson <MessageHeader>(recMsg); switch (header.type) { case MessageType.PLAYER_MSG: PlayerMessage pMsg = JsonUtility.FromJson <PlayerMessage>(recMsg); Debug.Log("Player message received!: " + pMsg.playerName); UpdateLobby(pMsg, i); break; case MessageType.HEARTBEAT: Debug.Log("Heartbeat received from: " + m_Connections[i].InternalId); break; case MessageType.BATTLE_MSG: BattleMessage bMsg = JsonUtility.FromJson <BattleMessage>(recMsg); Debug.Log("Battle started for: " + bMsg.playerName); AddBattle(bMsg, i); break; case MessageType.MOVE_MSG: Debug.Log("Move received"); SendMove(recMsg, i); break; case MessageType.DISCONNECT: Debug.Log("Disconnection Received"); OnDisconnect(i); break; default: Debug.Log("SERVER ERROR: Unrecognized message received!"); break; } }
private void OnBattleData(string[] data) { _battleTimeout.Set(Rand.Next(5000, 8000)); string[] messages = data[5].Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string message in messages) { if (!Battle.ProcessMessage(_team, message)) { BattleMessage?.Invoke(message); } } TeamUpdated?.Invoke(); if (Battle.IsFinished) { _sendBattleRefresh = true; IsInBattle = false; Battle = null; BattleEnded?.Invoke(); } }
public void SendBattle(BattleMessage battle) { SendToServer(JsonUtility.ToJson(battle)); }
private void Start() { message = BattleMessage.GetWindow(); }
public override IEnumerator Execute() { yield return(BattleMessage.Show(message)); yield break; }
private void Awake() { instance = this; }