コード例 #1
0
        private void _setHpGauge()
        {
            bool flag = false;

            this._eHitState = new HpHitState[this._eBattleship.get_Count()];
            List <ShipModel_Defender> defenders = this._clsTorpedo.GetDefenders(false);

            for (int i = 0; i < defenders.get_Count(); i++)
            {
                DamageModel attackDamage = this._clsTorpedo.GetAttackDamage(defenders.get_Item(i).TmpId);
                switch (attackDamage.GetHitState())
                {
                case BattleHitStatus.Miss:
                    if (this._eHitState[i] == HpHitState.None)
                    {
                        this._eHitState[i] = HpHitState.Miss;
                    }
                    break;

                case BattleHitStatus.Normal:
                    if (this._eHitState[i] != HpHitState.Critical)
                    {
                        this._eHitState[i] = HpHitState.Hit;
                    }
                    break;

                case BattleHitStatus.Clitical:
                    this._eHitState[i] = HpHitState.Critical;
                    break;
                }
                BattleHitStatus status;
                if (this._eHitState[i] == HpHitState.Miss)
                {
                    status = BattleHitStatus.Miss;
                }
                else if (this._eHitState[i] == HpHitState.Critical)
                {
                    status = BattleHitStatus.Clitical;
                }
                else
                {
                    status = BattleHitStatus.Normal;
                }
                this._battleHpGauges.SetGauge(i, false, false, true, false);
                this._battleHpGauges.SetHp(i, defenders.get_Item(i).MaxHp, defenders.get_Item(i).HpBefore, defenders.get_Item(i).HpAfter, attackDamage.GetDamage(), status, false);
                if (attackDamage.GetProtectEffect() && !flag)
                {
                    flag            = true;
                    this._isProtect = true;
                    this._rescueCutIn.AddShipList(this._eBattleship.get_Item(0), this._eBattleship.get_Item(i));
                }
            }
        }
コード例 #2
0
    private void ProcessServerHit(RaycastHit2D hit, int penetration, DamageModel model)
    {
        if (model == null)
        {
            return;
        }

        if (model.ColliderPartMap.ContainsKey(hit.collider))
        {
            var part = model.ColliderPartMap[hit.collider];

            if (part == null)
            {
                return;
            }

            // Deal damage to that part!
            switch (Data.DamageType)
            {
            case ProjectileDamageType.NORMAL:
                // Deal damage to only the hit part.
                part.Damage(damage);

                break;

            case ProjectileDamageType.EXPLOSIVE:
                // Do an explosion style damage that will harm parts around the inital hit point.
                // Does not spawn explosion effect or anything like that.
                model.DealExplosionDamage(damage, part.ID, Data.ExplosionCollateralDamage);

                break;

            default:
                Debug.LogError("Unhandled type of projectile damage!! ({0})".Form(Data.DamageType));
                break;
            }

            if (ServerHit != null)
            {
                ServerHit.Invoke(hit, penetration, model);
            }
        }
        else
        {
            // Hit a collider that was part of a damage model, but the collider was not mapped.
            // This counted as a penetration hit, but it didn't deal damage. :(
            Debug.LogWarning("Unmapped collider on damage model '{0}'. Collider name: '{1}'. Hit with projectile, but could not deal damage. Please consider making unmapped colliders triggers so that they are not hit.".Form(model.name, hit.collider.name));
            return;
        }
    }
