write a C# script similar to this one: using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class LivesCounter : MonoBehaviour
{
    public GameObject healthIconPrefab; // The prefab for the health icon
    public Transform container; // The parent transform for the health icons
    public Vector3 iconOffset; // The offset between each health icon

    private Player player; // Reference to the player script
    private List<GameObject> healthIcons = new List<GameObject>(); // List to store the health icon game objects

    private void Start()
    {
        player = FindObjectOfType<Player>(); // Find the player script in the scene

        // Create the initial health icons based on the player’s max health
        for (int i = 0; i < player.maxHealth; i++)
        {
            CreateHealthIcon();
        }
    }

    private void Update()
    {
        // Update the health icons based on the player’s current health
        for (int i = 0; i < healthIcons.Count; i++)
        {
            if (i < player.currentHealth)
            {
                healthIcons[i].SetActive(true); // Set the health icon to active if there is remaining health
            }
            else
            {
                healthIcons[i].SetActive(false); // Set the health icon to inactive if there is no remaining health
            }
        }
    }

    private void CreateHealthIcon()
    {
        GameObject healthIcon = Instantiate(healthIconPrefab, container); // Instantiate the health icon prefab
        healthIcon.transform.localPosition = healthIcons.Count * iconOffset; // Set the position based on the number of health icons

        healthIcons.Add(healthIcon); // Add the health icon to the list
    }
}
that makes it so instead of displaying hearts, it displays the amount of remaining armor hits. Here the script that references remaining armor hits: using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Player : MonoBehaviour
{
    public float speed = 5f; // Speed of character movement
    public int maxHealth = 3; // Maximum player health
    public int currentHealth; // Current player health
    public int maxArmorHits = 3; // Maximum armor hits
    public int remainingArmorHits; // Remaining armor hits

    private Animator anim;
    private bool isInvincible = false; // Flag to track invincibility state
    private float invincibleTimer = 2f; // Duration of invincibility in seconds

    public ScoreCounter scoreCounter;

    private void Start()
    {
        anim = GetComponent<Animator>();
        currentHealth = maxHealth; // Set the initial health to maxHealth value
        //remainingArmorHits = maxArmorHits; // Set the initial remaining armor hits to maxArmorHits value

        StartCoroutine(StartInvincibility());
    }

    private void Update()
    {
        // Move character based on input axes
        float horizontalInput = Input.GetAxis("Horizontal");
        float verticalInput = Input.GetAxis("Vertical");

        // Calculate movement direction
        Vector2 movement = new Vector2(horizontalInput, verticalInput) * speed * Time.deltaTime;

        // Apply movement to the character’s position
        transform.Translate(movement);

        anim.SetFloat("moveX", movement.x);
        anim.SetFloat("moveY", movement.y);
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        // Check if the player collides with an enemy or boss and is not invincible
        if ((collision.gameObject.CompareTag("Enemy") || collision.gameObject.CompareTag("Boss")) && !isInvincible)
        {
            if (remainingArmorHits > 0)
            {
                remainingArmorHits--; // Deduct 1 armor hit
                Debug.Log("Armor absorbed damage! Remaining Armor Hits: " + remainingArmorHits);
            }
            else
            {
                TakeDamage(1); // Deduct 1 health point
                Debug.Log("Player took damage! Remaining Health: " + currentHealth);

                if (currentHealth <= 0)
                {
                    ResetScene(); // Reset the scene if health reaches 0
                }
                else
                {
                    StartCoroutine(StartInvincibility()); // Start the invincibility timer
                }
            }
        }

        // Check if the player collides with a health object
        if (collision.gameObject.tag == "Health")
        {
            AddHealth(1); // Increase health by 1
            Destroy(collision.gameObject); // Destroy the health object
        }

        // Check if the player collides with an armor object
        if (collision.gameObject.tag == "Armor")
        {
            ActivateArmor(); // Activate the armor effect
            Destroy(collision.gameObject); // Destroy the armor object
        }

        // Check if the player collides with the bomb
        if (collision.gameObject.CompareTag("Bomb"))
        {
            Bomb bomb = collision.gameObject.GetComponent<Bomb>();

            bomb.Explode(); // Trigger bomb explosion on the player
        }

        // Check if the player collides with the laser
        if (collision.gameObject.CompareTag("Laser"))
        {
            TakeDamage(3); // Deduct 3 health points
        }
    }

    public void TakeDamage(int amount)
    {
        currentHealth -= amount; // Deduct the specified amount from the current health

        if (currentHealth <= 0)
        {
            ResetScene(); // Reset the scene if health reaches 0
            scoreCounter.ResetScore();
        }
    }

    public void AddHealth(int amount)
    {
        currentHealth += amount; // Increase the current health by the specified amount
        currentHealth = Mathf.Min(currentHealth, maxHealth); // Ensure current health doesn’t exceed max health
    }

    public void ActivateArmor()
    {
        remainingArmorHits = maxArmorHits; // Reset the remaining armor hits to maxArmorHits value
        Debug.Log("Armor activated! Remaining Armor Hits: " + remainingArmorHits);
    }

    private void ResetScene()
    {
        SceneManager.LoadScene("Level1");
    }

    private IEnumerator StartInvincibility()
    {
        isInvincible = true; // Set the invincibility flag to true

        yield return new WaitForSeconds(invincibleTimer); // Wait for the specified duration

        isInvincible = false; // Set the invincibility flag back to false
    }
}