Submersion
Submarines, amphbots, Iris, Aspis, and certain striders can (at sufficiently deep water) become submerged to some degree.
When a unit is fully submerged, the unit cannot be seen, and cannot be detected by radar; instead, a sonar is needed to detect and see the unit. It further receives protection from most types of weapons. Units and buildings that are considered viable anti-sub units (including possessing at least one weapon that can fire at fully submerged units) are described as "Undersea fire" or "Anti-sub". Weapons that can fire at targets above water are described as "water capable" if they can also shoot at fully submerged units (torpedo weapons, only being able to target units in the water, do not possess this description). Many, but not all, units with "water capable" weapons have sonar.
Units that can become fully submerged generally possess sonar.
Most amphbots regenerate health when they are submerged. (TODO: Do amphbots regenerate in water depending on how submerged they are, or depending on water depths, such that they regenerate at the maximum rate even while floating? Also describe how much they regenerate). This means that amphbots at deep water will be able to easily hide (if the opposing units do not possess sonar) by sinking down, and while hiding, quickly regenerate health.
Strategy
On water maps with deep water, it is possible to sneak fully submerged units under opposing units if the opponent's units and buildings do not possess sonar or anti-sub weapons of sorts. This can be especially dangerous with units such as the tactical-nuke launching Scylla and the teleporting Djinn . Packs of attack submarine Seawolfs can cause great damage to units and buildings in the water while taking little or no damage in return if the opponent has not invested sufficiently in anti-sub units and buildings.
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 216.73.216.242
Start request GET /mediawiki/index.php?oldid=8416&title=Submersion
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "216.73.216.242",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "sid6cbh96pv8cua2hu3jkkek692s77td" is unsaved, marking dirty in constructor
[session] SessionBackend "sid6cbh96pv8cua2hu3jkkek692s77td" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1717257502", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1717257502", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1717257502", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1717257502", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Submersion]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: no
Article::view: doing uncached parse
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:4f8f4d88d83e4b3a1d9f95014ba012c1:0)
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:4f8f4d88d83e4b3a1d9f95014ba012c1:0)
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Submersion]] are {edit,move}