private static void populateCharacterPanel(CombatCharacterController character)
 {
     BaseCharacterStatPanel._nameText.text   = character.charName;
     BaseCharacterStatPanel._levelText.text  = character.level.ToString();
     BaseCharacterStatPanel._hpText.text     = String.Concat(character.currentHp.ToString(), "/", character.maxHp.ToString());
     BaseCharacterStatPanel._mpText.text     = String.Concat(character.currentMp.ToString(), "/", character.maxMp.ToString());
     BaseCharacterStatPanel._statusText.text = "";
 }
 private float calcAttackDamage(CombatCharacterController _attacker, CombatCharacterController _defender)
 {
     float power = _attacker.Power;
     float defense = _defender.Defense;
     float luck = Random.Range(0.8f, 1.2f);
     float damage = power * (power / (power + defense)) * luck;
     return damage;
 }
        private void populateCharacterPanel()
        {
            CombatCharacterController ccc = this._currentCharacter.GetComponent <CombatCharacterController>();

            this._nameText.text   = ccc.charName;
            this._levelText.text  = ccc.level.ToString();
            this._hpText.text     = String.Concat(ccc.currentHp.ToString(), "/", ccc.maxHp.ToString());
            this._mpText.text     = String.Concat(ccc.currentMp.ToString(), "/", ccc.maxMp.ToString());
            this._statusText.text = "";
        }
        public void onClick()
        {
            CombatCharacterController activeCharacter = TurnOrder.getActiveCharacter().GetComponent <CombatCharacterController>();
            HashSet <GameObject>      foundRange      = Rangefinder.findAllTilesInRange(
                activeCharacter.getCurrentTileOfCharacter(),
                activeCharacter.GetComponent <CombatCharacterController>().walkRange
                );

            CombatUiStateKeeper.hideCombatUi();
            this._currentMovementRange = new Range(foundRange, "movement");
            _currentMovementRange.colorRange();
            this._isMovementPhase = true;
        }
예제 #5
0
    public void Init(CombatCharacterController attacker, CombatCharacterController defender)
    {
        //create empty subtract operation
        if (mOperations == null || mOperations.operands.Length != opCount)
        {
            mOperations = new MixedNumberOps();

            mOperations.operands = new MixedNumberOps.Operand[opCount];
            for (int i = 0; i < mOperations.operands.Length; i++)
            {
                mOperations.operands[i] = new MixedNumberOps.Operand();
            }

            mOperations.operators = new OperatorType[opCount - 1];
            for (int i = 0; i < mOperations.operators.Length; i++)
            {
                mOperations.operators[i] = OperatorType.Subtract;
            }
        }

        //fill first operand
        if (mOperations.operands.Length > 0)
        {
            var num = GetNumber();
            mOperations.operands[0].ApplyNumber(num);
        }

        //this will reset the operation
        opsWidget.gameObject.SetActive(false);
        opsWidget.operation = mOperations;

        if (timerWidget)
        {
            timerWidget.SetActive(false);
            timerWidget.delay = GameData.instance.defendDuration;
            timerWidget.ResetValue();
        }

        if (deckWidget)
        {
            deckWidget.gameObject.SetActive(false);
            deckWidget.Clear();
        }

        mAttacker = attacker;
        mDefender = defender;
    }
예제 #6
0
    public void Init(CombatCharacterController attacker, CombatCharacterController defender)
    {
        if (mAttackNumbers == null || mAttackNumbers.Capacity != attackCount)
        {
            mAttackNumbers = new M8.CacheList <MixedNumber>(attackCount);
        }
        else
        {
            mAttackNumbers.Clear();
        }

        //create empty sum operation
        if (mOperations == null || mOperations.operands.Length != opCount)
        {
            mOperations = new MixedNumberOps();

            mOperations.operands = new MixedNumberOps.Operand[opCount];
            for (int i = 0; i < mOperations.operands.Length; i++)
            {
                mOperations.operands[i] = new MixedNumberOps.Operand();
            }

            mOperations.operators = new OperatorType[opCount - 1];
            for (int i = 0; i < mOperations.operators.Length; i++)
            {
                mOperations.operators[i] = OperatorType.Add;
            }
        }

        //apply fixed numbers
        if (fixedGroups.Length > 0)
        {
            var fixedNumbers = fixedGroups[mCurFixedNumbersIndex].GetNumbers();
            mCurFixedNumbersIndex++;
            if (mCurFixedNumbersIndex == fixedGroups.Length)
            {
                mCurFixedNumbersIndex = 0;
            }

            var count = Mathf.Min(fixedNumbers.Length, mOperations.operands.Length);
            for (int i = 0; i < count; i++)
            {
                mOperations.operands[i].ApplyNumber(fixedNumbers[i]);
            }
            for (int i = count; i < mOperations.operands.Length; i++)
            {
                mOperations.operands[i].RemoveNumber();
            }
        }
        //

        //this will reset the operation
        opsWidget.gameObject.SetActive(false);
        opsWidget.operation = mOperations;

        if (timerWidget)
        {
            timerWidget.SetActive(false);
            timerWidget.delay = GameData.instance.attackDuration;
            timerWidget.ResetValue();
        }

        if (counterWidget)
        {
            counterWidget.Init(attackCount);
        }

        if (deckWidget)
        {
            deckWidget.gameObject.SetActive(false);
            deckWidget.Clear();
        }

        mAttacker = attacker;
        mDefender = defender;
    }