From de97f8b2898e8fd00c5d6108e2832b7e6cd3668f Mon Sep 17 00:00:00 2001 From: Jan <> Date: Mon, 2 Feb 2015 18:49:15 +0100 Subject: TemplePushingB.c4s --- TemplePushing.c4s/Misc.c4d/TSnowball.c4d/Script.c | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 TemplePushing.c4s/Misc.c4d/TSnowball.c4d/Script.c (limited to 'TemplePushing.c4s/Misc.c4d/TSnowball.c4d/Script.c') diff --git a/TemplePushing.c4s/Misc.c4d/TSnowball.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/TSnowball.c4d/Script.c new file mode 100644 index 0000000..aa90954 --- /dev/null +++ b/TemplePushing.c4s/Misc.c4d/TSnowball.c4d/Script.c @@ -0,0 +1,59 @@ +/*-- Schneeball --*/ + +#strict +#include ICE1 + +protected func Hit() { + CastPXS("Snow", 100, 20); + RemoveObject(); + return(1); +} + +protected func Departure(thrower) { + var proc = GetProcedure(thrower); + var comd = GetComDir(thrower); + // Ablegen -> Abbruch + if (GetPlrDownDouble(GetOwner(thrower))) + // Nur Ablegen in der Luft mit Befehlsrichtung? Luftwurf erlauben! + if (proc ne "FLIGHT" || GetComDir(thrower) == COMD_None) + return(0); + + // Ablegen im stehenden Hangeln -> Abbruch + if (proc eq "HANGLE" && comd == COMD_None) + return(0); + + // Ablegen im Schwimmen / Klettern -> Abbruch + if (proc eq "SWIM" || proc eq "SCALE") + return(0); + + // Wurfrichtung rausfinden + var dir; + // Nach Befehlsrichtung, wenn sinnvolle Werte vorhanden + if (comd == COMD_Left() || comd == COMD_Right()) { + if (comd == COMD_Left()) dir = -1; + if (comd == COMD_Right()) dir = +1; + } + // sonst nach Blickrichtung + else { + if (GetDir(thrower) == DIR_Left()) dir = -1; + else dir = +1; + } + + // Wurfgeschwindigkeiten berechnen + var x_dir = dir * GetPhysical("Throw", 0, thrower)/1000 + GetXDir(thrower) / 3; + var y_dir = -30; + + if (!x_dir) return(0); + + // Position anpassen + SetPosition(GetX() + x_dir / 5, GetY() - 2 + GetYDir(thrower) / 2); + + // Geschwindigkeit setzen + SetXDir(x_dir); + SetYDir(y_dir); + + Sound("Arrow"); +} + +func IsAlchemContainer() { return(true); } +func AlchemProcessTime() { return(100); } -- cgit v1.2.3-54-g00ecf