Exemple #1
0
    public void menuLoop()
    {
        switch (fightState)
        {
        case combatState.fightStart:
            //Fill the Status bar with empty stuff
            populateStatusBar();

            winPoint.transform.localPosition  = new Vector3(0, 5000, 0);
            losePoint.transform.localPosition = new Vector3(-30, 5000, 0);


            opponent = (enemyClass)GameObject.Instantiate(enemyPool[Random.Range(0, enemyPool.Length)], enemySpawn.transform.position, enemySpawn.transform.rotation);
            opponent.transform.parent        = enemySpawn.transform;
            opponent.transform.localPosition = new Vector3(0, 0, 0);
            statusBarSay("An enemy " + opponent.name + " appeared!");
            fightState = combatState.playerTurn;
            break;

        case combatState.playerTurn:

            break;

        case combatState.enemyTurn:
            enemyAttack();
            if (player.isDead())
            {
                statusBarSay("You lose!");
                fightState = combatState.lose;
            }
            else
            {
                fightState = combatState.playerTurn;
            }
            break;

        case combatState.win:
            winPoint.transform.localPosition = new Vector3(0, 0, 0);
            break;

        case combatState.lose:
            losePoint.transform.localPosition = new Vector3(0, 0, 0);
            break;
        }
        updateStatusBar();
        healthbarUpdate();
    }
Exemple #2
0
    void checkPosition(enemyClass enemyClass)
    {
        currentLocation  = transform.position;
        playerLocation   = player.transform.position;
        distanceToPlayer = (currentLocation - playerLocation).magnitude;
        distanceToStart  = (currentLocation - startingLocation).magnitude;

        switch (enemyClass)
        {
        case enemyClass.Dummy:
            break;

        case enemyClass.Drooler:
            if (selectedState != state.Dead)
            {
                if (distanceToStart > maximumDistanceFromOrigin)
                {
                    SelectState(state.Return);
                }
                else if (distanceToPlayer < 8 && selectedState != state.Return)
                {
                    SelectState(state.Follow);
                }
            }
            break;

        case enemyClass.Shooter:

            if (selectedState != state.Dead)
            {
                if (distanceToStart > maximumDistanceFromOrigin || (distanceToPlayer > shootingDistance * 1.35 && selectedState == state.Shoot))     // && selectedState != state.Return && selectedState != state.Shoot
                {
                    SelectState(state.Return);
                }

                if ((distanceToPlayer <= shootingDistance) && (distanceToPlayer < maximumDistanceFromOrigin))
                {
                    SelectState(state.Shoot);
                }
            }
            break;

        default:
            break;
        }
    }
    public void useWeapon(enemyClass enemy, characterScript character)
    {
        //improve character attributes
        if (userAddition == "mag")
        {
            character.mag = character.mag + userAdditionValue;
        }
        if (userAddition == "pDef")
        {
            character.pDef = character.pDef + userAdditionValue;
        }
        if (userAddition == "spd")
        {
            character.spd = character.spd + userAdditionValue;
        }
        if (userAddition == "dex")
        {
            character.dex = character.dex + userAdditionValue;
        }
        if (userAddition == "mdef")
        {
            character.mDef = character.mDef + userAdditionValue;
        }
        if (userAddition == "atk")
        {
            character.atk = character.atk + userAdditionValue;
        }
        character.status = characterStatusChange;                //shows current addition to status "Magic UP + 5"
        System.Random r   = new System.Random();
        float         num = r.Next(0, 1);

        //critical attack chance
        if (num == this.criticalHitChance)
        {
            this.attackDamage = attackDamage * 5;
        }

        //character attack is added with weapon attack and enemies health is decreased
        character.atk = character.atk + attackDamage;
        enemy.hp      = enemy.hp - character.atk;


        //checking the repair status of weapon
        float newNum = r.Next(0, 20);

        if (newNum == 3)
        {
            this.weaponHealth -= 20;
        }
        if (this.weaponHealth == 100)
        {
            this.weaponStatus = "Perfect Health!";
        }
        if (this.weaponHealth < 100 && this.weaponHealth >= 30)
        {
            this.weaponStatus = "Average Health!";
        }
        if (this.weaponHealth < 30)
        {
            this.weaponStatus = "Repair Soon!";
        }
        if (this.weaponHealth <= 0)
        {
            this.weaponHealth = 0;
            this.weaponStatus = "Broken!";
            this.attackDamage = 0;
        }
    }