diff --git a/src/main/scala/net/psforever/objects/avatar/Avatar.scala b/src/main/scala/net/psforever/objects/avatar/Avatar.scala index 4b00b9c42..021f83c6b 100644 --- a/src/main/scala/net/psforever/objects/avatar/Avatar.scala +++ b/src/main/scala/net/psforever/objects/avatar/Avatar.scala @@ -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 */ diff --git a/src/main/scala/net/psforever/objects/avatar/Certification.scala b/src/main/scala/net/psforever/objects/avatar/Certification.scala index a0a0ac8d5..b65ea1f02 100644 --- a/src/main/scala/net/psforever/objects/avatar/Certification.scala +++ b/src/main/scala/net/psforever/objects/avatar/Certification.scala @@ -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) )