Reassembly Guide

DEMISTIFYING THE CANNON: A GUIDE TO CANNONS AND CANNON MODDING IN REASSEMBLY for Reassembly

DEMISTIFYING THE CANNON: A GUIDE TO CANNONS AND CANNON MODDING IN REASSEMBLY

Overview

DEMISTIFYING THE CANNON: A GUIDE TO CANNONS AND CANNON MODDING IN REASSEMBLYThis guide covers everything a Reassembly player could ever want to know about cannons including: detailed descriptions of each cannon stat within the cannon stat block, step by step formulas to calculate your cannon’s rate of fire, and a series of formulas designed to illustrate how the P value of cannons are calculated which will allow the reader to calculate this value on their own without any need to be in game! And more!…I think…

Disclaimer:

The following is, to the best of my knowledge, the most accurate and thorough guide to CANNONS in Reassembly. However, it is also most likely not entirely complete. If you feel that it is missing some bit of relevant information or contains details that are outright wrong please let me know and I’ll be happy to make any necessary updates. Now onto the show!

I. INTRO

Cannons…totally awesome doom-dealers, amirite? From Blast Pulsers to Phasers to Plasma Cannons and more, I’ve had a great time blowing up my vector-built enemies with these lovely energy projectile firing weapons. And, while I could describe every last aspect of these wonderful weapons as it concerns Reassembly I instead will save my metaphorical breath and assume you, as a Reassembly player, know what a cannon is, looks like, and generally behaves like so that we can get right into the juicy stat blocks and fun P value calculations that I know you all have been dying to read about (don’t worry, there’s plenty of handholding to walk you through it if you’re entirely new; the gruff old man in me made me write this intro…)

II. STAT BLOCKS: A QUICK REVIEW

In Reassembly every block has a STAT BLOCK contained in the blocks.lua file of the main game (if it’s a prebuilt-block) or the blocks.lua of your mod. The stat block of a typical cannon looks like the below:

{831, name=”Plasma Cannon”, features=TURRET|CANNON, group=8, shape=OCTAGON, points=17, durability=0.500, blurb=”Basic turreted damage dealer”, density=0.150, fillColor=0x113077, fillColor1=0x205079, lineColor=0x3390eb, cannon={roundsPerSec=4.000, roundsPerBurst=3, muzzleVel=1400.000, spread=0.020, power=11.000, damage=30.000, color=47081, range=1100.000}}

Hmm…do you guys find this messy and squished together too? Personally I reformat stat blocks as the below to make everything easier to see just as a best practice and would recommend fellow modders do the same, though it’s not truly necessary. Please note that the sort of bolded text below is not part of the stat block and is just there to point out those specific lines:

{831,
name=”Plasma Cannon”
,features=TURRET|CANNON <—————– Flag Block as a turret-mounted cannon
,group=8
,shape=OCTAGON
,points=17
,durability=0.500
,blurb=”Basic turreted damage dealer”
,density=0.150
,fillColor=0x113077
,fillColor1=0x205079
,lineColor=0x3390eb
,cannon= <—————– Begin Cannon
{
roundsPerSec=4.000
,roundsPerBurst=3
,muzzleVel=1400.000
,spread=0.020
,power=11.000
,damage=30.000
,color=47081
,range=1100.000
} <—————– End Cannon
}

(Also, whoever decided on the listing order must not have been concerned with an ordering that made intuitive sense…just saying).

As you can see from the above, a block is designated as a cannon by adding the feature CANNON to the BLOCK FLAGS. Once we’ve flagged a block as a CANNON we can then add the details for the cannon itself by adding “cannon={}” to the stat block and filling those brackets with all kinds of cool stuff. I’ve marked the places above where the cannon stat block begins and ends for this weapon.

III. CANNON STAT BLOCK

Below you’ll find a description of each stat that appears in game as well as a few calcuations of my own that I felt deserved a name and explanation. These names for formulas etc. cannot be found in game and will be described first and preceded by a letter rather than number. Finally, they shall be bound by “|” so that all confusion therein may be dispelled by noting the symbols.

—Terminology Additions by Ha11uc1n0g3n
——————————————————————-
A. |P Value Bounds|: These bounds describe a minimum and maximum stat value. These limits describe the value before or after which P value no longer changes. Yes, that’s right, a stat with P Value Bounds only changes P Value if you exceed the minimum P Value Bound and, once you’ve exceeded the maximum P Value Bound, no upward change will add P to your cannon’s cost anymore. So hey, go crazy, give your cannon a 4,000,000 muzzel velocity and let’s do this thing! I mean why not? After “muzzelVel=2800” the P value won’t change 😉 (though I’d like to note that I won’t be held responsible for any damage to your spaceships that the resulting kick-back may cause haha).

