//:::::::::::::::::::::::::::: Publicly available Interface :::::::::::::::::::::::::::::::::::::::: public void hurt(float value, DamageType type) { switch (type) { case DamageType.blunt: health -= value * damageResistance [0]; break; case DamageType.pirsing: health -= value * damageResistance [1]; break; case DamageType.fire: health -= value * damageResistance [2]; break; case DamageType.electric: health -= value * damageResistance [3]; break; case DamageType.corrosive: health -= value * damageResistance [4]; break; } if (health <= 0) { health = 0; HiveMind.imDead(this, imGood); Destroy(this.gameObject); } }
void updateState() { if (enemy != null) { if (canISee(this.transform.position, enemy.gameObject, sightDistance)) { } else { if (amIgood) { enemy = HiveMind.getReachableBadGuy(this.transform.position, sightDistance); } else { enemy = HiveMind.getReachableGoodGuy(this.transform.position, sightDistance); } } } else { //there is no enemy, getting closest enemy if (amIgood) { enemy = HiveMind.getReachableBadGuy(this.transform.position, sightDistance); } else { enemy = HiveMind.getReachableGoodGuy(this.transform.position, sightDistance); } } }
//:::::::::::::::::::::::::::: Publicly available Interface :::::::::::::::::::::::::::::::::::::::: public void hurt(float value, DamageType type) { switch (type) { case DamageType.blunt: health -= value * damageResistance [0]; break; case DamageType.pirsing: health -= value * damageResistance [1]; break; case DamageType.fire: health -= value * damageResistance [2]; break; case DamageType.electric: health -= value * damageResistance [3]; break; case DamageType.corrosive: health -= value * damageResistance [4]; break; } if (health <= 0) { health = 0; HiveMind.imDead(this, true); animator.SetBool("Dead", true); ui.showDead(); } ui.hpUpdate((int)health); }
//:::::::::::::::::::::::::::: Hiden functions :::::::::::::::::::::::::::::::::::::::: protected override void Start() { HiveMind.imaGoodGuy(this); //instantiate weapons for (int i = 0; i < 4; i++) { if (weaponPrefabs [i] != null) { weaponsGameO [i] = Instantiate(weaponPrefabs [i], hand1.transform); } } //Dissable unused weapons for (int i = 1; i < 4; i++) { if (weaponsGameO [i] != null) { weaponsGameO [i].SetActive(false); } } // Weapon inisialization for (int i = 0; i < 4; i++) { if (weaponsGameO [i] != null) { weaponlist [i] = weaponsGameO [i].GetComponent <Weapon> (); } } //get animator animator = this.GetComponent <Animator> (); base.Start(); }
void Awake() { if (instance == null) { instance = this; instance.Setup(); } }
override protected void Start() { speed = 100; rotationSpeed = 5; boss = Object.FindObjectOfType <HiveMind>(); base.Start(); }
// Update is called once per frame void Update() { if (objective != null) { //====================================== follow objective ====================================== float distance = Vector3.SqrMagnitude(this.gameObject.transform.position - objective.transform.position); //-------------------------- Rotation -------------------------- Vector3 desiredRotation; if (distance > sqInRange) { desiredRotation = objective.transform.position - (this.transform.position + destinationShift); } else { desiredRotation = objective.transform.position - this.transform.position; } desiredRotation.y = 0; this.transform.forward = Vector3.RotateTowards(this.transform.forward, desiredRotation, turningSpeed * Time.deltaTime, 0); //-------------------------- Moovement -------------------------- if (distance > close) { applyMoovement(new Vector2(runningSpeed, 0)); } else { if (distance > sqInRange) { applyMoovement(new Vector2(walkingSpeed, 0)); } else { applyMoovement(Vector2.zero); } } } else { //====================================== get new objective ====================================== if (imGood) { objective = HiveMind.getClosestBadGuy(this.transform.position); } else { objective = HiveMind.getClosestGoodGuy(this.transform.position); } //get new random side Vector2 aux = Random.insideUnitCircle.normalized * inRange; destinationShift = new Vector3(aux.x, 0, aux.y); //stop moovement applyMoovement(Vector2.zero); } //Update the character position refresh(); }
override protected void Start() { speed = 250; rotationSpeed = 5; boss = Object.FindObjectOfType <HiveMind>(); core = GameObject.FindWithTag("Core").transform; base.Start(); }
//:::::::::::::::::::::::::::: Hiden functions :::::::::::::::::::::::::::::::::::::::: void Start() { if (imGood) { HiveMind.imaGoodGuy(this); } else { HiveMind.imaBadGuy(this); } }
//:::::::::::::::::::::::::::: Hiden functions :::::::::::::::::::::::::::::::::::::::: void Start() { if (imGood) { HiveMind.imaGoodGuy(this); } else { HiveMind.imaBadGuy(this); } sphere = this.gameObject.GetComponent <CharacterController> (); //squaring distances close = close * close; }
override protected void Awake() { base.Awake(); ObjectPool.Instance.laserCount += 30; speed = 30; rotationSpeed = 5; for (int i = 0; i <= 3; i++) { shootPoint[i] = transform.Find("" + i).gameObject; } boss = Object.FindObjectOfType <HiveMind>(); }
protected override void Start() { if (amIgood) { HiveMind.imaGoodGuy(this); } else { HiveMind.imaBadGuy(this); } atackRange = atackRange * atackRange; sightDistance = sightDistance * sightDistance; InvokeRepeating("updateState", Random.value, 0.7f); objectivePosition = this.transform.position; base.Start(); }
//:::::::::::::::::::::::::::: Hiden functions :::::::::::::::::::::::::::::::::::::::: override protected void Start() { if (imGood) { HiveMind.imaGoodGuy(this); } else { HiveMind.imaBadGuy(this); } //squaring distances close = close * close; sqInRange = inRange * inRange; base.Start(); }
private void checkFight() { if (HiveMind.getNumOfBadGuys() <= minimumToSpawn) { foreach (EnemyDor d in badDors) { d.spawnPack(badGuys [Random.Range(0, badGuys.Length)]); } } if (HiveMind.getNumOfGoodGuys() <= minimumToSpawn) { foreach (EnemyDor d in goodDors) { d.spawnPack(goodGuys [Random.Range(0, goodGuys.Length)]); } } }
public void chechIfWaveIsOver() { if (betweenWaves) { if (HiveMind.getNumOfBadGuys() > 0) { betweenWaves = false; } } else { if (HiveMind.getNumOfBadGuys() == 0) { advanceWave(); } } }
protected override void Start() { stunImmune = true; timeImmune = true; rotation = transform.rotation.eulerAngles; laserPoint = laser.transform.position; laserCollider = laser.GetComponent <BoxCollider>(); laserStart = laser.transform.localPosition; //ActivateLaser(); beatTime = BaseLevel.Instance.GetBeatTime(); base.Start(); boss = Object.FindObjectOfType <HiveMind>(); explosion.GetComponent <EnemyExplosion>().meshSize = 6; }
void Update() { if (objective != null) { float distance = Vector3.SqrMagnitude(moovingPart.position - objective.transform.position); Vector3 desiredRotation = objective.transform.position - moovingPart.position; moovingPart.forward = Vector3.RotateTowards(moovingPart.forward, desiredRotation, rotationSpeed * Time.deltaTime, 0); if ((Time.time - lastShot) > timeBetweenShots) { if (Physics.Raycast(endOfBarrel.transform.position, endOfBarrel.forward, out hit, 500)) { if (hit.collider.gameObject == objective.gameObject) { //shoot Instantiate(projectile, endOfBarrel.position, Quaternion.Euler(endOfBarrel.eulerAngles + (Random.insideUnitSphere * acuracy))); lastShot = Time.time; } } } if (distance > shootingRange) { objective = null; } } else { if (imGood) { objective = HiveMind.getClosestBadGuy(this.transform.position); } else { objective = HiveMind.getClosestGoodGuy(this.transform.position); } } }
//:::::::::::::::::::::::::::: Hiden functions :::::::::::::::::::::::::::::::::::::::: override protected void Start() { animator = this.gameObject.GetComponent <Animator> (); if (imGood) { HiveMind.imaGoodGuy(this); } else { HiveMind.imaBadGuy(this); } //squaring distances close = close * close; sqInRange = inRange * inRange; engage = engage * engage; // Laser inisialization for (int i = 0; i < 3; i++) { lasers [i] = lasersGO [i].GetComponent <Weapon> (); } base.Start(); }
// Update is called once per frame void Update() { if (objective != null) { if (stunned == false) { //====================================== follow objective ====================================== float distance = Vector3.SqrMagnitude(objective.transform.position - this.transform.position); //-------------------------- Rotation -------------------------- blades.transform.Rotate(new Vector3(0, 0, turningSpeed * Time.deltaTime)); //-------------------------- Moovement -------------------------- if (atacking) { //it's atacking if (distance > close) { //its slowing down float lerpFactor = (Time.time - lastReorient) / reorientPeriod; sphere.Move(Vector3.Lerp(currentSpeed, Vector3.zero, lerpFactor) * Time.deltaTime); } else { lastReorient = Time.time; sphere.Move(currentSpeed * Time.deltaTime); } if ((Time.time - lastReorient) >= reorientPeriod) { atacking = false; } } else { Vector3 moovement = (objective.transform.position - this.transform.position).normalized; sphere.Move(moovement * walkingSpeed * Time.deltaTime); if (distance < close) { atacking = true; currentSpeed = moovement * runningSpeed; } } } else { //is stunned float lerpFactor = (Time.time - lastStunned) / stunnedPeriod; sphere.Move(Vector3.Lerp(currentSpeed, Vector3.zero, lerpFactor) * Time.deltaTime); blades.transform.Rotate(new Vector3(0, 0, Mathf.Lerp(0, turningSpeed, lerpFactor) * Time.deltaTime)); if (Time.time - lastStunned > stunnedPeriod) { stunned = false; } } } else { //====================================== get new objective ====================================== if (imGood) { objective = HiveMind.getClosestBadGuy(this.transform.position); } else { objective = HiveMind.getClosestGoodGuy(this.transform.position); } } }
public void loadMainMenu() { Time.timeScale = 1; HiveMind.clearData(); SceneManager.LoadScene(0); }
public void play() { HiveMind.clearData(); SceneManager.LoadScene(1); }
// Update is called once per frame void Update() { if (objective != null) { if (atacking == false) { if (engaged == false) { //====================================== follow objective ====================================== float distance = Vector3.SqrMagnitude(this.gameObject.transform.position - objective.transform.position); //-------------------------- Rotation -------------------------- Vector3 desiredRotation; if (distance > sqInRange) { desiredRotation = objective.transform.position - (this.transform.position + destinationShift); } else { desiredRotation = objective.transform.position - this.transform.position; } desiredRotation.y = 0; this.transform.forward = Vector3.RotateTowards(this.transform.forward, desiredRotation, turningSpeed * Time.deltaTime, 0); //-------------------------- Moovement -------------------------- if (distance > close) { applyMoovement(new Vector2(runningSpeed, 0)); } else { if (distance > sqInRange) { applyMoovement(new Vector2(walkingSpeed, 0)); } else { if (distance > engage) { applyMoovement(Vector2.zero); RaycastHit hit; if (Physics.Linecast(this.transform.position, this.transform.position + this.transform.forward * inRange, out hit)) { if (hit.collider.gameObject == objective.gameObject) { animator.SetBool("Attacking", true); atacking = true; } } } else { engaged = true; animator.SetBool("Engaged", true); lasteEngagement = Time.time; applyMoovement(Vector2.zero); } } } } else { //engaged this.gameObject.transform.Rotate(new Vector3(0, turningSpeed * 57.3f * Time.deltaTime, 0)); // 57.3 is so to transform radians to degrees Vector3 moovement = objective.transform.position - this.transform.position; moovement.y = 0; applyPush(moovement.normalized * walkingSpeed); if (Time.time - lasteEngagement > engagmentTime && (objective.transform.position - this.transform.position).sqrMagnitude > engage) { animator.SetBool("Engaged", false); } } } else { //attacking applyMoovement(Vector2.zero); } } else { //====================================== get new objective ====================================== if (imGood) { objective = HiveMind.getClosestBadGuy(this.transform.position); } else { objective = HiveMind.getClosestGoodGuy(this.transform.position); } //get new random side Vector2 aux = Random.insideUnitCircle.normalized * inRange; destinationShift = new Vector3(aux.x, 0, aux.y); //stop moovement applyMoovement(Vector2.zero); } //Update the character position refresh(); //Controling lasers if (atacking) { lasers [0].framecall(); } if (engaged) { for (int i = 0; i < 3; i++) { lasers [i].framecall(); } } }
public void reloadScene() { HiveMind.clearData(); SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); }