diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 8e2632dd24f..2c525559c6f 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -881,7 +881,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user as mob) if(istype(user.loc,/turf/space)) return - new /mob/living/simple_animal/mushroom(user.loc) + new /mob/living/simple_animal/hostile/mushroom(user.loc) del(src) user << "You plant the walking mushroom." @@ -1080,4 +1080,4 @@ ..() spawn(5) //So potency can be set in the proc that creates these crops reagents.add_reagent("teapowder", 1+round((potency / 10), 2)) - reagents.add_reagent("kelotane", 1+round((potency / 20), 1)) + reagents.add_reagent("kelotane", 1+round((potency / 20), 1)) diff --git a/code/modules/mob/living/simple_animal/friendly/mushroom.dm b/code/modules/mob/living/simple_animal/friendly/mushroom.dm deleted file mode 100644 index e99470ca03c..00000000000 --- a/code/modules/mob/living/simple_animal/friendly/mushroom.dm +++ /dev/null @@ -1,15 +0,0 @@ -/mob/living/simple_animal/mushroom - name = "walking mushroom" - desc = "It's a massive mushroom... with legs?" - icon_state = "mushroom" - icon_living = "mushroom" - icon_dead = "mushroom_dead" - speak_chance = 0 - turns_per_move = 1 - maxHealth = 5 - health = 5 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "whacks" - harm_intent_damage = 5 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm new file mode 100644 index 00000000000..777373763dd --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -0,0 +1,71 @@ +/mob/living/simple_animal/hostile/mushroom + name = "walking mushroom" + desc = "It's a massive mushroom... with legs?" + icon_state = "mushroom" + icon_living = "mushroom" + icon_dead = "mushroom_dead" + speak_chance = 0 + turns_per_move = 1 + maxHealth = 50 + health = 50 + meat_type = /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice + response_help = "pets" + response_disarm = "gently pushes aside" + response_harm = "whacks" + harm_intent_damage = 5 + melee_damage_lower = 5 + melee_damage_upper = 15 + attack_same = 2 + attacktext = "chomps" + faction = "mushroom" + environment_smash = 0 + stat_attack = 2 + var/powerlevel = 0 //Tracks our killcount + var/bruised = 0 //If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it wont award levels to shrooms that eat it + +/mob/living/simple_animal/hostile/mushroom/attack_animal(var/mob/living/L) + if(istype(L, /mob/living/simple_animal/hostile/mushroom) && stat == 2) + var/mob/living/simple_animal/hostile/mushroom/M = L + M.visible_message("The [M.name] devours the [src.name]!") + if(!bruised) + M.LevelUp() + del(src) + ..() + +/mob/living/simple_animal/hostile/mushroom/proc/LevelUp() + if(powerlevel <= 9) + powerlevel += 1 + melee_damage_lower += 5 + melee_damage_upper += 5 + maxHealth += 5 + health = maxHealth + +/mob/living/simple_animal/hostile/mushroom/proc/Bruise() + if(!bruised && !stat) + src.visible_message("The [src.name] was bruised!") + bruised = 1 + +/mob/living/simple_animal/hostile/mushroom/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + Bruise() + +/mob/living/simple_animal/hostile/mushroom/attack_hand(mob/living/carbon/human/M as mob) + ..() + if(M.a_intent == "harm") + Bruise() + +/mob/living/simple_animal/hostile/mushroom/hitby(atom/movable/AM) + ..() + if(istype(AM, /obj/item)) + var/obj/item/T = AM + if(T.throwforce) + Bruise() + +/mob/living/simple_animal/hostile/mushroom/harvest() + var/counter + for(counter=0, counter<=powerlevel, counter++) + var/obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice/S = new /obj/item/weapon/reagent_containers/food/snacks/hugemushroomslice(src.loc) + S.reagents.add_reagent("mushroomhallucinogen", powerlevel) + S.reagents.add_reagent("doctorsdelight", powerlevel) + S.reagents.add_reagent("synaptizine", powerlevel) + del(src) \ No newline at end of file diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index b8281e65b0e..ac38a35b839 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -478,7 +478,7 @@ return 1 if(ispath(MP, /mob/living/simple_animal/hostile/carp)) return 1 - if(ispath(MP, /mob/living/simple_animal/mushroom)) + if(ispath(MP, /mob/living/simple_animal/hostile/mushroom)) return 1 if(ispath(MP, /mob/living/simple_animal/shade)) return 1 diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 0aee7b729e2..12b8f565b05 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -170,7 +170,7 @@ proc/wabbajack(mob/living/M) if("cat") new_mob = new /mob/living/simple_animal/cat(M.loc) if("carp") new_mob = new /mob/living/simple_animal/hostile/carp(M.loc) if("bear") new_mob = new /mob/living/simple_animal/hostile/bear(M.loc) - if("mushroom") new_mob = new /mob/living/simple_animal/mushroom(M.loc) + if("mushroom") new_mob = new /mob/living/simple_animal/hostile/mushroom(M.loc) if("tomato") new_mob = new /mob/living/simple_animal/tomato(M.loc) if("mouse") new_mob = new /mob/living/simple_animal/mouse(M.loc) if("chicken") new_mob = new /mob/living/simple_animal/chicken(M.loc) diff --git a/tgstation.dme b/tgstation.dme index 072b55cdcbc..dbdff9390f6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1016,7 +1016,6 @@ #include "code\modules\mob\living\simple_animal\friendly\farm_animals.dm" #include "code\modules\mob\living\simple_animal\friendly\lizard.dm" #include "code\modules\mob\living\simple_animal\friendly\mouse.dm" -#include "code\modules\mob\living\simple_animal\friendly\mushroom.dm" #include "code\modules\mob\living\simple_animal\friendly\pug.dm" #include "code\modules\mob\living\simple_animal\friendly\slime.dm" #include "code\modules\mob\living\simple_animal\friendly\tomato.dm" @@ -1030,6 +1029,7 @@ #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs.dm" +#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\syndicate.dm"