B. |Weapon Cycle Time|: This is the amount of time described by adding |Firing Time Per Burst| to |Weapon Cooldown Time| and is detailed further in the Rate of Fire Calculations section below. The simple way to say it is that this amount of time represents the cannon firing the amount of rounds it has been set to fire plus any cooldown time your cannon may require due to how you have configured certain values.

C. |Firing Time Per Burst|: This is the amount of time your cannon will be continuously (or in the case of a truly slow firing cannon) semi-continuously firing projectiles during a single unit of |Weapon Cycle Time|.

D. |Weapon Cooldown Time|: This is the amount of time your cannon must “cooldown” or cease firing during a single unit of |Weapon Cycle Time|.

E. |Prime Determinant|: There are 3 prime determinants for determining P value of a cannon and the stats below are marked as such with a {P} following the stat name below.

F. |Multiplier|: There are 3 possible P value multipliers that are marked as such with an {M} following the stat name below.

—Reassembly Terminology
——————————————————————-
If a particular stat isn’t required by Reassembly to load the block into the game then it has been noted with (optional) following the stat name.

{P} denotes a |Prime Determinant| which will also have |P Value Bounds|.

{M} denotes a |P Value Multiplier| that will be detailed in the P Value Calculation section below.

“ExplodeRadius” is rather unique in that it effects P value but is not a |Prime Determinant| and has no |P Value Bounds|.

1. damage {P}: This number is the pseudo-exact number of damage that EACH ROUND fired from the cannon will deal if it strikes a non-friendly object before it reaches maximum range. I say pseudo-exact because sometimes weapons deal a few points more or less than this number though I have yet to nail down what this is caused by. In addition, this value has |P Value Bounds| noted in the P Value Calculation section below.

2. range {P}: This number describes the number of in-game distance units that a cannon’s projectiles will travel before disappearing harmlessly (or explosively!) into the void. The |P Value Bounds| for this stat are noted in the P Value Calculation section below.

3. muzzelVel {P}: This number describes the muzzel velocity or speed at which the round leaves the cannon and travels across space. Muzzel velocity can be increased to infinity, as far as I know. In addition, the |P Value Bounds| of this stat are noted in the P Value Calculation section below.

4.roundsPerSec{M}: This stat is a measurement of the maximum possible rounds fired per second of time and describes the base increment for |Weapon Cycle Time|. What this means is that |Weapon Cycle Time| will always be measured in seconds or fractions thereof and that roundsPerSec simply says, “No matter how many seconds end up constituting 1 unit of |Weapon Cycle Time, no more than X rounds can be fired in that 1 unit of Weapon Cycle Time|”

5.roundsPerBurst (optional): This stat describes how rounds are grouped together (under the term “Burst”) and how many rounds should be put in each “Burst” group (Note that this has nothing to do with time, seconds, etc.). This number simply shows the number of rounds fired over the course of one unit of |Firing Time Per Burst| (i.e. rounds in a single unit of burst as it plays out over time).

6. burstyness (optional): This stat describes how the number of rounds in one unit of burst (as described by roundsPerBurst) should be fired through time. It is expressed as a number from 0 to 1 with 0.010 being “Take your time buddy, no problem” to 1 being “Right now! Fire every damn round right freakin’ now!!”

7. explosive {M} (optional): If you would like your cannon to fire explosive rounds then add “explosive=” to your cannon stat block. Possible values include ENABLED (basic boom), PROXIMITY (boom if it comes near), or FINAL (boom when it reaches maximum range).

8. explodeRadius (Adds P) (optional): This stat requires explosive (above) to be added to a cannon before it does anything. As the name suggests, this is the radius measured in in-game distance units that describes how far from the point of an exploding round that an explosion will effect. This value has a minimum |P Value Bound| as noted in the P Value Calculation section below. As far as I know, there is no maximum value for this stat.

9. TURRET and turretSpeed {M} (optional): If you would like your cannon block to be able to fire in every direction you’ll need to turret-mount it. This is accomplished by adding TURRET to the block “features=” stat (where you put CANNON earlier). Turretspeed, as the name suggests, is how fast the turret can swivel to a new angle. I honestly don’t know what this is measured in but the value doesn’t effect the P Value of the cannon and it’s pretty easy to feel out for yourself.

10. spread (optional): This number is expressed in radians or, for the non-geomathers out there, from 0 to 3.142(also called Pi) with 3.142 being a complete circle. An example of this is the Faction 8 Blast Pulser which fires cannon rounds in a circle around itself (no turret need!).

11. color (optional): This is the color of the projectile firing out of the cannon and adds two extra characters to the usual 0xHexidecimals used throughout the rest of Reassembly. They are written in this order: 0xAARRGGBB, where 00 in the AA position would mean invisible and FF would mean as visible as possible (if you noted the five digit number listed for color in the example stat block above, these appear to be a holdover from a less elegant time in Reassembly history and hopefully will be replaced in a coming update).

