How do I CHANGE an int from one script by doing GetComponent from another?

I wrote this script, but the PlayerHealthGet just changes itself, not the int I’ve ordered it to “find”.

using UnityEngine;
using System.Collections;

public class Attacking : MonoBehaviour {

	// Gives the monster something to attack
	private GameObject Target;

	// Basic properties
	public int Damage;
	public int Health;
	public float Speed;

	// Basic distance floats
	public float GeneralDistance;
	public float AttackDistance;
	public float GiveUpDistance;
	public float AttackRange;

	// Advanced distance floats
	private float Distance;

	// Grab player properties
	private GameObject PlayerGet;
	private int PlayerHealthGet;

	// Grab human follower properties
	private GameObject HumanFollowerGet;
	private int HumanFollowerHealthGet;
	private bool HumanFollowerStateGet;

	// Grab alien follower properties
	private GameObject AlienFollowerGet;
	private int AlienFollowerHealthGet;
	private bool AlienFollowerStateGet;

	// Decides whether or not the monster can attack
	private bool CanAttack;

	// Sets up the state machine where the monster decides what it wants to do
	private enum AttackOrGiveUp {Attack, GiveUp};
	private AttackOrGiveUp AttackState;

	void Start () {
		// Gives the monsters a target to start with
		Target = PlayerGet;

		// Gives "Grab player properties" code
		PlayerGet = GameObject.Find ("Player");
		PlayerHealthGet = PlayerGet.GetComponent <Player> ().Health;

		// Gives "Grab human follower properties" code
		HumanFollowerGet = GameObject.Find ("Human Follower");
		HumanFollowerHealthGet = HumanFollowerGet.GetComponent <HumanFollower> ().Health;
		HumanFollowerStateGet = HumanFollowerGet.GetComponent <HumanFollower> ().Following;

		// Allows the monster to deal damage as soon as the game is started
		CanAttack = true;
	}

	void Update () {
		// If the human follower is following the player
		if (HumanFollowerStateGet == true)
		{
			// Make the follower to attack the human follower
			Target = HumanFollowerGet;
		}
		// If the alien follower is following the player
		if (AlienFollowerStateGet == true)
		{
			// Make the follower to attack the alien follower
			Target = AlienFollowerGet;
		}
		// If the player has no followers
		if (Target == null)
		{
			// The monster's target will once again become the player
			Target = PlayerGet;
		}

		// Gives "Advanced distance floats" code
		Distance = Vector2.Distance (PlayerGet.rigidbody2D.transform.position, rigidbody2D.transform.position);

		// If the monster sees the player in range
		if (Distance <= AttackDistance)
		{
			// The monster will attack the player
			AttackState = AttackOrGiveUp.Attack;
		}

		// If the monster sees neither the player or follower
		if (Distance >= GiveUpDistance)
		{
			// The monster will give up on attacking the player and the follower
			AttackState = AttackOrGiveUp.GiveUp;
		}
		// If the monster is following the follower
		if (AttackState == AttackOrGiveUp.Attack)
		{
			// If the follower's x value is greater than the sum of the monster's x value and the general distance set
			if (Target.rigidbody2D.transform.position.x > rigidbody2D.transform.position.x + GeneralDistance)
			{
				// Move the monster to the right to catch up with the follower
				rigidbody2D.transform.position += Vector3.right * Speed * Time.deltaTime;
			}
			// If the follower's x value is less than the difference between the monster's x value and the general distance set
			if (Target.rigidbody2D.transform.position.x < rigidbody2D.transform.position.x - GeneralDistance)
			{
				// Move the monster to the left to catch up with the follower
				rigidbody2D.transform.position += Vector3.left * Speed * Time.deltaTime;
			}
			// If the follower's y value is greater than the sum of the monster's y value and the general distance set
			if (Target.rigidbody2D.transform.position.y > rigidbody2D.transform.position.y + GeneralDistance)
			{
				// Move the monster up to catch up with the follower
				rigidbody2D.transform.position += Vector3.up * Speed * Time.deltaTime;
			}
			// If the follower's y value is less than the difference between the monstqer's y value and the general distance set
			if (Target.rigidbody2D.transform.position.y  < rigidbody2D.transform.position.y - GeneralDistance)
			{
				// Move the monster down to catch up with the follower
				rigidbody2D.transform.position += Vector3.down * Speed * Time.deltaTime;
			}

			// If the target is in the range of an attack and the monster hasn't attacked in the past second
			if (Distance <= AttackRange && CanAttack == true)
			{	
				// Do everything mentioned in the Attack function
				Attack ();
			}
		}
	}


	void Die () {
	}

	void Attack () {
		// Change the current health of the target to the difference between the current health and the damage set
		PlayerHealthGet -= Damage;

		// Start the coroutine that delays the attack
		StartCoroutine (AttackDelay ());
	}

	IEnumerator AttackDelay () {
		// The monster cannot attack
		CanAttack = false;

		// Wait one second
		yield return new WaitForSeconds (1);

		// The monster can attack again
		CanAttack = true;
	}
}

You clearly dont understand the unity component/object model, let me try to explain it to you…

THIS line, loads the health value from the gameObject called “Player” into a local field in THIS game object called PlayerHealthGet

PlayerGet = GameObject.Find ("Player");
PlayerHealthGet = PlayerGet.GetComponent <Player> ().Health;

THIS modifies the *local field, NOT the value on the game object called Player

  PlayerHealthGet -= Damage;

You never set the field on the Player game object. So, it never changes.