and may still leave a physical component in the game world to be cleaned up later.</p></div><dlclass="paramcmts block"><dtclass="param">target</dt><ddclass="cmt"><p>the deployable that is destroyed</p></dd></dl><dlclass="attributes block"><dt>See also</dt><dd><spanclass="cmt"><p><code>DeployableInfo</code></p></span><spanclass="cmt"><p><code>DeploymentAction</code></p></span><spanclass="cmt"><p><code>LocalAction.DeployableMapIcon</code></p></span></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Deployables#AnnounceDestroyDeployable"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="AnnounceDestroyDeployable(target:net.psforever.objects.ce.Deployable,time:Option[scala.concurrent.duration.FiniteDuration]):Unit"></a><aid="AnnounceDestroyDeployable(Deployable,Option[FiniteDuration]):Unit"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#AnnounceDestroyDeployable(target:net.psforever.objects.ce.Deployable,time:Option[scala.concurrent.duration.FiniteDuration]):Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">AnnounceDestroyDeployable</span><spanclass="params">(<spanname="target">target: <ahref="ce/Deployable.html"name="net.psforever.objects.ce.Deployable"id="net.psforever.objects.ce.Deployable"class="extype">Deployable</a></span>, <spanname="time">time: <spanname="scala.Option"class="extype">Option</span>[<spanname="scala.concurrent.duration.FiniteDuration"class="extype">FiniteDuration</span>]</span>)</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><pclass="shortcomment cmt">Distribute information that a deployable has been destroyed.</p><divclass="fullcomment"><divclass="comment cmt"><p>Distribute information that a deployable has been destroyed.
Additionally, since the player who destroyed the deployable isn't necessarily the owner,
and the real owner will still be aware of the existence of the deployable,
that player must be informed of the loss of the deployable directly.</p></div><dlclass="paramcmts block"><dtclass="param">target</dt><ddclass="cmt"><p>the deployable that is destroyed</p></dd><dtclass="param">time</dt><ddclass="cmt"><p>length of time that the deployable is allowed to exist in the game world;
<code>None</code> indicates the normal un-owned existence time (180 seconds)</p></dd></dl><dlclass="attributes block"><dt>See also</dt><dd><spanclass="cmt"><p><code>AnnounceDestroyDeployable(Deployable)</code></p></span><spanclass="cmt"><p><code>Deployable.Deconstruct</code></p></span></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Deployables#Disown"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="Disown(zone:net.psforever.objects.zones.Zone,avatar:net.psforever.objects.avatar.Avatar,replyTo:akka.actor.ActorRef):List[net.psforever.objects.ce.Deployable]"></a><aid="Disown(Zone,Avatar,ActorRef):List[Deployable]"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#Disown(zone:net.psforever.objects.zones.Zone,avatar:net.psforever.objects.avatar.Avatar,replyTo:akka.actor.ActorRef):List[net.psforever.objects.ce.Deployable]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">Disown</span><spanclass="params">(<spanname="zone">zone: <ahref="zones/Zone.html"name="net.psforever.objects.zones.Zone"id="net.psforever.objects.zones.Zone"class="extype">Zone</a></span>, <spanname="avatar">avatar: <ahref="avatar/Avatar.html"name="net.psforever.objects.avatar.Avatar"id="net.psforever.objects.avatar.Avatar"class="extype">Avatar</a></span>, <spanname="replyTo">replyTo: <spanname="akka.actor.ActorRef"class="extype">ActorRef</span></span>)</span><spanclass="result">: <spanname="scala.List"class="extype">List</span>[<ahref="ce/Deployable.html"name="net.psforever.objects.ce.Deployable"id="net.psforever.objects.ce.Deployable"class="extype">Deployable</a>]</span></span><pclass="shortcomment cmt">Collect all deployables previously owned by the player,
dissociate the avatar's globally unique identifier to remove turnover ownership,
and, on top of performing the above manipulations, dispose of any boomers discovered.</p><divclass="fullcomment"><divclass="comment cmt"><p>Collect all deployables previously owned by the player,
dissociate the avatar's globally unique identifier to remove turnover ownership,
and, on top of performing the above manipulations, dispose of any boomers discovered.
(<code>BoomerTrigger</code> objects, the companions of the boomers, should be handled by an external implementation
if they had not already been handled by the time this function is executed.)</p></div><dlclass="paramcmts block"><dt>returns</dt><ddclass="cmt"><p>all previously-owned deployables after they have been processed;
boomers are listed before all other deployable types</p></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Deployables#InitializeDeployableQuantities"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="InitializeDeployableQuantities(avatar:net.psforever.objects.avatar.Avatar):Boolean"></a><aid="InitializeDeployableQuantities(Avatar):Boolean"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#InitializeDeployableQuantities(avatar:net.psforever.objects.avatar.Avatar):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">InitializeDeployableQuantities</span><spanclass="params">(<spanname="avatar">avatar: <ahref="avatar/Avatar.html"name="net.psforever.objects.avatar.Avatar"id="net.psforever.objects.avatar.Avatar"class="extype">Avatar</a></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><pclass="shortcomment cmt">Initialize the deployables backend information.</p><divclass="fullcomment"><divclass="comment cmt"><p>Initialize the deployables backend information.</p></div><dlclass="paramcmts block"><dtclass="param">avatar</dt><ddclass="cmt"><p>the player's core</p></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Deployables#InitializeDeployableUIElements"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="InitializeDeployableUIElements(avatar:net.psforever.objects.avatar.Avatar):List[(Int,Int,Int,Int)]"></a><aid="InitializeDeployableUIElements(Avatar):List[(Int,Int,Int,Int)]"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#InitializeDeployableUIElements(avatar:net.psforever.objects.avatar.Avatar):List[(Int,Int,Int,Int)]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">InitializeDeployableUIElements</span><spanclass="params">(<spanname="avatar">avatar: <ahref="avatar/Avatar.html"name="net.psforever.objects.avatar.Avatar"id="net.psforever.objects.avatar.Avatar"class="extype">Avatar</a></span>)</span><spanclass="result">: <spanname="scala.List"class="extype">List</span>[(<spanname="scala.Int"class="extype">Int</span>, <spanname="scala.Int"class="extype">Int</span>, <spanname="scala.Int"class="extype">Int</span>, <spanname="scala.Int"class="extype">Int</span>)]</span></span><pclass="shortcomment cmt">Initialize the UI elements for deployables.</p><divclass="fullcomment"><divclass="comment cmt"><p>Initialize the UI elements for deployables.</p></div><dlclass="paramcmts block"><dtclass="param">avatar</dt><ddclass="cmt"><p>the player's core</p></dd></dl></div></li><liclass="indented0 "name="scala.Any#asInstanceOf"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="asInstanceOf[T0]:T0"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#asInstanceOf[T0]:T0"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">asInstanceOf</span><spanclass="tparams">[<spanname="T0">T0</span>]</span><spanclass="result">: <spanname="scala.Any.asInstanceOf.T0"class="extype">T0</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#clone"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="prt"><aid="clone():Object"></a><aid="clone():AnyRef"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#clone():Object"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></
the requested <code>Engineering</code>-like certification requirements of the one group can be found in a another group.</p><divclass="fullcomment"><divclass="comment cmt"><p>Compare sets of certifications to determine if
the requested <code>Engineering</code>-like certification requirements of the one group can be found in a another group.</p></div><dlclass="paramcmts block"><dtclass="param">sample</dt><ddclass="cmt"><p>the certifications to be compared against</p></dd><dtclass="param">test</dt><ddclass="cmt"><p>the desired certifications</p></dd><dt>returns</dt><ddclass="cmt"><p><code>true</code>, if the desired certification requirements are met; <code>false</code>, otherwise</p></dd></dl><dlclass="attributes block"><dt>See also</dt><dd><spanclass="cmt"><p><code>CertificationType</code></p></span></dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#eq"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="eq(x$1:AnyRef):Boolean"></a><aid="eq(AnyRef):Boolean"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#eq(x$1:AnyRef):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">eq</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.AnyRef"class="extype">AnyRef</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#equals"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="equals(x$1:Object):Boolean"></a><aid="equals(AnyRef):Boolean"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#equals(x$1:Object):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">equals</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.AnyRef"class="extype">AnyRef</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#finalize"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="prt"><aid="finalize():Unit"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#finalize():Unit"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">finalize</span><spanclass="params">()</span><spanclass="result">: <spanname="scala.Unit"class="extype">Unit</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Attributes</dt><dd>protected[<spanname="java.lang"class="extype">lang</span>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd><spanclass="name">@throws</span><spanclass="args">(<span><spanclass="symbol">classOf[java.lang.Throwable]</span></span>)</span></dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#getClass"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="getClass():Class[_]"></a><aid="getClass():Class[_<:AnyRef]"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#getClass():Class[_]"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">getClass</span><spanclass="params">()</span><spanclass="result">: <ahref="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#java.lang.Class"name="java.lang.Class"id="java.lang.Class"class="extype">Class</a>[_ <: <spanname="scala.AnyRef"class="extype">AnyRef</span>]</span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition C
find a suitable ammunition mode and switch to it internally.</p><divclass="fullcomment"><divclass="comment cmt"><p>If the default ammunition mode for the <code>ConstructionTool</code> is not supported by the given certifications,
find a suitable ammunition mode and switch to it internally.
No special complaint is raised if the <code>ConstructionItem</code> itself is completely unsupported.
The search function will explore every ammo option for every fire mode option
and will stop when it finds either a valid option or when arrives back at the original fire mode.</p></div><dlclass="paramcmts block"><dtclass="param">certs</dt><ddclass="cmt"><p>the certification baseline being compared against</p></dd><dtclass="param">obj</dt><ddclass="cmt"><p>the <code>ConstructionItem</code> entity</p></dd><dt>returns</dt><ddclass="cmt"><p><code>true</code>, if the firemode and ammunition mode of the item is valid;
Iterate through sub-modes corresponding to a type of "deployable" as ammunition for this fire mode
and check each of these sub-modes for their certification requirements to be met before they can be used.
Additional effort is exerted to ensure that the requirements for the given ammunition are satisfied.
If no satisfactory combination is achieved, the original state will be restored.</p></div><dlclass="paramcmts block"><dtclass="param">certs</dt><ddclass="cmt"><p>the certification baseline being compared against</p></dd><dtclass="param">obj</dt><ddclass="cmt"><p>the <code>ConstructionItem</code> entity</p></dd><dtclass="param">originalAmmoIndex</dt><ddclass="cmt"><p>the starting point ammunition type mode index</p></dd><dt>returns</dt><ddclass="cmt"><p><code>true</code>, if the ammunition mode of the item has been changed;
<code>false</code>, otherwise</p></dd></dl><dlclass="attributes block"><dt>See also</dt><dd><spanclass="cmt"><p><code>Certification</code></p></span><spanclass="cmt"><p><code>ChangeAmmoMessage</code></p></span><spanclass="cmt"><p><code>ConstructionItem.ModePermissions</code></p></span><spanclass="cmt"><p><code>Deployables.constructionItemPermissionComparison</code></p></span></dd></dl></div></li><liclass="indented0 "name="net.psforever.objects.Deployables#performConstructionItemFireModeChange"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="performConstructionItemFireModeChange(certs:Set[net.psforever.objects.avatar.Certification],obj:net.psforever.objects.ConstructionItem,originalModeIndex:Int):Boolean"></a><aid="performConstructionItemFireModeChange(Set[Certification],ConstructionItem,Int):Boolean"></a><spanclass="permalink"><ahref="../../../net/psforever/objects/Deployables$.html#performConstructionItemFireModeChange(certs:Set[net.psforever.objects.avatar.Certification],obj:net.psforever.objects.ConstructionItem,originalModeIndex:Int):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">performConstructionItemFireModeChange</span><spanclass="params">(<spanname="certs">certs: <spanname="scala.Predef.Set"class="extype">Set</span>[<ahref="avatar/Certification.html"name="net.psforever.objects.avatar.Certification"id="net.psforever.objects.avatar.Certification"class="extype">Certification</a>]</span>, <spanname="obj">obj: <ahref="ConstructionItem.html"name="net.psforever.objects.ConstructionItem"id="net.psforever.objects.ConstructionItem"class="extype">ConstructionItem</a></span>, <spanname="originalModeIndex">originalModeIndex: <spanname="scala.Int"class="extype">Int</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><pclass="shortcomment cmt">The custom behavior responding to the message <code>ChangeFireModeMessage</code> for <code>ConstructionItem</code> game objects.</p><divclass="fullcomment"><divclass="comment cmt"><p>The custom behavior responding to the message <code>ChangeFireModeMessage</code> for <code>ConstructionItem</code> game objects.
Each fire mode has sub-modes corresponding to a type of "deployable" as ammunition
and each of these sub-modes have certification requirements that must be met before they can be used.
Additional effort is exerted to ensure that the requirements for the given mode and given sub-mode are satisfied.
If no satisfactory combination is achieved, the original state will be restored.</p></div><dlclass="paramcmts block"><dtclass="param">certs</dt><ddclass="cmt"><p>the certification baseline being compared against</p></dd><dtclass="param">obj</dt><ddclass="cmt"><p>the <code>ConstructionItem</code> entity</p></dd><dtclass="param">originalModeIndex</dt><ddclass="cmt"><p>the starting point fire mode index</p></dd><dt>returns</dt><ddclass="cmt"><p><code>true</code>, if the ammunition mode of the item has been changed;