コード例 #3
0
        private void _createExplosion()
        {
            _listBombCritical = new List <bool>();
            _listExplosion    = new List <ParticleSystem>();
            _listMiss         = new List <ParticleSystem>();
            Vector3 position5 = default(Vector3);

            for (int i = 0; i < _defenders.Count; i++)
            {
                DamageModel attackDamage = _clsShelling.GetAttackDamage(_defenders[i].TmpId);
                int         key          = (!attackDamage.GetProtectEffect()) ? _defenders[i].Index : _defenders[i].Index;
                if (attackDamage.GetHitState() != 0)
                {
                    _isAttack = true;
                    ParticleSystem val = (!((UnityEngine.Object)BattleTaskManager.GetParticleFile().explosionAerial == null)) ? UnityEngine.Object.Instantiate <ParticleSystem>(BattleTaskManager.GetParticleFile().explosionAerial) : BattleTaskManager.GetParticleFile().explosionAerial;
                    ((Component)val).SetActive(isActive: true);
                    ((Component)val).transform.parent = BattleTaskManager.GetBattleField().transform;
                    Transform transform = ((Component)val).transform;
                    Vector3   position  = _eBattleship[key].transform.position;
                    float     x         = position.x;
                    Vector3   position2 = _eBattleship[key].transform.position;
                    transform.position = new Vector3(x, 3f, position2.z);
                    _listExplosion.Add(val);
                    _listBombCritical.Add((attackDamage.GetHitState() == BattleHitStatus.Clitical) ? true : false);
                }
                else
                {
                    int       iLim  = XorRandom.GetILim(0, 2);
                    Vector3[] array = new Vector3[3]
                    {
                        new Vector3(5f, 0f, -5f),
                        new Vector3(-3f, 0f, 5f),
                        new Vector3(4f, 0f, -7f)
                    };
                    Vector3 position3 = _eBattleship[key].transform.position;
                    float   x2        = position3.x + array[iLim].x;
                    Vector3 position4 = _eBattleship[key].transform.position;
                    position5 = new Vector3(x2, 0f, position4.z + array[iLim].z);
                    ParticleSystem val2 = (!((UnityEngine.Object)BattleTaskManager.GetParticleFile().splashMiss == null)) ? UnityEngine.Object.Instantiate <ParticleSystem>(BattleTaskManager.GetParticleFile().splashMiss) : BattleTaskManager.GetParticleFile().splashMiss;
                    ((Component)val2).SetActive(isActive: true);
                    ((Component)val2).transform.parent   = BattleTaskManager.GetBattleField().transform;
                    ((Component)val2).transform.position = position5;
                    val2.Stop();
                    _listMiss.Add(val2);
                }
            }
        }
コード例 #4
0
        private void _createTorpedoWake()
        {
            ShipModel_BattleAll[]     ships_e   = BattleTaskManager.GetBattleManager().Ships_e;
            List <ShipModel_Defender> defenders = this._clsTorpedo.GetDefenders(false);

            for (int i = 0; i < defenders.get_Count(); i++)
            {
                DamageModel attackDamage = this._clsTorpedo.GetAttackDamage(defenders.get_Item(i).TmpId);
                Vector3     vector       = (!attackDamage.GetProtectEffect()) ? this._eBattleship.get_Item(i).get_transform().get_position() : this._eBattleship.get_Item(i).get_transform().get_position();
                Vector3     target       = (attackDamage.GetHitState() != BattleHitStatus.Miss) ? new Vector3(vector.x, vector.y + 1f, vector.z) : new Vector3(vector.x - 1.5f, vector.y - 1.5f, vector.z - 20f);
                this._listPSTorpedoWake.Add(this._createTorpedo(new Vector3(this._eBattleship.get_Item(i).get_transform().get_position().x, 1f, this._eBattleship.get_Item(i).get_transform().get_position().z + 40f), target, (attackDamage.GetHitState() != BattleHitStatus.Miss) ? 0.6f : 1f, attackDamage.GetHitState() != BattleHitStatus.Miss));
                if (attackDamage.GetHitState() != BattleHitStatus.Miss)
                {
                    this._isAttackE = true;
                }
            }
        }
