void Start() { scrpt = transform.parent.GetComponent<DeliberativeFireFighter>(); lineRenderer.material = mat; lineRenderer.SetColors(c1, c2); lineRenderer.useWorldSpace = true; lineRenderer.SetWidth(0.13F, 0.13F); lineRenderer.SetVertexCount(lengthOfLineRenderer); }
void mergeDiscoveredLists(DeliberativeFireFighter me, DeliberativeFireFighter other) { foreach(Vector3 v in me.discoveredNodes) { if(!other.discoveredNodes.Contains(v)) { other.discoveredNodes.Add(v); } } }
public void Start() { //Get a reference to the Seeker component we added earlier seeker = GetComponent<Seeker>(); //OnPathComplete will be called every time a path is returned to this seeker seeker.pathCallback += OnPathComplete; //Generating random position genCompRandomPos(); //Starting path from transform.position to targetPosition seeker.StartPath(transform.position, targetPosition); hub = GameObject.FindWithTag("Hub").GetComponent<Hub>(); gameSpeed = hub.gameSpeed; agent = GetComponent<DeliberativeFireFighter>(); }
void checkFireRefill(DeliberativeFireFighter newParticipant) { //DO WE NEED WATER? if (needtoGetWater(newParticipant.currentWater)) { fireParticipants.Add(newParticipant); //GRAB ONE AND ORDER HIM TO GET WATER DeliberativeFireFighter scrpt = sendFigtherWithLessWaterToGetWater(); if (scrpt == null) { if (fire != null) { if(needHelp() && sentHelp < 1) { redistributeWater(newParticipant); if(newParticipant.currentWater < 0.1 * newParticipant.MaxWater) { newParticipant.goGetWater(); } else { sentHelp++; newParticipant.setState(STATE.RECRUIT_A_HELPER, transform.position); } } else { redistributeWater(newParticipant); if (newParticipant.currentWater < 0.1 * newParticipant.MaxWater) newParticipant.goGetWater(); else newParticipant.helpWithFire(fire); } } return; } else if (scrpt.helping != newParticipant.helping) { newParticipant.helpWithFire(fire); return; } fireParticipants.Remove(scrpt); scrpt.goGetWater(); } else { if (needHelp()) { fireParticipants.Add(newParticipant); newParticipant.helpWithFire(fire); } } }
/***************************************************************/ void redistributeWater(DeliberativeFireFighter figther) { int valueToFill = (MaxWater - currentWater); if(valueToFill >= figther.currentWater) { currentWater += figther.currentWater; figther.currentWater -= figther.currentWater; } else if(valueToFill < figther.currentWater) { currentWater += valueToFill; figther.currentWater-= valueToFill; } foreach(DeliberativeFireFighter scrpt in fireParticipants) { valueToFill = scrpt.MaxWater - scrpt.currentWater; if(valueToFill >= figther.currentWater) { scrpt.currentWater += figther.currentWater; figther.currentWater -= figther.currentWater; } else if(valueToFill < figther.currentWater) { scrpt.currentWater += valueToFill; figther.currentWater-= valueToFill; } } }