コード例 #1
0
    /// <summary>
    /// Check for generators for fill vacancies and generate new hexagon elements
    /// </summary>
    /// <param name="fillElements">Fill elements</param>
    /// <param name="randomColomGenerators">Generator indexes to drop bomb</param>
    private void GenerateNewElements(List <MoveElement> fillElements, ref int bombNumber)
    {
        for (int i = 0; i < this.generators.Count; i++) // Iterate for every generators
        {
            int x = generators[i].target.Item1;
            int y = generators[i].target.Item2;
            foreach (HexagonMove move in this.moves) // For each move
            {
                Tuple <int, int> dest = move.Move(this.grid, x, y, generators[i].hexagonElement);
                if (dest != null)
                {
                    fillElements.Add(new MoveElement(generators[i].hexagonElement, new Vector2(x, y), new Vector2(x, y))); // Specifies the generation of the hexagpn element

                    MoveElement element = new MoveElement(generators[i].hexagonElement, new Vector2(x, y), new Vector2(dest.Item1, dest.Item2));
                    fillElements.Add(element);

                    // Generate new hexagon elements with bomb or not
                    if (bombNumber > 0)
                    {
                        generators[i].Generate(true);
                        bombNumber--;
                    }
                    else
                    {
                        generators[i].Generate();
                    }
                }
            }
        }
    }
コード例 #2
0
ファイル: Tackle.cs プロジェクト: travislynn/AdventureGame
 public Tackle()
 {
     name        = "Tackle";
     target      = Target.Enemy;
     moveType    = MoveType.Attack;
     moveElement = MoveElement.None;
     status      = Status.Normal;
     duration    = 1;
     unlocked    = false;
     attack      = MoveManager.Random.Next(0, 0);
     defense     = MoveManager.Random.Next(0, 0);
     speed       = MoveManager.Random.Next(0, 0);
     health      = MoveManager.Random.Next(10, 15);
 }
コード例 #3
0
 public Heal()
 {
     name        = "Heal";
     target      = Target.Self;
     moveType    = MoveType.Heal;
     moveElement = MoveElement.None;
     status      = Status.Normal;
     unlocked    = false;
     duration    = 1;
     attack      = Avatar.Random.Next(0, 0);
     defense     = Avatar.Random.Next(0, 0);
     speed       = Avatar.Random.Next(0, 0);
     health      = Avatar.Random.Next(2, 6);
 }
コード例 #4
0
ファイル: Block.cs プロジェクト: travislynn/AdventureGame
 public Block()
 {
     name        = "Block";
     target      = Target.Self;
     moveType    = MoveType.Buff;
     moveElement = MoveElement.None;
     status      = Status.Normal;
     unlocked    = false;
     duration    = 5;
     attack      = MoveManager.Random.Next(0, 0);
     defense     = MoveManager.Random.Next(2, 6);
     speed       = MoveManager.Random.Next(0, 0);
     health      = MoveManager.Random.Next(0, 0);
 }
コード例 #5
0
 public RockThrow()
 {
     name        = "Rock Throw";
     target      = Target.Enemy;
     moveType    = MoveType.Attack;
     moveElement = MoveElement.Earth;
     status      = Status.Normal;
     duration    = 1;
     unlocked    = false;
     attack      = Avatar.Random.Next(0, 0);
     defense     = Avatar.Random.Next(0, 0);
     speed       = Avatar.Random.Next(0, 0);
     health      = MoveManager.Random.Next(15, 20);
 }
コード例 #6
0
ファイル: Bless.cs プロジェクト: travislynn/AdventureGame
 public Bless()
 {
     name        = "Bless";
     target      = Target.Self;
     moveType    = MoveType.Buff;
     moveElement = MoveElement.Light;
     status      = Status.Normal;
     unlocked    = false;
     duration    = 5;
     attack      = Avatar.Random.Next(2, 6);
     defense     = Avatar.Random.Next(2, 6);
     speed       = Avatar.Random.Next(2, 6);
     health      = Avatar.Random.Next(0, 0);
 }
