unhardcode and self-document the notification

This commit is contained in:
Matthias Mailänder
2015-10-11 19:18:04 +02:00
parent 89ff2f1ba2
commit a8d8764b81
4 changed files with 52 additions and 2 deletions

View File

@@ -24,6 +24,12 @@ namespace OpenRA.Mods.Common.Traits
[PaletteReference] public readonly string IndicatorPalette = "chrome";
public readonly string PowerupSound = null;
public readonly string PowerdownSound = null;
public readonly string PowerupSpeech = null;
public readonly string PowerdownSpeech = null;
public override object Create(ActorInitializer init) { return new CanPowerDown(init.Self, this); }
}
@@ -45,7 +51,19 @@ namespace OpenRA.Mods.Common.Traits
if (!IsTraitDisabled && order.OrderString == "PowerDown")
{
disabled = !disabled;
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Sounds", disabled ? "EnablePower" : "DisablePower", self.Owner.Faction.InternalName);
if (Info.PowerupSound != null && disabled)
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Sounds", Info.PowerupSound, self.Owner.Faction.InternalName);
if (Info.PowerdownSound != null && !disabled)
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Sounds", Info.PowerdownSound, self.Owner.Faction.InternalName);
if (Info.PowerupSpeech != null && disabled)
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", Info.PowerupSpeech, self.Owner.Faction.InternalName);
if (Info.PowerdownSpeech != null && !disabled)
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", Info.PowerdownSpeech, self.Owner.Faction.InternalName);
power.UpdateActor(self);
if (disabled)
@@ -68,7 +86,13 @@ namespace OpenRA.Mods.Common.Traits
if (!disabled || !Info.CancelWhenDisabled)
return;
disabled = false;
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Sounds", "EnablePower", self.Owner.Faction.InternalName);
if (Info.PowerupSound != null)
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Sound", Info.PowerupSound, self.Owner.Faction.InternalName);
if (Info.PowerupSpeech != null)
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", Info.PowerupSpeech, self.Owner.Faction.InternalName);
power.UpdateActor(self);
}
}

View File

@@ -460,6 +460,8 @@ HQ:
Bounds: 48,36,0,12
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
WithSpriteBody:
PauseAnimationWhenDisabled: true
@@ -547,6 +549,8 @@ EYE:
Bounds: 48,36,0,12
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
WithSpriteBody:
PauseAnimationWhenDisabled: true
@@ -598,6 +602,8 @@ TMPL:
Bounds: 72,48,0,16
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Health:
HP: 2000

View File

@@ -444,6 +444,8 @@ outpost:
Inherits: ^Building
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Buildable:
Prerequisites: construction_yard, barracks, ~techlevel.medium
@@ -528,6 +530,8 @@ starport:
PrimaryBuilding:
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
ProvidesPrerequisite@atreides:
Prerequisite: starport.atreides
@@ -672,6 +676,8 @@ large_gun_turret:
InitialFacing: 128
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Power:
Amount: -60
@@ -923,6 +929,8 @@ palace:
Production:
Produces: Palace
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
RequiresPower:
SupportPowerChargeBar:

View File

@@ -40,6 +40,8 @@ MSLO:
CameraActor: camera
FlashType: Nuke
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
RequiresPower:
DisabledOverlay:
SupportPowerChargeBar:
@@ -274,6 +276,8 @@ IRON:
Dimensions: 2,1
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Selectable:
Bounds: 48,28,0,2
@@ -322,6 +326,8 @@ PDOX:
Dimensions: 2,2
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Health:
HP: 1000
@@ -394,6 +400,8 @@ TSLA:
SelectionDecorations:
VisualBounds: 24,36,0,4
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Health:
HP: 400
@@ -439,6 +447,8 @@ AGUN:
VisualBounds: 24,36,0,12
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Health:
HP: 400
@@ -486,6 +496,8 @@ DOME:
TargetTypes: Ground, Structure, C4, DetonateAttack, SpyInfiltrate
RequiresPower:
CanPowerDown:
PowerupSound: EnablePower
PowerdownSound: DisablePower
DisabledOverlay:
Health:
HP: 1000