Compare commits

...

134 Commits

Author SHA1 Message Date
Günther Brammer 3fe8c353e7 Added tag release-5.1.2 for changeset 231524eaec9a 2011-02-11 15:32:46 +01:00
Günther Brammer 588ba69052 Version 5.1.2 [4] 2011-02-11 15:32:03 +01:00
Julius Michaelis 5ef3991e7b console mode: Make CStdWindow::Init succeed
This solves the problem introduced with "Fix stable branch compile errors".
2011-02-11 15:26:53 +01:00
Günther Brammer 59514d0123 crew: Default Infocores without Physical information to the Clonks defaults
This makes Crews that were used with the 5.2 branch usable with 5.1.x.
2011-02-10 15:33:12 +01:00
Günther Brammer e989553435 sdl: update for refresh rate API changes 2011-01-24 23:32:51 +01:00
Günther Brammer 6e0d2ad391 console mode: Fix compilation without libreadline 2011-02-04 00:16:45 +01:00
Günther Brammer 801cf1b8b3 Flush stdout after every log line even without a terminal 2011-02-04 00:15:52 +01:00
Charles Spurrill d7f01fc0d2 Cannon and lorry don't fall off the sides of the map 2011-02-02 16:08:48 -08:00
Maikel de Vries 066caf1509 Objects: Fixed #554, respawn container does not spawn weapons anymore 2011-01-31 19:09:13 +01:00
Julius Michaelis 1e3dc0fe4d dedicated: fix CMake and object loading (thanks ck and Guenther)
Conflicts:

	CMakeLists.txt
