mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-01-20 02:54:46 +00:00
no_projectile for Tools that have no projectile; condensing cases in WSA
This commit is contained in:
parent
ed7406f25f
commit
f8836f1cc4
|
|
@ -69,6 +69,8 @@ object GlobalDefinitions {
|
|||
/*
|
||||
Projectiles
|
||||
*/
|
||||
val no_projectile = new ProjectileDefinition(0) //also called none in ADB
|
||||
|
||||
val bullet_105mm_projectile = ProjectileDefinition(Projectiles.bullet_105mm_projectile)
|
||||
|
||||
val bullet_12mm_projectile = ProjectileDefinition(Projectiles.bullet_12mm_projectile)
|
||||
|
|
@ -1889,6 +1891,9 @@ object GlobalDefinitions {
|
|||
private def init_projectile() : Unit = {
|
||||
val projectileConverter : ProjectileConverter = new ProjectileConverter
|
||||
|
||||
no_projectile.Name = "none"
|
||||
ProjectileDefinition.CalculateDerivedFields(no_projectile)
|
||||
|
||||
bullet_105mm_projectile.Name = "105mmbullet_projectile"
|
||||
bullet_105mm_projectile.Damage0 = 150
|
||||
bullet_105mm_projectile.Damage1 = 300
|
||||
|
|
@ -4331,6 +4336,7 @@ object GlobalDefinitions {
|
|||
medicalapplicator.Name = "medicalapplicator"
|
||||
medicalapplicator.Size = EquipmentSize.Pistol
|
||||
medicalapplicator.AmmoTypes += health_canister
|
||||
medicalapplicator.ProjectileTypes += no_projectile
|
||||
medicalapplicator.FireModes += new FireModeDefinition
|
||||
medicalapplicator.FireModes.head.AmmoTypeIndices += 0
|
||||
medicalapplicator.FireModes.head.AmmoSlotIndex = 0
|
||||
|
|
@ -4345,6 +4351,7 @@ object GlobalDefinitions {
|
|||
nano_dispenser.Size = EquipmentSize.Rifle
|
||||
nano_dispenser.AmmoTypes += armor_canister
|
||||
nano_dispenser.AmmoTypes += upgrade_canister
|
||||
nano_dispenser.ProjectileTypes += no_projectile
|
||||
nano_dispenser.FireModes += new FireModeDefinition
|
||||
nano_dispenser.FireModes.head.AmmoTypeIndices += 0
|
||||
nano_dispenser.FireModes.head.AmmoTypeIndices += 1
|
||||
|
|
@ -4358,6 +4365,7 @@ object GlobalDefinitions {
|
|||
bank.Name = "bank"
|
||||
bank.Size = EquipmentSize.Pistol
|
||||
bank.AmmoTypes += armor_canister
|
||||
bank.ProjectileTypes += no_projectile
|
||||
bank.FireModes += new FireModeDefinition
|
||||
bank.FireModes.head.AmmoTypeIndices += 0
|
||||
bank.FireModes.head.AmmoSlotIndex = 0
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ package net.psforever.objects.ballistics
|
|||
* An `Enumeration` of all the projectile types in the game, paired with their object id as the `Value`.
|
||||
*/
|
||||
object Projectiles extends Enumeration {
|
||||
final val no_projectile = Value(0)
|
||||
|
||||
final val bullet_105mm_projectile = Value(1)
|
||||
final val bullet_12mm_projectile = Value(4)
|
||||
final val bullet_12mm_projectileb = Value(5)
|
||||
|
|
|
|||
|
|
@ -4325,17 +4325,14 @@ class WorldSessionActor extends Actor with MDCContextAware {
|
|||
log.trace("ChangeFireState_Start: " + msg)
|
||||
if(shooting.isEmpty) {
|
||||
FindEquipment match {
|
||||
//special case - suppress the decimator's alternate fire mode
|
||||
case Some(tool : Tool)
|
||||
if tool.Projectile == GlobalDefinitions.phoenix_missile_guided_projectile &&
|
||||
(tool.Magazine > 0 || prefire.contains(item_guid)) =>
|
||||
prefire = None
|
||||
shooting = Some(item_guid)
|
||||
case Some(tool : Tool) =>
|
||||
if(tool.Magazine > 0 || prefire.contains(item_guid)) {
|
||||
prefire = None
|
||||
shooting = Some(item_guid)
|
||||
avatarService ! AvatarServiceMessage(continent.Id, AvatarAction.ChangeFireState_Start(player.GUID, item_guid))
|
||||
//special case - suppress the decimator's alternate fire mode, by projectile
|
||||
if(tool.Projectile != GlobalDefinitions.phoenix_missile_guided_projectile) {
|
||||
avatarService ! AvatarServiceMessage(continent.Id, AvatarAction.ChangeFireState_Start(player.GUID, item_guid))
|
||||
}
|
||||
}
|
||||
else {
|
||||
log.warn(s"ChangeFireState_Start: ${tool.Definition.Name} magazine is empty before trying to shoot bullet")
|
||||
|
|
|
|||
Loading…
Reference in a new issue