12. power (optional, game calculated): In case you’d like to cheat and assign your own power value for how much power should be consumed per shot of your amazing white-hot entropy expulser this is where you do it. Just to reiterate, this is the amount of power consumed PER ROUND fired by the cannon.

IV. RATE OF FIRE CALCULATIONS

Note: All terminology used below is described in the terminology section above. Never assume you know what a term means just because “it sounds like it means…” as that will lead you down blind alleys and most likely to the forums with questions that are clearly answered only a handful of lines above what you’re reading now. Thanks 😉

—Rate of Fire Calculations
——————————————————————–
1. |Weapon Cycle Time| = roundsPerBurst/roundsPerSec

ex. If roundsPerBurst=20 and roundsPerSec=2 then |Weapon Cycle Time| = 10 seconds (20 divided by 2)

2. |Firing Time Per Burst| = |Weapon Cycle Time| * (1 – Burstyness)

ex. Following the above example our |Weapon Cycle Time| is 10 seconds. If our Burstyness is set to a value of 0.500 then…

|Firing Time Per Burst| = 5 seconds (10 * (1 – 0.500))

3. |Weapon Cooldown Time| = |Weapon Cycle Time| – |Firing Time Per Burst|

ex. Continuing from above, our |Weapon Cycle Time| is 10 seconds and our |Firing Time Per Burst| is 5 seconds so plugging those numbers in we get…

|Weapon Cooldown Time| = 5 seconds (10 – 5)

Full Example: And now to put all of this together with brief terminology explanations as we go (stats not relevant to rate of fire have been excluded)…

Our example cannon’s relevant stats are below:

cannon=
{
roundsPerSec=6
,roundsPerBurst=30
,burstyness=0.750
}

Following in order from the formulae listed above:

1. |Weapon Cycle Time| = 5 seconds (roundsPerBurst divided by roundsPerSec): This is the unit of time in seconds that describes both firing the number of rounds equal to the value of the roundsPerBurst stat as well as waiting for the cannon to cooldown before you can fire another burst.

2. |Firing Time Per Burst| = 1.25 seconds (|Weapon Cycle Time| * (1 – Burstyness)) : This is the amount of time in seconds during which your cannon will fire a single “burst.” The result of this is that your cannon will fire a number of rounds equal to the value you have set for roundsPerBurst and will evenly space them during this period of time. If “burstyness” is set to 1 then this value is 0 which means it will take 0 seconds to fire your roundsPerBurst value (or in other words, all of the rounds are fired together and, if spread is not assigned or is very low, will fire ontop of each other without you ever knowing).

3. |Weapon Cooldown Time| = 3.75 seconds (|Weapon Cycle Time| – |Firing Time Per Burst|) : This is the amount of time your cannon will be unable to fire after it finishes firing one full burst of rounds.

Narrative Example:
“Dr. SpaceCowboy has run into one of those faction 14 crescent terrors on a routine sector exploration mission. Always a man of action, he flies a bit closer to bring his custom “Super-Salvo Face-Melter” cannons into optimal range. Timing the spatial slide just right, he presses the bound weapons button and unleashes 30 rounds from each of his cannons in a mere 1.25 seconds! Well that should teach that croissant shaped goon a thing or too…or at least, he would hope so because he’s going to spend the next 3.75 seconds waiting for his cannons to cooldown before they’ll be ready to fire again. What was the damage stat on those cannons again Doctor…?”

V. P VALUE CALCLULATION

Phew! Well if you made it this far you must be pretty determined to know what all of this mumbo-jumbo adds up to so you’ll be happy to know that we’ve finally made it to the fabled “P Value Calculations” section that the rest of this guide goes on and on and on about. So, without further ado, formulas for determining P Value and how they are calculated. I hope you enjoy 🙂

Below is a simple chart showing the 3 |Prime Determinants| and their respective |P Value Bounds|. Following this chart is a step by step guide to calculating the P value of your cannon without the need for the game to do it for you!

Prime Determinants (|P Value Bounds|: min,max)
——————-
Damage (6, 400)
MuzzelVel (712, 2800)
Range (7, 3000)

Step by Step P Value Calculation
———————————————————————
Note: Below you will notice the number 150 seems to come from out of nowhere but is also an integral part of the calculation. To assauge all curiosity, 150 is the maximum P value for a cannon before multipliers are taken into consideraton. And Boom! goes the dynamite!

1. Calculate the percentage value of the |Prime Determinants| from their max |P Value Bound|. Sounds wordy and difficult? It just means:

