Download attachment
Mortar fields. What are they?
Do you remember back in 'Surface Tension'? Right at the end, where you had to blow up the doors to the Lambda Complex and the walls surrounding it, and then finally blowing up the Communications Tower to make a path across? Well that was done using a
func_mortar_field which was set to be controlled by a table (which I will later explain how to do). Also, when you reached the door, a seemingly random bombardment rained down upon you? That too was the
func_mortar_field. In this tutorial I'll show you how to make the 3 different kinds of func_mortar_field, random, activator and table. Keep in mind that the
func_mortar_field is a brush-based entity. Okay, let's start off with...
Random bombardments
Making a func_mortar_field perform random bombardments is easy. Just follow the directions below, which need to be set for the entity.
- Name: You need this not only to activate, but to retrigger.
- Spread radius: The accuracy of your bombardments basically. If you put in 100, all bombs dropped will land in a 100 unit radius of the original target
- Repeat count: This defines how many bombs are dropped per bombardment. 4 usually works for this, but you can experiment
- Targeting: You won't need to edit this, seeing as we want a spontaneous and random effect for the bombardment.
Once you've got that filled in, you'll need to work on triggering it. Once a
func_mortar_field on random is triggered, it only attacks once and then goes into an off-state. So, you'll need to build up a small network of triggering and re-triggering to make the continous effect you may be looking for. In the example map, I used a trigger_auto and 2 multi_managers, which work like this:
- trigger_auto triggers first multimanager, called m1
- m1 triggers bomb(func_mortar_field) after 5 seconds, at the same time triggers m2
- m2 triggers bomb after 5 seconds, triggers m1 at the same time, and so on.
As you can see, the
func_mortar_field is triggered every 5 seconds, along with 4 as a repeat count. It makes for a very effective bombardment.
Activator bombardments
Simply make the trigger target the mortar field. Then, moments later: voila! Dead people. The only thing you'll need to edit from the random one is how you trigger it and of course, the settings in the targeting box, which you'll need to set to activator.
Table bombardments
Ahh, table bombardments. This is more difficult to set up then the others, simply because of the multitude of entities involved, not forgetting how accurate you would need to make your table in order to have your attacks accurate.
The entities I will use in the creation of the table to control the
func_mortar_field are:
- func_button
- momentary_rot_button
- momentary_door
Your
func_mortar_field should be set up the same as usual, except for the 3 below:
- Targeting: table
- X Controller: The name of the momentary_rot_button to control the x axis. In the example, it's called x
- Y Controller: The name of the momentary_rot_button to control the y axis In the example, it's called y
Build up your table first. Make it as accurate to your map as possible (so your bombs land where you want them to), then begin with the
momentary_rot_button's. Make 2 of them, with origins and everything. The following properties are for the x and/or y button:
- Name: Make sure it matches with what you put in the x controller/y controller for the func_mortar_field, or else it wont work.
- Target: Your momentary_doors. I'll tell you about those in conjunction with momentary_rot_button later.
- Auto-Return Speed: 0, for obvious reasons.
Everything else you can leave. Put these values in for both of your
momentary_rot_button and your done with that for now. The next part is the
momentary_door, which acts as your indicators to what part of your map you are targeting. You'll need 2: one for each axis. Input the following values into the properties:
- Name: The name is the target of your momentary_rot_buttons. In the example map, it's "xdoor/ydoor")
- Speed: It's good to keep this low. The lower it is, the more accurate the players attacks will be.
- Lip: Important! Your lip is how far your momentary_door goes before it stops. Basically, it's how far your momentary_door can move (96 units in example map).
Use this for both your doors. Also, use the little compass in the properties menu to get your door moving the right way. You'll need them working properly before adding the button test with your momentary_rot_buttons. Now, let's make a button. Make the button out of anything - any texture will do, but I suggest using a button texture, for obvious reasons. Placing it somewhere in between your 2 momentary_rot_buttons is a good idea. Then, in the properties just make it target the func_mortar_field. Test it and see if it works. When it does, see how accurate your bombings are compared to the table. When your happy with it, you're done!
Final notes
The best place to put a table is in a rather large deathmatch map. It would be great fun to blast players and would also tempt players towards it, which could open up possibilities for traps and the like. I'd also like to add that the zip file has 2 maps: Mortar 1 has the random and activator, and Mortar 2 has the table. Happy mapping!