public override void Attacked(Transform attacker) //blev attackerad av någon { base.Attacked(attacker); if (attacker.GetComponent <AIBase>().GetNrAttackers() > nrAcceptedAttackersOnTarget) //pallar inte bry mig om den redan har massa targets { //har target dock väldigt få attackers på sig så kan jag oxå stanna return; } if (target != null && targetBase != null && targetBase.GetNrAttackers() < nrAcceptedAttackersOnTarget) //det target jag har nu är nog inte så fel { return; } if (state != UnitState.AttackingUnit && state != UnitState.Moving && attacker != null) { bool validTarget = true; for (int i = 0; i < friendlyLayers.Count; i++) //kolla så att man inte råkar göra en friendly till target { if (LayerMask.LayerToName(attacker.gameObject.layer) == friendlyLayers[i]) { validTarget = false; break; } } if (attacker.gameObject.layer == thisTransform.gameObject.layer) { validTarget = false; } if (validTarget == true) { if (target == null || !isUnitAttackingMe(target)) //attackera hellre det targetet som attackerar mig än det som inte gör de { NewTarget(attacker); } else { Transform temp = ClosestTransform(target, attacker); //ta den som är närmst NewTarget(temp); } } } }