public void UpdateStatus() //waitingForSkill, poison, sleep, etc. { speedMult = 1; float aux = 0; for (int i = 0; i < statusArray.Length; ++i) { statusArray[i] = false; } Status[] status = this.GetComponentsInChildren <Status>(); foreach (Status st in status) { if (!st.isDestroyed()) { statusArray[st.getStatus()] = true; if (st.getStatus() == Constants.crippled) { aux = Mathf.Max(aux, st.getParameter(Constants.effectiveness)); } } } speedMult -= aux; bodyRenderer.setInvisible(statusArray[Constants.invisible]); canMove = !statusArray[Constants.controlled]; if (statusArray[Constants.quake]) { cameraPosition.setQuake(true); } else { cameraPosition.setQuake(false); } }