示例#1
0
    public virtual bool MoreFire()
    {
        if (m_refWeaponItem.evolutionFiring == null)
        {
            if (m_firingDescs.Count == 0)
            {
                m_firingDescs.Add(new Weapon.FiringDesc());
                return true;
            }

            return false;
        }

        int count = m_firingDescs.Count;

        if (count > Const.MaxFiringCount)
            return false;

        float angle = m_refWeaponItem.evolutionFiring.angle*((count+1)/2);
        if (count % 2 == 1)
        {
            angle *= -1;
        }

        float delay = m_refWeaponItem.evolutionFiring.delay*count;

        Weapon.FiringDesc desc = new Weapon.FiringDesc();
        desc.angle = angle;
        desc.delayTime = delay;

        m_firingDescs.Add(desc);

        return true;
    }
示例#2
0
    public virtual void Init(Creature ownerCreature, Weapon weapon, Weapon.FiringDesc targetAngle)
    {
        m_gunPoint = weapon.GunPointPos;
        m_ownerCreature = ownerCreature;
        m_damage = weapon.Damage;
        m_targetAngle = targetAngle;
        m_isDestroying = false;
        m_onHitWeapon = weapon.GetSubWeapon();

        TryToSetDamageBuffType(weapon);

        StartFiring();
    }