Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup Zed Bits #71931

Merged
merged 11 commits into from
Feb 27, 2024
43 changes: 43 additions & 0 deletions data/json/harvest.json
Original file line number Diff line number Diff line change
Expand Up @@ -1177,7 +1177,11 @@
"type": "harvest",
"message": "You messily hack apart the hulking mass of fused, rancid flesh, taking note of anything that stands out.",
"entries": [
{ "drop": "skull_human_tainted", "type": "bone", "base_num": [ 0, 2 ] },
{ "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.33 },
{ "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.01 },
{ "drop": "tainted_marrow", "type": "bone", "mass_ratio": 0.005 },
{ "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 },
{ "drop": "blood_tainted", "type": "blood", "mass_ratio": 0.1 },
{ "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.1 },
{ "drop": "tainted_innards", "type": "offal", "mass_ratio": 0.25 },
Expand All @@ -1189,7 +1193,15 @@
"type": "harvest",
"message": "You messily hack apart the colossal mass of fused, rancid flesh, taking note of anything that stands out.",
"entries": [
{ "drop": "skull_human_tainted", "type": "bone", "base_num": [ 0, 3 ] },
{ "drop": "skull_moose", "type": "bone", "base_num": [ 0, 1 ] },
{ "drop": "skull_cervine_spideer", "type": "bone", "base_num": [ 0, 1 ] },
{ "drop": "skull_canis_triclopean", "type": "bone", "base_num": [ 0, 1 ] },
{ "drop": "skull_rodent", "type": "bone", "base_num": [ 0, 6 ] },
{ "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.33 },
{ "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 },
{ "drop": "tainted_marrow", "type": "bone", "mass_ratio": 0.005 },
{ "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 },
{ "drop": "blood_tainted", "type": "blood", "mass_ratio": 0.1 },
{ "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.1 },
{ "drop": "tainted_innards", "type": "offal", "mass_ratio": 0.25 },
Expand Down Expand Up @@ -1553,6 +1565,37 @@
{ "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }
]
},
{
"id": "zombie_humanoid_headless",
"//": "humanoid zombies without a skull",
"type": "harvest",
"message": "<zombie_humanoid_headless_harvest>",
"entries": [
{ "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.25 },
{ "drop": "blood_tainted", "type": "blood", "mass_ratio": 0.1 },
{ "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.08 },
{ "drop": "tainted_innards", "type": "offal", "mass_ratio": 0.15 },
{ "drop": "tainted_marrow", "type": "bone", "mass_ratio": 0.005 },
{ "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 },
{ "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }
]
},
{
"id": "zombie_humanoid_multiple",
"//": "multiple humanoid zombies fused together",
"type": "harvest",
"message": "<zombie_humanoid_generic_harvest>",
"entries": [
{ "drop": "skull_human_tainted", "type": "bone", "base_num": [ 2, 5 ] },
{ "drop": "meat_tainted", "type": "flesh", "mass_ratio": 0.25 },
{ "drop": "blood_tainted", "type": "blood", "mass_ratio": 0.1 },
{ "drop": "fat_tainted", "type": "flesh", "mass_ratio": 0.08 },
{ "drop": "tainted_innards", "type": "offal", "mass_ratio": 0.15 },
{ "drop": "tainted_marrow", "type": "bone", "mass_ratio": 0.005 },
{ "drop": "bone_tainted", "type": "bone", "mass_ratio": 0.1 },
{ "drop": "sinew", "type": "bone", "mass_ratio": 0.00035 }
]
},
{
"id": "zombie_animal",
"//": "any zombie animal that does not drop leather",
Expand Down
58 changes: 58 additions & 0 deletions data/json/items/comestibles/carnivore.json
Original file line number Diff line number Diff line change
Expand Up @@ -1487,6 +1487,50 @@
"flags": [ "TRADER_AVOID", "SMOKABLE", "NUTRIENT_OVERRIDE", "RAW" ],
"smoking_result": "dry_meat_tainted"
},
{
"type": "COMESTIBLE",
"id": "arm_zed",
"category": "other",
"name": { "str": "tainted limb" },
"description": "A rotted and then shredded arm. Not much use unless you want to scrape the meat from the bones.",
"snippet_category": "arm_zed_desc",
"color": "red",
"symbol": "%",
"material": [ "flesh" ],
"weight": "3767 g",
"volume": "4500 ml",
"comestible_type": "FOOD",
"use_action": [ "POISON" ],
"calories": 278,
"fun": -20,
"vitamins": [ ],
"spoils_in": "2 days",
"price": 0,
"price_postapoc": 0,
"flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE", "NO_REPAIR" ]
},
{
"type": "COMESTIBLE",
"id": "leg_zed",
"category": "other",
"name": { "str": "tainted limb" },
"description": "What's left of some zombie's limb. Most likely a leg based on the proportions. Though it's rotted, there is quite a bit of meat still on it.",
"snippet_category": "leg_zed_desc",
"color": "red",
"symbol": "%",
"material": [ "flesh" ],
"weight": "11071 g",
"volume": "12 L",
"comestible_type": "FOOD",
"use_action": [ "POISON" ],
"calories": 399,
"fun": -20,
"vitamins": [ ],
"spoils_in": "2 days",
"price": 0,
"price_postapoc": 0,
"flags": [ "TRADER_AVOID", "NUTRIENT_OVERRIDE", "NO_REPAIR" ]
},
{
"id": "blood_tainted",
"type": "COMESTIBLE",
Expand Down Expand Up @@ -1673,6 +1717,20 @@
"description": "A carefully folded poisonous raw skin harvested from an unnatural creature. You can cure it for storage and tanning.",
"price": 0
},
{
"type": "COMESTIBLE",
"id": "raw_tainted_leather_scraps",
"copy-from": "raw_leather",
"name": { "str_sp": "tainted skin scraps" },
"weight": "1 g",
"volume": "5 ml",
"spoils_in": "3 hours",
"calories": 3,
"use_action": [ "POISON" ],
"price_postapoc": 0,
"description": "Shredded scraps of raw skin from an unnatural creature. It can't have much use.",
"price": 0
},
{
"type": "COMESTIBLE",
"id": "raw_hleather",
Expand Down
24 changes: 0 additions & 24 deletions data/json/items/comestibles/mutagen.json
Original file line number Diff line number Diff line change
Expand Up @@ -959,29 +959,5 @@
"volume": "12 L",
"fun": -20,
"vitamins": [ [ "mutagenic_slurry", 10 ] ]
},
{
"type": "COMESTIBLE",
"id": "arm_zed",
"name": { "str": "tainted limb" },
"description": "A rotted and then shredded arm. Not much use unless you want to scrape the meat from the bones.",
"copy-from": "arm",
"use_action": [ "POISON" ],
"color": "red",
"material": [ "flesh" ],
"vitamins": [ ],
"extend": { "flags": [ "NO_REPAIR" ] }
},
{
"type": "COMESTIBLE",
"id": "leg_zed",
"name": { "str": "tainted limb" },
"description": "What's left of some zombie's limb. Most likely a leg based on the proportions. Though it's rotted, there is quite a bit of meat still on it.",
"copy-from": "leg",
"use_action": [ "POISON" ],
"color": "red",
"material": [ "flesh" ],
"vitamins": [ ],
"extend": { "flags": [ "NO_REPAIR" ] }
}
]
3 changes: 2 additions & 1 deletion data/json/items/generic/skulls.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
"id": "skull_human_tainted",
"name": { "str": "tainted human skull" },
"description": "The stained skull of what was once a human being. It is rotted and noticeably warped from its lively form. Carrying this around probably isn't going to win you any friends.",
"copy-from": "skull_abstract"
"copy-from": "skull_abstract",
"snippet_category": "skull_human_tainted_desc"
},
{
"type": "GENERIC",
Expand Down
56 changes: 51 additions & 5 deletions data/json/monsterdrops/zombie.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,27 @@
"id": "zed_dust",
"subtype": "collection",
"entries": [
{ "group": "default_zombie_death_drops", "prob": 100, "damage": [ 2, 5 ] },
{ "item": "corpse_ash", "count": [ 25, 35 ] },
{ "item": "skull_human_tainted", "prob": 40, "damage": [ 1, 3 ] },
{ "item": "bone_tainted", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 3 ] }
]
},
{
"type": "item_group",
"id": "zed_skin",
"subtype": "collection",
"entries": [
{ "item": "raw_tainted_leather_scraps", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 12 ] },
{ "item": "fat_tainted", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 4 ] },
{ "item": "bone_tainted", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 4 ] },
{ "item": "sinew", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 2 ] }
]
},
{
"type": "item_group",
"id": "explode_zed",
"subtype": "collection",
"entries": [
{ "group": "default_zombie_death_drops", "prob": 100, "damage": [ 2, 4 ] },
{ "item": "skull_human_tainted", "prob": 60, "damage": [ 2, 3 ] },
{ "item": "arm_zed", "prob": 30, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "leg_zed", "prob": 30, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
Expand All @@ -157,6 +166,7 @@
{ "item": "bone_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "tainted_marrow", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 5 ] },
{ "item": "tainted_innards", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 50, "damage": [ 2, 3 ], "count": [ 2, 5 ] },
{ "item": "sinew", "prob": 50, "damage": [ 2, 3 ], "count": [ 5, 10 ] }
]
},
Expand All @@ -165,7 +175,6 @@
"id": "explode_zed_fungal",
"subtype": "collection",
"entries": [
{ "group": "default_zombie_death_drops", "prob": 100, "damage": [ 2, 4 ] },
{ "item": "skull_human_tainted", "prob": 60, "damage": [ 2, 3 ] },
{ "item": "arm_zed", "prob": 20, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "leg_zed", "prob": 20, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
Expand All @@ -175,6 +184,25 @@
{ "item": "bone_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "tainted_marrow", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 5 ] },
{ "item": "veggy_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 50, "damage": [ 2, 3 ], "count": [ 2, 5 ] },
{ "item": "sinew", "prob": 50, "damage": [ 2, 3 ], "count": [ 5, 10 ] }
]
},
{
"type": "item_group",
"id": "explode_zed_fungal_bone",
"subtype": "collection",
"entries": [
{ "item": "skull_human_tainted", "prob": 90, "damage": [ 2, 3 ] },
{ "item": "arm_zed", "prob": 20, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "leg_zed", "prob": 20, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "blood_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "meat_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "fat_tainted", "prob": 80, "damage": [ 2, 3 ], "count": [ 1, 5 ] },
{ "item": "bone_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 15, 25 ] },
{ "item": "tainted_marrow", "prob": 50, "damage": [ 2, 3 ], "count": [ 10, 15 ] },
{ "item": "veggy_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 3 ] },
{ "item": "sinew", "prob": 50, "damage": [ 2, 3 ], "count": [ 5, 10 ] }
]
},
Expand All @@ -185,7 +213,7 @@
"entries": [
{ "item": "leg_zed", "prob": 80, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "leg_zed", "prob": 40, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "raw_tainted_leather", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "blood_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "meat_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "fat_tainted", "prob": 80, "damage": [ 2, 3 ], "count": [ 1, 5 ] },
Expand All @@ -208,6 +236,7 @@
{ "item": "bone_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "tainted_marrow", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "tainted_innards", "prob": 100, "damage": [ 2, 3 ], "count": [ 3, 7 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 80, "damage": [ 2, 3 ], "count": [ 2, 5 ] },
{ "item": "sinew", "prob": 50, "damage": [ 2, 3 ], "count": [ 3, 7 ] }
]
},
Expand All @@ -222,15 +251,31 @@
{ "item": "bone_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 1, 3 ] },
{ "item": "tainted_marrow", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "tainted_innards", "prob": 100, "damage": [ 2, 3 ], "count": [ 12, 24 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 80, "damage": [ 2, 3 ], "count": [ 2, 5 ] },
{ "item": "sinew", "prob": 100, "damage": [ 2, 3 ], "count": [ 8, 15 ] }
]
},
{
"type": "item_group",
"id": "explode_innards_small",
"subtype": "collection",
"entries": [
{ "item": "blood_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 3, 5 ] },
{ "item": "meat_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 2, 5 ] },
{ "item": "fat_tainted", "prob": 80, "damage": [ 2, 3 ], "count": [ 1, 3 ] },
{ "item": "bone_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 1, 3 ] },
{ "item": "tainted_marrow", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "tainted_innards", "prob": 100, "damage": [ 2, 3 ], "count": [ 1, 3 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 3 ] },
{ "item": "sinew", "prob": 100, "damage": [ 2, 3 ], "count": [ 1, 3 ] }
]
},
{
"type": "item_group",
"id": "explode_toad",
"subtype": "collection",
"entries": [
{ "item": "arm_zed", "prob": 60, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "leg_zed", "prob": 60, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "leg_zed", "prob": 80, "damage": [ 2, 3 ], "count": [ 1, 2 ] },
{ "item": "blood_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "meat_tainted", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
Expand All @@ -242,6 +287,7 @@
{ "item": "mutant_lung", "prob": 50, "damage": [ 2, 3 ], "count": [ 1, 5 ] },
{ "item": "mutant_liver", "prob": 70, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "tainted_innards", "prob": 100, "damage": [ 2, 3 ], "count": [ 5, 10 ] },
{ "item": "raw_tainted_leather_scraps", "prob": 100, "damage": [ 2, 3 ], "count": [ 2, 5 ] },
{ "item": "stomach_large", "prob": 80, "damage": [ 2, 3 ] }
]
}
Expand Down
10 changes: 6 additions & 4 deletions data/json/monsters/fungus_zombie.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
"harvest": "exempt",
"emit_fields": [ { "emit_id": "emit_fungal_leak", "delay": "1 s" } ],
"special_attacks": [ [ "SUICIDE", 20 ], [ "scratch", 15 ] ],
"death_drops": "explode_zed_fungal",
"death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_death_drops", 100 ], [ "explode_zed_fungal", 100 ] ] },
"death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungalburst", "hit_self": true } },
"flags": [ "SEES", "STUMBLES", "WARM", "POISON", "NO_BREATHE", "FILTHY" ],
"armor": { "electric": 4 }
Expand Down Expand Up @@ -101,7 +101,7 @@
"harvest": "zombie_humanoid_mushroom",
"emit_fields": [ { "emit_id": "emit_fungal_haze_plume", "delay": "1 s" } ],
"special_attacks": [ { "type": "bite", "cooldown": 5 }, [ "scratch", 15 ] ],
"death_drops": "explode_zed_fungal",
"death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_death_drops", 100 ], [ "explode_zed_fungal", 100 ] ] },
"death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungus", "hit_self": true } },
"flags": [ "SEES", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "POISON", "HARDTOSHOOT", "NO_BREATHE", "PUSH_MON", "FILTHY" ],
"armor": { "heat": 5, "electric": 5 }
Expand All @@ -124,6 +124,7 @@
},
"special_attacks": [ [ "FUNGUS", 200 ] ],
"harvest": "moldy_bones",
"death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_death_drops", 100 ], [ "explode_zed_fungal_bone", 100 ] ] },
"death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungus", "hit_self": true } },
"armor": { "bash": 0, "electric": 5 }
},
Expand All @@ -145,6 +146,7 @@
"families": [ "prof_wp_skeleton" ]
},
"harvest": "moldy_bones",
"death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_death_drops", 100 ], [ "explode_zed_fungal_bone", 100 ] ] },
"death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungus", "hit_self": true } }
},
{
Expand Down Expand Up @@ -177,7 +179,7 @@
"vision_night": 5,
"harvest": "big_mr_bones",
"special_attacks": [ { "id": "smash", "throw_strength": 54 } ],
"death_drops": "mon_zombie_hulk_death_drops",
"death_drops": { "subtype": "collection", "groups": [ [ "mon_zombie_hulk_death_drops", 100 ], [ "explode_zed_fungal_bone", 100 ] ] },
"death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungus", "hit_self": true } },
"burn_into": "mon_zombie_fiend",
"flags": [ "HEARS", "STUMBLES", "WARM", "BASHES", "DESTROYS", "POISON", "NO_BREATHE", "PUSH_MON", "PUSH_VEH", "FILTHY" ],
Expand Down Expand Up @@ -251,7 +253,7 @@
"vision_night": 3,
"harvest": "zombie_humanoid",
"special_attacks": [ [ "FUNGUS", 100 ], [ "BOOMER", 20 ], [ "scratch", 20 ] ],
"death_drops": "explode_zed_fungal",
"death_drops": { "subtype": "collection", "groups": [ [ "default_zombie_death_drops", 100 ], [ "explode_zed_fungal", 100 ] ] },
"death_function": { "corpse_type": "NO_CORPSE", "effect": { "id": "death_fungus", "hit_self": true } },
"burn_into": "mon_zombie_scorched",
"flags": [ "SEES", "HEARS", "SMELLS", "STUMBLES", "WARM", "BASHES", "GROUP_BASH", "POISON", "NO_BREATHE", "PUSH_MON", "FILTHY" ],
Expand Down
1 change: 1 addition & 0 deletions data/json/monsters/zed-winged.json
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@
"corpse_type": "NO_CORPSE",
"message": "The %s explodes!"
},
"death_drops": "explode_innards_small",
"upgrades": false
},
{
Expand Down
4 changes: 4 additions & 0 deletions data/json/monsters/zed_amalgamation.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"volume": "20 L",
"weight": "20 kg",
"upgrades": { "age_grow": 1, "into_group": "GROUP_COCOON_TINY" },
"death_drops": "explode_innards_small",
"death_function": {
"message": "The %s explodes in a shower of gore!",
"corpse_type": "NO_CORPSE",
Expand All @@ -34,6 +35,7 @@
"hp": 100,
"speed": 100,
"upgrades": { "age_grow": 1, "into_group": "GROUP_COCOON_SMALL", "multiple_spawns": true, "spawn_range": 5 },
"death_drops": "explode_innards_small",
"death_function": {
"message": "The %s explodes in a shower of gore!",
"corpse_type": "NO_CORPSE",
Expand All @@ -54,6 +56,7 @@
"weight": "200 kg",
"hp": 200,
"upgrades": { "age_grow": 1, "into_group": "GROUP_COCOON_MED_1", "multiple_spawns": true, "spawn_range": 5 },
"death_drops": "explode_innards",
"death_function": {
"message": "The %s explodes in a shower of gore!",
"corpse_type": "NO_CORPSE",
Expand All @@ -72,6 +75,7 @@
"weight": "450 kg",
"hp": 600,
"upgrades": { "age_grow": 1, "into_group": "GROUP_COCOON_LARGE", "multiple_spawns": true, "spawn_range": 5 },
"death_drops": "explode_innards",
"death_function": {
"message": "The %s explodes in a shower of gore!",
"corpse_type": "NO_CORPSE",
Expand Down
Loading
Loading