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.
@@ -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"
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
@@ -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()
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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
|
||||
141
code/modules/mob/living/simple_mob/subtypes/vore/rabbit.dm
Normal 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()
|
||||
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 632 B After Width: | Height: | Size: 894 B |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
BIN
icons/obj/clothing/knights_vr.dmi
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 859 B After Width: | Height: | Size: 1.1 KiB |
51
maps/submaps/surface_submaps/mountains/deadly_rabbit.dmm
Normal 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
|
||||
"}
|
||||
@@ -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 *
|
||||
|
||||
@@ -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"
|
||||
|
||||