示例#1
0
 void Start()
 {
     shipMoveLogic         = GetComponent <ShipMovementLogic>();
     combatGuiHandler      = GetComponent <CombatGuiHandler>();
     combatInputController = GetComponent <CombatInputController>();
     mainCamera            = Camera.main;
     ChangeState <InitBattleState>();
 }
示例#2
0
        public void Setup(Tile tile, int totalApCost = 0)
        {
            GlobalHelper.DestroyAllChildren(tileEffectsParent);

            tileType.text = tile.TileType.ToString();

            if (ReferenceEquals(_inputController, null))
            {
                _inputController = FindObjectOfType <CombatInputController>();
            }

            if (tile is Floor floor)
            {
                if (_inputController.TileSelected() && ReferenceEquals(tile, _inputController.GetSelectedTile()))
                {
                    if (totalApCost <= 0)
                    {
                        totalApCost = _inputController.GetTotalTileMovementCost();
                    }

                    apCost.text = $"{totalApCost} AP to move here";
                }
                else
                {
                    apCost.text = $"{floor.ApCost} AP to cross";
                }
            }
            else
            {
                apCost.text = "Impassable";
            }

            var effects = tile.GetEffects();

            if (effects == null || !effects.Any())
            {
                tileEffectsParent.SetActive(false);
            }
            else
            {
                var listedEffects = new List <string>();

                tileEffectsParent.SetActive(true);

                foreach (var effect in effects)
                {
                    if (listedEffects.Contains(effect.Name))
                    {
                        continue;
                    }

                    listedEffects.Add(effect.Name);

                    var effectText = Instantiate(tileEffectTextPrefab, tileEffectsParent?.transform);

                    effectText.GetComponent <TextMeshProUGUI>().text = effect.Name;
                }
            }

            if (_subscribed)
            {
                return;
            }

            var eventMediator = FindObjectOfType <EventMediator>();

            eventMediator.SubscribeToEvent(RefreshEvent, this);

            _subscribed = true;
        }
示例#3
0
 private void Start()
 {
     _inputController = FindObjectOfType <CombatInputController>();
 }
示例#4
0
 void Start()
 {
     combatControllerParent = GetComponent <CombatController>();
     InitVisualDebugVector();
     inputController = GetComponent <CombatInputController>();
 }