コード例 #5
0
		private void _createTorpedoWake()
		{
			ShipModel_BattleAll[] ships_e = BattleTaskManager.GetBattleManager().Ships_e;
			List<ShipModel_Defender> defenders = _clsTorpedo.GetDefenders(is_friend: false);
			for (int i = 0; i < defenders.Count; i++)
			{
				DamageModel attackDamage = _clsTorpedo.GetAttackDamage(defenders[i].TmpId);
				Vector3 vector = (!attackDamage.GetProtectEffect()) ? _eBattleship[i].transform.position : _eBattleship[i].transform.position;
				Vector3 target = (attackDamage.GetHitState() != 0) ? new Vector3(vector.x, vector.y + 1f, vector.z) : new Vector3(vector.x - 1.5f, vector.y - 1.5f, vector.z - 20f);
				List<PSTorpedoWake> listPSTorpedoWake = _listPSTorpedoWake;
				Vector3 position = _eBattleship[i].transform.position;
				float x = position.x;
				Vector3 position2 = _eBattleship[i].transform.position;
				listPSTorpedoWake.Add(_createTorpedo(new Vector3(x, 1f, position2.z + 40f), target, (attackDamage.GetHitState() != 0) ? 0.6f : 1f, (attackDamage.GetHitState() != 0) ? true : false));
				if (attackDamage.GetHitState() != 0)
				{
					_isAttackE = true;
				}
			}
		}
コード例 #6
0
        private void _createTorpedoWakeOnes()
        {
            Dictionary <int, UIBattleShip> dicFriendBattleShips = BattleTaskManager.GetBattleShips().dicFriendBattleShips;
            Dictionary <int, UIBattleShip> dicEnemyBattleShips  = BattleTaskManager.GetBattleShips().dicEnemyBattleShips;
            bool isTC = false;

            for (int i = 0; i < this._clsTorpedo.ShienShips.Length; i++)
            {
                if (this._clsTorpedo.ShienShips[i] != null)
                {
                    if (this._clsTorpedo.ShienShips[i].ShipType == 4)
                    {
                        isTC = true;
                    }
                }
            }
            this._listTorpedoWake = new List <PSTorpedoWake>();
            List <ShipModel_Defender> defenders = this._clsTorpedo.GetDefenders(false);

            for (int j = 0; j < defenders.get_Count(); j++)
            {
                DamageModel attackDamage      = this._clsTorpedo.GetAttackDamage(defenders.get_Item(j).TmpId);
                Vector3     vecStraightTarget = (!attackDamage.GetProtectEffect()) ? dicEnemyBattleShips.get_Item(j).get_transform().get_position() : dicEnemyBattleShips.get_Item(0).get_transform().get_position();
                Vector3     injection         = new Vector3(vecStraightTarget.x, vecStraightTarget.y, dicFriendBattleShips.get_Item(0).get_transform().get_position().z - 1f);
                Vector3     target            = (attackDamage.GetHitState() != BattleHitStatus.Miss) ? new Vector3(vecStraightTarget.x, vecStraightTarget.y, vecStraightTarget.z + 20f) : new Vector3(vecStraightTarget.x - 3f, vecStraightTarget.y, vecStraightTarget.z + 20f);
                this._listTorpedoWake.Add(this._createTorpedo(true, injection, target, 2.65f, false, false));
                this._setTopCamera(injection.x);
                this._vecStraightTarget         = vecStraightTarget;
                this._fStraightTargetGazeHeight = dicEnemyBattleShips.get_Item(j).pointOfGaze.y;
            }
            using (List <PSTorpedoWake> .Enumerator enumerator = this._listTorpedoWake.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    PSTorpedoWake current = enumerator.get_Current();
                    current.Injection(iTween.EaseType.linear, true, isTC, delegate
                    {
                    });
                }
            }
        }
