Exemplo n.º 1
0
    private void OnExecutionTimeUpdated(IGroup <GameEntity> @group, GameEntity actionEntity, int index,
                                        IComponent previousComponent, IComponent newComponent)
    {
        ATBItemWidget linkedItem = GetLinkedItem(actionEntity.battleAction.EntityId);

        if (linkedItem == null)
        {
            Debug.LogError("No linked item found for action id: " + actionEntity.battleAction.EntityId);
        }

        ExecutionTimeComponent executionTimeComponent = actionEntity.executionTime;
        float progressPercentage = 1 - (executionTimeComponent.RemainingTime / executionTimeComponent.TotalTime);

        if (actionEntity.battleAction.ActionAtbType == ActionATBType.Waiting)
        {
            linkedItem.gameObject.transform.localPosition = new Vector3(Mathf.Clamp(
                                                                            StartMarker.transform.localPosition.x +
                                                                            (chooseCommandDistance * progressPercentage), StartMarker.transform.localPosition.x,
                                                                            ChooseMarker.transform.localPosition.x),
                                                                        linkedItem.transform.localPosition.y, linkedItem.transform.localPosition.z);
        }
        else if (actionEntity.battleAction.ActionAtbType == ActionATBType.Acting)
        {
            linkedItem.gameObject.transform.localPosition = new Vector3(
                Mathf.Clamp(ChooseMarker.transform.localPosition.x +
                            (executeActionDistance * progressPercentage), ChooseMarker.transform.localPosition.x,
                            ActMarker.transform.localPosition.x),
                linkedItem.transform.localPosition.y, linkedItem.transform.localPosition.z);
        }
        else
        {
            Debug.LogWarning("Not handling atb type: " + actionEntity.battleAction.ActionAtbType);
        }
    }
Exemplo n.º 2
0
    private void OnBattleEntityRemoved(IGroup <GameEntity> group, GameEntity entity, int index,
                                       IComponent component)
    {
        ATBItemWidget item = GetLinkedItem(entity.id.Id);

        item.Close();
        atbItems.Remove(item);
        Destroy(item.gameObject);
    }
Exemplo n.º 3
0
    private void CreateNewItem(GameEntity gameEntity)
    {
        ATBItemProperties newProps;

        if (gameEntity.hasBattleImage)
        {
            newProps = new ATBItemProperties(gameEntity.battleImage.BattleImage, gameEntity.id.Id);
        }
        else
        {
            newProps = new ATBItemProperties(null, gameEntity.id.Id);
        }

        ATBItemWidget newItem = GameObject.Instantiate(itemPrefab, gameObject.transform)
                                .GetComponent <ATBItemWidget>();
        Vector3 itemPosition = new Vector3(StartMarker.transform.position.x, newItem.gameObject.transform.position.y,
                                           newItem.gameObject.transform.position.z);

        newItem.gameObject.transform.SetPositionAndRotation(itemPosition,
                                                            StartMarker.transform.rotation);
        newItem.Open();
        newItem.ApplyProperties(newProps);
        atbItems.Add(newItem);
    }