holding shift while building adds 5
This commit is contained in:
@@ -996,7 +996,7 @@ namespace OpenRA
|
|||||||
var unit = Rules.Info[item];
|
var unit = Rules.Info[item];
|
||||||
|
|
||||||
Sound.Play(unit.Traits.Contains<BuildingInfo>() ? eva.BuildingSelectAudio : eva.UnitSelectAudio);
|
Sound.Play(unit.Traits.Contains<BuildingInfo>() ? eva.BuildingSelectAudio : eva.UnitSelectAudio);
|
||||||
Game.IssueOrder(Order.StartProduction(world.LocalPlayer, item));
|
Game.IssueOrder(Order.StartProduction(world.LocalPlayer, item, Game.controller.GetModifiers().HasModifier(Modifiers.Shift) ? 5 : 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleBuildPalette( World world, string item, bool isLmb )
|
void HandleBuildPalette( World world, string item, bool isLmb )
|
||||||
|
|||||||
@@ -145,5 +145,6 @@ namespace OpenRA
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void SetModifiers(Modifiers mods) { modifiers = mods; }
|
public void SetModifiers(Modifiers mods) { modifiers = mods; }
|
||||||
|
public Modifiers GetModifiers() { return modifiers; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,9 +164,9 @@ namespace OpenRA
|
|||||||
return new Order("Chat", null, text) { IsImmediate = true };
|
return new Order("Chat", null, text) { IsImmediate = true };
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Order StartProduction(Player subject, string item)
|
public static Order StartProduction(Player subject, string item, int count)
|
||||||
{
|
{
|
||||||
return new Order("StartProduction", subject.PlayerActor, item );
|
return new Order("StartProduction", subject.PlayerActor, new int2( count, 0 ), item );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Order PauseProduction(Player subject, string item, bool pause)
|
public static Order PauseProduction(Player subject, string item, bool pause)
|
||||||
|
|||||||
@@ -52,33 +52,36 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
case "StartProduction":
|
case "StartProduction":
|
||||||
{
|
{
|
||||||
var unit = Rules.Info[ order.TargetString ];
|
for (var n = 0; n < order.TargetLocation.X; n++) // repeat count
|
||||||
var ui = unit.Traits.Get<BuildableInfo>();
|
{
|
||||||
var time = ui.Cost
|
var unit = Rules.Info[order.TargetString];
|
||||||
* Rules.General.BuildSpeed /* todo: country-specific build speed bonus */
|
var ui = unit.Traits.Get<BuildableInfo>();
|
||||||
* ( 25 * 60 ) /* frames per min */ /* todo: build acceleration, if we do that */
|
var time = ui.Cost
|
||||||
/ 1000;
|
* Rules.General.BuildSpeed /* todo: country-specific build speed bonus */
|
||||||
|
* (25 * 60) /* frames per min */ /* todo: build acceleration, if we do that */
|
||||||
|
/ 1000;
|
||||||
|
|
||||||
if( !Rules.TechTree.BuildableItems( order.Player, unit.Category ).Contains( order.TargetString ) )
|
if (!Rules.TechTree.BuildableItems(order.Player, unit.Category).Contains(order.TargetString))
|
||||||
return; /* you can't build that!! */
|
return; /* you can't build that!! */
|
||||||
|
|
||||||
bool hasPlayedSound = false;
|
bool hasPlayedSound = false;
|
||||||
|
|
||||||
BeginProduction( unit.Category,
|
BeginProduction(unit.Category,
|
||||||
new ProductionItem( order.TargetString, (int)time, ui.Cost,
|
new ProductionItem(order.TargetString, (int)time, ui.Cost,
|
||||||
() => self.World.AddFrameEndTask(
|
() => self.World.AddFrameEndTask(
|
||||||
_ =>
|
_ =>
|
||||||
{
|
|
||||||
var isBuilding = unit.Traits.Contains<BuildingInfo>();
|
|
||||||
if( !hasPlayedSound )
|
|
||||||
{
|
{
|
||||||
var eva = self.World.WorldActor.Info.Traits.Get<EvaAlertsInfo>();
|
var isBuilding = unit.Traits.Contains<BuildingInfo>();
|
||||||
Sound.PlayToPlayer( order.Player, isBuilding ? eva.BuildingReadyAudio : eva.UnitReadyAudio );
|
if (!hasPlayedSound)
|
||||||
hasPlayedSound = true;
|
{
|
||||||
}
|
var eva = self.World.WorldActor.Info.Traits.Get<EvaAlertsInfo>();
|
||||||
if( !isBuilding )
|
Sound.PlayToPlayer(order.Player, isBuilding ? eva.BuildingReadyAudio : eva.UnitReadyAudio);
|
||||||
BuildUnit( order.TargetString );
|
hasPlayedSound = true;
|
||||||
} ) ) );
|
}
|
||||||
|
if (!isBuilding)
|
||||||
|
BuildUnit(order.TargetString);
|
||||||
|
})));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "PauseProduction":
|
case "PauseProduction":
|
||||||
|
|||||||
Reference in New Issue
Block a user