コード例 #1
0
    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());
        }
    }
コード例 #2
0
 void Update()
 {
     if (target == null && targets.Count > 0)
     {
         target = targets[0];
     }
 }
コード例 #3
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>());
            }
        }
    }
コード例 #4
0
 void Start()
 {
     attackRange = 0.4f;
     enemyStat   = gameObject.GetComponent <EnemyStat>();
     movement    = gameObject.GetComponent <EnemyMovement>();
     animator    = gameObject.GetComponent <Animator>();
 }
コード例 #5
0
    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> ();
    }
コード例 #6
0
ファイル: Enemy.cs プロジェクト: XGoDofWaRX/FPS-OpenGL-CSharp
        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);
        }
コード例 #7
0
ファイル: Enemy.cs プロジェクト: XGoDofWaRX/FPS-OpenGL-CSharp
        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);
            }
        }
コード例 #8
0
 public void SetupHealthBar(EnemyStat eStat, Transform player)
 {
     enemyStat     = eStat;
     enemyT        = eStat.transform;
     playerT       = player;
     nameText.text = eStat.characterName;
     gameObject.SetActive(true);
 }
コード例 #9
0
    protected void Damage(Transform enemy)
    {
        EnemyStat e = enemy.GetComponent <EnemyStat>();

        if (e != null)
        {
            e.TakeDamage(damage);
        }
    }
コード例 #10
0
 public void Recover(EnemyStat stat)
 {
     switch (stat)
     {
     case EnemyStat.speed:
         enemy.speed = enemyTmp.speed;
         Debug.Log("복구" + enemy.speed + "   " + enemyTmp.speed);
         break;
     }
 }
コード例 #11
0
ファイル: PlayerControl.cs プロジェクト: Holocrons/WaveLenght
 void OnCollisionEnter(Collision collision)
 {
     if (collision.gameObject.CompareTag("Enemy"))
     {
         EnemyStat stat = collision.gameObject.GetComponent <EnemyStat>();
         if (stat)
         {
             stat.TakeDamage(1);
         }
     }
 }
コード例 #12
0
 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>();
 }
コード例 #13
0
 void OnTriggerEnter(Collider collider)
 {
     if (collider.transform.CompareTag("Enemy"))
     {
         EnemyStat stat = collider.transform.gameObject.GetComponent <EnemyStat>();
         if (stat)
         {
             stat.TakeDamage(1);
         }
         Destroy(gameObject);
     }
 }
コード例 #14
0
        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);
        }
コード例 #15
0
ファイル: EnemyController.cs プロジェクト: saifuzie/Team-2
    // 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;
    }
コード例 #16
0
 void OnTriggerEnter(Collider hit)
 {
     if (hit.tag.Equals("Enemy"))
     {
         if (target == null)
         {
             target = hit.gameObject.GetComponent <EnemyStat>();
         }
         else
         {
             targets.Add(hit.gameObject.GetComponent <EnemyStat>());
         }
     }
 }
コード例 #17
0
    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;         // 추적 거리를 시야범위로 초기화
    }
コード例 #18
0
    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();
    }
コード例 #19
0
    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>();
    }
コード例 #20
0
    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);
        }
    }
コード例 #21
0
    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);
        }
    }
コード例 #22
0
    //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;
    }
コード例 #23
0
    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);
        }
    }
コード例 #24
0
ファイル: PlayerBullet3D.cs プロジェクト: HUCK0608/BlueCube
    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();
        }
    }
コード例 #25
0
ファイル: PlayerBullet2D.cs プロジェクト: HUCK0608/BlueCube
    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();
        }
    }
コード例 #26
0
    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);
    }
コード例 #27
0
    // 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;
            }
        }
    }
コード例 #28
0
 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();
 }
コード例 #29
0
ファイル: GameMaster.cs プロジェクト: farizakbarov/thuglife
	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);
	}
コード例 #30
0
ファイル: Enemy.cs プロジェクト: suhs/penguin-slaps
    // 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> ();
    }
コード例 #31
0
    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;
        }
    }