Make /kill and /dispose use orders.

This commit is contained in:
Mustafa Alperen Seki
2018-01-10 18:54:34 +03:00
committed by reaperrr
parent 23a2e8fdce
commit ff39802090
2 changed files with 30 additions and 10 deletions

View File

@@ -134,20 +134,12 @@ namespace OpenRA.Mods.Common.Commands
break; break;
case "kill": case "kill":
var args = arg.Split(' ');
var damageTypes = new HashSet<string>();
foreach (var damageType in args)
damageTypes.Add(damageType);
foreach (var actor in world.Selection.Actors) foreach (var actor in world.Selection.Actors)
{ {
if (actor.IsDead) if (actor.IsDead)
continue; continue;
var health = actor.TraitOrDefault<Health>(); world.IssueOrder(new Order("DevKill", world.LocalPlayer.PlayerActor, Target.FromActor(actor), false) { TargetString = arg });
if (health != null)
health.InflictDamage(actor, actor, new Damage(health.HP, damageTypes), true);
} }
break; break;
@@ -158,7 +150,7 @@ namespace OpenRA.Mods.Common.Commands
if (actor.Disposed) if (actor.Disposed)
continue; continue;
actor.Dispose(); world.IssueOrder(new Order("DevDispose", world.LocalPlayer.PlayerActor, Target.FromActor(actor), false));
} }
break; break;

View File

@@ -213,6 +213,34 @@ namespace OpenRA.Mods.Common.Traits
break; break;
} }
case "DevKill":
{
if (order.Target.Type != TargetType.Actor)
break;
var actor = order.Target.Actor;
var health = actor.TraitOrDefault<Health>();
var args = order.TargetString.Split(' ');
var damageTypes = new HashSet<string>();
foreach (var damageType in args)
damageTypes.Add(damageType);
if (health != null)
health.InflictDamage(actor, actor, new Damage(health.HP, damageTypes), true);
break;
}
case "DevDispose":
{
if (order.Target.Type != TargetType.Actor)
break;
order.Target.Actor.Dispose();
break;
}
default: default:
return; return;
} }