Ejemplo n.º 1
0
 public void OnDeactivate(IMovementStyle nextStyle, ActivationReason reason)
 {
     if (reason == ActivationReason.Standard)
     {
         Object.Destroy(this);
     }
 }
Ejemplo n.º 2
0
 void IMovementStyle.OnDeactivate(IMovementStyle nextStyle, ActivationReason reason)
 {
     if (_paused)
     {
         this.Pause(false);
     }
     this.OnDeactivate(nextStyle, reason);
     _activeStatus = false;
 }
Ejemplo n.º 3
0
 void IMovementStyle.OnActivate(IMovementStyle lastStyle, ActivationReason reason)
 {
     if (_mode == UpdateMode.Inactive)
     {
         this.DetermineUpdateMode();
     }
     _activeStatus = true;
     this.OnActivate(lastStyle, reason);
 }
Ejemplo n.º 4
0
 void IMovementStyle.OnDeactivate(IMovementStyle nextStyle, ActivationReason reason)
 {
     if (_paused)
     {
         this.Pause(false);
     }
     this.OnDeactivate(nextStyle, reason);
     _activeStatus = false;
     if (_controller != null)
     {
         _controller.MovementControllerHit -= this.OnControllerHitHandler;
     }
 }
Ejemplo n.º 5
0
    public static void ActivateItem(GameEntity entity, ActivationReason reason)
    {
        Queue <ActivationReason> activationQueue;

        if (entity.hasActivation)
        {
            activationQueue = entity.activation.ActivationQueue;
            activationQueue.Enqueue(reason);
            entity.ReplaceActivation(activationQueue);
        }
        else
        {
            activationQueue = new Queue <ActivationReason>();
            activationQueue.Enqueue(reason);
            entity.AddActivation(activationQueue);
        }
    }
Ejemplo n.º 6
0
    private void ActivateItem(GameEntity entity, ActivationReason reason)
    {
        entity.isCanBeActivatedByBottom = false;

        Queue <ActivationReason> activationQueue;

        if (entity.hasActivation)
        {
            activationQueue = entity.activation.ActivationQueue;
            activationQueue.Enqueue(reason);
            entity.ReplaceActivation(activationQueue);
        }
        else
        {
            activationQueue = new Queue <ActivationReason>();
            activationQueue.Enqueue(reason);
            entity.AddActivation(activationQueue);
        }
    }
Ejemplo n.º 7
0
 protected virtual void OnDeactivate(IMovementStyle nextStyle, ActivationReason reason)
 {
 }
Ejemplo n.º 8
0
 protected virtual void OnActivate(IMovementStyle lastStyle, ActivationReason reason)
 {
 }
    private void ProcessActivation(ActivationReason activationReason, GameEntity entity)
    {
        switch (activationReason)
        {
        case ActivationReason.Touch:
            if (entity.matchGroup.Count >= 2)
            {
                if (entity.isPositiveItem)
                {
                    var match = _contexts.game.CreateEntity();
                    match.AddPositiveItemMatch(entity.id.Value);
                    ActivateItem(match);
                }
                else
                {
                    var match = _contexts.game.CreateEntity();
                    match.AddColorMatch(entity.id.Value);
                    ActivateItem(match);
                }

                break;
            }

            ActivateItem(entity);
            break;

        case ActivationReason.PuzzlePuzzle:
            if (entity.isPositiveItem && !Equals(entity.itemType.Value, ItemType.Puzzle))
            {
                ActivateItem(entity);
                break;
            }

            ExplodeItem(entity);

            break;

        case ActivationReason.Tnt:
        case ActivationReason.Rotor:
            if (entity.isPositiveItem)
            {
                ActivateItem(entity);
                break;
            }

            ExplodeItem(entity);

            break;

        case ActivationReason.God:
        case ActivationReason.Bottom:
        case ActivationReason.NearMatch:
            ExplodeItem(entity);
            break;

        case ActivationReason.Puzzle:
            ActivateItem(entity);
            break;

        default:
            Debug.LogError("No Behaviour for activation Reason defined");
            break;
        }
    }
Ejemplo n.º 10
0
    public static void TryActivateItemWithPositive(Vector2Int touchPos, int removerId, ActivationReason activationReason)
    {
        var contexts = Contexts.sharedInstance;

        if (!InBounds(contexts, touchPos))
        {
            return;
        }

        var cellItem = contexts.game.GetEntityWithCellItemId(new Tuple <int, int>(touchPos.x, touchPos.y));
        var item     = contexts.game.GetItemWithPosition(touchPos);

        if (cellItem != null && cellItem.isCanStopItemActivation)
        {
            cellItem.isWillBeDestroyed = true;
            return;
        }

        if (item == null)
        {
            return;
        }

        if (item.isCantBeActivated)
        {
            return;
        }

        var removerSet = item.removers.Set;

        if (removerSet.Contains(removerId))
        {
            return;
        }

        if (item.isRemoverSensitive)
        {
            removerSet.Add(removerId);
            item.ReplaceRemovers(removerSet);
        }

        if (item.hasColorSensitive)
        {
            ReduceColorSensitivityPositive(item);
        }

        if (item.isColorCopying && !item.hasColorSensitive)
        {
            var possibleColors = new[] { Color.Blue, Color.Red, Color.Green, Color.Yellow };
            var randColor      = possibleColors.Shuffle().First();
            var colors         = new Dictionary <Color, int>
            {
                [randColor] = 1
            };
            item.AddColorSensitive(colors);
            item.AddColor(randColor);
        }

        if (cellItem != null && cellItem.isCanBeActivatedByInnerMatch && item.isInnerMatchItem)
        {
            cellItem.isWillBeDestroyed = true;
        }

        ActivateItem(item, activationReason);
    }
Ejemplo n.º 11
0
 public void OnActivate(IMovementStyle lastStyle, ActivationReason reason)
 {
 }