void LoadAttribute(int ID) { try { EnemyStat stat = new EnemyStat(); stat = EnemyManager.instance.GetEnemyAttribute(ID); if (stat != null) { Name = stat.Name; Heath.Value = stat.Heath.Value; Heath.AddModifier(stat.Heath.Value * stat.Level); CurrentHeath = Heath.GetValue(); Damage.Value = stat.Damage.Value; Damage.AddModifier(stat.Damage.Value * stat.Level); Defense.Value = stat.Defense.Value; Defense.AddModifier(stat.Defense.Value * stat.Level); Crit.Value = stat.Crit.Value; if (IsRetransform) { transform.parent.transform.position = stat.Position; transform.parent.transform.rotation = Quaternion.Euler(stat.Rotation); transform.parent.transform.localScale = stat.Scale; } } } catch (Exception ex) { Logs.LogE("Can't load emeny ID " + ID + " : " + ex.ToString()); } }
void Update() { if (target == null && targets.Count > 0) { target = targets[0]; } }
void OnTriggerExit(Collider hit) { if (hit.tag.Equals("Enemy")) { if (hit.gameObject == target.gameObject) { foreach (EnemyStat x in targets) { if (x == null) { targets.Remove(x); } } if (targets.Count > 0) { target = targets[0]; } else { target = null; } } else { targets.Remove(hit.gameObject.GetComponent <EnemyStat>()); } } }
void Start() { attackRange = 0.4f; enemyStat = gameObject.GetComponent <EnemyStat>(); movement = gameObject.GetComponent <EnemyMovement>(); animator = gameObject.GetComponent <Animator>(); }
public GameObject opponent; // enemy reference // Use this for initialization void Start() { _enemyStat = gameObject.AddComponent("EnemyStat") as EnemyStat; opponent = GameObject.FindGameObjectWithTag("Player"); // Temporary level; A character level should be the same as a stage level _enemyStat.setLevel(2); if (this.gameObject.name == _E01Name) // enemy01 { _enemyStat.initBalanced(); //healthBar.renderer.material.color = adelColor; } else if (this.gameObject.name == _E02Name) // enemy02 { _enemyStat.initTanker(); //healthBar.renderer.material.color = afriColor; } else // unknown player character { Debug.LogError(gameObject.name); } animator = GetComponent <Animator> (); }
public void Initialize() { health = 1.0f; damage = 0.001f; dead = false; speed = 0.01f; mAngleX = 0; float x = RandomNumber(-50, 50); float z = RandomNumber(-50, 50); mPosition = new vec3(x, 0, z); mDirection = new vec3(0, 0, 0) - mPosition; mDirection = glm.normalize(mDirection); float scale_value = 0.05f; vec3 scale_vec = new vec3(scale_value); model.rotationMatrix = glm.rotate((float)((-0.5f) * Math.PI), new vec3(1, 0, 0)); model.scaleMatrix = glm.scale(new mat4(1), scale_vec); model.TranslationMatrix = glm.translate(new mat4(1), mPosition); state = EnemyStat.IDLE; model.AnimationSpeed = 0.003f; model.StartAnimation(animType_LOL.STAND); collider = new AABoundingBox(model.GetCurrentVertices(model.animSt), ColliderType.Enemy); collider.Scale(scale_vec); collider.Scale(1.1f, 3.0f, 0); collider.SetCenter(mPosition); healthBar = new HealthBar(mPosition, health, HealthType.Enemy); }
public void Update(Player hero, float maxDist, List <AABoundingBox> objects) { if (!dead) { if (state != EnemyStat.DYING) { vec3 playerDistance = hero.GetPosition() - mPosition; playerDistance.x = Math.Abs(playerDistance.x); playerDistance.z = Math.Abs(playerDistance.z); if (playerDistance.x < 1.0f && playerDistance.z < 1.0f) { hero.Damage(damage); state = EnemyStat.ATTACKING; model.AnimationSpeed = 0.03f; if (model.animSt.type != animType_LOL.ATTACK1) { model.StartAnimation(animType_LOL.ATTACK1); } } else { state = EnemyStat.CHASING; model.AnimationSpeed = 0.003f; if (model.animSt.type != animType_LOL.RUN) { model.StartAnimation(animType_LOL.RUN); } } if (state == EnemyStat.CHASING) { Move(maxDist, objects); } ChangeDirection(hero.GetPosition()); if (health <= 0) { state = EnemyStat.DYING; model.AnimationSpeed = 0.003f; if (model.animSt.type != animType_LOL.DEATH) { model.StartAnimation(animType_LOL.DEATH); } } } else { if (model.animSt.curr_frame == model.animSt.endframe) { dead = true; } } model.UpdateExportedAnimation(); //healthBar.Update(mPosition); } }
public void SetupHealthBar(EnemyStat eStat, Transform player) { enemyStat = eStat; enemyT = eStat.transform; playerT = player; nameText.text = eStat.characterName; gameObject.SetActive(true); }
protected void Damage(Transform enemy) { EnemyStat e = enemy.GetComponent <EnemyStat>(); if (e != null) { e.TakeDamage(damage); } }
public void Recover(EnemyStat stat) { switch (stat) { case EnemyStat.speed: enemy.speed = enemyTmp.speed; Debug.Log("복구" + enemy.speed + " " + enemyTmp.speed); break; } }
void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("Enemy")) { EnemyStat stat = collision.gameObject.GetComponent <EnemyStat>(); if (stat) { stat.TakeDamage(1); } } }
void Awake() { damage = 10.0f; attackRadius = 0.2f; canAttack = true; nextAttackTime = 0; enemyAttackTime = 0; rb = gameObject.GetComponent <Rigidbody2D>(); animation_manager = gameObject.GetComponent <AnimationManager>(); enemyStat = gameObject.GetComponent <EnemyStat>(); enemyMovement = gameObject.GetComponent <EnemyMovement>(); }
void OnTriggerEnter(Collider collider) { if (collider.transform.CompareTag("Enemy")) { EnemyStat stat = collider.transform.gameObject.GetComponent <EnemyStat>(); if (stat) { stat.TakeDamage(1); } Destroy(gameObject); } }
private void InitializeEnemyStats() { EnemyStats = new List <EnemyStat>(); EnemyStat stat; stat = new EnemyStat(); stat.MaxHealth = 100; stat.MoveSpeed = 4; stat.SightDistance = 300; stat.Ability = typeof(Regenaration); stat.Aggresive = false; EnemyStats.Add(stat); }
// Start is called before the first frame update void Start() { agent = GetComponent <NavMeshAgent>(); rb = GetComponent <Rigidbody>(); player = PlayerManager.Instance.gameObject; animationController = GetComponent <EnemyAnimationController>(); enemyStats = GetComponent <EnemyStat>(); enemyStats.InitCharacterStat(); UpdateHealthSlider(); _timeOfLastAttack = 0.1f; }
void OnTriggerEnter(Collider hit) { if (hit.tag.Equals("Enemy")) { if (target == null) { target = hit.gameObject.GetComponent <EnemyStat>(); } else { targets.Add(hit.gameObject.GetComponent <EnemyStat>()); } } }
protected override void Awake() { base.Awake(); ES = (EnemyStat)BaseStat; fieldOfView = GetComponent <FieldOfView>(); CA = GetComponent <CharacterAudios>(); moveAgent = GetComponent <MoveAgent>(); animator = GetComponent <Animator>(); audioPlayer = GetComponent <AudioSource>(); fireDistance = BulletCtrl._bulletMaxDistance; traceDistance = fieldOfView.viewRadius; // 추적 거리를 시야범위로 초기화 }
void Start() { agent = GetComponent <NavMeshAgent>(); movement = GetComponent <GroundEnemyMovement>(); attack = GetComponent <EnemyAttack>(); boxCollider = GetComponent <BoxCollider>(); anim = GetComponent <Animator>(); stat = GetComponent <EnemyStat>(); myTransform = transform; agent.autoBraking = false; rotStep = rotationSpeed * Time.deltaTime; GotoNextPoint(); }
protected override void Initialize() { //Get the list of points //GameObject[] patrolPoints = GameObject.FindGameObjectsWithTag ("Patrol Point"); //Get the target enemy(Player) //objTarget = GameObject.FindGameObjectsWithTag ("Target"); enemyStat = GetComponent <EnemyStat>(); enemyAttack = GetComponent <EnemyAttack>(); animator = GetComponent <Animator>(); objPlayer = GameObject.FindGameObjectWithTag("Player"); playerTransform = objPlayer.transform; ai = GetComponent <AstarAI>(); }
public void Damage(int dmgAmount) { enemyStat.currentHealth -= dmgAmount; EnemyStat.enemyHealthChange(enemyStat.currentHealth); if (enemyStat.currentHealth <= 0) { GameMaster.KillEnemy(this); Debug.Log("Enemy is dead"); } if (statusIndicator != null) { statusIndicator.SetHealth(enemyStat.currentHealth, enemyStat.MaxHP); } }
private void OnTriggerEnter(Collider other) { // 플레이어가 충돌했을 경우 if (other.tag.Equals(GameLibrary.String_Player)) { HitAndKnockBackPlayer(); } // 적이 충돌했을 경우 else if (other.tag.Equals(GameLibrary.String_Enemy)) { EnemyStat enemyStat = other.GetComponentInParent <EnemyStat>(); // 적에게 데미지 enemyStat.Hit(1); } }
//bool deleteIt = false; //int qDepth = 0; //SituationCUR sitCUR = new SituationCUR("NULL", -1, -1, -1, -1, new IntVector3(-1, -1, -1), false); //SituationAFT sitAFT = new SituationAFT("NULL", -1, -1, -1, -1, "NULL", -1, -1, false, false); //20190310 ////이속 버프 & 디버프 중첩 방지가 작동하는 지 알아보기 위한 임시 변수 //private SkillBaseStat sampleSkillTest; //private bool sampleSkillCoolTime; // Use this for initialization void Awake() { enemyController = transform.GetComponent <EnemyController>(); enemyStat = enemyController.enemyStat; _enemyAIEngine = enemyController.GET_enemyAIEngine; _unitBaseEngine = _enemyAIEngine._unitBaseEngine; middle_OF_Stage = GameObject.Find("Middle_OF_Stage").transform; behaveIndex = 0; ////이속 디버프 스킬을 기본으로 사용하도록 임시로 지정한다. //sampleSkillTest = IO_CSV.__Get_Searched_SkillBaseStat("00000003"); //sampleSkillCoolTime = true; }
private void OnTriggerEnter2D(Collider2D other) { // 플레이어가 충돌했을 경우 if (other.tag.Equals(GameLibrary.String_Player)) { // 지금은 데미지만 주겠음 GameManager.Instance.PlayerManager.Stat.Hit(1); } // 적이 충돌했을 경우 else if (other.tag.Equals(GameLibrary.String_Enemy)) { EnemyStat enemyStat = other.GetComponentInParent <EnemyStat>(); // 적에게 데미지 enemyStat.Hit(1); } }
private void OnTriggerEnter(Collider other) { // 적일 경우에만 데미지를 입힘 if (other.tag == m_enemyS) { EnemyStat enemyStat = other.GetComponentInParent <EnemyStat>(); enemyStat.Hit(m_bullet.Bundle.Stat.Damage); m_bullet.EndShoot(); } // 플레이어가 아니고 적이 아닐경우 else if (other.tag != m_playerS && other.tag != m_playerAttackS && other.tag != m_playerSkillS) { m_bullet.EndShoot(); } }
private void OnTriggerEnter2D(Collider2D other) { // 적일 경우에만 데미지를 입힘 if (other.tag == m_enemyS) { EnemyStat enemyStat = other.GetComponentInParent <EnemyStat>(); enemyStat.Hit(m_bullet.Bundle.Stat.Damage); m_bullet.EndShoot(); } // 적이 아니고 플레이어 관련 콜라이더가 아닐경우 else if (other.tag != m_playerS && other.tag != m_playerAttackS && other.tag != m_playerSkillS && other.tag != GameLibrary.String_Effect) { m_bullet.EndShoot(); } }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "Enemy") { if (collision.gameObject) { EnemyStat stat = collision.transform.GetComponent <EnemyStat>(); if (stat) { stat.AutoTargeted = false; stat.hp--; } } } Destroy(gameObject); }
// Update is called once per frame void Update() { EnemyStat stat = GetComponent <EnemyStat>(); if (stat) { MeshRenderer renderer = GetComponent <MeshRenderer>(); if (stat.AutoTargeted) { renderer.material.SetFloat("_Emission", 1); renderer.material.color = (float)(0.5 + Mathf.Sin(Time.deltaTime) * 0.5) * Color.white + baseColor; } else { renderer.material.SetFloat("_Emission", 0); renderer.material.color = baseColor; } } }
public Enemy(Vector2 pos, int id) : base(pos) { stats = Main.EnemyStats[id]; health = stats.MaxHealth; maxHealth = stats.MaxHealth; moveSpeed = stats.MoveSpeed; ability = (Ability)Activator.CreateInstance(stats.Ability); if (ability is Passive) { (ability as Passive).ActivatePassive(); } ability.Initialize(this); AbilityPower = 5; idleMovementSteps = new Queue <Direction>(); rand = Main.rand; this.id = id; idleMoveTimer = new TimeSpan(); }
public void _KillEnemy(EnemyStat _enemy) { // Let's play some sound //audioManager.PlaySound(_enemy.deathSoundName); // Gain some money // Money += _enemy.moneyDrop; // audioManager.PlaySound("Money"); // Add particles Transform _clone = Instantiate(_enemy.deathParticles, _enemy.transform.position, Quaternion.identity) as Transform; Destroy(_clone.gameObject, 5f); // Go camerashake cameraShake.Shake(_enemy.shakeAmt, _enemy.shakeLength); Destroy(_enemy.gameObject); }
// Use this for initialization void Start() { _enemyStat = gameObject.AddComponent ("EnemyStat") as EnemyStat; opponent = GameObject.FindGameObjectWithTag("Player"); // Temporary level; A character level should be the same as a stage level _enemyStat.setLevel (2); if (this.gameObject.name == _E01Name) { // enemy01 _enemyStat.initBalanced (); //healthBar.renderer.material.color = adelColor; } else if (this.gameObject.name == _E02Name) { // enemy02 _enemyStat.initTanker (); //healthBar.renderer.material.color = afriColor; } else { // unknown player character Debug.LogError (gameObject.name); } animator = GetComponent<Animator> (); }
public void Debuff(float coefficient, float time, EnemyStat stat) { time = time * 4; switch (stat) { case EnemyStat.speed: float speed = enemy.speed * coefficient / time; if (speed > enemyTmp.speed * 0.4f) { enemy.speed = speed; // Debug.Log("속도" + speed +" "+ enemyTmp.speed * 0.4f); } else { enemy.speed = enemyTmp.speed * 0.4f; // Debug.Log("속도" + enemy.speed + " " + enemyTmp.speed * 0.4f); } break; } }