short the cooldown

This commit is contained in:
Wtz_LASR 2023-05-27 16:35:07 +08:00
parent e724a04d1a
commit b688b77037
2 changed files with 120 additions and 113 deletions

View file

@ -17,55 +17,55 @@ import scala.concurrent.duration._
object Avatar {
val purchaseCooldowns: Map[BasicDefinition, FiniteDuration] = Map(
GlobalDefinitions.ams -> 5.minutes,
GlobalDefinitions.ant -> 4.minutes,
GlobalDefinitions.apc_nc -> 5.minutes,
GlobalDefinitions.apc_tr -> 5.minutes,
GlobalDefinitions.apc_vs -> 5.minutes,
GlobalDefinitions.aphelion_flight -> 15.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.aphelion_gunner -> 15.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.aurora -> 5.minutes,
GlobalDefinitions.battlewagon -> 5.minutes,
GlobalDefinitions.colossus_flight -> 15.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.colossus_gunner -> 15.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.dropship -> 5.minutes,
GlobalDefinitions.flail -> 5.minutes,
GlobalDefinitions.fury -> 2.minutes,
GlobalDefinitions.galaxy_gunship -> 15.minutes, //Temporary - Default is 10 minutes
GlobalDefinitions.lodestar -> 5.minutes,
GlobalDefinitions.liberator -> 5.minutes,
GlobalDefinitions.lightgunship -> 5.minutes,
GlobalDefinitions.lightning -> 5.minutes,
GlobalDefinitions.magrider -> 5.minutes,
GlobalDefinitions.mediumtransport -> 5.minutes,
GlobalDefinitions.mosquito -> 5.minutes,
GlobalDefinitions.peregrine_flight -> 15.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.peregrine_gunner -> 15.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.phantasm -> 5.minutes,
GlobalDefinitions.prowler -> 5.minutes,
GlobalDefinitions.quadassault -> 2.minutes,
GlobalDefinitions.quadstealth -> 2.minutes,
GlobalDefinitions.router -> 5.minutes,
GlobalDefinitions.switchblade -> 5.minutes,
GlobalDefinitions.skyguard -> 2.minutes,
GlobalDefinitions.threemanheavybuggy -> 2.minutes,
GlobalDefinitions.thunderer -> 5.minutes,
GlobalDefinitions.two_man_assault_buggy -> 2.minutes,
GlobalDefinitions.twomanhoverbuggy -> 2.minutes,
GlobalDefinitions.twomanheavybuggy -> 2.minutes,
GlobalDefinitions.vanguard -> 5.minutes,
GlobalDefinitions.vulture -> 5.minutes,
GlobalDefinitions.wasp -> 5.minutes,
GlobalDefinitions.flamethrower -> 3.minutes,
GlobalDefinitions.nchev_sparrow -> 5.minutes,
GlobalDefinitions.nchev_falcon -> 5.minutes,
GlobalDefinitions.nchev_scattercannon -> 5.minutes,
GlobalDefinitions.vshev_comet -> 5.minutes,
GlobalDefinitions.vshev_quasar -> 5.minutes,
GlobalDefinitions.vshev_starfire -> 5.minutes,
GlobalDefinitions.trhev_burster -> 5.minutes,
GlobalDefinitions.trhev_dualcycler -> 5.minutes,
GlobalDefinitions.trhev_pounder -> 5.minutes
GlobalDefinitions.ams -> 0.minutes,
GlobalDefinitions.ant -> 0.minutes,
GlobalDefinitions.apc_nc -> 0.minutes,
GlobalDefinitions.apc_tr -> 0.minutes,
GlobalDefinitions.apc_vs -> 0.minutes,
GlobalDefinitions.aphelion_flight -> 0.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.aphelion_gunner -> 0.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.aurora -> 0.minutes,
GlobalDefinitions.battlewagon -> 0.minutes,
GlobalDefinitions.colossus_flight -> 0.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.colossus_gunner -> 0.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.dropship -> 0.minutes,
GlobalDefinitions.flail -> 0.minutes,
GlobalDefinitions.fury -> 0.minutes,
GlobalDefinitions.galaxy_gunship -> 0.minutes, //Temporary - Default is 10 minutes
GlobalDefinitions.lodestar -> 0.minutes,
GlobalDefinitions.liberator -> 0.minutes,
GlobalDefinitions.lightgunship -> 0.minutes,
GlobalDefinitions.lightning -> 0.minutes,
GlobalDefinitions.magrider -> 0.minutes,
GlobalDefinitions.mediumtransport -> 0.minutes,
GlobalDefinitions.mosquito -> 0.minutes,
GlobalDefinitions.peregrine_flight -> 0.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.peregrine_gunner -> 0.minutes, //Temporarily - Default is 25 minutes
GlobalDefinitions.phantasm -> 0.minutes,
GlobalDefinitions.prowler -> 0.minutes,
GlobalDefinitions.quadassault -> 0.minutes,
GlobalDefinitions.quadstealth -> 0.minutes,
GlobalDefinitions.router -> 0.minutes,
GlobalDefinitions.switchblade -> 0.minutes,
GlobalDefinitions.skyguard -> 0.minutes,
GlobalDefinitions.threemanheavybuggy -> 0.minutes,
GlobalDefinitions.thunderer -> 0.minutes,
GlobalDefinitions.two_man_assault_buggy -> 0.minutes,
GlobalDefinitions.twomanhoverbuggy -> 0.minutes,
GlobalDefinitions.twomanheavybuggy -> 0.minutes,
GlobalDefinitions.vanguard -> 0.minutes,
GlobalDefinitions.vulture -> 0.minutes,
GlobalDefinitions.wasp -> 0.minutes,
GlobalDefinitions.flamethrower -> 0.minutes,
GlobalDefinitions.nchev_sparrow -> 0.minutes,
GlobalDefinitions.nchev_falcon -> 0.minutes,
GlobalDefinitions.nchev_scattercannon -> 0.minutes,
GlobalDefinitions.vshev_comet -> 0.minutes,
GlobalDefinitions.vshev_quasar -> 0.minutes,
GlobalDefinitions.vshev_starfire -> 0.minutes,
GlobalDefinitions.trhev_burster -> 0.minutes,
GlobalDefinitions.trhev_dualcycler -> 0.minutes,
GlobalDefinitions.trhev_pounder -> 0.minutes
)
val useCooldowns: Map[BasicDefinition, FiniteDuration] = Map(
@ -75,45 +75,52 @@ object Avatar {
GlobalDefinitions.super_staminakit -> 5.minutes // Temporary - Default value is 20 minutes
)
def apply(charId: Int, name: String, faction: PlanetSideEmpire.Value, sex: CharacterSex, head: Int, voice: CharacterVoice.Value): Avatar = {
def apply(
charId: Int,
name: String,
faction: PlanetSideEmpire.Value,
sex: CharacterSex,
head: Int,
voice: CharacterVoice.Value
): Avatar = {
Avatar(charId, BasicCharacterData(name, faction, sex, head, voice))
}
def makeLocker(): LockerContainer = {
new LockerContainer({
val inv = new LocallyRegisteredInventory(numbers = 40150 until 40450) // TODO var bad
inv.Resize(30,20)
inv.Resize(30, 20)
inv
})
}
}
case class Cooldowns(
/** Timestamps of when a vehicle or equipment was last purchased */
purchase: Map[String, LocalDateTime] = Map(),
/** Timestamps of when a vehicle or equipment was last purchased */
use: Map[String, LocalDateTime] = Map()
)
/** Timestamps of when a vehicle or equipment was last purchased */
purchase: Map[String, LocalDateTime] = Map(),
/** Timestamps of when a vehicle or equipment was last purchased */
use: Map[String, LocalDateTime] = Map()
)
case class Loadouts(
suit: Seq[Option[Loadout]] = Seq.fill(20)(None),
squad: Seq[Option[SquadLoadout]] = Seq.fill(10)(None)
)
suit: Seq[Option[Loadout]] = Seq.fill(20)(None),
squad: Seq[Option[SquadLoadout]] = Seq.fill(10)(None)
)
case class ProgressDecoration(
cosmetics: Option[Set[Cosmetic]] = None,
ribbonBars: RibbonBars = RibbonBars(),
firstTimeEvents: Set[String] =
FirstTimeEvents.Maps ++ FirstTimeEvents.Monoliths ++
FirstTimeEvents.Standard.All ++ FirstTimeEvents.Cavern.All ++
FirstTimeEvents.TR.All ++ FirstTimeEvents.NC.All ++ FirstTimeEvents.VS.All ++
FirstTimeEvents.Generic
)
cosmetics: Option[Set[Cosmetic]] = None,
ribbonBars: RibbonBars = RibbonBars(),
firstTimeEvents: Set[String] =
FirstTimeEvents.Maps ++ FirstTimeEvents.Monoliths ++
FirstTimeEvents.Standard.All ++ FirstTimeEvents.Cavern.All ++
FirstTimeEvents.TR.All ++ FirstTimeEvents.NC.All ++ FirstTimeEvents.VS.All ++
FirstTimeEvents.Generic
)
case class MemberLists(
friend: List[Friend] = List[Friend](),
ignored: List[Ignored] = List[Ignored]()
)
friend: List[Friend] = List[Friend](),
ignored: List[Ignored] = List[Ignored]()
)
case class Avatar(
/** unique identifier corresponding to a database table row index */

View file

@ -21,134 +21,134 @@ case object Certification extends IntEnum[Certification] {
case object StandardAssault extends Certification(value = 0, name = "standard_assault", cost = 0)
case object MediumAssault extends Certification(value = 1, name = "medium_assault", cost = 2)
case object MediumAssault extends Certification(value = 1, name = "medium_assault", cost = 0)
case object HeavyAssault
extends Certification(value = 2, name = "heavy_assault", cost = 4, requires = Set(MediumAssault))
extends Certification(value = 2, name = "heavy_assault", cost = 0, requires = Set(MediumAssault))
case object SpecialAssault
extends Certification(value = 3, name = "special_assault", cost = 3, requires = Set(MediumAssault))
extends Certification(value = 3, name = "special_assault", cost = 0, requires = Set(MediumAssault))
case object AntiVehicular
extends Certification(value = 4, name = "anti_vehicular", cost = 3, requires = Set(MediumAssault))
extends Certification(value = 4, name = "anti_vehicular", cost = 0, requires = Set(MediumAssault))
case object Sniping extends Certification(value = 5, name = "sniper", cost = 3, requires = Set(MediumAssault))
case object Sniping extends Certification(value = 5, name = "sniper", cost = 0, requires = Set(MediumAssault))
case object EliteAssault
extends Certification(value = 6, name = "special_assault_2", cost = 1, requires = Set(SpecialAssault))
extends Certification(value = 6, name = "special_assault_2", cost = 0, requires = Set(SpecialAssault))
case object AirCavalryScout extends Certification(value = 7, name = "air_cavalry_scout", cost = 3)
case object AirCavalryScout extends Certification(value = 7, name = "air_cavalry_scout", cost = 0)
case object AirCavalryInterceptor
extends Certification(value = 8, name = "air_cavalry_interceptor", cost = 2, requires = Set(AirCavalryScout))
extends Certification(value = 8, name = "air_cavalry_interceptor", cost = 0, requires = Set(AirCavalryScout))
case object AirCavalryAssault
extends Certification(
value = 9,
name = "air_cavalry_assault",
cost = 2,
cost = 0,
requires = Set(AirCavalryScout)
)
case object AirSupport extends Certification(value = 10, name = "air_support", cost = 3)
case object AirSupport extends Certification(value = 10, name = "air_support", cost = 0)
case object ATV extends Certification(value = 11, name = "quad_all", cost = 1)
case object ATV extends Certification(value = 11, name = "quad_all", cost = 0)
case object LightScout
extends Certification(
value = 12,
name = "light_scout",
cost = 5,
cost = 0,
replaces = Set(AirCavalryScout, AssaultBuggy, Harasser)
)
case object AssaultBuggy extends Certification(value = 13, name = "assault_buggy", cost = 3, replaces = Set(Harasser))
case object AssaultBuggy extends Certification(value = 13, name = "assault_buggy", cost = 0, replaces = Set(Harasser))
case object ArmoredAssault1 extends Certification(value = 14, name = "armored_assault1", cost = 2)
case object ArmoredAssault1 extends Certification(value = 14, name = "armored_assault1", cost = 0)
case object ArmoredAssault2
extends Certification(value = 15, name = "armored_assault2", cost = 3, requires = Set(ArmoredAssault1))
extends Certification(value = 15, name = "armored_assault2", cost = 0, requires = Set(ArmoredAssault1))
case object GroundTransport extends Certification(value = 16, name = "ground_transport", cost = 2)
case object GroundTransport extends Certification(value = 16, name = "ground_transport", cost = 0)
case object GroundSupport extends Certification(value = 17, name = "ground_support", cost = 2)
case object GroundSupport extends Certification(value = 17, name = "ground_support", cost = 0)
case object BattleFrameRobotics
extends Certification(value = 18, name = "bfr_basic", cost = 4, requires = Set(ArmoredAssault2))
extends Certification(value = 18, name = "bfr_basic", cost = 0, requires = Set(ArmoredAssault2))
case object Flail extends Certification(value = 19, name = "flail", cost = 1, requires = Set(ArmoredAssault2))
case object Flail extends Certification(value = 19, name = "flail", cost = 0, requires = Set(ArmoredAssault2))
case object Switchblade extends Certification(value = 20, name = "switchblade", cost = 1, requires = Set(ATV))
case object Switchblade extends Certification(value = 20, name = "switchblade", cost = 0, requires = Set(ATV))
case object Harasser extends Certification(value = 21, name = "harasser", cost = 1)
case object Harasser extends Certification(value = 21, name = "harasser", cost = 0)
case object Phantasm extends Certification(value = 22, name = "phantasm", cost = 3, requires = Set(InfiltrationSuit))
case object Phantasm extends Certification(value = 22, name = "phantasm", cost = 0, requires = Set(InfiltrationSuit))
case object GalaxyGunship extends Certification(value = 23, name = "gunship", cost = 2, requires = Set(AirSupport))
case object GalaxyGunship extends Certification(value = 23, name = "gunship", cost = 0, requires = Set(AirSupport))
case object BFRAntiAircraft
extends Certification(value = 24, name = "bfr_aa_gunnery", cost = 1, requires = Set(BattleFrameRobotics))
extends Certification(value = 24, name = "bfr_aa_gunnery", cost = 0, requires = Set(BattleFrameRobotics))
case object BFRAntiInfantry
extends Certification(value = 25, name = "bfr_ai_gunnery", cost = 1, requires = Set(BattleFrameRobotics))
extends Certification(value = 25, name = "bfr_ai_gunnery", cost = 0, requires = Set(BattleFrameRobotics))
case object StandardExoSuit extends Certification(value = 26, name = "standard_armor", cost = 0)
case object AgileExoSuit extends Certification(value = 27, name = "agile_armor", cost = 0)
case object ReinforcedExoSuit extends Certification(value = 28, name = "reinforced_armor", cost = 3)
case object ReinforcedExoSuit extends Certification(value = 28, name = "reinforced_armor", cost = 0)
case object InfiltrationSuit extends Certification(value = 29, name = "infiltration_suit", cost = 2)
case object InfiltrationSuit extends Certification(value = 29, name = "infiltration_suit", cost = 0)
case object AAMAX extends Certification(value = 30, name = "max_anti_aircraft", cost = 2)
case object AAMAX extends Certification(value = 30, name = "max_anti_aircraft", cost = 0)
case object AIMAX extends Certification(value = 31, name = "max_anti_personnel", cost = 3)
case object AIMAX extends Certification(value = 31, name = "max_anti_personnel", cost = 0)
case object AVMAX extends Certification(value = 32, name = "max_anti_vehicular", cost = 3)
case object AVMAX extends Certification(value = 32, name = "max_anti_vehicular", cost = 0)
case object UniMAX extends Certification(value = 33, name = "max_all", cost = 6, replaces = Set(AAMAX, AIMAX, AVMAX))
case object UniMAX extends Certification(value = 33, name = "max_all", cost = 0, replaces = Set(AAMAX, AIMAX, AVMAX))
case object Medical extends Certification(value = 34, name = "Medical", cost = 3)
case object Medical extends Certification(value = 34, name = "Medical", cost = 0)
case object AdvancedMedical
extends Certification(value = 35, name = "advanced_medical", cost = 2, requires = Set(Medical))
extends Certification(value = 35, name = "advanced_medical", cost = 0, requires = Set(Medical))
case object Hacking extends Certification(value = 36, name = "Hacking", cost = 3)
case object Hacking extends Certification(value = 36, name = "Hacking", cost = 0)
case object AdvancedHacking
extends Certification(value = 37, name = "advanced_hacking", cost = 2, requires = Set(Hacking))
extends Certification(value = 37, name = "advanced_hacking", cost = 0, requires = Set(Hacking))
case object ExpertHacking
extends Certification(value = 38, name = "expert_hacking", cost = 2, requires = Set(AdvancedHacking))
extends Certification(value = 38, name = "expert_hacking", cost = 0, requires = Set(AdvancedHacking))
case object DataCorruption
extends Certification(value = 39, name = "virus_hacking", cost = 3, requires = Set(AdvancedHacking))
extends Certification(value = 39, name = "virus_hacking", cost = 0, requires = Set(AdvancedHacking))
case object ElectronicsExpert
extends Certification(
value = 40,
name = "electronics_expert",
cost = 4,
cost = 0,
requires = Set(AdvancedHacking),
replaces = Set(DataCorruption, ExpertHacking)
)
case object Engineering extends Certification(value = 41, name = "Repair", cost = 3)
case object Engineering extends Certification(value = 41, name = "Repair", cost = 0)
case object CombatEngineering
extends Certification(value = 42, name = "combat_engineering", cost = 2, requires = Set(Engineering))
extends Certification(value = 42, name = "combat_engineering", cost = 0, requires = Set(Engineering))
case object FortificationEngineering
extends Certification(value = 43, name = "ce_defense", cost = 3, requires = Set(CombatEngineering))
extends Certification(value = 43, name = "ce_defense", cost = 0, requires = Set(CombatEngineering))
case object AssaultEngineering
extends Certification(value = 44, name = "ce_offense", cost = 3, requires = Set(CombatEngineering))
extends Certification(value = 44, name = "ce_offense", cost = 0, requires = Set(CombatEngineering))
case object AdvancedEngineering
extends Certification(
value = 45,
name = "ce_advanced",
cost = 5,
cost = 0,
requires = Set(CombatEngineering),
replaces = Set(AssaultEngineering, FortificationEngineering)
)