private void sendHelp(Transform drone, Transform attacker, Transform victim) { ShieldDrone d = drone.GetComponent <ShieldDrone>(); if (d.GetComponent <ShieldingTarget>() == null) { d.gameObject.AddComponent <ShieldingTarget>(); } ShieldingTarget target = d.GetComponent <ShieldingTarget>(); target.attacker = attacker; target.defender = victim; target.freeFormation = freeFormation; target.home_formation = this; remove_drone(d); DirectShieldFormation directShield = active_shields.Find(f => f.follow.Equals(victim)); if (directShield == null) { directShield = Instantiate(direct_shield, victim.position, Quaternion.identity); directShield.transform.SetParent(transform.parent); active_shields.Add(directShield); directShield.follow = victim; } freeFormation.move_drone(d, directShield); }
public void reassignShield(ShieldDrone drone) { ShieldingTarget target = drone.GetComponent <ShieldingTarget>(); drone.SetShieldPower(false); cancelHelp(target.attacker, target.defender); if (pending_attackers.Count == 0) { target.freeFormation.move_drone(drone, target.home_formation); } else { helpPending(drone.transform); } }