Created
October 6, 2017 06:48
-
-
Save AndrewWeston9/6b2557c0abee587a47e4ac5165b2a121 to your computer and use it in GitHub Desktop.
PlayerState.cs Snippet: Resource system that tracks the amount of resource for the player and controls the gain and reduction in resource.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private bool inTrigger; | |
private string ResourceName; | |
private Vector3 ResourcePosition; | |
PlayerMove pmove; | |
//GameObject playerObject; | |
// Use this for initialization | |
void Start () { | |
resourceLevels.Add (0.1f); | |
resourceLevels.Add (0.1f); | |
resourceLevels.Add (0.1f); | |
OnChangeResourceLevels (resourceLevels); | |
inTrigger = false; | |
ResourceName = ""; | |
ResourcePosition = new Vector3 (); | |
pmove = gameObject.GetComponent<PlayerMove>(); | |
} | |
public void changeResource (int resourceType, float deltaResource) | |
{ | |
//if (!isServer) | |
//{ | |
// return; | |
// } | |
resourceLevels [resourceType] += deltaResource; | |
pmove.resourceLevelsPMove [resourceType] += deltaResource; | |
if (resourceLevels[resourceType] > 1.0f) | |
{ | |
resourceLevels[resourceType] = 1.0f; | |
pmove.resourceLevelsPMove [resourceType] = 1.0f; | |
} | |
resourceChanged = !resourceChanged; | |
Debug.Log ("Changed " + this); | |
} | |
public void takeResource() | |
{ | |
if (inTrigger == true && ResourceName == "WoodResourceBrick(Clone)") | |
{ | |
QuestManager.qManager.AddQItem("Harvest a block", 1); | |
//Debug.LogError ("In resource trigger range!!!!!!!!!!!!!!!!!!!!!!"); | |
changeResource (0, 0.05f); | |
OnChangeResources (resourceChanged); | |
//pmove = gameObject.GetComponent<PlayerMove> (); | |
inTrigger = false; | |
ResourceTakeMessage m = new ResourceTakeMessage (); | |
m.position = ResourcePosition; | |
m.amount = -1; | |
NetworkManager.singleton.client.Send (LevelMsgType.ResourceUpdate, m); | |
} | |
if (inTrigger == true && ResourceName == "DirtResourceBrick(Clone)") | |
{ | |
QuestManager.qManager.AddQItem("Harvest a block", 1); | |
//Debug.LogError ("In resource trigger range!!!!!!!!!!!!!!!!!!!!!!"); | |
changeResource (1, 0.05f); | |
OnChangeResources (resourceChanged); | |
//pmove = gameObject.GetComponent<PlayerMove> (); | |
inTrigger = false; | |
ResourceTakeMessage m = new ResourceTakeMessage (); | |
m.position = ResourcePosition; | |
m.amount = -1; | |
NetworkManager.singleton.client.Send (LevelMsgType.ResourceUpdate, m); | |
} | |
if (inTrigger == true && ResourceName == "CrystalResourceBrick(Clone)") | |
{ | |
QuestManager.qManager.AddQItem("Harvest a block", 1); | |
//Debug.LogError ("In resource trigger range!!!!!!!!!!!!!!!!!!!!!!"); | |
changeResource (2, 0.05f); | |
OnChangeResources (resourceChanged); | |
//pmove = gameObject.GetComponent<PlayerMove> (); | |
inTrigger = false; | |
ResourceTakeMessage m = new ResourceTakeMessage (); | |
m.position = ResourcePosition; | |
m.amount = -1; | |
NetworkManager.singleton.client.Send (LevelMsgType.ResourceUpdate, m); | |
} | |
} | |
public void expendResorce(int type, float amount) | |
{ | |
if (type == 2) { | |
changeResource (0, amount); | |
OnChangeResources (resourceChanged); | |
} | |
if (type == 3) { | |
changeResource (1, amount); | |
OnChangeResources (resourceChanged); | |
} | |
if (type == 4) { | |
changeResource (2, amount); | |
OnChangeResources (resourceChanged); | |
} | |
} | |
public float getResource(int type) | |
{ | |
if (type == 2) { | |
return resourceLevels [0]; | |
} | |
if (type == 3) { | |
return resourceLevels [1]; | |
} | |
if (type == 4) { | |
return resourceLevels [2]; | |
} | |
return 0.0f; | |
} | |
void OnTriggerEnter(Collider other) | |
{ | |
if(other.gameObject.tag == "Resource") | |
{ | |
inTrigger = true; | |
ResourceName = other.name; | |
//ResourcePosition = other.gameObject.transform.position; | |
ResourcePosition = other.transform.position; | |
//playerObject = other.transform.parent.gameObject; | |
} | |
} | |
void OnTriggerStay(Collider other) | |
{ | |
if(other.gameObject.tag == "Resource") | |
{ | |
inTrigger = true; | |
ResourceName = other.name; | |
//ResourcePosition = other.gameObject.transform.position; | |
ResourcePosition = other.transform.position; | |
//playerObject = other.transform.parent.gameObject; | |
} | |
} | |
void OnTriggerExit(Collider other) | |
{ | |
if (other.tag == "Resource") | |
{ | |
inTrigger = false; | |
ResourceName = ""; | |
ResourcePosition = new Vector3(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment