public string takeBattleAction(BattleAction action) { string log = this.name + ": ("; for (int i = 0; i < action.sources.Count; i++) { log += action.sources[i].name + " "; } log += ") take <" + action.skill.name + "> to ("; for (int i = 0; i < action.targets.Count; i++) { log += action.targets[i].name + " "; } log += ")\n"; Debug.Log(log); Dictionary <string, string> cost = action.skill.cost; if (cost == null) { return(log); } foreach (KeyValuePair <string, string> costKeyValuePair in cost) { } return(log); }
public void chooseBattleActionOptions() { List <BattleSkill> skills = this.focusedBattleCharacter.getSkills(); skills.Sort(); battleCharacters.Sort(); BattleAction battleAction = new BattleAction(); battleAction.sources.Add(this.focusedBattleCharacter); battleAction.skill = skills[skillsDropdown.value]; //get the target character int targetCharacterIndex = -1; for (int i = 0; i < battleCharacters.Count; i++) { if (battleCharacters[i].role == BattleConstants.CHARACTER_ROLE_BLUE) { targetCharacterIndex++; if (targetCharacterIndex == bluesDropdown.value) { battleAction.targets.Add(battleCharacters[i]); } } } this.battle.continueBattle(battleAction); return; }
public void continueBattle(BattleAction battleAction) { if (battleAction != null) { battleTurns[battleTurns.Count - 1].addBattleAction(battleAction); } BattleCharacter nextNotActionedCharacter = battleTurns[battleTurns.Count - 1].getNextNotActionedCharacter(); if (nextNotActionedCharacter == null) { //no next character //means all characters already choose actions, start this turn battleTurns[battleTurns.Count - 1].start(); //judge the result of this battle if (this.isWin()) { this.result = BattleConstants.RESULT_WIN; battleManager.log(result); } else if (this.isLose()) { this.result = BattleConstants.RESULT_LOSE; battleManager.log(result); } //Enter next turn BattleTurn battleTurn = new BattleTurn(battleManager, battleCharacters); battleTurns.Add(battleTurn); battleManager.log("Turn: " + battleTurns.Count + "\n\n"); //get new next character nextNotActionedCharacter = battleTurns[battleTurns.Count - 1].getNextNotActionedCharacter(); } battleManager.updateBattleActionOptions(nextNotActionedCharacter); }
public void updateBattleActionOptions(BattleCharacter battleCharacter) { this.focusedBattleCharacter = battleCharacter; if (focusedBattleCharacter.role == BattleConstants.CHARACTER_ROLE_BLUE) { BattleAction battleAction = new BattleAction(); battleAction.sources.Add(focusedBattleCharacter); battleAction.skill = focusedBattleCharacter.getSkills()[0]; int targetCharacterIndex = 0; for (int i = 0; i < battleCharacters.Count; i++) { if (battleCharacters[i].role == BattleConstants.CHARACTER_ROLE_RED) { targetCharacterIndex = i; break; } } battleAction.targets.Add(battleCharacters[targetCharacterIndex]); this.battle.continueBattle(battleAction); return; } List <BattleSkill> skills = this.focusedBattleCharacter.getSkills(); skills.Sort(); battleCharacters.Sort(); redsDropdown.options.Clear(); Dropdown.OptionData redCharactersOptionData = new Dropdown.OptionData(); redCharactersOptionData.text = battleCharacter.name; redsDropdown.options.Add(redCharactersOptionData); skillsDropdown.options.Clear(); for (int i = 0; i < skills.Count; i++) { Dropdown.OptionData skillOptionData = new Dropdown.OptionData(); skillOptionData.text = skills[i].name; skillsDropdown.options.Add(skillOptionData); } bluesDropdown.options.Clear(); for (int i = 0; i < battleCharacters.Count; i++) { if (battleCharacters[i].role == BattleConstants.CHARACTER_ROLE_BLUE) { Dropdown.OptionData blueOptionData = new Dropdown.OptionData(); blueOptionData.text = battleCharacters[i].name; bluesDropdown.options.Add(blueOptionData); } } }
public string receiveBattleAction(BattleAction action) { string log = this.name + ": ("; for (int i = 0; i < action.targets.Count; i++) { log += action.targets[i].name + " "; } log += ") receive <" + action.skill.name + "> from ("; for (int i = 0; i < action.sources.Count; i++) { log += action.sources[i].name + " "; } log += ")\n"; Debug.Log(log); Dictionary <string, string> damage = action.skill.damage; if (damage == null) { return(null); } foreach (KeyValuePair <string, string> damageKeyValuePair in damage) { } log = this.name + "'s HP = " + this.statuses["HP"] + "\n" + log; if (this.statuses["HP"] <= 0f) { log = this.name + " dead. \n" + log; } return(log); }
public void addBattleAction(BattleAction battleAction) { this.battleActions.Add(battleAction); }