diff --git a/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs index 90eab5b206d..817aa6d94eb 100644 --- a/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs +++ b/Content.Server/GameTicking/Rules/Components/LoadMapRuleComponent.cs @@ -1,4 +1,9 @@ +using Content.Server.GameTicking.Rules; +using Content.Server.Maps; +using Content.Shared._DV.Planet; using Content.Shared.GridPreloader.Prototypes; +using Content.Shared.Weather; +using Content.Shared.GridPreloader.Prot using Content.Shared.Maps; using Robust.Shared.Prototypes; using Robust.Shared.Utility; diff --git a/Content.Server/_Mono/Planets/PlanetMapComponent.cs b/Content.Server/_Mono/Planets/PlanetMapComponent.cs index 229409a8295..a11a6913c1b 100644 --- a/Content.Server/_Mono/Planets/PlanetMapComponent.cs +++ b/Content.Server/_Mono/Planets/PlanetMapComponent.cs @@ -1,3 +1,5 @@ +using Content.Shared.Weather; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server._Mono.Planets; @@ -7,5 +9,17 @@ public sealed partial class PlanetMapComponent : Component { [DataField] public string Parallax = "bedrock"; + + /// + /// If theres a planet prototype set, loads this weather onto it. + /// + [DataField] + public ProtoId? PlanetWeather; + + /// + /// How much time until the thing ends or whatever who cares. + /// + [DataField] + public double PlanetWeatherEndTime; } // Only excludes a grid from garbage clean really. diff --git a/Resources/Locale/en-US/_Mono/biomes.ftl b/Resources/Locale/en-US/_Mono/biomes.ftl index 80029677110..e9d52781149 100644 --- a/Resources/Locale/en-US/_Mono/biomes.ftl +++ b/Resources/Locale/en-US/_Mono/biomes.ftl @@ -2,3 +2,5 @@ salvage-biome-mod-mono-desert = Desert # todo - get a better name than "desert planet" lmao shuttle-destination-desert-planet = Desert Planet + +shuttle-destination-planet-zone = Landing Zone diff --git a/Resources/Locale/en-US/_Mono/events/planets.ftl b/Resources/Locale/en-US/_Mono/events/planets.ftl new file mode 100644 index 00000000000..ff82add8282 --- /dev/null +++ b/Resources/Locale/en-US/_Mono/events/planets.ftl @@ -0,0 +1,3 @@ +mono-planet-event-start-announcement = New planetary landing zone temporarily available for resource extraction. Estimated 30 minutes before intense weather blocks landing. +mono-planet-event-warning-announcement = Estimated 5 minutes before intense weather blocks landing. +mono-planet-event-end-announcement = Planetary landing zone blocked fully by weather. Await further notice. diff --git a/Resources/Prototypes/Tiles/planet.yml b/Resources/Prototypes/Tiles/planet.yml index 2694a4dbff9..598ec69c9c8 100644 --- a/Resources/Prototypes/Tiles/planet.yml +++ b/Resources/Prototypes/Tiles/planet.yml @@ -94,6 +94,7 @@ - type: tile id: FloorDesertPlanet + suffix: Planet name: tiles-desert-floor sprite: /Textures/_Mono/Tiles/planet/auto_sand/sand_1_var.png variants: 16 @@ -164,6 +165,7 @@ - type: tile id: FloorRiverbed + suffix: Riverbed name: tiles-low-desert-floor sprite: /Textures/_RMC14/Tiles/planet/desert/desert.png variants: 6 @@ -185,6 +187,7 @@ - type: tile id: FloorAsteroidSandUnvariantizedPlanet + suffix: Planet name: tiles-asteroid-sand sprite: /Textures/Tiles/Asteroid/asteroid0.png isSubfloor: true @@ -212,6 +215,7 @@ - type: tile id: FloorAsteroidSandPlanet + suffix: Planet name: tiles-asteroid-sand sprite: /Textures/Tiles/Asteroid/asteroid.png variants: 13 diff --git a/Resources/Prototypes/_Mono/Entities/Markers/Spawners/Random/mobs_hostile_contractors.yml b/Resources/Prototypes/_Mono/Entities/Markers/Spawners/Random/mobs_hostile_contractors.yml new file mode 100644 index 00000000000..2ff4d1c34af --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Markers/Spawners/Random/mobs_hostile_contractors.yml @@ -0,0 +1,62 @@ +- type: entity + name: PMC spawner + id: SpawnMobMonoPMCT1 + parent: MarkerBase + suffix: AI, Hostile, T1 + components: + - type: Sprite + layers: + - state: red + - state: ai + - type: RandomSpawner + prototypes: + - MobMonoPMCT1Soldier + - MobMonoPMCT1Handguns + chance: 1 + offset: 0.0 + rarePrototypes: + - SpawnMobMonoPMCT2 + - MobMonoPMCT1Rifleman + rareChance: 0.3 + +- type: entity + name: PMC spawner + id: SpawnMobMonoPMCT2 + parent: MarkerBase + suffix: AI, Hostile, T2 + components: + - type: Sprite + layers: + - state: red + - state: ai + - type: RandomSpawner + prototypes: + - MobMonoPMCSubmachineGunT2 + - MobMonoPMCShotgunT2 + chance: 1 + offset: 0.0 + rarePrototypes: + - SpawnMobMonoPMCT3 + - MobMonoPMCSniperT2 + - MobMonoPMCJackdawT2 + rareChance: 0.2 + +- type: entity + name: PMC spawner + id: SpawnMobMonoPMCT3 + parent: MarkerBase + suffix: AI, Hostile, T3 + components: + - type: Sprite + layers: + - state: red + - state: ai + - type: RandomSpawner + prototypes: + - MobMonoPMCAssaultT3 + chance: 1 + offset: 0.0 + rarePrototypes: + - MobMonoPMCAutoriflemanT3 + - MobMonoPMCGrenadierT3 + rareChance: 0.1 diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mob_hostile_mercenaries.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mob_hostile_mercenaries.yml new file mode 100644 index 00000000000..a2ef53fa36b --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mob_hostile_mercenaries.yml @@ -0,0 +1,720 @@ +# Base +- type: entity + name: PMC + abstract: true + parent: + - BaseC3MobHuman + - MobNonHumanHostileBase + - MobHumanoidInvetorySimplified + - MobHumanoidHostileAISimpleRanged + - NFMobRestrictions + id: MobMonoPMCBase + description: A private military contractor. Unreasonable filth. + suffix: PMC NPC + components: + - type: Damageable + damageModifierSet: MobMercenaryDamageModifierSet + - type: NpcFactionMember + factions: + - PMCExpeditionMono + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 110: Dead + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.9 + 80: 0.6 + - type: Stamina + critThreshold: 100 + - type: DamageStateVisuals + rotate: true + - type: RotationVisuals + defaultRotation: 90 + horizontalRotation: 90 + - type: Butcherable + butcheringType: Spike + spawned: + - id: FoodMeatHuman + amount: 5 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + rechargeSound: + path: /Audio/_NF/Effects/silence.ogg + - type: Advertise + pack: mercenaryhumanoidchatter + minimumWait: 30 + maximumWait: 120 + nextAdvertisementTime: 10 + - type: AutoWakeUp + - type: MovementSpeedModifier + baseWalkSpeed : 2.5 + baseSprintSpeed : 4.5 + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepTile + +# Variations +## Tier 1 + +- type: entity + parent: MobMonoPMCBase + id: MobMonoPMCT1Soldier + suffix: T1, AK-220 + components: + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-uniform + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-helmet + - sprite: _Mono/Objects/Weapons/Guns/SMGs/ak220.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge9x19mmFMJ + capacity: 30 + count: 30 + - type: Gun + minAngle: 2 + maxAngle: 6 + fireRate: 6 + angleIncrease: 21 + angleDecay: 14 + selectedMode: FullAuto + soundGunshot: + path: /Audio/_Mono/Weapons/Guns/SmallArms/Gunshots/smg.ogg + availableModes: + - FullAuto + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 110: Dead + - type: SlowOnDamage + speedModifierThresholds: + 70: 0.9 + 80: 0.6 + +- type: entity + parent: MobMonoPMCBase + id: MobMonoPMCT1Rifleman + suffix: T1, AKM + components: + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-uniform + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-helmet + - sprite: _Mono/Objects/Weapons/Guns/Rifles/akm_inhands_32x.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge762x39mmFMJ + capacity: 30 + count: 30 + - type: Gun + minAngle: 1 + maxAngle: 2 + fireRate: 5 + projectileSpeed: 55 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/rifle2.ogg + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 110: Dead + - type: SlowOnDamage + speedModifierThresholds: + 70: 0.9 + 80: 0.6 + +- type: entity + parent: MobMonoPMCBase + id: MobMonoPMCT1Handguns + suffix: T1, Pollock + components: + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-uniform + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-helmet + - sprite: _DV/Objects/Weapons/Guns/Pistols/pollock.rsi + state: inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge9x19mmFMJ + capacity: 17 + count: 17 + - type: Gun + minAngle: 1 + maxAngle: 2 + fireRate: 5 + projectileSpeed: 40 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/pistol.ogg + - type: MobThresholds + thresholds: + 0: Alive + 100: Critical + 110: Dead + - type: SlowOnDamage + speedModifierThresholds: + 80: 0.9 + 90: 0.75 + +## Tier 2 + +- type: startingGear + id: MobHumanoidMonoPMCGearTier2 + equipment: + back: ClothingBackpackDuffelMonoTier2PMC + +- type: entity + name: PMC operator + parent: MobMonoPMCBase + id: MobMonoPMCSubmachineGunT2 + suffix: T2, 9mm Vector + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier2 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _Mono/Objects/Weapons/Guns/SMGs/vector.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge9x19mmFMJ + capacity: 25 + count: 25 + - type: Gun + minAngle: 2 + maxAngle: 16 + fireRate: 7.5 + angleIncrease: 3 + angleDecay: 16 + projectileSpeed: 50 # Mono + selectedMode: Burst + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/atreides.ogg + availableModes: + - Burst + burstCooldown: 0.5 + burstFireRate: 14 + shotsPerBurst: 3 + - type: MobThresholds + thresholds: + 0: Alive + 120: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 40: 0.9 + 80: 0.6 + +- type: entity + name: PMC operator + parent: MobMonoPMCBase + id: MobMonoPMCJackdawT2 + suffix: T2, CAWS-25 Jackdaw + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier2 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _DV/Objects/Weapons/Guns/Rifles/jackdaw.rsi + state: inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge635x40mmCaseless + capacity: 30 + count: 30 + - type: Gun + minAngle: 2 + maxAngle: 4 + angleIncrease: 2 + angleDecay: 8 + fireRate: 8 + projectileSpeed: 35 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/silenced.ogg + params: + volume: -1 + - type: MobThresholds + thresholds: + 0: Alive + 120: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 40: 0.9 + 80: 0.6 + +- type: entity + name: PMC marksman + parent: MobMonoPMCBase + id: MobMonoPMCSniperT2 + suffix: T2, AK-410 + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier2 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _Mono/Objects/Weapons/Guns/Snipers/ak410_inhands_32x.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge762x54mmRFMJ + capacity: 10 + count: 10 + - type: Gun + minAngle: 0 + maxAngle: 3 + fireRate: 1.5 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/rifle2.ogg + - type: MobThresholds + thresholds: + 0: Alive + 120: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 40: 0.9 + 80: 0.6 + +- type: startingGear + id: MobHumanoidMonoPMCGearTier2Shotgun + equipment: + back: ClothingBackpackDuffelMonoTier2PMCShotgun + +- type: entity + name: PMC breacher + parent: MobMonoPMCBase + id: MobMonoPMCShotgunT2 + suffix: T2, Big Buddy + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier2Shotgun + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gloves + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-boots + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-vest + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Clothing/Balaclavas/balaclava_ski_mask.rsi + state: equipped-BALACLAVA + color: "#1F1F1F" + - sprite: _Mono/Clothing/Eyes/Glasses/ballistic_goggles_red.rsi + state: equipped-EYES + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-gasmask + - sprite: _Mono/Objects/Weapons/Guns/Shotguns/BigBuddy_inhands_64x.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: ShellShotgun23x75mmBuckshot + capacity: 6 + count: 6 + - type: Gun + fireRate: 0.5 + projectileSpeed: 40 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/_Mono/Weapons/Guns/SmallArms/Gunshots/bigshotgun_fire.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/empty.ogg + - type: MobThresholds + thresholds: + 0: Alive + 120: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 40: 0.9 + 80: 0.6 + +## Tier 3 + +- type: startingGear + id: MobHumanoidMonoPMCGearTier3 + equipment: + back: ClothingBackpackDuffelMonoTier3PMC + +- type: entity + name: PMC assaulter + parent: MobMonoPMCBase + id: MobMonoPMCAssaultT3 + suffix: T3, LTR-556 + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier3 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit-head + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Objects/Weapons/Guns/Rifles/NTSF-LTR-556 # TODO - KILL AVTOMATA WITH LARGE HAMMERS AND SAWS FOR NOT .RSI-ING THIS!!!!!! + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge68x52mmCaseless + capacity: 30 + count: 30 + - type: Gun + minAngle: 13 + maxAngle: 10 + angleIncrease: 6 + angleDecay: 40 + fireRate: 9 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/_Mono/Weapons/Guns/SmallArms/Gunshots/light_rifle_3.ogg + - type: MobThresholds + thresholds: + 0: Alive + 140: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 70: 0.9 + 100: 0.6 + +- type: entity + name: PMC autorifleman + parent: MobMonoPMCBase + id: MobMonoPMCAutoriflemanT3 + suffix: T3, Grizzly + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier3 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit-head + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Objects/Weapons/Guns/LMGs/grizzly/Grizzly-inhands.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge68x52mmCaseless + capacity: 80 + count: 80 + - type: Gun + minAngle: 0 + maxAngle: 12 + angleIncrease: 1 + angleDecay: 12 + fireRate: 8 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/_Mono/Weapons/Guns/SmallArms/Gunshots/heavy_rifle_1.ogg + - type: MobThresholds + thresholds: + 0: Alive + 140: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 70: 0.9 + 100: 0.6 + +- type: entity + name: PMC grenadier + parent: MobMonoPMCBase + id: MobMonoPMCGrenadierT3 + suffix: T3, Anubis + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier3 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit-head + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Objects/Weapons/Guns/Launchers/mk6-tpgl_inhands_32x.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge35mmGrenadeSAPHE + capacity: 6 + count: 6 + - type: Gun + minAngle: 0 + maxAngle: 3 + projectileSpeed: 70 + fireRate: 0.2 + selectedMode: SemiAuto + availableModes: + - SemiAuto + soundGunshot: + path: /Audio/_Harmony/Weapons/Guns/Gunshots/hristov_fire_alt.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/empty.ogg + - type: LaserPointer + targetedColor: "#ff0037" + defaultColor: "#03c2fc" + - type: MobThresholds + thresholds: + 0: Alive + 140: Critical + 150: Dead + - type: SlowOnDamage + speedModifierThresholds: + 70: 0.9 + 100: 0.6 + +## Tier 4 - Boss + +- type: startingGear + id: MobHumanoidMonoPMCGearTier4 + equipment: + back: ClothingBackpackDuffelMonoTier4PMC + +- type: entity + name: PMC field commander + parent: [ MobMonoPMCBase, NFMobBossRestrictions ] + id: MobMonoPMCBoss + suffix: T4, MR-8B + components: + - type: Loadout + prototypes: + - MobHumanoidMonoPMCGearTier4 + - type: Sprite + drawdepth: Mobs + layers: + - sprite: _NF/Mobs/Species/Templates/human.rsi + state: human + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-jumpsuit + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit-heavy + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-webbing + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit-heavy-head + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: pmc-hardsuit-heavy-head-unshaded + shader: unshaded + - sprite: Objects/Tanks/oxygen.rsi + state: equipped-BACKPACK + - sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag-equipped + - sprite: _Mono/Objects/Weapons/Guns/LMGs/mr8b.rsi + state: wielded-inhand-right + - type: BasicEntityAmmoProvider + proto: Cartridge8x65mmSKR + capacity: 200 + count: 200 + - type: Gun + minAngle: 4 + maxAngle: 16 + angleIncrease: 3 + angleDecay: 34 + fireRate: 6 # 360 rpm + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/_Mono/Weapons/Guns/SmallArms/Gunshots/heavy_rifle_1.ogg + - type: MobThresholds + thresholds: + 0: Alive + 200: Critical + 250: Dead + - type: SlowOnDamage + speedModifierThresholds: + 60: 0.9 + 120: 0.6 diff --git a/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mob_hostile_mercenaries_loot.yml b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mob_hostile_mercenaries_loot.yml new file mode 100644 index 00000000000..fe66082f056 --- /dev/null +++ b/Resources/Prototypes/_Mono/Entities/Mobs/NPCs/mob_hostile_mercenaries_loot.yml @@ -0,0 +1,191 @@ +# BASE +## BACK - for gear and cash +- type: entity + parent: BaseItem + id: MonoPMCDuffelGiftBox + name: PMC gear bundle + description: Loot boxes? Here? + abstract: true + suffix: NPC Loot + components: + - type: Sprite + sprite: _Mono/Clothing/NPC/pmc.rsi + state: bag + - type: Item + size: Normal + - type: Clothing + sprite: _Mono/Clothing/NPC/pmc.rsi + clothingVisuals: + back: + - state: bag-equipped + quickEquip: false + slots: + - back + +- type: entity + parent: MonoPMCDuffelGiftBox + id: ClothingBackpackDuffelMonoTier2PMC + suffix: NPC Loot, T2 + components: + - type: SpawnItemsOnUse + items: + - id: Magazine9x19mmSubMachineGunFMJ + prob: 0.6 + - id: Magazine9x19mmSubMachineGunFMJ + prob: 0.6 + - id: Magazine762x39mmFMJ + prob: 0.6 + - id: Magazine762x39mmFMJ + prob: 0.6 + - id: Magazine762x54mmRFMJ + prob: 0.4 + - id: AmmoBox762x39mmFMJ + prob: 0.2 + - id: Magazine635x40mmCaseless + prob: 0.2 + - id: Tourniquet + prob: 0.4 + - id: SpawnDungeonLootMaterialsValuableFull + prob: 0.05 + - id: SpaceCash500 + prob: 0.2 + - id: SpawnLootMonoPMCMisc + prob: 0.4 + sound: + path: /Audio/Items/jumpsuit_equip.ogg + +- type: entity + parent: MonoPMCDuffelGiftBox + id: ClothingBackpackDuffelMonoTier2PMCShotgun + suffix: NPC Loot, T2 Shotgun + components: + - type: SpawnItemsOnUse + items: + - id: AmmoBox23x75mmBuckshot + prob: 0.9 + - id: AmmoBox23x75mmDozd + prob: 0.2 + - id: AmmoBox23x75mmSlug + prob: 0.2 + - id: AmmoBox23x75mmFlashbang + prob: 0.1 + - id: SpawnDungeonLootMaterialsValuableFull + prob: 0.05 + - id: SpaceCash500 + prob: 0.2 + - id: SpawnLootMonoPMCMisc + prob: 0.4 + sound: + path: /Audio/Items/jumpsuit_equip.ogg + +- type: entity + parent: MonoPMCDuffelGiftBox + id: ClothingBackpackDuffelMonoTier3PMC + suffix: NPC Loot, T3 + components: + - type: SpawnItemsOnUse + items: + - id: Magazine68x52mmCaseless + prob: 0.6 + - id: Magazine68x52mmCaseless + prob: 0.6 + - id: AmmoBox68x52mmCaseless + prob: 0.7 + - id: Tourniquet + prob: 0.4 + - id: SpawnDungeonLootMaterialsValuableFull + prob: 0.2 + - id: SpaceCash500 + prob: 0.65 + - id: SpaceCash500 + prob: 0.45 + - id: SpawnLootMonoPMCMisc + prob: 0.4 + sound: + path: /Audio/Items/jumpsuit_equip.ogg + +- type: entity + parent: MonoPMCDuffelGiftBox + id: ClothingBackpackDuffelMonoTier4PMC + suffix: NPC Loot, T4 + components: + - type: SpawnItemsOnUse + items: + # Cash + - id: SpaceCash2500 + prob: 0.9 + - id: SpaceCash500 + prob: 0.65 + - id: SpaceCash500 + prob: 0.45 + - id: SpaceCash2500 + prob: 0.1 + - id: SpaceCash2500 + prob: 0.1 + # Weapons + - id: WeaponRifleMR8C # mono + prob: 0.3 + # Items + - id: Magazine8x65mmSKR + prob: 0.9 + - id: AmmoBox8x65mmSKR + prob: 0.4 + - id: AmmoTechFabCircuitboard + prob: 0.1 + # Bonus Loot T4 + - id: SpaceCash2500 + prob: 0.9 + - id: SpawnDungeonLootFlatpacks + prob: 0.9 + - id: SpaceCash1000 + prob: 0.7 + - id: SpawnDungeonLootMaterialsValuableFull + prob: 0.7 + - id: SpawnDungeonLootPartsEngi + amount: 2 + prob: 0.7 + - id: SpawnDungeonLootVaultGuns + prob: 0.4 + - id: BlueprintWeaponRifleNtsfLtr + prob: 0.05 + - id: SpawnLootMonoPMCMisc + prob: 0.4 + sound: + path: /Audio/Items/jumpsuit_equip.ogg + +- type: entity + name: random MonoPMC misc loot drop + id: SpawnLootMonoPMCMisc + parent: MarkerBasePlaceFree + components: + - type: Sprite + layers: + - state: green + - sprite: _NF/Markers/general.rsi + state: questionmark + color: white + - type: RandomSpawner + prototypes: + - MedkitFilled + - GunAttachmentGripErebusVFG + - GunAttachmentGripErebusLAM + - GunAttachmentOpticErebus2x + - GunAttachmentOpticErebus4x + - GunAttachmentOpticErebus8x + - GunAttachmentSuppressorMulticalPistol + - GunAttachmentSuppressorMulticalRifle + - POILootWeaponsAmmoMarker + - FentanylSolidified + - SpaceCash2500 + - SpaceCash2000 + - SpaceCash1000 + - SpaceCash500 + - SpawnDungeonLootPartsEngi + chance: 0.4 + offset: 0.0 + rarePrototypes: + - StimkitFilled + - BlueprintWeaponRifleNtsfLtr + - BlueprintWeaponSubMachineGunVectorNtsfHclm + - BlueprintLauncherRocket # Its hilarious, and it has a really low chance to actually happen. + rareChance: 0.01 diff --git a/Resources/Prototypes/_Mono/GameRules/planets.yml b/Resources/Prototypes/_Mono/GameRules/planets.yml new file mode 100644 index 00000000000..979f2ed5566 --- /dev/null +++ b/Resources/Prototypes/_Mono/GameRules/planets.yml @@ -0,0 +1,38 @@ +- type: entity + id: MonoPlanetmapSpawnerScheduler + parent: BaseGameRule + components: + - type: BasicStationEventScheduler + scheduledGameRules: !type:NestedSelector + tableId: PlanetMapsTable + minimumTimeUntilFirstEvent: 1800 # 30 minutes + minMaxEventTiming: + min: 3900 # 65 minutes between events - 5 min buffer between + max: 3900 # 65 minutes between events - 5 min buffer between + +- type: entityTable + id: PlanetMapsTable + table: !type:AllSelector # we need to pass a list of rules, since rules have further restrictions to consider via StationEventComp + children: + - id: PlanetZoneSnowA + +- type: entity + parent: BaseRandomShuttleRule + id: PlanetZoneSnowA + components: + - type: StationEvent + startAnnouncement: mono-planet-event-start-announcement + startAudio: + path: /Audio/Misc/notice2.ogg + warningAnnouncement: mono-planet-event-warning-announcement + warningAudio: + path: /Audio/Misc/notice1.ogg + endAnnouncement: mono-planet-event-end-announcement + duration: 3600 # This means nothing outside of announcements if you're trying to change this, it uses a TimedDespawn comp added to the map prototype. + maxDuration: 3600 # Same as above. + weight: 2 + maxOccurrences: 1 + - type: GameRule + minPlayers: 15 + - type: LoadMapRule + gameMap: SnowZoneA diff --git a/Resources/Prototypes/_Mono/Planets/Maps/Snow/zone_a.yml b/Resources/Prototypes/_Mono/Planets/Maps/Snow/zone_a.yml new file mode 100644 index 00000000000..72564f067c2 --- /dev/null +++ b/Resources/Prototypes/_Mono/Planets/Maps/Snow/zone_a.yml @@ -0,0 +1,19 @@ +- type: gameMap + id: SnowZoneA + mapName: 'Landing Zone' + mapPath: /Maps/_Mono/Planet/Snow/ # Nothing to use yet lol im ignoring fail + maxRandomOffset: 0 + randomRotation: false + minPlayers: 0 + maxPlayers: 100 + stations: + Planet: + stationProto: StandardNanotrasenStation + gridComponents: + - type: TimedDespawn + lifetime: 3600 + components: + - type: StationNameSetup + mapNameTemplate: 'Landing Zone' + - type: StationBiome + biome: MonoSnowEventPlanet diff --git a/Resources/Prototypes/_Mono/Planets/events.yml b/Resources/Prototypes/_Mono/Planets/events.yml new file mode 100644 index 00000000000..7923b2fb312 --- /dev/null +++ b/Resources/Prototypes/_Mono/Planets/events.yml @@ -0,0 +1,307 @@ +- type: planet + id: GameruleDesertWorld60Minutes + biome: MonoDesertEventPlanet + mapName: shuttle-destination-planet-zone + mapLight: "#FEFEFE" + addedComponents: + - type: FTLDestination + - type: TimedDespawn + lifetime: 3600 + atmosphere: + volume: 2500 + temperature: 303.6 # 30.45 celsius + moles: + - 32.458 + - 68.213 + +- type: biomeTemplate + id: MonoDesertEventPlanet + layers: + # Boulder Placement + - !type:BiomeEntityLayer + threshold: 0.975 + noise: + seed: 0 + frequency: 5 + noiseType: OpenSimplex2 + allowedTiles: + - FloorDesert + - FloorDesertRocky + - FloorDesertPlanet + - FloorAsteroidSandUnvariantizedPlanet + entities: + - FloraRockSolidPlanet + # Flora Placement + # Piluma + - !type:BiomeEntityLayer + threshold: 0.915 + noise: + seed: 0 + frequency: 2 + noiseType: OpenSimplex2 + allowedTiles: + - FloorDesert + - FloorDesertPlanet + - FloorAsteroidSandUnvariantizedPlanet + entities: + - FloraPilumaPlant + # Orakim + - !type:BiomeEntityLayer + threshold: 0.925 + noise: + seed: 0 + frequency: 2 + noiseType: OpenSimplex2 + allowedTiles: + - FloorDesert + - FloorDesertPlanet + entities: + - FloraOrakimPlant + # Rock decals + - !type:BiomeDecalLayer + allowedTiles: + - FloorDesert + - FloorDesertRocky + - FloorDesertPlanet + - FloorAsteroidSandUnvariantizedPlanet + - FloorAsteroidSandPlanet + threshold: 0.9 + divisions: 1 + noise: + seed: 1 + frequency: 5 + decals: + - Basalt1 + - Basalt2 + - Basalt3 + - Basalt4 + - Basalt5 + - Basalt6 + - Basalt7 + - Basalt8 + - Basalt9 + # Bush decals + - !type:BiomeDecalLayer + allowedTiles: + - FloorDesert + - FloorDesertPlanet + threshold: 0.9 + divisions: 1 + noise: + seed: 1 + frequency: 0.9 + decals: + - Bushj1 + - Bushj2 + - Bushj3 + # Large rock areas + - !type:BiomeEntityLayer + allowedTiles: + - FloorAsteroidSandUnvariantizedPlanet + threshold: -0.05 + noise: + seed: 0 + noiseType: Cellular + frequency: 0.05 + lacunarity: 5 + fractalType: FBm + octaves: 2 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + entities: + - WallRockSand + - !type:BiomeDummyLayer + id: Loot + # Fill layer + # Base tiles + - !type:BiomeTileLayer + threshold: -1 + tile: FloorAsteroidSandPlanet + # Apply planet desert tile as noise so it doesnt look flat and boring + - !type:BiomeTileLayer + threshold: -0.40 + tile: FloorDesertPlanet + noise: + seed: 0 + noiseType: Cellular + frequency: 0.2 + lacunarity: 2 + fractalType: FBm + octaves: 2 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + # Unvariantized tile for rock walls to be placed on + - !type:BiomeTileLayer + tile: FloorAsteroidSandUnvariantizedPlanet + threshold: -0.30 + noise: + seed: 0 + noiseType: Cellular + frequency: 0.05 + lacunarity: 2 + fractalType: FBm + octaves: 5 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + +- type: planet + id: GameruleSnowWorld60Minutes + biome: MonoSnowEventPlanet + mapName: shuttle-destination-planet-zone + mapLight: "#FEFEFE" + addedComponents: + - type: FTLDestination + - type: TimedDespawn + lifetime: 3600 + atmosphere: + volume: 2500 + temperature: 237.55 # -35.6 celsius + moles: + - 32.458 + - 68.213 + +- type: biomeTemplate + id: MonoSnowEventPlanet + layers: + # Sparse vegetation + - !type:BiomeDecalLayer + allowedTiles: + - FloorSnow + divisions: 2 + threshold: -0.50 + noise: + seed: 0 + noiseType: Cellular + frequency: 1 + decals: + - grasssnowa1 + - grasssnowa2 + - grasssnowa3 + - grasssnowb1 + - grasssnowb2 + - grasssnowb3 + - grasssnowc1 + - grasssnowc2 + - grasssnowc3 + # Dense, bland grass + - !type:BiomeDecalLayer + allowedTiles: + - FloorSnow + divisions: 1 + threshold: -0.35 + noise: + seed: 0 + noiseType: Cellular + frequency: 0.2 + fractalType: FBm + octaves: 5 + lacunarity: 2 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + decals: + - grasssnow + - grasssnow01 + - grasssnow02 + - grasssnow03 + - grasssnow04 + - grasssnow05 + - grasssnow06 + - grasssnow07 + - grasssnow08 + - grasssnow09 + - grasssnow10 + - grasssnow11 + - grasssnow12 + - grasssnow13 + # Little bit of coloured grass + - !type:BiomeDecalLayer + allowedTiles: + - FloorSnow + divisions: 1 + threshold: -0.0 + noise: + seed: 0 + noiseType: Cellular + frequency: 1 + fractalType: None + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + decals: + - bushsnowa1 + - bushsnowa2 + - bushsnowa3 + - bushsnowb3 + - bushsnowb2 + - bushsnowb3 + - !type:BiomeEntityLayer + threshold: 0.3 + noise: + seed: 0 + noiseType: OpenSimplex2 + fractalType: FBm + frequency: 2 + allowedTiles: + - FloorSnow + entities: + - FloraTreeConifer + # Boulder Placement + - !type:BiomeEntityLayer + threshold: 0.975 + noise: + seed: 0 + frequency: 5 + noiseType: OpenSimplex2 + allowedTiles: + - FloorSnow + - FloorSnowDug + entities: + - FloraRockSolidPlanet + # Large rock areas + - !type:BiomeEntityLayer + allowedTiles: + - FloorCave + threshold: -1 + noise: + seed: 0 + noiseType: Cellular + frequency: 0.05 + lacunarity: 5 + fractalType: FBm + octaves: 2 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + entities: + - WallRockBasalt + - !type:BiomeDummyLayer + id: Loot + # Fill layer + # Base tiles + - !type:BiomeTileLayer + threshold: -1 + tile: FloorSnowDug + # Apply planet desert tile as noise so it doesnt look flat and boring + - !type:BiomeTileLayer + threshold: -0.40 + tile: FloorSnow + noise: + seed: 0 + noiseType: Cellular + frequency: 0.4 + lacunarity: 2 + fractalType: FBm + octaves: 4 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + # Unvariantized tile for rock walls to be placed on + - !type:BiomeTileLayer + tile: FloorCave + threshold: -0.2 + noise: + seed: 0 + noiseType: Cellular + frequency: 0.03 + lacunarity: 2 + fractalType: FBm + octaves: 5 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 diff --git a/Resources/Prototypes/_Mono/Planets/salvage_mods.yml b/Resources/Prototypes/_Mono/Planets/salvage_mods.yml index 09da0548d17..1ca3201cdb7 100644 --- a/Resources/Prototypes/_Mono/Planets/salvage_mods.yml +++ b/Resources/Prototypes/_Mono/Planets/salvage_mods.yml @@ -9,3 +9,121 @@ color: "#FFFFFF" # Genius! biomes: - Desert + +# Weather mods + +- type: salvageWeatherMod + id: Hail + desc: salvage-weather-mod-hail + weather: Hail + cost: 2 + biomes: + - Snow + +- type: salvageWeatherMod + id: SnowfallHeavy + desc: salvage-weather-mod-heavy-snowfall + weather: MonoBlizzard + cost: 1 + biomes: + - Snow + +- type: salvageWeatherMod + id: SnowfallMedium + desc: salvage-weather-mod-medium-snowfall + weather: MonoSnow + cost: 1 + biomes: + - Grasslands + - Snow + +- type: salvageWeatherMod + id: SnowfallLight + desc: salvage-weather-mod-light-snowfall + weather: MonoSnowLight + cost: 1 + biomes: + - Grasslands + - Snow + +- type: salvageWeatherMod + id: AshfallHeavy + desc: salvage-weather-mod-heavy-ashfall + weather: AshfallHeavy + cost: 5 + biomes: + - Lava + +- type: salvageWeatherMod + id: Ashfall + desc: salvage-weather-mod-medium-ashfall + weather: Ashfall + cost: 2 + biomes: + - Lava + - Shadow + +- type: salvageWeatherMod + id: AshfallLight + desc: salvage-weather-mod-light-ashfall + weather: AshfallLight + cost: 1 + biomes: + - Lava + - Shadow + - Caves + - Desert + +- type: salvageWeatherMod + id: Fallout + desc: salvage-weather-mod-fallout + weather: Fallout + cost: 1 + biomes: + - Lava + - Shadow + +- type: salvageWeatherMod + id: SandstormHeavy + desc: salvage-weather-mod-heavy-sandstorm + weather: SandstormHeavy + cost: 1 + biomes: + - Caves + - Desert + +- type: salvageWeatherMod + id: Sandstorm + desc: salvage-weather-mod-sandstorm + weather: Sandstorm + biomes: + - Caves + - Lava + - Desert + +- type: salvageWeatherMod + id: LightRain + desc: salvage-weather-mod-rain-light + weather: MonoLightRain + biomes: + - Grasslands + - Lava # primordial planet or something idk + +- type: salvageWeatherMod + id: Rain + desc: salvage-weather-mod-rain + weather: MonoRain + biomes: + - Grasslands + +- type: salvageWeatherMod + id: Storm + desc: salvage-weather-mod-storm + weather: MonoStorm + biomes: + - Grasslands + +- type: salvageWeatherMod + id: ClearWeather + desc: salvage-weather-mod-none + weather: ClearWeather diff --git a/Resources/Prototypes/_Mono/ai_factions.yml b/Resources/Prototypes/_Mono/ai_factions.yml index 37f3308888f..125aa78eae4 100644 --- a/Resources/Prototypes/_Mono/ai_factions.yml +++ b/Resources/Prototypes/_Mono/ai_factions.yml @@ -70,3 +70,7 @@ friendly: - AberrantFleshExpeditionNF defaultHostile: true + +- type: npcFaction + id: PMCExpeditionMono + defaultHostile: true diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_general.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_general.yml index 16d1d71c439..2d6e8d0e22c 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_general.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_general.yml @@ -53,7 +53,7 @@ - type: entity name: random pen id: SpawnDungeonLootBureaucracyPen - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] parent: MarkerBasePlaceFree suffix: Dungeon components: @@ -585,7 +585,7 @@ id: SpawnDungeonMachineFrame parent: MarkerBase suffix: Dungeon - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -608,7 +608,7 @@ id: SpawnDungeonComputerFrame parent: MarkerBase suffix: Dungeon - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -631,7 +631,7 @@ id: SpawnDungeonCanisterBroken parent: MarkerBase suffix: Dungeon - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: diff --git a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_weapons.yml b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_weapons.yml index 18b05abaa7e..82be650872f 100644 --- a/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_weapons.yml +++ b/Resources/Prototypes/_NF/Entities/Markers/Spawners/Random/dungeon_items_weapons.yml @@ -4,7 +4,7 @@ id: SpawnDungeonLootMeleeT1 parent: MarkerBasePlaceFree suffix: "Dungeon, Melee, T1" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -39,7 +39,7 @@ id: SpawnDungeonLootGunT1 parent: MarkerBasePlaceFree suffix: "Dungeon, Gun, T1" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -76,7 +76,7 @@ id: SpawnDungeonLootExplosivesT1 parent: MarkerBasePlaceFree suffix: "Dungeon, Explosives, T1" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -102,7 +102,7 @@ id: SpawnDungeonLootMeleeT2 parent: MarkerBasePlaceFree suffix: "Dungeon, Melee, T2" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -133,7 +133,7 @@ id: SpawnDungeonLootGunT2 parent: MarkerBasePlaceFree suffix: "Dungeon, Gun, T2" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -168,7 +168,7 @@ id: SpawnDungeonLootExplosivesT2 parent: MarkerBasePlaceFree suffix: "Dungeon, Explosives, T2" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -194,7 +194,7 @@ id: SpawnDungeonLootMeleeT3 parent: MarkerBasePlaceFree suffix: "Dungeon, Melee, T3" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -223,7 +223,7 @@ id: SpawnDungeonLootGunT3 parent: MarkerBasePlaceFree suffix: "Dungeon, Gun, T3" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -264,7 +264,7 @@ id: SpawnDungeonLootExplosivesT3 parent: MarkerBasePlaceFree suffix: "Dungeon, Explosives, T3" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -291,7 +291,7 @@ id: SpawnDungeonLootMeleeT4 parent: MarkerBasePlaceFree suffix: "Dungeon, Melee, T4" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -320,7 +320,7 @@ id: SpawnDungeonLootGunT4 parent: MarkerBasePlaceFree suffix: "Dungeon, Gun, T4" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -354,7 +354,7 @@ id: SpawnDungeonLootExplosivesT4 parent: MarkerBasePlaceFree suffix: "Dungeon, Explosives, T4" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -380,7 +380,7 @@ id: SpawnDungeonLootMeleeT5 parent: MarkerBasePlaceFree suffix: "Dungeon, Melee, T5" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -402,7 +402,7 @@ id: SpawnDungeonLootGunT5 parent: MarkerBasePlaceFree suffix: "Dungeon, Gun, T5" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -434,7 +434,7 @@ id: SpawnDungeonLootExplosivesT5 parent: MarkerBasePlaceFree suffix: "Dungeon, Explosives, T5" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -457,7 +457,7 @@ id: SpawnDungeonLootAmmoLethal parent: MarkerBasePlaceFree suffix: "Dungeon, Ammo, Lethal" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -493,7 +493,7 @@ id: SpawnDungeonLootAmmoRubber parent: MarkerBasePlaceFree suffix: "Dungeon, Ammo, Rubber" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -521,7 +521,7 @@ id: SpawnDungeonLootAmmoPractice parent: MarkerBasePlaceFree suffix: "Dungeon, Ammo, Practice" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -545,7 +545,7 @@ id: SpawnDungeonLootAmmoIncendiary parent: MarkerBasePlaceFree suffix: "Dungeon, Ammo, Incendiary" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -571,7 +571,7 @@ id: SpawnDungeonLootAmmoUranium parent: MarkerBasePlaceFree suffix: "Dungeon, Ammo, Uranium" - categories: [ HideSpawnMenu ] + #categories: [ HideSpawnMenu ] components: - type: Sprite layers: diff --git a/Resources/Prototypes/_NF/Procedural/salvage_mods.yml b/Resources/Prototypes/_NF/Procedural/salvage_mods.yml index 5f7fe419699..7a7312bf6ea 100644 --- a/Resources/Prototypes/_NF/Procedural/salvage_mods.yml +++ b/Resources/Prototypes/_NF/Procedural/salvage_mods.yml @@ -120,124 +120,6 @@ maxDuration: 840 # Frontier cost: 1 -# Weather mods - -- type: salvageWeatherMod - id: Hail - desc: salvage-weather-mod-hail - weather: Hail - cost: 2 - biomes: - - Snow - -- type: salvageWeatherMod - id: SnowfallHeavy - desc: salvage-weather-mod-heavy-snowfall - weather: MonoBlizzard - cost: 1 - biomes: - - Snow - -- type: salvageWeatherMod - id: SnowfallMedium - desc: salvage-weather-mod-medium-snowfall - weather: MonoSnow - cost: 1 - biomes: - - Grasslands - - Snow - -- type: salvageWeatherMod - id: SnowfallLight - desc: salvage-weather-mod-light-snowfall - weather: MonoSnowLight - cost: 1 - biomes: - - Grasslands - - Snow - -- type: salvageWeatherMod - id: AshfallHeavy - desc: salvage-weather-mod-heavy-ashfall - weather: AshfallHeavy - cost: 5 - biomes: - - Lava - -- type: salvageWeatherMod - id: Ashfall - desc: salvage-weather-mod-medium-ashfall - weather: Ashfall - cost: 2 - biomes: - - Lava - - Shadow - -- type: salvageWeatherMod - id: AshfallLight - desc: salvage-weather-mod-light-ashfall - weather: AshfallLight - cost: 1 - biomes: - - Lava - - Shadow - - Caves - - Desert - -- type: salvageWeatherMod - id: Fallout - desc: salvage-weather-mod-fallout - weather: Fallout - cost: 1 - biomes: - - Lava - - Shadow - -- type: salvageWeatherMod - id: SandstormHeavy - desc: salvage-weather-mod-heavy-sandstorm - weather: SandstormHeavy - cost: 1 - biomes: - - Caves - - Desert - -- type: salvageWeatherMod - id: Sandstorm - desc: salvage-weather-mod-sandstorm - weather: Sandstorm - biomes: - - Caves - - Lava - - Desert - -- type: salvageWeatherMod - id: LightRain - desc: salvage-weather-mod-rain-light - weather: MonoLightRain - biomes: - - Grasslands - - Lava # primordial planet or something idk - -- type: salvageWeatherMod - id: Rain - desc: salvage-weather-mod-rain - weather: MonoRain - biomes: - - Grasslands - -- type: salvageWeatherMod - id: Storm - desc: salvage-weather-mod-storm - weather: MonoStorm - biomes: - - Grasslands - -- type: salvageWeatherMod - id: ClearWeather - desc: salvage-weather-mod-none - weather: ClearWeather - # Air mixtures - type: salvageAirMod id: Space diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/bag-equipped.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/bag-equipped.png new file mode 100644 index 00000000000..8bb1faae7ba Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/bag-equipped.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/bag.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/bag.png new file mode 100644 index 00000000000..6d32ef3331b Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/bag.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/meta.json b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/meta.json new file mode 100644 index 00000000000..c3e96c96dd2 --- /dev/null +++ b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/meta.json @@ -0,0 +1,70 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from SS13 Shiptest.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "pmc-hardsuit-heavy", + "directions": 4 + }, + { + "name": "pmc-hardsuit-heavy-head", + "directions": 4 + }, + { + "name": "pmc-hardsuit-heavy-head-unshaded", + "directions": 4 + }, + { + "name": "pmc-hardsuit", + "directions": 4 + }, + { + "name": "pmc-hardsuit-head", + "directions": 4 + }, + { + "name": "pmc-webbing", + "directions": 4 + }, + { + "name": "pmc-gasmask", + "directions": 4 + }, + { + "name": "pmc-helmet", + "directions": 4 + }, + { + "name": "pmc-jumpsuit", + "directions": 4 + }, + { + "name": "pmc-uniform", + "directions": 4 + }, + { + "name": "pmc-vest", + "directions": 4 + }, + { + "name": "pmc-boots", + "directions": 4 + }, + { + "name": "pmc-gloves", + "directions": 4 + }, + { + "name": "bag-equipped", + "directions": 4 + }, + { + "name": "bag" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-boots.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-boots.png new file mode 100644 index 00000000000..143bf2f751e Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-boots.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-gasmask.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-gasmask.png new file mode 100644 index 00000000000..0908dffaf85 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-gasmask.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-gloves.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-gloves.png new file mode 100644 index 00000000000..331c9018885 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-gloves.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-head.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-head.png new file mode 100644 index 00000000000..d25d1432b90 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-head.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy-head-unshaded.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy-head-unshaded.png new file mode 100644 index 00000000000..4cd7df9e735 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy-head-unshaded.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy-head.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy-head.png new file mode 100644 index 00000000000..4cd7df9e735 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy-head.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy.png new file mode 100644 index 00000000000..779e186d705 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit-heavy.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit.png new file mode 100644 index 00000000000..7541699af2f Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-hardsuit.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-helmet.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-helmet.png new file mode 100644 index 00000000000..1b7c2c21379 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-helmet.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-jumpsuit.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-jumpsuit.png new file mode 100644 index 00000000000..63504fcdee0 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-jumpsuit.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-uniform.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-uniform.png new file mode 100644 index 00000000000..981f9d5ce58 Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-uniform.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-vest.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-vest.png new file mode 100644 index 00000000000..2cc115c88bc Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-vest.png differ diff --git a/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-webbing.png b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-webbing.png new file mode 100644 index 00000000000..374d11a1faa Binary files /dev/null and b/Resources/Textures/_Mono/Clothing/NPC/pmc.rsi/pmc-webbing.png differ