示例#1
0
        public WeaponObject(
            string id,
            string template,
            int level,
            //float damage,
            WeaponDamage damage,
            float optimalDistance,
            ObjectColor color,
            WeaponDamageType damageType,
            float inBaseCritChance,
            int workshop)
        {
            this.id       = id;
            this.template = template;
            this.level    = level;
            //this.damage = damage;
            m_Damage.SetFromDamage(damage);
            this.optimalDistance = optimalDistance;
            this.color           = color;
            this.damageType      = damageType;
            this.baseCritChance  = inBaseCritChance;
            this.mWorkshop       = workshop;
            isNew = true;

            mRaw = GetInfo();
        }
示例#2
0
        private void StartDamageDron(DamagableObject targetObject, WeaponDamage inputDamage, byte workshop, int level, byte race)
        {
            if (nebulaObject.IsPlayer())
            {
                if (mPassiveBonuses != null && mPassiveBonuses.damageDronTier > 0)
                {
                    WeaponDamage dronDamage = new WeaponDamage();
                    dronDamage.SetFromDamage(inputDamage);
                    dronDamage.Mult(mPassiveBonuses.damageDronBonus);

                    InputDamage inpDamage = new InputDamage(nebulaObject, dronDamage);
                    targetObject.ReceiveDamage(inpDamage);

                    Hashtable dronInfo = new Hashtable {
                        { (int)SPC.Target, targetObject.nebulaObject.Id },
                        { (int)SPC.TargetType, targetObject.nebulaObject.Type },
                        { (int)SPC.Damage, dronDamage.totalDamage }
                    };
                    mMessage.SendDamageDron(dronInfo);
                }
            }
        }