Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
                }
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public void addBattleAction(BattleAction battleAction)
 {
     this.battleActions.Add(battleAction);
 }