예제 #1
0
 public Heat(GameContext context, HeatData data, Entity entity, Gear item)
 {
     _data   = data;
     Entity  = entity;
     Item    = item;
     Context = context;
 }
예제 #2
0
    /// <summary>
    /// Plots the heat map.
    /// </summary>
    /// <param name="tag">Tag.</param>
    /// <param name="data">Data.</param>
    private void PlotHeatMap(HeatTag tag, HeatData data)
    {
        Vector3    pos = SnapCoord(data.vec, tag.Size);
        int        key = pos.GetHashCode();
        GameObject point;
        Color      markerColor = Color.blue;

        if (markerTable.Contains(key))
        {
            point       = markerTable[key] as GameObject;
            markerColor = new Color(
                point.renderer.material.color.r + tag.MapPointColorDelta,
                point.renderer.material.color.g,
                point.renderer.material.color.b - tag.MapPointColorDelta
                );
        }
        else
        {
            point = Instantiate(tag.Marker, pos, Quaternion.identity) as GameObject;
            point.renderer.enabled = true;
            markerTable.Add(key, point);
        }

        markerColor.a = tag.MapPointTransparencyValue;
        point.renderer.material.color = markerColor;
    }
예제 #3
0
        public override Target CalculateDamage()
        {
            Target   finalState = this.CurrentTarget;
            HeatData heat       = _heatData;

            // No air friction attenuation as HEAT round detonates on surface of the armor

            if (finalState.EraData.Value > 0.0f)
            {
                // Calculate effects of ERA
                float finalEra = Math.Max(
                    0.0f,
                    finalState.EraData.Value - heat.Power * finalState.EraData.HeatFractionMultiplier
                    );
                finalState.EraData.Value = finalEra;

                heat.Power = CalculatePostEraPower(
                    heat.Power,
                    finalState.EraData.HeatFractionMultiplier
                    );
            }

            // Armor degradation
            float finalArmor = Math.Max(
                0.0f,
                finalState.Armor - (heat.Power / finalState.Armor) * heat.Degradation
                );

            finalState.Armor = finalArmor;

            // Calculate final damage
            float finalDamage = Math.Max(
                0.0f,
                (heat.Power - finalState.Armor) * heat.HealthDamageFactor
                );
            float finalHealth = Math.Max(
                0.0f,
                finalState.Health - finalDamage
                );

            finalState.Health = finalHealth;

            return(finalState);
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="deviceID"></param>
        /// <param name="data"></param>
        virtual public object InsertHeatData(int deviceID, HeatData data)
        {
            string s =
                "insert into tblHeatData(deviceid, dt, instantFlux, sum, IH, SH, GT, BT) " +
                "values(@deviceid, @dt, @instantFlux, @sum, @IH, @SH, @GT, @BT)";

            KeyValueCollection kvs = new KeyValueCollection();

            kvs.Add("deviceid", deviceID);
            kvs.Add("dt", data.DT);
            kvs.Add("instantFlux", data.InstantFlux);
            kvs.Add("sum", data.Sum);
            kvs.Add("IH", data.InstantHeat);
            kvs.Add("SH", data.SumHeat);
            kvs.Add("GT", data.GT);
            kvs.Add("BT", data.BT);

            return(this.ExecuteScalar(s, kvs));
        }
예제 #5
0
    private void TryCreateHeatWave(HeatData hd)
    {
        //if (Time.time - hd.LastShootTime > hd.Delay)
        {
            hd.LastShootTime = Time.time;
            GameObject go = GameObject.Instantiate(heatTemplate);
            go.transform.SetParent(this.transform);
            go.transform.position = this.transform.position;
            HeatWaveController wave = go.GetComponent <HeatWaveController>();
            wave.Heat   = hd;
            wave.Origin = this.transform;

            if (MicrowaveController.Instance.Status == MicrowaveController.MicroStatus.Running)
            {
                StartCoroutine(ExecuteAfterTime(hd.Delay));
                MoveCursor();
            }
        }
    }
예제 #6
0
파일: DBIForHZ.cs 프로젝트: hkiaipc/C3
        /// <summary>
        /// 
        /// </summary>
        /// <param name="deviceID"></param>
        /// <param name="data"></param>
        public virtual object InsertHeatData(int deviceID, HeatData data)
        {
            string s =
                "insert into tblHeatData(deviceid, dt, instantFlux, sum, IH, SH, GT, BT) " +
                "values(@deviceid, @dt, @instantFlux, @sum, @IH, @SH, @GT, @BT)" ;

            KeyValueCollection kvs = new KeyValueCollection();

            kvs.Add("deviceid", deviceID);
            kvs.Add("dt", data.DT);
            kvs.Add("instantFlux", data.InstantFlux);
            kvs.Add("sum", data.Sum);
            kvs.Add("IH", data.InstantHeat);
            kvs.Add("SH", data.SumHeat);
            kvs.Add("GT", data.GT);
            kvs.Add("BT", data.BT);

            return this.ExecuteScalar(s, kvs);
        }
예제 #7
0
 /// <summary>
 /// Plots the heat data.
 /// </summary>
 /// <returns>The heat.</returns>
 /// <param name="data">Data.</param>
 /// <param name="tag">Tag.</param>
 private IEnumerator PlotHeat(JSONNode data, HeatTag tag)
 {
     for (int i = 0; i < data.Count; i++)
     {
         HeatData heatData = new HeatData(data[i]);
         if (tag.Type == HeatTag.HeatType.MAP)
         {
             PlotHeatMap(tag, heatData);
         }
         else if (tag.Type == HeatTag.HeatType.POINT)
         {
             PlotHeatPoint(tag, heatData);
         }
         else
         {
             throw new Exception("HeatType not found");
         }
         yield return(null);
     }
 }
예제 #8
0
    /// <summary>
    /// Plots the heat point.
    /// </summary>
    /// <param name="tag">Tag.</param>
    /// <param name="data">Data.</param>
    private void PlotHeatPoint(HeatTag tag, HeatData data)
    {
        GameObject point = Instantiate(tag.Marker, data.vec, Quaternion.identity) as GameObject;

        point.renderer.enabled = true;
    }
예제 #9
0
 public Heat(HeatData data, ConsumableItemEffect item) : base(data, item)
 {
     _data = data;
 }
예제 #10
0
 public Heat(HeatData data, EquippedItem item) : base(data, item)
 {
     _data = data;
 }
예제 #11
0
 public HeatDamage(HeatData data, Target target)
     : base(DamageTypes.HEAT, target)
 {
     _heatData = data;
 }