コード例 #7
0
        private void _setHpGauge()
        {
            BattleCutInCamera cutInCamera = BattleTaskManager.GetBattleCameras().cutInCamera;
            bool flag = false;

            _eHpPos    = _setHpGaugePosition(_eBattleship.Count);
            _eHitState = new HpHitState[_eBattleship.Count];
            UIPanel uIPanel = Resources.Load <UIPanel>("Prefabs/Battle/UI/UICircleHpPanel");

            _uiHpGaugePanel = Util.Instantiate(uIPanel.gameObject, cutInCamera.transform.gameObject).GetComponent <UIPanel>();
            for (int i = 0; i < _defenders.Count; i++)
            {
                DamageModel attackDamage = _clsShelling.GetAttackDamage(_defenders[i].TmpId);
                if (attackDamage.GetHitState() == BattleHitStatus.Clitical)
                {
                    _eHitState[attackDamage.Defender.Index] = HpHitState.Critical;
                }
                else if (attackDamage.GetHitState() == BattleHitStatus.Miss)
                {
                    if (_eHitState[attackDamage.Defender.Index] == HpHitState.None)
                    {
                        _eHitState[attackDamage.Defender.Index] = HpHitState.Miss;
                    }
                }
                else if (attackDamage.GetHitState() == BattleHitStatus.Normal && _eHitState[attackDamage.Defender.Index] != HpHitState.Critical)
                {
                    _eHitState[attackDamage.Defender.Index] = HpHitState.Hit;
                }
                BattleHitStatus status = (_eHitState[i] != HpHitState.Miss) ? ((_eHitState[i] != HpHitState.Critical) ? BattleHitStatus.Normal : BattleHitStatus.Clitical) : BattleHitStatus.Miss;
                _battleHpGauges.SetGauge(i, isFriend: false, isLight: true, isT: false, isNumber: false);
                _battleHpGauges.SetHp(i, _defenders[i].MaxHp, _defenders[i].HpBefore, _defenders[i].HpAfter, attackDamage.GetDamage(), status, isFriend: false);
                if (attackDamage.GetProtectEffect() && !flag)
                {
                    flag       = true;
                    _isProtect = true;
                    _rescueCutIn.AddShipList(_eBattleship[0], _eBattleship[i]);
                }
            }
        }
コード例 #8
0
            public static void Postfix()
            {
                Game.instance.model.GetUpgrade("Armor Piercing Darts").cost = ArmorPiercingDartsCost;

                foreach (var towerModel in Game.instance.model.towers)
                {
                    if (!towerModel.appliedUpgrades.Contains("Armor Piercing Darts"))
                    {
                        continue;
                    }

                    var attackModel = towerModel.behaviors.First(b => b.name.Contains("AttackModel")).Cast <AttackModel>();

                    var         projectile = attackModel.weapons[0].projectile;
                    DamageModel damage     = projectile.behaviors.First(b => b.name.Contains("Damage")).Cast <DamageModel>();
                    damage.damageTypes = new[] { "Normal" };
                    if (towerModel.appliedUpgrades.Contains("Heat-tipped Darts"))
                    {
                        damage.damage += HeatTippedDartsBonus;
                    }
                }
            }
コード例 #9
0
        private void _createTorpedoWakeOnes()
        {
            Dictionary <int, UIBattleShip> dicFriendBattleShips = BattleTaskManager.GetBattleShips().dicFriendBattleShips;
            Dictionary <int, UIBattleShip> dicEnemyBattleShips  = BattleTaskManager.GetBattleShips().dicEnemyBattleShips;
            bool isTC = false;

            for (int i = 0; i < _clsTorpedo.ShienShips.Length; i++)
            {
                if (_clsTorpedo.ShienShips[i] != null && _clsTorpedo.ShienShips[i].ShipType == 4)
                {
                    isTC = true;
                }
            }
            _listTorpedoWake = new List <PSTorpedoWake>();
            List <ShipModel_Defender> defenders = _clsTorpedo.GetDefenders(is_friend: false);
            Vector3 injection = default(Vector3);

            for (int j = 0; j < defenders.Count; j++)
            {
                DamageModel attackDamage      = _clsTorpedo.GetAttackDamage(defenders[j].TmpId);
                Vector3     vecStraightTarget = (!attackDamage.GetProtectEffect()) ? dicEnemyBattleShips[j].transform.position : dicEnemyBattleShips[0].transform.position;
                float       x        = vecStraightTarget.x;
                float       y        = vecStraightTarget.y;
                Vector3     position = dicFriendBattleShips[0].transform.position;
                injection = new Vector3(x, y, position.z - 1f);
                Vector3 target = (attackDamage.GetHitState() != 0) ? new Vector3(vecStraightTarget.x, vecStraightTarget.y, vecStraightTarget.z + 20f) : new Vector3(vecStraightTarget.x - 3f, vecStraightTarget.y, vecStraightTarget.z + 20f);
                _listTorpedoWake.Add(_createTorpedo(isOnes: true, injection, target, 2.65f, isDet: false, isMiss: false));
                _setTopCamera(injection.x);
                _vecStraightTarget = vecStraightTarget;
                Vector3 pointOfGaze = dicEnemyBattleShips[j].pointOfGaze;
                _fStraightTargetGazeHeight = pointOfGaze.y;
            }
            foreach (PSTorpedoWake item in _listTorpedoWake)
            {
                item.Injection(iTween.EaseType.linear, isPlaySE: true, isTC, delegate
                {
                });
            }
        }
