From c737c055a6ff873ef51fd91bd355fa8c157258f3 Mon Sep 17 00:00:00 2001
From: "Standing-StormStanding-Storm git config --global user.name
 Standing-Storm git config --global user.name Standing-Storm"
 <dorchadas@gmail.com>
Date: Mon, 28 Oct 2024 14:52:20 -0500
Subject: [PATCH] Initial commit

---
 data/mods/Sky_Island/monstergroups.json       |  1 +
 data/mods/Sky_Island/monsters/deathdrops.json | 66 +++++++++++++++++++
 .../monsters/monstergroups_extended.json      | 52 +++++++++++++++
 data/mods/Sky_Island/monsters/monsters.json   | 28 ++++++++
 4 files changed, 147 insertions(+)
 create mode 100644 data/mods/Sky_Island/monsters/deathdrops.json
 create mode 100644 data/mods/Sky_Island/monsters/monstergroups_extended.json
 create mode 100644 data/mods/Sky_Island/monsters/monsters.json

diff --git a/data/mods/Sky_Island/monstergroups.json b/data/mods/Sky_Island/monstergroups.json
index bf4ad7ef853d6..ecc5064718340 100644
--- a/data/mods/Sky_Island/monstergroups.json
+++ b/data/mods/Sky_Island/monstergroups.json
@@ -135,6 +135,7 @@
       { "monster": "mon_zombie_brute_shocker", "weight": 5 },
       { "monster": "mon_zombie_necro_boomer", "weight": 5 },
       { "monster": "mon_skeleton_electric", "weight": 50 },
+      { "monster": "mon_zombie_bio_op", "weight": 50 },
       { "monster": "mon_zombie_survivor_elite", "weight": 50 },
       { "monster": "mon_zombie_brute_ninja", "weight": 20 },
       { "monster": "mon_gastro_bufo", "weight": 10 },
