Adds Knights of the Round Table, Rabbits, Killer Rabbits

Scree's Request!

This adds the Knights of the Pizza Table (Monty Python's Knights) armor and costumes. Costumes are orderable via Cargo OR Vendors.

This adds passive Rabbit voremobs, and a killer rabbit. If you pet the rabbit too much, you'll make it grumpy, and it will do a nomf. You can see their grumpiness level in their description/examine.

Knight's Armor has good melee and bullet protection, and little else.
This commit is contained in:
Rykka
2020-08-26 21:58:30 -04:00
parent 2f343f778c
commit 6ef52be981
16 changed files with 512 additions and 3 deletions

View File

@@ -261,4 +261,22 @@
)
cost = 60
containertype = /obj/structure/closet/crate
containername = "Saddlebags crate"
containername = "Saddlebags crate"
/datum/supply_pack/costumes/knights_gear
name = "Knights Gear"
contains = list(
/obj/item/clothing/suit/storage/hooded/knight_costume,
/obj/item/clothing/suit/storage/hooded/knight_costume/galahad,
/obj/item/clothing/suit/storage/hooded/knight_costume/lancelot,
/obj/item/clothing/suit/storage/hooded/knight_costume/robin,
/obj/item/clothing/suit/armor/combat/crusader_costume,
/obj/item/clothing/suit/armor/combat/crusader_costume/bedevere,
/obj/item/clothing/head/helmet/combat/crusader_costume,
/obj/item/clothing/head/helmet/combat/bedevere_costume,
/obj/item/clothing/gloves/combat/knight_costume,
/obj/item/clothing/gloves/combat/knight_costume/brown
)
cost = 10
containertype = /obj/structure/closet/crate
containername = "Knights Gear Crate"

View File