2011-01-30 21:44:54 +01:00
Nicolas Hake d3d5e77f69 Only select display modes with the configured color depth 2011-01-31 14:37:32 +01:00
Nicolas Hake e9d9e7c178 win32: Default to current desktop display settings (#484, #493)
Previously, the graphics code tried to set a refresh rate as close to
85 Hz as possible. This led to black screens when the display driver
would report a refresh rate that was not actually supported by the
monitor.
This change also uses the currently set monitor orientation, instead
of always selecting a non-rotated display mode.

Conflicts:

	src/gui/C4StartupOptionsDlg.cpp
2011-01-20 15:43:19 +01:00
Günther Brammer b3a34fea69 editor/gtk: Save the clipboard on exit
Normally, this is done by gtk_main with a private function. Since Clonk
does not use gtk_main, that function is copied and slightly changed to use
the public API and compile as C++.
2011-01-16 21:30:59 +01:00
Günther Brammer b03f6381fb Script: == works when one side is an object with proplist type label
I don't actually know how to get to that situation in script, but when it
happens, everything else expecting an object would correctly accept it
despite the proplist label.
2011-01-15 23:03:01 +01:00
Charles Spurrill d55609e633 very slightly improved texture for wooden cabin 2011-01-14 17:17:22 -08:00
Maikel de Vries 9b26363e52 Objects: Fixed a possible runtime error in the Parkour goal 2011-01-14 22:32:50 +01:00
Günther Brammer 503172bf99 Fix a mismatched malloc/delete resulting from StdStdBuf::GrabPointer usage 2011-01-12 19:58:33 +01:00
Martin Plicht 7725a9290a C4GamePadCon: Fix some method signatures and a preprocessor directive 2010-12-24 14:18:51 +01:00
Günther Brammer fdcb1dfb19 console mode: Fix all the obvious compile errors
One of them even affected any engine configured without OpenGL support.
2011-02-08 23:12:30 +01:00
Günther Brammer 608b76a44a x11: Restore argc/argv saving accidentally removed two commits ago 2011-01-10 15:52:50 +01:00
Günther Brammer 031345c1ac console mode: Fix stable branch compile errors 2011-02-09 00:16:58 +01:00
Günther Brammer 7dd368086e console mode: Move keyboard input to CStdInProc, make it compile again
Conflicts:

	src/editor/C4Console.cpp
	src/platform/StdMacApp.mm
2011-02-08 22:51:23 +01:00
Günther Brammer 1ce90e97e5 Edge: Remove a stray ActMap.txt 2011-01-04 15:39:26 +01:00
Günther Brammer 654d29120a Script: Add DigFreeMat
So that one can script magical winter services or whatever else that
requires removing just some specific materials.
2011-01-02 02:14:45 +01:00
Günther Brammer 7a63dc8878 scheduler: Only execute one proc per poll call
The Execute callback could create a new proc which made the poll results
and proc list disagree, confusing the loop.
2011-01-07 00:22:44 +01:00
Günther Brammer cf52e9d395 config: Remove General/Definitions 2011-01-04 17:39:52 +01:00
Tobias Zwick 867935d691 make sword work correctly with gamepad controls 2011-01-03 21:20:01 +01:00
Tobias Zwick 957f865cfa fixed pressing use1/use2 on gamepad when no item is selected (#535) 2011-01-03 21:15:19 +01:00
Armin Burgmeier 9a15b99753 Fix crash when both shaders and FoW are enabled (#549)
PerformBlt and BlitLandscape did not clean up the GL state properly as the
texcoord pointer for texture 3 was still set and enabled but pointing to
nowhere anymore.
2011-01-02 20:33:45 +01:00
Maikel de Vries 08ae037534 Objects: Fixed parkour short description
This was due to a false ordering of checkpoints in the cp_list, not that this ordering still doesn´t function if SetCPMode() is used alone.
2011-01-02 12:49:50 +01:00
Nicolas Hake 12f6255453 win32: Do not throw exceptions from WinMain 2011-01-02 03:50:06 +01:00
Nicolas Hake 2f6aaa9133 win32: Do not use SEH in WinMain because it needs stack unwinding 2011-01-02 03:44:07 +01:00
Nicolas Hake 6d6633e576 Correctly specify type of GenerateDump 2011-01-02 03:41:20 +01:00
Armin Burgmeier 651153d814 Add a CMake option for generating mini dumps 2011-01-02 01:20:52 +01:00
Maikel de Vries 34c41dc837 Overcast: Removed double Scenario.txt Sky entry
Caused a warning in the logs.
2011-01-01 22:32:31 +01:00
Sebastian Rühl 1fd6f2f057 Use cmake in the debian build, and add hg as a build dependency
* Mercurial as Build Dependency
  * Switch to cmake as build system
  * Fixed spacing issues in $(CURDIR)
2010-12-31 15:41:41 +01:00
Maikel de Vries dcf8ef75f3 Cool Cavern: Finetuned landscape and TopOpen=0 2010-12-29 22:08:51 +01:00
Armin Burgmeier 69268b2999 Don't reset progress bar when starting to load definitions 2010-12-29 17:00:13 +01:00
Tobias Zwick 1956c37923 fix: Version information from masterserver is correctly parsed
PeterW changed some stuff about the INI parser. I adjusted the parsing of the version info from the masterserver to fit his change
and let the C4Network2RefClient inherit from the C4Network2UpdateClient (as refclient does the same as updateclient only more) while I was at it.
2010-12-27 01:07:59 +01:00
Tobias Zwick 21ccfe946f Clonk client redirects user to download page if new version is available but not as update 2010-12-27 00:31:25 +01:00
Armin Burgmeier 8f8ff33bd9 Add --without-automatic-update when building the Debian package 2010-12-26 22:10:39 +01:00
Sebastian Rühl 1dccd4a5b5 Add icon to Debian package 2010-12-26 17:56:20 +01:00
Sebastian Rühl 40dc82c4aa Introducing Debian files 2010-12-26 00:04:23 +01:00
Armin Burgmeier 745b7d4f20 Add a compile-time option to disable automatic update 2010-12-26 21:39:52 +01:00
Armin Burgmeier f50972a9de Fix update procedure on Windows
by letting c4group wait for the Clonk process to terminate
2010-12-26 20:49:04 +01:00
David Dormagen b471c22204 kill logs fix
-with rant about GetRelaunchCount
2010-12-25 19:06:05 +01:00
Günther Brammer 6650f12696 Remove a debug printf 2010-12-22 02:11:16 +01:00
MimmoO 760c06666e WindScroll: correct killer set 2010-12-20 18:49:45 +01:00
MimmoO 81e4b1e9ab Thunderous Skies: Added to stable branch 2011-01-09 15:56:00 +01:00
Günther Brammer e864c56d10 Added tag release-5.1.1 for changeset 994c87fddebe 2010-12-25 00:51:33 +01:00
Günther Brammer 0023db162a Version 5.1.1 [3] 2010-12-25 00:50:58 +01:00
Maikel de Vries c317842d86 Objects: Fixed error causing variable declaration. 2010-12-21 14:49:32 +01:00
MimmoO e6a576d86b Materials: Lava: replaced texture with a slightly modified one from the forum. replace this with the original one once we have glow. 2010-12-20 15:08:03 +01:00
Richard Gerum e937ced1b9 added shield walking animation 2010-12-19 23:33:36 +01:00
Charles Spurrill 4199cd6ea0 fix sword texture for Molten Monarch 2010-12-19 13:46:32 -08:00
Charles Spurrill 11f1c5a12a clonk chicken-leg fix 2010-12-17 10:24:32 -08:00
Charles Spurrill 1b1ac22903 mushroom doesn't fly at incredible speeds when batted by club 2010-12-17 10:24:01 -08:00
Maikel de Vries 47912aecfa Scenario: KOTHs open weapon menu on game start now
Conflicts:

	planet/BackToTheRocks.c4f/FreeSkies.c4s/Script.c
2010-12-17 16:08:20 +01:00
Maikel de Vries 7ea74f5a07 Parkour: Sensible Short Description, Fixed (#547) 2010-12-16 21:25:42 +01:00
Tobias Zwick 6a21ef5c3d bugfixfix for zooming 2010-12-16 18:18:40 +01:00
Nicolas Hake dfe46deab5 win64: Fix crash when a C4String gets allocated at >4GB 2010-12-16 17:26:52 +01:00
David Dormagen 4e4b55f06c sword damage lowered by 1 2010-12-15 19:00:04 +01:00
MimmoO 9ebf1f3a1a KotH: no regeneration by default 2010-12-15 18:14:20 +01:00
Tobias Zwick 58a143960c fixed #536: Gamepad: zooming with buttons needs several clicking 2010-12-15 02:16:24 +01:00
Armin Burgmeier fec9b5cdcc Add license text for libogg and libvorbis
We use this (indirectly) on linux via SDL_mixer, and we link it statically,
so we need to reproduce the copyright message.
2010-12-15 00:03:59 +01:00
David Dormagen 94f8130ba5 KotH fix 2010-12-14 20:59:08 +01:00
David Dormagen ce8373c5fe KotH punish suiciding non-kings a bit 2010-12-14 19:46:06 +01:00
David Dormagen 260b416aff kill logs uses GameCallEx now 2010-12-14 19:45:32 +01:00
David Dormagen d5dfdf4185 KotH goal now announces new king on the death of the old (log) 2010-12-14 19:10:53 +01:00
David Dormagen 8e51b6ddc9 kill logs cleaned up
the relaunch messages are now also in the kill logs object
2010-12-14 17:59:18 +01:00
MimmoO 4dfaa99988 Tutorial3: Balloon got new texture 2010-12-14 15:04:04 +01:00
David Dormagen bf4b2ca37e kill logs changes
-logs removed from LastManStanding
-additional callbacks added
2010-12-13 23:35:32 +01:00
Maikel de Vries 3c81601719 Objects: Fixed Log message and flag grabbing in CTF. 2010-12-11 13:05:40 +01:00
Maikel de Vries f4011aa5d7 Objects: Added possible exception to KillLogs
and removed Width and Height DefCore entries for goals and rules
2010-12-11 12:30:51 +01:00
MimmoO fbec8430aa FrozenFortress: Frostbolt now only damages clonks. 2010-12-09 14:31:59 +01:00
Maikel de Vries 59a09c3c3c Engine: Removed FIGHT procedure and all related stuff.
This is obsolete with new melee implementation and other authors should either use that or make something unique themselfs. Removed DFA_FIGHT, C4Script FnFightWith, ObjectActionFight, NoFight, OCF_FightReady, Fight Physical
2010-12-07 18:57:27 +01:00
Sven Eberhardt 596bde6c4c increase loam bridge length by 1/3rd 2010-12-08 17:47:12 +01:00
Tobias Zwick c975db93d0 removed hands display in the HUD 2010-12-08 17:13:24 +01:00
Peewee f4d98cdf67 Fixed a typo and some 'code never reached' warnings. 2010-10-10 23:20:42 -04:00
MimmoO 9998ee8795 Flag: Bugfix when dropping flag 2010-12-07 22:03:41 +01:00
MimmoO c3f0635e27 CTF: added visual flag trail 2010-12-07 20:54:06 +01:00
MimmoO bba58e7ebf Removed logs from flag 2010-12-07 18:52:04 +01:00
MimmoO 14915be42f CTF: Flag grabbing mechanism automatized 2010-12-07 18:48:35 +01:00
Maikel de Vries c628de3d73 Objects: CTF - Flag now attached to base
This prevents players from scoring if the other team has already taken the flag but not have cleared the base.
2010-12-07 17:16:18 +01:00
MimmoO 42a1d61351 KillLogs added to all melees and ctfs 2010-12-07 14:44:38 +01:00
David Dormagen a3d27b9911 kill log ignores calls with clonk==nil 2010-12-06 19:32:19 +01:00
Charles Spurrill a33500a3c2 fix musket material for molten monarch 2010-12-04 14:35:49 -08:00
Armin Burgmeier 4badd7d3d9 Order submeshes so that opaque ones are rendered before non-opaque ones 2010-12-04 23:33:05 +01:00
Charles Spurrill 987d5daa0b seperated musket alpha map 2010-12-04 13:52:08 -08:00
MimmoO cd99ed1285 Boomshire: Anti-fail for planes 2010-12-06 16:26:09 +01:00
MimmoO 24104b6a87 Boomshire: Map fix 2010-12-06 15:20:24 +01:00
Tobias Zwick aa66fadf31 default: no runtime join = 1 2010-12-04 00:56:58 +01:00
Armin Burgmeier e7ad0c35ff Possible crash fix: Reset pLast in C4GUI::Container::ClearChildren() 2010-12-12 14:21:18 +01:00
MimmoO ad98b1bf75 Hideout: underground passage made harder to pass through 2010-12-11 18:30:32 +01:00
MimmoO 9e93c339b7 Hideout: added correct friction to the gems 2010-12-09 14:37:31 +01:00
MimmoO 44c98290b1 Hideout: Updated and corrected description. 2010-12-07 22:26:05 +01:00
MimmoO 9457b845b2 Hideout: minor map changes against failing BrickEdges 2010-12-07 14:26:10 +01:00
MimmoO 08bb5b8ea9 PyreGem: now actually works! 2010-12-06 19:31:27 +01:00
MimmoO 9ff39245dd PyreGem: !Fehler!-fix 2010-12-06 19:24:57 +01:00
David Dormagen fc5eb73d6a Added kill logs rule
announces the kills/deaths of the players in the game log. To be tested in Hideout now
2010-12-06 19:09:31 +01:00
MimmoO b51b8e335b Hideout: PyreGem: Transfer thrower for kill-tracing from LifeGem 2010-12-06 18:46:20 +01:00
David Dormagen 82d534e00e Hideout/LifeGem changes
- LifeGem only spawns when killed by enemy team
- cosmetic changes
2010-12-06 17:55:51 +01:00
MimmoO 66f6c0dc88 Hideout: LifeGem cancel on damage fix 2010-12-06 14:53:02 +01:00
MimmoO 18d81e85cd Hideout: Map fix 2010-12-05 21:36:10 +01:00
MimmoO 612a3a5a60 LifeGem: proper description added 2010-12-05 14:36:27 +01:00
MimmoO dc63668210 Hideout: re-opened a blastable way below the hideout, removed cannons 2010-12-04 23:12:50 +01:00
MimmoO b40935c701 PyreGem: target finding bugfix 2010-12-04 21:51:31 +01:00
MimmoO 44aef776db PyreGem: added even more feedback 2010-12-04 20:46:39 +01:00
MimmoO 25aa4f2f70 Hideout: chests dont stuck in material 2010-12-04 20:35:13 +01:00
MimmoO 63dcc5bb0f Hideout: chests adjustments, pyregem range nerf 2010-12-04 20:30:12 +01:00
MimmoO 90d9e3d017 Hideout: Map smaller map, removed tunnel, added ramp to get to the higher entrance 2010-12-04 18:02:14 +01:00
David Dormagen 9f0f2a26ca LifeGem does not fade out anymore 2010-12-04 17:43:52 +01:00
Maikel de Vries e6d56f90a8 IRC: changed default channel to #openclonk
There are no people in #openclonk-lobby at all, therefore we´d rather invite people to a filled channel, if there is too much spam in #openclonk we can always decide to make a special moderated lobby channel.
2010-12-11 16:12:37 +01:00
Maikel de Vries 60d379a4ae Objects: Fixed (#520), only king gets point malus for suicide in koth 2010-12-11 00:47:05 +01:00
Armin Burgmeier cd243fd077 Update XPM icon from CZ to OC 2010-12-10 23:42:00 +01:00
Sven Eberhardt 0e75437d40 reset OnFire status when fire effect is cleared on Clonk death (#222) 2010-12-10 16:00:53 +01:00
Tobias Zwick fb7a327475 if the clonk is stuck, he can't jump 2010-12-08 16:46:54 +01:00
Tobias Zwick 87faf5c0b5 Javelin exits the clonk on throw in the right height now 2010-12-08 16:34:53 +01:00
Tobias Zwick f2018cc4e7 fixed nullpointer exception on death of clonk that is in no crew 2010-12-08 16:34:20 +01:00
Tobias Zwick 8834f9ea54 Resolved #515: Q now closes other menu and opens backpack menu
Before, Q closed any menu if it was open or else opened the backpack menu.
2010-12-08 01:56:48 +01:00
Tobias Zwick 250bd8aa23 Musket: also resume aiming if the mouse was released shortly while reloading 2010-12-08 01:55:18 +01:00
Tobias Zwick 191921520d resolved #508: Continue to aim with musket after musket reloaded
Before, the musket would always stop using the musket after reloading even if the mouse button was held down the whole time during reload.
2010-12-08 01:24:53 +01:00
Martin Plicht 0d00d808f6 C4MaterialMap::Clear: Also set Num to 0 2010-12-04 04:31:25 +01:00
Martin Plicht 059f3f8bbe C4Config: Save & Load -> same file 2010-08-09 14:52:32 +02:00
Günther Brammer 3e5f4deebb Script: FindConstructionSite returns 0 when the search fails 2010-12-04 23:48:17 +01:00
Armin Burgmeier c11f4075f5 Enable custom installer graphics 2010-12-05 17:44:49 +01:00
Richard Gerum 4651341c5f fixed bug with two grapplers. Shooting the second in the air while hanging on the first doesn't disconnect the rope now 2010-12-04 20:38:59 +01:00
Charles Spurrill 959c0d4322 #512: Cannon can't shoot when turning around
Also improved the turning animations a bit
2010-12-04 11:25:03 -08:00
David Dormagen 5164d4a838 name and desc property added to the LifeGem 2010-12-04 17:34:08 +01:00
Maikel de Vries 157fdabf4a Tutorials: Added missing german string in tut3 2010-12-04 17:22:49 +01:00
Maikel de Vries c5f9eb910f Engine: Objects hit only if both speed and and relative speed exceed HitSpeed2
This is bugfix to c1b41a96cdc6, since not moving objects like a fused dynamit could induce a hit.
2010-12-04 17:02:16 +01:00
Charles Spurrill 212fb1c934 Default control rate in network games is 3, not 1 2010-12-03 21:20:23 -08:00
Günther Brammer 3266d56175 Landscape: Hardcode sky transparency directly (#317)
Since "Remove a lot of old obsolete palette code", the landscape palette
does not have a transparent color at position 0 anymore. Instead of
restoring that invariant, stop getting the sky color from the palette.

Since every other color was taken from a texture already, stop using the
palette altogether for ingame landscape display.
2010-12-04 02:24:13 +01:00
Nicolas Hake 6f1cbe27ef Added tag release-5.1.0 for changeset 17141bc63e61 2010-12-04 11:21:47 +01:00
260 changed files with 4602 additions and 1616 deletions

View File

@ -34,9 +34,12 @@ if(WIN32)
else()
endif()
option(GENERATE_MINI_DUMP "Generate a minidump on crash" ON)
else()
SET(USE_DIRECTX OFF)
SET(HAVE_FMOD OFF)
SET(GENERATE_MINI_DUMP OFF)
endif()
if(UNIX AND NOT USE_SDL_MAINLOOP)
option(USE_X11 "Use X11 to create windows etc." ON)
@ -54,6 +57,7 @@ endif()
option(BUILD_TO_PLANET "Put build files to ./planet/" OFF)
option(DEBUGREC "Debug records" OFF)
option(OC_BUILD_MULTIPROCESSOR "Use all processor cores to build" OFF)
option(WITH_AUTOMATIC_UPDATE "Build engine without automatic update support" ON)
############################################################################
# Check for compiler quirks and features
@ -430,6 +434,7 @@ set(OC_CLONK_SOURCES
src/platform/C4SoundSystem.h
src/platform/C4SoundLoaders.h
src/platform/C4SoundLoaders.cpp
src/platform/StdTApp.cpp
src/platform/C4Video.cpp
src/platform/C4Video.h
src/platform/C4VideoPlayback.cpp
@ -643,6 +648,11 @@ CHECK_INCLUDE_FILE_CXX(langinfo.h HAVE_LANGINFO_H)
CHECK_INCLUDE_FILE_CXX(poll.h HAVE_POLL_H)
CHECK_INCLUDE_FILE_CXX(sys/inotify.h HAVE_SYS_INOTIFY_H)
CHECK_INCLUDE_FILE_CXX(sys/socket.h HAVE_SYS_SOCKET_H)
if(USE_CONSOLE)
CHECK_INCLUDE_FILE_CXX(readline.h HAVE_READLINE_H)
CHECK_INCLUDE_FILE_CXX(readline/readline.h HAVE_READLINE_READLINE_H)
endif()
# ck 09-09-20: The following headers require Xlib.h for things such as
# 'Bool' and 'Window' to be defined. Unfortunately, this doesn't exist
@ -720,6 +730,12 @@ FINDLIB(OPENSSL_LIBRARIES NAMES crypto libeay32)
FIND_PATH(OPENSSL_INCLUDE_DIR NAMES openssl/sha.h)
include_directories(${OPENSSL_INCLUDE_DIR})
if(USE_CONSOLE)
include(./FindReadline.cmake)
include_directories(${READLINE_INCLUDE_DIRS})
SET(HAVE_LIBREADLINE ${READLINE_FOUND} CACHE INTERNAL "libreadline available")
endif()
############################################################################
# Precompiled header support, part 1 (pre-target)
############################################################################
@ -806,6 +822,12 @@ target_link_libraries(c4group
${ZLIB_LIBRARIES}
${OPENSSL_LIBRARIES}
)
if(USE_CONSOLE)
target_link_libraries(clonk
pthread
${READLINE_LIBRARIES}
)
endif()
set_property(TARGET clonk APPEND PROPERTY COMPILE_DEFINITIONS GLEW_STATIC)
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG _DEBUG)
@ -880,6 +902,15 @@ elseif(MINGW)
target_link_libraries(clonk iberty)
endif()
CHECK_INCLUDE_FILE_CXX(getopt.h HAVE_GETOPT_H)
if(GENERATE_MINI_DUMP)
FIND_PATH(DBGHELP_INCLUDE_DIR NAMES dbghelp.h)
FINDLIB(DBGHELP_LIBRARIES NAMES dbghelp)
target_link_libraries(clonk ${DBGHELP_LIBRARIES})
include_directories(${DBGHELP_INCLUDE_DIR})
endif()
if(USE_GL)
include(FindOpenGL)
FINDLIB(GLEW_LIBRARIES NAMES GLEW glew32 glew32s)

31
FindReadline.cmake 100644
View File

@ -0,0 +1,31 @@
# - Find READLINE
# Find the native READLINE includes and library
#
# READLINE_INCLUDE_DIR - where to find READLINE.h, etc.
# READLINE_LIBRARIES - List of libraries when using READLINE.
# READLINE_FOUND - True if READLINE found.
IF (READLINE_INCLUDE_DIR)
# Already in cache, be silent
SET(READLINE_FIND_QUIETLY TRUE)
ENDIF (READLINE_INCLUDE_DIR)
FIND_PATH(READLINE_INCLUDE_DIR readline.h)
SET(READLINE_NAMES readline libreadline)
FIND_LIBRARY(READLINE_LIBRARY NAMES ${READLINE_NAMES} )
# handle the QUIETLY and REQUIRED arguments and set READLINE_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(READLINE DEFAULT_MSG READLINE_LIBRARY READLINE_INCLUDE_DIR)
IF(READLINE_FOUND)
SET( READLINE_LIBRARIES ${READLINE_LIBRARY} )
ELSE(READLINE_FOUND)
SET( READLINE_LIBRARIES )
ENDIF(READLINE_FOUND)
MARK_AS_ADVANCED( READLINE_LIBRARY READLINE_INCLUDE_DIR )

View File

@ -474,6 +474,7 @@ src/platform/StdSurface2.h \
src/platform/StdSurface8.cpp \
src/platform/StdSurface8.h \
src/platform/StdSync.h \
src/platform/StdTApp.cpp \
src/platform/StdVideo.cpp \
src/platform/StdVideo.h \
src/platform/StdWindow.h \
@ -539,7 +540,7 @@ else
if WIN32
clonk_SOURCES += src/platform/StdWindow.cpp
else
clonk_SOURCES += src/platform/StdXApp.cpp src/platform/StdXWindow.cpp src/platform/StdXPrivate.h src/platform/StdTApp.cpp
clonk_SOURCES += src/platform/StdXApp.cpp src/platform/StdXWindow.cpp src/platform/StdXPrivate.h
endif
endif
if DEVELOPER_MODE

View File

@ -16,12 +16,12 @@ SET(C4ENGINEID "${C4PROJECT_TLD}.${C4PROJECT_DOMAIN}.${C4ENGINENICK}")
SET(C4XVER1 5)
SET(C4XVER2 1)
SET(C4XVER3 0)
SET(C4XVER4 0)
SET(C4XVER3 2)
SET(C4XVER4 4)
SET(C4VERSIONBUILDNAME "Back to the Rocks")
SET(C4VERSIONEXTRA "Beta")
SET(C4VERSIONEXTRA "")
############################################################################
# Get revision from Mercurial

View File

@ -176,6 +176,9 @@
/* Use GTK+3 for the developer mode */
#cmakedefine WITH_GTK3 1
/* Enable the automatic update system */
#cmakedefine WITH_AUTOMATIC_UPDATE 1
/* Define to 1 if the X Window System is missing or not being used. */
#cmakedefine X_DISPLAY_MISSING 1
@ -191,3 +194,6 @@
/* Define to 1 if you have support for nullptr. */
#cmakedefine HAVE_NULLPTR 1
/* Generate minidumps on crash */
#cmakedefine GENERATE_MINI_DUMP 1

View File

@ -181,6 +181,9 @@
/* Define to 1 if the X Window System is used */
#undef USE_X11
/* Enable automatic update system */
#undef WITH_AUTOMATIC_UPDATE
/* Developer mode */
#undef WITH_DEVELOPER_MODE

View File

@ -282,6 +282,13 @@ if test "$with_directx" = yes; then
AC_DEFINE([USE_DIRECTX], 1, [DirectX graphics])
fi
AC_ARG_WITH([automatic-update],
[AC_HELP_STRING([--with-automatic-update],[enable support for automatic engine updates [default=yes]])],
, [with_automatic_update="yes"])
if test "$with_automatic_update" = "yes"; then
AC_DEFINE([WITH_AUTOMATIC_UPDATE], 1, [Enable automatic update system])
fi
if test $win32 = false; then
# pthread
AX_PTHREAD( , [AC_MSG_ERROR([No pthread support.])])

25
debian/changelog vendored 100644
View File

@ -0,0 +1,25 @@
openclonk (5.1.1.0-0ubuntu1-ppa4) maverick; urgency=low
* Mercurial as Build Dependency
* Switch to cmake as build system
* Fixed spacing issues in $(CURDIR)
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sun, 31 Dec 2010 15:38:26 +0100
openclonk (5.1.1.0-0ubuntu1-ppa3) maverick; urgency=low
* Fixed Icons
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sun, 27 Dec 2010 15:23:05 +0200
openclonk (5.1.1.0-0ubuntu1-ppa2) maverick; urgency=low
* Added Icons
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sun, 27 Dec 2010 12:23:05 +0200
openclonk (5.1.1.0-0ubuntu1-ppa1) maverick; urgency=low
* Initial release
-- Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> Sat, 25 Dec 2010 23:23:05 +0200

1
debian/compat vendored 100644
View File

@ -0,0 +1 @@
7

13
debian/control vendored 100644
View File

@ -0,0 +1,13 @@
Source: openclonk
Section: games
Priority: extra
Maintainer: Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de>
Build-Depends: debhelper (>= 7), cmake, make (>= 3.8), gcc (>= 4.3), g++ (>=4.3), automake, autoconf, libtool, libc6-dev (>= 2.9), libx11-dev, libxxf86vm-dev, libxrandr-dev, libxpm-dev, libglew1.5-dev, libgl1-mesa-dev, libpng12-dev, libssl-dev, libsdl1.2-dev, libsdl-mixer1.2-dev, libgtk2.0-dev, libjpeg62-dev, zlib1g-dev, libboost-dev, mercurial
Standards-Version: 3.8.0
Homepage: http://wiki.openclonk.org/w/Project
Package: openclonk
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: OpenClonk will be the Open source successor of the Clonk gaming series.
In early march 2009, Matthes Bender told the other developers of Clonk Rage that he wouldn't have any time to work on Clonk anymore. As the Game Designer of Clonk Rage and Directing Manager of RedWolf Design, the company selling the Clonk titles, he left a significant vacancy. The development of Clonk Rage was mostly done as a hobby by the other developers, and although they wanted to continue doing that, they felt that more contributors were needed. Thus it was decided to radically lower the barriers for new contributors by publishing the source code to the engine, allowing everyone to freely modify the source code and game content, and discuss the future directions in an open forum. It was also decided to drop a lot of the "old" game content and drop the backwards compatibility requirement. The goal is to encourage new people to participate, while allowing the Clonk Rage developers to continue working on at least some of the code they produced and are familiar with. There are also plans to continue the clonk.de league for registered players for those who want to play in a supervised league.

38
debian/copyright vendored 100644
View File

@ -0,0 +1,38 @@
This package was debianized by Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> on
Sun, 31 May 2009 21:15:05 +0200.
It was downloaded from http://wiki.openclonk.org/
Upstream Author(s):
redwolf Design
Copyright:
redwolf Design
License:
This package is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
On Debian systems, the complete text of the GNU Lesser General
Public License can be found in `/usr/share/common-licenses/LGPL'.
The Debian packaging is copyright 2009, Sebastian Rühl <sebastian.ruehl@mni.fh-giessen.de> and
is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
# Please also look if there are files or directories which have a
# different copyright/license attached and list them here.

2
debian/dirs vendored 100644
View File

@ -0,0 +1,2 @@
usr/bin
usr/sbin

2
debian/docs vendored 100644
View File

@ -0,0 +1,2 @@
CMakeLists.txt
README.linux.txt

11
debian/openclonk.desktop vendored 100644
View File

@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.0
Name=Open Clonk
GenericName=Game
Comment=OpenClonk is mainly about mining, settling and fast-paced melees.
Exec=clonk
Icon=c4x
StartupNotify=true
Terminal=false
Type=Application
Categories=GNOME;GTK;Game;JumpNRun;

2
debian/openclonk.install vendored 100644
View File

@ -0,0 +1,2 @@
src/res/c4x.xpm usr/share/pixmaps
debian/openclonk.desktop usr/share/applications

100
debian/rules vendored 100644
View File

@ -0,0 +1,100 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
builddir/Makefile:
dh_testdir
# Add here commands to configure the package.
#autoreconf -i && ./configure --with-gtk --without-automatic-update
cmake . -DWITH_AUTOMATIC_UPDATE=0
build: build-stamp
build-stamp: builddir/Makefile
dh_testdir
# Add here commands to compile the package.
$(MAKE)
#docbook-to-man debian/openclonk.sgml > openclonk.1
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
[ ! -f Makefile ] || $(MAKE) clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/openclonk.
#Make the dir where game data is stored
mkdir -p "$(CURDIR)"/debian/openclonk/usr/share/games/clonk
cp -r "$(CURDIR)"/planet/* "$(CURDIR)"/debian/openclonk/usr/share/games/clonk/
# Make the link
mkdir -p "$(CURDIR)"/debian/openclonk/usr/games
cp -a "$(CURDIR)"/clonk "$(CURDIR)"/debian/openclonk/usr/games/clonk.bin
ln -s /usr/games/clonk.bin "$(CURDIR)"/debian/openclonk/usr/share/games/clonk/clonk
echo '#!/bin/sh\n/usr/share/games/clonk/clonk $$@' > "$(CURDIR)"/debian/openclonk/usr/games/clonk
chmod a+x "$(CURDIR)"/debian/openclonk/usr/games/clonk
$(MAKE) c4group
./c4group "$(CURDIR)"/debian/openclonk/usr/share/games/clonk/* -p
# Build architecture-independent files here.
binary-indep: install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: install
dh_testdir
dh_testroot
dh_installchangelogs
# dh_installdocs
dh_installexamples
dh_install
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

View File

@ -104,7 +104,6 @@ msgstr "Kategorie"
#: sdk/script/fn/OCF_HitSpeed1.xml:9(subcat)
#: sdk/script/fn/OCF_Grab.xml:9(subcat)
#: sdk/script/fn/OCF_Fullcon.xml:9(subcat)
#: sdk/script/fn/OCF_FightReady.xml:9(subcat)
#: sdk/script/fn/OCF_Exclusive.xml:9(subcat)
#: sdk/script/fn/OCF_Entrance.xml:9(subcat)
#: sdk/script/fn/OCF_Edible.xml:9(subcat)
@ -1463,7 +1462,6 @@ msgstr "Entfernt alle Objekte."
#: sdk/script/fn/OCF_HitSpeed1.xml:8(category)
#: sdk/script/fn/OCF_Grab.xml:8(category)
#: sdk/script/fn/OCF_Fullcon.xml:8(category)
#: sdk/script/fn/OCF_FightReady.xml:8(category)
#: sdk/script/fn/OCF_Exclusive.xml:8(category)
#: sdk/script/fn/OCF_Entrance.xml:8(category)
#: sdk/script/fn/OCF_Edible.xml:8(category)
@ -1562,7 +1560,6 @@ msgstr "Entfernt alle Objekte."
#: sdk/script/fn/FindObject.xml:8(category)
#: sdk/script/fn/FindContents.xml:8(category)
#: sdk/script/fn/FindBase.xml:8(category)
#: sdk/script/fn/FightWith.xml:8(category)
#: sdk/script/fn/Extinguish.xml:8(category)
#: sdk/script/fn/Explode.xml:8(category)
#: sdk/script/fn/Exit.xml:8(category)
@ -1842,7 +1839,6 @@ msgstr "Konstante für <placeholder-1/>/<placeholder-2/>. Das Objekt ist für de
#: sdk/script/fn/OCF_HitSpeed1.xml:13(remark)
#: sdk/script/fn/OCF_Grab.xml:13(remark)
#: sdk/script/fn/OCF_Fullcon.xml:13(remark)
#: sdk/script/fn/OCF_FightReady.xml:13(remark)
#: sdk/script/fn/OCF_Exclusive.xml:13(remark)
#: sdk/script/fn/OCF_Entrance.xml:13(remark)
#: sdk/script/fn/OCF_Edible.xml:13(remark)
@ -2120,7 +2116,6 @@ msgstr "Setzt die MeshTransformation für das aufrufende Objekt zurück."
#: sdk/script/fn/GetDamage.xml:9(subcat)
#: sdk/script/fn/GetContact.xml:9(subcat)
#: sdk/script/fn/GetCon.xml:9(subcat)
#: sdk/script/fn/FightWith.xml:9(subcat)
#: sdk/script/fn/Extinguish.xml:9(subcat)
#: sdk/script/fn/EnergyCheck.xml:9(subcat)
#: sdk/script/fn/DoMagicEnergy.xml:9(subcat)
@ -6135,7 +6130,6 @@ msgstr "Object character flag: Objekt ist drehbar."
#: sdk/script/fn/OCF_HitSpeed1.xml:14(remark)
#: sdk/script/fn/OCF_Grab.xml:14(remark)
#: sdk/script/fn/OCF_Fullcon.xml:14(remark)
#: sdk/script/fn/OCF_FightReady.xml:14(remark)
#: sdk/script/fn/OCF_Exclusive.xml:14(remark)
#: sdk/script/fn/OCF_Entrance.xml:14(remark)
#: sdk/script/fn/OCF_Edible.xml:14(remark)
@ -6168,7 +6162,6 @@ msgstr "Für weitere Informationen und Beispiele zur Benutzung dieser Konstanten
#: sdk/script/fn/OCF_HitSpeed1.xml:18(emlink)
#: sdk/script/fn/OCF_Grab.xml:18(emlink)
#: sdk/script/fn/OCF_Fullcon.xml:18(emlink)
#: sdk/script/fn/OCF_FightReady.xml:18(emlink)
#: sdk/script/fn/OCF_Exclusive.xml:18(emlink)
#: sdk/script/fn/OCF_Entrance.xml:18(emlink)
#: sdk/script/fn/OCF_Edible.xml:18(emlink)

View File

@ -385,11 +385,6 @@
<col>Integer</col>
<col>0 or 1. If 1 the object can not be taken from containers by a clonk.</col>
</row>
<row>
<literal_col>NoFight</literal_col>
<col>Integer</col>
<col>0 or 1. If 1 the object will never enter into a fight with other living beings.</col>
</row>
<row>
<literal_col>LiftTop</literal_col>
<col>Integer</col>
@ -475,11 +470,6 @@
<col>Integer</col>
<col>0-100000. Push power.</col>
</row>
<row>
<literal_col>Fight</literal_col>
<col>Integer</col>
<col>0-100000. Fight power.</col>
</row>
<row>
<literal_col>Magic</literal_col>
<col>Integer</col>

View File

@ -14,6 +14,6 @@ while (obj = <funclink>FindObject</funclink>(0, -100,-100,200,200, <funclink>OCF
<funclink>SetR</funclink>(180, obj);</code> <text>This script turns all rotatable objects upside down.</text>
<h id="ocf_fns">OCF Constants</h>
<text>The following OCFs are defined in C4Script:</text>
<text><funclink>OCF_Alive</funclink>, <funclink>OCF_AttractLightning</funclink>, <funclink>OCF_Available</funclink>, <funclink>OCF_Chop</funclink>, <funclink>OCF_Collectible</funclink>, <funclink>OCF_Collection</funclink>, <funclink>OCF_Construct</funclink>, <funclink>OCF_Container</funclink>, <funclink>OCF_CrewMember</funclink>, <funclink>OCF_Edible</funclink>, <funclink>OCF_Entrance</funclink>, <funclink>OCF_Exclusive</funclink>, <funclink>OCF_FightReady</funclink>, <funclink>OCF_Fullcon</funclink>, <funclink>OCF_Grab</funclink>, <funclink>OCF_HitSpeed1</funclink>, <funclink>OCF_HitSpeed2</funclink>, <funclink>OCF_HitSpeed3</funclink>, <funclink>OCF_HitSpeed4</funclink>, <funclink>OCF_Inflammable</funclink>, <funclink>OCF_InFree</funclink>, <funclink>OCF_InLiquid</funclink>, <funclink>OCF_InSolid</funclink>, <funclink>OCF_LineConstruct</funclink>, <funclink>OCF_Living</funclink>, <funclink>OCF_NotContained</funclink>, <funclink>OCF_OnFire</funclink>, <funclink>OCF_PowerConsumer</funclink>, <funclink>OCF_PowerSupply</funclink>, <funclink>OCF_Prey</funclink>, <funclink>OCF_Rotate</funclink></text>
<text><funclink>OCF_Alive</funclink>, <funclink>OCF_AttractLightning</funclink>, <funclink>OCF_Available</funclink>, <funclink>OCF_Chop</funclink>, <funclink>OCF_Collectible</funclink>, <funclink>OCF_Collection</funclink>, <funclink>OCF_Construct</funclink>, <funclink>OCF_Container</funclink>, <funclink>OCF_CrewMember</funclink>, <funclink>OCF_Edible</funclink>, <funclink>OCF_Entrance</funclink>, <funclink>OCF_Exclusive</funclink>, <funclink>OCF_Fullcon</funclink>, <funclink>OCF_Grab</funclink>, <funclink>OCF_HitSpeed1</funclink>, <funclink>OCF_HitSpeed2</funclink>, <funclink>OCF_HitSpeed3</funclink>, <funclink>OCF_HitSpeed4</funclink>, <funclink>OCF_Inflammable</funclink>, <funclink>OCF_InFree</funclink>, <funclink>OCF_InLiquid</funclink>, <funclink>OCF_InSolid</funclink>, <funclink>OCF_LineConstruct</funclink>, <funclink>OCF_Living</funclink>, <funclink>OCF_NotContained</funclink>, <funclink>OCF_OnFire</funclink>, <funclink>OCF_PowerConsumer</funclink>, <funclink>OCF_PowerSupply</funclink>, <funclink>OCF_Prey</funclink>, <funclink>OCF_Rotate</funclink></text>
<author>Sven2</author><date>2002-05</date>
</doc>

View File

@ -110,12 +110,6 @@
<col>Adjusts object position at vertex a to the position of vertex b of the <emlink href="script/fn/SetAction.html">target object</emlink>. a and b are the two low bytes of <emlink href="script/fn/SetActionData.html">ActionData</emlink> (see <emlink href="script/fn/SetActionData.html">SetActionData</emlink> for an example).</col>
<col>CNAT_None</col>
</row>
<row>
<col>FIGHT</col>
<col>Fighting</col>
<col>Fight against <emlink href="script/fn/SetAction.html">target object</emlink> according to <emlink href="definition/defcore.html#SektionPhysical">Fight physical</emlink>.</col>
<col>CNAT_Bottom</col>
</row>
<row>
<col>CONNECT</col>
<col>Line connections</col>

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>FightWith</title>
<category>Objects</category>
<subcat>Status</subcat>
<version>4.9.1.0 GWE</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>object</type>
<name>target</name>
<desc>Object to be fought.</desc>
</param>
</params>
</syntax>
<desc>Starts a clonk-to-clonk fight. Using this command you can also make allied clonks fight. Both participants must be <funclink>OCF_FightReady</funclink>.</desc>
<examples>
<example>
<code>FightWith(<funclink>FindObject</funclink>(0, -8,-10,16,20 <funclink>OCF_FightReady</funclink>()));</code>
<text>Fights another object close-by.</text>
</example>
</examples>
<related>
<funclink>Punch</funclink>
<funclink>OCF_FightReady</funclink>
</related>
</func>
<author>Sven2</author><date>2002-05</date>
</funcs>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>OCF_FightReady</title>
<category>Objects</category>
<subcat>OCF</subcat>
<version>4.9.1.0 GWE</version>
<syntax><rtype>int</rtype></syntax>
<desc>Object character flag: object is a living being, has an activity, and no ObjectDisabled flag in that activity.</desc>
<remark>This value is also defined as a constant. Thus the parameter brackets can be omitted.</remark>
<remark>For more information and examples regarding these constants see <emlink href="definition/ocf.html">object character flags</emlink>.</remark>
<related>
<funclink>GetOCF</funclink>
<funclink>FindObject</funclink>
<emlink href="definition/ocf.html">Object character flags</emlink>
</related>
</func>
<author>Sven2</author><date>2002-05</date>
</funcs>

28
licenses/xiph.txt 100644
View File

@ -0,0 +1,28 @@
Copyright (c) 2002, Xiph.org Foundation
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -31,10 +31,10 @@ func Initialize()
goal->AddCheckpoint(3090, 300, mode);
var c=goal->AddCheckpoint(1000, 100, mode);
c->SetCPSize(40);
var door=CreateObject(StoneDoor, 225, 60, NO_OWNER);
var door=CreateObject(StoneDoor, 135, 60, NO_OWNER);
door->CloseGateDoor();
AddEffect("AutoOpen",door,100,100);
goal->SetFinishpoint(200, 150, true);
goal->SetFinishpoint(100, 150, true);
//Items
@ -45,7 +45,7 @@ func Initialize()
CreateObject(Blackpowder,2568,918,-1);
Edges();
PlaceEdges();
Doors();
Decoration();
AddEffect("DynamiteEruption",0,100,130);
@ -108,11 +108,29 @@ protected func Decoration()
}
}
CreateObject(Plane,3030,315,0);
CreateObject(Plane,3160,315,1);
AddEffect("PlaneReset",CreateObject(Plane,3030,315,0),100,10,nil,nil);
AddEffect("PlaneReset",CreateObject(Plane,3160,315,1),100,10,nil,nil);
}
global func FxPlaneResetTimer(object target, int num, int time)
{
if(target->GetX() > 3000 || target->Contents())
{
EffectVar(0, target, num)=0;
return 1;
}
else
EffectVar(0, target, num)++;
if(EffectVar(0, target, num)<4) return 1;
DrawParticleLine("AirIntake",target->GetX()+3,target->GetY(),3030,315,1,40);
DrawParticleLine("MagicSpark",target->GetX()-3,target->GetY(),3030,315,2,40);
target->SetPosition(3030,315);
target->SetR(-90);
target->SetDir(0);
}
protected func Doors()
{
@ -178,11 +196,11 @@ protected func Doors()
}
global func Edges()
global func PlaceEdges()
{
var x=[2735, 2745, 2575, 2175, 2215, 2065, 2055, 1995, 2005, 1985, 1975, 1975, 1985, 1865, 3325, 3265, 2985, 3265, 3085, 3175, 386, 2435, 2555, 2565, 2565, 2565, 2565, 2685, 2765, 2755, 2755, 2745, 2705, 2695, 2685, 2695, 2685, 2675, 2655, 2655, 2665, 2675, 2665, 2645, 2655, 2645, 2635, 2615, 2625, 2635, 2625, 2605, 2615, 2605, 2595, 2575, 2585, 2595, 2585, 2565, 2575, 2565, 2555, 3535, 3525, 3545, 3555, 3555, 3575, 3585, 3595, 3605, 3605, 3595, 3585, 3575, 3385, 1935, 1935, 1915, 1895, 735, 745, 755, 775, 815, 825, 595, 605, 1925, 1915, 1895, 1925, 1935, 1915, 1925, 1925, 1915, 1925, 1935, 1905, 1905, 2085, 2135, 2035, 2035, 2045, 2055, 2195, 2225, 2245, 2235, 2255, 2585, 2515, 2485, 2565, 2785, 3145, 3085, 3015, 3125, 2995, 2875, 2865, 2865, 2855, 2555, 2945, 2955, 3005, 2745, 2735, 2705, 2715, 2695, 2685, 2655, 2665, 2515, 2505, 2565, 2575, 2405, 2415, 1885, 1945, 1995, 1985, 1965, 1955, 1945, 1935, 1925, 1885, 1865, 1855, 1845, 1725, 1695, 1595, 1575, 1795, 2555, 2545, 2545, 2555, 2555, 2545, 2545, 2555, 2535, 335, 345, 325, 275, 265, 95, 45, 45, 425, 385, 605, 565, 555, 2155, 235, 235, 235, 185, 225, 225, 195, 225, 215, 205, 195];
var y=[945, 945, 935, 965, 995, 705, 715, 775, 755, 865, 885, 545, 535, 275, 395, 335, 275, 275, 585, 1085, 715, 1285, 1305, 1295, 1265, 1245, 1225, 1175, 1225, 1215, 1225, 1215, 1155, 1155, 1145, 1145, 1135, 1135, 1105, 1115, 1115, 1125, 1125, 1105, 1105, 1095, 1095, 1075, 1075, 1085, 1085, 1065, 1065, 1055, 1055, 1035, 1035, 1045, 1045, 1025, 1025, 1015, 1015, 675, 665, 655, 665, 625, 635, 645, 655, 665, 715, 725, 735, 745, 745, 885, 865, 865, 865, 1015, 1005, 995, 985, 995, 1005, 955, 965, 785, 885, 885, 985, 975, 1065, 1075, 1105, 1115, 1015, 1025, 1055, 1125, 1245, 1245, 1065, 895, 865, 845, 975, 1015, 1035, 1025, 1045, 925, 925, 1205, 1205, 1235, 725, 735, 735, 595, 745, 635, 625, 645, 635, 915, 655, 645, 675, 585, 595, 585, 575, 585, 575, 585, 595, 655, 645, 635, 645, 595, 585, 575, 595, 485, 465, 455, 445, 435, 425, 405, 395, 385, 375, 365, 345, 325, 285, 275, 565, 935, 935, 955, 955, 975, 975, 995, 995, 915, 695, 785, 785, 835, 845, 715, 655, 625, 545, 525, 835, 835, 825, 935, 205, 105, 65, 45, 195, 115, 35, 275, 345, 395, 425];
var d=[3, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 2, 3, 1, 3, 0, 0, 1, 1, 1, 1, 1, 3, 3, 3, 0, 0, 3, 0, 0, 3, 3, 0, 3, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0, 0, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 1, 3, 2, 3, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 3, 2, 1, 3, 0, 2, 1, 1, 3, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 3, 3, 2, 3, 0, 0, 0, 3, 3, 0, 2, 1, 1, 2, 2, 1, 1, 2, 3, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, 1, 2, 0, 3, 1, 0, 2, 3, 2, 2, 0, 0, 2, 2, 1, 2, 3, 3, 3, 2, 0, 2, 3, 1, 3, 0, 2, 2, 2, 2];
var x=[25, 115, 155, 125, 195, 205, 215, 225, 125, 265, 145, 245, 145, 235, 2155, 555, 565, 605, 385, 425, 45, 45, 95, 265, 275, 325, 345, 335, 2535, 2555, 2545, 2545, 2555, 2555, 2545, 2545, 2555, 1795, 1575, 1595, 1695, 1725, 1845, 1855, 1865, 1885, 1925, 1935, 1945, 1955, 1965, 1985, 1995, 1945, 1885, 2415, 2405, 2575, 2565, 2505, 2515, 2665, 2655, 2685, 2695, 2715, 2705, 2735, 2745, 3005, 2955, 2945, 2555, 2855, 2865, 2865, 2875, 2995, 3125, 3015, 3085, 3145, 2785, 2565, 2485, 2515, 2585, 2255, 2235, 2245, 2225, 2195, 2055, 2045, 2035, 2035, 2135, 2085, 1905, 1905, 1935, 1925, 1915, 1925, 1925, 1915, 1935, 1925, 1895, 1915, 1925, 605, 595, 825, 815, 775, 755, 745, 735, 1895, 1915, 1935, 1935, 3385, 3575, 3585, 3595, 3605, 3605, 3595, 3585, 3575, 3555, 3555, 3545, 3525, 3535, 2555, 2565, 2575, 2565, 2585, 2595, 2585, 2575, 2595, 2605, 2615, 2605, 2625, 2635, 2625, 2615, 2635, 2645, 2655, 2645, 2665, 2675, 2665, 2655, 2655, 2675, 2685, 2695, 2685, 2695, 2705, 2745, 2755, 2755, 2765, 2685, 2565, 2565, 2565, 2565, 2555, 2435, 386, 3175, 3085, 3265, 2985, 3265, 3325, 1865, 1985, 1975, 1975, 1985, 2005, 1995, 2055, 2065, 2215, 2175, 2575, 2745, 2735];
var y=[45, 45, 45, 125, 425, 395, 345, 275, 195, 35, 125, 175, 155, 215, 935, 825, 835, 835, 525, 545, 625, 655, 715, 845, 835, 785, 785, 695, 915, 995, 995, 975, 975, 955, 955, 935, 935, 565, 275, 285, 325, 345, 365, 375, 385, 395, 405, 425, 435, 445, 455, 465, 485, 595, 575, 585, 595, 645, 635, 645, 655, 595, 585, 575, 585, 575, 585, 595, 585, 675, 645, 655, 915, 635, 645, 625, 635, 745, 595, 735, 735, 725, 1235, 1205, 1205, 925, 925, 1045, 1025, 1035, 1015, 975, 845, 865, 895, 1065, 1245, 1245, 1125, 1055, 1025, 1015, 1115, 1105, 1075, 1065, 975, 985, 885, 885, 785, 965, 955, 1005, 995, 985, 995, 1005, 1015, 865, 865, 865, 885, 745, 745, 735, 725, 715, 665, 655, 645, 635, 625, 665, 655, 665, 675, 1015, 1015, 1025, 1025, 1045, 1045, 1035, 1035, 1055, 1055, 1065, 1065, 1085, 1085, 1075, 1075, 1095, 1095, 1105, 1105, 1125, 1125, 1115, 1115, 1105, 1135, 1135, 1145, 1145, 1155, 1155, 1215, 1225, 1215, 1225, 1175, 1225, 1245, 1265, 1295, 1305, 1285, 715, 1085, 585, 275, 275, 335, 395, 275, 535, 545, 885, 865, 755, 775, 715, 705, 995, 965, 935, 945, 945];
var d=[2, 3, 2, 3, 2, 2, 2, 2, 1, 2, 2, 2, 0, 2, 3, 3, 3, 2, 1, 2, 2, 0, 0, 2, 2, 3, 2, 0, 1, 3, 0, 2, 1, 3, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 3, 2, 1, 1, 2, 2, 1, 1, 2, 0, 3, 3, 0, 0, 0, 3, 2, 3, 3, 0, 0, 0, 0, 0, 1, 0, 0, 1, 3, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 3, 1, 1, 2, 0, 3, 1, 2, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 3, 2, 3, 1, 0, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 3, 3, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 0, 3, 3, 0, 3, 0, 3, 3, 0, 0, 3, 0, 0, 3, 3, 3, 1, 1, 1, 1, 1, 0, 0, 3, 1, 3, 2, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 3];
for (var i = 0; i < GetLength(x); i++)
{
var edge=CreateObject(BrickEdge, x[i], y[i] + 5, NO_OWNER);

View File

@ -1,68 +1,79 @@
/*-- Cavern --*/
/*--
Cool Cavern
Author: Maikel
Cavern with lots of snow, ice, rock and dirt.
--*/
overlay Mats {
algo=rndchecker;
a=8;
// Randomly placed material specks according to rndchecker.
overlay MatRC {
algo=rndchecker; a=8;
zoomX=-50; zoomY=-50;
turbulence=500; loosebounds=1;
turbulence=100; loosebounds=1;
};
// Fills an overlay with earth and materials.
overlay MatFill {
overlay { mat=Earth; tex=earth_dry; loosebounds=1; };
Mats { mat=Ore; tex=ore; a=20; };
Mats { mat=Snow; tex=snow1; a=20; };
Mats { mat=Granite; tex=granite; a=20; };
Mats { mat=Rock; tex=rock; a=20; };
Mats { mat=Ore; tex=ore; a=20; };
Mats { mat=Ice; tex=ice3; a=20; };
Mats { mat=Snow; tex=snow1; a=20; };
Mats { mat=Ice; tex=ice3; };
Mats { mat=Rock; tex=rock; };
Mats { mat=Tunnel; tex=tunnel; };
Mats { mat=Earth; tex=earth_dry; };
Mats { mat=Earth; tex=earth_rough; };
MatRC { mat=Ore; tex=ore; a=20; };
MatRC { mat=Snow; tex=snow1; a=20; };
MatRC { mat=Granite; tex=granite; a=20; };
MatRC { mat=Rock; tex=rock; a=20; };
MatRC { mat=Ore; tex=ore; a=20; };
MatRC { mat=Ice; tex=ice3; a=20; };
MatRC { mat=Snow; tex=snow1; a=20; };
MatRC { mat=Ice; tex=ice3; };
MatRC { mat=Rock; tex=rock; };
MatRC { mat=Tunnel; tex=tunnel; };
MatRC { mat=Earth; tex=earth_dry; };
MatRC { mat=Earth; tex=earth_rough; };
overlay {
algo=lines;
a=3; b=16;
algo=lines; a=3; b=16;
rotate=45;
turbulence=500;
turbulence=100;
mat=Tunnel; tex=tunnel;
};
overlay {
algo=lines;
a=3; b=16;
algo=lines; a=3; b=16;
rotate=-45;
turbulence=500;
turbulence=100;
mat=Tunnel; tex=tunnel;
};
};
overlay RockFill {
// Randomly placed material specks according to bozo.
overlay MatBozo {
algo=bozo; a=5;
turbulence=1000; loosebounds=1;
};
// Fills an overlay with ice, tunnel, rock and granite.
overlay BorderFill {
overlay { mat=Rock; tex=rock; loosebounds=1;
overlay { mat=Tunnel; tex=tunnel; algo=bozo; a=5; turbulence=5000; loosebounds=1; };
overlay { mat=Rock; tex=rock_cracked; algo=bozo; a=6; turbulence=5000; loosebounds=1; };
overlay { mat=Granite; tex=granite; algo=bozo; a=14; turbulence=5000; loosebounds=1; };
overlay { mat=Ice; tex=ice3; algo=bozo; a=8; turbulence=5000; loosebounds=1; };
overlay { mat=Tunnel; tex=tunnel; algo=bozo; a=5; turbulence=5000; loosebounds=1; };
MatBozo { mat=Tunnel; tex=tunnel; };
MatBozo { mat=Rock; tex=rock_cracked; a=6; };
MatBozo { mat=Granite; tex=granite; a=14; };
MatBozo { mat=Ice; tex=ice3; a=8; };
MatBozo { mat=Tunnel; tex=tunnel; };
};
};
// A lengthy vertical cavern surrounded by ice, dirt and rock.
map Cavern {
// Basic shape.
overlay {
y=95; hgt=20;
mask=1;
} |
overlay {
algo=lines;
a=100; b=120;
ox=-50;
turbulence=500; lambda=3;
mask=1;
// Cut cavern out of the landscape.
x=40; wdt=20; y=-6; hgt=100;
turbulence=100; lambda=4;
loosebounds=1;
} ^ overlay {
// Fill remaining area with MatFill.
MatFill;
// And create a border around this area.
overlay {
algo = border; a=4; b=4;
RockFill;
algo=border; a=4; b=4;
// Fill border with BorderFill.
BorderFill;
};
};
};

View File

@ -28,6 +28,7 @@ InEarthLevel=80,0,0,100
Sky=Clouds1
MapWidth=100,0,64,250
MapHeight=250,0,40,250
TopOpen=0
SkyScrollMode=2
[Weather]

View File

@ -0,0 +1,339 @@
/*--
ForgottenHeights
Author: Mimmo_O
Last man Standing on sky islands for up to 12 players.
--*/
protected func Initialize()
{
// Goal.
CreateObject(Rule_ObjectFade)->DoFadeTime(8 * 36);
var goal = CreateObject(Goal_KingOfTheHill, 450, 380, NO_OWNER);
goal->SetRadius(90);
goal->SetPointLimit(10);
AddEffect("BlessTheKing",goal,100,1,nil);
CreateObject(Rule_KillLogs);
//Enviroment.
//SetSkyAdjust(RGBa(250,250,255,128),RGB(200,200,220));
Sound("BirdsLoop.ogg",true,100,nil,+1);
CreateObject(Column,650,360);
CreateObject(Column,350,390);
CreateObject(Column,160,220);
CreateObject(Column,448,240);
CreateObject(Column,810,170);
// Chests with weapons.
CreateObject(Chest, 175, 200, NO_OWNER);
CreateObject(Chest, 800, 150, NO_OWNER);
CreateObject(Chest, 430, 240, NO_OWNER);
CreateObject(Chest, 610, 340, NO_OWNER);
CreateObject(Chest, 355, 390, NO_OWNER);
AddEffect("IntFillChests", nil, 100, 2 * 36, this);
// Smooth brick edges.
AddEffect("ChanneledWind", nil, 100, 1, this);
AddEffect("Balloons", nil, 100, 100, this);
PlaceEdges();
MovingBricks();
PlaceGras();
return;
}
global func FxLifestealDamage(object target, int num, int damage, int cause, int from)
{
if(!FindObject(Find_ID(KingOfTheHill_Location))->GetKing()) return damage;
if(from == -1) return damage;
if(damage > 0) return damage;
if(target->GetOwner() == from) return damage;
if(FindObject(Find_ID(KingOfTheHill_Location))->GetKing()->GetOwner() == from)
{
var king=FindObject(Find_ID(KingOfTheHill_Location))->GetKing();
AddEffect("Lifedrain",king,100,1,nil,nil,damage/3);
}
return damage;
}
global func FxLifedrainStart(object target, int num, int temporary,damage)
{
if(temporary) return 1;
EffectVar(0,target,num)=damage/10;
}
global func FxLifedrainAdd(object target, int num, string new_name, int new_timer, damage)
{
EffectVar(0,target,num)+=damage/10;
}
global func FxLifedrainTimer(object target, int num, int timer)
{
if(EffectVar(0,target,num)>0) return -1;
target->DoEnergy(+100,1,0,-1);
EffectVar(0,target,num)+=10;
}
global func FxBlessTheKingTimer(object target, int num, int timer)
{
//evil effect abuse :O
for(var dead in FindObjects(Find_ID(Clonk),Find_Not(Find_OCF(OCF_Alive))))
{
CastParticles("Air",50,50,dead->GetX(),dead->GetY(),50+Random(30));
for(var i=0; i<200; i++)
{
var r=Random(360);
CreateParticle("AirIntake",dead->GetX()+Sin(r,6-Random(5)),dead->GetY()-Cos(r,6-Random(5)),RandomX(-2,2),-(i/3),20+Random(20),dead->GetPlayerColor());
}
dead->RemoveObject();
}
if(!FindObject(Find_ID(KingOfTheHill_Location))) return 1;
if(FindObject(Find_ID(KingOfTheHill_Location))->GetKing() == nil) return 1;
var king=FindObject(Find_ID(KingOfTheHill_Location))->GetKing();
for(var i=0; i<5; i++)
{
var r=Random(360);
var clr=RGBa(30,100-Random(50),255-Random(160),230+Random(20));
var str=0;
if(GetEffect("Lifedrain",king))
{
clr=RGBa(BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king)),30,225)+Random(20),160-(BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king))/2,10,100))-Random(50),230-BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king)),30,225)+Random(20), 230+Random(20));
var str=Random(BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king))/10,2,6));
}
CreateParticle("AirIntake",king->GetX()+Sin(r,6-Random(5)),king->GetY()-Cos(r,6-Random(5)),Sin(r + 90,8+Random(4)+str),-Cos(r +90,8+Random(4)+str),20+Random(30) +str*str,clr);
CreateParticle("AirIntake",king->GetX()+Sin(r + 180,6-Random(5)),king->GetY()-Cos(r+180,6-Random(5)),Sin(r + 90,8+Random(4)+str),-Cos(r +90,8+Random(4)+str),20+Random(30)+str*str,clr);
}
CreateParticle("AirIntake",king->GetX()+Sin(r + 180,6-Random(5)),king->GetY()-Cos(r+180,6-Random(5)),0,-25,20+Random(20),king->GetPlayerColor());
return 1;
}
global func MovingBricks()
{
CreateObject(MovingBrick,370,430)->Room(140,0,0,10,0);
CreateObject(MovingBrick,550,250)->Room(0,50,0,0,9);
}
global func FxChanneledWindTimer()
{
for(var obj in FindObjects(Find_InRect(230,300,40,90)))
{
obj->SetYDir(Max(obj->GetYDir()-5,-50));
obj->SetXDir(obj->GetXDir()+RandomX(-1,1));
}
for(var obj in FindObjects(Find_InRect(700,250,60,100)))
{
obj->SetYDir(Max(obj->GetYDir()-5,-50));
obj->SetXDir(obj->GetXDir()+RandomX(-1,1));
}
CreateParticle("AirIntake",230+Random(40),398,RandomX(-1,1),-30,60+Random(10),RGB(100+Random(25),128+Random(20),255));
CreateParticle("AirIntake",700+Random(60),348,RandomX(-1,1),-30,60+Random(10),RGB(100+Random(25),128+Random(20),255));
}
global func FxBalloonsTimer()
{
if(ObjectCount(Find_ID(TargetBalloon)) > 2 )
{
return 1;
}
if(ObjectCount(Find_ID(TargetBalloon)) )
{
if(Random(6)) return 1;
}
if(Random(2)) return 1;
var x = Random(300)+50;
if(Random(2)) x = LandscapeWidth() - x;
var y = Random(50) + 100;
var target;
var r = Random(3);
if(r == 0) target = CreateObject(Boompack, x, y, NO_OWNER);
if(r == 1){target = CreateObject(DynamiteBox, x, y, NO_OWNER); target->SetR(180); }
if(r == 2){target = CreateObject(Arrow, x, y, NO_OWNER); target->SetObjDrawTransform(1000,0,0,0,1000,-7500);}
var balloon = CreateObject(TargetBalloon, x, y-30, NO_OWNER);
balloon->SetProperty("load",target);
target->SetAction("Attach", balloon);
CreateParticle("Flash", x, y - 50, 0, 0, 500, RGB(255, 255, 255));
AddEffect("HorizontalMoving", balloon, 1, 1, balloon);
balloon->SetXDir(((Random(2)*2)-1) * (Random(4)+3));
}
global func PlaceEdges()
{
var x=[505, 525, 365, 765, 765, 695, 765, 275, 225, 225, 775, 685, 775, 685, 675, 665, 405, 415, 235, 215, 215, 375, 285, 285];
var y=[385, 395, 395, 235, 205, 295, 295, 345, 345, 255, 365, 225, 305, 305, 315, 325, 225, 235, 445, 375, 355, 365, 355, 275];
var d=[3, 2, 3, 3, 1, 1, 0, 0, 1, 0, 2, 3, 0, 1, 1, 1, 1, 2, 3, 3, 1, 0, 0, 2];
for (var i = 0; i < GetLength(x); i++)
{
var edge=CreateObject(BrickEdge);
edge->SetP(d[i]);
edge->SetPosition(x[i],y[i]+50);
edge->PermaEdge();
}
return 1;
}
global func PlaceGras()
{
var x=[756, 756, 756, 757, 497, 497, 498, 498, 498, 497, 222, 223, 147, 148, 147, 148, 147, 147, 214, 215, 214, 214, 214, 214, 214, 705, 704, 704, 764, 765, 765, 765, 823, 824, 825, 825, 778, 778, 778, 778, 778, 395, 233, 235, 235, 396, 266, 396, 397, 397, 396, 396, 266, 267, 175, 180, 193, 199, 207, 212, 223, 273, 330, 322, 314, 306, 298, 289, 282, 338, 365, 306, 320, 325, 297, 369, 375, 379, 335, 312, 290, 285, 281, 276, 272, 227, 411, 207, 213, 218, 223, 404, 400, 435, 419, 481, 474, 468, 462, 427, 489, 555, 508, 514, 525, 532, 540, 548, 520, 503, 576, 604, 596, 590, 582, 570, 563, 609, 670, 626, 632, 661, 666, 638, 621, 615, 674, 680, 686, 691, 696, 760, 761, 766, 771, 781, 777, 778, 637, 643, 631, 612, 618, 624, 686, 692, 680, 652, 660, 668, 673, 699, 789, 819, 782, 771, 220, 228, 764, 188];
var y=[264, 268, 275, 280, 418, 407, 395, 383, 393, 403, 289, 283, 257, 252, 229, 247, 237, 243, 270, 253, 248, 261, 240, 231, 235, 274, 271, 266, 241, 229, 222, 237, 198, 195, 190, 184, 213, 199, 186, 192, 208, 296, 327, 318, 312, 285, 320, 310, 284, 291, 304, 320, 312, 328, 227, 228, 225, 225, 226, 275, 297, 307, 308, 308, 306, 305, 307, 307, 306, 307, 408, 406, 406, 407, 406, 408, 413, 414, 408, 405, 404, 400, 395, 391, 388, 389, 268, 407, 403, 397, 394, 272, 279, 265, 266, 268, 267, 264, 267, 268, 269, 377, 377, 375, 377, 375, 378, 378, 376, 376, 376, 375, 375, 378, 379, 376, 376, 378, 367, 378, 377, 375, 371, 377, 376, 377, 364, 359, 353, 346, 341, 257, 338, 344, 350, 362, 356, 217, 257, 256, 256, 257, 257, 256, 259, 258, 259, 256, 258, 258, 259, 259, 179, 175, 178, 218, 274, 306, 250, 226];
var r=[-89, -91, -93, -90, -93, -93, -92, -88, -93, -93, 87, 89, -90, -91, -89, -91, -90, -90, 93, 87, 88, 87, 90, 93, 88, 90, 93, 89, -87, -92, -92, -92, 88, 93, 90, 93, -91, -93, -88, -92, -90, -88, 93, 88, 91, -90, -88, -90, -91, -93, -87, -92, -87, -93, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 0, 0, 0, 46, 44, 42, 48, -43, -48, -45, -45, -43, -48, -45, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, -43, -44, 0, 0, 0, -42, -42, -48, -44, -45, -89, 48, 46, 48, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, -89, 0];
for (var i = 0; i < GetLength(x); i++)
{
var edge=CreateObject(Grass, x[i], y[i] + 5, NO_OWNER);
edge->SetR(r[i]);
edge->Initialize();
edge->SetCategory(C4D_StaticBack);
if(!Random(10))
{
var big=Random(50);
var new = CreateObject(Fern,edge->GetX(),edge->GetY()+(big/2));
new->DoCon(big);
new->SetR(r[i]);
edge->Incinerate();
}
}
return 1;
}
global func MakeGrasFunction(bool fExact)
{
var x=[];
var y=[];
var r=[];
for(var e in FindObjects(Find_ID(Grass)))
{
x[GetLength(x)]=e->GetX();
y[GetLength(y)]=e->GetY();
r[GetLength(r)]=e->GetR();
}
Log("global func PlaceGras()");
Log("{");
Log(" var x=%v;",x);
Log(" var y=%v;",y);
Log(" var r=%v;",r);
Log(" for (var i = 0; i < GetLength(x); i++)");
Log(" {");
Log(" var edge=CreateObject(Grass, x[i], y[i] + 5, NO_OWNER);");
Log(" edge->SetR(r[i]); ");
Log(" edge->Initialize();"); //additional initialize for anti self blocking
Log(" }");
Log(" return 1;");
Log("}");
}
private func MakeTarget(int x, int y)
{
var target = CreateObject(DynamiteBox, x, y, NO_OWNER);
var balloon = CreateObject(TargetBalloon, x, y-30, NO_OWNER);
balloon->SetProperty("load",target);
target->SetAction("Attach", balloon);
CreateParticle("Flash", x, y - 50, 0, 0, 500, RGB(255, 255, 255));
}
// Gamecall from LastManStanding goal, on respawning.
protected func OnPlayerRelaunch(int plr)
{
var clonk = GetCrew(plr);
var relaunch = CreateObject(RelaunchContainer, LandscapeWidth() / 2, LandscapeHeight() / 2, clonk->GetOwner());
relaunch->StartRelaunch(clonk);
return;
}
// Refill/fill chests.
global func FxIntFillChestsStart(object target, int num, int temporary)
{
if(temporary) return 1;
var chests = FindObjects(Find_ID(Chest),Find_InRect(0,0,LandscapeWidth(),610));
var w_list = [Shield, Javelin, FireballScroll, Bow, Musket, WindScroll, ThunderScroll];
for(var chest in chests)
for(var i=0; i<4; ++i)
chest->CreateChestContents(w_list[Random(GetLength(w_list))]);
return 1;
}
global func FxIntFillChestsTimer()
{
SetTemperature(100);
var chest = FindObjects(Find_ID(Chest), Sort_Random())[0];
var w_list = [Javelin, Bow, Musket, Boompack, Dynamite, Shield, WindScroll, FireballScroll, ThunderScroll, Club, Sword];
var maxcount = [1,1,1,1,2,1,1,2,2,1,1];
var contents;
for(var i=0; i<chest->GetLength(w_list); i++)
contents+=chest->ContentsCount(w_list[i]);
if(contents > 5) return 1;
if(!FindObject(Find_ID(Clonk),Find_Distance(20,chest->GetX(),chest->GetY())) && chest->ContentsCount()>2)
{
var r=chest->Random(chest->ContentsCount());
var remove=true;
for(var i=0; i<GetLength(w_list); i++)
if(chest->Contents(r)->GetID() == w_list[i]) remove=false;
if(remove) chest->Contents(r)->RemoveObject();
}
for(var i=0; i<2 ; i++)
{
var r = Random(GetLength(w_list));
if (chest->ContentsCount(w_list[r]) < maxcount[r])
{
chest->CreateChestContents(w_list[r]);
i=3;
}
}
return 1;
}
global func CreateChestContents(id obj_id)
{
if (!this)
return;
var obj = CreateObject(obj_id);
if (obj_id == Bow)
obj->CreateContents(Arrow);
if (obj_id == Musket)
obj->CreateContents(LeadShot);
obj->Enter(this);
return;
}
// GameCall from RelaunchContainer.
protected func RelaunchPlayer(int plr)
{
var clonk = CreateObject(Clonk, 0, 0, plr);
clonk->MakeCrewMember(plr);
SetCursor(plr, clonk);
JoinPlayer(plr);
return;
}
protected func JoinPlayer(int plr)
{
var clonk = GetCrew(plr);
clonk->DoEnergy(100000);
var position = [[180,150],[310,320],[600,290],[650,180],[790,110],[440,190]];
var r=Random(GetLength(position));
var x = position[r][0], y = position[r][1];
var relaunch = CreateObject(RelaunchContainer, x,y+49, clonk->GetOwner());
relaunch->StartRelaunch(clonk);
return;
}
func KillsToRelaunch() { return 0; }
func RelaunchWeaponList() { return [Bow, Javelin, Musket, FireballScroll, WindScroll, ThunderScroll]; }

View File

@ -17,12 +17,12 @@ protected func Initialize()
FindObject(Find_ID(Moon))->SetPhase(3);
FindObject(Find_ID(Moon))->SetCon(150);
FindObject(Find_ID(Moon))->SetPosition(LandscapeWidth()/2,150);
// Goal: Capture the flag, with bases in both hideouts.
var goal = CreateObject(Goal_CaptureTheFlag, 0, 0, NO_OWNER);
goal->SetFlagBase(1, 135, 260);
goal->SetFlagBase(2, LandscapeWidth() - 135, 260);
CreateObject(Rule_KillLogs);
var gate = CreateObject(StoneDoor, 345, 230, NO_OWNER);
gate->SetClrModulation(RGB(130,190,255));

View File

@ -1,2 +1,2 @@
Name=Frostbolzen-Schriftrolle
Description=Schleudere einen gefrorenen Blitz in die Gegnermenge.
Description=Schleudere einen gefrorenen Blitz in die Gegnermenge. Schädigt nur Clonks.

View File

@ -1,2 +1,2 @@
Name=Frostbolt Scroll
Description=Hurl a frozen bolt into your enemies.
Description=Hurl a frozen bolt into your enemies. Only hurts Clonks.

View File

@ -50,9 +50,9 @@ global func DoBlueExplosion(int x, int y, int level, object inobj, int cause_plr
BlueExplosionEffect(level, x, y);
}
// Damage in the objects, and outside.
BlastObjects(x + GetX(), y + GetY(), level, inobj, cause_plr, layer);
BlastObjectsBlue(x + GetX(), y + GetY(), level, inobj, cause_plr, layer);
if (inobj != container)
BlastObjects(x + GetX(), y + GetY(), level, container, cause_plr, layer);
BlastObjectsBlue(x + GetX(), y + GetY(), level, container, cause_plr, layer);
// Landschaft zerstören. Nach BlastObjects, damit neu freigesprengte Materialien nicht betroffen sind
if (!container)
@ -84,3 +84,89 @@ global func BlueExplosionEffect(int level, int x, int y)
}*/
return;
}
global func BlastObjectsBlue(int x, int y, int level, object container, int cause_plr, object layer)
{
var obj;
// Coordinates are always supplied globally, convert to local coordinates.
var l_x = x - GetX(), l_y = y - GetY();
// In a container?
if (container)
{
if (container->GetObjectLayer() == layer)
{
container->BlastObject(level, cause_plr);
if (!container)
return true; // Container could be removed in the meanwhile.
for (obj in FindObjects(Find_Container(container), Find_Layer(layer)))
if (obj)
obj->BlastObject(level, cause_plr);
}
}
else
{
// Object is outside.
// Damage objects at point of explosion.
for (var obj in FindObjects(Find_AtRect(l_x - 5, l_y - 5, 10,10), Find_NoContainer(), Find_Layer(layer), Find_Not(Find_ID(StoneDoor))))
if (obj) obj->BlastObject(level, cause_plr);
// TODO: -> Shockwave in own global func(?)
// Hurl objects in explosion radius.
var shockwave_objs = FindObjects(Find_Distance(level, l_x, l_y), Find_NoContainer(), Find_Layer(layer),
Find_Or(Find_Category(C4D_Object|C4D_Living|C4D_Vehicle), Find_Func("CanBeHitByShockwaves")), Find_Func("BlastObjectsShockwaveCheck", x, y));
var cnt = GetLength(shockwave_objs);
if (cnt)
{
// The hurl energy is distributed over the objects.
//Log("Shockwave objs %v (%d)", shockwave_objs, cnt);
var shock_speed = Sqrt(2 * level * level / BoundBy(cnt, 2, 12));
for (var obj in shockwave_objs)
if (obj) // Test obj, cause OnShockwaveHit could have removed objects.
{
// Object has special reaction on shockwave?
if (obj->~OnShockwaveHit(level, x, y))
continue;
// Living beings are hurt more.
var cat = obj->GetCategory();
if (cat & C4D_Living)
{
obj->DoEnergy(level / -2, false, FX_Call_EngBlast, cause_plr);
obj->DoDamage(level / 2, FX_Call_DmgBlast, cause_plr);
}
// Killtracing for projectiles.
if (cat & C4D_Object)
obj->SetController(cause_plr);
// Shockwave.
var mass_fact = 20, mass_mul = 100;
if (cat & C4D_Living)
{
mass_fact = 8;
mass_mul = 80;
}
mass_fact = BoundBy(obj->GetMass() * mass_mul / 1000, 4, mass_fact);
var dx = 100 * (obj->GetX() - x) + Random(51) - 25;
var dy = 100 * (obj->GetY() - y) + Random(51) - 25;
var vx, vy;
if (dx)
vx = Abs(dx) / dx * (100 * level - Abs(dx)) * shock_speed / level / mass_fact;
vy = (Abs(dy) - 100 * level) * shock_speed / level / mass_fact;
if (cat & C4D_Object)
{
// Objects shouldn't move too fast.
var ovx = obj->GetXDir(100), ovy = obj->GetYDir(100);
if (ovx * vx > 0)
vx = (Sqrt(vx * vx + ovx * ovx) - Abs(vx)) * Abs(vx) / vx;
if (ovy * vy > 0)
vy = (Sqrt(vy * vy + ovy * ovy) - Abs(vy)) * Abs(vy) / vy;
}
//Log("%v v(%v %v) d(%v %v) m=%v l=%v s=%v", obj, vx,vy, dx,dy, mass_fact, level, shock_speed);
obj->Fling(vx, vy, 100, true);
}
}
}
// Done.
return true;
}

View File

@ -1,4 +1,4 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria Math;}
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
@ -34,10 +34,10 @@
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext0 \sqformat \spriority0 Normal;}
{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid3944165\rsid8603462\rsid12124512\rsid13005169}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0
\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator MimmoO}{\creatim\yr2010\mo12\dy3\hr18\min34}{\revtim\yr2010\mo12\dy3\hr18\min37}{\version5}{\edmins0}{\nofpages1}{\nofwords72}{\nofchars457}{\nofcharsws528}{\vern32859}}{\*\xmlnstbl {\xmlns1 htt
p://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\pgptbl {\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid3944165\rsid4480968\rsid8603462\rsid12124512\rsid13005169}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0
\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator MimmoO}{\creatim\yr2010\mo12\dy3\hr18\min34}{\revtim\yr2010\mo12\dy7\hr22\min24}{\version6}{\edmins0}{\nofpages1}{\nofwords87}{\nofchars553}{\nofcharsws639}{\vern32859}}
{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale160\rsidroot12124512 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\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 )}}
@ -47,19 +47,22 @@ p://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\marg
\f0\fs20\insrsid12124512\charrsid12124512
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512
\par \hich\af0\dbch\af31505\loch\f0 \hich\f0 Besch\'fc\loch\f0 tze dein Versteck und versuche, di}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 e Flagge des Gegners zu erobern}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 . \hich\af0\dbch\af31505\loch\f0 Schnapp}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 '}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 die die Flagge\hich\af0\dbch\af31505\loch\f0 \hich\f0 und bring sie in deine Basis, w\'e4\loch\f0 hrend sich deine Flagge in deiner Basis befindet, um zu punkten.}{\rtlch\fcs1
\af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid8603462 \hich\af0\dbch\af31505\loch\f0
\f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 . Schnapp}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 '}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512
\hich\af0\dbch\af31505\loch\f0 \hich\f0 die die Flagge und bring sie in deine Basis, w\'e4\hich\af0\dbch\af31505\loch\f0 hrend sich deine Flagge in deiner Basis befindet, um zu punkten.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid8603462
\hich\af0\dbch\af31505\loch\f0
\par
\par \hich\af0\dbch\af31505\loch\f0 Einige Tipps:}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid8603462
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 - \hich\af0\dbch\af31505\loch\f0 \hich\f0 Toren k\'f6\loch\f0 \hich\f0 nnen zerst\'f6\loch\f0 rt werden. Die Tore in der Basis }{\rtlch\fcs1
\af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 werden}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 automatisch gesteuert.
\par \hich\af0\dbch\af31505\loch\f0 - \hich\af0\dbch\af31505\loch\f0 Truhen in der Basis beinhalten grundlegen}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid13005169 \hich\af0\dbch\af31505\loch\f0 d}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 e Waffen.
\par \hich\af0\dbch\af31505\loch\f0 - \hich\af0\dbch\af31505\loch\f0 \hich\f0 Truhen au\'df\loch\f0 erhalb der Ba\hich\af0\dbch\af31505\loch\f0 sis beinhalten weitere Waffen.
\par \hich\af0\dbch\af31505\loch\f0 - \hich\af0\dbch\af31505\loch\f0 Die mittlere Truhe beinhaltet viele Kristalle und besondere }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 \hich\f0 Gegenst\'e4\loch\f0 nde.}{
\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512
\par \hich\af0\dbch\af31505\loch\f0 - \hich\af0\dbch\af31505\loch\f0 Wirf Kristalle um sie zu aktivieren.
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 \hich\f0 - Toren k\'f6\loch\f0 \hich\f0 nnen zerst\'f6\loch\f0 rt werden. Die Tore in der Basis }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 werden}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 automatisch gesteuert.
\par \hich\af0\dbch\af31505\loch\f0 - Truhen in der Basis beinhalten grundlegen}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid13005169 \hich\af0\dbch\af31505\loch\f0 d}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512
\hich\af0\dbch\af31505\loch\f0 e Waffen.
\par \hich\af0\dbch\af31505\loch\f0 \hich\f0 - Truhen au\'df\loch\f0 erhalb der Basis beinhalt\hich\af0\dbch\af31505\loch\f0 en weitere Waffen.
\par \hich\af0\dbch\af31505\loch\f0 - Die mittlere Truhe beinhaltet viele Kristalle und besondere }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512 \hich\af0\dbch\af31505\loch\f0 \hich\f0 Gegenst\'e4\loch\f0 nde.}{\rtlch\fcs1 \af0\afs16
\ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512
\par \hich\af0\dbch\af31505\loch\f0 - Wirf Kristalle}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid4480968 \hich\af0\dbch\af31505\loch\f0 !}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512\charrsid12124512 \hich\af0\dbch\af31505\loch\f0 }{
\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid4480968 \hich\af0\dbch\af31505\loch\f0 Sie aktivieren sich beim Aufprall.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12124512
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid4480968 \hich\af0\dbch\af31505\loch\f0 \hich\f0 - Get\'f6\loch\f0 tete Gegner hi\hich\af0\dbch\af31505\loch\f0 nt\hich\af0\dbch\af31505\loch\f0
erlassen einen Heilkristall. Dieser heilt den Clonk bei benutzung langsam.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid4480968\charrsid12124512
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid12124512 {\rtlch\fcs1 \af31507\afs16 \ltrch\fcs0 \insrsid3944165\charrsid12124512
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
@ -166,8 +169,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f00000000000000000000000000e5
37c71093cb01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000308e
01195596cb01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

View File

@ -1,4 +1,4 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria Math;}
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
@ -33,17 +33,17 @@
{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\rsidtbl \rsid353196\rsid4794103\rsid9379569\rsid11019026}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info
{\operator MimmoO}{\creatim\yr2010\mo12\dy3\hr18\min20}{\revtim\yr2010\mo12\dy3\hr18\min37}{\version4}{\edmins0}{\nofpages1}{\nofwords60}{\nofchars381}{\nofcharsws440}{\vern32859}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}
}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\rsidtbl \rsid353196\rsid4794103\rsid5510515\rsid9379569\rsid11019026}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0
\mnaryLim1}{\info{\operator MimmoO}{\creatim\yr2010\mo12\dy3\hr18\min20}{\revtim\yr2010\mo12\dy7\hr22\min25}{\version5}{\edmins0}{\nofpages1}{\nofwords71}{\nofchars450}{\nofcharsws520}{\vern32859}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/
word/2003/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale160\rsidroot9379569 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\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 \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\insrsid11019026 \hich\af0\dbch\af31505\loch\f0 Hideout}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
\f0\fs20\insrsid11019026
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid11019026
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\lang1033\langfe1031\langnp1033\insrsid11019026\charrsid5510515 \hich\af0\dbch\af31505\loch\f0 Hideout}{
\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\lang1033\langfe1031\langnp1033\insrsid11019026\charrsid5510515
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid11019026\charrsid5510515
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid11019026\charrsid9379569 \hich\af0\dbch\af31505\loch\f0
Protect your hideout from the opposing team and try to capture the enemy flag. Steal and bring the enemy flag into your hideout once to }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid4794103
\hich\af0\dbch\af31505\loch\f0 score}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid11019026\charrsid9379569 \hich\af0\dbch\af31505\loch\f0 . }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
@ -54,7 +54,10 @@ Protect your hideout from the opposing team and try to capture the enemy flag. S
\par \hich\af0\dbch\af31505\loch\f0 - Chests inside the hideout contain basic weapons.
\par \hich\af0\dbch\af31505\loch\f0 - Chests outside the hideout contain more advanced weapons.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid11019026
\par \hich\af0\dbch\af31505\loch\f0 - The central chest contains only gems and special stuff.
\par \hich\af0\dbch\af31505\loch\f0 - Throw the gems\hich\af0\dbch\af31505\loch\f0 to activate them.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid11019026\charrsid9379569
\par \hich\af0\dbch\af31505\loch\f0 - Throw \hich\af0\dbch\af31505\loch\f0 gems}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid5510515 \hich\af0\dbch\af31505\loch\f0 ! They activate on impact.}{\rtlch\fcs1 \af0\afs16
\ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid11019026
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid5510515 \hich\af0\dbch\af31505\loch\f0 - Killed enemies leave a Heal Gem behind. Use it to slowly heal your clonk.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\lang1033\langfe1031\langnp1033\insrsid5510515\charrsid9379569
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
@ -160,8 +163,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000f0c2
5dc41093cb01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000d042
e2385596cb01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

View File

@ -8,7 +8,7 @@ Offset=-4,-4
Vertices=4
VertexX=-4,0,4,0
VertexY=0,-4,0,4
VertexFriction=20
VertexFriction=70,70,70,70
Value=5
Mass=10
Components=Sulphur=1

View File

@ -1,5 +1,12 @@
/*--- Life Gem ---*/
local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
// does not fade out. Who wants to leave it lying around anyway!
func HasNoFadeOut(){return true;}
func Initialize()
{
AddEffect("Sparkle", this, 10, 2, this);
@ -31,15 +38,17 @@ func FxGemHealingTimer(target, effect_number, effect_time)
return -1;
}
target->DoEnergy(500, true);
CreateParticle("MagicSpark", AbsX(target->GetX()) + RandomX(-8,8), AbsY(target->GetY()) + RandomX(-10,10), 0, -2, 200, RGB(255,200,200), target, Random(2));
if(!Random(5))
CreateParticle("MagicFire", AbsX(target->GetX()) + RandomX(-8,8), AbsY(target->GetY()) + RandomX(-5,10), 0, -2, 50, RGB(200,255,255), target, Random(2));
var xoff=RandomX(-5,5);
for(var fac=-1; fac <= 1;fac+=2)CreateParticle("Magic", AbsX(target->GetX()) + fac * xoff, AbsY(target->GetY()) + RandomX(-8,8), 0, -2, 40, RGB(255,200,200), target, Random(2));
if(!Random(10)) EffectVar(0, target, effect_number)=!EffectVar(0, target, effect_number);
if(EffectVar(0, target, effect_number))
CreateParticle("MagicSpark", AbsX(target->GetX()) + RandomX(-3,3), AbsY(target->GetY()) + RandomX(-0,8), 0, -2, 30, RGBa(255,55,55, 50), target, Random(2));
}
func FxGemHealingDamage(target, effect_number, damage, cause)
{
if(damage >= 0) return damage;
RemoveEffect(nil, nil, effect_number);
RemoveEffect(nil, target, effect_number);
// can actually block one source of damage - use wisely
return 0;

View File

@ -1,2 +1,2 @@
Name=LifeGem
Description=LifeGem
Name=Lebens-Kristall
Description=Benutzen, um den Clonk zu heilen. Schaden bricht den Heileffekt ab.

View File

@ -1,2 +1,2 @@
Name=LifeGem
Description=LifeGem
Name=Life Gem
Description=Activate to heal the Clonk. Taking damage will cancel the healing effect.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -8,7 +8,7 @@ Offset=-4,-4
Vertices=4
VertexX=-4,0,4,0
VertexY=0,-4,0,4
VertexFriction=20
VertexFriction=70,70,70,70
Value=5
Mass=10
Components=Sulphur=1

View File

@ -1,6 +1,7 @@
/*--- Pyre Gem ---*/
local e;
local thrower;
protected func Initialize()
{
@ -29,26 +30,28 @@ protected func Initialize()
SetR(Random(360));
}
protected func Departure()
protected func Departure( from)
{
SetRDir(RandomX(-15,15));
thrower=from;
}
func Hit()
{
AddEffect("GemPyre",nil,100,1,nil,nil,GetX(),GetY(),e,this->GetOwner());
AddEffect("GemPyre",nil,100,1,nil,nil,[GetX(),GetY()],e,this->GetOwner(),thrower->GetOwner());
RemoveObject();
}
global func FxGemPyreStart(object target, int num, int temporary, x, y, e, owner)
global func FxGemPyreStart(object target, int num, int temporary, c, e, owner,thrower)
{
if (temporary)
return 1;
EffectVar(0, target, num)=x;
EffectVar(1, target, num)=y;
EffectVar(0, target, num)=c[0];
EffectVar(1, target, num)=c[1];
EffectVar(2, target, num)=e;
EffectVar(3, target, num)=owner;
EffectVar(4, target, num)=0;
EffectVar(3, target, num)=thrower;
EffectVar(4, target, num)=owner;
EffectVar(5, target, num)=0;
}
global func FxGemPyreTimer(object target, int num, int time)
{
@ -56,7 +59,7 @@ global func FxGemPyreTimer(object target, int num, int time)
var y=EffectVar(1, target, num);
var e=EffectVar(2, target, num);
if(time > 60) return -1;
if(time > 32) return -1;
for(var i=0; i<(20 + time); i++)
{
@ -69,17 +72,20 @@ global func FxGemPyreTimer(object target, int num, int time)
else CreateParticle("Magic", x + Sin(r,d), y - Cos(r,d),0,0,BoundBy((40-time),1,25) + 5 + Random(10),clr);
}
for(var obj in FindObjects(Find_Distance(((time/2)+1)*6,x,y),Find_Not(Find_Distance((time/2)*4,x,y)),Find_ID(Clonk)))
for(var obj in FindObjects(Find_NoContainer(), Find_OCF(OCF_Alive), Find_Distance(((time/2)+1)*6,x,y),Find_Not(Find_Distance((time/2)*4,x,y)),Find_ID(Clonk)))
{
var end=false;
for(var i = 0; i < EffectVar(4, target, num) ; i++)
if(obj == EffectVar(5+i, target, num)) end=true;
for(var i = 0; i < EffectVar(5, target, num) ; i++)
if(obj == EffectVar(6+i, target, num)) end=true;
if(end) continue;
if(PathFree(x,y,obj->GetX(),obj->GetY()))
{
obj->DoEnergy(-BoundBy((30-time),1,25));
EffectVar(5+EffectVar(4, target, num), target, num) = obj;
EffectVar(4, target, num)++;
obj->DoEnergy((-BoundBy((30-time),1,26)*3)/5,0,0,EffectVar(3,target,num));
obj->CastParticles("MagicFire",20 + (BoundBy((30-time),1,26)*2),(BoundBy((30-time),6,26)*2),0,0,26,50,clr,clr);
obj->CastParticles("Air",10 + BoundBy((30-time),1,26),10,0,0,16,30,clr,clr);
obj->Fling(RandomX(-2,2),-2-(BoundBy((30-time),10,30)/10));
EffectVar(6+EffectVar(5, target, num), target, num) = obj;
EffectVar(5, target, num)++;
}
}
return 1;

View File

@ -20,6 +20,7 @@ protected func Initialize()
// Rules
CreateObject(Rule_Restart);
CreateObject(Rule_ObjectFade)->DoFadeTime(5 * 36);
CreateObject(Rule_KillLogs);
// Doors and spinwheels.
var gate, wheel;
@ -32,9 +33,9 @@ protected func Initialize()
AddEffect("AutoControl", gate, 100, 3, gate, nil, 1);
//wheel = CreateObject(SpinWheel, 280, 580, NO_OWNER);
//wheel->SetStoneDoor(gate);
gate = CreateObject(StoneDoor, 846, 480, NO_OWNER);
gate = CreateObject(StoneDoor, 695, 539, NO_OWNER);
gate->DoDamage(80); //Middle dors even easier
wheel = CreateObject(SpinWheel, 780, 480, NO_OWNER);
wheel = CreateObject(SpinWheel, 660, 500, NO_OWNER);
wheel->SetStoneDoor(gate);
gate = CreateObject(StoneDoor, LandscapeWidth() - 364, 420, NO_OWNER);
gate->DoDamage(50); //Upper doors are easier to destroy
@ -45,44 +46,42 @@ protected func Initialize()
AddEffect("AutoControl", gate, 100, 3, gate, nil, 2);
//wheel = CreateObject(SpinWheel, LandscapeWidth() - 280, 580, NO_OWNER);
//wheel->SetStoneDoor(gate);
gate = CreateObject(StoneDoor, LandscapeWidth() - 844, 480, NO_OWNER);
gate = CreateObject(StoneDoor, LandscapeWidth() - 695, 539, NO_OWNER);
gate->DoDamage(80); //Middle dors even easier
wheel = CreateObject(SpinWheel, LandscapeWidth() - 780, 480, NO_OWNER);
wheel = CreateObject(SpinWheel, LandscapeWidth() - 660, 500, NO_OWNER);
wheel->SetStoneDoor(gate);
// Chests with weapons.
var chest;
chest = CreateObject(Chest, 110, 590, NO_OWNER);
AddEffect("FillBaseChest", chest, 100, 2 * 36,nil,nil,true);
AddEffect("FillBaseChest", chest, 100, 6 * 36,nil,nil,true);
chest = CreateObject(Chest, 25, 460, NO_OWNER);
AddEffect("FillBaseChest", chest, 100, 2 * 36,nil,nil,false);
chest = CreateObject(Chest, 810, 600, NO_OWNER);
AddEffect("FillOtherChest", chest, 100, 2 * 36);
chest = CreateObject(Chest, 860, 350, NO_OWNER);
AddEffect("FillOtherChest", chest, 100, 2 * 36);
AddEffect("FillBaseChest", chest, 100, 6 * 36,nil,nil,false);
chest = CreateObject(Chest, 730, 400, NO_OWNER);
AddEffect("FillOtherChest", chest, 100, 6 * 36);
chest = CreateObject(Chest, LandscapeWidth() - 110, 590, NO_OWNER);
AddEffect("FillBaseChest", chest, 100, 2 * 36,nil,nil,true);
AddEffect("FillBaseChest", chest, 100, 6 * 36,nil,nil,true);
chest = CreateObject(Chest, LandscapeWidth() - 25, 460, NO_OWNER);
AddEffect("FillBaseChest", chest, 100, 2 * 36,nil,nil,false);
chest = CreateObject(Chest, LandscapeWidth() - 810, 600, NO_OWNER);
AddEffect("FillOtherChest", chest, 100, 2 * 36);
chest = CreateObject(Chest, LandscapeWidth() - 860, 350, NO_OWNER);
AddEffect("FillOtherChest", chest, 100, 2 * 36);
AddEffect("FillBaseChest", chest, 100, 6 * 36,nil,nil,false);
chest = CreateObject(Chest, LandscapeWidth() - 730, 400, NO_OWNER);
AddEffect("FillOtherChest", chest, 100, 6 * 36);
chest = CreateObject(Chest, LandscapeWidth()/2, 0, NO_OWNER);
AddEffect("FillSpecialChest", chest, 100, 4 * 36);
/*
// No Cannons
// Cannons loaded with 12 shots.
var cannon;
cannon = CreateObject(Cannon, 429, 444, NO_OWNER);
cannon->SetDir(DIR_Right);
cannon->SetR(15);
cannon->CreateContents(PowderKeg);
cannon = CreateObject(Cannon, 1772, 444, NO_OWNER);
cannon = CreateObject(Cannon, LandscapeWidth() - 429, 444, NO_OWNER);
cannon->SetDir(DIR_Left);
cannon->SetR(-15);
cannon->CreateContents(PowderKeg);
*/
// Brick edges, notice the symmetric landscape.
PlaceEdges();
@ -94,16 +93,18 @@ protected func Initialize()
global func PlaceEdges()
{
var x=[695, 655, 385, 345, 255, 275, 295, 105, 95, 45, 185, 155, 145, 825, 815, 805, 755, 765, 775, 785, 625, 615, 395, 335, 265, 245, 225, 215, 105, 95, 75];
var y=[515, 545, 385, 405, 485, 475, 465, 365, 375, 465, 545, 575, 585, 355, 365, 375, 405, 415, 425, 435, 555, 565, 445, 455, 575, 565, 555, 545, 495, 485, 475];
var x=[565, 595, 675, 635, 385, 255, 275, 295, 105, 95, 45, 185, 155, 145, 395, 335, 265, 245, 225, 215, 105, 95, 75, 315, 625, 615, 605, 655, 665, 675, 555, 515, 685, 575, 555, 605];
var y=[415, 415, 495, 495, 385, 485, 475, 465, 365, 375, 465, 545, 575, 585, 445, 455, 575, 565, 555, 545, 495, 485, 475, 545, 485, 475, 465, 435, 425, 415, 555, 565, 545, 285, 425, 425];
for (var i = 0; i < GetLength(x); i++)
{
var edge=CreateObject(BrickEdge, x[i], y[i] + 5, NO_OWNER);
edge->Initialize();
edge->PermaEdge();
var edge=CreateObject(BrickEdge, LandscapeWidth()-x[i]+5, y[i] + 5, NO_OWNER);
edge->Initialize();
edge->PermaEdge();
}
return 1;
}
@ -151,8 +152,8 @@ global func FxFillBaseChestTimer(object target, int num)
}
else
{
var w_list = [ Sword, Javelin, Musket, ShieldGem, PyreGem];
var maxcount = [1,2,1,1,2];
var w_list = [Sword, Javelin, Musket, ShieldGem, PyreGem];
var maxcount = [1,2,1,1,1];
}
var contents;
@ -257,6 +258,11 @@ global func FxNotTooLongTimer(object target, int num)
func OnClonkDeath(object clonk, int killed_by)
{
// create a magic healing gem on Clonk death
clonk->CreateObject(LifeGem, 0, 0, killed_by);
if(Hostile(clonk->GetOwner(), killed_by))
{
var gem=clonk->CreateObject(LifeGem, 0, 0, killed_by);
if(GetPlayerTeam(killed_by) == 1)
gem->SetGraphics("E");
}
return _inherited(clonk, killed_by);
}

View File

@ -8,7 +8,7 @@ Offset=-4,-4
Vertices=4
VertexX=-4,0,4,0
VertexY=0,-4,0,4
VertexFriction=20
VertexFriction=70,70,70,70
Value=5
Mass=10
Components=Sulphur=1

View File

@ -8,7 +8,7 @@ Offset=-4,-4
Vertices=4
VertexX=-4,0,4,0
VertexY=0,-4,0,4
VertexFriction=20
VertexFriction=70,70,70,70
Value=5
Mass=10
Components=Sulphur=1

View File

@ -13,7 +13,7 @@ protected func Initialize()
CreateObject(Chest, 180, 404, NO_OWNER);
CreateObject(Chest, 261, 163, NO_OWNER);
CreateObject(Rule_ObjectFade)->DoFadeTime(5 * 36);
CreateObject(Rule_KillLogs);
AddEffect("IntFillChests", nil, 100, 70, this);
return;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -5,11 +5,8 @@ material KingMusket
{
pass
{
scene_blend alpha_blend
cull_hardware none
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 0.702745 0.702745 0.702745 1.000000
diffuse 0.800000 0.800000 0.800000 1.000000
specular 0.000000 0.000000 0.000000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit

View File

@ -1,8 +1,8 @@
/*--
Down the Fountain
Molten Monarch
Author: Mimmo_O
An arena like last man standing round for up two to three players.
A king of the hill in a lava cave.
--*/
@ -12,10 +12,11 @@ protected func Initialize()
// Goal.
var goal = CreateObject(Goal_KingOfTheHill, 555, 250, NO_OWNER);
goal->SetRadius(80);
goal->SetPointLimit(10);
goal->SetPointLimit(12);
AddEffect("BlessTheKing",goal,100,1,nil);
// Objects fade after 7 seconds.
CreateObject(Rule_ObjectFade)->DoFadeTime(7 * 36);
CreateObject(Rule_KillLogs);
//make lava collapse
CreateObject(Firestone,625,480);
@ -132,17 +133,6 @@ global func PlaceEdges()
return 1;
}
// Gamecall from LastManStanding goal, on respawning.
protected func OnPlayerRelaunch(int plr)
{
var clonk = GetCrew(plr);
var relaunch = CreateObject(RelaunchContainer, LandscapeWidth() / 2, LandscapeHeight() / 2, clonk->GetOwner());
relaunch->StartRelaunch(clonk);
SetFoW(false,plr);
return;
}
// Refill/fill chests.
global func FxIntFillChestsStart(object target, int num, int temporary)
{
@ -180,6 +170,11 @@ global func CreateChestContents(id obj_id)
return;
}
protected func InitializePlayer(int plr)
{
return JoinPlayer(plr);
}
// GameCall from RelaunchContainer.
protected func RelaunchPlayer(int plr)
{
@ -197,9 +192,8 @@ protected func JoinPlayer(int plr)
var position = [[420,150],[300,370],[130,160],[140,350],[700,150],[670,300],[750,410],[440,350],[40,240]];
var r=Random(GetLength(position));
var x = position[r][0], y = position[r][1];
var relaunch = CreateObject(RelaunchContainer, x,y, clonk->GetOwner());
var relaunch = CreateObject(RelaunchContainer, x, y, clonk->GetOwner());
relaunch->StartRelaunch(clonk);
return;
}

View File

@ -2,8 +2,8 @@
local king_size;
public func MakeKingSize() { king_size = true; return(SetMeshMaterial("KingMusket")); }
public func MakeNormalSize() { king_size = false; return(SetMeshMaterial("Musket")); }
public func MakeKingSize() { king_size = true; return(SetMeshMaterial("KingMusket",1)); }
public func MakeNormalSize() { king_size = false; return(SetMeshMaterial("Musket",1)); }
public func Departure() { MakeNormalSize(); }
private func FireWeapon(object clonk, int angle)

View File

@ -2,8 +2,8 @@
local king_size;
public func MakeKingSize() { king_size = true; SetMeshMaterial("KingSword2",1); }
public func MakeNormalSize() { king_size = false; SetMeshMaterial("Sword2",1); }
public func MakeKingSize() { king_size = true; SetMeshMaterial("KingSword2",0); }
public func MakeNormalSize() { king_size = false; SetMeshMaterial("Sword2",0); }
public func Departure() { MakeNormalSize(); }

View File

@ -27,7 +27,6 @@ MapWidth=60
MapHeight=50
BottomOpen=1
SkyScrollMode=1
Sky=Fog1
[Animals]
Nest=Firestone=30;Loam=20;Rock=15;

View File

@ -12,6 +12,7 @@ protected func Initialize()
// Goal.
CreateObject(Goal_LastManStanding, 0, 0, NO_OWNER);
CreateObject(Rule_KillLogs);
//Enviroment.
CreateObject(Environment_Clouds);

View File

@ -8,20 +8,21 @@
public func ControlUse(object pClonk, int ix, int iy)
{
AddEffect("WindScrollStorm", 0, 100, 1, 0, GetID(), Angle(0,0,ix,iy),pClonk->GetX(), pClonk->GetY());
AddEffect("WindScrollStorm", 0, 100, 1, 0, GetID(), Angle(0,0,ix,iy),pClonk->GetX(), pClonk->GetY(), pClonk->GetOwner());
RemoveObject();
return 1;
}
public func FxWindScrollStormStart(pTarget, iEffectNumber, iTemp, angle, x, y)
public func FxWindScrollStormStart(pTarget, iEffectNumber, iTemp, angle, x, y, owner)
{
if(iTemp) return;
EffectVar(0, pTarget, iEffectNumber)=Sin(angle,32);
EffectVar(1, pTarget, iEffectNumber)=-Cos(angle,32);
EffectVar(2, pTarget, iEffectNumber)=x+Sin(angle,43);
EffectVar(3, pTarget, iEffectNumber)=y-Cos(angle,43);
EffectVar(4, pTarget, iEffectNumber)=owner;
}
@ -53,6 +54,8 @@ public func FxWindScrollStormTimer(pTarget, iEffectNumber, iEffectTime)
{
if(PathFree(x,y,obj->GetX(),obj->GetY()))
{
if(obj->GetID() == Clonk)
obj->SetKiller(EffectVar(4, pTarget, iEffectNumber));
if(xdir<0)
{if(obj->GetXDir() > xdir) obj->SetXDir(obj->GetXDir(100) + (xdir*3)/2,100); }
else

View File

@ -10,6 +10,7 @@ protected func Initialize()
{
// Goal.
CreateObject(Goal_LastManStanding, 0, 0, NO_OWNER);
CreateObject(Rule_KillLogs);
// Chests with weapons.
CreateObject(Chest, 108, 230, NO_OWNER);

View File

@ -11,6 +11,7 @@ protected func Initialize()
{
// Goal.
CreateObject(Goal_LastManStanding, 0, 0, NO_OWNER);
CreateObject(Rule_KillLogs);
// Mood.
SetSkyAdjust(RGBa(255, 255, 255, 127), RGB(255, 200, 150));

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 KiB

View File

@ -0,0 +1,17 @@
[DefCore]
id=Column
Version=4,10,0,0
Category=C4D_Structure
Width=20
Height=50
Offset=-10,-50
Vertices=1
VertexX=0
VertexY=0
VertexFriction=50
Value=45
Mass=90
Components=Rock=7;
Construction=1
Rotate=1
Float=1

View File

@ -0,0 +1,20 @@
material Zylinder
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 0.640000 0.640000 0.640000 1.000000
specular 0.000000 0.000000 0.000000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture Column.png
tex_address_mode wrap
filtering trilinear
}
}
}
}

View File

@ -0,0 +1,38 @@
protected func Initialize()
{
SetProperty("MeshTransformation",Trans_Mul(Trans_Scale(150,150,150),Trans_Rotate(Random(360),0,1,0)));
}
protected func Damage()
{
if (GetDamage() > 80)
{
if (!this)
return false;
var ctr = Contained();
// Transfer all contents to container.
while (Contents())
if (!ctr || !Contents()->Enter(ctr))
Contents()->Exit();
// Split components.
for (var i = 0, compid; compid = GetComponent(nil, i); ++i)
for (var j = 0; j < GetComponent(compid); ++j)
{
var comp = CreateObject(compid, nil, -Random(50), GetOwner());
if (OnFire()) comp->Incinerate();
if (!ctr || !comp->Enter(ctr))
{
comp->SetR(Random(360));
comp->SetXDir(Random(3) - 1);
comp->SetYDir(Random(3) - 1);
comp->SetRDir(Random(3) - 1);
comp->SetClrModulation(RGB(240,210,200)); //give rocks the color of brick
}
}
RemoveObject();
}
return;
}
local Name = "$Name$";

View File

@ -0,0 +1,165 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f379\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
{\f380\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f382\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f383\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f386\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
{\f387\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}
{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbiminor\f31586\fbidi \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;}{\*\defchp
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext0 \sqformat \spriority0 Normal;}
{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\rsidtbl \rsid2063973\rsid9125203\rsid12532703\rsid16718851}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}
{\info{\operator MimmoO}{\creatim\yr2010\mo10\dy17\hr22\min53}{\revtim\yr2010\mo12\dy16\hr15\min57}{\version5}{\edmins0}{\nofpages1}{\nofwords56}{\nofchars360}{\nofcharsws415}{\vern32859}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003
/wordml}}\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale150\rsidroot9125203 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\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 \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\insrsid12532703 \hich\af0\dbch\af31505\loch\f0 Donnernde Himmel}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0
\f0\fs20\insrsid9125203
\par }{\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\insrsid9125203
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid16718851 \hich\af0\dbch\af31505\loch\f0 Erlange die Herrschaf}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12532703 \hich\af0\dbch\af31505\loch\f0 \hich\f0 t \'fc\loch\f0
ber diese Himmelsinsel, die h\hich\af0\dbch\af31505\loch\f0 o\hich\af0\dbch\af31505\loch\f0 ch oben in den Wolken \hich\af0\dbch\af31505\loch\f0 schwebt. Zahlreiche Waffen, Zauber und Umgebungsobjekte helfen dir, deine \hich\af0\dbch\af31505\loch\f0 G
\hich\af0\dbch\af31505\loch\f0 egner zu vernichten.\hich\af0\dbch\af31505\loch\f0 \hich\f0 T\'f6\loch\f0 \hich\f0 te Gegner als K\'f6\loch\f0 \hich\f0 nig oder t\'f6\loch\f0 \hich\f0 te den aktuellen K\'f6\loch\f0 \hich\f0 nig, um zu punkten. Als K\'f6
\loch\f0 nig wirst du um 30% des Schadens, den du verursachst, geheilt!}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid2063973
\par
\par \hich\af0\dbch\af31505\loch\f0 Ein}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid12532703 \hich\af0\dbch\af31505\loch\f0 e}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\insrsid2063973 \hich\af0\dbch\af31505\loch\f0 }{\rtlch\fcs1 \af0\afs16
\ltrch\fcs0 \f0\fs16\insrsid12532703 \hich\af0\dbch\af31505\loch\f0 King-of-the-Hill-Runde\hich\af0\dbch\af31505\loch\f0 \hich\f0 in luftigen H\'f6\loch\f0 hen. Wer zuerst 10 Punkte erreicht, gewinnt.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\insrsid2063973
\par }{\rtlch\fcs1 \af0\afs18 \ltrch\fcs0 \f0\fs18\insrsid9125203
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
29e245eb2b260a0238fd010000ffff0300504b030414000600080000002100e35a492797060000551b0000160000007468656d652f7468656d652f7468656d65
312e786d6cec594d6f1b4518be23f11f467b6f6327761a4775aad8b11b6852a2d82dea71bc3bde9d66766735334eea1b6a8f484888823850891b0704546a252e
e5d7048aa048fd0bbc33b3bbde89d72469235a417d48bcb3cfbcdf5f33be7aed5eccd0211192f2a4edd52fd73c44129f073409dbdead61ffd29a87a4c2498019
4f48db9b12e95ddb78ffbdab785d45242608f627721db7bd48a9747d6949fab08ce5659e9204de8db988b18247112e05021f01dd982d2dd76aab4b31a6898712
1c03d91d2ca894f8d21691344cbc8d9c7c8f018f4449bde03331d0c489bbc7808383ba86c8a9ec32810e316b7bc02ae04743724f798861a9e045dbab998fb7b4
717509af679b985ab0b7b4af6f3ed9be6c4370b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83aa569632cd467faddec9699640f6
eb3ced6ead596bb8f812fd9539995b9d4ea7d9ca64b1440dc87e6dcce1d76aab8dcd65076f4016df9cc3373a9bddeeaa8337208b5f9dc3f7afb4561b2ede8022
46938339b47668bf9f512f2063ceb62be16b005fab65f0190aa2a1082fcd62cc13b530d8627c978b3e203492614513a4a62919631f22b98be391a05873c0eb04
97ded8255fce2d696648fa82a6aaed7d9862c88a19bd97cf7e78f9ec093abefff4f8fecfc70f1e1cdfffc91272766de3242cef7af1dde77f3dfa04fdf9e4db17
0fbfacc6cb32feb71f3ffdf5972faa81903f33719e7ff5f8f7a78f9f7ffdd91fdf3fac806f0a3c2ac387342612dd2447689fc7a098b18a2b391989f3ed184698
96776c26a1c409d65c2ae8f754e4a06f4e31cbbce3c8d121ae056f0ba81f55c0eb93bb8ec083484c14ade07c238a1de02ee7acc345a5156e685e25330f274958
cd5c4ccab87d8c0fab787771e2f8b73749a172e661e928de8d8823e61ec389c221498842fa1d3f20a442bb3b943a76dda5bee0928f15ba435107d34a930ce9c8
89a6d9a66d1a835fa6553a83bf1ddbecde461dceaab4de22872e12b202b30ae187843966bc8e270ac755248738666583ef6015550939980abf8ceb49059e0e09
e3a81710686d15527c2440df92d36f602859956edf65d3d8450a450faa68ee60cecbc82d7ed08d709c5661073489cad80fe4018428467b5c55c177b99b21fa19
fc809385eebe4d89e3eed3abc12d1a3a22cd0244bf99086d45a8d54e058e69f24fe59851a8c7d6fa17578ea1003effe651854fdfd642bc093da92a13b64f94df
45b89345b7cb4540dffe9abb8527c91e81309f6f3cef4aeebb92ebfde74beea27c3e6ba19dd55628bb7a6eb053b19991e3c523f298323650534676a499922534
8aa00f8b7aa3392292e2cc9446f0352bec0e2e14d8ec4182ab8fa98a06114e61c2ae7b9a482833d2a144299770b433cb95b4351ea674650f864d7d64b0054162
b5cb03bbbca297f3934141c6b49bd09c3f73462b9ac05999ad5cc98882daafc2acae853a33b7ba11cdd43a875ba13238715e35582cac09130882b905acbc0a87
74cd1a4e26989140dbdd36dfdc2dc60b17e92219e180643ed27acffba86e9c94c78ab90c80d8a9f0913ee69d62b512b79626fb1adccee2a432bbc60276b9f75e
c74b7904cfbca413f7443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc3a116bec629785deaa10fb3106e877c256cd89f9acc26cb67de6ce58ab94950878b0a
6bf739859d3a900aa9b6b08c6c6898575908b04473b2f22f37c1ac17a5808df4579062650d82e18d490176745d4bc663e2abb2b34b2bda76f6312ba57ca28818
44c1111ab189d8c7e07e1daaa04f4025dc4d988aa01fe0264d5bdbbc728b739674e5fb2b83b3eb98a511cecaad4ed13c932ddce4712183792a8907ba55ca6e94
3bbf2a26e52f48957218ffcf54d1fd04ae0a5602ed011fee7205463a5fdb1e172ae25085d288fa7d019383a91d102d701b0baf21a8e046d9fc17e450ffb73967
6998b486139fdaa7211214fa918a04217b50964cf49d42ac9ef52e4b9265844c4495c495a9157b440e091bea1ab8aa7bbb87220875534db232607027e3cf7dce
326814ea21a79c6f4e0d297aafcd817f7bf2b1c90c4ab975d80c34b9fd0b112bbaaadd6fb6e7bdb7ac887e311bb31a795600b3522b686569ff8a229cb3d5da8a
35a7f17233170ebc38af312c1603510a173e48ff81fe4785cf880963dd50877c1f6a2b829f1a3431081b88ea4b76f040ba40dac5110c4e76d1069326654d9b8d
4eda6a79b3bee049b7e07bc2d85ab2b3f8fb9cc62e8633979d938b1769ecccc28eadedda425383674fa6282c8df3938c718cf95dabfcc3131fdd05476fc105ff
84296982097e55121846cf81c903487ecbd16cddf81b0000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f
7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f
2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e31
98720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d98505
28a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c02000013000000000000000000000000
00000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b0000000000000000000000
00002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c000000000000000000000000001402000074
68656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100e35a492797060000551b0000160000000000000000
0000000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000
0000000000000000009c0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000970a00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f00000000000000000000000070bd
e07d319dcb01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

View File

@ -0,0 +1,163 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1031\deflangfe1031\themelang1031\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f379\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
{\f380\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f382\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f383\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f386\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
{\f387\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}
{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}
{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbiminor\f31586\fbidi \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;}{\*\defchp
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 \snext0 \sqformat \spriority0 Normal;}
{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1031\langfe1031\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031
\snext11 \ssemihidden \sunhideused \sqformat Normal Table;}}{\*\rsidtbl \rsid14300856}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator MimmoO}
{\creatim\yr2010\mo12\dy16\hr15\min54}{\revtim\yr2010\mo12\dy16\hr15\min59}{\version2}{\edmins0}{\nofpages1}{\nofwords70}{\nofchars321}{\nofcharsws390}{\vern32859}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
\paperw12240\paperh15840\margl1417\margr1417\margt1417\margb1134\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120
\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale160\rsidroot14300856 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\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 \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0
\fs22\lang1031\langfe1031\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1031\langfenp1031 {\rtlch\fcs1 \ab\af0\afs20 \ltrch\fcs0 \b\f0\fs20\lang1033\langfe1031\langnp1033\insrsid14300856\charrsid14300856 \hich\af0\dbch\af31505\loch\f0
Thunderous Skies}{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \f0\fs20\lang1033\langfe1031\langnp1033\insrsid14300856\charrsid14300856
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856
\par }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856 \hich\af0\dbch\af31505\loch\f0 Claim the rule over this sky island, which floats up high in the sky. Numerous weapons, spells and enviro
\hich\af0\dbch\af31505\loch\f0 n\hich\af0\dbch\af31505\loch\f0 ment objects\hich\af0\dbch\af31505\loch\f0 will help you to fight your enemies. Kill and enemy as the king, or kill the current king to score a point. You get healed by 30% of th
\hich\af0\dbch\af31505\loch\f0 e damage you do, while you are the king.}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856
\par
\par \hich\af0\dbch\af31505\loch\f0 A }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856 \hich\af0\dbch\af31505\loch\f0 King-of-the-Hill-round}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0
\f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856 \hich\af0\dbch\af31505\loch\f0 in great heights. Who }{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856 \hich\af0\dbch\af31505\loch\f0
scores 10 points first}{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\lang1033\langfe1031\langnp1033\insrsid14300856 \hich\af0\dbch\af31505\loch\f0 , wins.
\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8
72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7
2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b
44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7
065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000
00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08
84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc
52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353
bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468
656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c
070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7
29e245eb2b260a0238fd010000ffff0300504b030414000600080000002100e35a492797060000551b0000160000007468656d652f7468656d652f7468656d65
312e786d6cec594d6f1b4518be23f11f467b6f6327761a4775aad8b11b6852a2d82dea71bc3bde9d66766735334eea1b6a8f484888823850891b0704546a252e
e5d7048aa048fd0bbc33b3bbde89d72469235a417d48bcb3cfbcdf5f33be7aed5eccd0211192f2a4edd52fd73c44129f073409dbdead61ffd29a87a4c2498019
4f48db9b12e95ddb78ffbdab785d45242608f627721db7bd48a9747d6949fab08ce5659e9204de8db988b18247112e05021f01dd982d2dd76aab4b31a6898712
1c03d91d2ca894f8d21691344cbc8d9c7c8f018f4449bde03331d0c489bbc7808383ba86c8a9ec32810e316b7bc02ae04743724f798861a9e045dbab998fb7b4
717509af679b985ab0b7b4af6f3ed9be6c4370b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83aa569632cd467faddec9699640f6
eb3ced6ead596bb8f812fd9539995b9d4ea7d9ca64b1440dc87e6dcce1d76aab8dcd65076f4016df9cc3373a9bddeeaa8337208b5f9dc3f7afb4561b2ede8022
46938339b47668bf9f512f2063ceb62be16b005fab65f0190aa2a1082fcd62cc13b530d8627c978b3e203492614513a4a62919631f22b98be391a05873c0eb04
97ded8255fce2d696648fa82a6aaed7d9862c88a19bd97cf7e78f9ec093abefff4f8fecfc70f1e1cdfffc91272766de3242cef7af1dde77f3dfa04fdf9e4db17
0fbfacc6cb32feb71f3ffdf5972faa81903f33719e7ff5f8f7a78f9f7ffdd91fdf3fac806f0a3c2ac387342612dd2447689fc7a098b18a2b391989f3ed184698
96776c26a1c409d65c2ae8f754e4a06f4e31cbbce3c8d121ae056f0ba81f55c0eb93bb8ec083484c14ade07c238a1de02ee7acc345a5156e685e25330f274958
cd5c4ccab87d8c0fab787771e2f8b73749a172e661e928de8d8823e61ec389c221498842fa1d3f20a442bb3b943a76dda5bee0928f15ba435107d34a930ce9c8
89a6d9a66d1a835fa6553a83bf1ddbecde461dceaab4de22872e12b202b30ae187843966bc8e270ac755248738666583ef6015550939980abf8ceb49059e0e09
e3a81710686d15527c2440df92d36f602859956edf65d3d8450a450faa68ee60cecbc82d7ed08d709c5661073489cad80fe4018428467b5c55c177b99b21fa19
fc809385eebe4d89e3eed3abc12d1a3a22cd0244bf99086d45a8d54e058e69f24fe59851a8c7d6fa17578ea1003effe651854fdfd642bc093da92a13b64f94df
45b89345b7cb4540dffe9abb8527c91e81309f6f3cef4aeebb92ebfde74beea27c3e6ba19dd55628bb7a6eb053b19991e3c523f298323650534676a499922534
8aa00f8b7aa3392292e2cc9446f0352bec0e2e14d8ec4182ab8fa98a06114e61c2ae7b9a482833d2a144299770b433cb95b4351ea674650f864d7d64b0054162
b5cb03bbbca297f3934141c6b49bd09c3f73462b9ac05999ad5cc98882daafc2acae853a33b7ba11cdd43a875ba13238715e35582cac09130882b905acbc0a87
74cd1a4e26989140dbdd36dfdc2dc60b17e92219e180643ed27acffba86e9c94c78ab90c80d8a9f0913ee69d62b512b79626fb1adccee2a432bbc60276b9f75e
c74b7904cfbca413f7443ab2a49c9c2c41476dafd55c6e7ac8c769db1bc3a116bec629785deaa10fb3106e877c256cd89f9acc26cb67de6ce58ab94950878b0a
6bf739859d3a900aa9b6b08c6c6898575908b04473b2f22f37c1ac17a5808df4579062650d82e18d490176745d4bc663e2abb2b34b2bda76f6312ba57ca28818
44c1111ab189d8c7e07e1daaa04f4025dc4d988aa01fe0264d5bdbbc728b739674e5fb2b83b3eb98a511cecaad4ed13c932ddce4712183792a8907ba55ca6e94
3bbf2a26e52f48957218ffcf54d1fd04ae0a5602ed011fee7205463a5fdb1e172ae25085d288fa7d019383a91d102d701b0baf21a8e046d9fc17e450ffb73967
6998b486139fdaa7211214fa918a04217b50964cf49d42ac9ef52e4b9265844c4495c495a9157b440e091bea1ab8aa7bbb87220875534db232607027e3cf7dce
326814ea21a79c6f4e0d297aafcd817f7bf2b1c90c4ab975d80c34b9fd0b112bbaaadd6fb6e7bdb7ac887e311bb31a795600b3522b686569ff8a229cb3d5da8a
35a7f17233170ebc38af312c1603510a173e48ff81fe4785cf880963dd50877c1f6a2b829f1a3431081b88ea4b76f040ba40dac5110c4e76d1069326654d9b8d
4eda6a79b3bee049b7e07bc2d85ab2b3f8fb9cc62e8633979d938b1769ecccc28eadedda425383674fa6282c8df3938c718cf95dabfcc3131fdd05476fc105ff
84296982097e55121846cf81c903487ecbd16cddf81b0000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f
7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f
2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e31
98720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d98505
28a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c02000013000000000000000000000000
00000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b0000000000000000000000
00002b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c000000000000000000000000001402000074
68656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100e35a492797060000551b0000160000000000000000
0000000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700000000
0000000000000000009c0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000970a00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;
\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7;
\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;
\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000
4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f000000000000000000000000f047
a7ca319dcb01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -0,0 +1,11 @@
[DefCore]
id=MovingBrick
Version=4,10,0,0
Category=C4D_Structure
Width=40
Height=10
Offset=-20,-5
SolidMask=0,0,40,10,0,0
Value=10
Mass=10
Components=Wood=6;Metal=2;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,68 @@
/*-- Moving Bricks --*/
local ox,oy,rx,ry,size;
protected func Initialize()
{
ox=GetX();
oy=GetY();
ry=40;
rx=0;
SetAction("Moving");
SetPosition(ox,oy);
size=4;
AddEffect("MovingAround",this,100,1,this,this->GetID());
return;
}
func Room(int xa, int ya, int a,int xd, int yd)
{
rx=xa;
ry=ya;
SetXDir(xd);
SetYDir(yd);
if(a==1){ SetGraphics("S1"); size=1;}
else if(a==2){ SetGraphics("S2"); size=2;}
else if(a==3){ SetGraphics("S3"); size=3;}
else { SetGraphics(Format("%d",1+Random(4))); size=4;}
}
func FxMovingAroundTimer(object pTarget, int noum, int timer)
{
pTarget->Move(timer%360);
}
func Move(int a)
{
if(GetY()<oy)SetYDir(GetYDir()+1);
if(GetY()>(oy+ry))SetYDir(GetYDir()-1);
if(GetX()<ox)SetXDir(GetXDir()+1);
if(GetX()>(ox+rx))SetXDir(GetXDir()-1);
DigFreeRect(GetX()-20,GetY()-6,size*10,12);
}
func Definition(def)
{
SetProperty("ActMap", {
Moving = {
Prototype = Action,
Name = "Moving",
Procedure = DFA_FLOAT,
Length = 1,
Delay = 1,
X = 0,
Y = 0,
Wdt = 40,
Hgt = 10,
NextAction = "Moving",
},
}, def);
SetProperty("Name", "$Name$", def);
}

View File

@ -0,0 +1 @@
Name=Bewegliche Steine

View File

@ -0,0 +1 @@
Name=Moving Bricks

View File

@ -0,0 +1,8 @@
[DefCore]
id=Rule_ObjectFade
Version=4,10,0,0
Category=C4D_StaticBack|C4D_Rule
Width=1
Height=1
Picture=0,0,64,64
TimerCall=Timer

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1,81 @@
/*
ObjectFade Rule
Author: Caesar
Removes unused objects. Like Hazard-Arena.
TODO:
Use ChangeEffect properly to save calls
*/
local fade_time;
public func DoFadeTime(int to_add)
{
fade_time += to_add;
return;
}
protected func Initialize()
{
if(ObjectCount(Find_ID(Rule_ObjectFade), Find_Exclude(this))) {
FindObject(Find_ID(Rule_ObjectFade), Find_Exclude(this))->DoFadeTime(36);
return RemoveObject();
}
fade_time = 18; // 18, because the timer will check once per second, so it's aproximately a second.
}
protected func Timer()
{
for (var fade in FindObjects(Find_Category(C4D_Object), Find_NoContainer(), Find_Not(Find_OCF(OCF_HitSpeed1))))
{
if (fade->GetXDir() || fade->GetYDir())
continue;
if (fade->GetEffect("IntFadeOut", fade))
continue;
if (GBackSolid(AbsX(fade->GetX()), AbsY(fade->GetY())))
continue;
if (fade->~HasNoFadeOut())
continue;
fade->AddEffect("IntFadeOut", fade, 100, 1, this, Rule_ObjectFade);
}
}
public func FxIntFadeOutStart(object target, int num)
{
EffectVar(0, target, num) = target->GetX();
EffectVar(1, target, num) = target->GetY();
EffectVar(3, target, num) = target->GetClrModulation() & 0x00ffffff; //Safe pure rgb
EffectVar(4, target, num) = target->GetClrModulation() >> 24 & 255; //Safe alpha
}
public func FxIntFadeOutTimer(object target, int num, int time)
{
if (time < fade_time * 2/3)
return;
if (!(target->Contained()) && EffectVar(0, target, num) == target->GetX() && EffectVar(1, target, num) == target->GetY())
{
if(time >= fade_time)
{
target->RemoveObject();
return -1;
}
}
else
{
target->SetClrModulation(EffectVar(4, target, num) << 24 | EffectVar(3, target, num));
return -1;
}
target->SetClrModulation(((fade_time - time) * EffectVar(4, target, num) / (fade_time/3)) << 24 | EffectVar(3, target, num));
return 1;
}
public func FxIntFadeOutTimerEffect(string new_effect_name)
{
if (new_effect_name == "IntFadeOut")
return -1;
}
local Name = "Object Fade";

View File

@ -0,0 +1,40 @@
[Head]
Title=Overcast
Version=4,10,0,0
MinPlayer=2
[Definitions]
Definition1=Objects.c4d
[Game]
Goals=MELE
[Player1]
Crew=Clonk=1
[Player2]
Crew=Clonk=1
[Player3]
Crew=Clonk=1
[Player4]
Crew=Clonk=1
[Landscape]
Sky=Clouds1
MapWidth=60
MapHeight=50
BottomOpen=1
SkyScrollMode=1
Sky=Fog1
[Animals]
Nest=Firestone=30;Loam=20;Rock=15;
[Weather]
Climate=00,0,0,00
StartSeason=0,0,0,00
YearSpeed=0,0,0,000
Wind=1,100,-100,100

View File

@ -0,0 +1,333 @@
/*--
Thunderous Skies
Author: Mimmo_O
King of the hill high in the skies.
--*/
protected func Initialize()
{
// Goal.
CreateObject(Rule_ObjectFade)->DoFadeTime(8 * 36);
var goal = CreateObject(Goal_KingOfTheHill, 450, 380, NO_OWNER);
goal->SetRadius(90);
goal->SetPointLimit(10);
AddEffect("BlessTheKing",goal,100,1,nil);
CreateObject(Rule_KillLogs);
//Enviroment.
//SetSkyAdjust(RGBa(250,250,255,128),RGB(200,200,220));
Sound("BirdsLoop.ogg",true,100,nil,+1);
CreateObject(Column,650,379);
CreateObject(Column,350,409);
CreateObject(Column,160,229);
CreateObject(Column,448,269);
CreateObject(Column,810,179);
// Chests with weapons.
CreateObject(Chest, 175, 200, NO_OWNER);
CreateObject(Chest, 800, 150, NO_OWNER);
CreateObject(Chest, 430, 240, NO_OWNER);
CreateObject(Chest, 610, 340, NO_OWNER);
CreateObject(Chest, 355, 390, NO_OWNER);
AddEffect("IntFillChests", nil, 100, 2 * 36, this);
// Smooth brick edges.
AddEffect("ChanneledWind", nil, 100, 1, this);
AddEffect("Balloons", nil, 100, 100, this);
PlaceEdges();
MovingBricks();
PlaceGras();
return;
}
global func FxLifestealDamage(object target, int num, int damage, int cause, int from)
{
var goal = FindObject(Find_ID(KingOfTheHill_Location));
if (!goal) return damage;
var king = goal->GetKing();
if (!king) return damage;
if (from == -1) return damage;
if (damage > 0) return damage;
if (target->GetOwner() == from) return damage;
if (king->GetOwner() == from)
AddEffect("Lifedrain",king,100,1,nil,nil,damage/3);
return damage;
}
global func FxLifedrainStart(object target, int num, int temporary,damage)
{
if(temporary) return 1;
EffectVar(0,target,num)=damage/10;
}
global func FxLifedrainAdd(object target, int num, string new_name, int new_timer, damage)
{
EffectVar(0,target,num)+=damage/10;
}
global func FxLifedrainTimer(object target, int num, int timer)
{
if(EffectVar(0,target,num)>0) return -1;
target->DoEnergy(+100,1,0,-1);
EffectVar(0,target,num)+=10;
}
global func FxBlessTheKingTimer(object target, int num, int timer)
{
//evil effect abuse :O
for(var dead in FindObjects(Find_ID(Clonk),Find_Not(Find_OCF(OCF_Alive))))
{
CastParticles("Air",50,50,dead->GetX(),dead->GetY(),50+Random(30));
for(var i=0; i<200; i++)
{
var r=Random(360);
CreateParticle("AirIntake",dead->GetX()+Sin(r,6-Random(5)),dead->GetY()-Cos(r,6-Random(5)),RandomX(-2,2),-(i/3),20+Random(20),dead->GetPlayerColor());
}
dead->RemoveObject();
}
if(!FindObject(Find_ID(KingOfTheHill_Location))) return 1;
if(FindObject(Find_ID(KingOfTheHill_Location))->GetKing() == nil) return 1;
var king=FindObject(Find_ID(KingOfTheHill_Location))->GetKing();
for(var i=0; i<5; i++)
{
var r=Random(360);
var clr=RGBa(30,100-Random(50),255-Random(160),230+Random(20));
var str=0;
if(GetEffect("Lifedrain",king))
{
clr=RGBa(BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king)),30,225)+Random(20),160-(BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king))/2,10,100))-Random(50),230-BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king)),30,225)+Random(20), 230+Random(20));
var str=Random(BoundBy(-EffectVar(0,king,GetEffect("Lifedrain",king))/10,2,6));
}
CreateParticle("AirIntake",king->GetX()+Sin(r,6-Random(5)),king->GetY()-Cos(r,6-Random(5)),Sin(r + 90,8+Random(4)+str),-Cos(r +90,8+Random(4)+str),20+Random(30) +str*str,clr);
CreateParticle("AirIntake",king->GetX()+Sin(r + 180,6-Random(5)),king->GetY()-Cos(r+180,6-Random(5)),Sin(r + 90,8+Random(4)+str),-Cos(r +90,8+Random(4)+str),20+Random(30)+str*str,clr);
}
CreateParticle("AirIntake",king->GetX()+Sin(r + 180,6-Random(5)),king->GetY()-Cos(r+180,6-Random(5)),0,-25,20+Random(20),king->GetPlayerColor());
return 1;
}
global func MovingBricks()
{
CreateObject(MovingBrick,370,430)->Room(140,0,0,10,0);
CreateObject(MovingBrick,550,250)->Room(0,50,0,0,9);
}
global func FxChanneledWindTimer()
{
for(var obj in FindObjects(Find_InRect(230,300,40,90)))
{
obj->SetYDir(Max(obj->GetYDir()-5,-50));
obj->SetXDir(obj->GetXDir()+RandomX(-1,1));
}
for(var obj in FindObjects(Find_InRect(700,250,60,100)))
{
obj->SetYDir(Max(obj->GetYDir()-5,-50));
obj->SetXDir(obj->GetXDir()+RandomX(-1,1));
}
CreateParticle("AirIntake",230+Random(40),398,RandomX(-1,1),-30,60+Random(10),RGB(100+Random(25),128+Random(20),255));
CreateParticle("AirIntake",700+Random(60),348,RandomX(-1,1),-30,60+Random(10),RGB(100+Random(25),128+Random(20),255));
}
global func FxBalloonsTimer()
{
if(ObjectCount(Find_ID(TargetBalloon)) > 2 )
{
return 1;
}
if(ObjectCount(Find_ID(TargetBalloon)) )
{
if(Random(6)) return 1;
}
if(Random(2)) return 1;
var x = Random(300)+50;
if(Random(2)) x = LandscapeWidth() - x;
var y = Random(50) + 100;
var target;
var r = Random(3);
if(r == 0) target = CreateObject(Boompack, x, y, NO_OWNER);
if(r == 1){target = CreateObject(DynamiteBox, x, y, NO_OWNER); target->SetR(180); }
if(r == 2){target = CreateObject(Arrow, x, y, NO_OWNER); target->SetObjDrawTransform(1000,0,0,0,1000,-7500);}
var balloon = CreateObject(TargetBalloon, x, y-30, NO_OWNER);
balloon->SetProperty("load",target);
target->SetAction("Attach", balloon);
CreateParticle("Flash", x, y - 50, 0, 0, 500, RGB(255, 255, 255));
AddEffect("HorizontalMoving", balloon, 1, 1, balloon);
balloon->SetXDir(((Random(2)*2)-1) * (Random(4)+3));
}
global func PlaceEdges()
{
var x=[505, 525, 365, 765, 765, 695, 765, 275, 225, 225, 775, 685, 775, 685, 675, 665, 405, 415, 235, 215, 215, 375, 285, 285];
var y=[385, 395, 395, 235, 205, 295, 295, 345, 345, 255, 365, 225, 305, 305, 315, 325, 225, 235, 445, 375, 355, 365, 355, 275];
var d=[3, 2, 3, 3, 1, 1, 0, 0, 1, 0, 2, 3, 0, 1, 1, 1, 1, 2, 3, 3, 1, 0, 0, 2];
for (var i = 0; i < GetLength(x); i++)
{
var edge=CreateObject(BrickEdge);
edge->SetP(d[i]);
edge->SetPosition(x[i],y[i]+50);
edge->PermaEdge();
}
return 1;
}
global func PlaceGras()
{
var x=[756, 756, 756, 757, 497, 497, 498, 498, 498, 497, 222, 223, 147, 148, 147, 148, 147, 147, 214, 215, 214, 214, 214, 214, 214, 705, 704, 704, 764, 765, 765, 765, 823, 824, 825, 825, 778, 778, 778, 778, 778, 395, 233, 235, 235, 396, 266, 396, 397, 397, 396, 396, 266, 267, 175, 180, 193, 199, 207, 212, 223, 273, 330, 322, 314, 306, 298, 289, 282, 338, 365, 306, 320, 325, 297, 369, 375, 379, 335, 312, 290, 285, 281, 276, 272, 227, 411, 207, 213, 218, 223, 404, 400, 435, 419, 481, 474, 468, 462, 427, 489, 555, 508, 514, 525, 532, 540, 548, 520, 503, 576, 604, 596, 590, 582, 570, 563, 609, 670, 626, 632, 661, 666, 638, 621, 615, 674, 680, 686, 691, 696, 760, 761, 766, 771, 781, 777, 778, 637, 643, 631, 612, 618, 624, 686, 692, 680, 652, 660, 668, 673, 699, 789, 819, 782, 771, 220, 228, 764, 188];
var y=[264, 268, 275, 280, 418, 407, 395, 383, 393, 403, 289, 283, 257, 252, 229, 247, 237, 243, 270, 253, 248, 261, 240, 231, 235, 274, 271, 266, 241, 229, 222, 237, 198, 195, 190, 184, 213, 199, 186, 192, 208, 296, 327, 318, 312, 285, 320, 310, 284, 291, 304, 320, 312, 328, 227, 228, 225, 225, 226, 275, 297, 307, 308, 308, 306, 305, 307, 307, 306, 307, 408, 406, 406, 407, 406, 408, 413, 414, 408, 405, 404, 400, 395, 391, 388, 389, 268, 407, 403, 397, 394, 272, 279, 265, 266, 268, 267, 264, 267, 268, 269, 377, 377, 375, 377, 375, 378, 378, 376, 376, 376, 375, 375, 378, 379, 376, 376, 378, 367, 378, 377, 375, 371, 377, 376, 377, 364, 359, 353, 346, 341, 257, 338, 344, 350, 362, 356, 217, 257, 256, 256, 257, 257, 256, 259, 258, 259, 256, 258, 258, 259, 259, 179, 175, 178, 218, 274, 306, 250, 226];
var r=[-89, -91, -93, -90, -93, -93, -92, -88, -93, -93, 87, 89, -90, -91, -89, -91, -90, -90, 93, 87, 88, 87, 90, 93, 88, 90, 93, 89, -87, -92, -92, -92, 88, 93, 90, 93, -91, -93, -88, -92, -90, -88, 93, 88, 91, -90, -88, -90, -91, -93, -87, -92, -87, -93, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 43, 0, 0, 0, 46, 44, 42, 48, -43, -48, -45, -45, -43, -48, -45, -43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -48, 0, 0, -43, -44, 0, 0, 0, -42, -42, -48, -44, -45, -89, 48, 46, 48, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, -89, 0];
for (var i = 0; i < GetLength(x); i++)
{
var edge=CreateObject(Grass, x[i], y[i] + 5, NO_OWNER);
edge->SetR(r[i]);
edge->Initialize();
edge->SetCategory(C4D_StaticBack);
if(!Random(10))
{
var big=Random(50);
var new = CreateObject(Fern,edge->GetX(),edge->GetY()+(big/2));
new->DoCon(big);
new->SetR(r[i]);
edge->Incinerate();
}
}
return 1;
}
global func MakeGrasFunction(bool fExact)
{
var x=[];
var y=[];
var r=[];
for(var e in FindObjects(Find_ID(Grass)))
{
x[GetLength(x)]=e->GetX();
y[GetLength(y)]=e->GetY();
r[GetLength(r)]=e->GetR();
}
Log("global func PlaceGras()");
Log("{");
Log(" var x=%v;",x);
Log(" var y=%v;",y);
Log(" var r=%v;",r);
Log(" for (var i = 0; i < GetLength(x); i++)");
Log(" {");
Log(" var edge=CreateObject(Grass, x[i], y[i] + 5, NO_OWNER);");
Log(" edge->SetR(r[i]); ");
Log(" edge->Initialize();"); //additional initialize for anti self blocking
Log(" }");
Log(" return 1;");
Log("}");
}
private func MakeTarget(int x, int y)
{
var target = CreateObject(DynamiteBox, x, y, NO_OWNER);
var balloon = CreateObject(TargetBalloon, x, y-30, NO_OWNER);
balloon->SetProperty("load",target);
target->SetAction("Attach", balloon);
CreateParticle("Flash", x, y - 50, 0, 0, 500, RGB(255, 255, 255));
}
// Refill/fill chests.
global func FxIntFillChestsStart(object target, int num, int temporary)
{
if(temporary) return 1;
var chests = FindObjects(Find_ID(Chest),Find_InRect(0,0,LandscapeWidth(),610));
var w_list = [Shield, Javelin, FireballScroll, Bow, Musket, WindScroll, ThunderScroll];
for(var chest in chests)
for(var i=0; i<4; ++i)
chest->CreateChestContents(w_list[Random(GetLength(w_list))]);
return 1;
}
global func FxIntFillChestsTimer()
{
SetTemperature(100);
var chest = FindObjects(Find_ID(Chest), Sort_Random())[0];
var w_list = [Javelin, Bow, Musket, Boompack, Dynamite, Shield, WindScroll, FireballScroll, ThunderScroll, Club, Sword];
var maxcount = [1,1,1,1,2,1,1,2,2,1,1];
var contents;
for(var i=0; i<chest->GetLength(w_list); i++)
contents+=chest->ContentsCount(w_list[i]);
if(contents > 5) return 1;
if(!FindObject(Find_ID(Clonk),Find_Distance(20,chest->GetX(),chest->GetY())) && chest->ContentsCount()>2)
{
var r=chest->Random(chest->ContentsCount());
var remove=true;
for(var i=0; i<GetLength(w_list); i++)
if(chest->Contents(r)->GetID() == w_list[i]) remove=false;
if(remove) chest->Contents(r)->RemoveObject();
}
for(var i=0; i<2 ; i++)
{
var r = Random(GetLength(w_list));
if (chest->ContentsCount(w_list[r]) < maxcount[r])
{
chest->CreateChestContents(w_list[r]);
i=3;
}
}
return 1;
}
global func CreateChestContents(id obj_id)
{
if (!this)
return;
var obj = CreateObject(obj_id);
if (obj_id == Bow)
obj->CreateContents(Arrow);
if (obj_id == Musket)
obj->CreateContents(LeadShot);
obj->Enter(this);
return;
}
protected func InitializePlayer(int plr)
{
return JoinPlayer(plr);
}
// GameCall from RelaunchContainer.
protected func RelaunchPlayer(int plr)
{
var clonk = CreateObject(Clonk, 0, 0, plr);
clonk->MakeCrewMember(plr);
SetCursor(plr, clonk);
JoinPlayer(plr);
return;
}
protected func JoinPlayer(int plr)
{
var clonk = GetCrew(plr);
clonk->DoEnergy(100000);
var position = [[180,150],[310,320],[600,290],[650,180],[790,110],[440,190]];
var r=Random(GetLength(position));
var x = position[r][0], y = position[r][1];
var relaunch = CreateObject(RelaunchContainer, x, y + 49, clonk->GetOwner());
relaunch->StartRelaunch(clonk);
return;
}
func KillsToRelaunch() { return 0; }
func RelaunchWeaponList() { return [Bow, Javelin, Musket, FireballScroll, WindScroll, ThunderScroll]; }

View File

@ -0,0 +1,17 @@
[DefCore]
id=FireballScroll
Version=4,9,10,10
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=3
VertexX=0,-3,3
VertexY=-3,2,2
VertexFriction=40,40,40
Picture=0,0,8,8
Value=25
Mass=2
Collectible=1
Rebuy=1
Rotate=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1,88 @@
/*--
Scroll: Fireball
Author: Mimmo
Hurl a fiery ball into your enemies.
--*/
public func ControlUse(object pClonk, int ix, int iy)
{
AddEffect("Fireball", 0, 100, 1, 0, GetID(), pClonk->GetOwner(), Angle(0,0,ix,iy),pClonk->GetX(), pClonk->GetY());
Sound("Fireball.ogg");
Sound("Fireball.ogg");
RemoveObject();
return 1;
}
public func FxFireballStart(pTarget, iEffectNumber, iTemp, owner, angle, x, y)
{
if(iTemp) return;
x+=Sin(angle, 10)+RandomX(-1, 1);
y+=-Cos(angle, 10)+RandomX(-1, 1);
EffectVar(0, pTarget, iEffectNumber)=owner;
EffectVar(1, pTarget, iEffectNumber)=angle;
EffectVar(2, pTarget, iEffectNumber)=x;
EffectVar(3, pTarget, iEffectNumber)=y;
}
public func FxFireballTimer(pTarget, iEffectNumber, iEffectTime)
{
var angle=EffectVar(1, pTarget, iEffectNumber);
var x=EffectVar(2, pTarget, iEffectNumber);
var y=EffectVar(3, pTarget, iEffectNumber);
if ( iEffectTime>67 ||
GBackSolid(x,y) ||
FindObject(
Find_Distance(16,x,y),
Find_ID(TargetBalloon)) ||
FindObject(
Find_Hostile(EffectVar(0, pTarget, iEffectNumber)),
Find_OCF(OCF_Alive),
Find_NoContainer(),
Find_Distance(16,x,y)
)
)
{
CreateObject(Dynamite,x,y,EffectVar(0, pTarget, iEffectNumber))->Explode(14);
for(var i=0; i<=3;i++) CreateObject(Dynamite,x+Sin(i*120 +x,13),y-Cos(i*120 +x,13),EffectVar(0, pTarget, iEffectNumber))->Explode(6+Random(4));
var obj=FindObject(Find_Distance(22,x,y),Find_ID(TargetBalloon));
if(obj)
{
var arw=CreateObject(Arrow,0,0,EffectVar(0, pTarget, iEffectNumber));
obj->OnProjectileHit(arw);
arw->RemoveObject();
}
return -1;
}
else if(iEffectTime < 70)
{
CreateParticle("FireballSmoke",x,y,Sin(Random(360),2),Cos(Random(360),2),RandomX(120,180),RGBa(100,100,100,70));
CreateParticle("MagicSpark",x,y,Sin(Random(360),RandomX(5,13)),Cos(Random(360),RandomX(5,13)),RandomX(30,70),RGB(255,255,255));
//if(!Random(10)) if(Random(2))angle++; else angle--;
angle+=Sin(iEffectTime*30,18);
x+=Sin(angle, 6);
y+=-Cos(angle, 6);
EffectVar(2, pTarget, iEffectNumber)=x;
EffectVar(3, pTarget, iEffectNumber)=y;
for(var i=0;i<6;++i)
{
var c=HSL(Random(50), 200+Random(25), Random(100));
var rx=RandomX(-2, 2);
var ry=RandomX(-2, 2);
CreateParticle("MagicFire", x+rx, y+ry, Sin(angle+180,6)+ry, -Cos(angle+180,6)+rx, 80+Random(20), c);
CreateParticle("MagicFire", x+rx, y+ry, Sin(angle+180,6)+ry, -Cos(angle+180,6)+rx, 20+Random(10), RGB(255,255,0));
}
}
return 1;
}
local Name = "$Name$";
local Description = "$Description$";

View File

@ -0,0 +1,2 @@
Name=Feuerball-Schriftrolle
Description=Schleudere einen feurigen Ball in die Gegnermenge.

View File

@ -0,0 +1,2 @@
Name=Fireball Scroll
Description=Hurl a fiery ball into your enemies.

View File

@ -0,0 +1,17 @@
[DefCore]
id=ThunderScroll
Version=4,9,10,10
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=3
VertexX=0,-3,3
VertexY=-3,2,2
VertexFriction=40,40,40
Picture=0,0,8,8
Value=25
Mass=2
Collectible=1
Rebuy=1
Rotate=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,16 @@
[Particle]
Name=LightningSpark
MaxCount=1000
InitFn=StdInit
ExecFn=StdExec
CollisionFn=Die
DrawFn=Std
Face=0,0,32,32,-16,-16
Delay=0
Repeats=1
GravityAcc=50
VertexCount=1
VertexY=50
AlphaFade=12
Additive=1
RByV=1

View File

@ -0,0 +1,14 @@
[Particle]
Name=LightningStrike
MaxCount=1500
InitFn=StdInit
ExecFn=StdExec
CollisionFn=Bounce
DrawFn=Std
Face=0,0,16,2000,-8,0
Delay=0
Repeats=0
GravityAcc=0
AlphaFade=20
Additive=1
Attach=1

View File

@ -0,0 +1,102 @@
/*--
Scroll: Thunder
Author: Mimmo
Call down a devastating storm down from above.
--*/
public func ControlUse(object pClonk)
{
Sound("Blast3");
Exit(0,-GetY());
AddEffect("ThunderStrike",0,100,1,0,this->GetID(),pClonk->GetOwner(),this->GetX()-5);
RemoveObject();
return 1;
}
global func FxThunderStrikeStart(pTarget, iEffectNumber, iTemp, owner, x)
{
if(iTemp) return;
EffectVar(0, pTarget, iEffectNumber)=owner;
EffectVar(1, pTarget, iEffectNumber)=x;
}
global func FxThunderStrikeTimer(pTarget, iEffectNumber, iEffectTime)
{
var move = EffectVar(1, pTarget, iEffectNumber);
if(iEffectTime>36)
{
var owner = EffectVar(0, pTarget, iEffectNumber);
var x=0;
var wdt = 18;
var y = [];
var targets=[];
for(var i = (x-wdt); i < (wdt*2); i++ )
{
while(!GBackSolid(i+move,y[i+wdt]) && y[i+wdt] < LandscapeHeight())
y[i+wdt]++;
}
for(var i = (x-wdt); i < (wdt*2); i++ )
{
if(!(i%5))
for(var k=0; k<y[i+wdt]; k+=10+Random(5))
{
CreateParticle("LightningSpark",i+move,k,RandomX(-12,12),RandomX(-40,-10),40+Random(21),RGB(255-Random(100),255-Random(50),255-Random(10)),nil,Random(2));
}
for(var l=0; l<3; l++)
CreateParticle("LightningSpark",i+move,y[i+wdt]-l-2,RandomX(-20,20),-20-Random(10),30+Random(30),RGB(255-Random(50),255-Random(30),255-Random(5)),nil,Random(2));
if(i%3) CreateParticle("LightningStrike",i+move,y[i+wdt]-l-10,0,0,64,RGBa(255-Random(50),255-Random(30),255-Random(5),255-Random(20)),nil,Random(2));
for(var t in FindObjects(Find_Or(Find_And(Find_ID(Clonk),Find_OCF(OCF_Alive)), Find_ID(TargetBalloon)),Find_OnLine(i+move,-0,i+move,y[i+wdt])))
{
var add=true;
for(var j=0; j<GetLength(targets); j++)
if(targets[j] == t) add=false;
if(add) targets[GetLength(targets)] = t;
}
}
for(var t in targets)
{
if(t->GetID() == TargetBalloon)
{
var arw=CreateObject(Arrow,0,0,owner);
t->OnProjectileHit(arw);
arw->RemoveObject();
}
else
{
if(t->GetOwner() != owner)
{
t->DoEnergy(-15,0,0,owner);
t->Fling(BoundBy((t->GetX()-(move))/4,-3,3),-6);
}
}
}
return -1;
}
else if(iEffectTime<4)
{
if(iEffectTime%3)
{
while(!GBackSolid(x+move+5,y) && y < LandscapeHeight())
{
var add=Random((iEffectTime*5))*((Random(2)*2) -1);
CreateParticle("Air",x+move+5+add,y,0,RandomX(-2,1),10+(iEffectTime*5),RGB(255-Random(50),255-Random(30),255-Random(5)));
y+=Random(4)+3;
}
}
}
}
local Name = "$Name$";
local Description = "$Description$";

View File

@ -0,0 +1,2 @@
Name=Donner-Schriftrolle
Description=Rufe einen vernichtenden Blitz vom Himmel!

View File

@ -0,0 +1,2 @@
Name=Thunder Scroll
Description=Call down a devastating lightning from above!

View File

@ -0,0 +1,17 @@
[DefCore]
id=WindScroll
Version=4,9,10,10
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=3
VertexX=0,-3,3
VertexY=-3,2,2
VertexFriction=40,40,40
Picture=0,0,8,8
Value=25
Mass=2
Collectible=1
Rebuy=1
Rotate=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Some files were not shown because too many files have changed in this diff Show More