Exemplo n.º 1
0
    void DrawAttackState(ProjectedGameState projectedState)
    {
        Sprite tileTargetedSprite = ScenarioImageManager.GetTileTargetedSprite();

        for (int i = 0; i < projectedState.attackedPositions.Count; i++)
        {
            EntityData activeEntity     = projectedState.activeEntity;
            Vector2Int attackedPosition = projectedState.attackedPositions[i];
            GenerateAndPositionCellImage(attackedPosition, 0f, tileTargetedSprite, activeEntity.IdentifyingColor);

            AttackCardData cardData      = projectedState.action.card as AttackCardData;
            Sprite         pointerSprite = cardData.cardImage;

            float rotation = GetImageRotation(projectedState.action.direction);

            GameObject abilityPointer = ScenarioImageManager.GetAbilityPointer(pointerSprite, rotation, transform);
            abilityPointer.transform.position = GetPointerImagePosition(activeEntity.Position, projectedState.action.direction);

            if (!drawingSelectedEntity)
            {
                Color pointerColor = Color.white;
                pointerColor.a = deselectedEntityActionOpacity;
                abilityPointer.GetComponent <Image>().color = pointerColor;
            }
        }
    }
Exemplo n.º 2
0
    void DrawPath_Between(EntityData entity, Vector2Int positionLastState, Vector2Int positionThisState, Vector2Int positionNextState)
    {
        PathType  pathType            = GetPathType(positionLastState, positionThisState, positionNextState);
        Sprite    pathSprite          = ScenarioImageManager.GetPathSprite(pathType);
        Direction directionOfEntrance = BoardHelperFunctions.GetDirectionFromPosition(positionThisState, positionLastState);

        GenerateAndPositionCellImage(positionThisState, GetImageRotation(directionOfEntrance), pathSprite, entity.IdentifyingColor);
    }
Exemplo n.º 3
0
    void DrawPath_Ending(EntityData entity, Vector2Int positionLastState, Vector2Int positionThisState)
    {
        if (positionThisState == positionLastState)
        {
            return;
        }

        Sprite    pathSprite          = ScenarioImageManager.GetPathSprite(PathType.Terminating);
        Direction directionOfEntrance = BoardHelperFunctions.GetDirectionFromPosition(positionThisState, positionLastState);

        GenerateAndPositionCellImage(positionThisState, GetImageRotation(directionOfEntrance), pathSprite, entity.IdentifyingColor);
    }
Exemplo n.º 4
0
    void GenerateAndPositionCellImage(Vector2Int position, float rotation, Sprite sprite, Color color)
    {
        GameObject instantiatedPathImage = ScenarioImageManager.GetOverlayImage(sprite, transform);

        instantiatedPathImage.transform.position = boardController.GetCellPosition(position);

        instantiatedPathImage.GetComponent <RectTransform>().rotation = Quaternion.Euler(new Vector3(0f, 0f, rotation));

        if (!drawingSelectedEntity)
        {
            color = new Color(color.r, color.g, color.b, deselectedEntityActionOpacity);
        }

        instantiatedPathImage.GetComponent <Image>().color = color;
    }
Exemplo n.º 5
0
    public void UpdateDepictedTurn(Turn turn)
    {
        depictedTurn = turn;

        Sprite subjectSprite = turn.Entity.entitySprite;

        subjectIcon.sprite = subjectSprite;

        Sprite directionSprite = turn.moves.Count > 0 ? ScenarioImageManager.GetMovementSprite(turn.moves[0]) : ScenarioImageManager.GetEmptyActionSprite();

        firstActionIcon.sprite = directionSprite;

        Sprite actionSprite = turn.action.card != null?ScenarioImageManager.GetActionSprite(turn.action.card.category, turn.action.direction) : ScenarioImageManager.GetEmptyActionSprite();

        secondActionIcon.sprite = actionSprite;
    }
