예제 #1
0
 private void NotifyStatusChange(DamageStatus oldStatus, DamageStatus newStatus)
 {
     if (HasDamageBeenAccepted(oldStatus, newStatus))
     {
         _damageReportManager.SendDamageAcceptedNotification(GetCrewDevices());
     }
 }
예제 #2
0
    void OnTriggerEnter2D(Collider2D target)
    {
        switch (target.gameObject.tag)
        {
        case "Projectile":
            //DamageStatus targetDamage = target.transform.root.gameObject.GetComponent<DamageStatus>();
            DamageStatus targetDamage = target.transform.parent.gameObject.GetComponent <DamageStatus>();

            if (targetDamage && _hpStatus)
            {
                _hpStatus.AddHp(-targetDamage.GetDamage());
            }

            //Enemy를 삭제합니다
            if (_hpStatus.GetHp() == 0)
            {
                Destroy(transform.gameObject);
            }
            break;

        case "Planet":
            _hpStatus.AddHp(-float.MaxValue);

            if (_hpStatus.GetHp() == 0)
            {
                Destroy(transform.gameObject);
            }
            break;
        }
    }
예제 #3
0
        public DamageReportCompleteOutputDto ModifyDamageReport(string token, int id, ModifyDamageReportDto modifiedDamage)
        {
            _credentialsVerifier.VerifyCredentialsForModifyingDamageReports(token);

            DamageReport damageReport = _damageReportsRepository.Get(id);

            DamageStatus oldStatus = damageReport.Status;

            _objectMapper.Map(modifiedDamage, damageReport);

            DamageStatus newStatus = damageReport.Status;

            CheckIfDamageIsModifiable(damageReport);

            if (modifiedDamage.Status == DamageStatusDto.Repairing)
            {
                damageReport.CrewMemberThatRepairedTheDamage = _userRepository.Get(modifiedDamage.Crew.Id) as Crew;
            }

            CurrentUnitOfWork.SaveChanges();

            NotifyStatusChange(oldStatus, newStatus);

            return(_objectMapper.Map <DamageReportCompleteOutputDto>(damageReport));
        }
예제 #4
0
    private void UpdateDamageStatus(DamageStatus damageStatusTemp)
    {
        switch (damageStatusTemp)
        {
        case DamageStatus.light:
            ShowDamageLevel(0);
            break;

        case DamageStatus.medium:
            ShowDamageLevel(1);
            break;

        case DamageStatus.heavy:
            ShowDamageLevel(2);
            break;

        case DamageStatus.critical:
            ShowDamageLevel(3);
            RespawnWithCarController();
            break;

        default:
            break;
        }
    }
예제 #5
0
        public void ApplyChanges(DamageStatus obj, IBusinessLogicFacade bl)
        {
            var target = obj;
            var source = this;

            target.Name = source.Name;

            if (target.Slug == null)
            {
                target.Slug = SlugGenerator.GenerateSlug(bl, source.Name, "DamageStatus");
            }
        }
예제 #6
0
 private void SetDamageStatus()
 {
     // Set the damage status of the ship
     //
     if (this.IsDestroyed())
     {
         this._damageStatus = DamageStatus.Destroyed;
     }
     else
     {
         this._damageStatus = DamageStatus.Damage;
     }
 }
예제 #7
0
        public void Refresh(DamageStatus obj)
        {
            if (obj == null)
            {
                return;
            }

            var target = this;
            var source = obj;

            target.Name     = source.Name;
            target.Slug     = source.Slug;
            target.StatusId = source.StatusId;
        }
예제 #8
0
        public IEnumerable <Damage> GetDamagesByUserAndStatus(User user, DamageStatus status)
        {
            var buildingId = _context.Buildings
                             .Include(prop => prop.HouseManager)
                             .Where(p => p.HouseManager == user)
                             .Select(p => p.Id);

            var damages = GetAll(x => x.Include(p => p.Building)
                                 .ThenInclude(p => p.Flats)
                                 .ThenInclude(p => p)
                                 .Include(p => p.Building)
                                 .ThenInclude(p => p.Address)
                                 .Include(p => p.BlobFiles)
                                 .Include(p => p.RequestCreator));

            damages = damages.Where(p => buildingId.Contains(p.Building.Id))
                      .Where(p => p.Status == status);
            return(damages);
        }
예제 #9
0
    private void OnTriggerStay2D(Collider2D target)
    {
        switch (target.gameObject.tag)
        {
        case "Projectile":
            DamageStatus targetDamage = target.transform.parent.gameObject.GetComponent <DamageStatus>();

            if (targetDamage && _hpStatus)
            {
                _hpStatus.AddHp(-targetDamage.GetDamage());
            }

            //Enemy를 삭제합니다
            if (_hpStatus.GetHp() == 0)
            {
                Destroy(transform.gameObject);
            }
            break;
        }
    }
예제 #10
0
    void OnCollisionEnter2D(Collision2D other)
    {
        if (other.gameObject.CompareTag("Target"))
        {
            //Exit if we have already done some damage
            if (detectedBefore)
            {
                return;
            }

            //Set the other detectedBefore variable to true
            DamageStatus dmStat = other.gameObject.GetComponent <DamageStatus>();
            if (dmStat)
            {
                dmStat.detectedBefore = true;
            }

            // Put damage/or code to run once below
        }
    }
예제 #11
0
    // Update is called once per frame
    void Update()
    {
        if (_tower)
        {
            ProjectileShooter projectileShooter = _tower.GetComponent <ProjectileShooter>();
            GameObject        projectile        = projectileShooter._bulletPrefab;

            DamageStatus damageStatus = projectile.GetComponent <DamageStatus>();

            //GameObject radar = projectile.transform.Find("RadarCollider").gameObject;
            //radar.SetActive(false);

            Text text = transform.Find("Text_FireRate").GetComponent <Text>();
            text.text = projectileShooter.GetFireRate();

            text      = transform.Find("Text_Damage").GetComponent <Text>();
            text.text = damageStatus.GetInfo();

            text = transform.Find("Text_Speed").GetComponent <Text>();
        }
    }
예제 #12
0
    public void UpdateDamageFactor()
    {
        float healthRatio = currentHealth / maxHealth;

        if (healthRatio > mediumHealthRatio) {
            // 100-medium
            DamageFactor = 1.0f;
            damageStatus = DamageStatus.GoodHealth;
            damageText.text = "Bonne condition";
            damageText.color = Color.green;
        } else if (healthRatio > lowHealthRatio) {
            // medium-low
            DamageFactor = mediumHealthFactor;
            damageStatus = DamageStatus.MediumHealth;
            damageText.text = "Moyenne condition";
            damageText.color = Color.yellow;
        } else {
            //low-broken
            DamageFactor = lowHealthFactor;
            damageStatus = DamageStatus.LowHealth;
            damageText.text = "Mauvaise condition";
            damageText.color = Color.red;
        }
    }
예제 #13
0
        public ActionResult ActOnDamage(Guid id)
        {
            DamageStatus status = db.DamageStatuses.Find(id);

            return(View(status));
        }
예제 #14
0
 public DamageStatusViewModel(DamageStatus obj)
 {
     Refresh(obj);
 }
예제 #15
0
 private bool HasDamageBeenAccepted(DamageStatus oldStatus, DamageStatus newStatus)
 {
     return(oldStatus != DamageStatus.Accepted && newStatus == DamageStatus.Accepted);
 }