コード例 #10
0
 private void _createExplosion()
 {
     this._listBombCritical = new List <bool>();
     this._listExplosion    = new List <ParticleSystem>();
     this._listMiss         = new List <ParticleSystem>();
     for (int i = 0; i < this._defenders.get_Count(); i++)
     {
         DamageModel attackDamage = this._clsShelling.GetAttackDamage(this._defenders.get_Item(i).TmpId);
         int         num          = (!attackDamage.GetProtectEffect()) ? this._defenders.get_Item(i).Index : this._defenders.get_Item(i).Index;
         if (attackDamage.GetHitState() != BattleHitStatus.Miss)
         {
             this._isAttack = true;
             ParticleSystem particleSystem = (!(BattleTaskManager.GetParticleFile().explosionAerial == null)) ? Object.Instantiate <ParticleSystem>(BattleTaskManager.GetParticleFile().explosionAerial) : BattleTaskManager.GetParticleFile().explosionAerial;
             particleSystem.SetActive(true);
             particleSystem.get_transform().set_parent(BattleTaskManager.GetBattleField().get_transform());
             particleSystem.get_transform().set_position(new Vector3(this._eBattleship.get_Item(num).get_transform().get_position().x, 3f, this._eBattleship.get_Item(num).get_transform().get_position().z));
             this._listExplosion.Add(particleSystem);
             this._listBombCritical.Add(attackDamage.GetHitState() == BattleHitStatus.Clitical);
         }
         else
         {
             int       iLim  = XorRandom.GetILim(0, 2);
             Vector3[] array = new Vector3[]
             {
                 new Vector3(5f, 0f, -5f),
                 new Vector3(-3f, 0f, 5f),
                 new Vector3(4f, 0f, -7f)
             };
             Vector3        position        = new Vector3(this._eBattleship.get_Item(num).get_transform().get_position().x + array[iLim].x, 0f, this._eBattleship.get_Item(num).get_transform().get_position().z + array[iLim].z);
             ParticleSystem particleSystem2 = (!(BattleTaskManager.GetParticleFile().splashMiss == null)) ? Object.Instantiate <ParticleSystem>(BattleTaskManager.GetParticleFile().splashMiss) : BattleTaskManager.GetParticleFile().splashMiss;
             particleSystem2.SetActive(true);
             particleSystem2.get_transform().set_parent(BattleTaskManager.GetBattleField().get_transform());
             particleSystem2.get_transform().set_position(position);
             particleSystem2.Stop();
             this._listMiss.Add(particleSystem2);
         }
     }
 }