コード例 #7
0
ファイル: Frostbite.cs プロジェクト: ikarabanov/Avatars
 public Frostbite()
 {
     name        = "Frostbite";
     target      = Target.Enemy;
     moveType    = MoveType.Attack;
     moveElement = MoveElement.Water;
     status      = Status.Normal;
     duration    = 1;
     unlocked    = false;
     attack      = Avatar.Random.Next(0, 0);
     defense     = Avatar.Random.Next(0, 0);
     speed       = Avatar.Random.Next(0, 0);
     health      = MoveManager.Random.Next(15, 20);
 }
コード例 #8
0
ファイル: Curse.cs プロジェクト: ikarabanov/Avatars
 public Curse()
 {
     name        = "Curse";
     target      = Target.Enemy;
     moveType    = MoveType.Debuff;
     moveElement = MoveElement.Dark;
     status      = Status.Normal;
     unlocked    = false;
     duration    = 5;
     attack      = Avatar.Random.Next(2, 6);
     defense     = Avatar.Random.Next(2, 6);
     speed       = Avatar.Random.Next(2, 6);
     health      = Avatar.Random.Next(0, 0);
 }
コード例 #9
0
 /// <summary>
 /// Check for vacancies to fill these vacancies with other hexagon elements
 /// </summary>
 /// <param name="fillElementss">Fill elements</param>
 private void CheckForVacanciesAndMoveHexagonElementsToVacancies(List <MoveElement> fillElementss)
 {
     for (int x = 0; x < this.grid.width; x++)
     {
         for (int y = 0; y < this.grid.height; y++)
         {
             foreach (HexagonMove move in this.moves) // Check for every specified move
             {
                 Tuple <int, int> dest = move.Move(this.grid, x, y);
                 if (dest != null) // Move is valid then create move elemnt and add it to the fill element
                 {
                     MoveElement element = new MoveElement((HexagonElement)this.grid.GetElement(x, y), new Vector2(x, y), new Vector2(dest.Item1, dest.Item2));
                     fillElementss.Add(element);
                 }
             }
         }
     }
 }
コード例 #10
0
    void Start()
    {
        time      = 50; score = 50; gcontroller = GameObject.FindWithTag("GameController").GetComponent <GameController>();
        play_info = GameViewPanel.GetComponent <MoveElement>();
        Numbers   = play_info.posNumbers;
        for (int i = 0; i < Numbers.Count; i++)
        {
            GameObject    NewObj   = new GameObject();
            Image         NewImage = NewObj.AddComponent <Image>();
            RectTransform NewRect  = NewObj.GetComponent <RectTransform>();
            Vector3       position = new Vector3(Numbers[i].x, Numbers[i].y, 0.0f);
            NewRect.SetPositionAndRotation(position, new Quaternion(0, 0, 0, 1));
            NewRect.localScale = new Vector3(0.6f, 0.6f, 0.6f);
            anchonum           = NewRect.rect.width;
            NewRect.SetParent(GetComponent <RectTransform>());
            NewObj.SetActive(true);
            switch (play_info.valNumbers[i])
            {
            case 1: NewImage.sprite = play_info.Sprites[0]; break;

            case 2: NewImage.sprite = play_info.Sprites[1]; break;

            case 3: NewImage.sprite = play_info.Sprites[2]; break;

            case 4: NewImage.sprite = play_info.Sprites[3]; break;

            case 5: NewImage.sprite = play_info.Sprites[4]; break;

            case 6: NewImage.sprite = play_info.Sprites[5]; break;

            case 7: NewImage.sprite = play_info.Sprites[6]; break;

            case 8: NewImage.sprite = play_info.Sprites[7]; break;

            case 9: NewImage.sprite = play_info.Sprites[8]; break;

            case 10: NewImage.sprite = play_info.Sprites[9]; break;
            }
            GONumbers.Add(NewObj);
        }
    }
