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; }
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(); }