diff --git a/cfg/admin.txt b/cfg/admin.txt index a72a659071..5a06cec4a9 100644 --- a/cfg/admin.txt +++ b/cfg/admin.txt @@ -122,3 +122,4 @@ excessiveuseofcobby role=admin plizzard role=admin octareenroon91 role=admin serpentarium role=admin + diff --git a/modular_citadel/code/modules/mob/living/banana_spider.dm b/modular_citadel/code/modules/mob/living/banana_spider.dm new file mode 100644 index 0000000000..8400853864 --- /dev/null +++ b/modular_citadel/code/modules/mob/living/banana_spider.dm @@ -0,0 +1,147 @@ +/obj/item/seeds/banana/Initialize() + . = ..() + mutatelist += /obj/item/seeds/banana/exotic_banana + + +/obj/item/seeds/banana/exotic_banana + name = "pack of exotic banana seeds" + desc = "They're seeds that grow into banana trees. However, those bananas might be alive." + icon = 'modular_citadel/icons/mob/BananaSpider.dmi' + icon_state = "seed_ExoticBanana" + species = "banana" + plantname = "Exotic Banana Tree" + product = /obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable + growing_icon = 'modular_citadel/icons/mob/BananaSpider.dmi' + icon_dead = "banana-dead" + mutatelist = list() + genes = list(/datum/plant_gene/trait/slip) + reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "nutriment" = 0.02) + + +/obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable + seed = /obj/item/seeds/banana/exotic_banana + name = "banana spider" + desc = "You do not know what it is, but you can bet the clown would love it." + icon = 'modular_citadel/icons/mob/BananaSpider.dmi' + icon_state = "banana" + item_state = "banana" + filling_color = "#FFFF00" + list_reagents = list("nutriment" = 3, "vitamin" = 2) + foodtype = GROSS | MEAT | RAW | FRUIT + grind_results = list("blood" = 20, "liquidgibs" = 5) + juice_results = list("banana" = 0) + var awakening = 0 + + +/obj/item/reagent_containers/food/snacks/grown/banana/banana_spider_spawnable/attack_self(mob/user) + if(awakening || isspaceturf(user.loc)) + return + to_chat(user, "You decide to wake up the banana spider...") + awakening = 1 + + spawn(30) + if(!QDELETED(src)) + var/mob/living/simple_animal/banana_spider/S = new /mob/living/simple_animal/banana_spider(get_turf(src.loc)) + S.speed += round(10 / seed.potency) + S.visible_message("The banana spider chitters as it stretches its legs.") + qdel(src) + + +/mob/living/simple_animal/banana_spider + icon = 'modular_citadel/icons/mob/BananaSpider.dmi' + name = "banana spider" + desc = "What the fuck is this abomination?" + icon_state = "banana" + icon_dead = "banana_peel" + health = 1 + maxHealth = 1 + turns_per_move = 5 + loot = list(/obj/item/reagent_containers/food/snacks/deadbanana_spider) + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 270 + maxbodytemp = INFINITY + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + response_help = "pokes" + response_disarm = "shoos" + response_harm = "splats" + speak_emote = list("chitters") + density = FALSE + ventcrawler = VENTCRAWLER_ALWAYS + gold_core_spawnable = FRIENDLY_SPAWN + verb_say = "chitters" + verb_ask = "chitters inquisitively" + verb_exclaim = "chitters loudly" + verb_yell = "chitters loudly" + var/squish_chance = 50 + del_on_death = 1 + + +/mob/living/simple_animal/banana_spider/Initialize() + . = ..() + var/area/A = get_area(src) + if(A) + notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) + GLOB.poi_list |= src + + +/mob/living/simple_animal/banana_spider/attack_ghost(mob/user) + if(src.key) + return + if(CONFIG_GET(flag/use_age_restriction_for_jobs)) + if(!isnum(user.client.player_age)) + return + if(!SSticker.mode) + to_chat(user, "Can't become a banana spider before the game has started.") + return + var/be_spider = alert("Become a banana spider? (Warning, You can no longer be cloned!)",,"Yes","No") + if(be_spider == "No" || QDELETED(src) || !isobserver(user)) + return + src.sentience_act() + src.key = user.key + + +/mob/living/simple_animal/banana_spider/ComponentInitialize() + . = ..() + AddComponent(/datum/component/slippery, 80) + + +/mob/living/simple_animal/banana_spider/Crossed(var/atom/movable/AM) + . = ..() + if(ismob(AM)) + if(isliving(AM)) + var/mob/living/A = AM + if(A.mob_size > MOB_SIZE_SMALL && !(A.movement_type & FLYING)) + if(prob(squish_chance)) + A.visible_message("[A] squashed [src].", "You squashed [src] under your weight as you fell.") + adjustBruteLoss(1) + else + visible_message("[src] avoids getting crushed.") + else + if(isstructure(AM)) + if(prob(squish_chance)) + AM.visible_message("[src] was crushed under [AM]'s weight as they fell.") + adjustBruteLoss(1) + else + visible_message("[src] avoids getting crushed.") + +/mob/living/simple_animal/banana_spider/ex_act() + return + + +/obj/item/reagent_containers/food/snacks/deadbanana_spider + name = "dead banana spider" + desc = "Thank god it's gone...but it does look slippery." + icon = 'modular_citadel/icons/mob/BananaSpider.dmi' + icon_state = "banana_peel" + bitesize = 3 + eatverb = "devours" + list_reagents = list("nutriment" = 3, "vitamin" = 2) + foodtype = GROSS | MEAT | RAW + grind_results = list("blood" = 20, "liquidgibs" = 5) + juice_results = list("banana" = 0) + + +/obj/item/reagent_containers/food/snacks/deadbanana_spider/Initialize() + . = ..() + AddComponent(/datum/component/slippery, 80) \ No newline at end of file diff --git a/modular_citadel/icons/mob/BananaSpider.dmi b/modular_citadel/icons/mob/BananaSpider.dmi new file mode 100644 index 0000000000..da65ef43fa Binary files /dev/null and b/modular_citadel/icons/mob/BananaSpider.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 44e70c9153..a5f7cae806 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2496,6 +2496,7 @@ #include "modular_citadel\code\game\objects\items\melee\eutactic_blades.dm" #include "modular_citadel\code\modules\crafting\recipes.dm" #include "modular_citadel\code\modules\mining\mine_items.dm" +#include "modular_citadel\code\modules\mob\living\banana_spider.dm" #include "modular_citadel\code\modules\mob\living\carbon\human\human_defense.dm" #include "modular_citadel\code\modules\mob\living\silicon\robot\robot_modules.dm" // END_INCLUDE