@startuml '!theme plain 'left to right direction 'scale max 4000 width skinparam BackgroundColor #eee skinparam titleFontSize 26 skinparam titleFontName Verdana skinparam titleBorderThickness 0 skinparam titleBorderRoundCorner 12 skinparam titleBackgroundColor Aqua-CadetBlue skinparam groupInheritance 2 skinparam object { BorderColor grey BackgroundColor #ddd FontSize 13 FontName Verdana BorderColor<> transparent handwritten<> true } skinparam package { BorderThickness 1 BorderColor grey RoundCorner 20 Style default } title "X-COM: Terror from the Deep" research tree package "The research projects available by default" { object "**Gauss Technology**" as GaussTechnology object "**Particle Disturbance Sensor**" as ParticleDisturbanceSensor { Blueprint: **Particle Disturbance Sensor** } object "**Medi-Kit**" as Medikit { Blueprint: **Medi-Kit** } object "**Gauss Pistol**" as GaussPistol #fbb { Blueprint: **Gauss Pistol** } object "**Gauss Pistol Clip**" as GaussPistolClip #fbb { Blueprint: **Gauss Pistol Clip** } object "**Gauss Rifle**" as GaussRifle #fbb { Blueprint: **Gauss Rifle** } object "**Gauss Rifle Clip**" as GaussRifleClip #fbb { Blueprint: **Gauss Rifle Clip** } object "**Heavy Gauss**" as HeavyGauss #fbb { Blueprint: **Heavy Gauss** } object "**Heavy Gauss Clip**" as HeavyGaussClip #fbb { Blueprint: **Heavy Gauss Clip** } object "**Gauss Cannon**" as GaussCannon #f9d { Blueprint: **Gauss Cannon** Blueprint: **Gauss Cannon Ammo** } object "**Gauss Defence**" as GaussDefence #ccf { Blueprint: **Gauss Defence** } diamond jointCoelacanth object "Blueprint: **Coelacanth/Gauss**" as CoelacanthGauss<> #f99 } package "Sonic research tree" { object "**Sonic Pistol**" as SonicPistol #fbb { Blueprint: **Sonic Pistol** } object "**Pistol Power Clip**" as PistolPowerClip #fbb { Blueprint: **Pistol Power Clip** } object "**Sonic-Blasta Rifle**" as SonicBlastaRifle #fbb { Blueprint: **Sonic-Blasta Rifle** } object "**Blasta Power Clip**" as BlastaPowerClip #fbb { Blueprint: **Blasta Power Clip** } object "**Sonic Cannon**" as SonicCannon #fbb { Blueprint: **Sonic Cannon** } object "**Cannon Power Clip**" as CannonPowerClip #fbb { Blueprint: **Cannon Power Clip** } object "**Sonic Oscillator**" as SonicOscillator #f9d { Blueprint: **Sonic Oscillator** } diamond jointSonicOscillator object "**Sonic Defence**" as SonicDefence #ccf { Blueprint: **Sonic Defence** } diamond jointDisplacerSonic object "Blueprint: **Displacer/Sonic**" as DisplacerSonic<> #f99 } object "**Zrbite**" as Zrbite #ef7 object "**Disruptor Pulse Launcher**" as DisruptorPulseLauncher #fbb { Blueprint: **Disruptor Pulse Launcher** } object "**Disruptor Pulse Ammo**" as DisruptorPulseAmmo #fbb { Blueprint: **Disruptor Pulse Ammo** } diamond jointPWTCannon object "**P.W.T. Cannon**" as PWTCannon #f9d { Blueprint: **P.W.T. Cannon** .. Blueprint: **P.W.T. Ammo** } object "**P.W.T. Defence**" as PWTDefence #ccf { Blueprint: **P.W.T. Defence** } diamond jointDisplacerPWT object "Blueprint: **Displacer/P.W.T.**" as DisplacerPWT<> #f99 { Blueprint: **P.W. Torpedo** } object "**Magnetic Navigation**" as MagneticNavigation { Blueprint: **Magnetic Navigation** } object "**Transmission Resolver**" as TransmissionResolver #ccf { Blueprint: **Transmission Resolver** } diamond jointAlienSubConstruction object "**Alien Sub Construction**" as AlienSubConstruction package "New subs" { diamond jointNewFighterFlyingSub object "**New Fighter Flying Sub**" as NewFighterFlyingSub #f9d { Blueprint: **New Fighter Flying Sub (Manta)** } object "**New Fighter Transporter**" as NewFighterTransporter #f9d { Blueprint: **New Fighter Transporter (Hammerhead)** } diamond jointTheLatestFlyingSub object "**The Latest Flying Sub**" as TheLatestFlyingSub #f9d { Blueprint: **The Latest Flying Sub (Leviathan)** } } object "**Bombardment Shield**" as BombardmentShield #ccf { Blueprint: **Bombardment Shield** } package "Armour" { object "**Ion-Beam Accelerators**" as IonBeamAccelerators { Blueprint: **Ion-Beam Accelerators** } object "**Deep One Corpse**" as DeepOneCorpse #6b6 object "**Aqua Plastics**" as AquaPlastics { Blueprint: **Aqua Plastics** } object "**Plastic Aqua-Armour**" as PlasticAquaArmour #fbb/ccc { Blueprint: **Plastic Aqua-Armour** } object "**Deep One Terrorist**" as DeepOneTerrorist #lightgreen diamond jointIonArmour object "**Ion Armour**" as IonArmour #fbb/ccc { Blueprint: **Ion Armour** } diamond jointMagneticIonArmour object "**Magnetic Ion Armour**" as MagneticIonArmour #fbb/ccc { Blueprint: **Magnetic Ion Armour** } } package "Main Storyline" { object "**Lobster Man Commander**" as LobsterManCommander #lightgreen object "" as AliveAlien #lightgreen { **Aquatoid** | **Gil Man** | **Lobster Man** } object "**Alien Origins**" as AlienOrigins object "" as HighRankAliveAline #lightgreen { **Lobster Man Navigator** | **Lobster Man Commander** | **Gil Man Commander** } diamond jointUltimateThreat object "**Ultimate Threat**" as UltimateThreat diamond jointTleth object "**T'leth, The Aliens' City**" as Tleth } package "Mind-control technologies" { object " **Terrorist**" as AliveAlienTerrorist #lightgreen { **Calcinite** | **Bio-Drone** | **Tentaculat** | **Triscene** | **Xarquid** | **Hallucinoid** } object "**any alive Tasoth**" as AliveTasoth #lightgreen object "**M.C.-Lab**" as MCLab #ccf { Blueprint: **M.C.-Lab** } object "**M.C. Reader**" as MCReader { Blueprint: **M.C. Reader** } diamond jointMCDisruptor object "**M.C. Disruptor**" as MCDisruptor { Blueprint: **M.C. Disruptor** } object "**M.C. Generator**" as MCGenerator #ccf { Blueprint: **M.C. Generator** } } package "Melee weapons research" { object "**Calcinite corpse**" as CalciniteCorpse #6b6 object "**Vibro Blade**" as VibroBlade #fbb { Blueprint: **Vibro Blade** } object "**Gill Man corpse**" as GillManCorpse #6b6 diamond jointThermicLance object "**Thermic Lance**" as ThermicLance #fbb { Blueprint: **Thermic Lance** } object "**Heavy Thermic Lance**" as HeavyThermicLance #fbb { Blueprint: **Heavy Thermic Lance** } } package "Miscellaneous standalones" { object " **corpse**" as AlienCorpse #6b6 { Gives just an autopsy info. **Aquatoid** | **Lobster Man** | **Tasoth** | **Bio-drone** | **Tentaculat** | **Triscene** | **Hallucinoid** | **Xarquid** } object "**Sonic Pulser**" as SonicPulser #fbb { Blueprint: **Sonic Pulser** } object "**Thermal Shok Launcher**" as ThermalShokLauncher #fbb { Blueprint: **Thermal Shok Launcher** } object "**Thermal Shok Bomb**" as ThermalShokBomb #fbb { Blueprint: **Thermal Shok Bomb** } object "**Alien Cryogenics**" as AlienCryogenics object "**Alien Cloning**" as AlienCloning object "**Alien Learning Arrays**" as AlienLearningArrays object "**Examination Room**" as ExaminationRoom object "**Alien Implanter**" as AlienImplanter } GaussTechnology --> GaussPistol GaussPistol -l> GaussPistolClip GaussPistol --> GaussRifle GaussRifle -l> GaussRifleClip GaussRifle --> HeavyGauss HeavyGauss --> HeavyGaussClip HeavyGaussClip --> GaussCannon GaussCannon --> GaussDefence GaussCannon --> jointCoelacanth jointCoelacanth --> CoelacanthGauss SonicPistol --> jointSonicOscillator PistolPowerClip --> jointSonicOscillator SonicBlastaRifle --> jointSonicOscillator BlastaPowerClip --> jointSonicOscillator SonicCannon --> jointSonicOscillator CannonPowerClip --> jointSonicOscillator jointSonicOscillator --> SonicOscillator SonicOscillator --> SonicDefence SonicOscillator --> jointDisplacerSonic jointDisplacerSonic --> DisplacerSonic Zrbite --> DisruptorPulseLauncher Zrbite --> DisruptorPulseAmmo DisruptorPulseLauncher --> jointPWTCannon DisruptorPulseAmmo --> jointPWTCannon jointPWTCannon --> PWTCannon PWTCannon --> PWTDefence PWTCannon --> jointDisplacerPWT jointDisplacerPWT --> DisplacerPWT MagneticNavigation --> TransmissionResolver TransmissionResolver --> jointAlienSubConstruction Zrbite --> jointAlienSubConstruction jointAlienSubConstruction --> AlienSubConstruction MagneticIonArmour ---> jointNewFighterFlyingSub AlienSubConstruction --> jointNewFighterFlyingSub jointNewFighterFlyingSub --> NewFighterFlyingSub NewFighterFlyingSub --> jointDisplacerPWT NewFighterFlyingSub --> jointDisplacerSonic NewFighterFlyingSub --> jointCoelacanth NewFighterFlyingSub --> NewFighterTransporter NewFighterTransporter --> jointTheLatestFlyingSub LobsterManCommander ---> jointTheLatestFlyingSub jointTheLatestFlyingSub --> TheLatestFlyingSub TheLatestFlyingSub --> BombardmentShield DeepOneCorpse --> AquaPlastics AquaPlastics --> PlasticAquaArmour IonBeamAccelerators --> jointIonArmour PlasticAquaArmour --> jointIonArmour DeepOneTerrorist --> jointIonArmour jointIonArmour --> IonArmour IonArmour --> jointMagneticIonArmour MagneticNavigation --> jointMagneticIonArmour jointMagneticIonArmour --> MagneticIonArmour CalciniteCorpse --> VibroBlade VibroBlade --> jointThermicLance GillManCorpse --> jointThermicLance jointThermicLance --> ThermicLance ThermicLance --> HeavyThermicLance AliveAlienTerrorist --> MCLab MCLab --> MCReader MCReader --> jointMCDisruptor AliveTasoth --> jointMCDisruptor jointMCDisruptor --> MCDisruptor MCDisruptor --> MCGenerator AliveAlien --> AlienOrigins AlienOrigins --> jointUltimateThreat HighRankAliveAline --> jointUltimateThreat jointUltimateThreat --> UltimateThreat UltimateThreat --> jointTleth LobsterManCommander ---> jointTleth jointTleth --> Tleth hide empty members hide stereotypes 'show AlienCorpse fields 'show GaussCannon fields 'show PWTCannon fields 'center footer My super footer legend left #fbb colored boxes = firing/throwin/melee HAND WEAPONS #fbb/ccc gradient colored boxes = ARMOUR #f99 colored boxes = Submersible Weapon Systems (aka SWS) #f9d colored boxes = X-COM SUBS and their ARMAMENTS #ccf colored boxes = base FACILITIES lightgrey colored boxes = miscellaneous lightgreen colored boxes = ALIVE aliens #6b6 colored boxes = DEAD aliens Mellarius, 2023 endlegend @enduml