Your Cannon’s Damage divided by 400 ———————————————————— damage/400
Your Cannon’s MuzzelVel divided by 2800 (minimum result is 0.25)——————— muzzelVel/2800
Your Cannon’s Range divided by 3000 ————————————————————– range/3000

2. Multiply 150 by any of the 3 percentages (expressed as decimals e.g. 25% = 0.25) that you calculated in step 1. Then take the result of that calculation and multiply it by any other one of your percentages from step one, then take THAT result and multiply by the final unused decimal percentage (yup, only use each one once). And BINGO, we have our base P value (note: don’t round this number just yet!)

example
——-
Step 1.

damage = 40 divided by 400 = 0.1
muzzelVel = 1400 divided by 2800 = 0.5
range = 600 divided by 3000 = 0.2

Step 2.

150 * 0.1 = 15.0
15 * 0.5 = 7.5
7.5 * 0.2 = 1.5 (which rounds up to 2 if you don’t add any multipliers to this weapon. Go ahead, try it out in-game, it’s 2P I swear!)

3. Include multipliers: Multipliers for your basic cannon include “TURRET” and “explosive=”. If you would like to turret-mount your cannon you’ll add it as a block FLAG where you noted that this block would be a CANNON (“features=”). To make your cannon rounds explode (!) you’ll need to set the weapon block to include “explosive=” and follow that with “ENABLED” (for basic explosiveness), “PROXIMITY” (for blowing up when the shot gets within the “explodeRadius=” range of a target), or “FINAL” (for exploding when the round reaches it’s maximum range).

In the case of turret-mounting your cannon or making its rounds explosive they both add a x2 multiplier to your cannon P cost and EACH MULTIPLIER IS APPLIED SEPARATELY which means:

CANNON BASE P VALUE = 150P that’s mounted on a TURRET (x2) = 300P that is also EXPLOSIVE (x2) = 600P (and THAT has got to be one heck of a cannon…heh)

4. RoundsPerSec: Almost done. After including multipliers for “TURRET” and “EXPLOSIVE” you then multiply that whole number by the value listed for roundsPerSec.

5. Last Step (sweeeeeet!) ExplodeRadius: Explode radius has a minimum |P Value Bound| of 10 so if you just want an explode radius of 10 then you’re already done. However, for each point over ten the P cost increases by 10% which can be expressed as:

(explodeRadius -10) * (Calculated P Value * .1) = explodeRadius P addition

Just add this last value to your P total and you’ve calculated the P value of your cannon. EZ PZ right?

VI. FINAL WORDS ON THIS GUIDE AND THE CURRENT-STATE OF CANNONS IN REASSEMBLY

Hey folks, thanks for taking the time to read this guide and I hope it’s helped you design the perfect cannon at just the right P value for your faction mod. In total it took me about 10 hours to experiment with blocks to discover the calculations going on in the background and to put this guide together so maybe I got off light, maybe not. But I would like to say that this is my very first guide ever that I’ve written for any game…ever. So with that said, I’m sure this isn’t the easiest read or probably even the best way to present some of the mathematical expressions contained therein; Don’t be shy about letting me know if there’s anything, anything at all that you can think of that you think would improve this guide. Thanks 😀

As for Cannons: Right now I feel like cannons are overpriced compared to lasers and that lasers almost always do the job better. In my own mod (to be released shortly) I have a laser that I had invented to serve the role of point-defense that costs a measily 3P (among many other weapons, some of them so cool I’m just DYING to share them with you guys). And it turns out that 2 of these 3P lasers on my smaller ships set to autofire, more often than not, are the thing that kills an enemy ship when it gets too close. Just 6P to destroy some crazy powerful ships…it’s unbelievable how simple, cheap and effective they are. On the other hand, the particular ship I’m thinking of is also carrying 3 cannons valued at 30P each and a launcher valued at 46P and I can honestly say I’m not sure those have ever done anything more than piss off enemy ships (the AI seems to be decent with them though even though the lasers still take the cake on kills). Enemies seem to easily dodge my direct-fire torpedos (the launcher) or manuever so swiftly my rapidly-rotating 30P, 1400 range cannons have a nearly impossible time getting on target and doing any kind of damage while there. In fact, the cheapest cannon I could create that is also reliable in destroying the faster moving enemy ships is in the vicinity of 80P (I could probably do alot better but I decided to focus my cannons on something other than hunting enemy probes/scouts/fighters).

So it’s a no brainer. 6P for two lasers and some easy manuevering to get close to them vs. 80P per cannon to sometimes be as effective at range. Please leave comments below or comment on my announcement post for this guide on the forums if you have a story about cannons and where you feel they stand in game (current as of 19/07/2015). Thanks again!

-Ha11uc1n0g3n

SteamSolo.com