Weather gameplay effects (#1089)
* pipa * Weather effects * Weather in demiplanes! * demiplane enter roofs * Demiplane ruins * Update weather.yml * Update paper.yml * Update paper.yml
This commit is contained in:
33
Content.Server/_CP14/FarSound/CP14FarSoundSystem.cs
Normal file
33
Content.Server/_CP14/FarSound/CP14FarSoundSystem.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using Content.Server.Explosion.EntitySystems;
|
||||
using Content.Shared._CP14.FarSound;
|
||||
using Robust.Shared.Audio.Systems;
|
||||
using Robust.Shared.Player;
|
||||
|
||||
namespace Content.Server._CP14.FarSound;
|
||||
|
||||
public sealed class CP14FarSoundSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly SharedTransformSystem _transform = default!;
|
||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<CP14FarSoundComponent, TriggerEvent>(OnTrigger);
|
||||
}
|
||||
|
||||
private void OnTrigger(Entity<CP14FarSoundComponent> ent, ref TriggerEvent args)
|
||||
{
|
||||
var mapPos = _transform.GetMapCoordinates(ent);
|
||||
var entPos = Transform(ent).Coordinates;
|
||||
//Play close sound
|
||||
_audio.PlayPvs(ent.Comp.CloseSound, entPos);
|
||||
|
||||
//Play far sound
|
||||
var farFilter = Filter.Empty().AddInRange(mapPos, ent.Comp.FarRange);
|
||||
|
||||
_audio.PlayGlobal(ent.Comp.FarSound, farFilter, true);
|
||||
}
|
||||
}
|
||||
93
Content.Server/_CP14/WeatherEffect/CP14WeatherEffectJob.cs
Normal file
93
Content.Server/_CP14/WeatherEffect/CP14WeatherEffectJob.cs
Normal file
@@ -0,0 +1,93 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Content.Shared._CP14.WeatherEffect;
|
||||
using Content.Shared.Weather;
|
||||
using Robust.Shared.CPUJob.JobQueues;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Server._CP14.WeatherEffect;
|
||||
|
||||
public sealed class CP14WeatherEffectJob : Job<bool>
|
||||
{
|
||||
private readonly IEntityManager _entManager;
|
||||
private readonly EntityLookupSystem _lookup;
|
||||
private readonly SharedWeatherSystem _weather;
|
||||
private readonly SharedMapSystem _mapSystem;
|
||||
private readonly IRobustRandom _random;
|
||||
|
||||
private readonly Entity<MapGridComponent> _mapUid;
|
||||
private readonly MapId _mapId;
|
||||
|
||||
private readonly List<CP14WeatherEffect> _effects;
|
||||
|
||||
private EntityQuery<BlockWeatherComponent> _weatherBlockQuery;
|
||||
|
||||
private readonly HashSet<Entity<TransformComponent>> _entitiesOnMap = new();
|
||||
private readonly HashSet<Entity<TransformComponent>> _affectedEntities = new();
|
||||
|
||||
public CP14WeatherEffectJob(
|
||||
double maxTime,
|
||||
IEntityManager entManager,
|
||||
EntityLookupSystem lookup,
|
||||
SharedWeatherSystem weather,
|
||||
SharedMapSystem mapSystem,
|
||||
IRobustRandom random,
|
||||
Entity<MapGridComponent> mapUid,
|
||||
MapId mapId,
|
||||
List<CP14WeatherEffect> effects,
|
||||
EntityQuery<BlockWeatherComponent> weatherBlockQuery,
|
||||
CancellationToken cancellation = default
|
||||
) : base(maxTime, cancellation)
|
||||
{
|
||||
_entManager = entManager;
|
||||
_lookup = lookup;
|
||||
_weather = weather;
|
||||
_mapSystem = mapSystem;
|
||||
_random = random;
|
||||
|
||||
_mapUid = mapUid;
|
||||
_mapId = mapId;
|
||||
|
||||
_effects = effects;
|
||||
_weatherBlockQuery = weatherBlockQuery;
|
||||
}
|
||||
|
||||
protected override async Task<bool> Process()
|
||||
{
|
||||
_affectedEntities.Clear();
|
||||
_entitiesOnMap.Clear();
|
||||
_lookup.GetEntitiesOnMap(_mapId, _entitiesOnMap);
|
||||
|
||||
//Calculate all affected entities by weather
|
||||
foreach (var ent in _entitiesOnMap)
|
||||
{
|
||||
//All weatherblocker entites should be affected by weather
|
||||
if (_weatherBlockQuery.HasComp(ent))
|
||||
{
|
||||
_affectedEntities.Add(ent);
|
||||
continue;
|
||||
}
|
||||
|
||||
//All entities on weathered tile should be affected by weather
|
||||
var tileRef = _mapSystem.GetTileRef(_mapUid, _mapUid.Comp, ent.Comp.Coordinates);
|
||||
if (_weather.CanWeatherAffect(_mapUid, _mapUid.Comp, tileRef))
|
||||
{
|
||||
_affectedEntities.Add(ent);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//Apply weather effects to affected entities
|
||||
foreach (var entity in _affectedEntities)
|
||||
{
|
||||
foreach (var effect in _effects)
|
||||
{
|
||||
effect.ApplyEffect(_entManager, _random, entity);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
using System.Threading;
|
||||
using Content.Shared.Weather;
|
||||
using Robust.Shared.CPUJob.JobQueues;
|
||||
using Robust.Shared.CPUJob.JobQueues.Queues;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server._CP14.WeatherEffect;
|
||||
|
||||
public sealed class CP14WeatherEffectSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly IPrototypeManager _proto = default!;
|
||||
[Dependency] private readonly EntityLookupSystem _lookup = default!;
|
||||
[Dependency] private readonly SharedWeatherSystem _weather = default!;
|
||||
[Dependency] private readonly SharedMapSystem _mapSystem = default!;
|
||||
[Dependency] private readonly IRobustRandom _random = default!;
|
||||
[Dependency] private readonly IGameTiming _timing = default!;
|
||||
|
||||
private readonly JobQueue _weatherQueue = new();
|
||||
private readonly List<(CP14WeatherEffectJob Job, CancellationTokenSource CancelToken)> _weatherJobs = new();
|
||||
private const double JobMaxTime = 0.002;
|
||||
|
||||
private readonly TimeSpan ProcessFreq = TimeSpan.FromSeconds(5f);
|
||||
private TimeSpan NextProcessTime = TimeSpan.Zero;
|
||||
|
||||
private EntityQuery<BlockWeatherComponent> _weatherBlockQuery;
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
_weatherBlockQuery = GetEntityQuery<BlockWeatherComponent>();
|
||||
|
||||
NextProcessTime = _timing.CurTime + ProcessFreq;
|
||||
}
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
base.Update(frameTime);
|
||||
_weatherQueue.Process();
|
||||
|
||||
foreach (var (job, cancelToken) in _weatherJobs.ToArray())
|
||||
{
|
||||
switch (job.Status)
|
||||
{
|
||||
case JobStatus.Finished:
|
||||
_weatherJobs.Remove((job, cancelToken));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (_timing.CurTime <= NextProcessTime)
|
||||
return;
|
||||
|
||||
NextProcessTime = _timing.CurTime + ProcessFreq;
|
||||
ProcessWeather();
|
||||
}
|
||||
|
||||
private void ProcessWeather()
|
||||
{
|
||||
var query = EntityQueryEnumerator<WeatherComponent, MapGridComponent>();
|
||||
while (query.MoveNext(out var mapUid, out var weather, out var mapComp))
|
||||
{
|
||||
foreach (var (proto, data) in weather.Weather)
|
||||
{
|
||||
if (!_proto.TryIndex(proto, out var indexedWeather))
|
||||
continue;
|
||||
|
||||
var cancelToken = new CancellationTokenSource();
|
||||
var job = new CP14WeatherEffectJob(
|
||||
JobMaxTime,
|
||||
EntityManager,
|
||||
_lookup,
|
||||
_weather,
|
||||
_mapSystem,
|
||||
_random,
|
||||
(mapUid, mapComp),
|
||||
Transform(mapUid).MapID,
|
||||
indexedWeather.Effects,
|
||||
_weatherBlockQuery);
|
||||
|
||||
_weatherJobs.Add((job, cancelToken));
|
||||
_weatherQueue.EnqueueJob(job);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Numerics;
|
||||
using Content.Shared._CP14.WeatherEffect;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Utility;
|
||||
@@ -33,4 +34,10 @@ public sealed partial class WeatherPrototype : IPrototype
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float Alpha = 1f;
|
||||
|
||||
/// <summary>
|
||||
/// CP14 Effects
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public List<CP14WeatherEffect> Effects = new();
|
||||
}
|
||||
|
||||
16
Content.Shared/_CP14/FarSound/CP14FarSoundComponent.cs
Normal file
16
Content.Shared/_CP14/FarSound/CP14FarSoundComponent.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using Robust.Shared.Audio;
|
||||
|
||||
namespace Content.Shared._CP14.FarSound;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class CP14FarSoundComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
public SoundSpecifier? CloseSound;
|
||||
|
||||
[DataField]
|
||||
public SoundSpecifier? FarSound;
|
||||
|
||||
[DataField]
|
||||
public float FarRange = 50f;
|
||||
}
|
||||
@@ -8,22 +8,22 @@ namespace Content.Shared._CP14.MagicEnergy.Components;
|
||||
/// <summary>
|
||||
/// Allows an item to store magical energy within itself.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
[Access(typeof(SharedCP14MagicEnergySystem))]
|
||||
public sealed partial class CP14MagicEnergyContainerComponent : Component
|
||||
{
|
||||
[DataField]
|
||||
[DataField, AutoNetworkedField]
|
||||
public FixedPoint2 Energy = 0f;
|
||||
|
||||
[DataField]
|
||||
[DataField, AutoNetworkedField]
|
||||
public FixedPoint2 MaxEnergy = 100f;
|
||||
|
||||
[DataField]
|
||||
[DataField, AutoNetworkedField]
|
||||
public ProtoId<AlertPrototype>? MagicAlert = null;
|
||||
|
||||
/// <summary>
|
||||
/// Does this container support unsafe energy manipulation?
|
||||
/// </summary>
|
||||
[DataField]
|
||||
[DataField, AutoNetworkedField]
|
||||
public bool UnsafeSupport = false;
|
||||
}
|
||||
|
||||
21
Content.Shared/_CP14/WeatherEffect/ApplyEntityEffect.cs
Normal file
21
Content.Shared/_CP14/WeatherEffect/ApplyEntityEffect.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using Content.Shared.EntityEffects;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.WeatherEffect;
|
||||
|
||||
public sealed partial class ApplyEntityEffect : CP14WeatherEffect
|
||||
{
|
||||
[DataField(required: true, serverOnly: true)]
|
||||
public List<EntityEffect> Effects = new();
|
||||
|
||||
public override void ApplyEffect(IEntityManager entManager, IRobustRandom random, EntityUid target)
|
||||
{
|
||||
if (!random.Prob(Prob))
|
||||
return;
|
||||
|
||||
foreach (var effect in Effects)
|
||||
{
|
||||
effect.Effect(new EntityEffectBaseArgs(target, entManager));
|
||||
}
|
||||
}
|
||||
}
|
||||
14
Content.Shared/_CP14/WeatherEffect/CP14WeatherEffect.cs
Normal file
14
Content.Shared/_CP14/WeatherEffect/CP14WeatherEffect.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.WeatherEffect;
|
||||
|
||||
[ImplicitDataDefinitionForInheritors]
|
||||
[MeansImplicitUse]
|
||||
public abstract partial class CP14WeatherEffect
|
||||
{
|
||||
[DataField]
|
||||
public float Prob = 0.05f;
|
||||
|
||||
public abstract void ApplyEffect(IEntityManager entManager, IRobustRandom random, EntityUid target);
|
||||
}
|
||||
19
Content.Shared/_CP14/WeatherEffect/SpawnEntityOnTop.cs
Normal file
19
Content.Shared/_CP14/WeatherEffect/SpawnEntityOnTop.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using Content.Shared.EntityEffects;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
|
||||
namespace Content.Shared._CP14.WeatherEffect;
|
||||
|
||||
public sealed partial class SpawnEntityOnTop : CP14WeatherEffect
|
||||
{
|
||||
[DataField(required: true)]
|
||||
public EntProtoId Entity;
|
||||
|
||||
public override void ApplyEffect(IEntityManager entManager, IRobustRandom random, EntityUid target)
|
||||
{
|
||||
if (!random.Prob(Prob))
|
||||
return;
|
||||
|
||||
entManager.SpawnAtPosition(Entity, entManager.GetComponent<TransformComponent>(target).Coordinates);
|
||||
}
|
||||
}
|
||||
19
Resources/Audio/_CP14/Ambience/Lightning/attributions.yml
Normal file
19
Resources/Audio/_CP14/Ambience/Lightning/attributions.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
- files: ["lightning_far1.ogg"]
|
||||
license: "CC-BY-NC-4.0"
|
||||
copyright: 'by GregorQuendel of Freesound.org.'
|
||||
source: "https://freesound.org/people/GregorQuendel/sounds/705710/"
|
||||
|
||||
- files: ["lightning_far2.ogg"]
|
||||
license: "CC-BY-4.0"
|
||||
copyright: 'by csigusz_foxoup of Freesound.org.'
|
||||
source: "https://freesound.org/people/csigusz_foxoup/sounds/659389/"
|
||||
|
||||
- files: ["lightning_far3.ogg"]
|
||||
license: "CC-BY-4.0"
|
||||
copyright: 'by LukeIRL of Freesound.org.'
|
||||
source: "https://freesound.org/people/LukeIRL/sounds/176021/"
|
||||
|
||||
- files: ["lightning_close1.ogg"]
|
||||
license: "CC0-1.0"
|
||||
copyright: 'by bajko of Freesound.org.'
|
||||
source: "https://freesound.org/people/bajko/sounds/399656/"
|
||||
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_close1.ogg
Normal file
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_close1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_far1.ogg
Normal file
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_far1.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_far2.ogg
Normal file
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_far2.ogg
Normal file
Binary file not shown.
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_far3.ogg
Normal file
BIN
Resources/Audio/_CP14/Ambience/Lightning/lightning_far3.ogg
Normal file
Binary file not shown.
@@ -24,4 +24,10 @@ cp14-modifier-chasm = bottomless chasms
|
||||
cp14-modifier-air-lily = air lilies
|
||||
cp14-modifier-time-limit-10 = temporary disintegration (10 minutes)
|
||||
cp14-modifier-shadow-kudzu = spreading astral haze
|
||||
cp14-modifier-night = darkness
|
||||
cp14-modifier-night = darkness
|
||||
|
||||
cp14-modifier-storm = storm
|
||||
cp14-modifier-fire-storm = fire storm
|
||||
cp14-modifier-snow-storm = snow storm
|
||||
cp14-modifier-mana-mist = magic mist
|
||||
cp14-modifier-anti-mana-mist = antimagic mist
|
||||
@@ -24,4 +24,10 @@ cp14-modifier-chasm = бездонных пропастей
|
||||
cp14-modifier-air-lily = воздушных лилий
|
||||
cp14-modifier-time-limit-10 = временного распада (10 минут)
|
||||
cp14-modifier-shadow-kudzu = распространяющгося астрального мрака
|
||||
cp14-modifier-night = темноты
|
||||
cp14-modifier-night = темноты
|
||||
|
||||
cp14-modifier-storm = грозы
|
||||
cp14-modifier-fire-storm = огненный шторм
|
||||
cp14-modifier-snow-storm = снежный шторм
|
||||
cp14-modifier-mana-mist = магического тумана
|
||||
cp14-modifier-anti-mana-mist = антимагического тумана
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -678,18 +678,18 @@
|
||||
tags:
|
||||
- Trash
|
||||
- Document
|
||||
#- type: Appearance, hide stamp marks until we have some kind of displacement
|
||||
- type: Flammable
|
||||
fireSpread: true
|
||||
canResistFire: false
|
||||
alwaysCombustible: true
|
||||
canExtinguish: true
|
||||
damage:
|
||||
types:
|
||||
Heat: 1
|
||||
- type: FireVisuals
|
||||
sprite: Effects/fire.rsi
|
||||
normalState: fire
|
||||
#- type: Appearance
|
||||
#- type: Flammable
|
||||
# fireSpread: true
|
||||
# canResistFire: false
|
||||
# alwaysCombustible: true
|
||||
# canExtinguish: true
|
||||
# damage:
|
||||
# types:
|
||||
# Heat: 1
|
||||
#- type: FireVisuals
|
||||
# sprite: Effects/fire.rsi
|
||||
# normalState: fire
|
||||
- type: Damageable
|
||||
damageModifierSet: Wood
|
||||
- type: Destructible
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
- type: entity
|
||||
id: CP14SkyLightning
|
||||
categories: [ ForkFiltered ]
|
||||
save: false
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _CP14/Effects/sky_lightning.rsi
|
||||
drawdepth: Mobs
|
||||
noRot: true
|
||||
offset: 0,2.5
|
||||
layers:
|
||||
- state: bombom
|
||||
shader: unshaded
|
||||
- type: TimedDespawn
|
||||
lifetime: 2
|
||||
- type: EffectVisuals
|
||||
- type: Tag
|
||||
tags:
|
||||
- HideContextMenu
|
||||
- type: AnimationPlayer
|
||||
- type: PointLight
|
||||
color: "#73efff"
|
||||
enabled: true
|
||||
radius: 50
|
||||
energy: 8
|
||||
netsync: false
|
||||
- type: LightFade
|
||||
duration: 1
|
||||
- type: CP14Lighthouse
|
||||
- type: CP14AreaEntityEffect
|
||||
range: 1
|
||||
effects:
|
||||
- !type:CP14SpellApplyEntityEffect
|
||||
effects:
|
||||
- !type:Electrocute
|
||||
electrocuteTime: 6
|
||||
- !type:HealthChange
|
||||
damage:
|
||||
types:
|
||||
Shock: 30
|
||||
- !type:FlammableReaction
|
||||
multiplier: 2.5
|
||||
- !type:AdjustTemperature
|
||||
amount: 30000
|
||||
- !type:Ignite
|
||||
- type: TriggerOnSpawn
|
||||
- type: FlashOnTrigger
|
||||
range: 4
|
||||
- type: CP14FarSound
|
||||
closeSound:
|
||||
path: /Audio/_CP14/Ambience/Lightning/lightning_close1.ogg
|
||||
params:
|
||||
variation: 0.2
|
||||
maxDistance: 20
|
||||
volume: 20
|
||||
farSound:
|
||||
collection: CP14LightningFar
|
||||
params:
|
||||
variation: 0.2
|
||||
@@ -39,8 +39,9 @@
|
||||
- type: cp14DemiplaneModifier
|
||||
id: WeatherStorm
|
||||
levels:
|
||||
min: 4
|
||||
min: 3
|
||||
max: 10
|
||||
name: cp14-modifier-storm
|
||||
categories:
|
||||
Weather: 1
|
||||
requiredTags:
|
||||
@@ -55,6 +56,12 @@
|
||||
duration:
|
||||
min: 10000
|
||||
max: 10000
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 10
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: WeatherSnowLight
|
||||
@@ -80,6 +87,7 @@
|
||||
id: WeatherSnowMedium
|
||||
categories:
|
||||
Weather: 1
|
||||
name: cp14-modifier-snow-storm
|
||||
requiredTags:
|
||||
- CP14DemiplaneCold
|
||||
components:
|
||||
@@ -92,12 +100,19 @@
|
||||
duration:
|
||||
min: 10000
|
||||
max: 10000
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 10
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: WeatherSnowHeavy
|
||||
levels:
|
||||
min: 5
|
||||
max: 10
|
||||
name: cp14-modifier-snow-storm
|
||||
categories:
|
||||
Weather: 1
|
||||
requiredTags:
|
||||
@@ -111,4 +126,87 @@
|
||||
- visuals: CP14SnowHeavy
|
||||
duration:
|
||||
min: 10000
|
||||
max: 10000
|
||||
max: 10000
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 10
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: CP14ManaMist
|
||||
name: cp14-modifier-mana-mist
|
||||
levels:
|
||||
min: 0
|
||||
max: 10
|
||||
categories:
|
||||
Weather: 1
|
||||
components:
|
||||
- type: CP14WeatherController
|
||||
clearDuration:
|
||||
min: 0
|
||||
max: 0
|
||||
entries:
|
||||
- visuals: CP14ManaMist
|
||||
duration:
|
||||
min: 10000
|
||||
max: 10000
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 10
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: CP14AntiManaMist
|
||||
name: cp14-modifier-anti-mana-mist
|
||||
levels:
|
||||
min: 4
|
||||
max: 10
|
||||
categories:
|
||||
Weather: 1
|
||||
components:
|
||||
- type: CP14WeatherController
|
||||
clearDuration:
|
||||
min: 0
|
||||
max: 0
|
||||
entries:
|
||||
- visuals: CP14AntiManaMist
|
||||
duration:
|
||||
min: 10000
|
||||
max: 10000
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 10
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: CP14FireStorm
|
||||
name: cp14-modifier-fire-storm
|
||||
levels:
|
||||
min: 4
|
||||
max: 10
|
||||
requiredTags:
|
||||
- CP14DemiplaneHot
|
||||
categories:
|
||||
Weather: 1
|
||||
components:
|
||||
- type: CP14WeatherController
|
||||
clearDuration:
|
||||
min: 0
|
||||
max: 0
|
||||
entries:
|
||||
- visuals: CP14FireStorm
|
||||
duration:
|
||||
min: 10000
|
||||
max: 10000
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 10
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
@@ -8,6 +8,21 @@
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: Ruins
|
||||
levels:
|
||||
min: 0
|
||||
max: 10
|
||||
categories:
|
||||
Reward: 0.1
|
||||
generationProb: 0.8
|
||||
layers:
|
||||
- !type:OreDunGen
|
||||
entity: CP14DemiplaneRuinsRoomSpawner
|
||||
count: 8
|
||||
minGroupSize: 1
|
||||
maxGroupSize: 1
|
||||
|
||||
- type: cp14DemiplaneModifier
|
||||
id: Exit
|
||||
generationProb: 0
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
id: CP14DemiplanEnterRoomMarker
|
||||
categories: [ ForkFiltered ]
|
||||
parent: BaseRoomMarker
|
||||
name: Demiplan enter room marker
|
||||
name: Demiplane enter room marker
|
||||
components:
|
||||
- type: RoomFill
|
||||
clearExisting: true
|
||||
@@ -13,9 +13,8 @@
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
# 7x7
|
||||
- type: dungeonRoom
|
||||
id: CP14DemiplanEnterRoom_7x7_a
|
||||
id: CP14DemiplanEnterRoom_1
|
||||
size: 7,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_enter.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
@@ -24,7 +23,7 @@
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14DemiplanEnterRoom_7x7_b
|
||||
id: CP14DemiplanEnterRoom_2
|
||||
size: 7,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_enter.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
@@ -33,7 +32,7 @@
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14DemiplanEnterRoom_7x7_c
|
||||
id: CP14DemiplanEnterRoom_3
|
||||
size: 7,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_enter.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
@@ -42,10 +41,28 @@
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14DemiplanEnterRoom_7x7_d
|
||||
id: CP14DemiplanEnterRoom_4
|
||||
size: 7,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_enter.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 24,0
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14DemiplanEnterRoom_5
|
||||
size: 7,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_enter.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 0,8
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14DemiplanEnterRoom_6
|
||||
size: 9,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_enter.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 8,8
|
||||
tags:
|
||||
- CP14DemiplanEnterRoom
|
||||
|
||||
@@ -1,79 +1,68 @@
|
||||
- type: Tag
|
||||
id: CP14DemiplanRuins
|
||||
id: CP14DemiplaneRuins
|
||||
|
||||
#- type: entity
|
||||
# id: CP14DemiplanRuinsRoomSpawner
|
||||
# categories: [ ForkFiltered ]
|
||||
# parent: BaseRoomMarker
|
||||
# name: Demiplan ruins room spawner
|
||||
# components:
|
||||
# - type: RoomFill
|
||||
# clearExisting: true
|
||||
# roomWhitelist:
|
||||
# tags:
|
||||
# - CP14DemiplanRuins
|
||||
- type: entity
|
||||
id: CP14DemiplaneRuinsRoomSpawner
|
||||
categories: [ ForkFiltered ]
|
||||
parent: BaseRoomMarker
|
||||
name: Demiplane ruins room spawner
|
||||
components:
|
||||
- type: RoomFill
|
||||
clearExisting: true
|
||||
roomWhitelist:
|
||||
tags:
|
||||
- CP14DemiplaneRuins
|
||||
|
||||
# 7x7
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_7x7_a
|
||||
size: 7,7
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
id: CP14DemiplaneRuins_1
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplane_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 0,0
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
|
||||
# 5x5
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_5x5_a
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 0,8
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
- CP14DemiplaneRuins
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_5x5_b
|
||||
id: CP14DemiplaneRuins_2
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
atlas: /Maps/_CP14/Dungeon/demiplane_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 6,8
|
||||
offset: 6,0
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
- CP14DemiplaneRuins
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_5x5_c
|
||||
id: CP14DemiplaneRuins_3
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
atlas: /Maps/_CP14/Dungeon/demiplane_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 12,8
|
||||
offset: 12,0
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
- CP14DemiplaneRuins
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_5x5_d
|
||||
id: CP14DemiplaneRuins_4
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
atlas: /Maps/_CP14/Dungeon/demiplane_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 18,8
|
||||
offset: 18,0
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
- CP14DemiplaneRuins
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_5x5_e
|
||||
id: CP14DemiplaneRuins_5
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
atlas: /Maps/_CP14/Dungeon/demiplane_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 24,8
|
||||
offset: 24,0
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
- CP14DemiplaneRuins
|
||||
|
||||
- type: dungeonRoom
|
||||
id: CP14GrasslandIslandExterior_5x5_g
|
||||
id: CP14DemiplaneRuins_6
|
||||
size: 5,5
|
||||
atlas: /Maps/_CP14/Dungeon/demiplan_ruins.yml
|
||||
atlas: /Maps/_CP14/Dungeon/demiplane_ruins.yml
|
||||
ignoreTile: FloorShuttlePurple
|
||||
offset: 30,8
|
||||
offset: 30,0
|
||||
tags:
|
||||
- CP14DemiplanRuins
|
||||
- CP14DemiplaneRuins
|
||||
@@ -19,4 +19,11 @@
|
||||
- /Audio/_CP14/Effects/skill_up1.ogg
|
||||
- /Audio/_CP14/Effects/skill_up2.ogg
|
||||
- /Audio/_CP14/Effects/skill_up3.ogg
|
||||
- /Audio/_CP14/Effects/skill_up4.ogg
|
||||
- /Audio/_CP14/Effects/skill_up4.ogg
|
||||
|
||||
- type: soundCollection
|
||||
id: CP14LightningFar
|
||||
files:
|
||||
- /Audio/_CP14/Ambience/Lightning/lightning_far1.ogg
|
||||
- /Audio/_CP14/Ambience/Lightning/lightning_far2.ogg
|
||||
- /Audio/_CP14/Ambience/Lightning/lightning_far3.ogg
|
||||
@@ -8,6 +8,11 @@
|
||||
params:
|
||||
loop: true
|
||||
volume: -6
|
||||
effects:
|
||||
- !type:ApplyEntityEffect
|
||||
prob: 0.2
|
||||
effects:
|
||||
- !type:ExtinguishReaction
|
||||
|
||||
- type: weather
|
||||
id: CP14Storm
|
||||
@@ -19,6 +24,14 @@
|
||||
params:
|
||||
loop: true
|
||||
volume: -6
|
||||
effects:
|
||||
- !type:ApplyEntityEffect
|
||||
prob: 0.4
|
||||
effects:
|
||||
- !type:ExtinguishReaction
|
||||
- !type:SpawnEntityOnTop
|
||||
prob: 0.0001
|
||||
entity: CP14SkyLightning
|
||||
|
||||
- type: weather
|
||||
id: CP14Mist
|
||||
@@ -29,11 +42,54 @@
|
||||
sprite: /Textures/_CP14/Effects/parallax.rsi
|
||||
state: noise
|
||||
|
||||
- type: weather
|
||||
id: CP14ManaMist
|
||||
offsetSpeed: 0.56, -0.36
|
||||
color: "#3d81ff"
|
||||
alpha: 0.7
|
||||
sprite:
|
||||
sprite: /Textures/_CP14/Effects/parallax.rsi
|
||||
state: noise
|
||||
effects:
|
||||
- !type:ApplyEntityEffect
|
||||
prob: 0.5
|
||||
effects:
|
||||
- !type:CP14ManaChange
|
||||
manaDelta: 8
|
||||
safe: false
|
||||
|
||||
- type: weather
|
||||
id: CP14AntiManaMist
|
||||
offsetSpeed: -0.56, -0.31
|
||||
color: "#d929d9"
|
||||
alpha: 0.8
|
||||
sprite:
|
||||
sprite: /Textures/_CP14/Effects/parallax.rsi
|
||||
state: noise
|
||||
sound:
|
||||
path: /Audio/Ambience/anomaly_scary.ogg
|
||||
params:
|
||||
loop: true
|
||||
volume: -18
|
||||
effects:
|
||||
- !type:ApplyEntityEffect
|
||||
prob: 0.5
|
||||
effects:
|
||||
- !type:CP14ManaChange
|
||||
manaDelta: -10
|
||||
safe: false
|
||||
|
||||
- type: weather
|
||||
id: CP14SnowLight
|
||||
sprite:
|
||||
sprite: /Textures/_CP14/Effects/weather.rsi
|
||||
state: snowfall_light
|
||||
#effects:
|
||||
#- !type:ApplyEntityEffect
|
||||
# prob: 1
|
||||
# effects:
|
||||
# - !type:AdjustTemperature
|
||||
# amount: -20000
|
||||
|
||||
- type: weather
|
||||
id: CP14SnowMedium
|
||||
@@ -45,6 +101,12 @@
|
||||
params:
|
||||
loop: true
|
||||
volume: -18
|
||||
#effects:
|
||||
#- !type:ApplyEntityEffect
|
||||
# prob: 1
|
||||
# effects:
|
||||
# - !type:AdjustTemperature
|
||||
# amount: -40000
|
||||
|
||||
- type: weather
|
||||
id: CP14SnowHeavy
|
||||
@@ -55,4 +117,33 @@
|
||||
path: /Audio/Effects/Weather/snowstorm.ogg
|
||||
params:
|
||||
loop: true
|
||||
volume: -6
|
||||
volume: -6
|
||||
#effects:
|
||||
#- !type:ApplyEntityEffect
|
||||
# prob: 1
|
||||
# effects:
|
||||
# - !type:AdjustTemperature
|
||||
# amount: -60000
|
||||
|
||||
- type: weather
|
||||
id: CP14FireStorm
|
||||
sprite:
|
||||
sprite: /Textures/Effects/weather.rsi
|
||||
state: ashfall
|
||||
alpha: 0.6
|
||||
sound:
|
||||
path: /Audio/Effects/Weather/snowstorm.ogg
|
||||
params:
|
||||
loop: true
|
||||
volume: -6
|
||||
effects:
|
||||
#- !type:ApplyEntityEffect
|
||||
# prob: 1
|
||||
# effects:
|
||||
# - !type:AdjustTemperature
|
||||
# amount: 40000
|
||||
- !type:ApplyEntityEffect
|
||||
effects:
|
||||
- !type:FlammableReaction
|
||||
multiplier: 1
|
||||
- !type:Ignite
|
||||
BIN
Resources/Textures/_CP14/Effects/sky_lightning.rsi/bombom.png
Normal file
BIN
Resources/Textures/_CP14/Effects/sky_lightning.rsi/bombom.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
30
Resources/Textures/_CP14/Effects/sky_lightning.rsi/meta.json
Normal file
30
Resources/Textures/_CP14/Effects/sky_lightning.rsi/meta.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"version": 1,
|
||||
"copyright": "Created bby TheShuEd",
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 200
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "bombom",
|
||||
"delays": [
|
||||
[
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
0.1,
|
||||
2
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user