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(); }
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; } }