Exemplo n.º 6
0
    void DrawBump(EntityData bumpingEntity, ProjectedGameState projectedState, ProjectedGameState nextState, Bump bump)
    {
        Vector2Int positionTwoStatesAgo = projectedState
                                          .scenarioState
                                          .lastGameState
                                          .lastGameState
                                          .GetEntityWhere(e => e.ID == bumpingEntity.ID)
                                          .Position;
        Vector2Int positionThisState = bumpingEntity.Position;
        Vector2Int positionLastState = projectedState
                                       .scenarioState
                                       .lastGameState
                                       .GetEntityWhere(e => e.ID == bumpingEntity.ID)
                                       .Position;
        bool isEntitysFirstMove = positionLastState == positionTwoStatesAgo;

        bool bumpSucceeds = bumpingEntity.Position != positionLastState;

        if (bumpSucceeds)
        {
            DrawPath_Ending(bumpingEntity, positionLastState, positionThisState);
            DrawSuccessfulBumpEffect(positionThisState, BoardHelperFunctions.GetDirectionFromPosition(positionThisState, positionLastState));

            DrawPath_Beginning(bump.bumpedEntity, positionThisState, bump.bumpedEntity.Position);
        }
        else if (isEntitysFirstMove)
        {
            Vector2Int bumpedEntityPosition = bump.bumpedEntity.Position;
            Sprite     pathSprite           = ScenarioImageManager.GetPathSprite(PathType.Beginning);
            Direction  directionOfEntrance  = BoardHelperFunctions.GetDirectionFromPosition(bumpedEntityPosition, positionThisState);
            GenerateAndPositionCellImage(positionThisState, GetImageRotation(directionOfEntrance), pathSprite, bumpingEntity.IdentifyingColor);

            DrawFailedBumpEffect(positionThisState,
                                 BoardHelperFunctions.GetDirectionFromPosition(positionThisState, bumpedEntityPosition));
        }
        else
        {
            PathType   pathType             = GetFailedBumpPathType(positionTwoStatesAgo, positionThisState, bump.bumpedEntity.Position);
            Sprite     pathSprite           = ScenarioImageManager.GetPathSprite(pathType);
            Vector2Int bumpedEntityPosition = bump.bumpedEntity.Position;
            Direction  directionOfEntrance  = BoardHelperFunctions.GetDirectionFromPosition(positionThisState, positionTwoStatesAgo);

            GenerateAndPositionCellImage(positionThisState, GetImageRotation(directionOfEntrance), pathSprite, bumpingEntity.IdentifyingColor);
            DrawFailedBumpEffect(positionThisState,
                                 BoardHelperFunctions.GetDirectionFromPosition(positionThisState, bumpedEntityPosition));
        }
    }
Exemplo n.º 7
0
    void DrawStagnation(ScenarioState state)
    {
        Clear();
        List <Vector2Int> stagnatedPositions = state.stagnatedPositions;

        for (int i = 0; i < stagnatedPositions.Count; i++)
        {
            GameObject instantiatedStagnationTile = ScenarioImageManager.GetStagnationTile(transform);
            instantiatedStagnationTile.transform.position = boardController.GetCellPosition(stagnatedPositions[i]);
        }

        List <Vector2Int> threateningPositions = state.threatenedStagnationPositions;

        for (int i = 0; i < threateningPositions.Count; i++)
        {
            GameObject instantiatedThreatenedImage = ScenarioImageManager.GetOverlayImage(threateningStagnationSprite, transform);
            instantiatedThreatenedImage.transform.position = boardController.GetCellPosition(threateningPositions[i]);
        }
    }
Exemplo n.º 8
0
    IEnumerator BlinkPositionAttackedIndicator(Vector2Int position)
    {
        Vector2    canvasPosition   = boardController.GetCellPosition(position);
        GameObject overlayIndicator = ScenarioImageManager.GetOverlayImage(attackedTileSprite, transform);

        overlayIndicator.transform.position = canvasPosition;

        Image overlayImage = overlayIndicator.GetComponent <Image>();

        overlayImage.color = clear;

        float blinkInTime  = positionAttackedBlinkTimer / 2f;
        float blinkOutTime = blinkInTime;
        float timeElapsed  = 0f;

        while (timeElapsed < blinkInTime)
        {
            float percentageComplete = timeElapsed / blinkInTime;
            overlayImage.color = Color.Lerp(clear, opaque, percentageComplete);
            timeElapsed       += Time.deltaTime;

            yield return(null);
        }

        timeElapsed = 0.0f;

        while (timeElapsed < blinkOutTime)
        {
            float percentageComplete = timeElapsed / blinkInTime;
            overlayImage.color = Color.Lerp(opaque, clear, percentageComplete);
            timeElapsed       += Time.deltaTime;

            yield return(null);
        }

        Destroy(overlayImage);
    }
Exemplo n.º 9
0
 private void Awake()
 {
     instance = this;
 }
Exemplo n.º 10
0
    void DrawFailedBumpEffect(Vector2Int position, Direction entranceDirectionOfBumper)
    {
        Sprite bumpEffectSprite = ScenarioImageManager.GetPathSprite(PathType.Bumped);

        GenerateAndPositionCellEdgeImage(position, entranceDirectionOfBumper, bumpEffectSprite, Color.white);
    }
Exemplo n.º 11
0
    void DrawSuccessfulBumpEffect(Vector2Int position, Direction entranceDirectionOfBumper)
    {
        Sprite bumpEffectSprite = ScenarioImageManager.GetPathSprite(PathType.Bumped);

        GenerateAndPositionCellImage(position, GetImageRotation(entranceDirectionOfBumper), bumpEffectSprite, Color.white);
    }