forked from Mirrors/openclonk
Add sequence user action to trigger other sequences
parent
93109e60f5
commit
eee156b5ac
|
@ -379,6 +379,10 @@ public func Definition(def)
|
|||
Target = UserAction->GetObjectEvaluator("IsSequence", "$Name$"),
|
||||
Status = new UserAction.Evaluator.Boolean { Name="$Status$", EditorHelp="$SetActiveStatusHelp$" }
|
||||
} } );
|
||||
UserAction->AddEvaluator("Action", "$Name$", "$ActTrigger$", "$ActTriggerDesc$", "sequence_trigger", [def, def.EvalAct_Trigger], { Target = { Function="action_object" }, TriggeringObject = { Function="triggering_object" } }, { Type="proplist", Display="{{Target}}({{TriggeringObject}})", EditorProps = {
|
||||
Target = new UserAction->GetObjectEvaluator("IsSequence", "$Name$") { Priority=60 },
|
||||
TriggeringObject = new UserAction.Evaluator.Object { Name="$TriggeringObject$", EditorHelp="$TriggeringObjectHelp$" }
|
||||
} } );
|
||||
UserAction->AddEvaluator("Action", "$Name$", "$DisablePlayerControls$", "$DisablePlayerControlsHelp$", "sequence_disable_player_controls", [def, def.EvalAct_DisablePlayerControls], { Players = { Function="all_players" }, MakeInvincible = { Function="bool_constant", Value=true } }, { Type="proplist", Display="{{Players}}", EditorProps = {
|
||||
Players = new UserAction.Evaluator.PlayerList { Name="$Players$", EditorHelp="$PlayerControlsPlayersHelp$" },
|
||||
MakeInvincible = new UserAction.Evaluator.Boolean { Name="$MakeInvincible$", EditorHelp="$MakeInvincibleHelp$" }
|
||||
|
@ -734,6 +738,13 @@ private func EvalAct_SetActive(proplist props, proplist context)
|
|||
target->~SetActive(status);
|
||||
}
|
||||
|
||||
private func EvalAct_Trigger(proplist props, proplist context)
|
||||
{
|
||||
var target = UserAction->EvaluateValue("Object", props.Target, context);
|
||||
var triggering_object = UserAction->EvaluateValue("Object", props.TriggeringObject, context);
|
||||
if (target && target->~IsSequence()) target->OnTrigger(triggering_object, nil, false);
|
||||
}
|
||||
|
||||
private func EvalAct_DisablePlayerControls(proplist props, proplist context)
|
||||
{
|
||||
var players = UserAction->EvaluateValue("PlayerList", props.Players, context) ?? [];
|
||||
|
|
|
@ -60,3 +60,7 @@ MakeInvincible=Unverwundbar
|
|||
MakeInvincibleHelp=Ob alle Clonks waehrend des Deaktivierens unverwundbar sind.
|
||||
EnablePlayerControls=Spielerkontrolle aktivieren
|
||||
EnablePlayerControlsHelp=Reaktiviert die Steuerung fuer alle Clonks eines oder mehrerer Spieler.
|
||||
ActTrigger=Sequenz ausloesen
|
||||
ActTriggerDesc=Startet eine Sequenz, als waere der Ausloeser aktiviert worden. Die Bedigung wird vorher gegebenenfalls ueberprueft.
|
||||
TriggeringObject=Ausloeseobjekt
|
||||
TriggeringObjectHelp=Das Objekt, das innerhalb der Sequenz als ausloesendes Objekt zurueckgegeben wird.
|
||||
|
|
|
@ -60,3 +60,7 @@ MakeInvincible=Invincible
|
|||
MakeInvincibleHelp=Whether all clonks are made invincible while control is deactivated.
|
||||
EnablePlayerControls=Enable player control
|
||||
EnablePlayerControlsHelp=Reactivates control of all clonks for one or more plauers.
|
||||
ActTrigger=Trigger sequence
|
||||
ActTriggerDesc=Starts a sequence as if the trigger had been activated. Checks the condition before.
|
||||
TriggeringObject=Triggering object
|
||||
TriggeringObjectHelp=The object returned as trigger object within the sequence.
|
||||
|
|
Loading…
Reference in New Issue