コード例 #11
0
        public static float GetMoveModifier(MoveElement moveElement, AvatarElement avatarElement)
        {
            float modifier = 1f;

            switch (moveElement)
            {
            case MoveElement.Dark:
                if (avatarElement == AvatarElement.Light)
                {
                    modifier += .25f;
                }
                else if (avatarElement == AvatarElement.Wind)
                {
                    modifier -= .25f;
                }
                break;

            case MoveElement.Earth:
                if (avatarElement == AvatarElement.Water)
                {
                    modifier += .25f;
                }
                else if (avatarElement == AvatarElement.Wind)
                {
                    modifier -= .25f;
                }
                break;

            case MoveElement.Fire:
                if (avatarElement == AvatarElement.Wind)
                {
                    modifier += .25f;
                }
                else if (avatarElement == AvatarElement.Water)
                {
                    modifier -= .25f;
                }
                break;

            case MoveElement.Light:
                if (avatarElement == AvatarElement.Dark)
                {
                    modifier += .25f;
                }
                else if (avatarElement == AvatarElement.Earth)
                {
                    modifier -= .25f;
                }
                break;

            case MoveElement.Water:
                if (avatarElement == AvatarElement.Fire)
                {
                    modifier += .25f;
                }
                else if (avatarElement == AvatarElement.Earth)
                {
                    modifier -= .25f;
                }
                break;

            case MoveElement.Wind:
                if (avatarElement == AvatarElement.Light)
                {
                    modifier += .25f;
                }
                else if (avatarElement == AvatarElement.Earth)
                {
                    modifier -= .25f;
                }
                break;
            }
            return(modifier);
        }
コード例 #12
0
ファイル: User.cs プロジェクト: Dimmitriy33/OOP-3-sem
 internal void Move(int Pos)
 {
     this.Position -= Pos;
     MoveElement?.Invoke($"element moved by {Pos}");
 }
コード例 #13
0
 public void MoveSimilarElementToEnd()
 {
     int[] expected = new int[] { 4, 1, 3, 2, 2, 2, 2, 2 };
     int[] actual   = MoveElement.ToEnd(array, 2);
     Assert.AreEqual(expected, actual);
 }
コード例 #14
0
 public void MoveSimilarElementToStart()
 {
     int[] expected = new int[] { 2, 2, 2, 2, 2, 3, 4, 1 };
     int[] actual   = MoveElement.ToStart(array, 2);
     Assert.AreEqual(expected, actual);
 }
コード例 #15
0
        public void DecodeFromPacket(Packet packet, MovementSource source)
        {
            PacketCreationDate = packet.PacketCreationTime;

            Source = source;
            short foothold = 0;
            byte  stance   = 0;

            var x = packet.ReadShort();
            var y = packet.ReadShort();

            OriginalPosition = new Pos(x, y);

            var movementCount = packet.ReadByte();

            Elements = new MoveElement[movementCount];

            for (var i = 0; i < movementCount; i++)
            {
                var mt = (MovementType)packet.ReadByte();
                var me = new MoveElement
                {
                    Type     = mt,
                    Foothold = foothold,
                    X        = x,
                    Y        = y,
                    Stance   = stance
                };

                switch (mt)
                {
                case MovementType.NormalMovement:
                case MovementType.NormalMovement2:
                    me.X         = packet.ReadShort();
                    me.Y         = packet.ReadShort();
                    me.XVelocity = packet.ReadShort();
                    me.YVelocity = packet.ReadShort();
                    me.Foothold  = packet.ReadShort();

                    me.Stance      = packet.ReadByte();
                    me.TimeElapsed = packet.ReadShort();
                    break;

                case MovementType.Jump:
                case MovementType.JumpKb:
                case MovementType.FlashJump:
                    me.XVelocity = packet.ReadShort();
                    me.YVelocity = packet.ReadShort();

                    me.Stance      = packet.ReadByte();
                    me.TimeElapsed = packet.ReadShort();
                    break;


                case MovementType.Immediate:
                case MovementType.Teleport:
                case MovementType.Assaulter:
                    me.X        = packet.ReadShort();
                    me.Y        = packet.ReadShort();
                    me.Foothold = packet.ReadShort();

                    me.Stance      = packet.ReadByte();
                    me.TimeElapsed = packet.ReadShort();
                    break;

                case MovementType.Falling:
                    me.Stat = packet.ReadByte();
                    break;

                default:
                    me.Stance      = packet.ReadByte();
                    me.TimeElapsed = packet.ReadShort();
                    break;
                }

                x        = me.X;
                y        = me.Y;
                foothold = me.Foothold;
                stance   = me.Stance;

                Elements[i] = me;
            }

            var keypadStates = packet.ReadByte();

            for (var i = 0; i < keypadStates; i++)
            {
                if ((i % 2) == 0)
                {
                    packet.ReadByte();
                }
            }

            NewPosition = new Pos(x, y);
            NewStance   = stance;
            NewFoothold = foothold;
        }