diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm new file mode 100644 index 0000000000..91a611f022 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm @@ -0,0 +1,44 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big + tt_desc = "E Homo sapiens corydon horrificus" //this clown is stronk + faction = "clown" + + maxHealth = 200 + health = 200 + see_in_dark = 8 + + melee_damage_lower = 15 + melee_damage_upper = 35 + attack_armor_pen = 5 + attack_sharp = FALSE + attack_edge = FALSE + melee_attack_delay = 1 SECOND + attacktext = list("mauled") + + ai_holder_type = /datum/ai_holder/simple_mob/melee/clowns + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + +/mob/living/simple_mob/mobs_monsters/clowns/big + min_oxy = 0 + max_oxy = 500 + min_tox = 0 + max_tox = 500 + min_co2 = 0 + max_co2 = 500 + min_n2 = 0 + max_n2 = 500 + minbodytemp = 0 + maxbodytemp = 700 + +/datum/ai_holder/simple_mob/melee/clowns + can_breakthrough = TRUE + violent_breakthrough = FALSE + hostile = TRUE // The majority of simplemobs are hostile, gaslamps are nice. + cooperative = FALSE + retaliate = TRUE //so the monster can attack back + returns_home = FALSE + can_flee = FALSE + speak_chance = 3 + wander = TRUE + base_wander_delay = 9 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm new file mode 100644 index 0000000000..bee3df8b3f --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm @@ -0,0 +1,38 @@ +/mob/living/simple_mob/mobs_monsters/clowns/ + tt_desc = "E Homo sapiens corydon" //this is a clown + faction = "clown" + + maxHealth = 100 + health = 100 + see_in_dark = 8 + + melee_damage_lower = 5 + melee_damage_upper = 30 + + ai_holder_type = /datum/ai_holder/simple_mob/melee/clowns + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + 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 = 0 + maxbodytemp = 700 + + +/datum/ai_holder/simple_mob/melee/clowns + can_breakthrough = FALSE + violent_breakthrough = FALSE + hostile = FALSE // The majority of simplemobs are hostile, gaslamps are nice. + cooperative = FALSE + retaliate = TRUE //so the monster can attack back + returns_home = FALSE + can_flee = FALSE + speak_chance = 3 + wander = TRUE + base_wander_delay = 9 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm new file mode 100644 index 0000000000..2f4c0290bb --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Normal.dm @@ -0,0 +1,77 @@ +/mob/living/simple_mob/mobs_monsters/clowns/normal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm new file mode 100644 index 0000000000..cdd14ceaf0 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm @@ -0,0 +1,7 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift + tt_desc = "E Homo sapiens corydon xenos" //this is a redspace clown + faction = "clown" + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/New() + ..() + verbs += /mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm new file mode 100644 index 0000000000..a719a2152e --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm @@ -0,0 +1,76 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/anormal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm new file mode 100644 index 0000000000..5c37f269d7 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm @@ -0,0 +1,95 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift + var/ability_flags = 0 //Flags for active abilities + +// Phase shifting procs (and related procs) +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift() + var/turf/T = get_turf(src) + if(!T.CanPass(src,T) || loc != T) + to_chat(src,"You can't use that here!") + return FALSE + + forceMove(T) + var/original_canmove = canmove + SetStunned(0) + SetWeakened(0) + if(buckled) + buckled.unbuckle_mob() + if(pulledby) + pulledby.stop_pulling() + stop_pulling() + canmove = FALSE + + //Shifting in + if(ability_flags & AB_PHASE_SHIFTED) + ability_flags &= ~AB_PHASE_SHIFTED + mouse_opacity = 2 + name = real_name + + + overlays.Cut() + alpha = initial(alpha) + invisibility = initial(invisibility) + see_invisible = initial(see_invisible) + incorporeal_move = initial(incorporeal_move) + density = initial(density) + force_max_speed = initial(force_max_speed) + + //Cosmetics mostly + flick("tp_in",src) + custom_emote(1,"phases in!") + sleep(5) //The duration of the TP animation + canmove = original_canmove + + // Do this after the potential vore, so we get the belly + update_icon() + + //Affect nearby lights + + + for(var/obj/machinery/light/L in machines) + if(L.z != z || get_dist(src,L) > 10) + continue + + L.flicker(10) + + //Shifting out + else + ability_flags |= AB_PHASE_SHIFTED + mouse_opacity = 0 + custom_emote(1,"phases out!") + real_name = name + name = "Something" + + overlays.Cut() + flick("tp_out",src) + sleep(5) + invisibility = INVISIBILITY_LEVEL_TWO + see_invisible = INVISIBILITY_LEVEL_TWO + update_icon() + alpha = 127 + + canmove = original_canmove + incorporeal_move = TRUE + density = FALSE + force_max_speed = TRUE + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/UnarmedAttack() + if(ability_flags & AB_PHASE_SHIFTED) + return FALSE //Nope. + + . = ..() + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/can_fall() + if(ability_flags & AB_PHASE_SHIFTED) + return FALSE //Nope! + + return ..() + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/zMove(direction) + if(ability_flags & AB_PHASE_SHIFTED) + var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) + if(destination) + forceMove(destination) + return TRUE + + return ..() \ No newline at end of file diff --git a/icons/mob/mobs_monsters/TGClowns.dmi b/icons/mob/mobs_monsters/TGClowns.dmi new file mode 100644 index 0000000000..5805861b61 Binary files /dev/null and b/icons/mob/mobs_monsters/TGClowns.dmi differ diff --git a/icons/mob/mobs_monsters/giantclowns.dmi b/icons/mob/mobs_monsters/giantclowns.dmi new file mode 100644 index 0000000000..38e76a0ab7 Binary files /dev/null and b/icons/mob/mobs_monsters/giantclowns.dmi differ diff --git a/icons/mob/mobs_monsters/hands.dmi b/icons/mob/mobs_monsters/hands.dmi new file mode 100644 index 0000000000..bc61264158 Binary files /dev/null and b/icons/mob/mobs_monsters/hands.dmi differ diff --git a/icons/mob/mobs_monsters/newclowns.dmi b/icons/mob/mobs_monsters/newclowns.dmi new file mode 100644 index 0000000000..cb41a76596 Binary files /dev/null and b/icons/mob/mobs_monsters/newclowns.dmi differ diff --git a/vorestation.dme b/vorestation.dme index d8f2911a7d..e5e5f203b5 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2776,6 +2776,12 @@ #include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_abilities.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_subtypes.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\demon\~defines.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\Clowns\Big.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\Clowns\bus.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\Clowns\busclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\Clowns\c_shift.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\Clowns\Clowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\Clowns\Normal.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\morph\morph.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\_defines.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm"