Exemple #1
0
    public IEnumerator Retreat()
    {
        if (isRetreating == false)
        {
            StopAttacking();

            isRetreating = true;
            isMoving     = true;

            currentTargetAttacker        = null;
            currentTargetAttackersHealth = null;

            anim.SetBool("isMoving", true);
            if (squad.isRangedUnit && myShooter != null)
            {
                anim.SetBool("isShooting", false);
            }

            if (squad.squadType == SquadType.Laborers)
            {
                Laborer laborer = (Laborer)allyScript;
                laborer.StopWorking();
            }

            // While the defender is still within the bounds of the visible map (-1.25 on the x is outside of our camera's view)
            while (transform.position.x > -1.25f && health.isDead == false)
            {
                if (transform.localScale.x != -1)
                {
                    transform.localScale = new Vector2(-1, 1); // Flip the sprite
                }
                if (transform.position.x > 0.25f || (transform.position.x <= 0.25 && transform.position.y >= 2.9f && transform.position.y <= 3.1f))
                {
                    transform.Translate(Vector2.left * runSpeed * 2 * Time.deltaTime); // Retreat double the speed
                }
                else if (transform.position.x <= 0.25f && transform.position.y < 2.9f)
                {
                    sr.sortingOrder = -650;
                    transform.Translate(Vector2.up * runSpeed * 2 * Time.deltaTime);
                }
                else if (transform.position.x <= 0.25f && transform.position.y > 3.1f)
                {
                    sr.sortingOrder = -650;
                    transform.Translate(Vector2.down * runSpeed * 2 * Time.deltaTime);
                }

                if (transform.position.x <= -2.25f)
                {
                    Destroy(squad.gameObject); // Destroy the squad
                    break;
                }

                yield return(null);
            }
        }
    }
        private static string GetLaborerFullName(Laborer laborer)
        {
            var fullName = new StringBuilder();

            fullName.Append(laborer.FirstName);
            fullName.Append(GetNamePart(laborer.SecondName));
            fullName.Append(GetNamePart(laborer.ThirdName));
            fullName.Append(GetNamePart(laborer.FourthName));

            return(fullName.ToString());
        }
Exemple #3
0
    void OnTriggerEnter2D(Collider2D collision)
    {
        collision.TryGetComponent(out Attacker attacker);
        collision.TryGetComponent(out Defender defender);

        // If a laborer enters the square
        if (defender != null && defender.squad.squadType == SquadType.Laborers && defender.isRetreating == false)
        {
            Laborer laborer = defender.GetComponent <Laborer>();
            if (laborer.targetResourceDeposit == null && unoccupiedResourceDeposits.Count > 0)
            {
                // Choose a random deposit
                int randomIndex = Random.Range(0, unoccupiedResourceDeposits.Count);

                // Get a random x offset for the Laborer's new unit position we will be assigning it
                float coinToss = Random.Range(0, 2);
                float xOffset;
                if (coinToss == 0)
                {
                    xOffset = unoccupiedResourceDeposits[randomIndex].miningXOffset;
                }
                else
                {
                    xOffset = -unoccupiedResourceDeposits[randomIndex].miningXOffset;
                }

                // Set the Laborer's unit position to the left or right of the deposit
                defender.unitPosition = unoccupiedResourceDeposits[randomIndex].transform.localPosition + new Vector3(xOffset, 0);

                // Set the Laborer's target deposit to this one
                laborer.targetResourceDeposit = unoccupiedResourceDeposits[randomIndex];
                unoccupiedResourceDeposits[randomIndex].myLaborer = defender;

                //Set occupied to true for the deposit
                unoccupiedResourceDeposits[randomIndex].occupied = true;

                // Remove the deposit from our list of unoccupied deposits
                unoccupiedResourceDeposits.Remove(unoccupiedResourceDeposits[randomIndex]);

                laborerSquadCurrentlyOnNode = defender.squad;
            }
        }
        else if (attacker != null && attacker.canAttackNodes) // If an attacker who can attack resource nodes enters the square
        {
            // Set the Attacker's target Resource Node to this Node
            attacker.currentTargetNode = this;

            // Set the Attacker's target resource deposit to a random deposit within this Node
            AssignTargetToAttacker(attacker);
        }
    }
 public static LaborerDto ToDto(this Laborer laborer)
 {
     return(new LaborerDto
     {
         //Email=
         EstablishmentId = laborer.EstablishmentId,
         Gender = laborer.Gender.Name,
         IdExpirationDate = laborer.LastWPExpirationDate,
         IdNumber = laborer.IdNo,
         Job = laborer.IdNo,
         //MobileNumber,
         Name = GetLaborerFullName(laborer),
         Nationality = laborer.Nationality.Name,
         Number = $"{laborer.LaborOfficeId}-{laborer.SequenceNumber}",
         PassportNumber = laborer.PassportNo,
         ServiceStartDate = laborer.ServiceStartDate,
         Status = laborer.Status.Name,
         StatusModificationDate = laborer.LaborerStatusModificationDate,
         YearOfBirth = laborer.YearOfBirth
     });
 }
Exemple #5
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            // IO events start
            Random        random            = new Random();
            KeyboardState lastKeyboardState = KeyboardState;

            KeyboardState = Keyboard.GetState();
            MouseState lastMouseState = MouseState;

            MouseState   = Mouse.GetState();
            MousePos.X   = MouseState.X;
            MousePos.Y   = MouseState.Y;
            CursorMapPos = coordinateConverter.ScreenToMap(MousePos, DisplayShift);

            if (KeyboardState.IsKeyDown(Keys.Right))
            {
                DisplayShift.X -= 5;
            }
            if (KeyboardState.IsKeyDown(Keys.Left))
            {
                DisplayShift.X += 5;
            }
            if (KeyboardState.IsKeyDown(Keys.Up))
            {
                DisplayShift.Y += 5;
            }
            if (KeyboardState.IsKeyDown(Keys.Down))
            {
                DisplayShift.Y -= 5;
            }
            if (KeyboardState.IsKeyDown(Keys.Escape))
            {
                Exit();
            }
            if (KeyboardState.IsKeyUp(Keys.P) &&
                lastKeyboardState.IsKeyDown(Keys.P))
            {
                DisplayPaths = !DisplayPaths;
            }
            if (KeyboardState.IsKeyUp(Keys.S) &&
                lastKeyboardState.IsKeyDown(Keys.S))
            {
                DisplayScore = !DisplayScore;
            }

            if (MouseState.LeftButton == ButtonState.Released &&
                lastMouseState.LeftButton == ButtonState.Pressed)
            {
                Point mapCoords = coordinateConverter.ScreenToMap(MousePos, DisplayShift);
                if (gameMap.IsPointInside(mapCoords) &&
                    gameMap.game_tiles[(int)mapCoords.Y, (int)mapCoords.X].IsPathable())
                {
                    LumberCamp newLumberCamp = new LumberCamp(mapCoords);
                    gameMap.game_tiles[(int)mapCoords.Y, (int)mapCoords.X].Building = newLumberCamp;
                    gameMap.GetBuildings().Add(newLumberCamp);
                    List <Point> validNeighbors     = gameMap.GetValidNeighbors(mapCoords);
                    List <Point> spawnableNeighbors = new List <Point>();
                    foreach (Point validNeighbor in validNeighbors)
                    {
                        if (gameMap.game_tiles[(int)validNeighbor.Y, (int)validNeighbor.X].IsPathable())
                        {
                            spawnableNeighbors.Add(validNeighbor);
                        }
                    }
                    for (int x = 0; x < 3; x++)
                    {
                        Point   spawnTile  = spawnableNeighbors[random.Next(spawnableNeighbors.Count)];
                        Laborer newLaborer = new Laborer(spawnTile);
                        gameMap.GetUnits().Add(newLaborer);
                        GameTile theTile = gameMap.game_tiles[(int)spawnTile.Y, (int)spawnTile.X];
                        theTile.Unit = newLaborer;
                    }
                }
            }

            // IO events end


            // game logic start
            List <Entity> expiredEntities = new List <Entity>();

            foreach (Unit unitObject in gameMap.GetUnits())
            {
                unitObject.Tick(gameMap, Player1, pathfinder);
            }
            foreach (Terrain terrainObject in gameMap.GetTerrain())
            {
                terrainObject.Tick(gameMap, Player1, pathfinder);
                if (terrainObject.IsExpired())
                {
                    expiredEntities.Add(terrainObject);
                }
            }
            foreach (Entity entityObject in expiredEntities)
            {
                entityObject.OnDeath(gameMap);
                gameMap.GetTerrain().Remove(entityObject);
                gameMap.GetBuildings().Remove(entityObject);
            }


            // game logic ends


            base.Update(gameTime);
        }
    void Die()
    {
        // Play the appropriate death sound
        if (defender != null)
        {
            AudioManager.instance.PlayDeathSound(defender.voiceType);
        }
        else if (attacker != null)
        {
            AudioManager.instance.PlayDeathSound(attacker.voiceType);
        }

        isDead       = true;
        isBlessed    = false;
        thornsActive = false;
        anim.SetBool("isDead", true);
        boxCollider.enabled         = false;
        spriteRenderer.sortingOrder = -8000;

        // Rotate the body a random rotation
        float randomRotation = Random.Range(-70f, 70f);

        transform.eulerAngles = new Vector3(0, 0, randomRotation);
        transform.SetParent(gm.deadCharactersParent);

        // Defender:
        if (defender != null)
        {
            defender.squad.deadUnits.Add(defender);

            if (defender.squad.abilityIconController.resurrectAbilityActive && defender.squad.abilityIconController.squadHighlighter.selectedSquad == defender.squad)
            {
                defender.squad.HighlightSquad();
            }

            // Disable character scripts to prevent further running of Update functions
            if (defender.myShooter != null)
            {
                defender.myShooter.enabled = false;
            }

            if (defender.allyScript != null)
            {
                if (defender.squad.squadType == SquadType.Laborers)
                {
                    Laborer laborer = (Laborer)defender.allyScript;
                    laborer.StopWorking();
                }

                defender.allyScript.enabled = false;
            }

            defender.enabled = false;
        }

        // Attacker:
        if (attacker != null)
        {
            // Drop supplies for the player
            if (attacker.suppliesDroppedOnDeath > 0)
            {
                ResourceDisplay.instance.AddSupplies(attacker.suppliesDroppedOnDeath);
                TextPopup.CreateResourceGainPopup(transform.position + new Vector3(0f, 0.2f), attacker.suppliesDroppedOnDeath, ResourceType.Supplies);
            }

            if (attacker.currentTargetObstacle != null)
            {
                attacker.currentTargetObstacle.attackersNearby.Remove(attacker);
            }

            // Disable character scripts to prevent further running of Update functions
            if (attacker.myShooter != null)
            {
                attacker.myShooter.enabled     = false;
                attacker.rangeCollider.enabled = false;
            }

            attacker.enabled = false;

            // Subtract from total number of attackers left in the level
            levelController.AttackerKilled();
        }
    }
        private void AllServiceLogs()
        {
            Establishment est1 = new Establishment {
                Id = 1, Name = "منشأة 1", LaborOfficeId = 1, SequenceNumber = 233
            };
            Establishment est2 = new Establishment {
                Id = 2, Name = "2 منشأة", LaborOfficeId = 1, SequenceNumber = 4536
            };
            Establishment est3 = new Establishment {
                Id = 3, Name = "3 منشأة", LaborOfficeId = 1, SequenceNumber = 787654
            };

            List <Establishment> ests = new List <Establishment>
            {
                est1,
                est2,
                est3
            };
            LaborOffice office1 = new LaborOffice {
                Id = 1, Name = "مكتب 1", Establishments = ests
            };
            LaborOffice office2 = new LaborOffice {
                Id = 2, Name = "مكتب 2", Establishments = ests
            };
            LaborOffice office3 = new LaborOffice {
                Id = 3, Name = "مكتب 3", Establishments = ests
            };

            Laborer lab1 = new Laborer
            {
                Id              = 34,
                BorderNo        = "3003300333",
                EstablishmentId = 1,
                Establishment   = est1,
                LaborOffice     = office1,
                Nationality     = new Nationality {
                    Id = 23, Name = "جنسية 1"
                },
                NationalityId  = 23,
                SaudiFlagId    = 1,
                SecondName     = "second name",
                SequenceNumber = 536346,
                Status         = new LaborerStatus {
                    Id = 5, Name = "Status 1"
                },
                StatusId   = 5,
                FirstName  = "first",
                FourthName = "fourth",
                IdNo       = "22337758",
                Job        = new Job
                {
                    Id   = 2,
                    Name = "job 1"
                },
                JobId         = 2,
                LaborOfficeId = 1,
                SaudiFlag     = new SaudiFlag
                {
                    Id   = 343,
                    Name = "NonSaudi"
                },
                ThirdName = "third",
            };
            Laborer lab2 = new Laborer
            {
                Id              = 30,
                BorderNo        = "355998877",
                EstablishmentId = 2,
                Establishment   = est2,
                LaborOffice     = office2,
                Nationality     = new Nationality {
                    Id = 23, Name = "جنسية 1"
                },
                NationalityId  = 23,
                SaudiFlagId    = 1,
                SecondName     = "second name",
                SequenceNumber = 98556,
                Status         = new LaborerStatus {
                    Id = 5, Name = "Status 1"
                },
                StatusId   = 5,
                FirstName  = "first",
                FourthName = "fourth",
                IdNo       = "223377500",
                Job        = new Job
                {
                    Id   = 2,
                    Name = "job 1"
                },
                JobId         = 2,
                LaborOfficeId = 1,
                SaudiFlag     = new SaudiFlag
                {
                    Id   = 343,
                    Name = "NonSaudi"
                },
                ThirdName = "third",
            };
            Laborer lab3 = new Laborer
            {
                Id              = 30,
                BorderNo        = "366989555",
                EstablishmentId = 3,
                Establishment   = est3,
                LaborOffice     = office3,
                Nationality     = new Nationality {
                    Id = 23, Name = "جنسية 1"
                },
                NationalityId  = 23,
                SaudiFlagId    = 1,
                SecondName     = "second name",
                SequenceNumber = 98556,
                Status         = new LaborerStatus {
                    Id = 5, Name = "Status 1"
                },
                StatusId   = 5,
                FirstName  = "first",
                FourthName = "fourth",
                IdNo       = "22337744",
                Job        = new Job
                {
                    Id   = 2,
                    Name = "job 1"
                },
                JobId         = 2,
                LaborOfficeId = 1,
                SaudiFlag     = new SaudiFlag
                {
                    Id   = 343,
                    Name = "NonSaudi"
                },
                ThirdName = "third",
            };

            OracleTransactionLog log1 = new OracleTransactionLog
            {
                Establishment   = est1,
                EstablishmentId = est1.Id,
                Laborer         = lab1,
                LaborerId       = lab1.Id,
                Id                 = 1,
                LabOff             = 4,
                ManPower           = false,
                OnlineRequestsId   = 5911532,
                OracleResult       = "04-1438-41323",
                RepresentativeIdNo = "1010389078",
                SeqNo              = 41323,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 1,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = "******", FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 12863518
            };
            OracleTransactionLog log2 = new OracleTransactionLog
            {
                Establishment   = est1,
                EstablishmentId = est1.Id,
                Laborer         = lab2,
                LaborerId       = lab2.Id,
                Id                 = 2,
                LabOff             = 9,
                ManPower           = false,
                OnlineRequestsId   = 5911549,
                OracleResult       = "09-1438-103543",
                RepresentativeIdNo = 1031470568.ToString(),
                SeqNo              = 103543,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 1,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = 1031470568.ToString(), FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 12863518
            };
            OracleTransactionLog log3 = new OracleTransactionLog
            {
                Establishment   = est1,
                EstablishmentId = est1.Id,
                Laborer         = lab3,
                LaborerId       = lab3.Id,
                Id                 = 3,
                LabOff             = 1,
                ManPower           = false,
                OnlineRequestsId   = 5911548,
                OracleResult       = "01-1438-193994",
                RepresentativeIdNo = 1047365240.ToString(),
                SeqNo              = 193994,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 1,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = 1047365240.ToString(), FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 11062868
            };

            OracleTransactionLog log4 = new OracleTransactionLog
            {
                Establishment   = est2,
                EstablishmentId = est2.Id,
                Laborer         = lab1,
                LaborerId       = lab1.Id,
                Id                 = 4,
                LabOff             = 9,
                ManPower           = false,
                OnlineRequestsId   = 5911547,
                OracleResult       = "09-1438-103542",
                RepresentativeIdNo = 1076744463.ToString(),
                SeqNo              = 103542,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 1,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = 1076744463.ToString(), FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 172833
            };
            OracleTransactionLog log5 = new OracleTransactionLog
            {
                Establishment   = est3,
                EstablishmentId = est3.Id,
                Laborer         = lab1,
                LaborerId       = lab1.Id,
                Id                 = 5,
                LabOff             = 1,
                ManPower           = false,
                OnlineRequestsId   = 5911546,
                OracleResult       = "01-1438-193993",
                RepresentativeIdNo = 1043604378.ToString(),
                SeqNo              = 193993,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 1,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = 1043604378.ToString(), FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 12593634
            };


            OracleTransactionLog log6 = new OracleTransactionLog
            {
                Establishment   = est2,
                EstablishmentId = est2.Id,
                Laborer         = lab2,
                LaborerId       = lab2.Id,
                Id                 = 6,
                LabOff             = 9,
                ManPower           = false,
                OnlineRequestsId   = 5911545,
                OracleResult       = "09-1438-103541",
                RepresentativeIdNo = 1059869154.ToString(),
                SeqNo              = 103541,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 1,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = 1059869154.ToString(), FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 819067
            };
            OracleTransactionLog log7 = new OracleTransactionLog
            {
                Establishment   = est2,
                EstablishmentId = est2.Id,
                Laborer         = lab3,
                LaborerId       = lab3.Id,
                Id                 = 7,
                LabOff             = 18,
                ManPower           = false,
                OnlineRequestsId   = 5911544,
                OracleResult       = "18-1438-9778",
                RepresentativeIdNo = 1037748546.ToString(),
                SeqNo              = 9778,
                Service            = new Service {
                    Id = 3, Name = "TransferSponser"
                },
                ServiceId         = 3,
                SerYY             = 1438,
                TimeStamp         = new DateTime(2017, 4, 26),
                TransactionStatus = 3,
                User = new Tamkeen.IndividualsServices.Core.Models.User {
                    Id = 33, UserName = 1037748546.ToString(), FirstName = "first", SecondName = "second", ThirdName = "third", FourthName = "last"
                },
                UserId = 12167795
            };

            //OracleTransactionLog log8 = new OracleTransactionLog
            //{
            //    Establishment = est1,
            //    EstablishmentId = est1.Id,
            //    Id = 8,
            //    LabOff = 9,
            //    ManPower = false,
            //    OnlineRequestsId = 5911543,
            //    OracleResult = "09-1438-103540",
            //    RepresentativeIdNo = 1014032187.ToString(),
            //    SeqNo = 103540,
            //    Service = new Service { Id = 3, Name = "TransferSponser" },
            //    ServiceId = 3,
            //    SerYY = 1438,
            //    TimeStamp = new DateTime(2017, 4, 26),
            //    TransactionStatus = 1,
            //    User = new Tamkeen.IndividualsServices.Core.Models.User { Id = 33, UserName = 1014032187.ToString(), FullName = "fullname8" },
            //    UserId = 12580233
            //};
            //OracleTransactionLog log9 = new OracleTransactionLog
            //{
            //    Establishment = est1,
            //    EstablishmentId = est1.Id,
            //    Id = 9,
            //    LabOff = 9,
            //    ManPower = false,
            //    OnlineRequestsId = 5911542,
            //    OracleResult = "09-1438-103539",
            //    RepresentativeIdNo = 1073766642.ToString(),
            //    SeqNo = 103539,
            //    Service = new Service { Id = 3, Name = "TransferSponser" },
            //    ServiceId = 3,
            //    SerYY = 1438,
            //    TimeStamp = new DateTime(2017, 4, 26),
            //    TransactionStatus = 1,
            //    User = new Tamkeen.IndividualsServices.Core.Models.User { Id = 33, UserName = 1073766642.ToString(), FullName = "fullname9" },
            //    UserId = 12110135
            //};
            //OracleTransactionLog log10 = new OracleTransactionLog
            //{
            //    Establishment = est1,
            //    EstablishmentId = est1.Id,
            //    Id = 10,
            //    LabOff = 9,
            //    ManPower = false,
            //    OnlineRequestsId = 5911541,
            //    OracleResult = "09-1438-103538",
            //    RepresentativeIdNo = 1056550583.ToString(),
            //    SeqNo = 103538,
            //    Service = new Service { Id = 3, Name = "TransferSponser" },
            //    ServiceId = 3,
            //    SerYY = 1438,
            //    TimeStamp = new DateTime(2017, 4, 26),
            //    TransactionStatus = 1,
            //    User = new Tamkeen.IndividualsServices.Core.Models.User { Id = 33, UserName = 1056550583.ToString(), FullName = "fullname10" },
            //    UserId = 13101733
            //};



            logs.Add(log1);
            logs.Add(log2);
            logs.Add(log3);
            logs.Add(log4);
            logs.Add(log5);
            logs.Add(log6);
            logs.Add(log7);
            //logs.Add(log8);
            //logs.Add(log9);
            //logs.Add(log10);
        }