Difference between revisions of "RubberWorm"
From Worms Knowledge Base
m |
|||
Line 2: | Line 2: | ||
{{Software_infobox | {{Software_infobox | ||
| name = RubberWorm | | name = RubberWorm | ||
− | | developer = [[Pisto]] | + | | developer = [[People/Pisto|Pisto]] |
| version = 0.7.32 / 3rd August 2008 | | version = 0.7.32 / 3rd August 2008 | ||
| games = [[Worms Armageddon|W:A]] | | games = [[Worms Armageddon|W:A]] |
Revision as of 20:28, 24 May 2009
RubberWorm | |
---|---|
Developer: | Pisto |
Latest version: | 0.7.32 / 3rd August 2008 |
Supported games: | W:A |
Language: | C |
License: | Partially open-source |
Download: | 0.7.32 installer 0.6beta2 source (6kb) |
RubberWorm (or wkRubberWorm) is a module for WormKit that can modify parts of the Worms Armageddon physics to create WormPot-like effects, and adapts some features of wkMagic to the latest version of the game (3.6.29.0). It was originally released by Pisto on 6 April 2008 [1].
RubberWorm's effects are applied to the game when certain scheme settings are set to certain values. These settings are normally unused, such as crate probabilities for superweapons. As such, only an external scheme editor can create schemes that will enable RubberWorm effects, though RubberWorm does also provide a chat command interface allowing a host to enable RubberWorm effects in the lobby of a WormNET game. The scheme can then be extracted from the replay afterwards.
For online play, all players must run WA through WormKit, and have the same version of the RubberWorm dll file.
Contents
General Info
Installation and use
As any WormKit module, it has to be placed with the WormKit files in the W:A main folder, and the game must be run through WormKit.exe instead of WA.exe (the same applies for watching replays of games played with RubberWorm). Changes are applied only when using special schemes with some altered bytes.
Antivirus issue
Some antivirus programs may treat RubberWorm (as well as Wormkit) as a virus. It is a false alarm: it happens because RubberWorm uses some technique and Dlls abused by malware too.
Source code
wkRubberWorm is written in C, and a part of the source code, lacking of addresses and structs (as wkMagic), is public for demonstrative purpose.
Features
- Bouncing worms
- The original purpose of RubberWorm. Every time a worm hits an object or the terrain (in any direction), it bounces off of it. If it's during a rope roll, it can continue roping, and it never takes fall damage or loses the turn. The feature is always off if the worm is flying for a jump.
The worms' "boing" sound can switched on/off typing in the game chat /boing.
- Worm bounciness (or technically, the coefficient of restitution) is determined by the quotient of the value for the Armageddon crate probability divided by 255. For example, if the value is set to 0, the coefficient of restitution is 0, resulting in no bounce. If 255, the coefficient is 1, resulting in a perfectly elastic collision (the worm bounces with the same speed with which it hit the object or terrain).
- Gravity modifications
- Gravity can be made stronger or weaker, eliminated or even reversed. When reversed, a worm can stand on its head and shoot, but walking is obviously buggy. Also, should an object encounter no obstacle and fall into the sky, it will be sent to water when it reaches a certain height, otherwise it would block the game indefinitely.
- Activated by the crate probability of the Mail Strike, if the high bit (eighth bit) is clear. The other bits control the strength of gravity, from -64 to +63 in two's complement format (the seventh bit is the sign bit); a value of 0 or 12 results in default gravity.
- Central gravity (black hole mode)
- Gravity points towards the center of the map, or away from it (anti-gravity). These modes can either be proportional, where gravity is stronger near the center of the map, or constant, where gravity is the same strength for all locations.
- In black hole mode, the object may either start a steady orbit or fall in the middle of the map and never stop flying: to avoid the first case objects that don't explode after some seconds (like worms, mines, crates and barrels) have a very small air viscosity value (see below); for the second case, objects nearer than 15 pixel to the center are sent to water.
- Anti-gravity has a similar safeguard to reversed gravity (see above).
- The strength of the gravity can be adjusted.
- Activated by the crate probability of the Mail Strike. The high bit (eighth bit) enables black hole mode; the seventh bit enables proportional mode; the other bits control the strength of the black hole's gravity, from -32 to +31 in two's complement format (the sixth bit is the sign bit).
- Air viscosity
- Objects flying through the air lose speed up to a steady velocity, determined by gravity and wind (imagine throwing a rock in the water). Some objects, such as crates, graves, barrels, parachuting worms, and Mail Strike letters, will not experience this effect. It is adjustable: a value of 63 makes the air pasty as water.
- Activated by the crate probability of the Concrete Donkey. A higher value produces a stronger effect. If the value is odd, the effect will apply to worms as well as objects.
- Wind influence
- Like air viscosity, it can be applied to only objects or worms too, but never to those objects (like bazooka) that are already influenced by wind or crates, graves, barrels. How much the wind moves the objects is adjustable.
- Activated by the crate probability of the Suicide Bomber. A higher value produces a stronger effect, with the highest value (255) corresponding to the wind susceptibility of the Bazooka. If the value is odd, the effect will apply to worms as well as objects.
- Anti worm sink
- If activated, a worm that hits the water is prevented from drowning and instead teleported to the last location where it has been motionless. The turn does not end. If the teleport results in the worm falling and hitting water again (for example, if the terrain has since been destroyed by a weapon), it drowns normally.
- This feature is activated by a non-zero value for the crate probability of the French Sheep Strike.
- Crate finder
- Arrows point to crates, as they do in certain missions. This feature can give a player an advantage if other players do not have RubberWorm, so a chat message is used to alert other players to its use.
- Type /arrows in the in-game chat to activate this.
- Friction modifications
- Currently, the velocity of a worm is slowed by 4% each frame that a worm slides along the terrain. This is given by multiplying velocity by F*0.01, where the default F value is 96. A lower value results in a higher degree of friction, with F=0 reducing velocity to zero immediately (infinite friction). Values between 96 and 100 give slippier terrains, while a value of 100 results in no friction. Values above 100 will result in the worm's velocity actually increasing as it slides.
- The friction value is stored in the crate probability of the Salvation Army.
- Jetpack fuel variability
- You can set a value different than 30 of the jetpack fuel dotation, or set it infinite.
- This value is determined by the crate probability of the MB Bomb: if the value is 255, the fuel will be infinite.
- Loss of control doesn't end turn
- When activated, control of the active worm will not be lost in any circumstances (fall from a great height, weapon explosion, etc) except death.
- Controlled by the second bit of the crate probability of Mole Squadron (1=on).
- Shot doesn't end turn
- Firing a weapon doesn't end the player's turn. There's no retreat time and you can't control any weapon (such as Sheep or Supersheep) when turn time runs out.
- Controlled by the first bit of the crate probability of Mole Squadron (1=on).
- Fire doesn't pause timer
- The timer doesn't pause while firing any weapon. Useful with Shot doesn't turn, because one could extend his turn time for a very long time using drill or blow torch, for example.
- Controlled by the third bit of the crate probability of Mole Squadron (1=on).
- Improved rope
- Changes the rope physics to simulate Worms 2 (higher accelleration, 162 degrees of shooting)
- Controlled by the fourth bit of the crate probability of Mole Squadron (1=on).
- Version override
- There are many engine version that come with the last update, and some of them may be interesting for their different behaviour. For example there are teststuff3 and 4, and though the second seems equals to the public, see next paragraph for a description of the third.
- Version is set by the crate probability of Select Worm.
- No objects speed limit (teststuff3)
- Teststuff3 is an old version of teststuff (already available with 3.6.26.5). It is almost the same of the public teststuff5, but it doesn't just double the speed limit, but removes it.
- Activated by a value of 0x41 (65 in decimal notation) of the crate probability of Select Worm.
- Crate rate variability
- Controls the number of crates that appear per turn
- Set by the crate probability of the Indian Nuclear Test.
- Crate limit variability
- Controls the number of crates that can exist on the map at any one time (five at default)
- Set by the crate probability of the Magic Bullet.
- Continuous crate shower
- Activates a continuous crate shower similar to the WWP WormPot mode. Unlike that mode, however, crate settings for individual weapons is not ignored
- Controlled by the fifth bit of the crate probability of Mole Squadron (1=on).
Chat command interface
These commands can be used in the host/join lobby. Omitting the parameter either activates the feature with a default value, or sets it off.
Command | Effect |
---|---|
/help | Displays list of commands in the chat window. |
/show | Displays a list of all enabled features to all players. |
/showme | Displays a dialogue box with all enabled features to the host only. |
/clear | Disables all features. |
/sdet or /multishot | Enables the shot doesn't end turn feature. |
/ldet or /stoicworm | Enables the loss of control doesn't end turn feature. |
/fdpt or /nopause | Enables the timer doesn't pause while firing feature. |
/ir or /rope+ | Enables the improved rope feature. |
/rubber### [0-255] | Enables the bouncing worms feature.
0 .............. no bounce |
/boing | Toggles the boing sound effect that plays when worms bounce. |
/version### [1-255] | Enables the arbitrary version override feature. |
/version or /fr or /ts3 | Enables the teststuff3 feature. |
/antisink | Enables the antisink feature. |
/visc### [0-255] | Enables the air viscosity feature.
odd number ..... affects worms too |
/wind### [0-255] | Enables the wind response feature.
1 to 255 ....... low sensitivity to wind |
/jetpack### [1-255] | Sets value of jetpack fuel.
255 ............ infinite fuel |
/friction### [0-100] | Sets terrain friction.
0 .............. infinite friction |
/glue | Alias for friction0 |
/ice | Alias for friction99 |
/gravity### [-64 to 63] | Sets gravity strength.
-64 ............ reversed gravity, strength 5.3x |
/pbh### [-32 to 31] | Proportional black hole (variable is gravitational strength) |
/cbh### [-32 to 31] | Constant black hole (variable is gravitational strength) |
/defg | Disables all gravity modification features. |
/cratelimit### [1-255] | Sets maximum number of co-existing crates. |
/craterate### [1-255] | Sets number of crates spawned per turn and enables the crate counter. |
/cratecount | Alias for /craterate1 (just enables the crate counter). |
/crateshower | Enables the continuous crate shower feature. |
Future plans
Most of the code for the next version is written and tested though, and a new version might be ready for 2009's summer. The main goal of the next RW release is to create a new structure on which the author, and even other developers can easily add features. For this reason, RW is being rewritten in C++, and some APIs will be available (these include: usage of the new extendible scheme format, of the network protocol, callback system for notifications of game events). Next version will also include a GUI (it might be coded in Java, if I can't quickly learn a C++ GUI framework). About the actual game features, version 1.0 will improve some already existing ones (for example craterate and crateshower will work together, you'll be able to put multiple balck holes and different "gravity schemes" for object and worms, or even switchable with the low gravity utility), others probably added (individual per team and per worms settings).