summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMittendrein Markus <maxmitti@gmx.net>2016-02-14 19:17:02 +0100
committerMittendrein Markus <maxmitti@gmx.net>2016-02-14 19:17:02 +0100
commit97be09d6ed4935c4558fee4e1776aed963386bff (patch)
treeeae50cdc3214e3b20b7db53e89552bdd1d88be49
parent01f5e944fd7b124f5ac4f37e127345feaee44624 (diff)
downloadtempelschubsen-97be09d6ed4935c4558fee4e1776aed963386bff.tar.gz
tempelschubsen-97be09d6ed4935c4558fee4e1776aed963386bff.zip
Show spells of collected scrolls to teammembers above the clonk
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt3
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt11
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.pngbin0 -> 126 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c46
-rw-r--r--TemplePushing.c4s/System.c4g/Clonk.c15
-rw-r--r--TemplePushing.c4s/System.c4g/Scroll.c9
9 files changed, 88 insertions, 0 deletions
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt
new file mode 100644
index 0000000..df504ba
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/ActMap.txt
@@ -0,0 +1,3 @@
+[Action]
+Name=Attach
+Procedure=ATTACH
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt
new file mode 100644
index 0000000..eb3a805
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DefCore.txt
@@ -0,0 +1,11 @@
+[DefCore]
+id=THUD
+Name=Team-HUD
+Version=4,9,5
+Category=C4D_StaticBack
+Width=1
+Height=1
+Offset=0,0
+Vertices=1
+VertexX=0
+VertexY=50
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt
new file mode 100644
index 0000000..79b6d85
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescDE.txt
@@ -0,0 +1 @@
+Zeigt über einem Clonk gerade aufgesammelte Objekte für das Team an.
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt
new file mode 100644
index 0000000..656e3c2
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/DescUS.txt
@@ -0,0 +1 @@
+Shows collected objects above a clonk to his team.
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png
new file mode 100644
index 0000000..f033d11
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt
new file mode 100644
index 0000000..b5aa5d2
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Team-HUD
+US:Team-HUD
diff --git a/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c
new file mode 100644
index 0000000..0eb0bef
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/TeamHUD.c4d/Script.c
@@ -0,0 +1,46 @@
+#strict 2
+
+func Attach(object to)
+{
+ SetOwner(GetOwner(to));
+ SetAction("Attach", to);
+ SetVisibility(VIS_Allies | VIS_God);
+}
+
+func Show(string text, int time)
+{
+ AddEffect("ShowText", this, 20, 1, this, GetID(), text, time);
+}
+
+func FxShowTextStart(object target, int effectNumber, int temp, string text, int time)
+{
+ if (temp) return;
+
+ EffectVar(0, target, effectNumber) = text;
+ EffectVar(1, target, effectNumber) = time;
+
+ Message("@%s", target, text);
+}
+
+func FxShowTextTimer(object target, int effectNumber, int time)
+{
+ var showTime = EffectVar(1, target, effectNumber);
+ if (time > showTime)
+ {
+ if (time >= showTime + showTime / 3) return FX_Execute_Kill;
+ Message("@<c %x>%s</c>", target, RGBa(255, 255, 255, 255 - ((time - showTime) * 255)/(showTime / 3)), EffectVar(0, target, effectNumber));
+ }
+}
+
+func FxShowTextStop(object target, int effectNumber, int reason, bool temp)
+{
+ if (!temp) Message("", target);
+}
+
+func FxShowTextEffect(string newEffectName, object target, int effectNumber)
+{
+ if(newEffectName == "ShowText")
+ {
+ RemoveEffect(0, target, effectNumber);
+ }
+}
diff --git a/TemplePushing.c4s/System.c4g/Clonk.c b/TemplePushing.c4s/System.c4g/Clonk.c
index cad2f5f..64738a5 100644
--- a/TemplePushing.c4s/System.c4g/Clonk.c
+++ b/TemplePushing.c4s/System.c4g/Clonk.c
@@ -4,11 +4,14 @@
#appendto CLNK
+local teamHud;
local rotateInJump;
local removeOnDeath;
protected func Initialize()
{
+ teamHud = CreateObject(THUD);
+ teamHud->Attach(this);
AddEffect("CheckStuck2", this, 20, 1, this);
AddEffect("CheckBurn", this, 101, 0, this);
SetPhysical("Fight", 75000, PHYS_Temporary, this);
@@ -79,6 +82,7 @@ protected func ControlRight()
protected func Death(int killedBy)
{
var ret = _inherited(killedBy);
+ if (teamHud) RemoveObject(teamHud);
if (removeOnDeath) RemoveObject();
return ret;
}
@@ -107,3 +111,14 @@ func FxCheckBurnEffect(string newEffectName, object target, int effectNumber, in
{
if (newEffectName == "Fire" && incineratingObject && incineratingObject->~QueryIncinerateObject(target)) return FX_Effect_Deny;
}
+
+func ShowTeamHUD(string text)
+{
+ if (teamHud) teamHud->Show(text, 72);
+}
+
+func Collection(object obj)
+{
+ obj->~Entrance2(this);
+ return _inherited(obj, ...);
+}
diff --git a/TemplePushing.c4s/System.c4g/Scroll.c b/TemplePushing.c4s/System.c4g/Scroll.c
index 15ae5e0..c9098df 100644
--- a/TemplePushing.c4s/System.c4g/Scroll.c
+++ b/TemplePushing.c4s/System.c4g/Scroll.c
@@ -51,3 +51,12 @@ func SetSpell(id spell)
SetClrModulation(spell->~ScrollColor());
return _inherited(spell, ...);
}
+
+func Entrance2(object pContainer)
+{
+ if (pContainer && GetOCF(pContainer) & OCF_CrewMember)
+ {
+ pContainer->~ShowTeamHUD(Format("{{%i}}", idSpell));
+ }
+ return _inherited(pContainer, ...);
+}