Пример #1
0
    public void Initialize(ScrapBehaviour target, ScrapBehaviour attacker, float damage)
    {
        _target = target;
        _damage = damage;

        if (UsesTeamMaterial)
        {
            GetComponentInChildren <SpriteRenderer>().material = attacker.Faction.UnitMat;
        }
        else if (UsesTeamColor)
        {
            GetComponentInChildren <SpriteRenderer>().color = attacker.Faction.Color;
        }

        // Team color the trail renderer if there is one
        TrailRenderer trailRenderer = GetComponent <TrailRenderer>();

        if (trailRenderer != null)
        {
            Gradient colorGradient = trailRenderer.colorGradient;
            colorGradient.SetKeys(
                new[] { new GradientColorKey(attacker.Faction.Color, 0.0f), new GradientColorKey(attacker.Faction.Color, 1.0f) },
                colorGradient.alphaKeys
                );
            trailRenderer.colorGradient = colorGradient;
        }

        OnInitialize();
    }
Пример #2
0
    public void Initialize(Camera camera, Player player, ScrapBehaviour scrapBehaviour)
    {
        _camera = camera;

        _player = player;

        _target = scrapBehaviour;
    }
    public void Initialize(ScrapBehaviour target, ScrapBehaviour attacker, float damage)
    {
        _target   = target;
        _attacker = attacker;
        _damage   = damage;

        transform.SetParent(attacker.transform);

        StartCoroutine(SpawnProjectiles());
    }
Пример #4
0
    private void OnTriggerExit2D(Collider2D other)
    {
        ScrapBehaviour scrap = other.GetComponent <ScrapBehaviour>();

        if (scrap != null)
        {
            _objectsInRange.Remove(scrap);
            if (OnObjectExit != null)
            {
                OnObjectExit(scrap);
            }
        }
    }
Пример #5
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        ScrapBehaviour scrap = other.GetComponent <ScrapBehaviour>();

        if (scrap != null)
        {
            _objectsInRange.Add(scrap);
            if (OnObjectEnter != null)
            {
                OnObjectEnter(scrap);
            }
        }
    }
Пример #6
0
    public ScrapBehaviour GetClosestMatch(Predicate <ScrapBehaviour> criteriaCheck)
    {
        ScrapBehaviour closestMatch = null;
        float          curClosest   = float.MaxValue;

        foreach (ScrapBehaviour scrapBehaviour in _objectsInRange)
        {
            if (!criteriaCheck(scrapBehaviour))
            {
                continue;
            }

            float distance = Vector2.Distance(transform.position, scrapBehaviour.transform.position);
            if (distance < curClosest)
            {
                closestMatch = scrapBehaviour;
                curClosest   = distance;
            }
        }

        return(closestMatch);
    }
        private void OnDrawGizmos()
        {
            if (Player == null)
            {
                return;
            }

            ScrapBehaviour repair = Player.GetRepairTarget();

            if (repair != null)
            {
                Gizmos.color = Color.green;
                Gizmos.DrawSphere(repair.transform.position, 0.2f);
            }

            ScrapBehaviour salvage = Player.GetSalvageTarget();

            if (salvage != null)
            {
                Gizmos.color = Color.yellow;
                Gizmos.DrawSphere(salvage.transform.position, 0.18f);
            }
        }
    protected override void Attack(ScrapBehaviour target)
    {
        IProjectile proj = GameObject.Instantiate(Projectile, barrel.transform.position, Quaternion.identity).GetComponent <IProjectile>();

        proj.Initialize(target, Construct, Damage);
    }
 public ScrapObjectDiedEvent(ScrapBehaviour scrapObject)
 {
     ScrapObject = scrapObject;
 }
Пример #10
0
 protected override void Attack(ScrapBehaviour target)
 {
     target.TakeDamage(Damage);
 }
Пример #11
0
 private bool ObjectAffectsCohesion(ScrapBehaviour behaviour)
 {
     return(behaviour != Owner && !Owner.Faction.IsEnemy(behaviour.Faction));
 }
Пример #12
0
 private bool ObjectAffectsSeparation(ScrapBehaviour behaviour)
 {
     return(!Owner.Faction.IsEnemy(behaviour.Faction));
 }
Пример #13
0
 public bool IsVisible(ScrapBehaviour obj)
 {
     return(_objectsInRange.Contains(obj));
 }