Exemplo n.º 1
0
        public void SpawnSelf(EnemyData enemy_data, Transform parent_transform)
        {
            CharacterData character_data = new CharacterData();

            character_data.name          = enemy_data.enemyType.ToString();
            character_data.moveSpeed     = enemy_data.moveSpeed;
            character_data.jumpInitForce = enemy_data.jumpInitForce;
            character_data.maxJumpCnt    = enemy_data.maxJumpCnt;
            character_data.atk           = enemy_data.fire_atk;
            character_data.hp            = enemy_data.hp;

            if (damageArea != null)
            {
                damageArea.Reset(enemy_data.hit_atk, DamageArea.DamageGroup.Enemy);
            }

            Reset(character_data);
            if (muzzle_ != null)
            {
                muzzle_.Reset();
            }

            Clear();
            // Faces left
            SetFaceRight(false, true /* force set */);
            transform.parent        = parent_transform;
            transform.localPosition = new Vector2(
                // the center x axis of a unit length from (x to x + 1).
                MapValue.RealValue(enemy_data.spawnPosition.x + enemy_data.spawnPosition.x + 1) * 0.5f,
                MapValue.RealValue(enemy_data.spawnPosition.y));
            transform.localScale = Vector3.one;

            is_action_  = false;
            is_visible_ = false;

            EventPool.Instance.Emit(Events.OnEnemyBorn, this);
        }