// added random pre-attack delay after demo so mobs don't all attack at once private void Attack(GameObject target, float t) { MobController enemy = target.GetComponent <MobController>(); LookAt(target.transform.position, t); if (attackTimer <= 0) { preAttackDelay = Random.Range(0f, preAttackMaxDelay); if (preAttackTimer <= 0) { animation.Play("attack"); attackTimer += attackDelay; preAttackTimer += preAttackDelay; if (gameObject.name.Equals("skeletonMage(Clone)")) { GameObject fireball = (GameObject)Instantiate(fireballPrefab, transform.position + (transform.forward + transform.up) / 2f, Quaternion.identity); fireball.GetComponent <FireballScript>().Init(gameObject, enemy.transform.position, friendly); } else { if (Random.Range(0f, 1f) > enemy.dodgeChance) { enemy.TakeDamage(CalcDamage(enemy.armor), false); } else { enemy.Dodge(); } } } preAttackTimer -= t; } attackTimer -= t; }
public void SetControllingObject(GameObject g) { // Set Fuse of Old Mob MobController mob = parentObject.GetComponentInChildren<MobController>(); mob.SetFuse(GameController.GetInstance.TimeRemaining); // Swap Bodies Vector3 offset = transform.localPosition; Quaternion offrot = transform.localRotation; transform.parent = g.transform; transform.localPosition = offset; transform.localRotation = offrot; parentObject = g; mobController.isAIEnabled = true; mobController = transform.root.GetComponentInChildren<MobController>(); mobController.isAIEnabled = false; meshTransform = transform.root.FindChild("Mesh"); // Resets Explosion Timer GameController.GetInstance.StartTimer(); }
private void Explode() { Collider[] hitColliders = Physics.OverlapSphere(transform.position, radius); if (hitColliders.Length > 0) { foreach (Collider inRangeUnit in hitColliders) { if (inRangeUnit.transform.tag == "Mob") { MobController enemy = inRangeUnit.gameObject.GetComponent <MobController>(); if (enemy != null && friendly != enemy.friendly) { if (Random.Range(0f, 1f) > enemy.dodgeChance) { enemy.Project(((enemy.transform.position + Vector3.up * 10f) - transform.position).normalized * projectionPower); enemy.TakeDamage(caster.GetComponent <MobController>().CalcDamage(enemy.armor), true); } else { enemy.Dodge(); } } } } } }
public void SetControllingObject(GameObject g) { // Set Fuse of Old Mob MobController mob = parentObject.GetComponentInChildren <MobController>(); mob.SetFuse(GameController.GetInstance.TimeRemaining); // Swap Bodies Vector3 offset = transform.localPosition; Quaternion offrot = transform.localRotation; transform.parent = g.transform; transform.localPosition = offset; transform.localRotation = offrot; parentObject = g; mobController.isAIEnabled = true; mobController = transform.root.GetComponentInChildren <MobController>(); mobController.isAIEnabled = false; meshTransform = transform.root.FindChild("Mesh"); // Resets Explosion Timer GameController.GetInstance.StartTimer(); }
// Start is called before the first frame update void Start() { mc = GetComponent <MobController>(); StartSetting[0] = mc.shotTime; StartSetting[1] = mc.bonusTime; StartSetting[2] = mc.angle; StartSetting[3] = mc.bulletNum; StartSetting[4] = mc.atk; StartCoroutine(ChangeForm(changeTime)); }
public void spawnCircular(Vector3 center, float radius) { int angle = 0; Vector3 pointInCircle; for (int i = 0; i < mobCount; i++) { angle = Random.Range(0, 360); pointInCircle = new Vector3(center.x + radius * Random.Range(1 - JIGGLE_AMOUNT, 1 + JIGGLE_AMOUNT) * Mathf.Sin(angle * Mathf.Deg2Rad), 0, center.z + radius * Random.Range(1 - JIGGLE_AMOUNT, 1 + JIGGLE_AMOUNT) * Mathf.Cos(angle * Mathf.Deg2Rad)); GameObject g = Instantiate(mobPrefab, pointInCircle, Quaternion.identity) as GameObject; // Randomize MoveSpeed MobController m = g.GetComponent <MobController>(); m.MoveSpeed = MOVESPEED * Random.Range(1 - JIGGLE_AMOUNT, 1 + JIGGLE_AMOUNT); // Randomize Scale Vector3 lScale = m.transform.localScale; lScale = new Vector3(lScale.x * Random.Range(1 - JIGGLE_AMOUNT, 1 + JIGGLE_AMOUNT), lScale.y * Random.Range(1 - JIGGLE_AMOUNT, 1 + JIGGLE_AMOUNT), lScale.z * Random.Range(1 - JIGGLE_AMOUNT, 1 + JIGGLE_AMOUNT)); m.transform.localScale = lScale; } }
void Awake() { controller = GetComponent <MobController>(); _originalPosition = transform.position; // Set random initial rotation StartCoroutine(NewHeading()); }
IEnumerator MobCoroutine() { Debug.Log("MobCoroutine ReOn"); while (isSpawn) { yield return(new WaitForSeconds(spawnTime)); if (nowMob < 3) { int mobNum = Random.Range(1, 3); switch (mobNum) { case 1: if (unUsedMob1.Count != 0) { MobController _mob = unUsedMob1[0].GetComponent <MobController>(); _mob.hp = _mob.maxHp; unUsedMob1[0].transform.position = new Vector3(7, Random.Range(-4, 5), 0); unUsedMob1[0].SetActive(true); _mob.parents = this; nowMob++; unUsedMob1.RemoveAt(0); } else { MobController _mob = Instantiate(mobData[mobNum]).GetComponent <MobController>();; _mob.transform.position = new Vector3(7, Random.Range(-4, 5), 0); _mob.gameObject.transform.parent = null; _mob.parents = this; nowMob++; } break; case 2: if (unUsedMob2.Count != 0) { MobController _mob = unUsedMob2[0].GetComponent <MobController>(); _mob.hp = _mob.maxHp; unUsedMob2[0].transform.position = new Vector3(7, Random.Range(-4, 5), 0); unUsedMob2[0].SetActive(true); _mob.parents = this; nowMob++; unUsedMob2.RemoveAt(0); } else { MobController _mob = Instantiate(mobData[mobNum]).GetComponent <MobController>();; _mob.transform.position = new Vector3(7, Random.Range(-4, 5), 0); _mob.gameObject.transform.parent = null; _mob.parents = this; nowMob++; } break; } } } }
void OnSceneGUI() { MobController mob_controller = (MobController)target; Handles.color = Color.blue; if (mob_controller.patrol_script != null) { Handles.DrawLine(mob_controller.transform.position, mob_controller.patrol_script.get_destination()); } }
// Update is called once per frame void Update() { if (myMob != null) { this.transform.position = new Vector3(myMob.transform.position.x - values.x, myMob.transform.position.y - values.y, myMob.transform.position.z - values.z); } else { myMob = GameObject.FindGameObjectWithTag(myMobtag).gameObject.GetComponent <MobController>(); } }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "mob") { CameraShake.instance.Shake(0.3f, 0.1f); MobController mobb = collision.gameObject.GetComponent <MobController>(); mobb.hp -= controller.atk; mobb.BeHurt(); this.gameObject.SetActive(false); controller.unUsedBullets.Add(this.gameObject); } }
// Start is called before the first frame update void Start() { gc = GameObject.Find("Controller").GetComponent <GameController>(); pa = GameObject.Find("Controller").GetComponent <PlayerAttack>(); mc = GameObject.Find("Controller").GetComponent <MobController>(); //id = (int) transform.position.x + (int) transform.position.y + (int) transform.position.z; hp = 100f; stamina = 100f; breath = 100f; basicAttack = 20f; seeCanvas = false; isDead = false; }
public OtherGrabbedLootEvent(Dictionary <byte, object> parameters) : base(parameters) { ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters); try { if (parameters.ContainsKey(1)) { _lootedBody = MobController.IsMob(parameters[1].ToString()) ? LanguageController.Translation("MOB") : parameters[1].ToString(); } if (parameters.ContainsKey(2)) { _looterName = parameters[2].ToString(); } if (parameters.ContainsKey(3)) { _isSilver = parameters[3].ObjectToBool(); } if (parameters.ContainsKey(4)) { _itemId = parameters[4].ObjectToInt(); } if (parameters.ContainsKey(5)) { _quantity = parameters[5].ObjectToInt(); } Loot = new Loot() { LootedBody = _lootedBody, IsTrash = ItemController.IsTrash(_itemId), Item = ItemController.GetItemByIndex(_itemId), ItemId = _itemId, LooterName = _looterName, IsSilver = _isSilver, Quantity = _quantity }; } catch (Exception e) { ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e); } }
private float FindClostestMob() { float distanceToClosestMob = 100f; MobController closestMob = null; MobController[] allMob = GameObject.FindObjectsOfType <MobController>(); foreach (MobController currentMob in allMob) { float distanceToMob = (currentMob.transform.position - gameObject.transform.position).sqrMagnitude; if (distanceToMob < distanceToClosestMob) { distanceToClosestMob = distanceToMob; closestMob = currentMob; } } return(distanceToClosestMob); }
public Mob(MobController mController) { this.mController = mController; this.uID = WMap.Instance.mobsCount; this.maxHP = mController.getData().getMaxHP(); this.curHP = maxHP; WMap.Instance.mobsCount++; this.spawnX = mController.getSpawnX(); this.spawnY = mController.getSpawnY(); this.area = WMap.Instance.getGrid(mController.getMap()).getAreaByRound(spawnX, spawnY); this.positionX = Randomizer.NextInt(this.area.getGrid().getaSize()) + this.area.getAreaStartingPosition()[0]; // cause I can. this.positionY = Randomizer.NextInt(this.area.getGrid().getaSize()) + this.area.getAreaStartingPosition()[1]; // cause I can. if(area != null) area.addMob(this); else Console.WriteLine("out of grid kurwa. {0} {1} {2}", mController.getMap(), spawnX, spawnY); this.death = false; }
/// <summary> /// Sets a new position when the user clicks /// </summary> public void SetTargetPosition() { //Plane plane = new Plane(Vector3.up, transform.position); Ray ray; if (clickposition.x > 1600 && clickposition.y < 320) { ray = MinimapCamera.ScreenPointToRay(Input.mousePosition); } else { ray = Camera.main.ScreenPointToRay(Input.mousePosition); } //float point = 0f; RaycastHit hite; if (Physics.Raycast(ray, out hite)) { if (!hite.collider.gameObject.tag.Contains(this.statsvalues.team) && !hite.collider.gameObject.tag.Contains("Obstacle")) { print(hite.collider.gameObject.tag + ": " + hite.point); if (objective != hite.collider.gameObject.GetComponent <MobController>()) { isAttacking = false; objective = hite.collider.gameObject.GetComponent <MobController>(); } } else { this.objective = null; isAttacking = false; } targetPosition = hite.point; } isMoving = true; }
public Mob(MobController mController) { this.mController = mController; this.uID = WMap.Instance.mobsCount; this.maxHP = mController.getData().getMaxHP(); this.curHP = maxHP; WMap.Instance.mobsCount++; this.spawnX = mController.getSpawnX(); this.spawnY = mController.getSpawnY(); this.area = WMap.Instance.getGrid(mController.getMap()).getAreaByRound(spawnX, spawnY); this.positionX = Randomizer.NextInt(this.area.getGrid().getaSize()) + this.area.getAreaStartingPosition()[0]; // cause I can. this.positionY = Randomizer.NextInt(this.area.getGrid().getaSize()) + this.area.getAreaStartingPosition()[1]; // cause I can. if (area != null) { area.addMob(this); } else { Console.WriteLine("out of grid kurwa. {0} {1} {2}", mController.getMap(), spawnX, spawnY); } this.death = false; }
void Start() { /* * "Particle Effects" */ // Get All Cubes cubes = transform.GetComponentsInChildren <Rigidbody>(); // Jiggle Positions for (int i = 0; i < cubes.Length; i++) { cubes[i].transform.position += new Vector3(Random.Range(-0.25f, 0.25f), Random.Range(0, 0.25f), Random.Range(-0.25f, 0.25f)); } // Add Explosion Force for (int i = 0; i < cubes.Length; i++) { cubes[i].AddExplosionForce(40f, transform.position, explosionRadius); } /* * Explosion Force */ GameObject[] mobs = GameObject.FindGameObjectsWithTag("Mob"); for (int i = 0; i < mobs.Length; i++) { if (Vector3.Distance(transform.position, mobs[i].transform.position) <= explosionRadius) { MobController m = mobs[i].GetComponent <MobController>(); m.BlownAway(); mobs[i].rigidbody.AddExplosionForce(400f, transform.position, explosionRadius); TimedDestroy t = mobs[i].AddComponent <TimedDestroy>(); t.destroyTime = explosionLength; } } }
void RpcHitReaction(NetworkInstanceId netId, Vector3 point, Vector3 normal, NetworkInstanceId attackerid, Hitpart part) { GameObject hit = ClientScene.FindLocalObject(netId); GameObject attacker = ClientScene.FindLocalObject(attackerid); if (hit != null && attacker != null) { if (hit.GetComponent <Rigidbody>() != null) { hit.GetComponent <Rigidbody>().AddForce(fpsCamera.transform.forward * 200f); } BulletSound bs = hit.GetComponent <BulletSound>(); if (bs != null) { bs.Play(); } BulletRandomSound brs = hit.GetComponent <BulletRandomSound>(); if (brs != null) { brs.Play(); } Hitreaction hr = hit.GetComponent <Hitreaction>(); if (hr != null) { MobController mc = hit.GetComponent <MobController>(); if (mc != null) { mc.attacker = attacker; } hr.React(part.ToString()); } MakeImpactFX(point, normal); MakeBulletHole(point, normal, hit.transform); } }
void Awake() { #if UNITY_EDITOR Log.level = Log.LogLevel.DEBUG; #else Log.level = Log.LogLevel.INFO; #endif Debug.Log("--------------- Awake ------------------------"); Transform facadeContainer = this.transform.Find("facades"); facades = new UIFacade[facadeContainer.childCount]; for (int i = 0; i < facadeContainer.childCount; i++) { Transform child = facadeContainer.GetChild(i); facades[i] = child.GetComponent <UIFacade>(); facades[i].Register(); } initialize(); playerModel_ = new PlayerModel(); PlayerView playerView = new PlayerView(); PlayerController playerController = new PlayerController(); framework.modelCenter.Register(PlayerModel.NAME, playerModel_); framework.viewCenter.Register(PlayerView.NAME, playerView); framework.controllerCenter.Register(PlayerController.NAME, playerController); mobModel_ = new MobModel(); MobView mobView = new MobView(); MobController mobController = new MobController(); framework.modelCenter.Register(MobModel.NAME, mobModel_); framework.viewCenter.Register(MobView.NAME, mobView); framework.controllerCenter.Register(MobController.NAME, mobController); inputController_ = new InputController(); framework.controllerCenter.Register(InputController.NAME, inputController_); }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { mc = animator.GetComponent <MobController>(); nm = animator.GetComponent <NavMeshAgent>(); }
//how long it takes to possess a node void Awake() { playerControllerInstance = this; mobController = transform.root.GetComponentInChildren<MobController>(); meshTransform = transform.root.FindChild("Mesh"); }
public void OnHitMob(MobController mobController) { Debug.Log("#Warrior# hit mob " + mobController); mobController.TakeMeleeDamage(weapon.damage); }
public Mob(EntityType entityTypeId, Level level) : base(entityTypeId, level) { Width = Length = 0.6; Height = 1.80; Controller = new MobController(this); }
public ToTargetState(MobController mob) { this.mob = mob; this.player = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>(); movement = player.transform.position - mob.transform.position; movement.Normalize(); }
private void OnCollisionEnter2D(Collision2D collision) { GameObject other = collision.gameObject; Debug.Log("collided with " + other.name); if (other.tag == "Mob") { MobController mc = other.GetComponent <MobController>(); if (mc.mob.Type == MobType.Enemy) { StartCoroutine(Damage((int)mc.mob.AttackDamage)); } } if (other.tag == "Player") { PlayerController pc = other.GetComponent <PlayerController>(); } if (other.tag == "Projectile") { ProjectileController pc = other.GetComponent <ProjectileController>(); } if (other.tag == "Item") { ItemController item = other.GetComponent <ItemController>(); /* * switch (item.item.Type) * { * case ItemType.None: * { * * } * break; * case ItemType.Attack: * { * * } * break; * case ItemType.Auxiliar: * { * * } * break; * case ItemType.Magic: * { * * } * break; * case ItemType.Especial: * { * * } * break; * case ItemType.Taunt: * { * * } * break; * case ItemType.Item: * { * for(int i = 0; i < Items.Length; i++) * { * if (Items[i] == null) * { * Items[i] = item.item; * Destroy(other); * break; * } * } * } * break; * } */ } }
private void Start() { animator = GetComponentInChildren <Animator>(); mobController = GetComponent <MobController>(); }
public DeadState(MobController mob) { this.mob = mob; mob.Instantiate(mob.explosion.gameObject, mob.transform.position); mob.Destroy(); }
public FollowingPathState(MobController mob){ this.mob = mob; movementClock.Start(); nextNode = mob.startingNode; }
public FollowingPlayerState(MobController mob) { player = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerController>(); this.mob = mob; movementClock.Start(); currentNode = mob.startingNode; GetRightDirection(); }
//how long it takes to possess a node void Awake() { playerControllerInstance = this; mobController = transform.root.GetComponentInChildren <MobController>(); meshTransform = transform.root.FindChild("Mesh"); }
// Update is called once per frame protected virtual void Update() { LineUpdater(); navagent.speed = this.statsvalues.speed / 70; if (this.statsvalues.life <= 0) { this.statsvalues.life = 0; LifeBar.fillAmount = this.statsvalues.life / this.statsvalues.totallife; Lifetext.text = (int)this.statsvalues.life + " / " + (int)this.statsvalues.totallife + " +" + this.statsvalues.regen; Kill(); } else { base.UpdateLife(); LifeBar.fillAmount = this.statsvalues.life / this.statsvalues.totallife; Lifetext.text = (int)this.statsvalues.life + " / " + (int)this.statsvalues.totallife + " +" + this.statsvalues.regen; if (Input.GetMouseButtonDown(1)) { clickposition = Input.mousePosition; SetTargetPosition(); } if (this.transform.position.x < targetPosition.x + .5 && this.transform.position.x > targetPosition.x - .5) { if (this.transform.position.z < targetPosition.z + .5 && this.transform.position.z > targetPosition.z - .5) { if (!this.objective) { isMoving = false; } } } if (isMoving == true) { MovePlayer(); } if (this.objective) { if (this.objective.GetLife() > 0) { float distance; distance = Vector3.Distance(this.transform.position, objective.transform.position); distance = distance - (objective.transform.lossyScale.x); if (distance <= this.statsvalues.attackrange) { isAttacking = true; } else { isAttacking = false; targetPosition = this.objective.transform.position; MovePlayer(); } } else { isAttacking = false; this.objective = null; targetPosition = this.transform.position; } } } if (rotate == true) { RotatePlayer(); } }