private void ShowInfo(InteractionEntity newEntity)
    {
        if (_isHidden)
        {
            return;
        }

        if (newEntity != null)
        {
            if (_lastEntity != newEntity)
            {
                ChangeTextAlpha(1f);
                _lastEntity = newEntity;
                _text.text  = newEntity.name;
                _offset     = newEntity.InfoPositionOffset;
            }

            _rectTransform.anchoredPosition = _playerCamera.WorldToScreenPoint(newEntity.transform.position + _offset);

            return;
        }

        else if (_lastEntity != null && newEntity == null)
        {
            ChangeTextAlpha(0f);
            StartCoroutine(PositionDelay(_lastEntity.transform));
            _lastEntity = null;
        }
    }
Exemple #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            InteractionEntity interactionEntity = db.Interactions.Find(id);

            db.Interactions.Remove(interactionEntity);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #3
0
    public void Interact(InteractionEntity interactionEntity)
    {
        if (!(interactionEntity is Rocket))
        {
            DropSparePart();
        }

        CurrentBehaviour          = Behaviour.Interact;
        _currentInteractionEntity = interactionEntity;
    }
Exemple #4
0
 public ActionResult Edit([Bind(Include = "ID,Code,ServiceID,ChannelTypeID,CurrentOutcomeCodeID,Comments,CreatedDate,UpdatedDate,IsActive,IsDeleted")] InteractionEntity interactionEntity)
 {
     if (ModelState.IsValid)
     {
         db.Entry(interactionEntity).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ChannelTypeID        = new SelectList(db.ChannelTypes, "ID", "Name", interactionEntity.ChannelTypeID);
     ViewBag.CurrentOutcomeCodeID = new SelectList(db.CurrentOutcomeCode, "ID", "Name", interactionEntity.CurrentOutcomeCodeID);
     ViewBag.ServiceID            = new SelectList(db.Services, "ID", "Code", interactionEntity.ServiceID);
     return(View(interactionEntity));
 }
Exemple #5
0
        // GET: Interaction/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            InteractionEntity interactionEntity = db.Interactions.Find(id);

            if (interactionEntity == null)
            {
                return(HttpNotFound());
            }
            return(View(interactionEntity));
        }
Exemple #6
0
        // GET: Interaction/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            InteractionEntity interactionEntity = db.Interactions.Find(id);

            if (interactionEntity == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ChannelTypeID        = new SelectList(db.ChannelTypes, "ID", "Name", interactionEntity.ChannelTypeID);
            ViewBag.CurrentOutcomeCodeID = new SelectList(db.CurrentOutcomeCode, "ID", "Name", interactionEntity.CurrentOutcomeCodeID);
            ViewBag.ServiceID            = new SelectList(db.Services, "ID", "Code", interactionEntity.ServiceID);
            return(View(interactionEntity));
        }
Exemple #7
0
    public void OnSceneGUI()
    {
        Handles.color = Color.yellow;

        InteractionEntity interactionEntity = (InteractionEntity)target;

        interactionEntity.InteractPoint = Handles.FreeMoveHandle
                                          (
            (Vector2)interactionEntity.transform.position + interactionEntity.InteractPoint, Quaternion.identity,
            0.2f * HandleUtility.GetHandleSize(interactionEntity.transform.position),
            Vector3.zero,
            Handles.ConeHandleCap
                                          ) - interactionEntity.transform.position;

        if (GUI.changed)
        {
            Undo.RecordObject(target, "Updated Sorting Offset");
            EditorUtility.SetDirty(target);
        }
    }
    private void Highlight(InteractionEntity interactionEntity)
    {
        if (_isHidden)
        {
            return;
        }

        if (_lastEntity != interactionEntity && interactionEntity != null)
        {
            ChangeScaleAndAlpha(1, 1.3f);
            _lastEntity = interactionEntity;
            return;
        }

        else if (_lastEntity != null && interactionEntity == null)
        {
            ChangeScaleAndAlpha(0.25f, 1f);
            _lastEntity = null;
        }
    }
