author | Wuzzy |
Fri, 12 May 2023 14:37:17 +0000 | |
changeset 2223 | 4e49d93377fd |
parent 171 | ede3b4409e12 |
permissions | -rw-r--r-- |
170
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
1 |
#summary Library of scripted structures for use in Lua scripts. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
2 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
3 |
= Introduction = |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
4 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
5 |
I propose we create a library of scripted structures for use in the Hedgewars campaign. This would also allow users to easily create fairly complex levels much faster than is currently possible. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
6 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
7 |
= Details = |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
8 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
9 |
Things are still very much in the "idea" phase with regards of how best to implement such a library, and what it should contain. Ideally, I think structures should have an on/off state, so that they could activated and deactivated according to player feedback. Examples of how to turn a given structure might include: |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
10 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
11 |
* If the player has destroyed a power generator to which they are attached |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
12 |
* If the player is in a designated "box" or "circle" area. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
13 |
* If the player pushes some special key representing an "interaction" with the structure (e.g. shift + left/right) |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
14 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
15 |
= Structure Ideas = |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
16 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
17 |
Below are some example ideas for scripted structures. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
18 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
19 |
=== Power Generators === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
20 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
21 |
Put simply, this structure powers other structures. It could be implemented by having an invisible gtTarget linked to a lua-based structure object. The animation of the power generator could be handled using the vgtStraightShot visual gear which allows the drawing of any sprite in Hedgewars. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
22 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
23 |
Once a power generator is destroyed, whatever structures it is linked to turn off. So, for example, if a power generator is linked to a Material Emancipation Grill, the player could shoot the Power Generator in order to disable/destroy the Grill structure. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
24 |
|
171
ede3b4409e12
Edited wiki page ScriptedStructures through web user interface.
RedGrinner@gmail.com
parents:
170
diff
changeset
|
25 |
=== Switch === |
ede3b4409e12
Edited wiki page ScriptedStructures through web user interface.
RedGrinner@gmail.com
parents:
170
diff
changeset
|
26 |
|
ede3b4409e12
Edited wiki page ScriptedStructures through web user interface.
RedGrinner@gmail.com
parents:
170
diff
changeset
|
27 |
In lieu of a Power Generator, a "switch" visual gear could be drawn on a point of the map. When the hog moves to within close range of a switch structure and interacts with it in someway (e.g. shift + left/right), whatever structure the switch is linked to is toggled on/off. |
ede3b4409e12
Edited wiki page ScriptedStructures through web user interface.
RedGrinner@gmail.com
parents:
170
diff
changeset
|
28 |
|
170
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
29 |
=== Health Recharger === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
30 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
31 |
When "on" this structure would slowly restore the life of any hedgehogs nearby it. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
32 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
33 |
=== Teleporter === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
34 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
35 |
This structure teleports a hog who is in it's sphere of influence to another point on the map. The animation of the teleporter could be handled by the scripted structure lib and be similar to that of CTF_Blizzard |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
36 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
37 |
=== Flamethrower Trap === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
38 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
39 |
This could be a kind of trap / hazard on campaign maps. If the flamethrower is "on" it periodically fires a wave of flames either up/down/left/right, comparable to the flamethrower in the script Plane Wars. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
40 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
41 |
=== Roof Dispenser === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
42 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
43 |
If "on", the roof dispenser creates one gear (health crate, mine, target, etc) that drops down and then switches "off" until activated again. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
44 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
45 |
=== Force Field === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
46 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
47 |
This is the equivalent of a "locked door". When "on" prevents the player from moving in a particular direction. Could be implemented using input masks. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
48 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
49 |
=== Material Emancipation Grills === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
50 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
51 |
As seen in Portal. When "on" and a hog enters the effected zone, he loses all of his weapons (except the Portal Gun?). This would allow for resetting the player inventory in puzzle based parts of the campaign / scripted maps. Very useful indeedy. Could also be scripted to vaporize foreign gears like gtShells etc that are fired through it, to create protected zones. |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
52 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
53 |
=== Reflector shields === |
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
54 |
|
2c466afb3f4a
Created wiki page through web user interface.
RedGrinner@gmail.com
parents:
diff
changeset
|
55 |
These could be placed around points of interest, such as Power Generators or even enemy hogs. They would deflect any incoming projectiles, meaning the player has to physically move into the zone of the shield in order to attack the target it has been placed around. |