summaryrefslogtreecommitdiffstats
path: root/TemplePushing.c4s
diff options
context:
space:
mode:
Diffstat (limited to 'TemplePushing.c4s')
-rw-r--r--TemplePushing.c4s/BurningSky.jpgbin0 -> 71611 bytes
-rw-r--r--TemplePushing.c4s/CloudySky.jpg (renamed from TemplePushing.c4s/HochHinaus.jpg)bin91525 -> 91525 bytes
-rw-r--r--TemplePushing.c4s/DarkSky.jpg (renamed from TemplePushing.c4s/Material.c4g/Sky.jpg)bin83495 -> 83495 bytes
-rw-r--r--TemplePushing.c4s/DescDE.rtf71
-rw-r--r--TemplePushing.c4s/DescUS.rtf84
-rw-r--r--TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Graphics.pngbin0 -> 501 bytes
-rw-r--r--TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Particle.txt13
-rw-r--r--TemplePushing.c4s/LobbySky.jpgbin0 -> 61121 bytes
-rw-r--r--TemplePushing.c4s/Material.c4g/BackAcid.c4m7
-rw-r--r--TemplePushing.c4s/Material.c4g/BackBrick.c4m8
-rw-r--r--TemplePushing.c4s/Material.c4g/BackLava.c4m8
-rw-r--r--TemplePushing.c4s/Material.c4g/BackWall.c4m7
-rw-r--r--TemplePushing.c4s/Material.c4g/DarkBrick.c4m8
-rw-r--r--TemplePushing.c4s/Material.c4g/DarkenB.pngbin386 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Material.c4g/LavaBrick.c4m8
-rw-r--r--TemplePushing.c4s/Material.c4g/RedAcid.c4m12
-rw-r--r--TemplePushing.c4s/Material.c4g/RedAcidBrick.c4m7
-rw-r--r--TemplePushing.c4s/Material.c4g/Sky2.jpgbin91525 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Material.c4g/SkyCrystal.c4m7
-rw-r--r--TemplePushing.c4s/Material.c4g/SkyCrystalWall.c4m7
-rw-r--r--TemplePushing.c4s/Material.c4g/SmallRock.pngbin27773 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Material.c4g/TexMap.txt30
-rw-r--r--TemplePushing.c4s/Material.c4g/TransB.pngbin642 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Material.c4g/Wall.c4m4
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt7
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt20
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.pngbin0 -> 1468 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt14
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.pngbin0 -> 345 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.pngbin0 -> 409 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt14
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.pngbin0 -> 339 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt16
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c176
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Graphics.pngbin0 -> 4517 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c125
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DefCore.txt10
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Graphics.pngbin0 -> 2192 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Script.c41
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/ActMap.txt15
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DefCore.txt11
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Graphics.pngbin0 -> 2192 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Graphics.pngbin0 -> 1686 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Particle.txt15
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Graphics.pngbin0 -> 1686 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Particle.txt15
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Script.c167
-rw-r--r--TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DefCore.txt17
-rw-r--r--TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Graphics.pngbin0 -> 2493 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Script.c59
-rw-r--r--TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c65
-rw-r--r--TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblDE.txt12
-rw-r--r--TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblUS.txt12
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/DefCore.txt6
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Graphics.pngbin0 -> 2862 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/DefCore.txt6
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Graphics.pngbin0 -> 4172 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/DefCore.txt6
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Graphics.pngbin0 -> 8994 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/DefCore.txt6
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Graphics.pngbin0 -> 9076 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/DefCore.txt (renamed from TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/DefCore.txt)0
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/Graphics.png (renamed from TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/Graphics.png)bin16625 -> 16625 bytes
-rw-r--r--TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/Names.txt (renamed from TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/Names.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DefCore.txt (renamed from TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DefCore.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DescDE.txt (renamed from TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DescDE.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DescUS.txt (renamed from TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DescUS.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Graphics.png (renamed from TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Graphics.png)bin10354 -> 10354 bytes
-rw-r--r--TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Names.txt (renamed from TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Names.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Script.c (renamed from TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Script.c)2
-rw-r--r--TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DefCore.txt (renamed from TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DefCore.txt)6
-rw-r--r--TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Graphics.pngbin0 -> 10157 bytes
-rw-r--r--TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Script.c (renamed from TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Script.c)2
-rw-r--r--TemplePushing.c4s/Modes.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Graphics.pngbin0 -> 10886 bytes
-rw-r--r--TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Script.c (renamed from TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Script.c)2
-rw-r--r--TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Graphics.pngbin0 -> 10871 bytes
-rw-r--r--TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Script.c5
-rw-r--r--TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DefCore.txt (renamed from TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DefCore.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Graphics.png (renamed from TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Graphics.png)bin10487 -> 10487 bytes
-rw-r--r--TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Names.txt (renamed from TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Names.txt)0
-rw-r--r--TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Script.c5
-rw-r--r--TemplePushing.c4s/Modes.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblDE.txt3
-rw-r--r--TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblUS.txt3
-rw-r--r--TemplePushing.c4s/Rules.c4d/DescDE.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/DescUS.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Graphics.pngbin6841 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/OutFader.c4d/DefCore.txt11
-rw-r--r--TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescDE.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescUS.txt1
-rw-r--r--TemplePushing.c4s/Rules.c4d/OutFader.c4d/Graphics.pngbin0 -> 8355 bytes
-rw-r--r--TemplePushing.c4s/Rules.c4d/OutFader.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/OutFader.c4d/Script.c78
-rw-r--r--TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescDE.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescUS.txt2
-rw-r--r--TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/Script.c10
-rw-r--r--TemplePushing.c4s/Scenario.txt5
-rw-r--r--TemplePushing.c4s/Script.c188
-rw-r--r--TemplePushing.c4s/SectClassic.c4g/Map.bmpbin9594 -> 9594 bytes
-rw-r--r--TemplePushing.c4s/SectClassic.c4g/Scenarios.txt2
-rw-r--r--TemplePushing.c4s/SectCloudTemple.c4g/Map.bmpbin0 -> 9594 bytes
-rw-r--r--TemplePushing.c4s/SectCloudTemple.c4g/Scenario.txt29
-rw-r--r--TemplePushing.c4s/SectHighUpSymm.c4g/Map.bmpbin9594 -> 0 bytes
-rw-r--r--TemplePushing.c4s/SectLiquidTemple.c4g/Map.bmpbin0 -> 11442 bytes
-rw-r--r--TemplePushing.c4s/SectLiquidTemple.c4g/Scenario.txt (renamed from TemplePushing.c4s/SectHighUpSymm.c4g/Scenario.txt)6
-rw-r--r--TemplePushing.c4s/SectLobby.c4g/Map.bmpbin3834 -> 3898 bytes
-rw-r--r--TemplePushing.c4s/SectLobby.c4g/Scenario.txt28
-rw-r--r--TemplePushing.c4s/Sections.c4d/Ambience.wavbin1608340 -> 81765 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/CloudAmbience.wavbin0 -> 85925 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/ExtremeAmbience.wavbin929500 -> 47315 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/LiquidAmbience.wavbin0 -> 927508 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Graphics.pngbin8777 -> 7398 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Names.txt4
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Script.c2
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/DefCore.txt (renamed from TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/DefCore.txt)4
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Graphics.pngbin0 -> 123801 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Particle.txt12
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Graphics.pngbin0 -> 8148 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Script.c58
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Graphics.pngbin7971 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Script.c7
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/DefCore.txt8
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Graphics.pngbin0 -> 6590 bytes
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Script.c58
-rw-r--r--TemplePushing.c4s/Sky.jpgbin83495 -> 0 bytes
-rw-r--r--TemplePushing.c4s/StringTblDE.txt17
-rw-r--r--TemplePushing.c4s/StringTblUS.txt16
-rw-r--r--TemplePushing.c4s/System.c4g/Arrowpack.c43
-rw-r--r--TemplePushing.c4s/System.c4g/Bounce.c9
-rw-r--r--TemplePushing.c4s/System.c4g/Clonk.c27
-rw-r--r--TemplePushing.c4s/System.c4g/Invisibility.c18
-rw-r--r--TemplePushing.c4s/System.c4g/LavaRain.c18
-rw-r--r--TemplePushing.c4s/System.c4g/MagicFlint.c6
-rw-r--r--TemplePushing.c4s/System.c4g/Meteor.c2
-rw-r--r--TemplePushing.c4s/System.c4g/Plague.c33
-rw-r--r--TemplePushing.c4s/System.c4g/Scroll.c8
-rw-r--r--TemplePushing.c4s/System.c4g/ShootInventory.c53
-rw-r--r--TemplePushing.c4s/System.c4g/Vanish.c28
-rw-r--r--TemplePushing.c4s/Temp.c4d/Apocalypse_Hazard.pngbin8611 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Temp.c4d/Deathmatch_Old.pngbin7358 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Temp.c4d/Maplang.bmpbin33402 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Temp.c4d/Mapsymm.bmpbin33138 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Temp.c4d/Names.txt2
-rw-r--r--TemplePushing.c4s/Temp.c4d/OldSuddenDeathMap.bmpbin9526 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Temp.c4d/RotateInJump_Old.pngbin6396 -> 0 bytes
-rw-r--r--TemplePushing.c4s/Title.txt4
-rw-r--r--TemplePushing.c4s/Version.txt2
191 files changed, 1724 insertions, 312 deletions
diff --git a/TemplePushing.c4s/BurningSky.jpg b/TemplePushing.c4s/BurningSky.jpg
new file mode 100644
index 0000000..b1559ba
--- /dev/null
+++ b/TemplePushing.c4s/BurningSky.jpg
Binary files differ
diff --git a/TemplePushing.c4s/HochHinaus.jpg b/TemplePushing.c4s/CloudySky.jpg
index d060665..d060665 100644
--- a/TemplePushing.c4s/HochHinaus.jpg
+++ b/TemplePushing.c4s/CloudySky.jpg
Binary files differ
diff --git a/TemplePushing.c4s/Material.c4g/Sky.jpg b/TemplePushing.c4s/DarkSky.jpg
index b073dc3..b073dc3 100644
--- a/TemplePushing.c4s/Material.c4g/Sky.jpg
+++ b/TemplePushing.c4s/DarkSky.jpg
Binary files differ
diff --git a/TemplePushing.c4s/DescDE.rtf b/TemplePushing.c4s/DescDE.rtf
index 93d7b70..9b32284 100644
--- a/TemplePushing.c4s/DescDE.rtf
+++ b/TemplePushing.c4s/DescDE.rtf
@@ -1,50 +1,21 @@
-{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f36\froman\fcharset238\fprq2 Times New Roman CE;}
-{\f37\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f39\froman\fcharset161\fprq2 Times New Roman Greek;}{\f40\froman\fcharset162\fprq2 Times New Roman Tur;}{\f41\froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\f42\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f43\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f44\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
-\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;
-\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 \snext0 Normal;}{\*\cs10 \additive \ssemihidden
-Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
-\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}{\*\rsidtbl \rsid417570\rsid2314777\rsid3282380\rsid3302305\rsid5063892\rsid5189051
-\rsid5731503\rsid6165245\rsid6310542\rsid6817925\rsid7344688\rsid7734152\rsid9441714\rsid9796632\rsid10121665\rsid10813541\rsid11958464\rsid12083888\rsid12340038\rsid12549301\rsid12978656\rsid13963352\rsid13972291\rsid14499138\rsid15076825\rsid15214486
-\rsid15673683}{\*\generator Microsoft Word 10.0.2627;}{\info{\author Benjamin}{\operator Benjamin}{\creatim\yr2008\mo1\dy10\hr21\min49}{\revtim\yr2008\mo6\dy6\hr14\min24}{\version25}{\edmins0}{\nofpages1}{\nofwords381}{\nofchars2407}{\*\company Privat}
-{\nofcharsws2783}{\vern16437}}\margl1417\margr1417\margt1417\margb1134 \widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
-\jcompress\viewkind4\viewscale140\nolnhtadjtbl\rsidroot15076825 \fet0\sectd \linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3
-\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}
-{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain
-\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 {\b\fs20\insrsid15076825 Tempelschubsen}{\fs20\insrsid15214486
-\par }{\fs16\insrsid15214486
-\par }{\fs16\insrsid10121665 Es war ein finsterer und st\'fcrmischer Tag, und das Tageslicht war fast nicht }{\fs16\insrsid13972291 mehr }{\fs16\insrsid10121665 zu erkennen. Der Regen}{\fs16\insrsid3302305 }{\fs16\insrsid10121665 pl\'e4
-tscherte, und nur der Schal}{\fs16\insrsid3302305 l des Donners durchbrach die un}{\fs16\insrsid10121665 h}{\fs16\insrsid3302305 e}{\fs16\insrsid10121665 imliche Stille. Dies sollte }{\fs16\insrsid12083888 die letzte Schlacht zwischen den}{
-\fs16\insrsid10121665 hitzk\'f6pfige}{\fs16\insrsid12083888 n}{\fs16\insrsid10121665 Feuerfanatikern und den }{\fs16\insrsid12083888 brutalen Terrawerfern werden. All die Jahre entbrannten heftige K\'e4mpfe zwischen den beiden Clans, die haupts\'e4
-chlich durch anzweifeln der anderen Religion entstand}{\fs16\insrsid3302305 en}{\fs16\insrsid12083888 . Doch diesmal sollt}{\fs16\insrsid3302305 e sich zeigen, welche}{\fs16\insrsid12083888 der beiden Religionen am Ende \'fcberl}{\fs16\insrsid3302305 e}{
-\fs16\insrsid12083888 ben sollte. Und das }{\fs16\insrsid3302305 in}{\fs16\insrsid12083888 einem Jahrhunderte-altem Ritual: Dem Klippenschubsen. }{\fs16\insrsid3302305 Die Regeln bei diesem Ritual sind einfach. Wer stirbt hat verloren}{
-\fs16\insrsid12083888 . }{\fs16\insrsid3302305 Nat\'fcrlich wurde daf\'fcr auch eine}{\fs16\insrsid12083888 der h\'f6chsten Stellen des Planeten gesuch}{\fs16\insrsid7344688 t, n\'e4mlich eine alte}{\fs16\insrsid6165245 Ruine, dessen T\'fc
-rme aus dem kalten Nebel herausragen}{\fs16\insrsid3302305 und die Tode gefallener (tolles Wortspiel ^^) Krieger zeichnen}{\fs16\insrsid6165245 .}{\fs16\insrsid12083888 }{\fs16\insrsid10121665
-\par }{\fs16\insrsid5189051
-\par }{\fs16\insrsid7734152 Ein einfaches Team-Melee}{\fs16\insrsid13963352 f\'fcr 2-8 Spieler}{\fs16\insrsid7734152 , welches hohes Geschick mit der Clonk-Steurung voraussetzt}{\fs16\insrsid15673683 . Jeder Spieler hat zu Beginn 10 Relaunchs}{
-\fs16\insrsid7734152 . Zur }{\fs16\insrsid15673683 Spiel-}{\fs16\insrsid7734152 Auswahl stehen }{\fs16\insrsid14499138 f\'fcnf}{\fs16\insrsid7734152 Varianten: }{\fs16\insrsid15673683
-\par }{\fs16\insrsid3302305
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid3302305 {\fs16\insrsid3302305 Normal: Jedes Team startet auf einer Seite. Nun m\'fcssen die Teams versuchen, sich gegenseitig von den S\'e4ulen zu Sto\'dfen. Dies wird durch Blitze, Steinschl
-\'e4gen, Erdbeben und Meteoriten etwas vereinfacht.}{\fs16\insrsid7344688 Mittels Druck auf Spezial kann der Clonk in der N\'e4he befindliche Gegner wegschubsen, was sich in der N\'e4
-he des Abgrunds als hilfreich erweist. Noch ein Hinweis: Alle Flints ohne Verz\'f6gerung k\'f6nnen im Kontextmen\'fc oder auf Doppel-Graben geschossen werden.}{\fs16\insrsid3302305
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs16\insrsid3302305
-\par }{\fs16\insrsid15673683 Sudden-Death: }{\fs16\insrsid5189051 Die Spieler m\'fcssen versuchen zu \'fcberleben, w\'e4hrend }{\fs16\insrsid2314777 Super}{\fs16\insrsid5189051 -Flints vom Himmel fallen und Wurml\'f6
-cher in der Landschaft entstehen, die die Clonks der Spieler an andere (auch nicht gewollte) Orte bringen. In der Landschaft werden Kanonen platziert, die kein Schie\'dfpulver ben\'f6tigen und automatisch Nachschub an Munition erhalten.}{
-\fs16\insrsid15214486
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid15673683 {\fs16\insrsid15673683
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid417570 {\fs16\insrsid3302305 Speed-Kampf: Genau wie Normal, }{\fs16\insrsid15673683 jedoch mit h\'f6herer Geschwindigkeit. }{\fs16\insrsid3282380 Da die Geschwindigkeit h\'f6
-her ist, sollten Gegenst\'e4nde statt auf Doppel-Graben auf Spezial 2 aktiviert werden. }{\fs16\insrsid417570
-\par
-\par Magisches Schubsen: Das gleiche Prinzip wie Normal, blo}{\fs16\insrsid3302305 \'df dass anstatt }{\fs16\insrsid5189051 Flint und anderen Gegenst\'e4nden}{\fs16\insrsid3302305 nur }{\fs16\insrsid417570 Schriftrollen gerespawnt werden. }{
-\fs16\insrsid3302305 Das hei\'dft, dass nur Magie benutzt werden kann, um die Gegner zu eliminieren}{\fs16\insrsid417570
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid15673683 {\fs16\insrsid10813541
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid10813541 {\fs16\insrsid417570 Apokalyptisches Schubsen:}{\fs16\insrsid7344688
- Die Spieler erhalten nach einem gewissen Timer-Intervall automatisch ein Terra-Flint in ihrem Inventar, solange sie weniger als drei besitzen}{\fs16\insrsid9796632 .}{\fs16\insrsid5731503 }{\fs16\insrsid417570 Meteoriten }{\fs16\insrsid5731503 haben }{
-\fs16\insrsid417570 einen gr\'f6\'dferen Explosions-Radius, und es f\'e4llt gelegentlich Feuer vom Himmel.}{\fs16\insrsid14499138 }{\fs16\insrsid11958464 Wenn ein Clonk runterf\'e4
-llt, wird er mit hoher Wahrscheinlichkeit wieder oben platziert. Deswegen sollte man ve}{\fs16\insrsid3302305 rsuchen, seine Gegner durch Ter}{\fs16\insrsid11958464 a-Flints}{\fs16\insrsid9796632 }{\fs16\insrsid7344688 zu elemi}{\fs16\insrsid11958464
-nieren. }{\fs16\insrsid5731503 In diesem Modus hat jeder}{\fs16\insrsid5189051 Spieler nur 3 Relaunchs!}{\fs16\insrsid10813541
-\par }{\fs16\insrsid12978656
-\par }{\fs16\insrsid5731503 Dieses }{\fs16\insrsid12549301 Szenario}{\fs16\insrsid5731503 ben\'f6tigt}{\fs16\insrsid12978656 das Fanatsy-Pack.}{\fs16\insrsid417570
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs16\insrsid15673683
-\par }{\fs16\insrsid10813541
-\par }} \ No newline at end of file
+{\rtf1\ansi\deff0\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset1 Times New Roman;}{\f4\froman\fprq0\fcharset1 Times New Roman;}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset1 Mangal;}}
+{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
+{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031 Standard;}
+{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f2\fs28 \u220\'dcberschrift;}
+{\s16\sbasedon0\snext16\sb0\sa120 Textk\u246\'f6rper;}
+{\s17\sbasedon16\snext17\sb0\sa120\dbch\af7 Liste;}
+{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Beschriftung;}
+{\s19\sbasedon0\snext19\noline\dbch\af7 Verzeichnis;}
+}{\info{\author Benjamin}{\creatim\yr2008\mo1\dy10\hr21\min49}{\revtim\yr2008\mo6\dy6\hr14\min24}{\printim\yr0\mo0\dy0\hr0\min0}{\comment LibreOffice}{\vern3600}}\deftab720
+\viewscale140
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1417\margrsxn1417\margtsxn1417\margbsxn1134\pgdscnxt0 Standard;}}
+\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1417\margr1417\margt1417\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1417\margrsxn1417\margtsxn1417\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\b\langfe1031\rtlch \ltrch\loch\fs20\lang1031\loch\f4
+Tempelschubsen}
+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\langfe1031\rtlch \ltrch\loch\fs16\lang1031\loch\f4
+
+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\langfe1031\rtlch \ltrch\loch\fs16\lang1031\loch\f4
+In Arbeit.}
+\par } \ No newline at end of file
diff --git a/TemplePushing.c4s/DescUS.rtf b/TemplePushing.c4s/DescUS.rtf
index 48f6839..7f6a723 100644
--- a/TemplePushing.c4s/DescUS.rtf
+++ b/TemplePushing.c4s/DescUS.rtf
@@ -1,65 +1,21 @@
-{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f36\froman\fcharset238\fprq2 Times New Roman CE;}
-{\f37\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f39\froman\fcharset161\fprq2 Times New Roman Greek;}{\f40\froman\fcharset162\fprq2 Times New Roman Tur;}{\f41\froman\fcharset177\fprq2 Times New Roman (Hebrew);}
-{\f42\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f43\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f44\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
-\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;
-\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 \snext0 Normal;}{\*\cs10 \additive \ssemihidden
-Default Paragraph Font;}{\*\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
-\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}{\*\rsidtbl \rsid417570\rsid2314777\rsid3282380\rsid3302305\rsid5054522\rsid5063892
-\rsid5189051\rsid5731503\rsid6165245\rsid6310542\rsid6817925\rsid7554459\rsid7734152\rsid9441714\rsid9796632\rsid10121665\rsid10813541\rsid11958464\rsid12083888\rsid12340038\rsid12978656\rsid13596000\rsid13963352\rsid13972291\rsid14243780\rsid14499138
-\rsid14899991\rsid15076825\rsid15214486\rsid15673683}{\*\generator Microsoft Word 10.0.2627;}{\info{\author Benjamin}{\operator Benjamin}{\creatim\yr2008\mo1\dy10\hr21\min49}{\revtim\yr2008\mo6\dy6\hr14\min29}{\version25}{\edmins0}{\nofpages1}
-{\nofwords232}{\nofchars1464}{\*\company Privat}{\nofcharsws1693}{\vern16437}}\margl1417\margr1417\margt1417\margb1134 \widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120
-\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale170\nolnhtadjtbl\rsidroot15076825 \fet0\sectd \linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
-\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
-\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
-{\pntxtb (}{\pntxta )}}\pard\plain \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1031\langfe1031\cgrid\langnp1031\langfenp1031 {\b\fs20\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid14899991 Temple Pushing}{
-\fs20\lang2057\langfe1031\langnp2057\insrsid15214486\charrsid14899991
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid15214486\charrsid14899991
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 It was a dark and stormy day}{\fs16\lang2057\langfe1031\langnp2057\insrsid10121665\charrsid7554459 , }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459
-and the daylight was }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459 almost not}{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 recognizable}{\fs16\lang2057\langfe1031\langnp2057\insrsid10121665\charrsid7554459 . }{
-\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 The raindrops splashed}{\fs16\lang2057\langfe1031\langnp2057\insrsid10121665\charrsid7554459 , }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459
-and just the sound of thunder breaks the creepy silence}{\fs16\lang2057\langfe1031\langnp2057\insrsid10121665\charrsid7554459 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 This should be the last battle }{
-\fs16\lang2057\langfe1031\langnp2057\insrsid7554459 between}{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 the tera-templer and}{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459 the fire-freaks}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid7554459 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 All the years there}{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459 were war between the two clans}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid7554459 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid7554459\charrsid7554459 But this time, it turned out wich religion will survive}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid7554459 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 And this in a century-old ritual}{\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid14243780 : }{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 The Cliff-Pushing.}{\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid14243780 }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14899991 The rules are easy.}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14899991 }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14899991 Who dies, loose}{\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid14899991 . }{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 Of course for this ritual one of the highest places on the planet has be}{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 en}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 choosed: The mountains of Hir}{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 a}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 g}{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 u.}{\fs16\lang2057\langfe1031\langnp2057\insrsid12083888\charrsid14243780 }{
-\fs16\lang2057\langfe1031\langnp2057\insrsid10121665\charrsid14243780
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid14899991
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 An easy melee for 2-10 players}{\fs16\lang2057\langfe1031\langnp2057\insrsid7734152\charrsid14243780 ,}{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780
- wich needs skills with the clonk-control}{\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid14243780 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 Every player got}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid14243780 5 }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 r}{\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid14243780 elaunchs}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 at the }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 start of }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 game}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid7734152\charrsid14243780 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 T}{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 here are five game-modes}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid7734152\charrsid14243780 : }{\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid14243780
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14243780
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid3302305 {\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14243780 Normal: }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 Every team starts on one side}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14243780 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 Now every player tries to push down his opponent}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14243780 . }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 This is made easier by lightning-strikes, rock-falls, earthquakes and meteorits.}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14899991 By means of special clonks can push away enemys wich are in the near of them. A little tip: You can shot every flint except flints with schedules by means of the context or with double-dig.}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14243780
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid14243780
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid14243780 Sudden-Death: }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 Every player tries to survive while }{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000
-super-flints fall out of the sky}{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780\charrsid14243780 and }{\fs16\lang2057\langfe1031\langnp2057\insrsid14243780 warps }{\fs16\lang2057\langfe1031\langnp2057\insrsid14899991 appear}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid13596000 }{\fs16\lang2057\langfe1031\langnp2057\insrsid14899991 in}{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000 the landscape.}{\fs16\lang2057\langfe1031\langnp2057\insrsid15214486\charrsid14243780
+{\rtf1\ansi\deff0\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset1 Times New Roman;}{\f4\froman\fprq0\fcharset1 Times New Roman;}{\f5\fnil\fprq2\fcharset0 Microsoft YaHei;}{\f6\fnil\fprq2\fcharset0 Mangal;}{\f7\fnil\fprq0\fcharset1 Mangal;}}
+{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
+{\stylesheet{\s0\snext0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031 Standard;}
+{\s15\sbasedon0\snext16\sb240\sa120\keepn\dbch\af5\dbch\af6\afs28\loch\f2\fs28 \u220\'dcberschrift;}
+{\s16\sbasedon0\snext16\sb0\sa120 Textk\u246\'f6rper;}
+{\s17\sbasedon16\snext17\sb0\sa120\dbch\af7 Liste;}
+{\s18\sbasedon0\snext18\sb120\sa120\noline\i\dbch\af7\afs24\ai\fs24 Beschriftung;}
+{\s19\sbasedon0\snext19\noline\dbch\af7 Verzeichnis;}
+}{\info{\author Benjamin}{\creatim\yr2008\mo1\dy10\hr21\min49}{\revtim\yr2008\mo6\dy6\hr14\min29}{\printim\yr0\mo0\dy0\hr0\min0}{\comment LibreOffice}{\vern3600}}\deftab720
+\viewscale170
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1417\margrsxn1417\margtsxn1417\margbsxn1134\pgdscnxt0 Standard;}}
+\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1417\margr1417\margt1417\margb1134\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1417\margrsxn1417\margtsxn1417\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+\pgndec\pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\b\langfe1031\rtlch \ltrch\loch\fs20\lang2057\loch\f4
+Temple Pushing}
+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0\langfe1031\rtlch \ltrch\loch\fs16\lang2057\loch\f4
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid15673683 {\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid14243780
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid417570 {\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid13596000 Speed-}{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000\charrsid13596000 Fight}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid3302305\charrsid13596000 : }{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000\charrsid13596000 The same as normal}{\fs16\lang2057\langfe1031\langnp2057\insrsid14899991 -mode}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid13596000\charrsid13596000 , just with higher speed.}{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000 Instead of activating by double-dig, objects should be activated by double-special2}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid14899991 .}{\fs16\lang2057\langfe1031\langnp2057\insrsid417570\charrsid13596000
-\par
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000\charrsid13596000 Magical Pushing}{\fs16\lang2057\langfe1031\langnp2057\insrsid417570\charrsid13596000 : }{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000\charrsid13596000
-Instead of objects magic scrolls will be respawnt in the respawnpoints.}{\fs16\lang2057\langfe1031\langnp2057\insrsid417570\charrsid13596000
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid15673683 {\fs16\lang2057\langfe1031\langnp2057\insrsid10813541\charrsid13596000
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid10813541 {\fs16\lang2057\langfe1031\langnp2057\insrsid417570\charrsid13596000 Ultimate Extreme }{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000\charrsid13596000 Pushing}{
-\fs16\lang2057\langfe1031\langnp2057\insrsid417570\charrsid13596000 : }{\fs16\lang2057\langfe1031\langnp2057\insrsid13596000 Meteorits got a higher range, and sometimes flames fall out of the sky. If on player }{
-\fs16\lang2057\langfe1031\langnp2057\insrsid5054522 reachs the bottom, he automaticly will be created on the top on the level. Every player gots just 2 relaunches! }{\fs16\lang2057\langfe1031\langnp2057\insrsid10813541\charrsid13596000
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid14899991
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid5054522\charrsid5054522 This scenario needs the}{\fs16\lang2057\langfe1031\langnp2057\insrsid12978656\charrsid5054522 Fanatsy-Pack.}{\fs16\lang2057\langfe1031\langnp2057\insrsid417570\charrsid5054522
-\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs16\lang2057\langfe1031\langnp2057\insrsid15673683\charrsid5054522
-\par }{\fs16\lang2057\langfe1031\langnp2057\insrsid10813541\charrsid5054522
-\par }} \ No newline at end of file
+\par \pard\plain \s0\nowidctlpar{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\cf0\kerning1\dbch\af8\langfe2052\dbch\af6\afs24\alang1081\loch\f0\fs24\lang1031\ql\nowidctlpar\faauto\li0\ri0\lin0\rin0\fi0{\langfe1031\rtlch \ltrch\loch\fs16\lang2057\loch\f4
+To be written.}
+\par } \ No newline at end of file
diff --git a/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Graphics.png b/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Graphics.png
new file mode 100644
index 0000000..15acff0
--- /dev/null
+++ b/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Names.txt b/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Names.txt
new file mode 100644
index 0000000..b6dfe11
--- /dev/null
+++ b/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Lavaregentropfen
+US:Lava raindrop
diff --git a/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Particle.txt b/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Particle.txt
new file mode 100644
index 0000000..2ed9851
--- /dev/null
+++ b/TemplePushing.c4s/Environment.c4d/LavaRainDrop.c4d/Particle.txt
@@ -0,0 +1,13 @@
+[Particle]
+Name=LavaRaindrop
+MaxCount=600
+InitFn=StdInit
+ExecFn=StdExec
+CollisionFn=Die
+DrawFn=Std
+Face=0,0,64,64,-32,-32
+Delay=0
+GravityAcc=70
+RByV=1
+VertexCount=1
+Additive=0
diff --git a/TemplePushing.c4s/LobbySky.jpg b/TemplePushing.c4s/LobbySky.jpg
new file mode 100644
index 0000000..93c1576
--- /dev/null
+++ b/TemplePushing.c4s/LobbySky.jpg
Binary files differ
diff --git a/TemplePushing.c4s/Material.c4g/BackAcid.c4m b/TemplePushing.c4s/Material.c4g/BackAcid.c4m
new file mode 100644
index 0000000..dc60d4b
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/BackAcid.c4m
@@ -0,0 +1,7 @@
+[Material]
+Name=BackRedAcid
+Color=190,0,0,200,0,0,210
+Shape=0
+Density=0
+Placement=10
+TextureOverlay=Liquid
diff --git a/TemplePushing.c4s/Material.c4g/BackBrick.c4m b/TemplePushing.c4s/Material.c4g/BackBrick.c4m
new file mode 100644
index 0000000..88b19f5
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/BackBrick.c4m
@@ -0,0 +1,8 @@
+[Material]
+Name=BackBrick
+Color=26,20,14,26,25,15,28,31,23
+Shape=0
+Density=50
+Placement=60
+TextureOverlay=Brick
+OverlayType=1
diff --git a/TemplePushing.c4s/Material.c4g/BackLava.c4m b/TemplePushing.c4s/Material.c4g/BackLava.c4m
new file mode 100644
index 0000000..b918001
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/BackLava.c4m
@@ -0,0 +1,8 @@
+[Material]
+Name=BackLava
+Color=245,200,15,248,220,18,251,240,15
+ColorAnimation=1
+Shape=0
+Density=0
+Placement=10
+TextureOverlay=Liquid
diff --git a/TemplePushing.c4s/Material.c4g/BackWall.c4m b/TemplePushing.c4s/Material.c4g/BackWall.c4m
new file mode 100644
index 0000000..ec58106
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/BackWall.c4m
@@ -0,0 +1,7 @@
+[Material]
+Name=BackWall
+Color=26,20,14,26,25,15,28,31,23
+Shape=0
+Placement=60
+TextureOverlay=Brick
+OverlayType=1
diff --git a/TemplePushing.c4s/Material.c4g/DarkBrick.c4m b/TemplePushing.c4s/Material.c4g/DarkBrick.c4m
new file mode 100644
index 0000000..dd03abe
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/DarkBrick.c4m
@@ -0,0 +1,8 @@
+[Material]
+Name=DarkBrick
+Color=62,50,38,62,60,40,86,72,56
+Shape=0
+Density=50
+Placement=60
+TextureOverlay=Brick
+OverlayType=1
diff --git a/TemplePushing.c4s/Material.c4g/DarkenB.png b/TemplePushing.c4s/Material.c4g/DarkenB.png
deleted file mode 100644
index 2256e2b..0000000
--- a/TemplePushing.c4s/Material.c4g/DarkenB.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Material.c4g/LavaBrick.c4m b/TemplePushing.c4s/Material.c4g/LavaBrick.c4m
new file mode 100644
index 0000000..51edb4a
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/LavaBrick.c4m
@@ -0,0 +1,8 @@
+[Material]
+Name=LavaBrick
+Color=245,200,15,248,220,18,251,240,15
+ColorAnimation=1
+Shape=0
+Density=50
+Placement=10
+TextureOverlay=Liquid
diff --git a/TemplePushing.c4s/Material.c4g/RedAcid.c4m b/TemplePushing.c4s/Material.c4g/RedAcid.c4m
new file mode 100644
index 0000000..19058d7
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/RedAcid.c4m
@@ -0,0 +1,12 @@
+[Material]
+Name=RedAcid
+Color=190,0,0,200,0,0,210
+ColorAnimation=1
+Density=25
+Instable=1
+MaxAirSpeed=25
+MaxSlide=10000
+WindDrift=30
+Corrosive=75
+Placement=10
+TextureOverlay=Liquid
diff --git a/TemplePushing.c4s/Material.c4g/RedAcidBrick.c4m b/TemplePushing.c4s/Material.c4g/RedAcidBrick.c4m
new file mode 100644
index 0000000..6a436ee
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/RedAcidBrick.c4m
@@ -0,0 +1,7 @@
+[Material]
+Name=RedAcidBrick
+Color=190,0,0,200,0,0,210,0,0
+ColorAnimation=1
+Density=50
+Placement=10
+TextureOverlay=Liquid
diff --git a/TemplePushing.c4s/Material.c4g/Sky2.jpg b/TemplePushing.c4s/Material.c4g/Sky2.jpg
deleted file mode 100644
index d060665..0000000
--- a/TemplePushing.c4s/Material.c4g/Sky2.jpg
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Material.c4g/SkyCrystal.c4m b/TemplePushing.c4s/Material.c4g/SkyCrystal.c4m
new file mode 100644
index 0000000..4ea4ae3
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/SkyCrystal.c4m
@@ -0,0 +1,7 @@
+[Material]
+Name=SkyCrystal
+Color=255,255,255
+Alpha=125,125,125,0,0,0
+Shape=0
+Density=50
+TextureOverlay=Structure
diff --git a/TemplePushing.c4s/Material.c4g/SkyCrystalWall.c4m b/TemplePushing.c4s/Material.c4g/SkyCrystalWall.c4m
new file mode 100644
index 0000000..30ba585
--- /dev/null
+++ b/TemplePushing.c4s/Material.c4g/SkyCrystalWall.c4m
@@ -0,0 +1,7 @@
+[Material]
+Name=SkyCrystalWall
+Color=255,255,255
+Alpha=155,155,155,0,0,0
+Shape=0
+Density=0
+TextureOverlay=Structure
diff --git a/TemplePushing.c4s/Material.c4g/SmallRock.png b/TemplePushing.c4s/Material.c4g/SmallRock.png
deleted file mode 100644
index 7e6946c..0000000
--- a/TemplePushing.c4s/Material.c4g/SmallRock.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Material.c4g/TexMap.txt b/TemplePushing.c4s/Material.c4g/TexMap.txt
index 7eca11c..8baf784 100644
--- a/TemplePushing.c4s/Material.c4g/TexMap.txt
+++ b/TemplePushing.c4s/Material.c4g/TexMap.txt
@@ -5,7 +5,7 @@ OverloadMaterials
# Import textures from global file as well
OverloadTextures
-1=Tunnel-SmallRock
+1=Tunnel-Rough
2=Wall-Flat
3=Wall-RoughDark
4=Tunnel-RoughDark
@@ -13,22 +13,22 @@ OverloadTextures
6=Wall-Structure3
7=FlyAshes-Brick
8=Wall-Brick
-9=Wall-SmallRock
+9=BackWall-Brick
10=Tunnel-Smooth
11=Tunnel-Smooth2
-12=Wall-WallStuff
-13=Acid-Liquid
-14=Ashes-Spots
-15=Crystal-Structure
+12=SkyCrystalWall-RoughDark
+13=RedAcid-Liquid
+14=BackRedAcid-Liquid
+15=SkyCrystal-Brick
16=FlyAshes-Spots
17=Ice-Sponge
18=DuroLava-LIQUID
-19=DuroLava-Smooth
+19=BackLava-Liquid
20=Water-Fleckig
21=Oil-Smooth
22=Acid-Smooth
23=Lava-Smooth
-24=DuroLava-Smooth
+24=LavaBrick-Liquid
25=Water-Smooth
26=Oil-Smooth
27=Ashes-RoughDark
@@ -42,12 +42,10 @@ OverloadTextures
35=Earth-Flare
36=Ore-Rough
37=Brick-Flat
-38=Brick-SmallRock
-39=Brick-DarkenB
+38=Brick-Liquid
40=Brick-RoughDark
41=Lava-Liquid
42=Oil-Liquid
-43=Brick-TransB
44=Ore-Structure
45=Gold-Rough
46=Snow-Spots
@@ -64,14 +62,14 @@ OverloadTextures
57=Sand-Smooth3
58=FlySand-Smooth
59=FlyAshes-Smooth
-60=Crystal-Flare
+60=SkyCrystal-Structure
61=Water-Liquid
-62=Brick-Brick
+62=DarkBrick-Brick
63=Brick-Rough
64=Wall-Rough
-65=Ice-Flare2
-66=Ice-Flare3
-68=Ice-Structure2
+65=BackBrick-Brick
+66=Ice=Flare1
+68=RedAcidBrick-Liquid
71=Ashes-Rough
72=FlyAshes-Rough
80=FlySand-Smooth2
diff --git a/TemplePushing.c4s/Material.c4g/TransB.png b/TemplePushing.c4s/Material.c4g/TransB.png
deleted file mode 100644
index c724960..0000000
--- a/TemplePushing.c4s/Material.c4g/TransB.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Material.c4g/Wall.c4m b/TemplePushing.c4s/Material.c4g/Wall.c4m
index 96a2b90..951e7d8 100644
--- a/TemplePushing.c4s/Material.c4g/Wall.c4m
+++ b/TemplePushing.c4s/Material.c4g/Wall.c4m
@@ -1,7 +1,7 @@
[Material]
Name=Wall
Color=62,50,38,62,60,40,86,72,56
-Shape=2
+Shape=0
Placement=5
-TextureOverlay=SmallRock
+TextureOverlay=RoughDark
OverlayType=1
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt
new file mode 100644
index 0000000..214c847
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=ICNL
+Name=Eisnadeln
+Version=4,9,5,4
+Category=131073
+Picture=0,0,64,64
+Value=12
+Components=ICRS=3;IICE=2; \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt
new file mode 100644
index 0000000..e7fbadb
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescDE.txt
@@ -0,0 +1 @@
+Schießt Eisnadeln vom Zauberer weg. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt
new file mode 100644
index 0000000..f56d320
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/DescUS.txt
@@ -0,0 +1 @@
+Shoots ice needles in the selected direction. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt
new file mode 100644
index 0000000..7dec40a
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/ActMap.txt
@@ -0,0 +1,7 @@
+[Action]
+Name=Fly
+Procedure=FLOAT
+Length=1
+Delay=1
+NextAction=Fly
+FacetBase=1
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt
new file mode 100644
index 0000000..13db5ff
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DefCore.txt
@@ -0,0 +1,20 @@
+[DefCore]
+id=ICNA
+Name=Eisnadel
+Version=4,9,5
+Category=4
+MaxUserSelect=10
+Width=12
+Height=3
+Offset=-6,-1
+Value=10
+Mass=10
+Timer=2
+TimerCall=Check
+Vertices=1
+VertexX=1
+VertexFriction=20
+Rotate=1
+
+[Physical]
+Float=500 \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt
new file mode 100644
index 0000000..a5ea66e
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescDE.txt
@@ -0,0 +1 @@
+Frostig. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt
new file mode 100644
index 0000000..8cbca28
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/DescUS.txt
@@ -0,0 +1 @@
+Very cold. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png
new file mode 100644
index 0000000..d598ba4
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt
new file mode 100644
index 0000000..b6f0130
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/FSSpark.c4d/Particle.txt
@@ -0,0 +1,14 @@
+[Particle]
+Name=FSSpark
+MaxCount=2000
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+Face=0,0,32,32,-16,-16
+Delay=0
+Repeats=6
+GravityAcc=0
+AlphaFade=4
+Additive=1
+Attach=1
+RByV=1 \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png
new file mode 100644
index 0000000..b00b2f5
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png
new file mode 100644
index 0000000..7fd2df2
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt
new file mode 100644
index 0000000..61c3b8b
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle.c4d/Particle.txt
@@ -0,0 +1,14 @@
+[Particle]
+Name=MaterialParticle
+MaxCount=350
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+CollisionFn=Die
+Face=0,0,28,43,-15,-5
+Repeats=10
+GravityAcc=70
+RByV=1
+Delay=175
+VertexCount=1
+AlphaFade=0 \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png
new file mode 100644
index 0000000..ba84750
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt
new file mode 100644
index 0000000..63d5355
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/MaterialParticle2.c4d/Particle.txt
@@ -0,0 +1,16 @@
+[Particle]
+Name=MaterialParticle2
+MaxCount=3500
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+CollisionFn=Die
+Face=0,0,28,43,-15,-5
+Repeats=1
+GravityAcc=0
+RByV=1
+Delay=0
+VertexCount=1
+AlphaFade=4
+Additive=1
+Attach=1 \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c
new file mode 100644
index 0000000..98f3eaf
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Eisnadeln.c4d/Script.c
@@ -0,0 +1,176 @@
+/*-- Eislanze --*/
+
+#strict
+static const ICNA_Speed=50;
+
+local timer;
+local iOldX, iOldY;
+local Gift;
+local iAngle;
+local Caster;
+local Randi;
+
+func Initialize() {
+Gift=0;
+ timer=0;
+ return(1);
+}
+
+public func Activate(pCaster,Angle)
+{
+ SetAction("Fly");
+ var xDir,yDir;
+// SetR(Angle-100+RandomX(0,20));
+ iAngle = Angle-10+RandomX(0,20);
+ SetR(iAngle-90);
+ Caster = pCaster;
+// xDir=Cos(iAngle-90,ICNA_Speed);
+// yDir=Sin(iAngle-90,ICNA_Speed);
+// SetXDir(xDir+RandomX(-10,10));
+// SetYDir(yDir+RandomX(-10,10));
+// iOldX = GetX(); iOldY = GetY();
+}
+
+protected func Hit()
+{
+ if(CheckHit()) return();
+ CastParticles("MaterialParticle",20,50,0,0,20,60,RGB(50,120,255),RGB(00,120,255));
+ if(!Random(3)) RemoveObject();
+ if(GetR() > 180) iAngle = iAngle-iAngle*2;
+ if(GetR() < 180) iAngle = iAngle+iAngle*2;
+ var iMinAngleDiff = 360, iTargetAngle = iAngle;
+ var pObj;
+ while (pObj = FindObject(0, Sin(iAngle, 200)-200/2, -Cos(iAngle, 200)-200/2, 200, 200, OCF_CrewMember, 0,0, NoContainer(), pObj))
+ {
+ if (!GetAlive(pObj)) continue;
+ if(pObj == Caster) continue;
+ if(!PathFree(GetX(),GetY(),GetX(pObj),GetY(pObj))) continue;
+ var iThisTargetAngle = Angle(GetX(), GetY(), GetX(pObj), GetY(pObj));
+ if (iThisTargetAngle > 180) iThisTargetAngle -= 360;
+ if (Abs(iThisTargetAngle - iAngle) < iMinAngleDiff)
+ {
+ iMinAngleDiff = Abs(iThisTargetAngle - iAngle);
+ iTargetAngle = iThisTargetAngle;
+ }
+ }
+ iAngle = BoundBy(iTargetAngle, iAngle-Randi, iAngle+Randi);
+}
+
+protected func Check()
+{
+//CheckCrash(this());
+// SetXDir(Cos(GetR(), 245000) * 2, 0, 100000);
+// SetYDir(Sin(GetR(), 245000) * 2, 0, 100000);
+ Randi = RandomX(0,20);
+ SetR(iAngle);
+ SetXDir(Sin(iAngle, 50));
+ SetYDir(-Cos(iAngle, 50));
+
+ // SetXDir(Sin(iAngle, 80));
+ // SetYDir(-Cos(iAngle, 80));
+
+ var iMinAngleDiff = 360, iTargetAngle = iAngle;
+ var pObj;
+ while (pObj = FindObject(0, Sin(iAngle, 200)-200/2, -Cos(iAngle, 200)-200/2, 200, 200, OCF_CrewMember, 0,0, NoContainer(), pObj))
+ {
+ if (!GetAlive(pObj)) continue;
+ if(pObj == Caster) continue;
+ if(!PathFree(GetX(),GetY(),GetX(pObj),GetY(pObj))) continue;
+ var iThisTargetAngle = Angle(GetX(), GetY(), GetX(pObj), GetY(pObj));
+ if (iThisTargetAngle > 180) iThisTargetAngle -= 360;
+ if (Abs(iThisTargetAngle - iAngle) < iMinAngleDiff)
+ {
+ iMinAngleDiff = Abs(iThisTargetAngle - iAngle);
+ iTargetAngle = iThisTargetAngle;
+ }
+ }
+ iAngle = BoundBy(iTargetAngle, iAngle-Randi, iAngle+Randi);
+
+ if(++timer > 100)RemoveObject();
+ //if(!GetR() == iAngle-90){
+ //if(GetR() < iAngle-90) SetRDir(1);
+ //if(GetR() > iAngle-90) SetRDir(-1);
+ //}
+ //if(GetR() == iAngle-80+RandomX(0,20)) SetRDir(0);
+ if(ObjectDistance(this(),pObj) < 40) SetR(iAngle-90);
+
+if(!Gift==1)
+ {
+ // CreateParticle("PSpark",0,0,0,0,20,RGBa(0,RandomX(100,120),RandomX(160,255),90));
+ CreateParticle("PSpark",0,0,0,0,180,RGBa(0,RandomX(100,120),RandomX(160,255),120));
+ CreateParticle("FSSpark",0,0,0,0,150,RGB(0,RandomX(100,120),RandomX(160,255)));
+ //CreateParticle("PSpark",-GetXDir()/5,-GetYDir()/5,0,0,40,RGB(0,RandomX(100,120),RandomX(160,255)));
+ //CreateParticle("PSpark",-GetXDir()/2,-GetYDir()/2,0,0,40,RGB(0,RandomX(100,120),RandomX(160,255)));
+ CreateParticle("MaterialParticle2",0,0,RandomX(2,-2)-GetXDir()/2,RandomX(2,-2)-GetYDir()/2,250,RGB(0,RandomX(100,120),RandomX(160,255)));
+ }
+else
+{
+ CreateParticle("FSSpark",0,0,0,0,150,RGB(100,255,0));
+ CreateParticle("PSpark",0,0,0,0,180,RGBa(100,255,0,120));
+ CreateParticle("MaterialParticle2",0,0,RandomX(2,-2)-GetXDir()/2,RandomX(2,-2)-GetYDir()/2,250,RGB(100,255,0));
+ }
+ // Auf Treffer prüfen
+ CheckHit();
+ iOldX = GetX(); iOldY = GetY();
+/* var pClonk=0;
+ while(pClonk=FindObject(0,0,-1,0,0,OCF_Alive(),0,0,NoContainer(),pClonk))
+ {
+ if(!ObjectCount(NTMG))if(Hostile(GetOwner(),GetOwner(pClonk)))continue;
+ Punch(pClonk,4);
+ RemoveObject();
+ }*/
+}
+
+private func CheckHit()
+{
+ // Nur wenn schon passende Werte da sind
+ if(!iOldX && !iOldY) return();
+ // Distance zur letzten Position berechnen
+ var iXDist = GetX()-iOldX;
+ var iYDist = GetY()-iOldY;
+ // Treffer-Überprüfung
+ var iSteps = Abs(iXDist/4);
+ if(Abs(GetXDir())<Abs(GetYDir())) iSteps = Abs(iYDist/4);
+ var iX, iY, pObj;
+ // Mit Schleife alle Zwischenpunkte abklappern
+ for(var i = iSteps; i; i--)
+ {
+ iX = -iXDist*i/iSteps; iY = -iYDist*i/iSteps;
+ if(!iY) iY = 1;
+// CreateParticle("NoGravSpark", iX, iY, 0, 0, 30, RGB(i*255/iSteps, (iSteps-i)*255/iSteps));
+ var pFObj;
+ if(pFObj = FindObject(0, iX, iY, 0, 0, OCF_OnFire(), 0, 0, NoContainer())) {
+ if(!Random(3)) RemoveObject(this());
+ }
+ if(pObj = FindObject(0, iX, iY, 0, 0, OCF_Alive(), 0, 0, NoContainer())) return(HitLiving(pObj));
+ }
+}
+
+private func HitLiving (living,pObj)
+{
+if(living == Caster) return(0);
+CastParticles("MaterialParticle",20,50,0,0,20,60,RGB(50,120,255),RGB(00,120,255));
+Sound("Crystal2", this());
+if(!Gift==1)
+ {
+ Sound("Hited", living);
+ // Schaden machen
+ Punch(living, 12);
+ if(!Frozen(living)) Freeze(living, EffectVar(4));
+ return(RemoveObject());
+ }
+if(Gift==1)
+{
+ Sound("Hited", living);
+ // Schaden machen
+ Punch(living, (10));
+ return(RemoveObject());
+ }
+ }
+
+
+protected func Destruction()
+{
+ CreateParticle("PSpark", RandomX(-1,2), RandomX(-2,1), RandomX(-3,2), RandomX(-2,1), RandomX(150,90), RGB(010,035,94));
+ CreateParticle("PSpark", RandomX(-2,1), RandomX(-1,2), RandomX(-2,3), RandomX(-1,2), RandomX(150,90), RGB(012,040,94));
+} \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Graphics.png
new file mode 100644
index 0000000..d58fd63
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Names.txt
new file mode 100644
index 0000000..78ba18b
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Eisnadeln
+US:Ice needle \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c
new file mode 100644
index 0000000..1d439bf
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Eisnadeln.c4d/Script.c
@@ -0,0 +1,125 @@
+/* Eisnadeln */
+
+#strict
+
+local Combo;
+
+
+
+func Activate(pCaster,pRealcaster) {
+Combo=0;
+Sound("Magic",0,pCaster);
+if(FindContents(ABRL,pCaster))
+{
+Combo=1;
+RemoveObject(FindContents(ABRL,pCaster));
+}
+ var pClonk;
+ if(pRealcaster) pClonk=pRealcaster;
+ else pClonk=pCaster;
+
+ // Zielen wenn möglich
+ if (pClonk->~DoSpellAim(this())) return(1);
+
+ var angle=-90;
+ if(GetDir(pClonk) == DIR_Right()) angle=90;
+ ActivateAngle(pClonk,angle);
+ RemoveObject();
+ return(1);
+}
+
+// Aktivierung nach Zielen (iAngle: -90=links; 0=oben; +90=rechts)
+public func ActivateAngle(object pCaller, int iAngle)
+ {
+ //var pEffer = CreateObject(_WE_,0,0,GetOwner(this()));
+ //GetTarget(object pTarget,int Interval, string Element, int ElementNumber, int R, int G, int B, int a)
+ //pEffer -> GetTarget(pCaller,0, "Water", 0, 100, 100, 255, 120);
+ var WasserF = FindContents(WBRL,pCaller);
+ if(WasserF)
+ {
+ RemoveObject(WasserF);
+ CreateContents(FLNT,this());
+ }
+ if(!FindContents(FLNT,this()))
+ {
+ for(var cnt=0;cnt<3;cnt++)
+ {
+ var f=CreateObject(ICNA,AbsX(GetX(pCaller))+Cos(iAngle-90,13),AbsY(GetY(pCaller))+Sin(iAngle-90,13),GetOwner(pCaller));
+ f->Activate(pCaller,iAngle);
+ if(Combo==1) f->LocalN("Gift",f)=1;
+ var combo = FindContents(ICE1,pCaller);
+ if(combo)
+ {
+ RemoveObject(combo);
+ f->CreateContents(ROCK);
+ }
+ }
+ AddEffect("RecallMFCSAiming",pCaller,20,1,0,GetID(),iAngle);
+
+ // Objekt löschen
+ RemoveObject();
+ return(1);
+ }
+ if(FindContents(FLNT,this()))
+ {
+ for(var cnt=0;cnt<6;cnt++)
+ {
+ var f=CreateObject(ICNA,AbsX(GetX(pCaller))+Cos(iAngle-90,13),AbsY(GetY(pCaller))+Sin(iAngle-90,13),GetOwner(pCaller));
+ f->Activate(pCaller,iAngle);
+ if(Combo==1) f->LocalN("Gift",f)=1;
+ var combo1 = FindContents(ICE1,pCaller);
+ if(combo1)
+ {
+ RemoveObject(combo1);
+ f->CreateContents(ROCK);
+ }
+ }
+ AddEffect("RecallMFCSAiming",pCaller,20,1,0,GetID(),iAngle);
+
+ // Objekt löschen
+ RemoveObject();
+ return(1);
+ }
+}
+public func HoldAimer(pCaller)
+{
+ return(true);
+}
+
+protected func FxRecallICNAAimingStart(pTarget,iEffectNumber,bTemp,par1){
+EffectVar(0,pTarget,iEffectNumber)=par1;
+EffectVar(1,pTarget,iEffectNumber)=0;
+EffectVar(2,pTarget,iEffectNumber)=0;
+return(1);}
+
+protected func FxRecallICNAAimingTimer(pTarget,iEffectNumber)
+{
+ if(GetAction(pTarget) eq "Magic")return(0);
+
+ if(!EffectVar(1,pTarget,iEffectNumber))
+ {
+ pTarget->~DoMagic(ICNA);
+ EffectVar(1,pTarget,iEffectNumber)=1;
+ }
+
+ if(!EffectVar(2,pTarget,iEffectNumber) && GetAction(pTarget) eq "AimMagic")
+ {
+ var pAimer=FindObject(AIMR,0,0,0,0,0,0,pTarget,NoContainer());
+ if(pAimer)
+ {
+ LocalN("iAngle",pAimer)=EffectVar(0,pTarget,iEffectNumber);
+ LocalN("pArrow",pAimer)->~UpdateAngle(EffectVar(0,pTarget,iEffectNumber));
+ pAimer->~UpdateAngle(EffectVar(0,pTarget,iEffectNumber));
+ pTarget->~AimingAngle(EffectVar(0,pTarget,iEffectNumber));
+ EffectVar(2,pTarget,iEffectNumber)=1;
+ }
+ }
+ if(!WildcardMatch(GetAction(pTarget),"*Magic*") && !WildcardMatch(GetAction(pTarget),"*Aim*"))return(-1);
+
+ if(EffectVar(2,pTarget,iEffectNumber) && EffectVar(1,pTarget,iEffectNumber))return(-1);
+}
+
+/* Zaubercombo */
+
+public func GetSpellClass(object pMage) { return(WATR); }
+public func GetSpellCombo(pMage) { return ("444"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DefCore.txt
new file mode 100644
index 0000000..92b2cae
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DefCore.txt
@@ -0,0 +1,10 @@
+[DefCore]
+id=LAVS
+Version=4,0,2
+Name=Lavastoß
+Category=131072
+Width=1
+Height=1
+Value=25
+Components=IBON=2;
+Picture=0,0,40,40
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescDE.txt
new file mode 100644
index 0000000..45fcbe1
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescDE.txt
@@ -0,0 +1 @@
+Entzündet getroffende Lebewesen.
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescUS.txt
new file mode 100644
index 0000000..068fb1b
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/DescUS.txt
@@ -0,0 +1 @@
+Sets animals and clonks on fire.
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Graphics.png
new file mode 100644
index 0000000..4a566f5
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Names.txt
new file mode 100644
index 0000000..f90356d
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Lavaschuss
+US:Lavashot
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Script.c
new file mode 100644
index 0000000..40c23c1
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Script.c
@@ -0,0 +1,41 @@
+/*-- Lavaschuss --*/
+
+#strict
+
+func Activate(pCaster,pRealcaster) {
+ var pClonk;
+ if(pRealcaster) pClonk=pRealcaster;
+ else pClonk=pCaster;
+
+ var iResult;
+ if (iResult = CheckEffect("Blast", 0, 125)) return(iResult!=-1 && RemoveObject());
+
+ // Zielen wenn möglich
+ if (pClonk->~DoSpellAim(this())) return(1);
+
+ // Schuss erzeugen
+ var obj = CreateObject(_LVS, 0, 0, GetOwner(pClonk));
+ obj->Launch(pClonk, GetDir(pClonk), GetX(pClonk), GetY(pClonk), 0);
+ Sound("Inflame");
+ RemoveObject();
+ return(1);
+}
+
+// Aktivierung nach Zielen (iAngle: -90=links; 0=oben; +90=rechts)
+public func ActivateAngle(object pCaller, int iAngle)
+ {
+ // Schuss erzeugen
+ var obj = CreateObject(_LVS, 0, 0, GetOwner(pCaller));
+ obj->Launch(pCaller,GetDir(pCaller), GetX(pCaller), GetY(pCaller), (900-iAngle*10));
+ Sound("Inflame");
+
+ // Objekt löschen
+ RemoveObject();
+ return(1);
+ }
+
+// Zielspruch (für Artefaktzauber)
+public func IsAimerSpell() { return(1); }
+
+public func GetSpellClass(object pMage) { return(FIRE); }
+public func GetSpellCombo(pMage) { return ("445"); } // (1: Backward; 2: Down; 3: Forward; 4: Throw; 5: Jump; 6: Dig)
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/ActMap.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/ActMap.txt
new file mode 100644
index 0000000..12e0a38
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/ActMap.txt
@@ -0,0 +1,15 @@
+[Action]
+Name=Advance
+Procedure=NONE
+Delay=1
+NextAction=Advance
+StartCall=Advance
+
+[Action]
+Name=Connect
+Procedure=NONE
+Length=30
+Delay=1
+EndCall=Remove
+PhaseCall=Sparkle
+ \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DefCore.txt
new file mode 100644
index 0000000..662d677
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DefCore.txt
@@ -0,0 +1,11 @@
+[DefCore]
+id=_LVS
+Name=Lavaschuss
+Version=4,9,5
+Category=1
+Width=1
+Height=1
+Mass=1
+Picture=0,0,40,40
+Vertices=0
+ \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescDE.txt
new file mode 100644
index 0000000..05309b0
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescDE.txt
@@ -0,0 +1 @@
+Heiße Entladung.
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescUS.txt
new file mode 100644
index 0000000..9d565c4
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/DescUS.txt
@@ -0,0 +1 @@
+Flaming discharge.
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Graphics.png
new file mode 100644
index 0000000..4a566f5
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Graphics.png
new file mode 100644
index 0000000..255f4f7
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Particle.txt
new file mode 100644
index 0000000..77dc4e1
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark.c4d/Particle.txt
@@ -0,0 +1,15 @@
+[Particle]
+Name=LightningSpark
+MaxCount=10000
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+#CollisionFn=Stop
+Face=0,0,26,26,-13,-13
+Repeats=1
+GravityAcc=0
+AlphaFade=100
+#VertexCount=1
+#VertexY=-50
+Additive=1
+Attach=1
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Graphics.png
new file mode 100644
index 0000000..255f4f7
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Particle.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Particle.txt
new file mode 100644
index 0000000..5242de2
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/LightningSpark2.c4d/Particle.txt
@@ -0,0 +1,15 @@
+[Particle]
+Name=LightningSpark2
+MaxCount=10000
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+#CollisionFn=Stop
+Face=0,0,26,26,-13,-13
+Repeats=1
+GravityAcc=0
+AlphaFade=10
+#VertexCount=1
+#VertexY=-50
+Additive=1
+Attach=1
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Names.txt
new file mode 100644
index 0000000..546785a
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Blitz
+US:Lightning
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Script.c
new file mode 100644
index 0000000..06c981f
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Lavashot.c4d/Shot.c4d/Script.c
@@ -0,0 +1,167 @@
+/*-- Lavaschuss --*/
+
+#strict
+
+/* Locals */
+
+local iAdvX, iVarX, // Bewegung / Abweichung X
+ iAdvY, iVarY; // Bewegung / Abweichung Y
+local pCaster;
+
+func Initialize() {
+ //Killtrace Effect
+ AddEffect("KillTraceHelper",this(),175,0,this(),GetID(this()));
+ }
+
+/* Aktivierung */
+
+public func Activate(iStartX, iStartY, iAdvanceX, iRandomX, iAdvanceY, iRandomY)
+{
+ // Startposition
+ AddVertex(iStartX,iStartY);
+ // Bewegungsverhalten
+ iAdvX=iAdvanceX; iVarX=iRandomX;
+ iAdvY=iAdvanceY; iVarY=iRandomY;
+ // Aktion setzen
+ SetAction("Advance");
+ // Geräusch
+ if (!Random(5)) Sound("Inflame");
+ return(1);
+}
+
+public func Launch(pClonk, iDir, iX, iY, iAngle)
+{
+ pCaster=pClonk;
+ var XDir;
+ XDir = Cos(iAngle, 10, 10);
+// if (iDir == DIR_Left()) XDir = -Cos(iAngle, 10, 10);
+// else (XDir = +Cos(iAngle, 10, 10));
+ Activate(iX, iY, XDir, 0, -Sin(iAngle, 10, 10));
+ return(1);
+}
+
+private func Timer()
+{
+
+ var i=0;
+ var pObject = FindObject(0,-2,-2,4,4,OCF_Inflammable);
+ if(pObject)
+ if(pObject != pCaster) {
+ //Nicht benötigt, macht Query Catch Blow
+ //if(GetEffect("KillSymbols",pObject)) SetKillSymbols(pObject,GetEffect("KillSymbols",pObject),DFLM,GetEffect("KillTraceHelper",this()));
+ Incinerate(pObject);
+ }
+ // Partikel-Effekt
+ while(i<GetVertexNum()-1)
+ {
+ DrawParticleLine ("LightningSpark", GetVertex(i)-GetX(), GetVertex(i, 1)-GetY(),
+ GetVertex(i+1)-GetX(), GetVertex(i+1,1)-GetY(), 6, 60, RGB(250,100,0));
+ DrawParticleLine ("LightningSpark", GetVertex(i)-GetX(), GetVertex(i, 1)-GetY(),
+ GetVertex(i+1)-GetX(), GetVertex(i+1,1)-GetY(), 3, 25, RGB(250,050,025));
+ i++;
+
+ //CreateParticle("PSpark", RandomX(-3,4), RandomX(-1,2), RandomX(-2,1), RandomX(-1,2), RandomX(10,20), RGB(250,020,010));
+ //CreateParticle("PSpark", RandomX(-3,3), RandomX(-2,2), RandomX(-2,2), RandomX(-2,2), RandomX(20,50), RGB(250,050,020));
+
+
+ }
+}
+
+/* Bewegung */
+
+private func Advance()
+{
+ // Einschlag
+ var iVtx = GetVertexNum()-1, iVtxX = GetVertex(iVtx, 0), iVtxY = GetVertex(iVtx, 1);
+ if (GBackSolid(iVtxX-GetX(), iVtxY-GetY() ))
+ return(Remove());
+
+ // Neuen Eckpunkt
+ if (!AddVertex( iVtxX+iAdvX+RandomX(-5,5), iVtxY+iAdvY+RandomX(-5,5)))
+ return(Remove());
+
+ SetPosition(GetVertex(GetVertexNum()), GetVertex(GetVertexNum(), 1));
+
+ // Im Wasser?
+ if (GBackLiquid(iVtxX-GetX(), iVtxY-GetY() ))
+ {
+ var obj;
+ // Alle Lebewesen in der Nähe bekommen was ab
+ while (obj = FindObject( 0, iVtxX-GetX()-400, iVtxY-GetY()-400, 800, 800, OCF_Alive(), 0,0, NoContainer(),obj ) )
+ {
+ if(!PathFree(iVtxX, iVtxY, GetX(obj), GetY(obj))) continue;
+ if(!GBackLiquid(GetX(obj)-GetX(), GetY(obj)-GetY())) continue;
+ obj->~LightningStrike();
+ Punch(obj, 20);
+ //Regelt Query Catch Blow
+ //if(GetEffect("KillSymbols",obj)) SetKillSymbols(obj,GetEffect("KillSymbols",obj),_LVS);
+
+
+ DrawParticleLine ("LightningSpark2", iVtxX-GetX(), iVtxY-GetY(),
+ GetX(obj)-GetX(), GetY(obj)-GetY(), 6, 60, RGB(255,010,055));
+ DrawParticleLine ("LightningSpark2", iVtxX-GetX(), iVtxY-GetY(),
+ GetX(obj)-GetX(), GetY(obj)-GetY(), 3, 25, RGB(250,050,055));
+ }
+ return(Remove());
+ }
+
+ // Objektanziehung
+ iVtx = GetVertexNum()-1; iVtxX = GetVertex(iVtx, 0); iVtxY = GetVertex(iVtx, 1);
+ var obj;
+ if (iVtx>7)
+ while (obj = FindObject( 0, iVtxX-GetX()-25, iVtxY-GetY()-25, 50, 50, OCF_Alive(), 0,0, NoContainer(),obj ) )
+ {
+ if(obj==pCaster) continue;
+ if(!PathFree(iVtxX, iVtxY, GetX(obj), GetY(obj))) continue;
+ Attraction(obj);
+ break;
+ }
+
+ Timer();
+ // Weiter
+ return();
+}
+
+/* Effekte */
+
+private func Sparkle()
+{
+ Timer();
+ var iVtx = GetVertexNum()-1, iVtxX = GetVertex(iVtx, 0), iVtxY = GetVertex(iVtx, 1);
+
+ return(1);
+}
+
+/* Anziehung */
+
+private func Attraction(obj)
+{
+ // Einschlag in Objekt
+ AddVertex( GetVertex(0,0,obj)+GetX(obj),
+ GetVertex(0,1,obj)+GetY(obj) );
+ obj->~LightningStrike();
+ SetAction("Connect");
+ Punch(obj, 20);
+ Incinerate(obj);
+ //Übernimmt QueryCatchBlow
+ //if(GetEffect("KillSymbols",obj)) SetKillSymbols(obj,GetEffect("KillSymbols",obj),_LVS,GetEffect("KillTraceHelper",this()));
+}
+
+/* Ende */
+
+private func Remove()
+{
+ var i=0;
+ // Nachleuchten
+ while(i<GetVertexNum()-1)
+ {
+ Explode(2,this());
+ DrawParticleLine ("Blast", GetVertex(i)-GetX(), GetVertex(i, 1)-GetY(),
+ GetVertex(i+1)-GetX(), GetVertex(i+1,1)-GetY(), 6, 60, RGB(255,100,000));
+ DrawParticleLine ("Blast", GetVertex(i)-GetX(), GetVertex(i, 1)-GetY(),
+ GetVertex(i+1)-GetX(), GetVertex(i+1,1)-GetY(), 3, 25, RGB(250,150,155));
+ i++;
+ }
+
+ RemoveObject();
+}
diff --git a/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Names.txt
new file mode 100644
index 0000000..20da19d
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/AdditionalSpells.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Extrazauber
+US:Additional Spells
diff --git a/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DefCore.txt
new file mode 100644
index 0000000..6b23cdb
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DefCore.txt
@@ -0,0 +1,17 @@
+[DefCore]
+id=TSWB
+Version=4,9,8
+Name=Snowball
+Category=C4D_Object
+Width=6
+Height=6
+Offset=-3,-3
+Vertices=4
+VertexX=2,-2,-2,2
+VertexY=2,-2,2,-2
+VertexFriction=100,100,100,100
+Mass=17
+Components=IICE=2
+Picture=6,0,32,32
+Collectible=1
+Fragile=1
diff --git a/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescDE.txt b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescDE.txt
new file mode 100644
index 0000000..c369562
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescDE.txt
@@ -0,0 +1 @@
+Eine leichte aber weitreichende Wurfwaffe, die aus Schnee ausgegraben werden kann.
diff --git a/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescUS.txt b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescUS.txt
new file mode 100644
index 0000000..81f5b9f
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/DescUS.txt
@@ -0,0 +1 @@
+A light throwing weapon shaped from snow. \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Graphics.png
new file mode 100644
index 0000000..431e6ff
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Names.txt
new file mode 100644
index 0000000..cc0cd4f
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Schneeball
+US:Snowball
diff --git a/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/ModSnowball.c4d/Script.c
new file mode 100644
index 0000000..aa90954
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/ModSnowball.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); }
diff --git a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c
index 0577e73..4b2fee5 100644
--- a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c
+++ b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/Script.c
@@ -3,7 +3,7 @@
#strict 2
static const
- SETTING_Deathmatch = 0, SETTING_Extinguisher = 1, SETTING_FriendlyPushing = 2, SETTING_RotateInJump = 3,
+ SETTING_Deathmatch = 0, SETTING_SuddenDeath = 1, SETTING_Extinguisher = 2, SETTING_RotateInJump = 3,
SETTING_RelaunchesInc = 4, SETTING_RelaunchesDec = 5,
SETTING_DeathmatchScoreInc = 6, SETTING_DeathmatchScoreDec = 7,
SETTING_Ambience = 8;
@@ -13,7 +13,7 @@ local clonk, setupPlayer;
// Selected values
local section, mode;
-local extinguisherEnabled, friendlyPushingEnabled, rotateInJumpEnabled;
+local extinguisherEnabled, suddendeathEnabled, rotateInJumpEnabled;
local ambienceEnabled;
local numRelaunches;
local deathmatchEnabled, deathmatchWinScore;
@@ -28,10 +28,11 @@ protected func Initialize()
section = Sections[0];
Modes = [
- [MODE_Classic, "$ModeClassic$", ROCK],
- [MODE_SuddenDeath, "$ModeSuddenDeath$", SDDT],
- [MODE_Magic, "$ModeMagic$", SMGC],
- [MODE_Apocalyptic, "$ModeApocalyptic$", APCE]];
+ [MODE_Classic, "$ModeClassic$", CLSC],
+ [MODE_Magic, "$ModeMagic$", MLPG],
+ [MODE_Knightly, "$ModeKnightly$", MKNI],
+ [MODE_Apocalyptic, "$ModeApocalyptic$", APCE],
+ [MODE_Festive, "$ModeFestive$", FSTV]];
}
private func ShowSetup()
@@ -70,13 +71,12 @@ private func ShowModeMenu()
CheckPreselect(m[0] == mode, menuItemIndex++);
}
- clonk->AddMenuItem("$Back$", "ShowSectionMenu()", ROCK);
+ clonk->AddMenuItem("$Back$", "ShowSectionMenu()", SBCK);
}
private func SelectMode(int selectedMode)
{
mode = selectedMode;
- if (mode == MODE_SuddenDeath) deathmatchEnabled = false;
ShowMessage();
ShowSettingsMenu();
@@ -89,20 +89,17 @@ private func ShowSettingsMenu(bool preselect, int selectedSetting)
var menuItemIndex = 0;
// Deathmatch entry
- if (mode != MODE_SuddenDeath)
- {
- AddOptionMenuItem(GetName(0, DTHM), deathmatchEnabled, "SelectSetting(SETTING_Deathmatch)", DTHM);
- CheckPreselect(preselect && selectedSetting == SETTING_Deathmatch, menuItemIndex++);
- }
-
+ AddOptionMenuItem(GetName(0, DTHM), deathmatchEnabled, "SelectSetting(SETTING_Deathmatch)", DTHM);
+ CheckPreselect(preselect && selectedSetting == SETTING_Deathmatch, menuItemIndex++);
+
+ // Sudden Death entry
+ AddOptionMenuItem(GetName(0, SDDT), suddendeathEnabled, "SelectSetting(SETTING_SuddenDeath)", SDDT);
+ CheckPreselect(preselect && selectedSetting == SETTING_SuddenDeath, menuItemIndex++);
+
// Extinguisher entry
AddOptionMenuItem(GetName(0, _ETG), extinguisherEnabled, "SelectSetting(SETTING_Extinguisher)", _ETG);
CheckPreselect(preselect && selectedSetting == SETTING_Extinguisher, menuItemIndex++);
-
- // "Friendly Pushing" entry
- AddOptionMenuItem(GetName(0, FYPG), friendlyPushingEnabled, "SelectSetting(SETTING_FriendlyPushing)", FYPG);
- CheckPreselect(preselect && selectedSetting == SETTING_FriendlyPushing, menuItemIndex++);
-
+
// "Turn in jump" entry
AddOptionMenuItem(GetName(0, RIJP), rotateInJumpEnabled, "SelectSetting(SETTING_RotateInJump)", RIJP);
CheckPreselect(preselect && selectedSetting == SETTING_RotateInJump, menuItemIndex++);
@@ -113,22 +110,22 @@ private func ShowSettingsMenu(bool preselect, int selectedSetting)
if (!deathmatchEnabled)
{
- clonk->AddMenuItem("$Relaunches$ +", "SelectSetting(SETTING_RelaunchesInc)", SKUL);
+ clonk->AddMenuItem("$Relaunches$ +", "SelectSetting(SETTING_RelaunchesInc)", SREL);
CheckPreselect(preselect && selectedSetting == SETTING_RelaunchesInc, menuItemIndex++);
- clonk->AddMenuItem("$Relaunches$ -", "SelectSetting(SETTING_RelaunchesDec)", SKUL);
+ clonk->AddMenuItem("$Relaunches$ -", "SelectSetting(SETTING_RelaunchesDec)", SREL);
CheckPreselect(preselect && selectedSetting == SETTING_RelaunchesDec, menuItemIndex++);
}
else
{
- clonk->AddMenuItem("$Kills$ +", "SelectSetting(SETTING_DeathmatchScoreInc)", SWOR);
+ clonk->AddMenuItem("$Kills$ +", "SelectSetting(SETTING_DeathmatchScoreInc)", SKIL);
CheckPreselect(preselect && selectedSetting == SETTING_DeathmatchScoreInc, menuItemIndex++);
- clonk->AddMenuItem("$Kills$ -", "SelectSetting(SETTING_DeathmatchScoreDec)", SWOR);
+ clonk->AddMenuItem("$Kills$ -", "SelectSetting(SETTING_DeathmatchScoreDec)", SKIL);
CheckPreselect(preselect && selectedSetting == SETTING_DeathmatchScoreDec, menuItemIndex++);
}
- clonk->AddMenuItem("$Done$", "SetupDone()", GOLD);
+ clonk->AddMenuItem("$Done$", "SetupDone()", SDNE);
CheckPreselect(!preselect, menuItemIndex++);
- clonk->AddMenuItem("$Back$", "ShowModeMenu()", ROCK);
+ clonk->AddMenuItem("$Back$", "ShowModeMenu()", SBCK);
}
private func SelectSetting(int selectedSetting)
@@ -137,13 +134,13 @@ private func SelectSetting(int selectedSetting)
{
deathmatchEnabled = !deathmatchEnabled;
}
- else if (selectedSetting == SETTING_Extinguisher)
+ else if (selectedSetting == SETTING_SuddenDeath)
{
- extinguisherEnabled = !extinguisherEnabled;
+ suddendeathEnabled = !suddendeathEnabled;
}
- else if (selectedSetting == SETTING_FriendlyPushing)
+ else if (selectedSetting == SETTING_Extinguisher)
{
- friendlyPushingEnabled = !friendlyPushingEnabled;
+ extinguisherEnabled = !extinguisherEnabled;
}
else if (selectedSetting == SETTING_RotateInJump)
{
@@ -212,7 +209,7 @@ private func ShowMessage() { Message("@%s", 0, GetMessage()); }
private func GetMessage()
{
- var msgSection = Format("$Landscape$: %s", GetName(0, section));
+ var msgSection = Format("$Landscape$: {{%i}} %s", section, GetName(0, section));
var msgMode;
for (var m in Modes)
@@ -227,17 +224,17 @@ private func GetMessage()
var msgWinScore;
if (!deathmatchEnabled)
{
- msgWinScore = Format("{{SKUL}} $Relaunches$: %d", numRelaunches);
+ msgWinScore = Format("{{SREL}} $Relaunches$: %d", numRelaunches);
}
else
{
- msgWinScore = Format("{{SWOR}} %s: %d $Kills$", GetName(0, DTHM), deathmatchWinScore);
+ msgWinScore = Format("{{SKIL}} %s: %d $Kills$", GetName(0, DTHM), deathmatchWinScore);
}
var msgExtinguisher = Format("{{_ETG}} %s: %s", GetName(0, _ETG), IIf(extinguisherEnabled, "$Enabled$", "$Disabled$"));
- var msgFriendlyPushing = Format("{{FYPG}} %s: %s", GetName(0, FYPG), IIf(friendlyPushingEnabled, "$Enabled$", "$Disabled$"));
+ var msgSuddenDeath = Format("{{SDDT}} %s: %s", GetName(0, SDDT), IIf(suddendeathEnabled, "$Enabled$", "$Disabled$"));
var msgRotateInJump = Format("{{RIJP}} %s: %s", GetName(0, RIJP), IIf(rotateInJumpEnabled, "$Enabled$", "$Disabled$"));
var msgAmbience = Format("{{SABC}} $Ambience$: %s", IIf(ambienceEnabled, "$Enabled$", "$Disabled$"));
- return Format("%s|%s|%s|%s|%s|%s|%s", msgSection, msgMode, msgWinScore, msgExtinguisher, msgFriendlyPushing, msgRotateInJump, msgAmbience);
+ return Format("%s|%s|%s|%s|%s|%s|%s", msgSection, msgMode, msgWinScore, msgExtinguisher, msgSuddenDeath, msgRotateInJump, msgAmbience);
} \ No newline at end of file
diff --git a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblDE.txt b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblDE.txt
index bd28a61..bca11b8 100644
--- a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblDE.txt
+++ b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblDE.txt
@@ -1,13 +1,13 @@
-ModeClassic=Klassisches Schubsen
-ModeSuddenDeath=<c ffff00>Sudden Death</c>
-ModeMagic=<c 0000ff>Magisches Schubsen</c>
-ModeApocalyptic=<c ff0000>Apokalyptisches Schubsen</c>
+ModeClassic=<c e6b800>Klassisch</c>
+ModeMagic=<c 4700b2>Magisch</c>
+ModeKnightly=<c 99ff66>Mittelalterlich</c>
+ModeApocalyptic=<c b20000>Apokalyptisch</c>
+ModeFestive=<c f0ffff>Winterlich</c>
Back=Zurück
Done=Fertig
Relaunches=Relaunches
Kills=Kills
-SectionClassic=Klassisch
-Landscape=Landschaft
+Landscape=Sektion
Mode=Modus
Enabled=Aktiviert
Disabled=Deaktiviert
diff --git a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblUS.txt b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblUS.txt
index cd1f9c1..fc24d29 100644
--- a/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblUS.txt
+++ b/TemplePushing.c4s/Misc.c4d/SetupMenu.c4d/StringTblUS.txt
@@ -1,13 +1,13 @@
-ModeClassic=Classic Pushing
-ModeSuddenDeath=<c ffff00>Sudden Death</c>
-ModeMagic=<c 0000ff>Magical Pushing</c>
-ModeApocalyptic=<c ff0000>Apocalyptical Pushing</c>
+ModeClassic=<c e6b800>Classic</c>
+ModeMagic=<c 4700b2>Magical</c>
+ModeKnightly=<c 99ff66>Medieval</c>
+ModeApocalyptic=<c b20000>Apocalyptical</c>
+ModeFestive=<c f0ffff >Winterly</c>
Back=Back
Done=Done
Relaunches=Relaunches
Kills=Kills
-SectionClassic=Classic
-Landscape=Landscape
+Landscape=Section
Mode=Mode
Enabled=Enabled
Disabled=Disabled
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/DefCore.txt
new file mode 100644
index 0000000..a787540
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/DefCore.txt
@@ -0,0 +1,6 @@
+[DefCore]
+id=SBCK
+Name=SymbolBack
+Version=4,9,5
+Category=C4D_StaticBack
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Graphics.png
new file mode 100644
index 0000000..6962715
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Names.txt
new file mode 100644
index 0000000..dac0462
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Back.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Zurück
+US:Back
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/DefCore.txt
new file mode 100644
index 0000000..8be962d
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/DefCore.txt
@@ -0,0 +1,6 @@
+[DefCore]
+id=SDNE
+Name=SymbolDone
+Version=4,9,5
+Category=C4D_StaticBack
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Graphics.png
new file mode 100644
index 0000000..6b1e72c
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Names.txt
new file mode 100644
index 0000000..c269c1e
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Done.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Fertig
+US:Done
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/DefCore.txt
new file mode 100644
index 0000000..5d0200a
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/DefCore.txt
@@ -0,0 +1,6 @@
+[DefCore]
+id=SKIL
+Name=SymbolForKill
+Version=4,9,5
+Category=C4D_StaticBack
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Graphics.png
new file mode 100644
index 0000000..ce75ea1
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Names.txt
new file mode 100644
index 0000000..261742e
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Kill.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Relaunch
+US:Relaunch
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/DefCore.txt
new file mode 100644
index 0000000..de0a9a1
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/DefCore.txt
@@ -0,0 +1,6 @@
+[DefCore]
+id=SREL
+Name=SymbolForRelaunch
+Version=4,9,5
+Category=C4D_StaticBack
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Graphics.png
new file mode 100644
index 0000000..70c091a
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Names.txt
new file mode 100644
index 0000000..261742e
--- /dev/null
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Relaunch.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Relaunch
+US:Relaunch
diff --git a/TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/DefCore.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/DefCore.txt
index 8668e4b..8668e4b 100644
--- a/TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/DefCore.txt
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/DefCore.txt
diff --git a/TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/Graphics.png b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/Graphics.png
index bcce561..bcce561 100644
--- a/TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/Graphics.png
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/Names.txt b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/Names.txt
index cdbcf76..cdbcf76 100644
--- a/TemplePushing.c4s/Misc.c4d/TeamSymbols.c4d/Names.txt
+++ b/TemplePushing.c4s/Misc.c4d/Symbols.c4d/Teams.c4d/Names.txt
diff --git a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DefCore.txt b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DefCore.txt
index dc029af..dc029af 100644
--- a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DefCore.txt
+++ b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DefCore.txt
diff --git a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DescDE.txt b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DescDE.txt
index 907f5df..907f5df 100644
--- a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DescDE.txt
+++ b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DescDE.txt
diff --git a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DescUS.txt b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DescUS.txt
index e803d8b..e803d8b 100644
--- a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/DescUS.txt
+++ b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/DescUS.txt
diff --git a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Graphics.png b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Graphics.png
index c40dbad..c40dbad 100644
--- a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Graphics.png
+++ b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Names.txt b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Names.txt
index d5f8556..d5f8556 100644
--- a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Names.txt
+++ b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Names.txt
diff --git a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Script.c b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Script.c
index 1ff7e74..508577a 100644
--- a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Script.c
+++ b/TemplePushing.c4s/Modes.c4d/ApocalypticPushing.c4d/Script.c
@@ -1,4 +1,4 @@
-/*-- Magical Pushing --*/
+/*-- Apocalyptic --*/
#strict 2
diff --git a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DefCore.txt b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DefCore.txt
index 8caa63b..a522ab5 100644
--- a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DefCore.txt
+++ b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DefCore.txt
@@ -1,7 +1,7 @@
[DefCore]
-id=FYPG
-Version=4,9,8
-Name=Friendly Pushing
+id=CLSC
+Name=Classic
+Version=4,9,5
Category=C4D_StaticBack|C4D_Rule
Width=1
Height=1
diff --git a/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescDE.txt b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescDE.txt
new file mode 100644
index 0000000..e6ed61d
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Klassisches „Klippenschubsen“.
diff --git a/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescUS.txt b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescUS.txt
new file mode 100644
index 0000000..122b976
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Classic „Cliff Pushing“.
diff --git a/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Graphics.png b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Graphics.png
new file mode 100644
index 0000000..2f3f345
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Names.txt b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Names.txt
new file mode 100644
index 0000000..b51e7b6
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Klassisch
+US:Classic
diff --git a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Script.c b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Script.c
index 2eee807..e7b98b4 100644
--- a/TemplePushing.c4s/Rules.c4d/Apocalypse.c4d/Script.c
+++ b/TemplePushing.c4s/Modes.c4d/ClassicPushing.c4d/Script.c
@@ -1,4 +1,4 @@
-/*-- Apocalypse --*/
+/*-- Classic --*/
#strict 2
diff --git a/TemplePushing.c4s/Modes.c4d/DescDE.txt b/TemplePushing.c4s/Modes.c4d/DescDE.txt
new file mode 100644
index 0000000..8c19b76
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/DescDE.txt
@@ -0,0 +1 @@
+Die Modi legen den grundsätzlichen Spielablauf fest.
diff --git a/TemplePushing.c4s/Modes.c4d/DescUS.txt b/TemplePushing.c4s/Modes.c4d/DescUS.txt
new file mode 100644
index 0000000..dc80640
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/DescUS.txt
@@ -0,0 +1 @@
+The game modes establish basic rules and functionalities of the game.
diff --git a/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DefCore.txt b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DefCore.txt
new file mode 100644
index 0000000..7009aec
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=FSTV
+Version=4,9,8
+Name=FestivePushing
+Category=C4D_StaticBack
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescDE.txt b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescDE.txt
new file mode 100644
index 0000000..2f22510
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Schneeballschlachten auf Tempelruinen? Unsinn.
diff --git a/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescUS.txt b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescUS.txt
new file mode 100644
index 0000000..f4c2fad
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Instead of traditional weaponry, you recieve festive killing tools.
diff --git a/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Graphics.png b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Graphics.png
new file mode 100644
index 0000000..942a688
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Names.txt b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Names.txt
new file mode 100644
index 0000000..dd97002
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Festliches Schubsen
+US:Festive Pushing
diff --git a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Script.c b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Script.c
index 5e1233e..db6da20 100644
--- a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Script.c
+++ b/TemplePushing.c4s/Modes.c4d/FestivePushing.c4d/Script.c
@@ -1,4 +1,4 @@
-/*-- Friendly Pushing --*/
+/*-- Festive --*/
#strict 2
diff --git a/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DefCore.txt b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DefCore.txt
new file mode 100644
index 0000000..a25e551
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=MKNI
+Version=4,9,8
+Name=KnightlyPushing
+Category=C4D_StaticBack
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescDE.txt b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescDE.txt
new file mode 100644
index 0000000..cb214af
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Anstatt der üblichen Waffen kommen in diesem Modus eher mittelalterliche Tötungsutensilien ins Spiel.
diff --git a/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescUS.txt b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescUS.txt
new file mode 100644
index 0000000..1d780af
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Medieval weapons, enemies and narrow landscapes – what's not to love?
diff --git a/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Graphics.png b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Graphics.png
new file mode 100644
index 0000000..dbcf80d
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Names.txt b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Names.txt
new file mode 100644
index 0000000..7ceb54b
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Ritterliches Schubsen
+US:Knightly Pushing
diff --git a/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Script.c b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Script.c
new file mode 100644
index 0000000..d7bff28
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/KnightlyPushing.c4d/Script.c
@@ -0,0 +1,5 @@
+/*-- Knightly --*/
+
+#strict 2
+
+protected func Activate(int player) { MessageWindow(GetDesc(), player); }
diff --git a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DefCore.txt b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DefCore.txt
index fc00032..fc00032 100644
--- a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DefCore.txt
+++ b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DefCore.txt
diff --git a/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescDE.txt b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescDE.txt
new file mode 100644
index 0000000..7c88e6b
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescDE.txt
@@ -0,0 +1 @@
+Anstatt der üblichen Gegenstände erscheinen nur Schriftrollen.
diff --git a/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescUS.txt b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescUS.txt
new file mode 100644
index 0000000..aa405b3
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/DescUS.txt
@@ -0,0 +1 @@
+Spawnpoints only spawn scrolls.
diff --git a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Graphics.png b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Graphics.png
index 351d65c..351d65c 100644
--- a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Graphics.png
+++ b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Names.txt b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Names.txt
index 8e9cb1f..8e9cb1f 100644
--- a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/Names.txt
+++ b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Names.txt
diff --git a/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Script.c b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Script.c
new file mode 100644
index 0000000..3b6d66b
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/MagicalPushing.c4d/Script.c
@@ -0,0 +1,5 @@
+/*-- Magical --*/
+
+#strict 2
+
+protected func Activate(int player) { MessageWindow(GetDesc(), player); }
diff --git a/TemplePushing.c4s/Modes.c4d/Names.txt b/TemplePushing.c4s/Modes.c4d/Names.txt
new file mode 100644
index 0000000..5e32682
--- /dev/null
+++ b/TemplePushing.c4s/Modes.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Spielmodi
+US:Game modes
diff --git a/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblDE.txt b/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblDE.txt
index 7934d6d..90cc9e2 100644
--- a/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblDE.txt
+++ b/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblDE.txt
@@ -1 +1,2 @@
-InfoMessage=Das Team, das zuerst %d Gegner tötet, gewinnt. \ No newline at end of file
+InfoMessage=Das Team, das zuerst %d Gegner tötet, gewinnt.
+Win=Sieg
diff --git a/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblUS.txt b/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblUS.txt
index 12fd314..939cc92 100644
--- a/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblUS.txt
+++ b/TemplePushing.c4s/Rules.c4d/Deathmatch.c4d/StringTblUS.txt
@@ -1 +1,2 @@
-InfoMessage=The team that kills %d enemies first wins the game. \ No newline at end of file
+InfoMessage=The team that kills %d enemies first wins the game.
+Win=Win
diff --git a/TemplePushing.c4s/Rules.c4d/DescDE.txt b/TemplePushing.c4s/Rules.c4d/DescDE.txt
index bf4504d..7057a2b 100644
--- a/TemplePushing.c4s/Rules.c4d/DescDE.txt
+++ b/TemplePushing.c4s/Rules.c4d/DescDE.txt
@@ -1 +1 @@
-Regelobjekte bestimmen den Spielablauf und bieten in Einzelfällen Sonderoptionen. \ No newline at end of file
+Die Regelobjekte modifizieren das Spielerlebnis, indem sie Handicaps oder Hilfen festlegen.
diff --git a/TemplePushing.c4s/Rules.c4d/DescUS.txt b/TemplePushing.c4s/Rules.c4d/DescUS.txt
index 022d0bf..1ff9f2f 100644
--- a/TemplePushing.c4s/Rules.c4d/DescUS.txt
+++ b/TemplePushing.c4s/Rules.c4d/DescUS.txt
@@ -1 +1 @@
-Rule objects affect general game play and in some cases offer special options. \ No newline at end of file
+Rule objects affect the gameplay by introducing handicaps or benefiting the players.
diff --git a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescDE.txt b/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescDE.txt
deleted file mode 100644
index 729840e..0000000
--- a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescDE.txt
+++ /dev/null
@@ -1 +0,0 @@
-Clonks können befreundete Spieler schubsen \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescUS.txt b/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescUS.txt
deleted file mode 100644
index 6b5d08d..0000000
--- a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/DescUS.txt
+++ /dev/null
@@ -1 +0,0 @@
-Clonks can push allied players. \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Graphics.png b/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Graphics.png
deleted file mode 100644
index d97f792..0000000
--- a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Graphics.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Names.txt b/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Names.txt
deleted file mode 100644
index 34d3e41..0000000
--- a/TemplePushing.c4s/Rules.c4d/FriendlyPushing.c4d/Names.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-DE:Teamschubsen
-US:Friendly Pushing \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescDE.txt b/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescDE.txt
deleted file mode 100644
index e8257be..0000000
--- a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescDE.txt
+++ /dev/null
@@ -1 +0,0 @@
-Anstatt Gegenständen erscheinen nur Schriftrollen \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescUS.txt b/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescUS.txt
deleted file mode 100644
index f2b1ba6..0000000
--- a/TemplePushing.c4s/Rules.c4d/MagicalPushing.c4d/DescUS.txt
+++ /dev/null
@@ -1 +0,0 @@
-Instead of objects spawnpoints contents just scrolls \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DefCore.txt b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DefCore.txt
new file mode 100644
index 0000000..5214919
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DefCore.txt
@@ -0,0 +1,11 @@
+[DefCore]
+id=OFDR
+Version=4,9,9,9
+Name=Out Fader
+Category=C4D_StaticBack|C4D_Rule
+MaxUserSelect=1
+Width=1
+Height=1
+Picture=0,0,64,64
+TimerCall=Fading
+Timer=50 \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescDE.txt b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescDE.txt
new file mode 100644
index 0000000..fe94ed8
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescDE.txt
@@ -0,0 +1 @@
+Gegenstände die eine Weile in der Gegend herumliegen verschwinden automatisch langsam. \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescUS.txt b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescUS.txt
new file mode 100644
index 0000000..1f5c6b1
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/DescUS.txt
@@ -0,0 +1 @@
+Removes items that are to long in the landscape to clean the map \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Graphics.png b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Graphics.png
new file mode 100644
index 0000000..29742c3
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Names.txt b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Names.txt
new file mode 100644
index 0000000..c840810
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Keine herumliegenden Gegenstände
+US:No useless items \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Script.c b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Script.c
new file mode 100644
index 0000000..9bd1dea
--- /dev/null
+++ b/TemplePushing.c4s/Rules.c4d/OutFader.c4d/Script.c
@@ -0,0 +1,78 @@
+/*-- Out-Fader --*/
+
+#strict 2
+
+protected func Activate(iByPlayer)
+{
+ MessageWindow(GetDesc(), iByPlayer);
+ return(1);
+}
+
+func Fading(iPlr)
+{
+ for (var obj in FindObjects(Find_OCF(OCF_InFree | OCF_InSolid | OCF_InLiquid),Find_Category(C4D_Object | C4D_Living)))
+ if (!ImportantID(GetID(obj)))
+ {
+ if (GetAction(obj)=="Idle")
+ {
+ // Object owned by anyone?
+ if (GetOwner(obj)==-1) FadeOut(obj,2);
+ else FadeOut(obj,3);
+ }
+ else if (GetAction(obj)=="Dead" && !GetAlive())
+ {
+ if (GetOwner(obj)==-1) FadeOut(obj,1);
+ else FadeOut(obj,5);
+ }
+ else if (GetAction(obj)=="Be")
+ {
+ if (GetOwner(obj)==-1) FadeOut(obj,2);
+ else FadeOut(obj,3);
+ }
+ else if (GetAction(obj)=="None")
+ {
+ if (GetOwner(obj)==-1) FadeOut(obj,1);
+ else FadeOut(obj,1);
+ }
+ else if (GetAction(obj)=="Exist")
+ {
+ if (GetOwner(obj)==-1) FadeOut(obj,2);
+ else FadeOut(obj,3);
+ }
+ }
+ return(1);
+}
+
+
+global func FadeOut(pObj,iTime)
+{
+ if (!iTime) iTime=2;
+ if (!pObj) pObj=this;
+ if (GetEffect("FadeOut",pObj)) return(0);
+ AddEffect("FadeOut",pObj,200,iTime,0,OFDR);
+ return(1);
+}
+
+func FxFadeOutStart(pTarget,iEffectNumber)
+{
+ EffectVar(0,pTarget,iEffectNumber)=255;
+ return(1);
+}
+
+func FxFadeOutStop(pTarget,iEffectNumber)
+{
+ SetClrModulation(RGBa(255,255,255),pTarget);
+ return(1);
+}
+
+func FxFadeOutTimer(pTarget,iEffectNumber)
+{
+ if (!pTarget) return(-1);
+ if (Contained(pTarget)) return(-1);
+ EffectVar(0,pTarget,iEffectNumber)--;
+ if (!EffectVar(0,pTarget,iEffectNumber)) RemoveObject(pTarget);
+ SetClrModulation(RGBa(255,255,255,255-EffectVar(0,pTarget,iEffectNumber)),pTarget);
+ return(1);
+}
+
+global func ImportantID(idObj) { return 0; } \ No newline at end of file
diff --git a/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescDE.txt b/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescDE.txt
index 51022ea..da976f3 100644
--- a/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescDE.txt
+++ b/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescDE.txt
@@ -1 +1 @@
-Jeder Treffer ist fatal; Spawnpoints spawnen nur Steine. \ No newline at end of file
+Jeder Treffer ist fatal.
diff --git a/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescUS.txt b/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescUS.txt
index 5b266ce..012484e 100644
--- a/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescUS.txt
+++ b/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/DescUS.txt
@@ -1 +1 @@
-Every hit is fatal; Spawnpoints only spawn rocks. \ No newline at end of file
+Every hit is fatal.
diff --git a/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/Script.c b/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/Script.c
index d406c12..5765aea 100644
--- a/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/Script.c
+++ b/TemplePushing.c4s/Rules.c4d/SuddenDeath.c4d/Script.c
@@ -1,8 +1,6 @@
-/*-- Neues Objekt --*/
+/*-- Sudden Death --*/
-#strict
+#strict 2
+
+protected func Activate(int player) { MessageWindow(GetDesc(), player); }
-func Initialize() {
-
- return(1);
-}
diff --git a/TemplePushing.c4s/Scenario.txt b/TemplePushing.c4s/Scenario.txt
index 8812ac7..36923ea 100644
--- a/TemplePushing.c4s/Scenario.txt
+++ b/TemplePushing.c4s/Scenario.txt
@@ -1,6 +1,6 @@
[Head]
Icon=27
-Title=TemplePush v6.1.7601.18409
+Title=Temple Pushing r0.741b
MaxPlayer=8
[Definitions]
@@ -11,6 +11,9 @@ Definition4=Western.c4d\Magic.c4d\Flint.c4d
Definition5=Worlds.c4f\FoggyCliffs.c4s\Fog.c4d
Definition6=Worlds.c4f\Desert.c4s\Lenseflare.c4d
Definition7=Worlds.c4f\Desert.c4s\Sonne.c4d
+Definition8=Western.c4f\Misc.c4d\Waterfall.c4d
+Definition9=Western.c4f\Misc.c4d\Lavafall.c4d
+Definition10=Western.c4d\Magic.c4d\Plague.c4d
[Game]
StructNeedEnergy=0
diff --git a/TemplePushing.c4s/Script.c b/TemplePushing.c4s/Script.c
index 7c0b225..ea02517 100644
--- a/TemplePushing.c4s/Script.c
+++ b/TemplePushing.c4s/Script.c
@@ -1,80 +1,131 @@
-/*-- Klippenschubsen --*/
+/*-- Temple Pushing --*/
#strict 2
-static const MODE_Classic = 0, MODE_SuddenDeath = 1, MODE_Magic = 2, MODE_Apocalyptic = 3;
+static const MODE_Classic = 0, MODE_Magic = 1, MODE_Festive = 2, MODE_Apocalyptic = 3, MODE_Knightly = 4;
+static const SBRD_ScoreCol = 0, SBRD_RelaunchesCol = 1;
+static const MaxTeamCount = 2;
static section, mode;
static numRelaunches;
static deathmatchEnabled, deathmatchWinScore;
static playerDeaths, playerScore, teamScore;
static ambienceEnabled;
+static suddendeathEnabled;
static loadingSection;
static gameStartMessage, countdown, gameStarted, gameOver;
func Initialize()
{
ShowLobby();
+
+ // Create Thrones for recreational purposes...
+ CreateObject(THRN, 590, 420, NO_OWNER);
+ CreateObject(THRN, 470, 210, NO_OWNER);
// Initial values
deathmatchWinScore = 20;
playerDeaths = CreateArray();
playerScore = CreateArray();
teamScore = CreateArray();
- countdown = 5;
+ countdown = 3;
// Create setup menu
var menu = CreateObject(SPMU, 0, 0, NO_OWNER);
menu->LocalN("extinguisherEnabled") = false;
menu->LocalN("rotateInJumpEnabled") = true;
menu->LocalN("numRelaunches") = 10;
- menu->LocalN("deathmatchWinScore") = 25;
+ menu->LocalN("deathmatchWinScore") = 20;
menu->LocalN("ambienceEnabled") = true;
ScriptGo(true);
}
-func TeamRow(int team) { return 1 + team * 1000; }
-func PlayerRow(int player) { return TeamRow(GetPlayerTeam(player)) + GetPlayerID(player); }
+/*func TeamRow(int team) { return 1 + team * 1000; }
+func PlayerRow(int player) { return TeamRow(GetPlayerTeam(player)) + GetPlayerID(player); }*/
+func TeamRow(int team) { return team; }
+func PlayerRow(int player) { return MaxTeamCount + 1 + GetPlayerID(player); }
func InitializePlayer(int player)
{
- if (LobbyActive()) return;
+ SetFoW(false, player);
- var team = GetPlayerTeam(player);
+ if (LobbyActive()) return;
+
playerDeaths[GetPlayerID(player)] = 0;
- if (team) SetScoreboardData(TeamRow(team), SBRD_Caption, Format("<c %x>%s</c>", GetTeamColor(team), GetTeamName(team)), TeamRow(team));
- SetScoreboardData(PlayerRow(player), SBRD_Caption, GetTaggedPlayerName(player), PlayerRow(player));
+ if (deathmatchEnabled)
+ {
+ var team = GetPlayerTeam(player);
+ if (team)
+ {
+ SetScoreboardData(TeamRow(team), SBRD_Caption, Format("<c %x>Team %s</c>", GetTeamColor(team), GetTeamName(team)), 0);
+ }
+ }
+ SetScoreboardData(PlayerRow(player), SBRD_Caption, GetTaggedPlayerName(player), 1);
UpdateScoreboard(player);
- SortScoreboard(SBRD_Caption);
LaunchClonk(player, GetCrew(player));
}
+func GetRelaunchesLeft(int player) { return numRelaunches - playerDeaths[GetPlayerID(player)]; }
+
func RemovePlayer(int player)
{
- if (!LobbyActive())
+ // Leaver?
+ if (!LobbyActive() && (!deathmatchEnabled && GetRelaunchesLeft(player) >= 0 || deathmatchEnabled && !gameOver))
{
- // Leaver?
- var relaunchesLeft = numRelaunches - playerDeaths[GetPlayerID(player)];
- if (!deathmatchEnabled && relaunchesLeft >= 0 || deathmatchEnabled && !gameOver) SetScoreboardData(PlayerRow(player), 0, "{{SLVR}}");
+ UpdateScoreboard(player, true);
}
}
-func UpdateScoreboard(int player)
+func UpdateScoreboard(int player, bool leaver)
{
- if (!GetPlayerID(player)) return;
+ var playerID = GetPlayerID(player);
+ var text;
- if (!deathmatchEnabled)
+ // Ignore invalid player numbers
+ if (!playerID) return;
+
+ // Deathmatch only: Team rows
+ if (deathmatchEnabled)
{
- var relaunchesLeft = numRelaunches - playerDeaths[GetPlayerID(player)];
- SetScoreboardData(PlayerRow(player), 0, Format("%d", IIf(relaunchesLeft < 0, "{{SKUL}}", relaunchesLeft)));
+ var team = GetPlayerTeam(player);
+ if (team)
+ {
+ if (teamScore[team] == deathmatchWinScore)
+ text = "<c 00ff00>$Win$</c>";
+ else
+ text = Format("<c %x>%d</c>", GetTeamColor(team), teamScore[team]);
+
+ SetScoreboardData(TeamRow(team), SBRD_ScoreCol, text, teamScore[team]);
+ }
}
+
+ // Normal and deathmatch mode: Show score
+ if (leaver)
+ text = "{{SLVR}}";
else
+ text = Format("%d", playerScore[playerID]);
+
+ SetScoreboardData(PlayerRow(player), SBRD_ScoreCol, text, playerScore[playerID]);
+
+ // Normal mode only: Show remaining relaunches
+ if (!deathmatchEnabled)
{
- SetScoreboardData(PlayerRow(player), 0, Format("%d", playerScore[GetPlayerID(player)]));
- var team = GetPlayerTeam(player);
- if (team) SetScoreboardData(TeamRow(team), 0, Format("%d", teamScore[team]));
+ var relaunchesLeft = numRelaunches - playerDeaths[playerID];
+ if (relaunchesLeft < 0)
+ text = "$Death$";
+ else if (leaver)
+ text = "{{SLVR}}";
+ else
+ text = Format("%d", relaunchesLeft);
+
+ SetScoreboardData(PlayerRow(player), SBRD_RelaunchesCol, text, relaunchesLeft);
}
+
+ // Sort rows
+ SortScoreboard(SBRD_ScoreCol, true);
+ if (!deathmatchEnabled) SortScoreboard(SBRD_RelaunchesCol, true);
+ SortScoreboard(SBRD_Caption);
}
func ShowLobby()
@@ -88,7 +139,7 @@ func StartGame(object menu, string message)
var sectionID = menu->LocalN("section");
mode = menu->LocalN("mode");
var extinguisherEnabled = menu->LocalN("extinguisherEnabled");
- var friendlyPushingEnabled = menu->LocalN("friendlyPushingEnabled");
+ var suddendeathEnabled = menu->LocalN("suddendeathEnabled");
var rotateInJumpEnabled = menu->LocalN("rotateInJumpEnabled");
ambienceEnabled = menu->LocalN("ambienceEnabled");
numRelaunches = menu->LocalN("numRelaunches");
@@ -98,29 +149,39 @@ func StartGame(object menu, string message)
// Change scenario section
loadingSection = true;
- //Log("Before LoadScenarioSection()");
+ Log("Before LoadScenarioSection()");
LoadScenarioSection(DefinitionCall(sectionID, "SectionName"));
- //Log("After LoadScenarioSection()");
+ Log("After LoadScenarioSection()");
loadingSection = false;
section = CreateObject(sectionID, 0, 0, NO_OWNER);
// Create spawnpoints
if (mode != MODE_Apocalyptic)
{
- //Log("Creating spawnpoints");
+ Log("Creating spawnpoints");
var spawnPointSpawner = CreateObject(SPSR, 0, 0, NO_OWNER);
spawnPointSpawner->SetLocations(section->SpawnpointLocations());
- if (mode != MODE_Magic)
+ if (mode == MODE_Classic)
{
- spawnPointSpawner->SetDefinitions([[ROCK, 9], [SCRL, 9], [FLNT, 9], [SFLN, 9], [STFN, 4], [EFLN, 4], [FBMP, 4]]);
- spawnPointSpawner->SetSpawnInterval(750);
+ spawnPointSpawner->SetDefinitions([[ROCK, 7], [SCRL, 5], [FLNT, 7], [SFLN, 9], [STFN, 3], [EFLN, 5], [FBMP, 4], [ARWP, 4]]);
+ spawnPointSpawner->SetSpawnInterval(900);
}
- else
+ if (mode == MODE_Festive)
{
- spawnPointSpawner->SetDefinitions([[SCRL, 14], [GBLT, 1]]);
+ spawnPointSpawner->SetDefinitions([[TSWB,5], [SCRL, 5], [ROCK, 1]]);
+ spawnPointSpawner->SetSpawnInterval(600);
+ }
+ if (mode == MODE_Knightly)
+ {
+ spawnPointSpawner->SetDefinitions([[SFLN, 3], [EFLN,3], [SWOR, 5], [AXE1, 5], [SPER, 2], [ARWP, 5], [SCRL, 5], [FARP, 3]]);
spawnPointSpawner->SetSpawnInterval(1000);
+ }
+ if (mode == MODE_Magic)
+ {
+ spawnPointSpawner->SetDefinitions([[SCRL, 14], [GBLT, 1]]);
+ spawnPointSpawner->SetSpawnInterval(750);
spawnPointSpawner->SetSpawnpointGamma(RGB(5, 5, 10), RGB(80, 80, 150), RGB(200, 200, 255));
}
spawnPointSpawner->CreateSpawnPoints();
@@ -136,25 +197,32 @@ func StartGame(object menu, string message)
}
// Create melee goal
- //Log("Creating melee goal");
+ Log("Creating melee goal");
CreateObject(MELE, 0, 0, NO_OWNER);
// Create rules
- //Log("Creating rules");
+ Log("Creating rules");
if (extinguisherEnabled) CreateObject(_ETG, 0, 0, NO_OWNER);
- if (friendlyPushingEnabled) CreateObject(FYPG, 0, 0, NO_OWNER);
+ if (suddendeathEnabled) CreateObject(SDDT, 0, 0, NO_OWNER);
if (rotateInJumpEnabled) CreateObject(RIJP, 0, 0, NO_OWNER);
+ CreateObject(OFDR, 0, 0, NO_OWNER);
+
- //Log("Creating mode rules");
- if (mode == MODE_SuddenDeath)
+
+ // Create mode objects
+ if (mode == MODE_Magic)
{
- CreateObject(SDDT, 0, 0, NO_OWNER);
+ CreateObject(MLPG, 0, 0, NO_OWNER);
}
- else if (mode == MODE_Magic)
+ if (mode == MODE_Festive)
{
- CreateObject(MLPG, 0, 0, NO_OWNER);
+ CreateObject(FSTV, 0, 0, NO_OWNER);
}
- else if (mode == MODE_Apocalyptic)
+ if (mode == MODE_Knightly)
+ {
+ CreateObject(MKNI, 0, 0, NO_OWNER);
+ }
+ if (mode == MODE_Apocalyptic)
{
CreateObject(APCE, 0, 0, NO_OWNER);
}
@@ -162,29 +230,30 @@ func StartGame(object menu, string message)
// Deathmatch?
if (deathmatchEnabled)
{
- //Log("Creating deathmatch rule");
+ Log("Creating deathmatch rule");
CreateObject(DTHM, 0, 0, NO_OWNER);
- SetScoreboardData(SBRD_Caption, 0, "{{DTHM}}");
+ SetScoreboardData(SBRD_Caption, 0, "{{SKIL}}");
SetScoreboardData(0, SBRD_Caption, "$WinScore$");
- SetScoreboardData(0, 0, Format("%d", deathmatchWinScore));
+ SetScoreboardData(0, 0, Format("%d $Kills$", deathmatchWinScore));
}
else
{
- SetScoreboardData(SBRD_Caption, 0, "{{SKUL}}");
+ SetScoreboardData(SBRD_Caption, 0, "{{SREL}}");
+ SetScoreboardData(SBRD_Caption, 1, "{{SKIL}}");
}
// Initialize players
- //Log("Initializing players");
+ Log("Initializing players");
for (var i = 0; i < GetPlayerCount(); ++i)
{
InitializePlayer(GetPlayerByIndex(i));
}
- //Log("Starting countdown");
+ Log("Starting countdown");
gameStartMessage = message;
ShowCountdown();
- //Log("StartGame() done");
+ Log("StartGame() done");
}
func ShowCountdown()
@@ -238,7 +307,7 @@ func HandleKill(int killed, int killer)
var killedEliminated = false;
var killedID = GetPlayerID(killed), killerID = GetPlayerID(killer);
var killedTeam = GetPlayerTeam(killed), killerTeam = GetPlayerTeam(killer);
- var teamKill = killer == killed || killedTeam != 0 && killedTeam == killerTeam;
+ var teamKill = killedTeam != 0 && killedTeam == killerTeam;
++playerDeaths[killedID];
@@ -248,9 +317,9 @@ func HandleKill(int killed, int killer)
++playerScore[killerID];
if (killerTeam) ++teamScore[killerTeam];
}
- else // Decrement score on suicide or team kill
+ else if (teamKill && killed != killer) // Decrement score if it's a team kill but not a suicide
{
- if (playerScore[killerID] > 0)
+ if (playerScore[killerID] > 0) // Prevent negative scores
{
--playerScore[killerID];
if (killerTeam) --teamScore[killerTeam];
@@ -295,6 +364,7 @@ func HandleKill(int killed, int killer)
{
if (GetPlayerTeam(player) != killerTeam) EliminatePlayer(player);
}
+ Message(Format("$MsgDeathmatchWin$", GetTeamColor(killerTeam), GetTeamName(killerTeam)));
gameOver = true;
killedEliminated = true;
}
@@ -347,9 +417,9 @@ func OnClonkDeath(object clonk, int killedBy)
if (GetPlayerID(player)) LaunchClonk(player, clonk, true);
}
-func LaunchClonk(int player, object clonk, bool forceCreate)
+func LaunchClonk(int player, object clonk, bool relaunch)
{
- if (!clonk || forceCreate)
+ if (!clonk || relaunch)
{
var newClonk = CreateObject(CLNK, 0, 0, player);
if (clonk)
@@ -404,14 +474,24 @@ func LaunchClonk(int player, object clonk, bool forceCreate)
// No corpses in apocalopyse mode
if (mode == MODE_Apocalyptic) clonk->LocalN("removeOnDeath") = true;
+ // Enable rotation in jump for the clonk if allowed by rule
if (FindObject(RIJP)) clonk->LocalN("rotateInJump") = true;
+ // Do not immediately pass player control to the new clonk to prevent accidental jumps
+ if (relaunch)
+ {
+ clonk->SetCrewEnabled(false);
+ clonk->SetCrewEnabled(true);
+ clonk->Schedule("SelectCrew(GetOwner(), this, true)", 20);
+ }
+
+ PlayerMessage(player, "<c %x>{{FLAG}}</c>", clonk, GetPlrColorDw(player));
SetPlrView(player, clonk);
}
func ResetHealth(object clonk)
{
- if (mode == MODE_SuddenDeath)
+ if (suddendeathEnabled)
{
clonk->DoEnergy(1 - clonk->GetEnergy());
}
diff --git a/TemplePushing.c4s/SectClassic.c4g/Map.bmp b/TemplePushing.c4s/SectClassic.c4g/Map.bmp
index ee3c43c..3f5e325 100644
--- a/TemplePushing.c4s/SectClassic.c4g/Map.bmp
+++ b/TemplePushing.c4s/SectClassic.c4g/Map.bmp
Binary files differ
diff --git a/TemplePushing.c4s/SectClassic.c4g/Scenarios.txt b/TemplePushing.c4s/SectClassic.c4g/Scenarios.txt
index 0ca3cbe..ccb3138 100644
--- a/TemplePushing.c4s/SectClassic.c4g/Scenarios.txt
+++ b/TemplePushing.c4s/SectClassic.c4g/Scenarios.txt
@@ -1,5 +1,5 @@
[Landscape]
-Sky=Clouds1;Default
+Sky=DarkSky
ExactLandscape=0
NewStyleLandscape=2
NoScan=1
diff --git a/TemplePushing.c4s/SectCloudTemple.c4g/Map.bmp b/TemplePushing.c4s/SectCloudTemple.c4g/Map.bmp
new file mode 100644
index 0000000..ba8a1d2
--- /dev/null
+++ b/TemplePushing.c4s/SectCloudTemple.c4g/Map.bmp
Binary files differ
diff --git a/TemplePushing.c4s/SectCloudTemple.c4g/Scenario.txt b/TemplePushing.c4s/SectCloudTemple.c4g/Scenario.txt
new file mode 100644
index 0000000..c1af59a
--- /dev/null
+++ b/TemplePushing.c4s/SectCloudTemple.c4g/Scenario.txt
@@ -0,0 +1,29 @@
+[Landscape]
+Sky=CloudySky
+BottomOpen=1
+ExactLandscape=0
+NewStyleLandscape=2
+NoScan=1
+MapWidth=80,0,64,250
+MapHeight=80,0,40,250
+Amplitude=10,10,0,100
+Phase=50,50,0,100
+Period=10,10,0,100
+Random=20,20,0,100
+Liquid=Water-Smooth
+LiquidLevel=20,30,0,100
+Gravity=83,0,10,200
+SkyScrollMode=2
+
+[Game]
+FoWColor=13158600
+
+[Weather]
+Climate=100,0,0,100
+YearSpeed=20,10,0,100
+Wind=0,0,0,0
+Lightning=0,0,0,0
+
+[Disasters]
+Meteorite=100,0,0,100
+Earthquake=0,0,0,0
diff --git a/TemplePushing.c4s/SectHighUpSymm.c4g/Map.bmp b/TemplePushing.c4s/SectHighUpSymm.c4g/Map.bmp
deleted file mode 100644
index 0cca27b..0000000
--- a/TemplePushing.c4s/SectHighUpSymm.c4g/Map.bmp
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/SectLiquidTemple.c4g/Map.bmp b/TemplePushing.c4s/SectLiquidTemple.c4g/Map.bmp
new file mode 100644
index 0000000..2f87447
--- /dev/null
+++ b/TemplePushing.c4s/SectLiquidTemple.c4g/Map.bmp
Binary files differ
diff --git a/TemplePushing.c4s/SectHighUpSymm.c4g/Scenario.txt b/TemplePushing.c4s/SectLiquidTemple.c4g/Scenario.txt
index 93acb0b..392b6d2 100644
--- a/TemplePushing.c4s/SectHighUpSymm.c4g/Scenario.txt
+++ b/TemplePushing.c4s/SectLiquidTemple.c4g/Scenario.txt
@@ -1,5 +1,5 @@
[Landscape]
-Sky=Clouds1;Default
+Sky=BurningSky
BottomOpen=1
ExactLandscape=0
NewStyleLandscape=2
@@ -19,8 +19,8 @@ SkyScrollMode=2
Climate=100,0,0,100
YearSpeed=20,10,0,100
Wind=0,100,-100,100
-Lightning=28,0,0,100
+Lightning=0,0,0,0
[Disasters]
Meteorite=100,0,0,100
-Earthquake=28,0,0,100
+Earthquake=0,0,0,0
diff --git a/TemplePushing.c4s/SectLobby.c4g/Map.bmp b/TemplePushing.c4s/SectLobby.c4g/Map.bmp
index 6d6a5b3..50ea9e4 100644
--- a/TemplePushing.c4s/SectLobby.c4g/Map.bmp
+++ b/TemplePushing.c4s/SectLobby.c4g/Map.bmp
Binary files differ
diff --git a/TemplePushing.c4s/SectLobby.c4g/Scenario.txt b/TemplePushing.c4s/SectLobby.c4g/Scenario.txt
new file mode 100644
index 0000000..df1e96b
--- /dev/null
+++ b/TemplePushing.c4s/SectLobby.c4g/Scenario.txt
@@ -0,0 +1,28 @@
+[Landscape]
+Sky=DarkSky
+BottomOpen=1
+ExactLandscape=0
+NewStyleLandscape=2
+NoScan=1
+MapWidth=80,0,64,250
+MapHeight=80,0,40,250
+Amplitude=10,10,0,100
+Phase=50,50,0,100
+Period=10,10,0,100
+Random=20,20,0,100
+Liquid=Water-Smooth
+LiquidLevel=20,30,0,100
+Gravity=83,0,10,200
+SkyScrollMode=2
+
+[Player1]
+Crew=CLNK=1
+
+[Player2]
+Crew=CLNK=1
+
+[Player3]
+Crew=CLNK=1
+
+[Player4]
+Crew=CLNK=1
diff --git a/TemplePushing.c4s/Sections.c4d/Ambience.wav b/TemplePushing.c4s/Sections.c4d/Ambience.wav
index 9bd2ab1..4682723 100644
--- a/TemplePushing.c4s/Sections.c4d/Ambience.wav
+++ b/TemplePushing.c4s/Sections.c4d/Ambience.wav
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/CloudAmbience.wav b/TemplePushing.c4s/Sections.c4d/CloudAmbience.wav
new file mode 100644
index 0000000..43f270a
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/CloudAmbience.wav
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/ExtremeAmbience.wav b/TemplePushing.c4s/Sections.c4d/ExtremeAmbience.wav
index 3a5f174..c17e78a 100644
--- a/TemplePushing.c4s/Sections.c4d/ExtremeAmbience.wav
+++ b/TemplePushing.c4s/Sections.c4d/ExtremeAmbience.wav
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/LiquidAmbience.wav b/TemplePushing.c4s/Sections.c4d/LiquidAmbience.wav
new file mode 100644
index 0000000..e601b3e
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/LiquidAmbience.wav
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Graphics.png b/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Graphics.png
index 11434fa..e0fe300 100644
--- a/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Graphics.png
+++ b/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Names.txt b/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Names.txt
index 091768f..e968ed1 100644
--- a/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Names.txt
+++ b/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Names.txt
@@ -1,2 +1,2 @@
-DE:Klassisch
-US:Classic \ No newline at end of file
+DE:Klippentempel
+US:Temple Ruins
diff --git a/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Script.c b/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Script.c
index 5761717..4f839d8 100644
--- a/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Script.c
+++ b/TemplePushing.c4s/Sections.c4d/SectClassic.c4d/Script.c
@@ -5,7 +5,7 @@
public func SectionName() { return "Classic"; }
public func SpawnpointLocations() { return [[550, 282], [603, 205], [682, 282], [784, 227], [912, 168], [1040, 120],
- [651, 449], [432, 438], [170, 118], [299, 170], [435, 230], [1175, 290], [105, 380], [910, 400], [560, 610]]; }
+ [651, 467], [432, 438], [170, 118], [299, 170], [435, 230], [1175, 290], [105, 380], [910, 400], [560, 610]]; }
protected func Initialize()
{
diff --git a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/DefCore.txt b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/DefCore.txt
index 0a249c6..5cab824 100644
--- a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/DefCore.txt
+++ b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/DefCore.txt
@@ -1,6 +1,6 @@
[DefCore]
-id=SHUS
-Name=SectHighUpSymm
+id=SNCD
+Name=SectCloudTemple
Version=4,9,5
Category=C4D_StaticBack
Width=1
diff --git a/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Graphics.png b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Graphics.png
new file mode 100644
index 0000000..4e059fc
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Particle.txt b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Particle.txt
new file mode 100644
index 0000000..146bc0b
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Fog3.c4d/Particle.txt
@@ -0,0 +1,12 @@
+[Particle]
+Name=Fog3
+MaxCount=500
+InitFn=StdInit
+ExecFn=StdExec
+DrawFn=Std
+Face=0,0,400,400,-200,-200
+Delay=0
+Repeats=1
+Reverse=0
+GravityAcc=0
+Additive=0
diff --git a/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Graphics.png b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Graphics.png
new file mode 100644
index 0000000..98ab57a
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Names.txt b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Names.txt
new file mode 100644
index 0000000..4928c8f
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Wolkentempel
+US:Temple of Clouds
diff --git a/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Script.c b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Script.c
new file mode 100644
index 0000000..987052e
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectCloudTemple.c4d/Script.c
@@ -0,0 +1,58 @@
+/*-- Cloud temple scenario section --*/
+
+#strict 2
+
+public func SectionName() { return "CloudTemple"; }
+
+public func SpawnpointLocations() { return [[70, 100], [140, 310], [1105, 310], [431, 443], [830, 160], [420, 160], [300, 90], [230, 440], [320, 310], [530, 90], [625, 160],[720, 90], [930, 310], [820, 440], [950, 90], [1180, 100]]; }
+
+protected func Initialize()
+{
+ // Water/Lava sources
+ // var water = [CreateObject(WTFL, 615, 295, NO_OWNER), CreateObject(WTFL, 630, 285, NO_OWNER)];
+ // TODO: Remove sound via appendto + adjust positions
+
+ // Create Fog
+ for (var i; i < 100; ++i)
+ {
+ if (mode == MODE_Apocalyptic)
+ {
+ CreateParticle("Fog3", Random(LandscapeWidth()), RandomX(570, 700) -10, 0, 0, RandomX(1250, 2000), RGB(255,0,0));
+ }
+ else
+ {
+ CreateParticle("Fog3", Random(LandscapeWidth()), RandomX(570, 700) -10, 0, 0, RandomX(1250, 2000));
+ }
+ }
+
+ if (ambienceEnabled)
+ {
+ // Create background sound
+ if (mode != MODE_Apocalyptic) SoundLevel("CloudAmbience", 50);
+
+ // Create sun and lenseflare
+ CreateObject(SONE, 0, 0, NO_OWNER);
+ CreateObject(LENS, 0, 0, NO_OWNER);
+ }
+
+ if (mode == MODE_Apocalyptic)
+ {
+ // Rock fall
+ for (var i = 0; i < 10; ++i)
+ {
+ CreateObject(RCKF, 0, 0, NO_OWNER);
+ }
+
+ // Fire rain
+ AddEffect("FireRain", 0, 20, 1);
+ CreateObject(FRRN, 0, 0, NO_OWNER);
+
+ // Background sound
+ Music();
+ SoundLevel("ExtremeAmbience", 100);
+
+ // Modulate brick and crystal colour
+ SetMaterialColor(Material("Brick"), 100, 0, 0, 150, 0, 0, 20, 0, 0);
+ SetMaterialColor(Material("SkyCrystal"), 245, 0, 0, 255, 0, 0, 20, 0, 0);
+ }
+} \ No newline at end of file
diff --git a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Graphics.png b/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Graphics.png
deleted file mode 100644
index 9c2207d..0000000
--- a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Graphics.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Names.txt b/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Names.txt
deleted file mode 100644
index 2f7c818..0000000
--- a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Names.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-DE:Irgendetwas mit 'Hoch droben', 'Himmelsschubsen' o.Ä.
-US:Irgendetwas mit Medien \ No newline at end of file
diff --git a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Script.c b/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Script.c
deleted file mode 100644
index cf4bde0..0000000
--- a/TemplePushing.c4s/Sections.c4d/SectHighUpSymm.c4d/Script.c
+++ /dev/null
@@ -1,7 +0,0 @@
-/*-- Unnamed scenario section --*/
-
-#strict 2
-
-public func SectionName() { return "HighUpSymm"; }
-
-public func SpawnpointLocations() { return []; } // TODO
diff --git a/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/DefCore.txt b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/DefCore.txt
new file mode 100644
index 0000000..54024ad
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/DefCore.txt
@@ -0,0 +1,8 @@
+[DefCore]
+id=SNLQ
+Name=SectLiquidTemple
+Version=4,9,5
+Category=C4D_StaticBack
+Width=1
+Height=1
+Picture=0,0,64,64
diff --git a/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Graphics.png b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Graphics.png
new file mode 100644
index 0000000..5a0e3ec
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Graphics.png
Binary files differ
diff --git a/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Names.txt b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Names.txt
new file mode 100644
index 0000000..70e4ac2
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Names.txt
@@ -0,0 +1,2 @@
+DE:Flüssigkeitstempel
+US:Temple of Liquids
diff --git a/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Script.c b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Script.c
new file mode 100644
index 0000000..3ab2be2
--- /dev/null
+++ b/TemplePushing.c4s/Sections.c4d/SectLiquidTemple.c4d/Script.c
@@ -0,0 +1,58 @@
+/*-- Liquid temple scenario section --*/
+
+#strict 2
+
+public func SectionName() { return "LiquidTemple"; }
+
+ public func SpawnpointLocations() { return [[100, 515], [290, 490], [480, 460], [180, 315], [370, 285], [1440, 515], [1250, 490], [1060, 460], [1360, 315], [1170, 285], [715, 330], [870, 450]/*, [615, 70], [925, 70]*/, [770, 90], [715, 210], [825, 390]]; }
+
+ protected func Initialize()
+{
+ if (ambienceEnabled)
+ {
+ // Create lava rain
+ AddEffect("LavaRain", 0, 20, 1);
+
+ /*
+ / Create sun and lensflare
+ CreateObject(SONE, 0, 0, NO_OWNER);
+ CreateObject(LENS, 0, 0, NO_OWNER);
+ */
+
+ // Create background sound
+ if (mode != MODE_Apocalyptic) SoundLevel("LiquidAmbience", 50);
+
+ /*
+ {
+ for (var i; i < 300; ++i)
+ {
+ CreateParticle("Fog", Random(LandscapeWidth()), Random(LandscapeHeight()) + 300, 0, 1, RandomX(2000, 2500));
+ }
+ return(1);
+ }
+ */
+ }
+
+ if (mode == MODE_Apocalyptic)
+ {
+ // Rock fall
+ for (var i = 0; i < 10; ++i)
+ {
+ CreateObject(RCKF, 0, 0, NO_OWNER);
+ }
+
+ // Fire rain
+ AddEffect("FireRain", 0, 20, 1);
+ CreateObject(FRRN, 0, 0, NO_OWNER);
+
+ // Background sound
+ Music();
+ SoundLevel("ExtremeAmbience", 100);
+
+ // Modulate brick colour (material)
+
+ SetMaterialColor(Material("Brick"), 100, 0, 0, 150, 0, 0, 20, 0, 0);
+ }
+}
+
+
diff --git a/TemplePushing.c4s/Sky.jpg b/TemplePushing.c4s/Sky.jpg
deleted file mode 100644
index b073dc3..0000000
--- a/TemplePushing.c4s/Sky.jpg
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/StringTblDE.txt b/TemplePushing.c4s/StringTblDE.txt
index 45b7ea1..9c05ef0 100644
--- a/TemplePushing.c4s/StringTblDE.txt
+++ b/TemplePushing.c4s/StringTblDE.txt
@@ -1,8 +1,11 @@
-TeamOne=Tempelspringer
-TeamTwo=Klippenschubser
-MsgRelaunch=Du hast noch %d Relaunchs.
-MsgOneRelaunch=Du hast nur noch einen Relaunch.
-MsgLastRelaunch=Das war dein letzter Relaunch.
-Death=Tot
+TeamOne=Lldhyr
+TeamTwo=Phephr
+MsgRelaunch=Du hast noch <c 00ff00>%d</c> Relaunches.
+MsgOneRelaunch=Du hast nur noch <c ffff00>einen</c> Relaunch.
+MsgLastRelaunch=Das war dein <c ff0000>letzter</c> Relaunch.
+Death=<i><c ff0000>Tot</c></i>
Load=Landschaft wird geladen...
-WinScore=Sieg
+Kills=Kills
+WinScore=Ziel
+MsgDeathmatchWin=<c %x>Team %s</c> erringt den Sieg.
+Win=Sieg
diff --git a/TemplePushing.c4s/StringTblUS.txt b/TemplePushing.c4s/StringTblUS.txt
index 2cf5687..d5e9265 100644
--- a/TemplePushing.c4s/StringTblUS.txt
+++ b/TemplePushing.c4s/StringTblUS.txt
@@ -1,8 +1,12 @@
-TeamOne=Temple Jumpers
-TeamTwo=Cliff Pushers
-MsgRelaunch=You have %d relaunchs remaining.
-MsgOneRelaunch=You only have one relaunch remaining.
-MsgLastRelaunch=This was your last relaunch.
-Death=Dead
+TeamOne=Lldhyr
+TeamTwo=Phephr
+MsgRelaunch=You have <c 00ff00>%d</c> relaunches remaining.
+MsgOneRelaunch=You only have <c ffff00>one<c/> relaunch remaining.
+MsgLastRelaunch=This was your <c ff0000>last</c> relaunch.
+Death=<i><c ff0000>Out</c></i>
Load=Loading Landscape...
+Kills=Kills
WinScore=Goal
+MsgDeathmatchWin=<c %x>Team %s</c> wins the match.
+Win=Win
+
diff --git a/TemplePushing.c4s/System.c4g/Arrowpack.c b/TemplePushing.c4s/System.c4g/Arrowpack.c
new file mode 100644
index 0000000..e046e4c
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Arrowpack.c
@@ -0,0 +1,43 @@
+/*-- Arrow packs shoot arrows --*/
+
+#strict 2
+
+#appendto ARWP
+
+local coolingDown;
+
+protected func Initialize()
+{
+ iUsedItems = Random(MaxPackCount() - 1);
+}
+
+private func CooledDown()
+{
+ return !coolingDown;
+}
+
+protected func Activate(object clonk)
+{
+ [$Shoot$|Image=BOW1|Condition=CooledDown]
+
+ if (!CooledDown()) return 0;
+
+ // Extract an arrow from the pack
+ var arrow = GetItem();
+
+ // Make shooting clonk responsible for possible kill and owner of the arrow
+ arrow->SetOwner(clonk->GetOwner());
+ arrow->SetController(clonk->GetOwner());
+
+ // Shoot
+ // Do not launch fire arrows too close to the clonk to prevent incineration when launched while climbing
+ var arrowPosX = IIf(arrow->GetID() == FARW, -10 + 20 * clonk->GetDir(), -3 + 6 * clonk->GetDir());
+ arrow->Exit(0, arrowPosX, 5, -90 + 180 * clonk->GetDir(), -8 + 16 * clonk->GetDir(), -2);
+ arrow->~Launch();
+
+ // Start cooldown
+ coolingDown = true;
+ Schedule("coolingDown = false", RandomX(1, 20));
+
+ return 1;
+} \ No newline at end of file
diff --git a/TemplePushing.c4s/System.c4g/Bounce.c b/TemplePushing.c4s/System.c4g/Bounce.c
index e52c395..e2cee50 100644
--- a/TemplePushing.c4s/System.c4g/Bounce.c
+++ b/TemplePushing.c4s/System.c4g/Bounce.c
@@ -2,13 +2,18 @@
#strict 2
+#appendto ROCK
+#appendto SWOR
#appendto AXE1
+#appendto ARWP
+#appendto SFLN
+#appendto FLNT
+#appendto EGBL
#appendto EFLN
-#appendto SWOR
protected func Hit()
{
- if (Random(2)) return _inherited();
+ if (Random(10)) return _inherited();
SetYDir(-20);
Sound("Boing");
diff --git a/TemplePushing.c4s/System.c4g/Clonk.c b/TemplePushing.c4s/System.c4g/Clonk.c
index 8c395b4..c934938 100644
--- a/TemplePushing.c4s/System.c4g/Clonk.c
+++ b/TemplePushing.c4s/System.c4g/Clonk.c
@@ -1,11 +1,25 @@
/* Clonk */
#strict 2
+
#appendto CLNK
local rotateInJump;
local removeOnDeath;
+protected func ControlThrow(object byObj)
+{
+ // First check if the clonk already handles the throw control
+ var ret = _inherited(byObj);
+ if (ret) return ret;
+
+ // Launch arrow from pack in inventory
+ var arrowPack = Contents();
+ if (!arrowPack || !arrowPack->~IsArrowPack()) return 0;
+ arrowPack->Activate(this);
+ return 1;
+}
+
protected func ControlSpecial()
{
[$Push$|Image=CXIV]
@@ -21,8 +35,7 @@ protected func ControlSpecial()
Find_ID(CLNK),
Find_InRect(-10 + GetDir() * 20, 0, 10, 10),
Find_OCF(OCF_Alive),
- // Only include allied players' clonks if "friendly pushing" rule is present
- Find_Or(Find_Func(FindObject(FYPG)), Find_Hostile(GetOwner())));
+ Find_Hostile(GetOwner()));
if (GetLength(clonks) == 0) return 0;
@@ -34,15 +47,16 @@ protected func ControlSpecial()
return 1;
}
+
protected func ControlLeft()
{
- if (rotateInJump && GetAction() == "Jump") SetDir(DIR_Left);
+ if (rotateInJump && GetAction() == "Jump" || GetAction() == "Tumble") SetDir(DIR_Left);
return _inherited();
}
protected func ControlRight()
{
- if (rotateInJump && GetAction() == "Jump") SetDir(DIR_Right);
+ if (rotateInJump && GetAction() == "Jump" || GetAction() == "Tumble") SetDir(DIR_Right);
return _inherited();
}
@@ -51,4 +65,9 @@ protected func Death(int killedBy)
var ret = _inherited(killedBy);
if (removeOnDeath) RemoveObject();
return ret;
+}
+
+public func QueryCatchBlow(object arrow)
+{
+ return arrow->GetOwner() == GetOwner();
} \ No newline at end of file
diff --git a/TemplePushing.c4s/System.c4g/Invisibility.c b/TemplePushing.c4s/System.c4g/Invisibility.c
new file mode 100644
index 0000000..28bba9d
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Invisibility.c
@@ -0,0 +1,18 @@
+/*-- Shorten Invisibilty --*/
+
+#strict 2
+
+#appendto MINV
+
+public func Activate(object pCaster, object pCaster2)
+{
+ // Zauberer ermitteln
+ if (pCaster2) pCaster = pCaster2;
+ // Magie kann man hoeren, ganz klar ;)
+ Sound("Magic*");
+ // Zauberer unsichtbar machen (20sec)
+ AddEffect("InvisPSpell", pCaster, 200, 700, 0, GetID());
+ // Fertig - das Zauberobjekt wird nun nicht mehr gebraucht
+ RemoveObject();
+ return 1;
+} \ No newline at end of file
diff --git a/TemplePushing.c4s/System.c4g/LavaRain.c b/TemplePushing.c4s/System.c4g/LavaRain.c
new file mode 100644
index 0000000..22369e0
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/LavaRain.c
@@ -0,0 +1,18 @@
+/*-- Lavaregen --*/
+
+#strict 2
+
+global func FxLavaRainStart()
+{
+ SoundLevel("Rain", 10);
+ return 1;
+}
+
+global func FxLavaRainTimer()
+{
+ for (var i; i < 5; ++i)
+ {
+ CreateParticle("LavaRaindrop", Random(LandscapeWidth()), 0, 0, 200, Random(300), RGB(255, 255, 0));
+ }
+ return 1;
+}
diff --git a/TemplePushing.c4s/System.c4g/MagicFlint.c b/TemplePushing.c4s/System.c4g/MagicFlint.c
index a158248..0fc5506 100644
--- a/TemplePushing.c4s/System.c4g/MagicFlint.c
+++ b/TemplePushing.c4s/System.c4g/MagicFlint.c
@@ -17,10 +17,10 @@ public func Activate(object caster, object realcaster)
CreateParticle("MSpark", 0,0, 1000, RGBa(255,50,50,150));
if (realcaster) caster = realcaster;
-
- var flints = [FLNT, SFLN, EFLN];
+
+ var flints = [SFLN, EFLN];
caster->CreateContents(flints[Random(GetLength(flints))]);
-
+
RemoveObject();
return 1;
}
diff --git a/TemplePushing.c4s/System.c4g/Meteor.c b/TemplePushing.c4s/System.c4g/Meteor.c
index af1d3e8..9eb75b1 100644
--- a/TemplePushing.c4s/System.c4g/Meteor.c
+++ b/TemplePushing.c4s/System.c4g/Meteor.c
@@ -4,6 +4,6 @@
protected func Hit()
{
- if (FindObject(RCKF)) Explode(Random(75));
+ if (FindObject(RCKF)) Explode(Random(50));
Explode(explosion_base + Random(12));
}
diff --git a/TemplePushing.c4s/System.c4g/Plague.c b/TemplePushing.c4s/System.c4g/Plague.c
new file mode 100644
index 0000000..ea80c2e
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Plague.c
@@ -0,0 +1,33 @@
+/*-- Plague --*/
+
+#strict
+
+#appendto MGPL
+
+func FxPoisonTimer(pClonk, iEffectNumber, iEffectTime)
+{
+ if(iEffectTime >= 1200) return(-1);
+ var fSnake = EffectVar(1, pClonk, iEffectNumber);
+ var idType = GetID(pClonk);
+ CreateParticle("PoisonWave", GetX(pClonk), GetY(pClonk), 0, -1, EffectVar(0, pClonk, iEffectNumber)*5+50, RGBa(fSnake*200, 255, 0), pClonk, 1);
+ CreateParticle("PSpark", GetX(pClonk), GetY(pClonk), 0, -1, EffectVar(0, pClonk, iEffectNumber)*5+50, RGBa(fSnake*55, 55, 0), pClonk, 1);
+ if(GBackLiquid(GetX(pClonk), GetY(pClonk))) return(-1);
+
+ if(!Random(7)) DoEnergy(-2, pClonk);
+ var obj;
+ var iRadius = EffectCall(pClonk,iEffectNumber,"MaxRange");
+ while(obj = FindObject(0, -iRadius+GetX(pClonk),-iRadius+GetY(pClonk),iRadius*2,iRadius*2, OCF_Alive(),0,0, NoContainer(), obj))
+ {
+ if(!GetEffect("Poison", obj))
+ {
+ if(!GetAction(obj)S="Field")
+ {
+ AddEffect("Poison",obj,182,10,0,MGPL,fSnake);
+ }
+ }
+ }
+ return(1);
+}
+
+func FxPoisonMaxRange() { return(100); }
+
diff --git a/TemplePushing.c4s/System.c4g/Scroll.c b/TemplePushing.c4s/System.c4g/Scroll.c
index 07a55d6..076c30b 100644
--- a/TemplePushing.c4s/System.c4g/Scroll.c
+++ b/TemplePushing.c4s/System.c4g/Scroll.c
@@ -4,7 +4,13 @@
func Initialize()
{
- var spells = [ABLA, MBOT, MFRB, MDBT, GVTY, MMTR, MLGT, CFAL, MSSH, MINV, MQKE, MARK, MFWV, MGFL];
+ if (mode == MODE_Festive)
+ {
+ var spells = [ABLA, MFWV, MICS, MLGT, MGPL];
SetSpell(spells[Random(GetLength(spells))]);
+ }
+ else var spells = [ABLA, MBOT, MFRB, MDBT, GVTY, MMTR, MLGT, CFAL, MSSH, MINV, MQKE, MARK, MFWV, MGFL, LAVS, MGPL];
+ SetSpell(spells[Random(GetLength(spells))]);
+
return _inherited();
}
diff --git a/TemplePushing.c4s/System.c4g/ShootInventory.c b/TemplePushing.c4s/System.c4g/ShootInventory.c
index f2636dd..20bfef3 100644
--- a/TemplePushing.c4s/System.c4g/ShootInventory.c
+++ b/TemplePushing.c4s/System.c4g/ShootInventory.c
@@ -4,10 +4,13 @@
#appendto AXE1
#appendto EGBL
+#appendto SFLN
#appendto EFLN
#appendto GBLT
#appendto ROCK
#appendto SWOR
+#appendto SPER
+#appendto TSWB
protected func Activate(object clonk)
{
@@ -16,38 +19,72 @@ protected func Activate(object clonk)
// Sound
if (GetID() == EGBL)
{
+ Sound("Blast*");
Sound("Crystal3");
}
+ else if (GetID() == SPER)
+ {
+ Sound("Arrow");
+ }
+ else if (GetID() == TSWB)
+ {
+ Sound("Arrow");
+ }
else if (GetID() == GBLT)
{
+ Sound("Blast*");
Sound("Crystal3");
}
+ else if (GetID() == SWOR)
+ {
+ Sound("Blast*");
+ Sound("SwordHit*");
+ }
+ else if (GetID() == AXE1)
+ {
+ Sound("Blast*");
+ Sound("AxeHit*");
+ }
else
{
- Sound("Blast2");
+ Sound("Blast*");
}
- // Make shooting clonk responsible for possible kill
+ // Make shooting clonk responsible for possible kill and owner of object to be shot
SetController(clonk->GetOwner());
+ SetOwner(clonk->GetOwner());
// Shoot
if (GetID() == EGBL)
{
- Exit(0, -20 + 40 * clonk->GetDir());
+ Exit(0, -10 + 20 * clonk->GetDir());
+ SetYDir(-10);
SetXDir(-100 + 200 * clonk->GetDir());
}
else if (GetID() == ROCK)
{
- Exit(0, -15 + 30 * clonk->GetDir());
+ Exit(0, -10 + 20 * clonk->GetDir());
+ SetYDir(-15);
SetXDir(-100 + 200 * clonk->GetDir());
}
+ else if (GetID() == TSWB)
+ {
+ Exit(0, -5 + 10 * clonk->GetDir());
+ SetYDir(-30);
+ SetXDir(-50 + 100 * clonk->GetDir());
+ }
+ else if (GetID() == SPER)
+ {
+ Exit(0, -10 + 20 * clonk->GetDir(), -4, 0 + 180 * clonk->GetDir(), -150 + 300 * clonk->GetDir(), -7);
+ SetYDir(-7);
+ SetXDir(-175 + 350 * clonk->GetDir());
+ }
else
{
- Exit(0, -10 + 20 * clonk->GetDir());
+ Exit(0, -10 + 20 * clonk->GetDir(), 0, 0 + 180 * clonk->GetDir(), -80 + 160 * clonk->GetDir(), -15);
+ SetYDir(-15);
SetXDir(-80 + 160 * clonk->GetDir());
}
-
- SetYDir(-10);
-
+
return 1;
} \ No newline at end of file
diff --git a/TemplePushing.c4s/System.c4g/Vanish.c b/TemplePushing.c4s/System.c4g/Vanish.c
new file mode 100644
index 0000000..37d1d78
--- /dev/null
+++ b/TemplePushing.c4s/System.c4g/Vanish.c
@@ -0,0 +1,28 @@
+/*-- Make certain items vanish --*/
+
+#strict 2
+
+#appendto ARRW
+#appendto FARW
+#appendto TSWB
+#appendto SPER
+
+protected func Hit()
+{
+ if (GetID() == FARW)
+ {
+ Schedule("RemoveObject()", 80, 0, 0);
+ }
+ else if (GetID() == SPER)
+ {
+ Schedule("RemoveObject()", 50, 0, 0);
+ }
+ else
+ {
+ CastParticles("MSpark", 20,5, 0,0, 25, 30, RGBa(128,128,255,0), RGBa(255,255,255,127));
+ RemoveObject();
+ return 1;
+ }
+}
+
+
diff --git a/TemplePushing.c4s/Temp.c4d/Apocalypse_Hazard.png b/TemplePushing.c4s/Temp.c4d/Apocalypse_Hazard.png
deleted file mode 100644
index 5e231a7..0000000
--- a/TemplePushing.c4s/Temp.c4d/Apocalypse_Hazard.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Temp.c4d/Deathmatch_Old.png b/TemplePushing.c4s/Temp.c4d/Deathmatch_Old.png
deleted file mode 100644
index 2bfe0a4..0000000
--- a/TemplePushing.c4s/Temp.c4d/Deathmatch_Old.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Temp.c4d/Maplang.bmp b/TemplePushing.c4s/Temp.c4d/Maplang.bmp
deleted file mode 100644
index cd806b8..0000000
--- a/TemplePushing.c4s/Temp.c4d/Maplang.bmp
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Temp.c4d/Mapsymm.bmp b/TemplePushing.c4s/Temp.c4d/Mapsymm.bmp
deleted file mode 100644
index 5b6893a..0000000
--- a/TemplePushing.c4s/Temp.c4d/Mapsymm.bmp
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Temp.c4d/Names.txt b/TemplePushing.c4s/Temp.c4d/Names.txt
deleted file mode 100644
index 23fb108..0000000
--- a/TemplePushing.c4s/Temp.c4d/Names.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-DE:Extraobjekte
-US:Additional Objects \ No newline at end of file
diff --git a/TemplePushing.c4s/Temp.c4d/OldSuddenDeathMap.bmp b/TemplePushing.c4s/Temp.c4d/OldSuddenDeathMap.bmp
deleted file mode 100644
index 9b2fbf0..0000000
--- a/TemplePushing.c4s/Temp.c4d/OldSuddenDeathMap.bmp
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Temp.c4d/RotateInJump_Old.png b/TemplePushing.c4s/Temp.c4d/RotateInJump_Old.png
deleted file mode 100644
index b93b673..0000000
--- a/TemplePushing.c4s/Temp.c4d/RotateInJump_Old.png
+++ /dev/null
Binary files differ
diff --git a/TemplePushing.c4s/Title.txt b/TemplePushing.c4s/Title.txt
index 899e405..53cf67b 100644
--- a/TemplePushing.c4s/Title.txt
+++ b/TemplePushing.c4s/Title.txt
@@ -1,2 +1,2 @@
-DE:Tempelschubsen v6.1.7601.18409
-US:TemplePush v6.1.7601.18409 \ No newline at end of file
+DE:Tempelschubsen r0.741b
+US:Temple Pushing r0.741b
diff --git a/TemplePushing.c4s/Version.txt b/TemplePushing.c4s/Version.txt
index 947dd79..60b3fd0 100644
--- a/TemplePushing.c4s/Version.txt
+++ b/TemplePushing.c4s/Version.txt
@@ -1 +1 @@
-v6.1.7601.18409 \ No newline at end of file
+r0.741b