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); } }
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); }
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); }