Exemple #9
0
    public void ChooseFriendUnitToInteract()
    {
        if (InteractionEntities.Count == 0 || FriendUnits.Count == 0)
        {
            return;
        }

        InteractionEntity closestInteractionEntity = InteractionEntities[0];
        float             minDistance = Vector2.Distance(transform.position, closestInteractionEntity.transform.position);

        foreach (var entity in InteractionEntities)
        {
            if (entity == null)
            {
                InteractionEntities.Remove(entity);
            }

            else
            {
                float newDistance = Vector2.Distance(transform.position, entity.transform.position);

                if (newDistance < minDistance)
                {
                    minDistance = newDistance;
                    closestInteractionEntity = entity;
                }
            }
        }

        if (closestInteractionEntity is Rocket)
        {
            foreach (var unit in FriendUnits)
            {
                if (unit.CurrentBehaviour == Unit.Behaviour.Carries)
                {
                    unit.Interact(closestInteractionEntity);
                    return;
                }
            }

            return;
        }

        //Unit closestUnit = FriendUnits[0];
        //minDistance = Vector2.Distance(closestUnit.transform.position, closestInteractionEntity.transform.position);

        Unit closestUnit = null;

        minDistance = Mathf.Infinity;

        foreach (var unit in FriendUnits)
        {
            if (unit.CurrentBehaviour == Unit.Behaviour.Passive)
            {
                float newDistance = Vector2.Distance(unit.transform.position, closestInteractionEntity.transform.position);

                if (newDistance < minDistance)
                {
                    minDistance = newDistance;
                    closestUnit = unit;
                }
            }
        }

        if (closestInteractionEntity != null && closestUnit != null)
        {
            closestUnit.Interact(closestInteractionEntity);
        }
    }
Exemple #10
0
    private void BehaviourUpdate()
    {
        switch (CurrentBehaviour)
        {
        case Behaviour.Passive:

            if (MoveTarget != null)
            {
                _agent.stoppingDistance = _passiveStoppingDistance;
                _agent.SetDestination(MoveTarget.position);
            }

            break;

        case Behaviour.Attack:

            _agent.stoppingDistance = _defaultStoppingDistance;

            Vector3 argetPosition = _currentEnemy.transform.position;
            _agent.SetDestination(argetPosition);

            if (CheckDistance(argetPosition, 1.5f))
            {
                if (_currentEnemy.IsAlive())
                {
                    IsAttacking = true;
                    _currentEnemy.ApplyDamage(HitDamage);
                }

                else
                {
                    IsAttacking      = false;
                    _currentEnemy    = null;
                    CurrentBehaviour = Behaviour.Passive;
                }
            }

            break;

        case Behaviour.Interact:

            _agent.stoppingDistance = _defaultStoppingDistance;

            Vector3 entityPosition = _currentInteractionEntity.GetIteractPoint();
            _agent.SetDestination(entityPosition);

            if (_currentInteractionEntity is SparePart)
            {
                var sparePart = _currentInteractionEntity as SparePart;

                if (sparePart.IsLifted)
                {
                    _currentInteractionEntity = null;
                    CurrentBehaviour          = Behaviour.Passive;
                }
            }

            if (CheckDistance(entityPosition, _currentInteractionEntity.DistanceToInteract))
            {
                _currentInteractionEntity.Interact(this);
                LinkedHorde.InteractionEntities.Remove(_currentInteractionEntity);

                if (!(_currentInteractionEntity is SparePart))
                {
                    CurrentBehaviour = Behaviour.Passive;
                }

                _currentInteractionEntity = null;
            }

            break;

        case Behaviour.Carries:

            if (MoveTarget != null)
            {
                _agent.stoppingDistance = _passiveStoppingDistance;
                _agent.SetDestination(MoveTarget.position);
            }

            break;
        }
    }