diff --git a/data/mods/Sky_Island/monsters/deathdrops.json b/data/mods/Sky_Island/monsters/deathdrops.json
new file mode 100644
index 0000000000000..0bb3dde0b2288
--- /dev/null
+++ b/data/mods/Sky_Island/monsters/deathdrops.json
@@ -0,0 +1,66 @@
+[
+  {
+    "type": "item_group",
+    "subtype": "collection",
+    "id": "mon_zombie_bio_op_death_drops",
+    "magazine": 100,
+    "ammo": 60,
+    "entries": [
+      {
+        "distribution": [
+          { "group": "clothing_soldier_set", "prob": 65, "damage": [ 1, 4 ] },
+          { "group": "clothing_soldier_winter_set", "prob": 35, "damage": [ 1, 4 ] }
+        ]
+      },
+      {
+        "distribution": [
+          {
+            "group": "military_standard_assault_rifles",
+            "contents-group": "sopmod",
+            "prob": 75,
+            "damage": [ 0, 4 ],
+            "dirt": [ 0, 6000 ]
+          },
+          {
+            "group": "military_standard_lmgs",
+            "contents-item": "shoulder_strap",
+            "prob": 4,
+            "damage": [ 0, 4 ],
+            "dirt": [ 0, 6000 ]
+          },
+          {
+            "group": "military_standard_lmgs",
+            "contents-item": [ "shoulder_strap", "acog_scope" ],
+            "prob": 6,
+            "damage": [ 0, 4 ],
+            "dirt": [ 0, 6000 ]
+          },
+          {
+            "group": "military_standard_shotguns",
+            "contents-item": "shoulder_strap",
+            "prob": 5,
+            "damage": [ 0, 4 ],
+            "dirt": [ 0, 6000 ]
+          }
+        ],
+        "prob": 10
+      },
+      { "group": "infantry_common_gear" },
+      {
+        "distribution": [
+          { "group": "military_standard_grenades", "count": [ 1, 3 ], "prob": 80 },
+          { "item": "40x46mm_m433", "charges": [ 1, 3 ], "prob": 20 }
+        ],
+        "prob": 20
+      },
+      { "group": "military_patrol_food" },
+      {
+        "collection": [ { "group": "infantry_officer_gear", "prob": 90 }, { "group": "infantry_medical_gear", "prob": 80 } ]
+      },
+      { "group": "wallets", "prob": 10 },
+      { "group": "pocket_cigar", "prob": 15 },
+      { "group": "misc_smoking_legal", "prob": 30 },
+      { "item": "dog_tag", "prob": 40 }
+    ]
+  }
+]
diff --git a/data/mods/Sky_Island/monsters/monstergroups_extended.json b/data/mods/Sky_Island/monsters/monstergroups_extended.json
new file mode 100644
index 0000000000000..5828881b90b72
--- /dev/null
+++ b/data/mods/Sky_Island/monsters/monstergroups_extended.json
@@ -0,0 +1,52 @@
+[
+  {
+    "type": "monstergroup",
+    "name": "GROUP_CENTRAL_LAB",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 20, "cost_multiplier": 50 } ]
+  },
+  {
+    "type": "monstergroup",
+    "name": "GROUP_LAB",
+    "default": "mon_zombie_scientist",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 50, "cost_multiplier": 5 } ]
+  },
+  {
+    "type": "monstergroup",
+    "name": "GROUP_LAB_SURFACE",
+    "default": "mon_zombie_scientist",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 50, "cost_multiplier": 5 } ]
+  },
+  {
+    "type": "monstergroup",
+    "name": "GROUP_LAB_SECURITY",
+    "default": "mon_zombie_labsecurity",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 50, "cost_multiplier": 5 } ]
+  },
+  {
+    "type": "monstergroup",
+    "//": "Used in the military bunker",
+    "name": "GROUP_MIL_BASE",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 20, "cost_multiplier": 50 } ]
+  },
+  {
+    "type": "monstergroup",
+    "name": "GROUP_MAYBE_MIL",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 20, "cost_multiplier": 50 } ]
+  },
+  {
+    "type": "monstergroup",
+    "name": "GROUP_MIL_STRONG",
+    "//": "Used in the military bunker, LIXA and Hub01 convoy ambush",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 20, "cost_multiplier": 50 } ]
+  },
+  {
+    "name": "GROUP_MIL_EXTRA",
+    "type": "monstergroup",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 4 } ]
+  },
+  {
+    "type": "monstergroup",
+    "name": "GROUP_BUNKER",
+    "monsters": [ { "monster": "mon_zombie_bio_op", "weight": 150, "cost_multiplier": 10 } ]
+  }
+]
diff --git a/data/mods/Sky_Island/monsters/monsters.json b/data/mods/Sky_Island/monsters/monsters.json
new file mode 100644
index 0000000000000..a107425d2ed54
--- /dev/null
+++ b/data/mods/Sky_Island/monsters/monsters.json
@@ -0,0 +1,28 @@
+[
+  {
+    "id": "mon_zombie_bio_op",
+    "type": "MONSTER",
+    "name": { "str": "zombie bio-operator" },
+    "description": "This armored soldier zombie appears to have been some sort of special forces agent.  Its malfunctioning equipment sends out occasional showers of sparks.",
+    "copy-from": "mon_zombie_base",
+    "diff": 5,
+    "hp": 120,
+    "speed": 95,
+    "color": "red_cyan",
+    "melee_skill": 7,
+    "melee_dice": 3,
+    "melee_dice_sides": 6,
+    "melee_damage": [ { "damage_type": "electric", "amount": 4 } ],
+    "luminance": 4,
+    "special_attacks": [ { "id": "bio_op_takedown", "cooldown": 20 } ],
+    "special_when_hit": [ "ZAPBACK", 75 ],
+    "death_drops": "mon_zombie_bio_op_death_drops",
+    "armor": { "bash": 10, "cut": 18, "bullet": 14, "electric": 3 },
+    "dissect": "dissect_mon_zomborg",
+    "extend": {
+      "weakpoint_sets": [ "wps_humanoid_body_armor", "wps_humanoid_open_helmet", "wps_humanoid_gasmask" ],
+      "families": [ "prof_wp_syn_armored" ],
+      "flags": [ "ELECTRIC" ]
+    }
+  }
+]