public void TryChangeState(State target)
        {
            switch (target)
            {
            case State.Closed:
                _up.gameObject.SetActive(false);
                _down.gameObject.SetActive(false);
                _maskRect.gameObject.SetActive(false);
                _statusText.text = "Press A to join";
                break;

            case State.Selecting:
                if (_state == State.Ready)
                {
                    _characterSelect._readyCount--;
                }


                if (_characterSpotlightAnchor.transform.childCount != 0)
                {
                    Destroy(_characterSpotlightAnchor.GetChild(0).gameObject);
                }

                _up.gameObject.SetActive(true);
                _down.gameObject.SetActive(true);
                _maskRect.gameObject.SetActive(true);
                _statusText.text = "";
                break;

            case State.Ready:
                _characterSelect._readyCount++;

                Vector3 position =
                    _camera.Camera.ScreenToWorldPoint(
                        _characterSpotlightAnchor.position);

                // TODO maybe select locked character??
                Resource resource = _characterResources.Characters[_selectedIndex];

                World.Objects.Characters.Character character =
                    resource.Create(
                        position,
                        _characterSpotlightAnchor,
                        Quaternion.Euler(new Vector3(0, 180, 0)));

                character.transform.localScale = new Vector3(
                    _characterSpotlightSize,
                    _characterSpotlightSize,
                    _characterSpotlightSize);


                _up.gameObject.SetActive(false);
                _down.gameObject.SetActive(false);
                _maskRect.gameObject.SetActive(false);
                _statusText.text = "Ready";
                break;
            }

            _state = target;
        }
Exemplo n.º 2
0
        public bool TryUse(World.Objects.Characters.Character source)
        {
            if (IsAvailable(source))
            {
                DoUse(source);
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        public virtual bool TryUseAgainst(World.Objects.Characters.Character source, World.Objects.BaseObject target)
        {
            if (IsAvailable(source))
            {
                DoUseAgainst(source, target);
                return(true);
            }

            return(false);
        }
Exemplo n.º 4
0
        public override bool Verify(World.Objects.Characters.Character target)
        {
            foreach (var cond in _conditions)
            {
                if (!cond.Verify(target))
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 5
0
        public override bool TryUse(World.Objects.Characters.Character source)
        {
            if (_item.TryUse(source))
            {
                if (_item.Quantity == 0)
                {
                    Remove();
                }

                return(true);
            }

            return(false);
        }
Exemplo n.º 6
0
        ////


        public virtual bool TryApply(World.Objects.Characters.Character source, World.Objects.Actions.ActionProduct action, World.Objects.Characters.Character target)
        {
            if (!Unconditional)
            {
                foreach (var cond in GlobalConditions)
                {
                    if (cond == null)
                    {
                        continue;
                    }

                    if (!cond.Verify())
                    {
                        return(false);
                    }
                }

                foreach (var cond in TargetConditions)
                {
                    if (cond == null)
                    {
                        continue;
                    }

                    if (!Check(cond, target))
                    {
                        return(false);
                    }
                }

                foreach (var cond in SourceConditions)
                {
                    if (cond == null)
                    {
                        continue;
                    }

                    if (!Check(cond, source))
                    {
                        return(false);
                    }
                }
            }

            DoApply(source, action, target);
            return(true);
        }
Exemplo n.º 7
0
 protected virtual void DoApply(BaseObject source, World.Objects.Actions.ActionProduct action, World.Objects.Characters.Character target)
 {
     DoApply(source, action, target as BaseObject);
 }
Exemplo n.º 8
0
 // Attach no listener
 public virtual IConditionedState GetListenedState(World.Objects.Characters.Character target)
 {
     return(null);
 }
Exemplo n.º 9
0
 public void OnCharacterStart(World.Objects.Characters.Character character)
 {
     _character = character;
 }
Exemplo n.º 10
0
 public virtual bool TryUse(World.Objects.Characters.Character source)
 {
     return(true);
 }
Exemplo n.º 11
0
 private void DoUse(World.Objects.Characters.Character source)
 {
     _action.Use(source);
     _cooldownTimer.Start();
     _endLagTimer.Start();
 }
Exemplo n.º 12
0
 public virtual void DoUseAgainst(World.Objects.Characters.Character source, World.Objects.BaseObject target)
 {
     _action.UseAgainst(source, target);
     _cooldownTimer.Start();
     _endLagTimer.Start();
 }
Exemplo n.º 13
0
 public virtual bool IsAvailable(World.Objects.Characters.Character source)
 {
     return(!_resource.IsConditional || source.Verify(_resource.Condition));
 }
Exemplo n.º 14
0
 public void OnCharacterChange(World.Objects.Characters.Character character)
 {
     _character = character;
 }