ScriptedStructures.wiki
author Wuzzy
Fri, 12 May 2023 14:37:17 +0000
changeset 2223 4e49d93377fd
parent 171 ede3b4409e12
permissions -rw-r--r--
LuaEvents: Rewrite onNewAmmoStore help
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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.