Merge pull request #7872 from Mailaender/storm-effects
Unified FlashPaletteEffect and exposed it to Lua
This commit is contained in:
@@ -113,6 +113,11 @@ namespace OpenRA
|
|||||||
InternalSoundVolume * volumeModifier, true);
|
InternalSoundVolume * volumeModifier, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void StopAudio()
|
||||||
|
{
|
||||||
|
soundEngine.StopAllSounds();
|
||||||
|
}
|
||||||
|
|
||||||
public static ISound Play(string name) { return Play(null, name, true, WPos.Zero, 1f); }
|
public static ISound Play(string name) { return Play(null, name, true, WPos.Zero, 1f); }
|
||||||
public static ISound Play(string name, WPos pos) { return Play(null, name, false, pos, 1f); }
|
public static ISound Play(string name, WPos pos) { return Play(null, name, false, pos, 1f); }
|
||||||
public static ISound Play(string name, float volumeModifier) { return Play(null, name, true, WPos.Zero, volumeModifier); }
|
public static ISound Play(string name, float volumeModifier) { return Play(null, name, true, WPos.Zero, volumeModifier); }
|
||||||
|
|||||||
@@ -339,7 +339,11 @@ namespace OpenRA.Traits
|
|||||||
|
|
||||||
public interface ILintPass { void Run(Action<string> emitError, Action<string> emitWarning, Map map); }
|
public interface ILintPass { void Run(Action<string> emitError, Action<string> emitWarning, Map map); }
|
||||||
|
|
||||||
public interface IObjectivesPanel { string PanelName { get; } }
|
public interface IObjectivesPanel
|
||||||
|
{
|
||||||
|
string PanelName { get; }
|
||||||
|
int ExitDelay { get; }
|
||||||
|
}
|
||||||
|
|
||||||
public interface INotifyObjectivesUpdated
|
public interface INotifyObjectivesUpdated
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -387,6 +387,7 @@ namespace OpenRA
|
|||||||
|
|
||||||
frameEndActions.Clear();
|
frameEndActions.Clear();
|
||||||
|
|
||||||
|
Sound.StopAudio();
|
||||||
Sound.StopMusic();
|
Sound.StopMusic();
|
||||||
Sound.StopVideo();
|
Sound.StopVideo();
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
readonly Player firedBy;
|
readonly Player firedBy;
|
||||||
readonly Animation anim;
|
readonly Animation anim;
|
||||||
readonly string weapon;
|
readonly string weapon;
|
||||||
|
readonly string flashType;
|
||||||
|
|
||||||
readonly WPos ascendSource;
|
readonly WPos ascendSource;
|
||||||
readonly WPos ascendTarget;
|
readonly WPos ascendTarget;
|
||||||
@@ -34,12 +35,13 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
WPos pos;
|
WPos pos;
|
||||||
int ticks;
|
int ticks;
|
||||||
|
|
||||||
public NukeLaunch(Player firedBy, string weapon, WPos launchPos, WPos targetPos, WRange velocity, int delay, bool skipAscent)
|
public NukeLaunch(Player firedBy, string weapon, WPos launchPos, WPos targetPos, WRange velocity, int delay, bool skipAscent, string flashType)
|
||||||
{
|
{
|
||||||
this.firedBy = firedBy;
|
this.firedBy = firedBy;
|
||||||
this.weapon = weapon;
|
this.weapon = weapon;
|
||||||
this.delay = delay;
|
this.delay = delay;
|
||||||
this.turn = delay / 2;
|
this.turn = delay / 2;
|
||||||
|
this.flashType = flashType;
|
||||||
|
|
||||||
var offset = new WVec(WRange.Zero, WRange.Zero, velocity * turn);
|
var offset = new WVec(WRange.Zero, WRange.Zero, velocity * turn);
|
||||||
ascendSource = launchPos;
|
ascendSource = launchPos;
|
||||||
@@ -84,8 +86,9 @@ namespace OpenRA.Mods.Common.Effects
|
|||||||
weapon.Impact(Target.FromPos(pos), firedBy.PlayerActor, Enumerable.Empty<int>());
|
weapon.Impact(Target.FromPos(pos), firedBy.PlayerActor, Enumerable.Empty<int>());
|
||||||
world.WorldActor.Trait<ScreenShaker>().AddEffect(20, pos, 5);
|
world.WorldActor.Trait<ScreenShaker>().AddEffect(20, pos, 5);
|
||||||
|
|
||||||
foreach (var a in world.ActorsWithTrait<NukePaletteEffect>())
|
foreach (var flash in world.WorldActor.TraitsImplementing<FlashPaletteEffect>())
|
||||||
a.Trait.Enable();
|
if (flash.Info.Type == flashType)
|
||||||
|
flash.Enable(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
public IEnumerable<IRenderable> Render(WorldRenderer wr)
|
||||||
|
|||||||
@@ -199,10 +199,7 @@
|
|||||||
<Compile Include="Orders\UnitOrderTargeter.cs" />
|
<Compile Include="Orders\UnitOrderTargeter.cs" />
|
||||||
<Compile Include="Pathfinder\CellInfo.cs" />
|
<Compile Include="Pathfinder\CellInfo.cs" />
|
||||||
<Compile Include="PlayerExtensions.cs" />
|
<Compile Include="PlayerExtensions.cs" />
|
||||||
<Compile Include="Scripting\Global\FacingGlobal.cs" />
|
|
||||||
<Compile Include="Scripting\ScriptUpgradesCache.cs" />
|
<Compile Include="Scripting\ScriptUpgradesCache.cs" />
|
||||||
<Compile Include="Scripting\Global\HSLColorGlobal.cs" />
|
|
||||||
<Compile Include="Scripting\Global\UserInterfaceGlobal.cs" />
|
|
||||||
<Compile Include="Scripting\Properties\CaptureProperties.cs" />
|
<Compile Include="Scripting\Properties\CaptureProperties.cs" />
|
||||||
<Compile Include="ServerTraits\ColorValidator.cs" />
|
<Compile Include="ServerTraits\ColorValidator.cs" />
|
||||||
<Compile Include="ServerTraits\LobbyCommands.cs" />
|
<Compile Include="ServerTraits\LobbyCommands.cs" />
|
||||||
@@ -218,11 +215,15 @@
|
|||||||
<Compile Include="Scripting\Global\CameraGlobal.cs" />
|
<Compile Include="Scripting\Global\CameraGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\CoordinateGlobals.cs" />
|
<Compile Include="Scripting\Global\CoordinateGlobals.cs" />
|
||||||
<Compile Include="Scripting\Global\DateTimeGlobal.cs" />
|
<Compile Include="Scripting\Global\DateTimeGlobal.cs" />
|
||||||
|
<Compile Include="Scripting\Global\EffectGlobal.cs" />
|
||||||
|
<Compile Include="Scripting\Global\FacingGlobal.cs" />
|
||||||
|
<Compile Include="Scripting\Global\HSLColorGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\MapGlobal.cs" />
|
<Compile Include="Scripting\Global\MapGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\MediaGlobal.cs" />
|
<Compile Include="Scripting\Global\MediaGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\PlayerGlobal.cs" />
|
<Compile Include="Scripting\Global\PlayerGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\ReinforcementsGlobal.cs" />
|
<Compile Include="Scripting\Global\ReinforcementsGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\TriggerGlobal.cs" />
|
<Compile Include="Scripting\Global\TriggerGlobal.cs" />
|
||||||
|
<Compile Include="Scripting\Global\UserInterfaceGlobal.cs" />
|
||||||
<Compile Include="Scripting\Global\UtilsGlobal.cs" />
|
<Compile Include="Scripting\Global\UtilsGlobal.cs" />
|
||||||
<Compile Include="Scripting\Properties\AirstrikeProperties.cs" />
|
<Compile Include="Scripting\Properties\AirstrikeProperties.cs" />
|
||||||
<Compile Include="Scripting\Properties\CombatProperties.cs" />
|
<Compile Include="Scripting\Properties\CombatProperties.cs" />
|
||||||
@@ -357,9 +358,8 @@
|
|||||||
<Compile Include="Traits\Passenger.cs" />
|
<Compile Include="Traits\Passenger.cs" />
|
||||||
<Compile Include="Traits\PaletteEffects\CloakPaletteEffect.cs" />
|
<Compile Include="Traits\PaletteEffects\CloakPaletteEffect.cs" />
|
||||||
<Compile Include="Traits\PaletteEffects\GlobalLightingPaletteEffect.cs" />
|
<Compile Include="Traits\PaletteEffects\GlobalLightingPaletteEffect.cs" />
|
||||||
<Compile Include="Traits\PaletteEffects\LightPaletteRotator.cs" />
|
<Compile Include="Traits\PaletteEffects\FlashPaletteEffect.cs" />
|
||||||
<Compile Include="Traits\PaletteEffects\MenuPaletteEffect.cs" />
|
<Compile Include="Traits\PaletteEffects\MenuPaletteEffect.cs" />
|
||||||
<Compile Include="Traits\PaletteEffects\NukePaletteEffect.cs" />
|
|
||||||
<Compile Include="Traits\PaletteEffects\WaterPaletteRotation.cs" />
|
<Compile Include="Traits\PaletteEffects\WaterPaletteRotation.cs" />
|
||||||
<Compile Include="Traits\Player\ActorGroupProxy.cs" />
|
<Compile Include="Traits\Player\ActorGroupProxy.cs" />
|
||||||
<Compile Include="Traits\Player\AllyRepair.cs" />
|
<Compile Include="Traits\Player\AllyRepair.cs" />
|
||||||
|
|||||||
36
OpenRA.Mods.Common/Scripting/Global/EffectGlobal.cs
Normal file
36
OpenRA.Mods.Common/Scripting/Global/EffectGlobal.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation. For more information,
|
||||||
|
* see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
using OpenRA.Scripting;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Scripting
|
||||||
|
{
|
||||||
|
[ScriptGlobal("Effect")]
|
||||||
|
public class EffectGlobal : ScriptGlobal
|
||||||
|
{
|
||||||
|
readonly IEnumerable<FlashPaletteEffect> fpes;
|
||||||
|
|
||||||
|
public EffectGlobal(ScriptContext context)
|
||||||
|
: base(context)
|
||||||
|
{
|
||||||
|
fpes = context.World.WorldActor.TraitsImplementing<FlashPaletteEffect>();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Desc("Controls the `FlashPaletteEffect` trait.")]
|
||||||
|
public void Flash(string type = null, int ticks = -1)
|
||||||
|
{
|
||||||
|
foreach (var fpe in fpes)
|
||||||
|
if (fpe.Info.Type == type)
|
||||||
|
fpe.Enable(ticks);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -45,6 +45,12 @@ namespace OpenRA.Mods.Common.Scripting
|
|||||||
Sound.PlayNotification(world.Map.Rules, player, "Sounds", notification, player != null ? player.Country.Race : null);
|
Sound.PlayNotification(world.Map.Rules, player, "Sounds", notification, player != null ? player.Country.Race : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Desc("Play a sound file")]
|
||||||
|
public void PlaySound(string file)
|
||||||
|
{
|
||||||
|
Sound.Play(file);
|
||||||
|
}
|
||||||
|
|
||||||
MusicInfo previousMusic;
|
MusicInfo previousMusic;
|
||||||
Action onComplete;
|
Action onComplete;
|
||||||
[Desc("Play track defined in music.yaml or keep it empty for a random song.")]
|
[Desc("Play track defined in music.yaml or keep it empty for a random song.")]
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
#region Copyright & License Information
|
||||||
|
/*
|
||||||
|
* Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
|
||||||
|
* This file is part of OpenRA, which is free software. It is made
|
||||||
|
* available to you under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation. For more information,
|
||||||
|
* see COPYING.
|
||||||
|
*/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using OpenRA.Graphics;
|
||||||
|
using OpenRA.Traits;
|
||||||
|
|
||||||
|
namespace OpenRA.Mods.Common.Traits
|
||||||
|
{
|
||||||
|
using GUtil = OpenRA.Graphics.Util;
|
||||||
|
|
||||||
|
[Desc("Used for bursted one-colored whole screen effects. Add this to the world actor.")]
|
||||||
|
public class FlashPaletteEffectInfo : ITraitInfo
|
||||||
|
{
|
||||||
|
public readonly string[] ExcludePalettes = { "cursor", "chrome", "colorpicker", "fog", "shroud" };
|
||||||
|
|
||||||
|
[Desc("Measured in ticks.")]
|
||||||
|
public readonly int Length = 20;
|
||||||
|
|
||||||
|
public readonly Color Color = Color.White;
|
||||||
|
|
||||||
|
[Desc("Set this when using multiple independent flash effects.")]
|
||||||
|
public readonly string Type = null;
|
||||||
|
|
||||||
|
public object Create(ActorInitializer init) { return new FlashPaletteEffect(this); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FlashPaletteEffect : IPaletteModifier, ITick
|
||||||
|
{
|
||||||
|
public readonly FlashPaletteEffectInfo Info;
|
||||||
|
|
||||||
|
public FlashPaletteEffect(FlashPaletteEffectInfo info)
|
||||||
|
{
|
||||||
|
Info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
int remainingFrames;
|
||||||
|
|
||||||
|
public void Enable(int ticks)
|
||||||
|
{
|
||||||
|
if (ticks == -1)
|
||||||
|
remainingFrames = Info.Length;
|
||||||
|
else
|
||||||
|
remainingFrames = ticks;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Tick(Actor self)
|
||||||
|
{
|
||||||
|
if (remainingFrames > 0)
|
||||||
|
remainingFrames--;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AdjustPalette(IReadOnlyDictionary<string, MutablePalette> palettes)
|
||||||
|
{
|
||||||
|
if (remainingFrames == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var frac = (float)remainingFrames / Info.Length;
|
||||||
|
|
||||||
|
foreach (var pal in palettes)
|
||||||
|
{
|
||||||
|
for (var x = 0; x < Palette.Size; x++)
|
||||||
|
{
|
||||||
|
var orig = pal.Value.GetColor(x);
|
||||||
|
var c = Info.Color;
|
||||||
|
var color = Color.FromArgb(orig.A, ((int)c.R).Clamp(0, 255), ((int)c.G).Clamp(0, 255), ((int)c.B).Clamp(0, 255));
|
||||||
|
var final = GUtil.PremultipliedColorLerp(frac, orig, GUtil.PremultiplyAlpha(Color.FromArgb(orig.A, color)));
|
||||||
|
pal.Value.SetColor(x, final);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#region Copyright & License Information
|
|
||||||
/*
|
|
||||||
* Copyright 2007-2015 The OpenRA Developers (see AUTHORS)
|
|
||||||
* This file is part of OpenRA, which is free software. It is made
|
|
||||||
* available to you under the terms of the GNU General Public License
|
|
||||||
* as published by the Free Software Foundation. For more information,
|
|
||||||
* see COPYING.
|
|
||||||
*/
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Drawing;
|
|
||||||
using OpenRA.Graphics;
|
|
||||||
using OpenRA.Traits;
|
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Traits
|
|
||||||
{
|
|
||||||
using GUtil = OpenRA.Graphics.Util;
|
|
||||||
|
|
||||||
[Desc("Apply palette full screen rotations during atom bomb explosions. Add this to the world actor.")]
|
|
||||||
class NukePaletteEffectInfo : TraitInfo<NukePaletteEffect> { }
|
|
||||||
|
|
||||||
public class NukePaletteEffect : IPaletteModifier, ITick
|
|
||||||
{
|
|
||||||
const int NukeEffectLength = 20;
|
|
||||||
int remainingFrames;
|
|
||||||
|
|
||||||
public void Enable()
|
|
||||||
{
|
|
||||||
remainingFrames = NukeEffectLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Tick(Actor self)
|
|
||||||
{
|
|
||||||
if (remainingFrames > 0)
|
|
||||||
remainingFrames--;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AdjustPalette(IReadOnlyDictionary<string, MutablePalette> palettes)
|
|
||||||
{
|
|
||||||
if (remainingFrames == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var frac = (float)remainingFrames / NukeEffectLength;
|
|
||||||
|
|
||||||
foreach (var pal in palettes)
|
|
||||||
{
|
|
||||||
for (var x = 0; x < Palette.Size; x++)
|
|
||||||
{
|
|
||||||
var orig = pal.Value.GetColor(x);
|
|
||||||
var final = GUtil.PremultipliedColorLerp(frac, orig, GUtil.PremultiplyAlpha(Color.FromArgb(orig.A, Color.White)));
|
|
||||||
pal.Value.SetColor(x, final);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -250,13 +250,18 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public class ObjectivesPanelInfo : ITraitInfo
|
public class ObjectivesPanelInfo : ITraitInfo
|
||||||
{
|
{
|
||||||
public string PanelName = null;
|
public string PanelName = null;
|
||||||
|
|
||||||
|
[Desc("in ms")]
|
||||||
|
public int ExitDelay = 1400;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new ObjectivesPanel(this); }
|
public object Create(ActorInitializer init) { return new ObjectivesPanel(this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ObjectivesPanel : IObjectivesPanel
|
public class ObjectivesPanel : IObjectivesPanel
|
||||||
{
|
{
|
||||||
ObjectivesPanelInfo info;
|
readonly ObjectivesPanelInfo info;
|
||||||
public ObjectivesPanel(ObjectivesPanelInfo info) { this.info = info; }
|
public ObjectivesPanel(ObjectivesPanelInfo info) { this.info = info; }
|
||||||
public string PanelName { get { return info.PanelName; } }
|
public string PanelName { get { return info.PanelName; } }
|
||||||
|
public int ExitDelay { get { return info.ExitDelay; } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
public AmbientSound(Actor self, AmbientSoundInfo info)
|
public AmbientSound(Actor self, AmbientSoundInfo info)
|
||||||
{
|
{
|
||||||
if (self == self.World.WorldActor)
|
if (self.HasTrait<IOccupySpace>())
|
||||||
Sound.PlayLooped(info.SoundFile);
|
|
||||||
else
|
|
||||||
Sound.PlayLooped(info.SoundFile, self.CenterPosition);
|
Sound.PlayLooped(info.SoundFile, self.CenterPosition);
|
||||||
|
else
|
||||||
|
Sound.PlayLooped(info.SoundFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
[Desc("Amount of time after detonation to remove the camera")]
|
[Desc("Amount of time after detonation to remove the camera")]
|
||||||
public readonly int CameraRemoveDelay = 25;
|
public readonly int CameraRemoveDelay = 25;
|
||||||
|
|
||||||
|
public readonly string FlashType = null;
|
||||||
|
|
||||||
public override object Create(ActorInitializer init) { return new NukePower(init.Self, this); }
|
public override object Create(ActorInitializer init) { return new NukePower(init.Self, this); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +78,8 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
var missile = new NukeLaunch(self.Owner, info.MissileWeapon,
|
var missile = new NukeLaunch(self.Owner, info.MissileWeapon,
|
||||||
self.CenterPosition + body.LocalToWorld(info.SpawnOffset),
|
self.CenterPosition + body.LocalToWorld(info.SpawnOffset),
|
||||||
targetPosition,
|
targetPosition,
|
||||||
info.FlightVelocity, info.FlightDelay, info.SkipAscent);
|
info.FlightVelocity, info.FlightDelay, info.SkipAscent,
|
||||||
|
info.FlashType);
|
||||||
|
|
||||||
self.World.AddFrameEndTask(w => w.Add(missile));
|
self.World.AddFrameEndTask(w => w.Add(missile));
|
||||||
|
|
||||||
|
|||||||
@@ -1353,6 +1353,13 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generalized the flash palette trait
|
||||||
|
if (engineVersion < 20150627)
|
||||||
|
{
|
||||||
|
if (node.Key == "NukePaletteEffect")
|
||||||
|
node.Key = "FlashPaletteEffect";
|
||||||
|
}
|
||||||
|
|
||||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,10 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Mods.Common.Traits;
|
using OpenRA.Mods.Common.Traits;
|
||||||
|
using OpenRA.Traits;
|
||||||
using OpenRA.Widgets;
|
using OpenRA.Widgets;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Widgets.Logic
|
namespace OpenRA.Mods.Common.Widgets.Logic
|
||||||
@@ -41,7 +43,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
|
|
||||||
resumeDisabled = true;
|
resumeDisabled = true;
|
||||||
|
|
||||||
var exitDelay = 1200;
|
var iop = world.WorldActor.TraitsImplementing<IObjectivesPanel>().FirstOrDefault();
|
||||||
|
var exitDelay = iop != null ? iop.ExitDelay : 0;
|
||||||
if (mpe != null)
|
if (mpe != null)
|
||||||
{
|
{
|
||||||
Game.RunAfterDelay(exitDelay, () => mpe.Fade(MenuPaletteEffect.EffectType.Black));
|
Game.RunAfterDelay(exitDelay, () => mpe.Fade(MenuPaletteEffect.EffectType.Black));
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
Sound.PlayNotification(world.Map.Rules, null, "Speech", "Leave",
|
Sound.PlayNotification(world.Map.Rules, null, "Speech", "Leave",
|
||||||
world.LocalPlayer == null ? null : world.LocalPlayer.Country.Race);
|
world.LocalPlayer == null ? null : world.LocalPlayer.Country.Race);
|
||||||
|
|
||||||
var exitDelay = 1200;
|
var exitDelay = iop != null ? iop.ExitDelay : 0;
|
||||||
if (mpe != null)
|
if (mpe != null)
|
||||||
{
|
{
|
||||||
Game.RunAfterDelay(exitDelay, () => mpe.Fade(MenuPaletteEffect.EffectType.Black));
|
Game.RunAfterDelay(exitDelay, () => mpe.Fade(MenuPaletteEffect.EffectType.Black));
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<Compile Include="Traits\Mine.cs" />
|
<Compile Include="Traits\Mine.cs" />
|
||||||
<Compile Include="Traits\Minelayer.cs" />
|
<Compile Include="Traits\Minelayer.cs" />
|
||||||
<Compile Include="Traits\PaletteEffects\ChronoshiftPaletteEffect.cs" />
|
<Compile Include="Traits\PaletteEffects\ChronoshiftPaletteEffect.cs" />
|
||||||
|
<Compile Include="Traits\PaletteEffects\LightPaletteRotator.cs" />
|
||||||
<Compile Include="Traits\PortableChrono.cs" />
|
<Compile Include="Traits\PortableChrono.cs" />
|
||||||
<Compile Include="Traits\Render\RenderJammerCircle.cs" />
|
<Compile Include="Traits\Render\RenderJammerCircle.cs" />
|
||||||
<Compile Include="Traits\Render\WithLandingCraftAnimation.cs" />
|
<Compile Include="Traits\Render\WithLandingCraftAnimation.cs" />
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ using System.Linq;
|
|||||||
using OpenRA.Graphics;
|
using OpenRA.Graphics;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
namespace OpenRA.Mods.Common.Traits
|
namespace OpenRA.Mods.RA.Traits
|
||||||
{
|
{
|
||||||
[Desc("Palette effect used for blinking \"animations\" on actors.")]
|
[Desc("Palette effect used for blinking \"animations\" on actors.")]
|
||||||
class LightPaletteRotatorInfo : ITraitInfo
|
class LightPaletteRotatorInfo : ITraitInfo
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
MenuPaletteEffect:
|
MenuPaletteEffect:
|
||||||
MenuEffect: Desaturated
|
MenuEffect: Desaturated
|
||||||
CloakPaletteEffect:
|
CloakPaletteEffect:
|
||||||
NukePaletteEffect:
|
FlashPaletteEffect:
|
||||||
WaterPaletteRotation:
|
WaterPaletteRotation:
|
||||||
ExcludePalettes: effect
|
ExcludePalettes: effect
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ World:
|
|||||||
PlayerCommands:
|
PlayerCommands:
|
||||||
HelpCommand:
|
HelpCommand:
|
||||||
ScreenShaker:
|
ScreenShaker:
|
||||||
NukePaletteEffect:
|
|
||||||
BuildingInfluence:
|
BuildingInfluence:
|
||||||
BridgeLayer:
|
BridgeLayer:
|
||||||
Bridges: bridge1, bridge2, bridge3, bridge4
|
Bridges: bridge1, bridge2, bridge3, bridge4
|
||||||
|
|||||||
@@ -86,5 +86,5 @@
|
|||||||
Alpha: 0.68
|
Alpha: 0.68
|
||||||
Premultiply: false
|
Premultiply: false
|
||||||
PlayerHighlightPalette:
|
PlayerHighlightPalette:
|
||||||
NukePaletteEffect:
|
FlashPaletteEffect:
|
||||||
|
|
||||||
|
|||||||
BIN
mods/ra/bits/rain.aud
Normal file
BIN
mods/ra/bits/rain.aud
Normal file
Binary file not shown.
BIN
mods/ra/bits/thunder.aud
Normal file
BIN
mods/ra/bits/thunder.aud
Normal file
Binary file not shown.
@@ -147,6 +147,16 @@ SovietsRetreating = function()
|
|||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Tick = function()
|
||||||
|
if (Utils.RandomInteger(1, 200) == 10) then
|
||||||
|
local delay = Utils.RandomInteger(1, 10)
|
||||||
|
Effect.Flash("LightningStrike", delay)
|
||||||
|
Trigger.AfterDelay(delay, function()
|
||||||
|
Media.PlaySound("thunder.aud")
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
WorldLoaded = function()
|
WorldLoaded = function()
|
||||||
soviets = Player.GetPlayer("Soviets")
|
soviets = Player.GetPlayer("Soviets")
|
||||||
players = { }
|
players = { }
|
||||||
|
|||||||
@@ -501,6 +501,15 @@ Rules:
|
|||||||
CrateActors: fortcrate
|
CrateActors: fortcrate
|
||||||
-SpawnMPUnits:
|
-SpawnMPUnits:
|
||||||
-MPStartLocations:
|
-MPStartLocations:
|
||||||
|
GlobalLightingPaletteEffect:
|
||||||
|
Red: 0.75
|
||||||
|
Green: 0.85
|
||||||
|
Blue: 1.5
|
||||||
|
Ambient: 0.35
|
||||||
|
AmbientSound:
|
||||||
|
SoundFile: rain.aud
|
||||||
|
FlashPaletteEffect@LIGHTNINGSTRIKE:
|
||||||
|
Type: LightningStrike
|
||||||
LuaScript:
|
LuaScript:
|
||||||
Scripts: fort-lonestar.lua
|
Scripts: fort-lonestar.lua
|
||||||
ScriptUpgradesCache:
|
ScriptUpgradesCache:
|
||||||
|
|||||||
@@ -70,5 +70,6 @@
|
|||||||
LightPaletteRotator:
|
LightPaletteRotator:
|
||||||
ExcludePalettes: terrain, effect
|
ExcludePalettes: terrain, effect
|
||||||
ChronoshiftPaletteEffect:
|
ChronoshiftPaletteEffect:
|
||||||
NukePaletteEffect:
|
FlashPaletteEffect@NUKE:
|
||||||
|
Type: Nuke
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ MSLO:
|
|||||||
DisplayRadarPing: True
|
DisplayRadarPing: True
|
||||||
BeaconPoster: atomicon
|
BeaconPoster: atomicon
|
||||||
CameraActor: camera
|
CameraActor: camera
|
||||||
|
FlashType: Nuke
|
||||||
CanPowerDown:
|
CanPowerDown:
|
||||||
RequiresPower:
|
RequiresPower:
|
||||||
DisabledOverlay:
|
DisabledOverlay:
|
||||||
|
|||||||
Reference in New Issue
Block a user