コード例 #11
0
    public void ProcessHit(RaycastHit2D hit, int penetration, DamageModel model)
    {
        // Can run on either server or client.

        // On server, deals damage, applies forces.
        if (isServer)
        {
            ProcessServerHit(hit, penetration, model);
        }

        // On clients, spawns hit effects and audio ect.
        // TODO apply hit effect and audio.

        // Apply hit effect.
        if (model != null)
        {
            if (model.ColliderPartMap.ContainsKey(hit.collider))
            {
                var hitEffect = model.ColliderPartMap[hit.collider].HitEffect;
                if (hitEffect != TempEffects.NONE)
                {
                    // Spawn hit effect.
                    var prefab = TempEffect.GetPrefab(hitEffect).PoolableObject;
                    var effect = Pool.Get(prefab);
                    if (effect != null)
                    {
                        effect.transform.position = hit.point;
                        float angle = Mathf.Atan2(hit.normal.y, hit.normal.x) * Mathf.Rad2Deg;
                        effect.transform.eulerAngles = new Vector3(0f, 0f, angle);
                    }
                    else
                    {
                        Debug.LogWarning("Tried to spawn effect for projectile hit, but the pool returned null!");
                    }
                }
            }
        }
    }
コード例 #12
0
        public static void GorillaGlue(TowerModel model)
        {
            foreach (var projectileModel in model.GetAllProjectiles())
            {
                var amount = Math.Max(1, model.tier);
                if (model.tier == 4)
                {
                    amount++;
                }

                if (model.tier == 5)
                {
                    amount += 5;
                }

                var damageModel = projectileModel.GetDamageModel();
                if (damageModel == null)
                {
                    damageModel = new DamageModel("DamageModel_", amount, 0f, new Il2CppStringArray(new[] { "Normal" }),
                                                  true, false, true, null);
                    projectileModel.AddBehavior(damageModel);
                }
                else
                {
                    damageModel.damage += amount;
                }

                if (model.appliedUpgrades.Contains("MOAB Glue"))
                {
                    var damageModifierForTagModel =
                        new DamageModifierForTagModel("DamageModifierForTagModel_", "Moabs", 1.0f, amount * 9, false, true);
                    projectileModel.AddBehavior(damageModifierForTagModel);

                    projectileModel.hasDamageModifiers = true;
                }
            }
        }
コード例 #13
0
        private void _compTorpedoAttack()
        {
            bool flag = false;

            float[] array = new float[]
            {
                -416f,
                -310f,
                -205f,
                -70f,
                115f,
                350f
            };
            List <ShipModel_Defender> defenders = this._clsTorpedo.GetDefenders(false);

            for (int i = 0; i < defenders.get_Count(); i++)
            {
                this._battleHpGauges.Show(i, new Vector3(this.setHpGaugePosition(defenders.get_Count(), i), -210f, 0f), new Vector3(0.22f, 0.22f, 0.22f), false);
                this._battleHpGauges.PlayHp(i, null);
                DamageModel attackDamage = this._clsTorpedo.GetAttackDamage(defenders.get_Item(i).TmpId);
                if (attackDamage.GetHitState() == BattleHitStatus.Miss)
                {
                    this._battleHpGauges.PlayMiss(i);
                }
                else if (attackDamage.GetHitState() == BattleHitStatus.Clitical)
                {
                    flag = true;
                    this._battleHpGauges.PlayCritical(i);
                }
            }
            if (this._isAttackE)
            {
                KCV.Utils.SoundUtils.PlaySE((!flag) ? SEFIleInfos.SE_909 : SEFIleInfos.SE_910);
                this._camFriend.cameraShake.ShakeRot(null);
            }
            this._setState(ProdSupportTorpedoP2.StateType.End);
        }
コード例 #14
0
		private void _setHpGauge()
		{
			bool flag = false;
			_eHitState = new HpHitState[_eBattleship.Count];
			List<ShipModel_Defender> defenders = _clsTorpedo.GetDefenders(is_friend: false);
			for (int i = 0; i < defenders.Count; i++)
			{
				DamageModel attackDamage = _clsTorpedo.GetAttackDamage(defenders[i].TmpId);
				switch (attackDamage.GetHitState())
				{
				case BattleHitStatus.Normal:
					if (_eHitState[i] != HpHitState.Critical)
					{
						_eHitState[i] = HpHitState.Hit;
					}
					break;
				case BattleHitStatus.Clitical:
					_eHitState[i] = HpHitState.Critical;
					break;
				case BattleHitStatus.Miss:
					if (_eHitState[i] == HpHitState.None)
					{
						_eHitState[i] = HpHitState.Miss;
					}
					break;
				}
				BattleHitStatus status = (_eHitState[i] != HpHitState.Miss) ? ((_eHitState[i] != HpHitState.Critical) ? BattleHitStatus.Normal : BattleHitStatus.Clitical) : BattleHitStatus.Miss;
				_battleHpGauges.SetGauge(i, isFriend: false, isLight: false, isT: true, isNumber: false);
				_battleHpGauges.SetHp(i, defenders[i].MaxHp, defenders[i].HpBefore, defenders[i].HpAfter, attackDamage.GetDamage(), status, isFriend: false);
				if (attackDamage.GetProtectEffect() && !flag)
				{
					flag = true;
					_isProtect = true;
					_rescueCutIn.AddShipList(_eBattleship[0], _eBattleship[i]);
				}
			}
		}
コード例 #15
0
 public IActionResult ReciveAddDamage(DamageModel value)
 {
     //add model to db.
     return(Json(value));
 }
コード例 #16
0
        public void AddDamage(SkillCom attacker, SkillCom target, DamageModel damage, float angle = 0)
        {
            DamageCom damageCom = LCECS.ECSLocate.ECS.GetWorld().GetCom <DamageCom>();

            damageCom.AddDamageInfo(attacker, target, damage, angle);
        }
コード例 #17
0
ファイル: TileObject.cs プロジェクト: Ig101/ProjectArena
 public TileObject(ISceneParentRef parent, IPlayerParentRef owner, ITileParentRef tempTile, float z, DamageModel damageModel, TaggingNative native)
     : base(parent, owner, tempTile.X, tempTile.Y, z)
 {
     this.Native              = native;
     this.TempTile            = tempTile;
     this.DamageModel         = damageModel;
     this.InitiativePosition += parent.GetNextRandom() / 10000f;
     this.Affected            = true;
     this.HealthRevealed      = false;
 }
コード例 #18
0
ファイル: PacketNotification.cs プロジェクト: ho-dragon/tps
 public void DamagedPlayer(DamageModel result)
 {
     Logger.DebugHighlight("[PacketNotification.DamagedPlayer]");
     PlayerManager.inst.UpdateHP(result.damagedPlayer, result.currentHP, result.maxHP);
 }
コード例 #19
0
 public void Health()
 {
     _damageModel = new DamageModel(500, null);
     Assert.AreEqual(_damageModel.Health, 500, "Model has 500 health");
     Assert.AreEqual(_damageModel.MaxHealth, 500, "Model has 500 max health");
 }
