Exemplo n.º 1
0
 protected UiBaseCharacterState(IUiCharacter handler, BaseStateMachine fsm, UiCharacterParameters parameters)
 {
     Fsm           = fsm;
     Handler       = handler;
     IsInitialized = true;
     Parameters    = parameters;
 }
Exemplo n.º 2
0
        void TryAttack(IUiCharacter defender)
        {
            if (SelectedCharacter == null)
            {
                return;
            }

            Attack(SelectedCharacter, defender);
        }
Exemplo n.º 3
0
        public void Attack(IUiCharacter agreessor, IUiCharacter blocker)
        {
            var attackData = new AttackMechanics.RuntimeAttackData
            {
                Agressor = agreessor.Data.RuntimeData,
                Blocker  = blocker.Data.RuntimeData
            };

            Controller.PlayerController.Attack(attackData);
        }
Exemplo n.º 4
0
        /// <summary>
        ///     Remove a character from the pile.
        /// </summary>
        /// <param name="character"></param>
        /// <exception cref="ArgumentNullException"></exception>
        public virtual void RemoveCharacter(IUiCharacter character)
        {
            if (character == null)
            {
                throw new ArgumentNullException("Null is not a valid argument.");
            }

            Characters.Remove(character);
            NotifyPileChange();
        }
Exemplo n.º 5
0
 /// <summary>
 ///     Add a character to the pile.
 /// </summary>
 /// <param name="character"></param>
 public virtual void AddCharacter(IUiCharacter character)
 {
     if (character == null)
     {
         throw new ArgumentNullException("Null is not a valid argument.");
     }
     Characters.Add(character);
     character.transform.SetParent(transform);
     character.transform.localPosition = Vector3.zero;
     character.Initialize();
     character.Enable();
     NotifyPileChange();
 }
Exemplo n.º 6
0
        /// <summary>
        ///     Unselect the character in the parameter.
        /// </summary>
        /// <param name="character"></param>
        public void UnselectCharacter(IUiCharacter character)
        {
            if (character == null)
            {
                return;
            }

            uiEnemyTeam.OnCharacterSelected -= TryAttack;
            UnselectZone.Disable();
            SelectedCharacter = null;
            character.Unselect();
            NotifyPileChange();
            EnableCharacters();
        }
Exemplo n.º 7
0
        //--------------------------------------------------------------------------------------------------------------

        public void Sort(IUiCharacter[] characters, IUiCharacter capitain)
        {
            if (characters == null)
            {
                return;
            }

            foreach (var character in characters)
            {
                var position = character.transform.localPosition;
                position.z = 0;
                character.transform.localPosition = position;
            }
        }
Exemplo n.º 8
0
        public UiCharacterFsm(Camera camera, UiCharacterParameters parameters, IUiCharacter handler) : base(handler)
        {
            IdleState     = new UiCharacterIdle(handler, this, parameters);
            DisableState  = new UiCharacterDisable(handler, this, parameters);
            HoverState    = new UiCharacterHover(handler, this, parameters);
            SelectedState = new UiCharacterSelected(handler, this, parameters);
            AttackState   = new UiCharacterAttack(handler, this, parameters);

            RegisterState(IdleState);
            RegisterState(DisableState);
            RegisterState(HoverState);
            RegisterState(SelectedState);
            RegisterState(AttackState);

            Initialize();
        }
Exemplo n.º 9
0
        // ------------------------------------------------------------

        /// <summary>
        ///     Select the character in the parameter.
        /// </summary>
        /// <param name="character"></param>
        public void SelectCharacter(IUiCharacter character)
        {
            if (character == null)
            {
                return;
            }

            uiEnemyTeam.OnCharacterSelected += TryAttack;
            UnselectZone.Enable();
            SelectedCharacter = character;

            if (character.IsUser)
            {
                DisableCharacters();
            }
            NotifyCharacterSelected();
        }
Exemplo n.º 10
0
 void SelectTargetLeft(IUiCharacter target) => OnSelectTarget(target.Data.RuntimeData, PlayerSeat.Left);
Exemplo n.º 11
0
 void SelectTargetRight(IUiCharacter target) => OnSelectTarget(target.Data.RuntimeData, PlayerSeat.Right);
Exemplo n.º 12
0
 public UiCharacterIdle(IUiCharacter handler, BaseStateMachine fsm, UiCharacterParameters parameters)
     : base(handler, fsm, parameters) =>
Exemplo n.º 13
0
 public override void Restart()
 {
     SelectedCharacter = null;
     base.Restart();
 }
Exemplo n.º 14
0
 void Awake() => MyChar = GetComponent <IUiCharacter>();
Exemplo n.º 15
0
 public virtual void AddCapitain(IUiCharacter character)
 {
     Capitain = character;
     AddCharacter(character);
 }
Exemplo n.º 16
0
        //--------------------------------------------------------------------------------------------------------------

        //void Update()
        //{
        //    Positioning(PlayerTeam.Characters.ToArray());
        //}

        //--------------------------------------------------------------------------------------------------------------

        void Positioning(IUiCharacter[] characters, IUiCharacter capitain)
        {
            var pivotX = pivot.position.x;
            var pivotY = pivot.position.y;

            var n = MaxCharactersPerLine;
            var m = MaxCharactersPerColumn;

            var charWidth  = n * CharacterWidth;
            var charHeight = m * CharacterHeight;

            var totalWidth  = charWidth + (n - 1) * characterParameters.SpacingX;
            var totalHeight = charHeight + (n - 1) * characterParameters.SpacingY;

            var side = PlayerTeam.Controller.Seat == PlayerSeat.Left ? 1 : -1;
            var minX = pivotX - side * totalWidth / 2;
            var minY = pivotY + totalHeight / 2;

            var deltaX = CharacterWidth;
            var deltaY = CharacterHeight;

            float px = 0, py = 0;

            if (characterParameters.AllowSpacingX)
            {
                ResetPx();
            }

            if (characterParameters.AllowSpacingY)
            {
                ResetPy();
            }

            var mainHerosOffset = capitain != null ? 1 : 0;

            for (var i = mainHerosOffset; i < characters.Length; i++)
            {
                var character = characters[i];
                var position  = new Vector3(px, py);

                if (!character.IsAttacking)
                {
                    character.Motion.MoveTo(position, 4f);
                }

                if (characterParameters.AllowSpacingX)
                {
                    px += (deltaX + characterParameters.SpacingX) * side;
                }

                if ((i - mainHerosOffset) % MaxCharactersPerLine == MaxCharactersPerLine - 1)
                {
                    ResetPx();
                    if (characterParameters.AllowSpacingY)
                    {
                        py -= deltaY + characterParameters.SpacingY;
                    }
                }
            }

            if (characters.Length > 0 && capitain != null)
            {
                var character = characters[mainHerosOffset - 1];
                if (!character.IsAttacking)
                {
                    character.Motion.MoveTo(mainHerosPosition.transform.position, 4f);
                }
            }

            void ResetPx() => px = minX + side * deltaX / 2;

            void ResetPy() => py = minY + deltaY / 2;
        }