diff --git a/OpenRA.Game/GameRules/Rules.cs b/OpenRA.Game/GameRules/Rules.cs index 1215311c6e..76ea3d9516 100755 --- a/OpenRA.Game/GameRules/Rules.cs +++ b/OpenRA.Game/GameRules/Rules.cs @@ -46,9 +46,9 @@ namespace OpenRA static Dictionary LoadYamlRules(string[] files, List dict, Func, T> f) { - var y = files.Select(a => MiniYaml.FromFile(a)).Aggregate(dict, MiniYaml.MergeLiberal); - var yy = y.ToDictionary( x => x.Key, x => x.Value ); - return y.ToDictionary(kv => kv.Key.ToLowerInvariant(), kv => f(kv, yy)); + var y = files.Select(MiniYaml.FromFile).Aggregate(dict, MiniYaml.MergeLiberal); + var yy = y.ToDictionary(x => x.Key, x => x.Value); + return y.ToDictionaryWithConflictLog(kv => kv.Key.ToLowerInvariant(), kv => f(kv, yy), "LoadYamlRules", null, null); } public static IEnumerable> InstalledMusic { get { return Music.Where( m => m.Value.Exists ); } } diff --git a/OpenRA.Mods.RA/Crates/SupportPowerCrateAction.cs b/OpenRA.Mods.RA/Crates/SupportPowerCrateAction.cs index 5d09aec7ad..078f2c4331 100644 --- a/OpenRA.Mods.RA/Crates/SupportPowerCrateAction.cs +++ b/OpenRA.Mods.RA/Crates/SupportPowerCrateAction.cs @@ -31,9 +31,11 @@ namespace OpenRA.Mods.RA.Crates // We want neither of these properties for crate power proxies. public override void Activate(Actor collector) { + base.Activate(collector); + collector.World.AddFrameEndTask(w => w.CreateActor(Info.Proxy, new TypeDictionary { - new OwnerInit( collector.Owner ) + new OwnerInit(collector.Owner) })); } } diff --git a/OpenRA.Mods.RA/Missions/FortScript.cs b/OpenRA.Mods.RA/Missions/FortLonestarScript.cs similarity index 96% rename from OpenRA.Mods.RA/Missions/FortScript.cs rename to OpenRA.Mods.RA/Missions/FortLonestarScript.cs index ae34207f98..9e61f389fc 100644 --- a/OpenRA.Mods.RA/Missions/FortScript.cs +++ b/OpenRA.Mods.RA/Missions/FortLonestarScript.cs @@ -1,23 +1,28 @@ -using System.Collections.Generic; +#region Copyright & License Information +/* + * Copyright 2007-2013 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; using System.Drawing; using System.Linq; -using System; using OpenRA.FileFormats; using OpenRA.Mods.RA.Activities; -using OpenRA.Mods.RA.Air; +using OpenRA.Mods.RA.Buildings; using OpenRA.Mods.RA.Move; -using OpenRA.Network; -using OpenRA.Scripting; using OpenRA.Traits; using OpenRA.Widgets; -using OpenRA.Mods.RA.Buildings; -using OpenRA.Mods.RA.Effects; namespace OpenRA.Mods.RA.Missions { - class FortScriptInfo : TraitInfo, Requires { } + class FortLonestarScriptInfo : TraitInfo, Requires { } - class FortScript : IWorldLoaded, ITick + class FortLonestarScript : IWorldLoaded, ITick { Player multi0; Player soviets; diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 3a28ce89ce..c78ce1584d 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -251,6 +251,8 @@ + + @@ -499,4 +501,4 @@ cd "$(SolutionDir)thirdparty/" copy "FuzzyLogicLibrary.dll" "$(SolutionDir)" cd "$(SolutionDir)" - + \ No newline at end of file diff --git a/mods/ra/maps/Fort-Lonestar/map.yaml b/mods/ra/maps/Fort-Lonestar/map.yaml index 2db891079e..1f51c068b0 100644 --- a/mods/ra/maps/Fort-Lonestar/map.yaml +++ b/mods/ra/maps/Fort-Lonestar/map.yaml @@ -477,7 +477,7 @@ Rules: SpawnInterval: 100 -SpawnMPUnits: -MPStartLocations: - FortScript: + FortLonestarScript: CRATE: -LevelUpCrateAction: -GiveMcvCrateAction: @@ -813,7 +813,7 @@ Rules: RevealsShroud: Range: 6 AutoTarget: - InitialStance: HoldFire + InitialStance: Defend Armament: Weapon: Sniper SPY: @@ -993,7 +993,7 @@ Rules: HP: 250 Armor: Type: Concrete - BADR.bomber: + BADR.Bomber: CarpetBomb: Range: 3 Weapon: ParaBomb @@ -1014,13 +1014,25 @@ Rules: -Selectable: -GainsExperience: Tooltip: - Name: Badger - FallsToEarth: - Spins: no - Moves: yes - Explosion: UnitExplode + Name: Mig Bomber + LeavesHusk: + HuskActor: BADR.Husk -EjectOnDeath: -GpsDot: + BADR.Husk: + Inherits: ^PlaneHusk + Tooltip: + Name: Badger + RenderUnit: + Image: mig + WithShadow: + Plane: + ROT: 5 + Speed: 16 + SmokeTrailWhenDamaged: + Offset: -853,0,171 + Interval: 2 + MinDamage: Undamaged Sequences: diff --git a/mods/ra/rules/infantry.yaml b/mods/ra/rules/infantry.yaml index 841e38b044..a8fcf6822e 100644 --- a/mods/ra/rules/infantry.yaml +++ b/mods/ra/rules/infantry.yaml @@ -454,7 +454,7 @@ SNIPER: BuildPaletteOrder: 80 Owner: soviet Prerequisites: dome - Hotkey: n + Hotkey: s Selectable: Bounds: 12,17,0,-6 Mobile: diff --git a/mods/ra/rules/system.yaml b/mods/ra/rules/system.yaml index 34f027f938..05ac3233c5 100644 --- a/mods/ra/rules/system.yaml +++ b/mods/ra/rules/system.yaml @@ -729,6 +729,7 @@ CRATE: SupportPowerCrateAction@parabombs: SelectionShares: 5 Proxy: powerproxy.parabombs + Effect: parabombs GiveMcvCrateAction: SelectionShares: 2 NoBaseSelectionShares: 9001 diff --git a/mods/ra/weapons.yaml b/mods/ra/weapons.yaml index d7a19b6e5c..35c9bbce43 100644 --- a/mods/ra/weapons.yaml +++ b/mods/ra/weapons.yaml @@ -1223,6 +1223,7 @@ Sniper: Wood: 5% Light: 5% Heavy: 5% + Concrete: 5% InfDeath: 2 ChronoTusk: