Gobligine/doc/scripts/research.html
2002-12-17 06:40:52 +00:00

429 lines
12 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<!--
---- (c) Copyright 2002 by Lutz Sammer
---- FreeCraft is free software; you can redistribute it and/or modify
---- it under the terms of the GNU General Public License as published by
---- the Free Software Foundation; only version 2 of the License.
---- FreeCraft 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 General Public License for more details.
-->
<TITLE>FreeCraft Configuration Language Description: Icon</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1">
<META NAME="Author" CONTENT="johns98@gmx.net">
<META NAME="Keyword" CONTENT="ccl,tileset">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<H1>FreeCraft Configuration Language Description: Research</H1>
<HR><PRE WIDTH=80>
___________ _________ _____ __
\_ _____/______ ____ ____ \_ ___ \____________ _/ ____\/ |_
| __) \_ __ \_/ __ \_/ __ \/ \ \/\_ __ \__ \\ __\\ __|
| \ | | \/\ ___/\ ___/\ \____| | \// __ \| | | |
\___ / |__| \___ >\___ >\______ /|__| (____ /__| |__|
\/ \/ \/ \/ \/
______________________ ______________________
T H E W A R B E G I N S
FreeCraft - A free fantasy real time strategy game engine
</PRE>
<P><B>(C) Copyright 2002 by The FreeCraft Project. Distributed under the
<A HREF="../gpl.html">"GNU General Public License"</A></B>
<HR>
<A HREF="../freecraft.html">FreeCraft</A>
<A HREF="../readme.html">Readme</A>
<A HREF="../faq.html">FAQ</A>
<A HREF="ccl.html">CCL</A>
<A HREF="icon.html">PREV</A>
<A HREF="sound.html">NEXT</A>
<A HREF="ccl-index.html">Index</A>
<HR>
<A HREF="#check-dependency">check-dependency</A>
<A HREF="#define-allow">define-allow</A>
<A HREF="#define-dependency">define-dependency</A>
<A HREF="#define-modifier">define-modifier</A>
<A HREF="#define-upgrade">define-upgrade</A>
<A HREF="#define-upgrade-wc-names">define-upgrade-wc-names</A>
<A HREF="#get-dependency">get-dependency</A>
<HR>
<H2>Intro - Introduction to research functions and variables</H2>
Everything around researching and upgrades.
<H2>Functions</H2>
<A NAME="check-dependency"></A>
<H3>check-dependency</H3>
<H4>Description</H4>
NOT WRITTEN YET.
<H4>Syntax</H4>
<CODE>(check-dependency)</CODE>
<DL>
<DT>.</DT>
<DD>.
</DD>
</DL>
<H4>Example</H4>
<PRE>
(check-dependency)
</PRE>
<P>.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<A NAME="define-allow"></A>
<H3>define-allow</H3>
<H4>Description</H4>
Define what unit-types and upgrades are enabled for each player during
a level.
<H4>Syntax</H4>
<CODE>(define-allow name str16)</CODE>
<DL>
<DT>name</DT>
<DD>Name of an unit-type or an upgrade to be defined.
</DD>
<DT>str16</DT>
<DD>
The initial allow state for the unit-type or upgrade at level start:
<UL>
<LI>A - Allowed
<LI>E - Enabled, allowed by level but currently forbidden
<LI>F - Forbidden
<LI>R - Researched or acquired
<LI>Q - Acquired but currently forbidden (does it make sense?:)
</UL>
Each player has his own character, the first is for player 0 and the last
is for player 15.
</DD>
</DL>
<H4>Example</H4>
<PRE>
(define-allow 'unit-catapult "AAAAAAAAAAAAAAAA")
</PRE>
<P>Allow the catapult for all 16 players.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<A NAME="define-dependency"></A>
<H3>define-dependency</H3>
<H4>Description</H4>
Define the dependencies for an unit-type or an upgrade. The dependency
must be full filled before an unit or research can be used.
<H4>Syntax</H4>
<CODE>(define-dependency unit-type/upgrade '( unit-type/upgrade count ... )
['or '( unit-type/upgrade count ... ) ...] )
</CODE><P>
<CODE>(define-dependency unit-type/upgrade '( required-part )
['or '( optional-or-part ) ...] )
</CODE>
<DL>
<DT>required-part</DT>
<DD><CODE>unit/upgrade [count]</CODE><P>
A list of unit-types or upgrades required.
<DL>
<DT>unit/upgrade</DT>
<DD>Unit-type name or upgrade name required.
</DD>
<DT>count</DT>
<DD>Optional count, how many units of the unit-type are required.
</DL>
</DD>
<DT>'or optional-or-part</DT>
<DD><CODE>unit/upgrade [count]</CODE><P>
Optional list of or parts. One or list must be complete full filled.<P>
<DL>
<DT>unit/upgrade</DT>
<DD>Unit-type name or upgrade name required.
</DD>
<DT>count</DT>
<DD>Optional count, how many units of the unit-type are required.
</DL>
</DD>
</DL>
<H4>Example</H4>
<PRE>
(define-dependency 'upgrade-sword2 '(upgrade-sword1))
</PRE>
<P>The second sword upgrade is only possible, if the first sword upgrade is
researched.
<PRE>
(define-dependency 'upgrade-ranger '(unit-keep) 'or '(unit-castle))
</PRE>
<P>The ranger upgrade is only available if a keep or castle is available.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<A NAME="define-modifier"></A>
<H3>define-modifier</H3>
<H4>Description</H4>
Define the effects (modifier) of an upgrade. An upgrade can have multiple
modifiers. It can activate, enable or disable other upgrades and allows
complex reactions.
<H4>Syntax</H4>
<CODE>(define-modifier name '(effect1 effect1-arg) ...)</CODE>
<DL>
<DT>name</DT>
<DD>Name of the upgrade, which has this effects. See
<A HREF="#define-modifier">(define-modifier)</A>. All effects change all old
units and any new unit of a player.
</DD>
<DT>'(effectN effectN-arg)</DT>
<DD>A list of effects of the upgrade. Here are all possible effects:
<DL>
<DT>'(attack-range N)</DT>
<DD>Change the attack range of all units of the unit-types given with
'(apply-to ...). Note it can be increased with positive numbers and decreased
with negative numbers.
</DD>
<DT>'(sight-range N)</DT>
<DD>Change the sight range of all units of the unit-types given with
'(apply-to ...).
</DD>
<DT>'(basic-damage N)</DT>
<DD>Change the basic damage of all units of the unit-types given with
'(apply-to ...).
</DD>
<DT>'(piercing-damage N)</DT>
<DD>Change the piercing damage of all units of the unit-types given with
'(apply-to ...).
</DD>
<DT>'(armor N)</DT>
<DD>Change the armor of all units of the unit-types given with
'(apply-to ...).
</DD>
<DT>'(speed N)</DT>
<DD>Change the speed of all units of the unit-types given with
'(apply-to ...). <B>Attention</B>: This changes only the displayed value
and not the real unit-speed!
</DD>
<DT>'(hit-points N)</DT>
<DD>Change the hit points of all units of the unit-types given with
'(apply-to ...).
</DD>
<DT>'(time-cost N)</DT>
<DD>Change the time costs (research time or build time) of all unit-types
or upgrade-ids given with '(apply-to ...).
<DD>
</DD>
<DT>'(gold-cost N)</DT>
<DD>Change the gold costs of all unit-types or upgrade-ids given with
'(apply-to ...).
</DD>
<DT>'(wood-cost N)</DT>
<DD>Change the wood costs of all unit-types or upgrade-ids given with
'(apply-to ...).
</DD>
<DT>'(oil-cost N)</DT>
<DD>Change the oil costs of all unit-types or upgrade-ids given with
'(apply-to ...).
</DD>
<DT>'(ore-cost N)</DT>
<DD>Change the ore costs of all unit-types or upgrade-ids given with
'(apply-to ...).
</DD>
<DT>'(stone-cost N)</DT>
<DD>Change the stone costs of all unit-types or upgrade-ids given with
'(apply-to ...).
</DD>
<DT>'(coal-cost N)</DT>
<DD>Change the coal costs of all unit-types or upgrade-ids given with
'(apply-to ...).
</DD>
<DT>'(allow unit-type-id N) or '(allow upgrade-id N)</DT>
<DD>Change the state of an unit-type or upgrade. N can be
<UL>
<LI>A - Allowed
<LI>E - Enabled, allowed by level but currently forbidden
<LI>F - Forbidden
<LI>R - Researched or acquired
<LI>Q - Acquired but currently forbidden (does it make sense?:)
</UL>
FIXME: The correct possible changed must be described.
</DD>
<DT>'(apply-to unit-type-id) or '(apply-to upgrade-id)</DT>
<DD>The modifiers are applied to this unit-type or upgrade.
</DD>
<DT>'(convert-to unit-type-id)</DT>
<DD>All units of the unit-types given with '(apply-to ...) are converted
into this unit-type.
</DD>
</DL>
</DD>
</DL>
<H4>Example</H4>
<PRE>
(define-modifier 'upgrade-sword1
'(piercing-damage 2)
'(apply-to unit-footman) '(apply-to unit-knight) '(apply-to unit-paladin)
'(apply-to unit-dwarves) '(apply-to unit-d_____) '(apply-to unit-l_____)
'(apply-to unit-u____-l___________) '(apply-to unit-t_______))
</PRE>
<P>This is the default effect of the first sword upgrade. The piercing damage
of the listed units is increased.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<A NAME="define-upgrade"></A>
<H3>define-upgrade</H3>
<H4>Description</H4>
Define an upgrade, how it is shown and how much it costs.
<H4>Syntax</H4>
<CODE>(define-upgrade name 'icon icon-id 'costs #( costs ... ))</CODE>
<DL>
<DT>name</DT>
<DD>Name of the upgrade, used in buttons (define-button) and
<A HREF="#define-modifier">(define-modifier)</A>.
</DD>
<DT>'icon icon-id</DT>
<DD>Name of the upgrade icon, shown in buttons or during the research of the
upgrade. The icon is defined with
<A HREF="icon.html#define-icon">(define-icon)</A> or
<A HREF="icon.html#define-icon-alias">(define-icon-alias)</A>
<DT>'costs #( time resource1 resource2 resource3 resource4 resource5 resource6)</DT>
<DD>This are the costs for the upgrade. The costs (resource1-resource6) could
be redefined, the default is: 'costs #( time gold wood oil ore stone coal).
</DD>
</DL>
<H4>Example</H4>
<PRE>
(define-upgrade 'upgrade-sword1 'icon 'icon-sword2
'costs #( 200 800 0 0 0 0 0))
</PRE>
<P>This is the default definition of the first sword upgrade. The icon
"icon-sword2" is shown in buttons and during the upgrade. The upgrade costs
200 frame cycles to research and 800 gold from the store.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<A NAME="define-upgrade-wc-names"></A>
<H3>define-upgrade-wc-names</H3>
<H4>Description</H4>
.
<H4>Syntax</H4>
<CODE>(define-upgrade-wc-names sword1 sword2 ...)</CODE>
<DL>
<DT>.</DT>
<DD>.
</DD>
</DL>
<H4>Example</H4>
<PRE>
(define-upgrade-wc-names 'upgrade-sword1 'upgrade-sword2 ...)
</PRE>
<P>.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<A NAME="get-dependency"></A>
<H3>get-dependency</H3>
<H4>Description</H4>
NOT WRITTEN YET.
<H4>Syntax</H4>
<CODE>(get-dependency)</CODE>
<DL>
<DT>.</DT>
<DD>.
</DD>
</DL>
<H4>Example</H4>
<PRE>
(get-dependency)
</PRE>
<P>.
<H4>Used</H4>
<A HREF="../../data/ccl/upgrade.ccl"> $LIBARYPATH/ccl/upgrade.ccl</A> ,
<A HREF="../../data/ccl/human/upgrade.ccl"> $LIBARYPATH/ccl/human/upgrade.ccl</A> ,
<A HREF="../../data/ccl/orc/upgrade.ccl"> $LIBARYPATH/ccl/orc/upgrade.ccl</A>
<HR>
Last changed: $Id$<BR>
All trademarks and copyrights on this page are owned by their respective owners.
<ADDRESS>(c) 2002 by<A HREF="mailto:aleclone@FreeCraft.org">
The FreeCraft Project</A></ADDRESS></BODY></HTML>