diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index ad60276d04f..eaafa41fb23 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -3192,9 +3192,49 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
Crazylemon64:
- tweak: Welding overlays now update instantly
- tweak: Being inside various structures will now obscure your vision
+ Fox McCloud:
+ - bugfix: Fixes X-Ray not doing anything
+ - bugfix: Fixes nightvision not granting what its name implies
+ - bugfix: Fixes species/human darksight doing absolutely nothing
KasparoVy:
- bugfix: Characters will now be correctly assigned their species' genetic quirks
at spawn.
- bugfix: Cloning will now correctly assign a characters species' genetic quirks.
- bugfix: Changing a character's species (via C.M.A. or whatever might call the
set_species proc) will now correctly assign their species' genetic quirks.
+ Markolie:
+ - bugfix: Ruins no longer trigger power alarms.
+2016-12-25:
+ FalseIncarnate:
+ - rscadd: Santa's back and with-holding all your presents! Head through the gateway
+ and show the Fat Man the strength of your holiday spirit (and advanced weaponry,
+ you'll be needing that)!
+ KasparoVy:
+ - bugfix: Cameras will no longer be able to take photos of stuff outside your line
+ of sight.
+ - tweak: Cameras will now render disguises as you see them.
+2016-12-29:
+ Fethas:
+ - rscadd: Alternate shuttle/ferry template system from TG
+ - rscadd: Shuttle Manipulator
+ - rscadd: Better shuttle kills
+ Markolie:
+ - tweak: The camera console has been refactored so there's no longer a delay when
+ switching cameras.
+ - bugfix: The camera console should no longer lag for several seconds.
+2016-12-30:
+ Crazylemon:
+ - bugfix: The shuttle manipulator can now only be used by admins
+ FalseIncarnate:
+ - rscadd: Adds Nano-Mob Hunter GO! PDA game cartridges and related stuff. Grab a
+ cartridge from the cartridge vendor or loadout and join in on the hunt!
+ - rscadd: Adds Nano-Mob Hunter GO! Battle Terminals to the Holodeck and a Nano-Mob
+ Hunter GO! Restoration Terminal to medbay's lobby.
+ Fox McCloud:
+ - bugfix: Fixes cyborg cryo oddities
+ KasparoVy:
+ - bugfix: Taking off noir glasses while noir mode is on will now give you your colour
+ vision back.
+2016-12-31:
+ Crazylemon64:
+ - bugfix: The home gateway now will send ghosts to the other end by default, now
diff --git a/icons/effects/mob_hunt.dmi b/icons/effects/mob_hunt.dmi
new file mode 100644
index 00000000000..1eea83a9afa
Binary files /dev/null and b/icons/effects/mob_hunt.dmi differ
diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi
index 00588161a65..4799f8736d2 100644
Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ
diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi
index 09380373db8..9ad68e22072 100644
Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ
diff --git a/icons/obj/doors/Doorcult.dmi b/icons/obj/doors/Doorcult.dmi
new file mode 100644
index 00000000000..f9f4aa92466
Binary files /dev/null and b/icons/obj/doors/Doorcult.dmi differ
diff --git a/icons/obj/machines/shuttle_manipulator.dmi b/icons/obj/machines/shuttle_manipulator.dmi
new file mode 100644
index 00000000000..ad91b1677b1
Binary files /dev/null and b/icons/obj/machines/shuttle_manipulator.dmi differ
diff --git a/nano/templates/comm_console.tmpl b/nano/templates/comm_console.tmpl
index 6d566aa85fb..c4e1799afcf 100644
--- a/nano/templates/comm_console.tmpl
+++ b/nano/templates/comm_console.tmpl
@@ -68,6 +68,9 @@ Used In File(s): /code/game/machinery/computers/communications.dm
{{:helper.link('Message List','comment',{'operation':'messagelist'})}}
+ {{:helper.link('Restart Nano-Mob Hunter GO! Server','power-off',{'operation':'RestartNanoMob'})}}
+
{{:helper.link('Accept Docking Request','signal',{'operation':'AcceptDocking'})}}
diff --git a/nano/templates/pda_mob_hunt.tmpl b/nano/templates/pda_mob_hunt.tmpl
new file mode 100644
index 00000000000..dde4ab82a5c
--- /dev/null
+++ b/nano/templates/pda_mob_hunt.tmpl
@@ -0,0 +1,91 @@
+
+
+
+
+ |
+ Connection Status:
+ |
+ {{if data.connected}}
+
+ Connected
+ |
+
+ {{:helper.link('Disconnect', 'sign-out', {'choice': 'Disconnect'})}}
+ |
+ {{else}}
+
+ No Connection
+ |
+
+ {{:helper.link('Connect', 'sign-in', {'choice': 'Reconnect'})}}
+ |
+ {{/if}}
+
+
+
+
+
+
My Collection:
+{{if data.no_collection}}
+
+
+ Your collection is empty! Go capture some Nano-Mobs!
+
+
+
+ Wild mobs captured: {{:data.wild_captures}}
+{{else}}
+
+
+
+ {{if data.entry}}
+ {{if data.entry.nickname}}
+
Name: {{:data.entry.nickname}}
+ {{/if}}
+
Species: {{:data.entry.real_name}}
+
Level: {{:data.entry.level}}
+
Primary Type: {{:data.entry.type1}}
+ {{if data.entry.type2}}
+
Secondary Type: {{:data.entry.type2}}
+ {{/if}}
+ {{if data.entry.sprite}}
+

+ {{else}}
+
Mob Image Missing!
+ {{/if}}
+ {{else}}
+
+ Mob Data Missing!
+
+ {{/if}}
+
+
+
+
+ Wild mobs captured: {{:data.wild_captures}}
+
+
+
+ |
+ {{:helper.link('Previous Mob', 'arrow-left', {'choice': 'Prev'})}}
+ |
+
+ {{:helper.link('Transfer Mob', 'exchange', {'choice': 'Transfer'})}}
+ |
+
+ {{:helper.link('Rename Mob', 'pencil', {'choice': 'Rename'})}}
+ |
+
+ {{:helper.link('Release Mob', 'tree', {'choice': 'Release'})}}
+ |
+
+ {{:helper.link('Next Mob', 'arrow-right', {'choice': 'Next'})}}
+ |
+
+
+ {{if data.entry.is_hacked}}
+
+ {{:helper.link('Set Trap', 'bolt', {'choice': 'Set_Trap'})}}
+ {{/if}}
+
+{{/if}}
\ No newline at end of file
diff --git a/nano/templates/shuttle_manipulator.tmpl b/nano/templates/shuttle_manipulator.tmpl
new file mode 100644
index 00000000000..023e7e63e3d
--- /dev/null
+++ b/nano/templates/shuttle_manipulator.tmpl
@@ -0,0 +1,121 @@
+
+
+
Operations
+
+ {{:helper.link('Status', 'link', {'selectMenuKey' : 'stat'}, data.selectedMenuKey == 'stat' ? 'selected' : null)}}
+ {{:helper.link('Templates', 'link', {'selectMenuKey' : 'stemp'}, data.selectedMenuKey == 'stemp' ? 'selected' : null)}}
+ {{:helper.link('Modification', 'link', {'selectMenuKey' : 'mod'}, data.selectedMenuKey == 'mod' ? 'selected' : null)}}
+
+
+
+
+
+{{if !data.selectedMenuKey || data.selectedMenuKey == 'stat'}}
+ {{for data.shuttles}}
+
+
+ Name: {{:value.name}}
+
+
+ ID: {{:value.id}}
+
+
+ Shuttle Timer: {{:value.timeleft}}
+
+
+ Shuttle Mode: {{:value.mode}}
+
+
+ Shuttle Status: {{:value.status}}
+
+
+ {{:helper.link('Jump to', 'space-shuttle', {'jump_to' : 1, 'type' : 'mobile', 'id' : value.id}, null)}}
+ {{:helper.link('Fast Travel', 'rocket', {'fast_travel' : 1, 'id' : value.id}, null)}}
+
+
+ {{/for}}
+
+{{else data.selectedMenuKey == 'stemp'}}
+
+ {{for data.templates_tabs}}
+ {{:helper.link(value, 'space-shuttle', {'select_template_category' : value}, (data.existing_shuttle.id == value) ? 'selected' : null)}}
+ {{/for}}
+
+ {{if data.existing_shuttle}}
+
+ {{for data.templates[data.existing_shuttle.id].templates}}
+
+
+ Name: {{:value.name}}
+
+ {{if value.description}}
+
+ Description: {{:value.description}}
+
+ {{/if}}
+ {{if value.admin_notes}}
+
+ Admin Notes: {{:value.admin_notes}}
+
+ {{/if}}
+
+
+ {{:helper.link('select template', 'space-shuttle', {'select_template' : 1, 'shuttle_id' : value.shuttle_id}, (data.selected && data.selected.shuttle_id == value.shuttle_id) ? 'selected' : null)}}
+
+
+ {{/for}}
+ {{/if}}
+
+
+{{else data.selectedMenuKey == 'mod'}}
+
+ {{if data.existing_shuttle}}
+
+
+ Existing Shuttle: {{:data.existing_shuttle.name}}
+
+
+ Status: {{:data.existing_shuttle.status}}
+
+ {{if data.existing_shuttle.timer}}
+
+ ({{:data.existing_shuttle.timeleft}})
+
+ {{/if}}
+
+ {{:helper.link('Jump to', 'space-shuttle', {'jump_to' : 1, 'type' : 'mobile', 'id' : data.existing_shuttle.id}, null)}}
+
+
+ {{else}}
+
No shuttle selected
+ {{/if}}
+
+
+ {{if data.selected}}
+
+
+ Name: {{:data.selected.name}}
+
+ {{if data.selected.description}}
+
+ Description: {{:data.selected.description}}
+
+ {{/if}}
+ {{if data.selected.admin_notes}}
+
+ Admin Notes: {{:data.selected.admin_notes}}
+
+ {{/if}}
+
+
+ {{:helper.link('Preview', 'exclamation-circle', {'preview' : 1, 'shuttle_id' : data.selected.shuttle_id}, null)}}
+ {{:helper.link('Load', 'exclamation-circle', {'load' : 1, 'shuttle_id' : data.selected.shuttle_id}, null)}}
+
+
+ {{else}}
+
No template selected
+ {{/if}}
+
+{{/if}}
\ No newline at end of file
diff --git a/paradise.dme b/paradise.dme
index 94cf8409c7d..e18f8500930 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -176,6 +176,7 @@
#include "code\controllers\Processes\lighting.dm"
#include "code\controllers\Processes\machinery.dm"
#include "code\controllers\Processes\mob.dm"
+#include "code\controllers\Processes\nano_mob_hunter.dm"
#include "code\controllers\Processes\nanoui.dm"
#include "code\controllers\Processes\npcai.dm"
#include "code\controllers\Processes\npcpool.dm"
@@ -207,6 +208,7 @@
#include "code\datums\progressbar.dm"
#include "code\datums\recipe.dm"
#include "code\datums\ruins.dm"
+#include "code\datums\shuttles.dm"
#include "code\datums\spell.dm"
#include "code\datums\statclick.dm"
#include "code\datums\supplypacks.dm"
@@ -1056,6 +1058,11 @@
#include "code\modules\arcade\claw_game.dm"
#include "code\modules\arcade\prize_counter.dm"
#include "code\modules\arcade\prize_datums.dm"
+#include "code\modules\arcade\mob_hunt\battle_computer.dm"
+#include "code\modules\arcade\mob_hunt\mob_avatar.dm"
+#include "code\modules\arcade\mob_hunt\mob_cards.dm"
+#include "code\modules\arcade\mob_hunt\mob_datums.dm"
+#include "code\modules\arcade\mob_hunt\mob_type_datums.dm"
#include "code\modules\assembly\assembly.dm"
#include "code\modules\assembly\bomb.dm"
#include "code\modules\assembly\health.dm"
@@ -1736,6 +1743,7 @@
#include "code\modules\pda\core_apps.dm"
#include "code\modules\pda\messenger.dm"
#include "code\modules\pda\messenger_plugins.dm"
+#include "code\modules\pda\mob_hunt_game_app.dm"
#include "code\modules\pda\PDA.dm"
#include "code\modules\pda\pdas.dm"
#include "code\modules\pda\radio.dm"
@@ -1989,7 +1997,9 @@
#include "code\modules\security_levels\security levels.dm"
#include "code\modules\shuttle\assault_pod.dm"
#include "code\modules\shuttle\emergency.dm"
+#include "code\modules\shuttle\on_move.dm"
#include "code\modules\shuttle\shuttle.dm"
+#include "code\modules\shuttle\shuttle_manipulator.dm"
#include "code\modules\shuttle\supply.dm"
#include "code\modules\shuttle\syndicate.dm"
#include "code\modules\space_management\heap_space_level.dm"