コード例 #20
0
        public JsonResult getNewEntryEdit(DamageModel damage)
        {
            //    if (!Utils.Utils.GetPermission("SHOW_SELL_ATTACHMENTS"))
            //{
            //    return Json(0);
            //}

            using (DataContext _db = new DataContext())
            {
                using (DbContextTransaction tran = _db.Database.BeginTransaction(IsolationLevel.Snapshot))
                {
                    try
                    {
                        //if (data.customer_id == 0)
                        {
                            //Customer cust = _db.Customers.Where(c => c.Code == damage.code).FirstOrDefault();
                            //data.customer_id = cust.Id;
                        }
                        if (damage.code != null && damage.code != "")
                        {
                            Customer cust = _db.Customers.Where(c => c.Code == damage.code).FirstOrDefault();
                            List <CustomerSellAttachments> cur_attachs_date = _db.CustomerSellAttachments.Where(a => a.CustomerID == cust.Id && a.Diler_Id == damage.user_id).ToList();
                            List <CustomerSellAttachments> cur_attachs      = new List <CustomerSellAttachments>();
                            foreach (var item in cur_attachs_date)
                            {
                                if (item.CustomerID == cust.Id && item.Diler_Id == damage.user_id)
                                {
                                    cur_attachs.Add(item);
                                }
                            }
                            var customerSellAttachs = from custAttachs in cur_attachs
                                                      group custAttachs by custAttachs.AttachmentID into cGroup
                                                      select new
                            {
                                Key             = cGroup.Key,
                                customerAttachs = cGroup
                            };

                            foreach (var item in damage.attachment)
                            {
                                if (cur_attachs.Any(a => a.AttachmentID == item.id))
                                {
                                    foreach (var group in customerSellAttachs)
                                    {
                                        //if (group.customerAttachs.FirstOrDefault().AttachmentID == item.id && group.customerAttachs.Select(a => a.Count).Sum() == item.count)
                                        //{
                                        //    continue;
                                        //}

                                        if (group.customerAttachs.FirstOrDefault().AttachmentID == item.id)
                                        {
                                            short verify_status = cur_attachs.FirstOrDefault().VerifyStatus == 2 || cur_attachs.FirstOrDefault().VerifyStatus == (short)1 ? (short)1 : (short)0;
                                            if (item.count > 0)
                                            {
                                                var count_attach = cur_attachs.Where(c => c.AttachmentID == item.id).Select(s => s.Count).FirstOrDefault() + item.count;
                                                _db.CustomerSellAttachments.Add(new CustomerSellAttachments()
                                                {
                                                    Tdate        = DateTime.Now,
                                                    AttachmentID = group.customerAttachs.FirstOrDefault().AttachmentID,
                                                    Count        = count_attach,// item.count,
                                                    CustomerID   = group.customerAttachs.FirstOrDefault().CustomerID,
                                                    Diler_Id     = group.customerAttachs.FirstOrDefault().Diler_Id,
                                                    VerifyStatus = verify_status
                                                });

                                                cur_attachs.ToList().ForEach(a => a.VerifyStatus     = verify_status);
                                                cur_attachs.ToList().ForEach(a => _db.Entry(a).State = EntityState.Modified);
                                                cur_attachs.Remove(group.customerAttachs.Select(s => s).FirstOrDefault());
                                                _db.CustomerSellAttachments.RemoveRange(group.customerAttachs);
                                                _db.SaveChanges();
                                            }
                                            //else if (item.count == 0)
                                            //{

                                            //    cur_attachs.ToList().ForEach(a => a.VerifyStatus = verify_status);
                                            //    cur_attachs.ToList().ForEach(a => _db.Entry(a).State = EntityState.Modified);
                                            //    cur_attachs.Remove(group.customerAttachs.Select(s => s).FirstOrDefault());
                                            //    _db.CustomerSellAttachments.RemoveRange(group.customerAttachs);
                                            //    _db.SaveChanges();
                                            //}
                                        }
                                    }
                                }
                                else
                                {
                                    if (item.count > 0)
                                    {
                                        short verify_status = 0;
                                        if (cur_attachs.Any(a => a.AttachmentID == item.id))
                                        {
                                            verify_status = cur_attachs.FirstOrDefault().VerifyStatus == 2 || cur_attachs.FirstOrDefault().VerifyStatus == (short)1 ? (short)1 : (short)0;
                                            cur_attachs.ToList().ForEach(a => a.VerifyStatus     = verify_status);
                                            cur_attachs.ToList().ForEach(a => _db.Entry(a).State = EntityState.Modified);
                                        }
                                        _db.CustomerSellAttachments.Add(new CustomerSellAttachments()
                                        {
                                            Tdate        = DateTime.Now,
                                            AttachmentID = item.id,
                                            Count        = item.count,
                                            CustomerID   = cust.Id,
                                            Diler_Id     = damage.user_id,
                                            VerifyStatus = verify_status
                                        });

                                        _db.SaveChanges();
                                    }
                                }
                            }
                            _db.SaveChanges();

                            tran.Commit();
                            return(Json(1));
                        }
                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();
                        return(Json(0));
                    }
                }
            }
            return(Json(0));
        }