@@ -1172,7 +1172,17 @@
/obj/item/clothing/mask/gas/sexyclown = 3,
/obj/item/clothing/under/sexyclown = 3,
/obj/item/clothing/mask/gas/sexymime = 3,
/obj/item/clothing/under/sexymime = 3)
/obj/item/clothing/under/sexymime = 3,
/obj/item/clothing/suit/storage/hooded/knight_costume = 3,
/obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 3,
/obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 3,
/obj/item/clothing/suit/storage/hooded/knight_costume/robin = 3,
/obj/item/clothing/suit/armor/combat/crusader_costume = 3,
/obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 3,
/obj/item/clothing/head/helmet/combat/crusader_costume = 3,
/obj/item/clothing/head/helmet/combat/bedevere_costume = 3,
/obj/item/clothing/gloves/combat/knight_costume = 3,
/obj/item/clothing/gloves/combat/knight_costume/brown = 3)
prices = list(/obj/item/clothing/suit/storage/hooded/carp_costume = 200,
/obj/item/clothing/suit/storage/hooded/carp_costume = 200,
/obj/item/clothing/suit/chickensuit = 200,
@@ -1225,7 +1235,17 @@
/obj/item/clothing/mask/gas/sexyclown = 600,
/obj/item/clothing/under/sexyclown = 200,
/obj/item/clothing/mask/gas/sexymime = 600,
/obj/item/clothing/under/sexymime = 200)
/obj/item/clothing/under/sexymime = 200,
/obj/item/clothing/suit/storage/hooded/knight_costume = 200,
/obj/item/clothing/suit/storage/hooded/knight_costume/galahad = 200,
/obj/item/clothing/suit/storage/hooded/knight_costume/lancelot = 200,
/obj/item/clothing/suit/storage/hooded/knight_costume/robin = 200,
/obj/item/clothing/suit/armor/combat/crusader_costume = 200,
/obj/item/clothing/suit/armor/combat/crusader_costume/bedevere = 200,
/obj/item/clothing/head/helmet/combat/crusader_costume = 200,
/obj/item/clothing/head/helmet/combat/bedevere_costume = 200,
/obj/item/clothing/gloves/combat/knight_costume = 200,
/obj/item/clothing/gloves/combat/knight_costume/brown = 200)
premium = list(/obj/item/clothing/suit/imperium_monk = 3,
/obj/item/clothing/suit/barding/agatha = 2,
/obj/item/clothing/suit/barding/alt_agatha = 2,

View File

@@ -2,3 +2,43 @@
desc = "A pair of gloves, they don't look special in any way."
item_state_slots = list(slot_r_hand_str = "white", slot_l_hand_str = "white")
icon_state = "latex"
// Armor Versions Here
/obj/item/clothing/gloves/combat/knight
desc = "ye olde armored gauntlets"
name = "knight gauntlets"
icon_state = "black"
item_state = "black"
siemens_coefficient = 2
permeability_coefficient = 0.05
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/gloves/combat/knight/brown
desc = "ye olde armored gauntlets"
name = "knight gauntlets"
icon_state = "brown"
item_state = "brown"
// Costume Versions Here
/obj/item/clothing/gloves/combat/knight_costume
desc = "ye olde armored gauntlets"
name = "knight gauntlets"
icon_state = "black"
item_state = "black"
siemens_coefficient = 2
permeability_coefficient = 0.05
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/gloves/combat/knight_costume/brown
desc = "ye olde armored gauntlets"
name = "knight gauntlets"
icon_state = "brown"
item_state = "brown"

View File

@@ -27,3 +27,117 @@
icon_state = "ge_helmcent"
icon = 'icons/obj/clothing/hats_vr.dmi'
icon_override = 'icons/mob/head_vr.dmi'
// Armor Versions Here
/obj/item/clothing/head/helmet/combat/crusader
name = "crusader helmet"
desc = "ye olde armored helmet"
icon_state = "crusader"
icon = 'icons/obj/clothing/hats_vr.dmi'
icon_override = 'icons/obj/clothing/hats_vr.dmi'
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 2
/obj/item/clothing/head/helmet/combat/bedevere
name = "bedevere's helmet"
desc = "ye olde armored helmet"
icon_state = "bedevere_helmet"
icon = 'icons/obj/clothing/hats_vr.dmi'
icon_override = 'icons/obj/clothing/hats_vr.dmi'
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
tint = TINT_HEAVY
siemens_coefficient = 2
var/base_state
var/up = FALSE
/obj/item/clothing/head/helmet/combat/bedevere/attack_self()
toggle()
/obj/item/clothing/head/helmet/combat/bedevere/verb/toggle()
set category = "Object"
set name = "Adjust helmet visor"
set src in usr
if(!base_state)
base_state = icon_state
if(usr.canmove && !usr.stat && !usr.restrained())
if(src.up)
src.up = !src.up
body_parts_covered |= (EYES|FACE)
flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = base_state
tint = initial(tint)
to_chat(usr, "You flip the [src] down to protect yourself from the horrors of this universe. Narry a creature shall harm you with its beams of light.")
playsound(src, 'sound/machines/hatch_open.ogg', 75, 1)
else
src.up = !src.up
body_parts_covered &= ~(EYES|FACE)
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = "[base_state]_up"
tint = TINT_NONE
to_chat(usr, "You push the [src] up out of your face, ineffectively clearing your vision.")
playsound(src, 'sound/machines/hatch_open.ogg', 75, 1)
update_clothing_icon() //so our mob-overlays
if (ismob(src.loc)) //should allow masks to update when it is opened/closed
var/mob/M = src.loc
M.update_inv_wear_mask()
usr.update_action_buttons()
// Costume Versions Here
/obj/item/clothing/head/helmet/combat/crusader_costume
name = "crusader costume helmet"
desc = "ye olde armored helmet"
icon_state = "crusader"
icon = 'icons/obj/clothing/hats_vr.dmi'
icon_override = 'icons/obj/clothing/hats_vr.dmi'
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 1
/obj/item/clothing/head/helmet/combat/bedevere_costume
name = "bedevere's costume helmet"
desc = "ye olde armored helmet"
icon_state = "bedevere_helmet"
icon = 'icons/obj/clothing/hats_vr.dmi'
icon_override = 'icons/obj/clothing/hats_vr.dmi'
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
tint = TINT_HEAVY
siemens_coefficient = 1
var/base_state
var/up = FALSE
/obj/item/clothing/head/helmet/combat/bedevere_costume/attack_self()
toggle()
/obj/item/clothing/head/helmet/combat/bedevere_costume/verb/toggle()
set category = "Object"
set name = "Adjust helmet visor"
set src in usr
if(!base_state)
base_state = icon_state
if(usr.canmove && !usr.stat && !usr.restrained())
if(src.up)
src.up = !src.up
body_parts_covered |= (EYES|FACE)
flags_inv |= (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = base_state
tint = initial(tint)
to_chat(usr, "You flip the [src] down to protect yourself from the horrors of this universe. Narry a creature shall harm you with its beams of light.")
playsound(src, 'sound/machines/hatch_open.ogg', 75, 1)
else
src.up = !src.up
body_parts_covered &= ~(EYES|FACE)
flags_inv &= ~(HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
icon_state = "[base_state]_up"
tint = TINT_NONE
to_chat(usr, "You push the [src] up out of your face, ineffectively clearing your vision.")
playsound(src, 'sound/machines/hatch_open.ogg', 75, 1)
update_clothing_icon() //so our mob-overlays
if (ismob(src.loc)) //should allow masks to update when it is opened/closed
var/mob/M = src.loc
M.update_inv_wear_mask()
usr.update_action_buttons()

View File

@@ -1,3 +1,29 @@
/obj/item/clothing/head/hood/techpriest
name = "techpriest hood"
armor = list(melee = 20, bullet = 10, laser = 10, energy = 10, bomb = 25, bio = 50, rad = 25)
// Armor versions here
/obj/item/clothing/head/hood/galahad
name = "galahad hood"
armor = list(melee = 80, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 2
/obj/item/clothing/head/hood/lancelot
name = "lancelot hood"
armor = list(melee = 80, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 2
/obj/item/clothing/head/hood/robin
name = "robin hood"
armor = list(melee = 80, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 3
// Costume Versions Here
/obj/item/clothing/head/hood/galahad_costume
name = "galahad costume hood"
/obj/item/clothing/head/hood/lancelot_costume
name = "lancelot costume hood"
/obj/item/clothing/head/hood/robin_costume
name = "robin costume hood"

View File

@@ -85,3 +85,37 @@
/obj/item/clothing/suit/storage/vest/hoscoat/jensen/alt
icon = 'icons/obj/clothing/suits_vr.dmi'
icon_override = 'icons/mob/suit_vr.dmi'
// Armor Versions Here
/obj/item/clothing/suit/armor/combat/crusader
name = "crusader armor"
desc = "ye olde knight, risen again."
icon_state = "crusader"
icon = 'icons/obj/clothing/knights_vr.dmi'
icon_override = 'icons/obj/clothing/knights_vr.dmi'
body_parts_covered = UPPER_TORSO|LOWER_TORSO
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 2
/obj/item/clothing/suit/armor/combat/crusader/bedevere
name = "bedevere's armor"
desc = "ye olde knight, risen again."
icon_state = "bedevere"
body_parts_covered = UPPER_TORSO|LOWER_TORSO
// Costume Versions Here
/obj/item/clothing/suit/armor/combat/crusader_costume
name = "crusader costume armor"
desc = "ye olde knight, risen again."
icon_state = "crusader"
icon = 'icons/obj/clothing/knights_vr.dmi'
icon_override = 'icons/obj/clothing/knights_vr.dmi'
body_parts_covered = UPPER_TORSO|LOWER_TORSO
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 1
/obj/item/clothing/suit/armor/combat/crusader_costume/bedevere
name = "bedevere's costume armor"
desc = "ye olde knight, risen again."
icon_state = "bedevere"
body_parts_covered = UPPER_TORSO|LOWER_TORSO

View File

@@ -11,3 +11,60 @@
hoodtype = /obj/item/clothing/head/hood/techpriest
armor = list(melee = 20, bullet = 10, laser = 10, energy = 10, bomb = 25, bio = 50, rad = 25)
item_state_slots = list(slot_r_hand_str = "engspace_suit", slot_l_hand_str = "engspace_suit")
// Regular armor versions here, costumes below
/obj/item/clothing/suit/storage/hooded/knight
name = "crusader's armor"
desc = "ye olde knight, risen again."
icon_state = "galahad"
icon = 'icons/obj/clothing/knights_vr.dmi'
icon_override = 'icons/obj/clothing/knights_vr.dmi'
hoodtype = /obj/item/clothing/head/hood/galahad
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
siemens_coefficient = 2
action_button_name = "Toggle Knight Headgear"
/obj/item/clothing/suit/storage/hooded/knight/galahad
name = "crusader's armor"
desc = "ye olde knight, risen again."
icon_state = "galahad"
hoodtype = /obj/item/clothing/head/hood/galahad
/obj/item/clothing/suit/storage/hooded/knight/lancelot
name = "crusader's armor"
desc = "ye olde knight, risen again."
icon_state = "lancelot"
hoodtype = /obj/item/clothing/head/hood/lancelot
/obj/item/clothing/suit/storage/hooded/knight/robin
name = "crusader's armor"
desc = "ye olde knight, risen again. This one seems slightly faster than the rest, but weaker."
icon_state = "robin"
hoodtype = /obj/item/clothing/head/hood/robin
armor = list(melee = 70, bullet = 40, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
slowdown = -1
siemens_coefficient = 3
// Costume Knight Gear Here
/obj/item/clothing/suit/storage/hooded/knight_costume
name = "crusader's costume armor"
desc = "ye olde knight, risen again."
icon_state = "galahad"
icon = 'icons/obj/clothing/knights_vr.dmi'
icon_override = 'icons/obj/clothing/knights_vr.dmi'
hoodtype = /obj/item/clothing/head/hood/galahad_costume
action_button_name = "Toggle Knight Headgear"
/obj/item/clothing/suit/storage/hooded/knight_costume/galahad
icon_state = "galahad"
hoodtype = /obj/item/clothing/head/hood/galahad_costume
/obj/item/clothing/suit/storage/hooded/knight_costume/lancelot
icon_state = "lancelot"
hoodtype = /obj/item/clothing/head/hood/lancelot_costume
/obj/item/clothing/suit/storage/hooded/knight_costume/robin
name = "crusader's armor"
desc = "ye olde knight, risen again. This one seems slightly faster than the rest, but weaker."
icon_state = "robin"
hoodtype = /obj/item/clothing/head/hood/robin_costume

View File

@@ -0,0 +1,141 @@
/datum/category_item/catalogue/fauna/rabbit //TODO: VIRGO_LORE_WRITING_WIP
name = "Wildlife - Rabbit"
desc = ""
value = CATALOGUER_REWARD_TRIVIAL
/mob/living/simple_mob/vore/rabbit
name = "rabbit"
desc = "It's a fluffy, smol bunny! Adorable!"
tt_desc = "Vulpes zerda"
icon_state = "rabbit_brown"
icon_living = "rabbit_brown"
icon_dead = "rabbit_brown_dead"
icon_rest = "rabbit_brown_rest"
icon = 'icons/mob/vore.dmi'
faction = "rabbit"
maxHealth = 30
health = 30
response_help = "pats"
response_disarm = "gently pushes aside"
response_harm = "hits"
harm_intent_damage = 5
melee_damage_lower = 1
melee_damage_upper = 3
attacktext = list("nipped")
movement_cooldown = 3
say_list_type = /datum/say_list/rabbit
ai_holder_type = /datum/ai_holder/simple_mob/passive
// Vore vars
vore_active = 1
vore_bump_chance = 10
vore_bump_emote = "playfully lunges at"
vore_pounce_chance = 40
vore_pounce_maxhealth = 100 // They won't pounce by default, as they're passive. This is just so the nom check succeeds. :u
vore_default_mode = DM_HOLD
vore_icons = SA_ICON_LIVING
var/body_color //brown, black and white, leave blank for random
var/grumpiness // This determines how grumpy we are. Pet us to increase it, leave us alone to decrease.
var/last_pet // This tracks the last time someone patted us.
var/grump_decay = 5 SECONDS // This is how quickly our grumpiness decays.
/mob/living/simple_mob/vore/rabbit/New()
. = ..()
if(!body_color)
body_color = pick( list("brown","black","white") )
icon_state = "rabbit_[body_color]"
item_state = "rabbit_[body_color]"
icon_living = "rabbit_[body_color]"
icon_dead = "rabbit_[body_color]_dead"
icon_rest = "rabbit_[body_color]_rest"
/mob/living/simple_mob/vore/rabbit/Life()
. = ..()
if(grumpiness > 0 && last_pet > (world.time + grump_decay))
grumpiness = max(0, grumpiness-rand(5,10)) // Subtract grumpiness randomly in a range of 5-10 if we've not been PAT in the last 5 seconds.
/mob/living/simple_mob/vore/rabbit/examine(mob/user)
. = ..()
switch(grumpiness)
if(-INFINITY to 25)
desc += "They appear calm."
if(26 to 50)
desc += "They seem slightly annoyed."
if(51 to 75)
desc += "They seem very annoyed, perhaps you should stop petting them."
if(75 to INFINITY)
desc += "They are very angry. Petting them will likely result in unpleasant things."
/mob/living/simple_mob/vore/rabbit/attack_hand(mob/user)
. = ..()
if(user.a_intent == I_HELP) // only patpet on help. :p
grumpiness = CLAMP(grumpiness + rand(5, 10), 0, 120)
last_pet = world.time
if(grumpiness > 90) // Annoyed bunbun :U
var/pounce_chance = CanPounceTarget(user)
if(pounce_chance)
PounceTarget(user, pounce_chance)
/datum/say_list/rabbit
speak = list("chrrrs.")
emote_hear = list("screms.")
emote_see = list("earflicks","wiggles it's tail", "wiggles its nose")
/mob/living/simple_mob/vore/rabbit/black
icon_state = "rabbit_black"
icon_living = "rabbit_black"
icon_dead = "rabbit_black_dead"
icon_rest = "rabbit_black_rest"
/mob/living/simple_mob/vore/rabbit/white
icon_state = "rabbit_white"
icon_living = "rabbit_white"
icon_dead = "rabbit_white_dead"
icon_rest = "rabbit_white_rest"
/mob/living/simple_mob/vore/rabbit/white/lennie
name = "Lennie"
desc = "A large but somewhat dumb-looking rabbit. Has a little collar that says 'Lennie'!"
/mob/living/simple_mob/vore/rabbit/george
name = "George"
desc = "A small and quick bunny with a restless expression in its eyes. Has a little collar that says 'George'!"
/mob/living/simple_mob/vore/rabbit/killer
icon_state = "rabbit_killer"
icon_living = "rabbit_killer"
icon_dead = "rabbit_killer_dead"
icon_rest = "rabbit_killer_rest"
maxHealth = 200
health = 200
harm_intent_damage = 5
melee_damage_lower = 1
melee_damage_upper = 3
attacktext = list("nipped")
movement_cooldown = 0.5 // very fast bunbun.
vore_pounce_chance = 100
vore_pounce_falloff = 0.2
body_color = "killer" // Set this so New() doesn't try to randomize us.
say_list_type = /datum/say_list/rabbit
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
/mob/living/simple_mob/vore/rabbit/killer/ex_act()
gib()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 859 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,51 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"e" = (/mob/living/simple_mob/vore/rabbit/killer,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"g" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"h" = (/turf/simulated/mineral/ignore_mapgen/cave,/area/template_noop)
"m" = (/obj/item/weapon/bone/skull,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"n" = (/obj/item/clothing/suit/storage/hooded/knight/galahad,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"q" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"r" = (/obj/item/weapon/bone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"s" = (/obj/item/weapon/bone/ribs,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"t" = (/obj/effect/gibspawner/human,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"u" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"v" = (/obj/item/weapon/grenade/explosive/frag,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"y" = (/obj/item/weapon/bone,/obj/item/weapon/bone/ribs,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"A" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"C" = (/obj/item/clothing/suit/storage/hooded/knight/lancelot,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"E" = (/obj/item/clothing/suit/armor/combat/crusader/bedevere,/obj/item/clothing/head/helmet/combat/bedevere,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"F" = (/obj/item/weapon/bone,/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"I" = (/obj/item/clothing/suit/storage/hooded/knight/robin,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"J" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/bone/ribs,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"K" = (/obj/item/clothing/suit/armor/combat/crusader,/obj/item/clothing/head/helmet/combat/crusader,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"L" = (/obj/structure/barricade/cutout/fukken_xeno,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"P" = (/obj/item/weapon/bone/skull,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"Q" = (/obj/item/weapon/bone,/obj/structure/loot_pile/surface/bones,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"T" = (/obj/structure/barricade,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"U" = (/obj/item/weapon/bone/ribs,/obj/item/clothing/suit/storage/hooded/knight,/obj/item/weapon/bone/skull,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"V" = (/obj/item/weapon/bone,/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"Y" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
(1,1,1) = {"
aahhhhhhhhhhhhhhhhaa
aahhhhhhhhhhhhhhhhaa
aahhhhhhhhhhhhhhhhaa
aahhhgggggegtmghhhaa
ahhhgggggggggEgghhha
ahhhgsggghhggtgbhhha
ahhhmIVgghhgmKgghhha
ahhhgtgggggggggthhha
ahhhgggUggggggCmhhha
ahhhgntgggVggggghhha
ahhhgmggghhggggghhha
aahhhhggbhhggghhhhaa
aahhhhgghhhhgghhhhaa
aahhhhgghhhhgghhhhaa
aagbhhggvhhvgVhhLgaa
aaaghhggghhTTThhgaaa
aaaahhTThhhhYThhaaaa
aaaamqThhhhhhJbmaaaa
aaaaguAFhhhhPryraaaa
aaaaggggQhhrgrPraaaa
"}

View File

@@ -234,6 +234,13 @@
cost = 5
allow_duplicates = TRUE
template_group = "Underground Cliffs"
/datum/map_template/surface/mountains/normal/deadly_rabbit
name = "The Killer Rabbit"
desc = "A cave where the Knights of the Round have fallen to a murderous Rabbit."
mappath = 'maps/submaps/surface_submaps/mountains/deadly_rabbit.dmm'
cost = 5
allow_duplicates = FALSE
/**************
* Deep Caves *

View File

@@ -2814,6 +2814,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\vore\mimic.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\otie.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\rabbit.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\snake.dm"