private void ZombiePlyier(IZombie zombie, double timer) { if (delay >= 5 && multiply) { delay = 0; if (!zombie.Multiplier) { Vector2 newLocation = new Vector2(zombie.Location.X, zombie.Location.Y + ZombieFactory.zombieWalkingRightAtlas.Height); IZombie z = ZombieFactory.Instance.CreateZombie(newLocation); z.Multiplier = true; SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound(); nightmareZombie.Add(z); zombie.Multiplier = true; } multiply = false; } else { delay += timer; if (delay > 5) { multiply = true; } } }
public void OnCollisionEnter(Collision other) { IZombie zombie = other.collider.GetComponentInParent <IZombie> (); Rigidbody a = other.collider.attachedRigidbody; if (zombie) { float x = 1; for (int i = 0; i < zombie.damageLevels.Length; i++) { if (other.collider == zombie.damageLevels[i]) { x = Mathf.Pow(i + 1, 2); } } zombie.ApplyPain((int)(damage * x + Random.Range(0, damage * x))); DropBlood(trans.position, trans.rotation); for (int i = 0; i < zombie.partsOfZ.Length; i++) { if (zombie.partsOfZ[i].coll == other.collider) { zombie.partsOfZ [i].CatchOff(); } } if (a) { zombie.lastDamageColl = a; zombie.lastDamageDirection = -other.relativeVelocity * damage / 50; } } if (a) { a.velocity = -other.relativeVelocity * damage / 200f; } /*IHuman human = other.collider.GetComponentInParent<IHuman> (); * * if (human) { * if (human.savable.name != "player") { * float x = 1; * for (int i = 0; i < human.damageLevels.Length; i++) { * if (other.collider == human.damageLevels[i]) { * x = Mathf.Pow(i + 1, 2); * } * } * human.savable.ApplyDamage ((int)(damage * x + Random.Range(0, damage * x))); * DropBlood (trans.position, trans.rotation); * } * }*/ if (!other.collider.GetComponent <IBullet>()) { float r = Random.Range(0f, 100f); if (r < 90) { Destroy(gameObject); } } }
public static IZombie ZombieNearbyPosition(Vector3 position, float far, bool noCast) { IZombie[] humans = DataCenter.dataCenter.zombies; IZombie finded = null; float dist = far; for (int i = 0; i < humans.Length; i++) { float cur = (humans [i].trans.position - position).magnitude; if (!noCast) { if (cur < dist) { finded = humans [i]; dist = cur; } } else { if (cur < dist && !Physics.Linecast(position + Vector3.up * 1.8f, humans [i].trans.position + Vector3.up * 1.8f)) { finded = humans [i]; dist = cur; } } } return(finded); }
public ZombieNightmareEnemyCollisionResponse(IZombie z, INightmareEnemy n, List <IZombie> zombieList, CollisionSide c) { timer--; // = g.TargetElapsedTime.TotalSeconds; delayTimer = timer + 2; locale = n.Location; if (c != CollisionSide.None) { if (n is NightmareGoombaEnemy) { locale.Y = n.Location.Y + n.Texture.Height; n.Die(); if (timer == 0) { SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound(); zombieList.Add(ZombieFactory.Instance.CreateZombie(locale)); timer = 1; } } else { if (timer == 0) { n.Die(); SoundEffectFactory.Instance.CreateNightmareZombieSpawnSound().PlaySound(); zombieList.Add(ZombieFactory.Instance.CreateZombie(locale)); timer = 1; } } } }
public void Create() { IZombie z = ZombieFactory.Make(ZombieFactory.Catagory.Crazy, ZombieFactory.IsRange.Range, ZombieColor.White); Generator(z); }
public virtual IZombie Build(IsRange isRange, ZombieColor color) { IZombie z = SelectZombie(isRange); z.Paint(color); return(z); }
public ZDRegular(IZombie _zombie) : base(_zombie) { _zombie.setZombieType("R"); _zombie.setZombieHealth(50); _zombie.setZombieDefence(1); _zombie.setZombieSpeed(1); _zombie.setZombieIsMetal(false); _zombie.setZombieIsCovered(false); }
public ZDBucket(IZombie _zombie) : base(_zombie) { _zombie.setZombieType("B"); _zombie.setZombieHealth(150); _zombie.setZombieDefence(1); _zombie.setZombieSpeed(1); _zombie.setZombieIsMetal(true); _zombie.setZombieIsCovered(false); }
public ZDCone(IZombie _zombie) : base(_zombie) { _zombie.setZombieType("C"); _zombie.setZombieHealth(75); _zombie.setZombieDefence(1); _zombie.setZombieSpeed(1); _zombie.setZombieIsMetal(false); _zombie.setZombieIsCovered(false); }
public ZDDoor(IZombie _zombie) : base(_zombie) { _zombie.setZombieType("S"); _zombie.setZombieHealth(75); _zombie.setZombieDefence(3); _zombie.setZombieSpeed(1); _zombie.setZombieIsMetal(true); _zombie.setZombieIsCovered(true); }
static void Main(string[] args) { string input = ""; ZombieList zombies = new ZombieList(); while (input != "Exit") { printMenu(); input = Console.ReadLine(); if (input == "Exit") { return; } int res; if (!int.TryParse(input, out res)) { Console.WriteLine("That is not a number or \"Exit\", try again"); } switch (res) { case 1: Console.WriteLine("Which kind?"); zombies.addZombie(createEnemy()); zombies.printZombieInfo(); break; case 2: Console.WriteLine("How much, 25 or 40?"); Console.WriteLine("1. 25"); Console.WriteLine("2. 40"); input = Console.ReadLine(); int damage; if (!int.TryParse(input, out damage)) { Console.WriteLine("That is not a number, try again"); } IZombie zombie = zombies; switch (damage) { case 1: zombie.TakeDamage(25); zombies.printZombieInfo(); break; case 2: zombie.TakeDamage(40); zombies.printZombieInfo(); break; } break; } } }
public void Spawn() { int l = 0; float max = maxCount; /*if (!ITimecycle.night) { * max = maxCount / 2; * }*/ if (human) { l = DataCenter.dataCenter.humans.Length; } else { l = DataCenter.dataCenter.zombies.Length; } if ((l < max && limit > 0) || (!IHuman.playerObj && human)) { GameObject sp = (GameObject)Resources.Load("Prefabs/ZombieRag_" + Random.Range(0, 1)); if (!human) { sp = Instantiate(sp, transform.position + (Vector3)Vector0.Flat(Random.onUnitSphere), Quaternion.identity, transform); IZombie z = sp.GetComponent <IZombie> (); z.findMode = isFinders; z.savable.health = 100 + IZombie.dead * 10; } else { if (IHuman.playerObj) { sp = (GameObject)Resources.Load("Prefabs/HumanRag"); sp = Instantiate(sp, transform.position + (Vector3)Vector0.Flat(Random.onUnitSphere), Quaternion.identity, transform); IHuman h = sp.GetComponent <IHuman> (); h.savable.name = "BOT"; Destroy(h.camObj); } else { sp = (GameObject)Resources.Load("Prefabs/Human"); sp = Instantiate(sp, transform.position + (Vector3)Vector0.Flat(Random.onUnitSphere), Quaternion.identity, transform); IHuman h = sp.GetComponent <IHuman> (); h.savable.name = "player"; IHuman.GetPlayer(); ITimecycle.UpdateCameras(); } } } if (limited) { limit -= 1; } if (!IsInvoking("Spawn")) { Invoke("Spawn", interval + Random.Range(0f, interval)); } }
private void Sinhro() { if (Input.GetButtonDown("Cancel")) { IMainMenu.ToMenu(); } weapon.texture = (Texture)Resources.Load("Sprites/Weapon_" + player.savable.currentWeapon); if (fire) { Fire(); } //SinhroCross (); Transform cm = IHuman.cameraMainParent; Transform fp = player.firePlace; float speed = Time.deltaTime * 8; if (cross) { rangeView = 30; Vector3 v = fp.position - fp.forward + fp.up * 0.02f; Debug.DrawRay(v, fp.forward); cm.position = Vector3.Slerp(cm.position, v, speed); } else { rangeView = 60; cm.localPosition = Vector3.Slerp(cm.localPosition, new Vector3(0, 0.0014f, 0.0013f), speed); } IHuman.cameraMain.fieldOfView = Mathf.Lerp(IHuman.cameraMain.fieldOfView, rangeView, 0.25f); health.text = "" + ((int)player.savable.health) + '\n' + "Зомби сейчас : " + DataCenter.dataCenter.zombies.Length; float t = ITimecycle.time; int sec = (int)((t - (int)t) * 60); string s = "" + sec; if (sec < 10) { s = "0" + sec; } killed.text = "Время : " + (int)t + ":" + s; IZombie z = IZombie.ZombieNearbyPosition(player.trans.position, 5, false); if (z) { Vector3 v = Vector0.Flat(z.trans.position - player.trans.position); v = player.trans.InverseTransformDirection(v); Quaternion q = Quaternion.LookRotation(v); zAngle = -135 - q.eulerAngles.y; } else { zAngle -= Time.deltaTime * 180; } radar.localEulerAngles = Vector3.forward * (zAngle); patronesType.texture = (Texture)Resources.Load("Sprites/Patrones_" + player.savable.currentWeapon); patrones.text = "" + player.savable.patrones_in [player.savable.currentWeapon] + "/" + player.savable.patrones_ [player.savable.currentWeapon]; }
public void Fall() { if (savable.name == "player") { anims.Play("Death"); falled = true; IZombie z = zombieNearby; if (z) { trans.rotation = Quaternion.LookRotation(Vector0.Flat(z.trans.position - trans.position)); } falledEulerY = trans.eulerAngles.y; } }
public void Generator(IZombie z) { GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule); //cube.AddComponent<IZombie>(); capsule.AddComponent <Zombie>(); Zombie zombie = capsule.GetComponent <Zombie>(); zombie.characterProperty = z.characterProperty; zombie.zombieColor = z.zombieColor; zombie.name = z.characterProperty.Name; Debug.Log("zombie color is" + zombie.zombieColor + "_HP" + zombie.characterProperty.HP + "_MP" + z.characterProperty.MP + "_SPEED" + zombie.characterProperty.Speed + "_ISRANGE" + zombie.characterProperty.IsRange); }
private void HumanUpdate() { savable.health += Time.deltaTime / 2; savable.health = Mathf.Clamp(savable.health, 0, 100); float speed = Time.deltaTime * 4; currentFrame.addLook = Vector3.Slerp(currentFrame.addLook, Vector3.zero, speed); if (heart) { if (savable.name == "player") { float dist = 10000; IZombie z = IZombie.ZombieNearbyPosition(trans.position, 10000, false); if (z) { dist = (trans.position - z.trans.position).magnitude; } float vol = 1 / dist; heart.volume = vol; } else { heart.volume = 0; } } if (agentTrans.localPosition.magnitude > 4f) { agentTrans.localPosition = agentTrans.localPosition.normalized * 4f; } walk_speed_k = walkSpeed / 2 + walkSpeed / 2 * (1 - crouch); if (savable.name == "player") { Control(); } else { AI(); } LookAt(); if (savable.health < 1) { Die(); } if (savable.health < 25 && !falled) { Fall(); } }
private void MarioZombieCollision() { for (int i = 0; i < nightmareZombie.Count; i++) { IZombie z = nightmareZombie[i]; Rectangle zombie = z.Position; Rectangle m = g.Character.Position; CollisionSide cs = CollisionDetector.Detect(m, zombie); if (cs != CollisionSide.None) { new ZombieMarioCollisionResponse(z, g.Character, cs, g); } } }
private void Update() { IHuman h = IHuman.HumanNearbyPosition(trans.position, false, 3); IZombie z = IZombie.ZombieNearbyPosition(trans.position, 3, false); opened = h || z; int r = 0; if (opened) { r = 1; } float speed = Time.deltaTime * 4f; addEuler = Mathf.Lerp(addEuler, r * 120, speed); trans.localEulerAngles = new Vector3(startEuler.x, startEuler.y, startEuler.z + addEuler); }
internal void printZombieInfo() { if (this.zombies.Count == 0) { Console.WriteLine("[]"); return; } StringBuilder info = new StringBuilder("["); for (int x = 0; x < this.zombies.Count - 1; x++) { IZombie zombie = this.zombies[x]; info.Append(zombie.getInfo() + ", "); } info.Append(this.zombies[this.zombies.Count - 1].getInfo() + "]"); Console.WriteLine(info); }
private void ZombieEnemyCollisionDetect() { for (int i = 0; i < zombies.Count; i++) { IZombie zombie = zombies[i]; Rectangle z = zombie.Position; for (int j = 0; j < nightmareEnemyList.Count; j++) { INightmareEnemy ne = nightmareEnemyList[j]; Rectangle n = ne.Position; CollisionSide cs = CollisionDetector.Detect(z, n); if (cs != CollisionSide.None) { new ZombieNightmareEnemyCollisionResponse(zombie, ne, zombies, cs); } } } }
void IZombie.TakeDamage(int damage) { if (this.zombies.Count == 0) { return; } IZombie zombie = this.zombies[0]; zombie.TakeDamage(damage); if (zombie.getHealth() <= 0) { IZombie newZombie = zombie.die(); if (newZombie != null) { this.addZombie(newZombie); } this.zombies.Remove(zombie); } }
private void DrawRadar() { IHuman[] humansIn = IHuman.GetNearByAll(player.trans.position, 50); Rect r = new Rect(0, 0, 100, 100); GUI.color = Color.gray; GUI.Box(r, ""); for (int i = 0; i < humansIn.Length; i++) { Vector3 p = player.trans.InverseTransformPoint(humansIn [i].trans.position - player.trans.position) + new Vector3(50, 0, 50); r = new Rect(p.x - 5, p.z - 5, 10, 10); GUI.color = Color.blue; GUI.Box(r, ""); } IZombie[] zIn = IZombie.GetNearByAll(player.trans.position, 50); for (int i = 0; i < zIn.Length; i++) { Vector3 p = player.trans.InverseTransformPoint(zIn [i].trans.position - player.trans.position) + new Vector3(50, 0, 50); r = new Rect(p.x - 10, p.z - 10, 20, 20); GUI.color = Color.red; GUI.Box(r, ""); } }
internal void removeZombie(IZombie zombie) { this.zombies.Remove(zombie); }
internal void addZombie(IZombie zombie) { this.zombies.Add(zombie); }
public ZombieMarioCollisionResponse(IZombie z, IMario m, CollisionSide c, Game1 g) { g.Character.Die(); }
private void OnZombieDied(IZombie zombie) { ChangeMoneyAmount(zombie.Reward); }
public ZombieDecorator(IZombie NIZombie) { this._zombie = NIZombie; }
public ZombieMoveBehaviour(IZombie zombie) { _zombie = zombie; _transform = zombie.GameObject.transform; }
public ZombieMeleeBehaviour(IZombie zombie) { _zombie = zombie; }