Merge pull request #8844 from Rykka-Stormheart/shep-dev-scree-rabbits

Adds Knights of the Round Table, Rabbits, Killer Rabbits
This commit is contained in:
Novacat
2020-08-27 15:52:54 -04:00
committed by GitHub
19 changed files with 1172 additions and 1700 deletions

View File

@@ -262,3 +262,23 @@
cost = 60
containertype = /obj/structure/closet/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,
/obj/item/clothing/shoes/knight_costume,
/obj/item/clothing/shoes/knight_costume/black
)
cost = 10
containertype = /obj/structure/closet/crate
containername = "Knights Gear Crate"

View File

@@ -1172,7 +1172,19 @@
/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,
/obj/item/clothing/shoes/knight_costume = 3,
/obj/item/clothing/shoes/knight_costume/black = 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 +1237,19 @@
/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,
/obj/item/clothing/shoes/knight_costume = 200,
/obj/item/clothing/shoes/knight_costume/black = 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

@@ -53,6 +53,7 @@
/mob/living/simple_mob/vore/aggressive/mimic,
/mob/living/simple_mob/vore/aggressive/rat,
/mob/living/simple_mob/vore/aggressive/rat/tame,
/mob/living/simple_mob/vore/rabbit,
// /mob/living/simple_mob/otie;0.5
))
return ..()

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

@@ -59,3 +59,34 @@
slowdown = shoes.slowdown
else
slowdown = SHOES_SLOWDOWN
// Armor Versions Here
/obj/item/clothing/shoes/knight
name = "knight boots"
desc = "A pair of olde knight boots."
icon_state = "knight_boots1"
item_state = "knight_boots1"
icon = 'icons/obj/clothing/shoes_vr.dmi'
icon_override = 'icons/obj/clothing/shoes_vr.dmi'
armor = list(melee = 80, bullet = 50, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/shoes/knight/black
name = "knight boots"
desc = "A pair of olde knight boots."
icon_state = "knight_boots2"
item_state = "knight_boots2"
// Costume Versions Here
/obj/item/clothing/shoes/knight_costume
name = "knight boots"
desc = "A pair of olde knight boots."
icon_state = "knight_boots1"
item_state = "knight_boots1"
icon = 'icons/obj/clothing/shoes_vr.dmi'
icon_override = 'icons/obj/clothing/shoes_vr.dmi'
/obj/item/clothing/shoes/knight_costume/black
name = "knight boots"
desc = "A pair of olde knight boots."
icon_state = "knight_boots2"
item_state = "knight_boots2"

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,150 @@
/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 = 0 // 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)
. += "They appear calm."
if(26 to 50)
. += "They seem slightly annoyed."
if(51 to 75)
. += "They seem very annoyed, perhaps you should stop petting them."
if(75 to INFINITY)
. += "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"
body_color = "black"
/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"
body_color = "white"
/mob/living/simple_mob/vore/rabbit/brown
icon_state = "rabbit_brown"
icon_living = "rabbit_brown"
icon_dead = "rabbit_brown_dead"
icon_rest = "rabbit_brown_rest"
body_color = "brown"
/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/brown/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 = 2000
health = 2000
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,/obj/item/clothing/shoes/knight,/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,/obj/item/clothing/shoes/knight,/obj/item/clothing/shoes/knight/black,/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,/obj/item/clothing/shoes/knight/black,/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,/obj/item/clothing/shoes/knight,/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,/obj/item/clothing/shoes/knight,/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,/obj/item/clothing/shoes/knight/black,/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

@@ -235,6 +235,13 @@
allow_duplicates = TRUE
template_group = "Underground Cliffs"
/datum/map_template/surface/mountains/normal/deadly_rabbit // VOREStation Edit
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_vr.dmm'
cost = 5
allow_duplicates = FALSE
/**************
* Deep Caves *
**************/

File diff suppressed because it is too large Load Diff

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"