Add user action: Fling object

console-destruction
Sven Eberhardt 2016-08-21 12:41:21 -04:00
parent 2044fc3c06
commit 237956e7ba
3 changed files with 30 additions and 0 deletions

View File

@ -139,6 +139,12 @@ func Definition(def)
Object = new Evaluator.Object { Name="$Object$", EditorHelp="$SetPositionObjectHelp$" },
Position = new Evaluator.Position { Name="$Position$", EditorHelp="$SetPositionPositionHelp$" }
} } );
AddEvaluator("Action", "$Object$", "$Fling$", "$FlingHelp$", "fling", [def, def.EvalAct_Fling], { Object={ Function="triggering_clonk" }, SpeedX={ Function="int_constant", Value=0 }, SpeedY={ Function="int_constant", Value=-20 }, AddSpeed={ Function="bool_constant", Value=false } }, { Type="proplist", Display="({{Object}}, {{SpeedX}}, {{SpeedY}})", ShowFullName=true, EditorProps = {
Object = new Evaluator.Object { Name="$Object$", EditorHelp="$FlingObjectHelp$" },
SpeedX = new Evaluator.Integer { Name="$SpeedX$", EditorHelp="$FlingSpeedXHelp$" },
SpeedY = new Evaluator.Integer { Name="$SpeedY$", EditorHelp="$FlingSpeedYHelp$" },
AddSpeed = new Evaluator.Boolean { Name="$AddSpeedY$", EditorHelp="$FlingAddSpeedHelp$" },
} } );
AddEvaluator("Action", "Clonk", "$DoEnergy$", "$DoEnergyHelp$", "do_energy", [def, def.EvalAct_ObjectCallInt, Global.DoEnergy], { Object={ Function="triggering_clonk" } }, { Type="proplist", Display="({{Object}}, {{Value}})", ShowFullName=true, EditorProps = {
Object = new Evaluator.Object { Name="$Object$", EditorHelp="$DoEnergyObjectHelp$" },
Value = new Evaluator.Integer { Name="$ValueChange$", EditorHelp="$DoEnergyValueChangeHelp$" }
@ -806,6 +812,16 @@ private func EvalAct_SetPosition(proplist props, proplist context)
obj->SetPosition(pos[0], pos[1]);
}
private func EvalAct_Fling(proplist props, proplist context)
{
var obj = EvaluateValue("Object", props.Object, context);
if (!obj) return;
var vx = EvaluateValue("Integer", props.SpeedX, context);
var vy = EvaluateValue("Integer", props.SpeedY, context);
var add_speed = EvaluateValue("Boolean", props.AddSpeed, context);
obj->Fling(vx, vy, 10, add_speed);
}
private func EvalAct_ObjectCallInt(proplist props, proplist context, func call_fn)
{
var obj = EvaluateValue("Object", props.Object, context);

View File

@ -294,3 +294,10 @@ SetPositionObjectHelp=Zu verschiebendes Objekt.
SetPositionPositionHelp=Neue Position fuer die Objektmitte des verschobenen Objektes.
GameOver=Spiel beenden
GameOverHelp=Beendet die runde und zeigt den Auswertungsdialog an. Alle Spieler, die nicht eliminiert sind, haben gewonnen.
Fling=Objekt schleudern
FlingHelp=Aendert die Geschwindigkeit eines Objektes und laesst Lebewesen springen oder schleudern.
FlingObjectHelp=Geschleudertes Objekt.
FlingSpeedXHelp=Horizontale Geschwindigkeit in 1/10px pro Frame.
FlingSpeedYHelp=Vertikale Geschwindigkeit in 1/10px pro Frame.
AddSpeedY=Geschwindigkeit addieren
FlingAddSpeedHelp=Ob die schon vorhandene Objektgeschwindigkeit addiert werden soll.

View File

@ -294,3 +294,10 @@ SetPositionObjectHelp=Object to move.
SetPositionPositionHelp=New position for the object.
GameOver=Game over
GameOverHelp=Ends the round and shows the evaluation dialogue. All players that have not been eliminated will be declared winners.
Fling=Fling object
FlingHelp=Changes the speed of an object and lets animals and clonks jump or tumble.
FlingObjectHelp=Flung object.
FlingSpeedXHelp=Horizontal speed in 1/10px per frame.
FlingSpeedYHelp=Vertical speed in 1/10px per frame.
AddSpeedY=Add speed
FlingAddSpeedHelp=Whether existing speed should be added to the fling speed.