public void OnStart( int playerId ) { mObjectId = playerId; moveController = GetComponent<PlayerMoveController>(); fireController = GetComponent<PlayerFireController>(); chargeController = GetComponent<PlayerChargeTracker>(); }
public void UpdateAttack() { float distanceTo = 0f; GameObject attackObj = GameController.GetClosestAttackableObject(transform.position, ref distanceTo); if (!attackObj) { SetAttackingState(false); return; } else if (distanceTo <= m_MonsterAttackDistance) { SetAttackingState(true); PlayerTeamObjectiveObject objective = attackObj.GetComponent <PlayerTeamObjectiveObject>(); PlayerChargeTracker playerCharge = attackObj.GetComponent <PlayerChargeTracker>(); if (objective) { objective.TakeDamage(Vector3.Normalize(objective.transform.position - transform.position), m_MonsterAttackDamagePerSec * Time.deltaTime); } else if (playerCharge) { playerCharge.TakeDamage(Vector3.Normalize(playerCharge.transform.position - transform.position), m_MonsterAttackDamagePerSec * Time.deltaTime); } } }
public void OnTriggerStay(Collider other) { if (!m_IsCharged) { return; } PlayerChargeTracker charger = other.GetComponent <PlayerChargeTracker>(); if (charger && !charger.IsMaxed()) { charger.RefillCharge(); AbsorbCharge(); } }