//******************************************* //BEGIN INTERFACE METHODS //******************************************* public bool CheckForFollowAllyCommand(GameObject hitObject) { WorldObject hitWorldObject = hitObject.GetComponentInParent <WorldObject> (); if (hitWorldObject && WorkManager.AreWorldObjectsOnSameTeam(hitWorldObject, worldObject) == true) { SecondaryInteractGameObjectAtDistance(hitObject, 1.2f); return(true); } return(false); }
protected virtual void OnTriggerEnter(Collider encounteredCollider) { // if (encounteredCollider.gameObject.tag == "Barrier"){ // Debug.Log("bounce!!"); // MoveTowardsBarrierCenter(encounteredCollider.transform.position); // return; // } Target tar = encounteredCollider.gameObject.GetComponent <Target> (); if (tar) { WorldObject colliderWO = encounteredCollider.gameObject.GetComponentInParent <WorldObject> (); if (colliderWO && WorkManager.AreWorldObjectsOnSameTeam(worldObject, colliderWO) == false) { ImpactEffect(); InflictDamage(colliderWO, paramManager.AttackDamage); Spawn colliderSpawn = colliderWO.GetComponent <Spawn> (); if (colliderSpawn == null) { InflictDamage(this.worldObject, this.paramManager.MaxHitPoints); } } } }
public virtual void MouseClickRight(GameObject hitObject, Vector3 hitPoint) { unit.mover.EnableMoveInput(); WorldObject hitWorldObject = hitObject.GetComponentInParent <WorldObject> (); if (unit.hatcheryInteracter) { if (unit.hatcheryInteracter.IssueInteractCommand(hitWorldObject)) { AudioManager.Instance.Play("AllyInteractCommand"); unit.SetUnitState(new HatcheryInteractState(unit, true)); if (hitWorldObject) { hitWorldObject.TargetedByPlayer(); } return; } } if (unit.builder) { if (unit.builder.CheckToCancelBuildingPlacement()) { return; } if (unit.builder.CheckToGiveResumeBuildOrder(hitObject)) { unit.SetUnitState(new BuildState(unit, true)); if (hitWorldObject) { hitWorldObject.TargetedByPlayer(); } return; } } if (unit.attacker) { Collider attackCol = WorkManager.FindEnemyTargetCollider(hitObject, unit.worldObject); if (attackCol) { AudioManager.Instance.Play("AttackCommand", unit.audioSource); if (hitWorldObject) { hitWorldObject.TargetedByPlayer(); } unit.SetUnitState(new AttackState(unit, true)); unit.SetColliderFocus(attackCol); return; } } if (unit.reviver) { if (unit.reviver.IssueReviveCommand(hitObject)) { AudioManager.Instance.Play("AllyInteractCommand"); if (hitWorldObject) { hitWorldObject.TargetedByPlayer(); } unit.SetUnitState(new ReviveState(unit, true)); return; } } if (unit.mover) { if (hitWorldObject && WorkManager.AreWorldObjectsOnSameTeam(hitWorldObject, unit.worldObject) == true) { AudioManager.Instance.Play("AllyInteractCommand"); unit.mover.ClearMovement(); //unit.mover.SecondaryInteractGameObjectAtDistance (hitObject, 1.2f); unit.mover.PrimaryInteractGameObjectAtDistance(hitObject, 1.2f); unit.SetUnitState(new MoveState(unit, true)); return; } if (hitWorldObject == null) { //AudioManager.Instance.Play("MoveCommand"); unit.mover.ClearMovement(); unit.player.groupFormationManager.DetermineFormationGroup(null, hitPoint); unit.SetUnitState(new MoveState(unit, true)); return; } } }