From eaf9c009c1b344bc831182bebbf645338195e529 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Sun, 23 Mar 2025 14:14:08 +0300 Subject: [PATCH] Slimes mob (#1049) * import sprites * pipia * 3 slime types * Delete generic_magic_effects.yml * Update scrolls.yml * demiplane integration * Update fire.yml * Update crystals.yml * local * Update fire.yml * fix AI stuck * Update base.yml * loot * Update mobs.yml --- .../CP14SpellApplyEntityEffectOnUser.cs | 20 +++ .../MagicSpell/Spells/CP14SpellThrowUserTo.cs | 19 +++ .../en-US/_CP14/demiplane/locations.ftl | 1 + .../ru-RU/_CP14/demiplane/locations.ftl | 1 + .../_CP14/Entities/Actions/Spells/scrolls.yml | 1 + .../_CP14/Entities/Mobs/NPC/Slimes/base.yml | 142 ++++++++++++++++++ .../Entities/Mobs/NPC/Slimes/electric.yml | 93 ++++++++++++ .../_CP14/Entities/Mobs/NPC/Slimes/fire.yml | 103 +++++++++++++ .../_CP14/Entities/Mobs/NPC/Slimes/ice.yml | 117 +++++++++++++++ .../{t2_caves_ring.yml => t2_magma_caves.yml} | 30 +++- .../Demiplane/Modifiers/Danger/misc.yml | 2 +- .../Demiplane/Modifiers/Danger/mobs.yml | 64 ++++++++ .../Demiplane/Modifiers/Fun/lol.yml | 2 +- .../Demiplane/Modifiers/Reward/crystals.yml | 6 +- .../_CP14/Procedural/Demiplane/tags.yml | 9 +- .../_CP14/Mobs/Monster/slime.rsi/base.png | Bin 0 -> 2327 bytes .../_CP14/Mobs/Monster/slime.rsi/icon.png | Bin 0 -> 356 bytes .../_CP14/Mobs/Monster/slime.rsi/jump.png | Bin 0 -> 3411 bytes .../_CP14/Mobs/Monster/slime.rsi/meta.json | 82 ++++++++++ 19 files changed, 672 insertions(+), 20 deletions(-) create mode 100644 Content.Shared/_CP14/MagicSpell/Spells/CP14SpellApplyEntityEffectOnUser.cs create mode 100644 Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowUserTo.cs create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/electric.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/fire.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/ice.yml rename Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/{t2_caves_ring.yml => t2_magma_caves.yml} (82%) create mode 100644 Resources/Textures/_CP14/Mobs/Monster/slime.rsi/base.png create mode 100644 Resources/Textures/_CP14/Mobs/Monster/slime.rsi/icon.png create mode 100644 Resources/Textures/_CP14/Mobs/Monster/slime.rsi/jump.png create mode 100644 Resources/Textures/_CP14/Mobs/Monster/slime.rsi/meta.json diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellApplyEntityEffectOnUser.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellApplyEntityEffectOnUser.cs new file mode 100644 index 0000000000..d9bcf2a502 --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellApplyEntityEffectOnUser.cs @@ -0,0 +1,20 @@ +using Content.Shared.EntityEffects; + +namespace Content.Shared._CP14.MagicSpell.Spells; + +public sealed partial class CP14SpellApplyEntityEffectOnUser : CP14SpellEffect +{ + [DataField(required: true, serverOnly: true)] + public List Effects = new(); + + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) + { + if (args.User == null) + return; + + foreach (var effect in Effects) + { + effect.Effect(new EntityEffectBaseArgs(args.User.Value, entManager)); + } + } +} diff --git a/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowUserTo.cs b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowUserTo.cs new file mode 100644 index 0000000000..7db6e2c0c2 --- /dev/null +++ b/Content.Shared/_CP14/MagicSpell/Spells/CP14SpellThrowUserTo.cs @@ -0,0 +1,19 @@ +using Content.Shared.Throwing; + +namespace Content.Shared._CP14.MagicSpell.Spells; + +public sealed partial class CP14SpellThrowUserTo : CP14SpellEffect +{ + [DataField] + public float ThrowPower = 10f; + + public override void Effect(EntityManager entManager, CP14SpellEffectBaseArgs args) + { + if (args.Position is null || args.User is null) + return; + + var throwing = entManager.System(); + + throwing.TryThrow(args.User.Value, args.Position.Value, ThrowPower); + } +} diff --git a/Resources/Locale/en-US/_CP14/demiplane/locations.ftl b/Resources/Locale/en-US/_CP14/demiplane/locations.ftl index 354a24f454..ced73648d6 100644 --- a/Resources/Locale/en-US/_CP14/demiplane/locations.ftl +++ b/Resources/Locale/en-US/_CP14/demiplane/locations.ftl @@ -1,5 +1,6 @@ cp14-demiplane-location-cave = Dark caves cp14-demiplane-location-cave-grass = Overgrown caves +cp14-demiplane-location-cave-magma = Flaming caves cp14-demiplane-location-grassland-island = Green Island cp14-demiplane-location-ice-cave = Ice caves cp14-demiplane-location-snow-island = Snowy island diff --git a/Resources/Locale/ru-RU/_CP14/demiplane/locations.ftl b/Resources/Locale/ru-RU/_CP14/demiplane/locations.ftl index 0a75dad256..a39c90e0b0 100644 --- a/Resources/Locale/ru-RU/_CP14/demiplane/locations.ftl +++ b/Resources/Locale/ru-RU/_CP14/demiplane/locations.ftl @@ -1,5 +1,6 @@ cp14-demiplane-location-cave = Темные пещеры cp14-demiplane-location-cave-grass = Заросшие пещеры +cp14-demiplane-location-cave-magma = Раскаленные пещеры cp14-demiplane-location-grassland-island = Зеленый остров cp14-demiplane-location-ice-cave = Ледяные пещеры cp14-demiplane-location-snow-island = Заснеженный остров diff --git a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml index 27c7ff9bf4..b69f0364ca 100644 --- a/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml +++ b/Resources/Prototypes/_CP14/Entities/Actions/Spells/scrolls.yml @@ -16,6 +16,7 @@ damage: types: Heat: 1 + - type: Appearance - type: FireVisuals sprite: Effects/fire.rsi normalState: fire diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml new file mode 100644 index 0000000000..8d31c12b61 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/base.yml @@ -0,0 +1,142 @@ +- type: entity + id: CP14MobSlimeBase + parent: [ CP14SimpleMobBase, MobCombat ] + name: slime + description: A clot of semi-intelligent slime sensitive to the elemental elements. And happy to slime the skin off your face. + components: + - type: HTN + rootTask: + task: CP14MonsterCompound + blackboard: + NavSmash: !type:Bool + true + VisionRadius: !type:Single + 12 + AggroVisionRadius: !type:Single + 8 + - type: NPCUseActionOnTarget + actionId: CP14ActionSpellSlimeJump + - type: Sprite + drawdepth: Mobs + sprite: _CP14/Mobs/Monster/slime.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: base + - type: SpriteMovement + movementLayers: + movement: + state: jump + noMovementLayers: + movement: + state: base + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.30 + density: 80 + mask: + - MobMask + layer: + - MobLayer + - ItemMask + - type: NpcFactionMember + factions: + - CP14Monster + - type: MovementSpeedModifier + baseWalkSpeed: 1 + baseSprintSpeed: 2 + - type: FootstepModifier + footstepSoundCollection: + path: /Audio/Effects/Footsteps/slime1.ogg + params: + volume: 3 + - type: Damageable + damageContainer: Biological + damageModifierSet: Slime + - type: MeleeWeapon + altDisarm: false + soundHit: + path: /Audio/Weapons/punch3.ogg + angle: 0 + animation: WeaponArcPunch + damage: + types: + Blunt: 5 + - type: InteractionPopup + successChance: 0.5 + interactSuccessString: petting-success-slimes + interactFailureString: petting-failure-generic + - type: Speech + speechVerb: Slime + speechSounds: Slime + - type: TypingIndicator + proto: slime + - type: SolutionContainerManager + solutions: + slime: + maxVol: 50 + reagents: + - ReagentId: CP14ChromiumSlime + Quantity: 20 + - ReagentId: CP14BasicEffectEmpty + Quantity: 30 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:SpillBehavior + solution: slime + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: EntityStorage + isCollidableWhenOpen: true + enteringOffset: 0, 0 + capacity: 2 + showContents: true + occludesLight: false + - type: CP14MagicCasterSlowdown + - type: EntityTableContainerFill + containers: + entity_storage: !type:GroupSelector + children: + - !type:GroupSelector + children: + - id: CP14OreCopper1 + - id: CP14OreIron1 + - id: CP14ScrapCopper + - id: CP14ScrapIron + - id: CP14CopperCoin1 + weight: 3 + +- type: entity + id: CP14ActionSpellSlimeJump + name: Slime jump + description: Jump! JUMP! + components: + - type: Sprite + sprite: _CP14/Actions/Spells/physical.rsi + state: kick #TODO + - type: CP14MagicEffectCastSlowdown + speedMultiplier: 0.1 + - type: CP14MagicEffect + effects: + - !type:CP14SpellThrowUserTo + throwPower: 8 + - type: EntityWorldTargetAction + useDelay: 8 + range: 10 + checkCanAccess: false + itemIconStyle: BigAction + icon: + sprite: _CP14/Actions/Spells/physical.rsi + state: kick #TODO + event: !type:CP14DelayedEntityWorldTargetActionEvent + hidden: true + breakOnMove: false + breakOnDamage: false + castDelay: 1 + raiseOnUser: true \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/electric.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/electric.yml new file mode 100644 index 0000000000..eeec39cc9a --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/electric.yml @@ -0,0 +1,93 @@ +- type: entity + id: CP14MobSlimeElectric + parent: CP14MobSlimeBase + name: electric slime + components: + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: base + color: "#f7f00c" + shader: unshaded + - type: PointLight + color: "#f7f00c" + energy: 5 + radius: 1.8 + - type: SolutionContainerManager + solutions: + slime: + maxVol: 50 + reagents: + - ReagentId: CP14ChromiumSlime + Quantity: 20 + - ReagentId: CP14EssenceEnergia + Quantity: 30 + - type: MeleeWeapon + altDisarm: false + soundHit: + path: /Audio/Weapons/punch3.ogg + angle: 0 + animation: WeaponArcPunch + damage: + types: + Blunt: 3 + Shock: 3 + - type: CP14SpellEffectOnHit + prob: 0.75 + effects: + - !type:CP14SpellApplyEntityEffect + effects: + - !type:Electrocute + electrocuteTime: 0.5 + electrocuteDamageScale: 1 + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ElectrifiedEffect + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:SpillBehavior + solution: slime + - !type:SpawnEntitiesBehavior + spawn: + CP14AreaEntityEffectSlimeShock: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + +- type: entity + id: CP14AreaEntityEffectSlimeShock + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#f7f00c" + - type: Sprite + noRot: true + drawdepth: BelowFloor + sprite: _CP14/Effects/Magic/area_impact.rsi + layers: + - state: area_impact_out + color: "#f7f00c" + scale: 2, 2 + shader: unshaded + - type: TimedDespawn + lifetime: 0.2 + - type: CP14AreaEntityEffect + range: 2 + whitelist: + components: + - Damageable + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ElectrifiedEffect + - !type:CP14SpellApplyEntityEffect + effects: + - !type:Electrocute + electrocuteTime: 3.5 + electrocuteDamageScale: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/fire.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/fire.yml new file mode 100644 index 0000000000..0be0be3b21 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/fire.yml @@ -0,0 +1,103 @@ +- type: entity + id: CP14MobSlimeFire + parent: CP14MobSlimeBase + name: fire slime + components: + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: base + color: "#f7570c" + shader: unshaded + - type: PointLight + color: "#f7570c" + energy: 5 + radius: 1.8 + - type: SolutionContainerManager + solutions: + slime: + maxVol: 50 + reagents: + - ReagentId: CP14ChromiumSlime + Quantity: 20 + - ReagentId: CP14EssenceFire + Quantity: 20 + - ReagentId: CP14BasicEffectDamageHeat + Quantity: 10 + - type: MeleeWeapon + altDisarm: false + soundHit: + path: /Audio/Weapons/punch3.ogg + angle: 0 + animation: WeaponArcPunch + damage: + types: + Blunt: 3 + Heat: 3 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:SpillBehavior + solution: slime + - !type:SpawnEntitiesBehavior + spawn: + CP14AreaEntityEffectSlimeIgnite: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: IgniteOnMeleeHit + fireStacks: 1 + - type: EntityTableContainerFill + containers: + entity_storage: !type:GroupSelector + children: + - !type:GroupSelector + children: + - id: CP14OreCopper1 + - id: CP14OreIron1 + - id: CP14ScrapCopper + - id: CP14ScrapIron + - id: CP14FoodMeatLambCutletCooked + - id: CP14CopperCoin1 + - id: CP14CrystalShardFire + weight: 3 + +- type: entity + id: CP14AreaEntityEffectSlimeIgnite + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#eea911" + - type: Sprite + noRot: true + drawdepth: BelowFloor + sprite: _CP14/Effects/Magic/area_impact.rsi + layers: + - state: area_impact_out + color: "#eea911" + scale: 2, 2 + shader: unshaded + - type: TimedDespawn + lifetime: 0.2 + - type: CP14AreaEntityEffect + range: 2 + whitelist: + components: + - MobState + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectTieflingRevenge + - !type:CP14SpellApplyEntityEffect + effects: + - !type:Jitter + - !type:FlammableReaction + multiplier: 1.5 + - !type:AdjustTemperature + amount: 6000 + - !type:Ignite \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/ice.yml b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/ice.yml new file mode 100644 index 0000000000..c469835d12 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/NPC/Slimes/ice.yml @@ -0,0 +1,117 @@ +- type: entity + id: CP14MobSlimeIce + parent: CP14MobSlimeBase + name: ice slime + components: + - type: Sprite + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: base + color: "#0cb1f7" + shader: unshaded + - type: PointLight + color: "#0cb1f7" + energy: 5 + radius: 1.8 + - type: SolutionContainerManager + solutions: + slime: + maxVol: 50 + reagents: + - ReagentId: CP14ChromiumSlime + Quantity: 20 + - ReagentId: CP14EssenceWater + Quantity: 30 + - type: MeleeWeapon + altDisarm: false + soundHit: + path: /Audio/Weapons/punch3.ogg + angle: 0 + animation: WeaponArcPunch + damage: + types: + Blunt: 3 + Cold: 3 + - type: CP14SpellEffectOnHit + whitelist: + components: + - MobState + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectFreeze + - !type:CP14SpellApplyEntityEffect + effects: + - !type:MovespeedModifier + walkSpeedModifier: 0.75 + sprintSpeedModifier: 0.75 + statusLifetime: 2 + - !type:AdjustTemperature + amount: -6000 + - !type:ExtinguishReaction + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:SpillBehavior + solution: slime + - !type:SpawnEntitiesBehavior + spawn: + CP14AreaEntityEffectSlimeFroze: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: EntityTableContainerFill + containers: + entity_storage: !type:GroupSelector + children: + - !type:GroupSelector + children: + - id: CP14OreCopper1 + - id: CP14OreIron1 + - id: CP14ScrapCopper + - id: CP14ScrapIron + - id: CP14Snowball + - id: CP14CopperCoin1 + - id: CP14CrystalShardWater + weight: 3 + +- type: entity + id: CP14AreaEntityEffectSlimeFroze + parent: CP14BaseMagicImpact + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: "#0cb1f7" + - type: Sprite + noRot: true + drawdepth: BelowFloor + sprite: _CP14/Effects/Magic/area_impact.rsi + layers: + - state: area_impact_out + color: "#0cb1f7" + scale: 2, 2 + shader: unshaded + - type: TimedDespawn + lifetime: 0.2 + - type: CP14AreaEntityEffect + range: 2 + whitelist: + components: + - MobState + effects: + - !type:CP14SpellSpawnEntityOnTarget + spawns: + - CP14ImpactEffectFreeze + - !type:CP14SpellApplyEntityEffect + effects: + - !type:MovespeedModifier + walkSpeedModifier: 0.5 + sprintSpeedModifier: 0.5 + statusLifetime: 5 + - !type:AdjustTemperature + amount: -82000 + - !type:ExtinguishReaction \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_caves_ring.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_magma_caves.yml similarity index 82% rename from Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_caves_ring.yml rename to Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_magma_caves.yml index 999fc938ec..c832b13801 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_caves_ring.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Locations/t2_magma_caves.yml @@ -1,14 +1,14 @@ - type: cp14DemiplaneLocation - id: T1CavesRing + id: T1MagmaCaves levels: min: 3 - max: 6 + max: 10 locationConfig: CP14DemiplaneCavesRing - name: cp14-demiplane-location-cave + name: cp14-demiplane-location-cave-magma tags: - CP14DemiplaneOres - CP14DemiplaneUnderground - - CP14DemiplanePeacefulAnimals + - CP14DemiplaneHot components: - type: Biome template: CP14LavaOceanFill @@ -41,7 +41,7 @@ - !type:NoiseDistanceDunGen size: 120, 120 distanceConfig: !type:DunGenEuclideanSquaredDistance - blendWeight: 0.9 + blendWeight: 0.7 layers: - tile: CP14FloorSand threshold: 0.50 @@ -59,7 +59,7 @@ - !type:NoiseDistanceDunGen size: 110, 110 distanceConfig: !type:DunGenEuclideanSquaredDistance - blendWeight: 0.9 + blendWeight: 0.8 layers: - tile: CP14FloorGrass threshold: 0.50 @@ -77,7 +77,7 @@ - !type:NoiseDistanceDunGen size: 80, 80 distanceConfig: !type:DunGenEuclideanSquaredDistance - blendWeight: 0.9 + blendWeight: 0.7 layers: - tile: CP14FloorSand threshold: 0.50 @@ -95,7 +95,7 @@ - !type:NoiseDistanceDunGen size: 50, 50 distanceConfig: !type:DunGenEuclideanSquaredDistance - blendWeight: 0.8 + blendWeight: 0.6 layers: - tile: Space threshold: 0.50 @@ -105,4 +105,18 @@ fractalType: FBm octaves: 5 lacunarity: 2 + gain: 0.5 + - !type:NoiseDistanceDunGen + size: 80, 50 + distanceConfig: !type:DunGenEuclideanSquaredDistance + blendWeight: 0.2 + layers: + - tile: Space + threshold: 0.50 + noise: + frequency: 0.08 + noiseType: OpenSimplex2 + fractalType: FBm + octaves: 5 + lacunarity: 2 gain: 0.5 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/misc.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/misc.yml index bedd424f62..6bc3bac8a1 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/misc.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/misc.yml @@ -46,7 +46,7 @@ - type: cp14DemiplaneModifier id: Explosive levels: - min: 7 + min: 6 max: 10 name: cp14-modifier-explosive generationWeight: 0.25 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml index 4bc394a9c6..f9c039b790 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Danger/mobs.yml @@ -44,6 +44,8 @@ Danger: 0.2 requiredTags: - CP14DemiplaneHerbals + blacklistTags: + - CP14DemiplaneHot layers: - !type:OreDunGen entity: CP14SpawnMobMonsterMosquito @@ -113,6 +115,8 @@ Danger: 0.4 requiredTags: - CP14DemiplaneCold + blacklistTags: + - CP14DemiplaneHot layers: - !type:OreDunGen entity: CP14MobIceSpectre @@ -136,3 +140,63 @@ count: 2 minGroupSize: 1 maxGroupSize: 2 + +- type: cp14DemiplaneModifier + id: MobSlimeElectric + levels: + min: 1 + max: 10 + categories: + Danger: 0.3 + layers: + - !type:OreDunGen + entity: CP14MobSlimeElectric + count: 3 + minGroupSize: 4 + maxGroupSize: 5 + +- type: cp14DemiplaneModifier + id: MobSlimeFire + levels: + min: 1 + max: 10 + categories: + Danger: 0.3 + requiredTags: + - CP14DemiplaneHot + layers: + - !type:OreDunGen + entity: CP14MobSlimeFire + count: 3 + minGroupSize: 4 + maxGroupSize: 5 + +- type: cp14DemiplaneModifier + id: MobSlimeIce + levels: + min: 1 + max: 10 + categories: + Danger: 0.3 + requiredTags: + - CP14DemiplaneCold + layers: + - !type:OreDunGen + entity: CP14MobSlimeIce + count: 3 + minGroupSize: 4 + maxGroupSize: 5 + +- type: cp14DemiplaneModifier + id: MobSlimeBase + levels: + min: 1 + max: 10 + categories: + Danger: 0.25 + layers: + - !type:OreDunGen + entity: CP14MobSlimeBase + count: 3 + minGroupSize: 4 + maxGroupSize: 5 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Fun/lol.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Fun/lol.yml index bd5afc496c..70d1ca53f2 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Fun/lol.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Fun/lol.yml @@ -40,7 +40,7 @@ - CP14FloorGrassLight - CP14FloorGrassTall entity: CP14BaseLucensTreeLarge - count: 10 + count: 5 minGroupSize: 1 maxGroupSize: 1 diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml index de9a282079..2082cd9bab 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/Reward/crystals.yml @@ -26,10 +26,8 @@ generationWeight: 0.1 categories: Reward: 0.1 - requiredTags: #TODO: Hot places - - CP14DemiplaneUnderground - blacklistTags: - - CP14DemiplaneCold + requiredTags: + - CP14DemiplaneHot layers: - !type:OreDunGen entity: CP14CrystalFire diff --git a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml index a9e95b378b..9701602d22 100644 --- a/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml +++ b/Resources/Prototypes/_CP14/Procedural/Demiplane/tags.yml @@ -26,9 +26,6 @@ - type: Tag id: CP14DemiplaneCold - - #Cold - - #Hot - - #Dry \ No newline at end of file + +- type: Tag + id: CP14DemiplaneHot \ No newline at end of file diff --git a/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/base.png b/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..8af479a46812489cb79b032cbc50cd6857a76f3f GIT binary patch literal 2327 zcmV+y3F!8TP)Px-(Md!>RCt{2oiBIt+7iZp_pZCnI;N(AwXWzIfuOE2NMzl?yk7u=ti@K;)>g*w z1!{;xR$_t!f!GU&z+le0>WWFoza5egX#4i;r=pZHd-gng5(v-i2{<@7I5;@`WAU$R z4J-k4QhzW0x|XMQ_|G*4l>pYqzkK}_d`}WeGvNFclwgey%mBDEo{RzTnKl~bb27+E zfNce*H7B9rhh{4PLm)KpCOT3*3flN@3dB1wa(QT#^9#6=@int*kU)!FUo+ME@64Qa<^%{tFo-p?Ts>U<{Un z=->7LKKNi69lPlOPEWsx88cu)j~=617H$1c@CgmvndBS<0|vmDhr$RaKL@-EW-A&1 zObBZPuodXg10Ex1d!|f)8Fw}8+xf4`AW!lcR3IP;;J^)Y0a!7i9{(L+&n+8>Y!%OR zxn(O}j+H_!5je{U=cmOiGJS$uRuqN31r9OXdBzF*a5edmhJpYFv+m}~fn7xiiUVXwQ2P;e?A!UDk{w;}e=U`LmX~`*|5u&;^PsI75}y0c(1}=_&MstN?XqyhxXg$CQc@ z+WAjrQOKacPC|hIRaes*+VD920c-xO_TLKa{Y&scF@x4%r7tIsXIC(mn8%DElD8$G zCZ3Ov{HS2zUHtNwU&w!4U;{}8CG-`o3-tln0Pa$9WN0>21)zB4nP<8zCDC-7*A|@T zKdui*pc&+&6y#y84^SoT*KwG7VJox>pbzYUr2tXE%K`|Gn*Ax9??0bGT4tl?pb=Aw z=b!=sDl7E?Rp;J$iJpI#dI2m&g~&}LPtN54^y#w#I-E|0_Wol$^NYLG>qE1#9D>#i zh?P_gK-Z%$bpqIN%MKMI6L~y-)G3J5cAV?KA81v`sSKL%n#qA20kN2LegG@(*&kOw z31>mKMwL)||5X{3uMsI^z+CP#Q)w1}`AY(=1j!aTbh%|nb&*^<|2tqQ8~OmL@(2K= z4=lyY<0!7ph=zZt>xoNo#5O1FVdIf zppC*GSs#%9ycZWuf5-g_4h{|u4h{|u4h{|u4qt&QUJm~r9R#jKfCMl(ikgb=Ss`#@ z<7Ar-0uxAuAAc>qhM-y%UnBS_&vx*EV5YS=9qGbSGHpk8Dx^?*mIB)=F6&v6$;hz*yYEhm+ z)*7KMiJp4T{c$>V0#KJa!XfqSffrr~&8o!ea{eK^Zx~=ikDfJyEQdh6gFo8@;lK+J znpKS?d@xJtvj7gq-Td{@&VPp)dp0bh!U%}plMXBx76>feKA+#gukN?9s=0-IntOKC z(EeQi*&YHnsqO(fLVgE%Nv&|QgI|xKuyp%*mA#^T`}*bmHzTm3TKsqHAkd7!A6Xv& z?H9no!NI}7!NI}7!NI}dC*w+&!@o=SfU6LY?d%QU7aCc9ADrwcsc5!>e+SS*+uLT< zxz}&lJ)m^Y(77up!8+;zt_Y1MWBlk*JqkWIg9-$+TfwBGry?{eQfLDOPpW&ve|84t zgb@i~K-`}>)>d@|CpESCqz<6@hUrWAmq3DaUBH@2No@cW2_gDldRHlv3Dw^0DY=#~Z5z2Ot+sZfL0T7k~V*I&keltC#CFf_iN zgXGCf-^PEEK}%p1HE~JPR_tI>Aiy5LO<^}? zIaVBi=ZrkQijftN-&;A_$%?Y$# x4Yutb@RjyW3H*`u0c{t+!NI}7!Qmf*{{y!PQ7t3nu7Lmm002ovPDHLkV1mp(NFD$H literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/icon.png b/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e75a5e414740559d50aa210e06271f2984f60d2b GIT binary patch literal 356 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/meta.json new file mode 100644 index 0000000000..45059d2cc0 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Monster/slime.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "All right reserved", + "copyright": "Created by Max Gab (Github)", + "states": [ + { + "name": "icon" + }, + { + "name": "base", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "jump", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +}